/* ============================================================
   AzureLMS — Base reset & shared primitives (global)
   tokens.css dan KEYIN yuklanadi.
   ============================================================ */

html{scroll-behavior:smooth}
*{box-sizing:border-box}

body{
  min-width:320px;
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Space Grotesk',system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
}

img,svg,video,canvas{max-width:100%}
a{text-decoration:none;color:inherit}
button{font-family:inherit;cursor:pointer;border:none;background:none}
input,textarea,select{font-family:inherit}

::selection{background:var(--azure-soft);color:var(--azure-2)}

/* Ilova scrollbarlari */
[data-appscroll]::-webkit-scrollbar{width:9px}
[data-appscroll]::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px}

/* Umumiy animatsiyalar (AI typing indikatori, h.k.) */
@keyframes azDot{0%,100%{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}
@keyframes azType{0%,60%,100%{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}
@keyframes azBlink{0%,100%{opacity:1}50%{opacity:0}}

/* Mobil: sidebar overlay rejimi */
@media (max-width:820px){
  [data-appside]{position:fixed!important;z-index:60;height:100vh;height:100dvh}
}

/* iOS: 16px dan kichik shriftli maydonga bosilganda Safari sahifani
   avtomatik yaqinlashtiradi va **o'zi qaytmaydi** — foydalanuvchi sarlavhani
   yo'qotib qo'yadi va qo'lda kichraytirishga majbur bo'ladi. Yagona to'g'ri
   yechim shrift o'lchamini 16px ga ko'tarish; `user-scalable=no` bu xulqni
   to'xtatadi, ammo sahifani umuman kattalashtirib bo'lmaydigan qilib qo'yadi
   va bu accessibility uchun qabul qilib bo'lmaydi.

   Faqat telefon/planshet kengligida — desktopdagi 14px dizayn saqlanadi. */
@media (max-width:820px){
  input:not([type=checkbox]):not([type=radio]):not([type=range]),
  select,
  textarea{ font-size:16px; }
}

/* Server javobi — hamma sahifada bir xil (templates/includes/messages.html). */
/* Yopishqoq sarlavha ostida: xato toasti yopilmaguncha turadi, ustiga
   chiqsa navigatsiyani berkitib qo'yardi (pub 69px, app-top ~56px). */
.toasts{ position:fixed; top:78px; left:50%; transform:translateX(-50%); z-index:1200; display:flex; flex-direction:column; gap:8px; width:min(560px,calc(100vw - 24px)); pointer-events:none; }
.toast{ display:flex; align-items:flex-start; gap:10px; padding:12px 14px; border-radius:11px; font-size:13.5px; line-height:1.5; box-shadow:0 10px 30px rgba(0,0,0,.16); pointer-events:auto; animation:toast-in .18s ease-out; }
.toast>span{ flex:1; min-width:0; overflow-wrap:anywhere; }
.toast>i{ flex:0 0 auto; margin-top:1px; font-size:15px; }
/* Suzuvchi blok: `*-soft` tokenlari 10-14% shaffof, shuning uchun tag'ida
   qattiq sirt kerak - aks holda ostidagi menyu toast ichidan ko'rinadi.
   Ilgarigi ichki bloklar oq sahifa ustida turgani uchun buni sezdirmagan. */
.toast--success,.toast--info,.toast--debug{ background:linear-gradient(var(--green-soft),var(--green-soft)),var(--panel); color:var(--green); border:1px solid var(--green); }
.toast--warning{ background:linear-gradient(var(--amber-soft),var(--amber-soft)),var(--panel); color:var(--amber); border:1px solid var(--amber); }
.toast--error{ background:linear-gradient(var(--red-soft),var(--red-soft)),var(--panel); color:var(--red); border:1px solid var(--red); }
.toast-close{ flex:0 0 auto; border:0; background:transparent; color:inherit; opacity:.65; cursor:pointer; font-size:12px; padding:0 2px; }
.toast-close:hover{ opacity:1; }
.toast.is-leaving{ opacity:0; transform:translateY(-6px); transition:opacity .2s, transform .2s; }
@keyframes toast-in{ from{ opacity:0; transform:translateY(-8px); } to{ opacity:1; transform:none; } }
@media(prefers-reduced-motion:reduce){ .toast{ animation:none; } .toast.is-leaving{ transition:none; } }
