/* ══════════════════════════════════════════════════════════════
   OSSON — umumiy dizayn tokenlari
   To'rtta sirt ham shu faylni yuklaydi: /static/osson.css
   Sabab: har faylda alohida nusxa saqlansa, bir oy ichida ular
   bir-biridan uzoqlashadi va tizim yo'qoladi.

   Kontrast qoidalari (o'lchangan, buzilmaydi):
     #2563EB oq fonda 4.55:1 — faqat to'ldirish, chegara va >=18px
     matn uchun. Kichik matn va havolalar #1E51C4 (6.9:1).
     #12B981 oq fonda 2.6:1 — HECH QACHON och fonda matn emas.
     #FFB021 oq fonda 1.9:1 — hech qachon matn yoki tugma foni emas.
   ══════════════════════════════════════════════════════════════ */

:root,
[data-theme="light"] {
  /* — ko'k shkala (800 — logotip ko'ki) — */
  --blue-50:#EFF5FF;  --blue-100:#DBE8FE; --blue-200:#BFD6FE;
  --blue-300:#93BBFD; --blue-400:#609AFA; --blue-500:#3B7BF6;
  --blue-600:#2563EB; --blue-700:#1E51C4; --blue-800:#19508D;
  --blue-900:#143F70;

  /* — neytral (sovuq tusli) — */
  --ink-0:#FFFFFF;   --ink-25:#FBFCFD;  --ink-50:#F5F7FA;
  --ink-100:#EDF0F5; --ink-200:#E1E6ED; --ink-300:#CBD3DF;
  --ink-400:#9AA6B8; --ink-500:#6B7A90; --ink-600:#4E5B6E;
  --ink-700:#37424F; --ink-800:#232C38; --ink-900:#141A22;

  /* — aksentlar — */
  --mint-soft:#E7F8F1;  --mint:#12B981;  --mint-ink:#0A7A56;
  --amber-soft:#FFF4DE; --amber:#FFB021; --amber-ink:#8A5A00;
  --coral-soft:#FEECEC; --coral:#E5484D; --coral-ink:#A32026;
  --violet-soft:#F1EDFF;--violet:#7C5CFC;--violet-ink:#4C2FB8;

  /* — semantik qatlam: komponentlar FAQAT shulardan o'qiydi — */
  --bg-canvas:#F5F7FA; --bg-surface:#FFFFFF; --bg-surface-2:#F5F7FA;
  --bg-sunken:#EDF0F5;
  --fg-1:#141A22; --fg-2:#4E5B6E; --fg-3:#6B7A90; --fg-4:#9AA6B8;
  --line-subtle:#EDF0F5; --line:#E1E6ED; --line-strong:#CBD3DF;
  --brand:#2563EB; --brand-hover:#1E56D6; --brand-press:#1E51C4;
  --brand-soft:#EFF5FF; --brand-soft-2:#DBE8FE;
  --brand-ink:#1E51C4;          /* kichik matn/havola uchun */
  --brand-block:#2563EB;
  --on-brand:#FFFFFF; --on-brand-2:rgba(255,255,255,.78);
  --ok:#12B981; --ok-soft:#E7F8F1; --ok-ink:#0A7A56;
  --warn:#FFB021; --warn-soft:#FFF4DE; --warn-ink:#8A5A00;
  --danger:#E5484D; --danger-soft:#FEECEC; --danger-ink:#A32026;
  --track:#E1E6ED;
  --focus:#2563EB;
  --scrim:rgba(12,17,25,.48);

  /* — soyalar: ko'k tusli, ikki qatlamli — */
  --sh-1:0 1px 2px rgba(16,30,54,.06), 0 1px 1px rgba(16,30,54,.04);
  --sh-2:0 2px 4px rgba(16,30,54,.05), 0 4px 12px rgba(16,30,54,.06);
  --sh-3:0 2px 6px rgba(16,30,54,.06), 0 8px 24px rgba(16,30,54,.10);
  --sh-4:0 4px 10px rgba(16,30,54,.06), 0 16px 40px rgba(16,30,54,.14);
  --sh-brand:0 6px 18px rgba(37,99,235,.26);
  --sh-up:0 -1px 0 var(--line), 0 -8px 24px rgba(16,30,54,.06);
}

/* Qorong'i rejim — teskari aylantirish emas, alohida shkala */
[data-theme="dark"] {
  --bg-canvas:#0C1119; --bg-surface:#141B24; --bg-surface-2:#1B2430;
  --bg-sunken:#0A0E15;
  --fg-1:#E9EEF6; --fg-2:#AFBCCD; --fg-3:#8494A8; --fg-4:#63728A;
  --line-subtle:#1B2430; --line:#263140; --line-strong:#33414F;
  --brand:#3B7BF6; --brand-hover:#5490F8; --brand-press:#2563EB;
  --brand-soft:rgba(59,123,246,.14); --brand-soft-2:rgba(59,123,246,.22);
  --brand-ink:#93BBFD;
  --brand-block:#2350C8;
  --ok:#34D39C; --ok-soft:rgba(18,185,129,.16); --ok-ink:#5FE0B4;
  --warn:#FFC34D; --warn-soft:rgba(255,176,33,.16); --warn-ink:#FFD68A;
  --danger:#FF6369; --danger-soft:rgba(229,72,77,.18); --danger-ink:#FF9CA0;
  --track:#263140;
  --focus:#609AFA;
  --scrim:rgba(0,0,0,.62);
  /* Qorong'ida blur ko'rinmaydi — balandlik = yorug'roq sirt + chiziq */
  --sh-1:0 1px 2px rgba(0,0,0,.40);
  --sh-2:0 2px 6px rgba(0,0,0,.44);
  --sh-3:0 4px 14px rgba(0,0,0,.50);
  --sh-4:0 12px 32px rgba(0,0,0,.58);
  --sh-brand:0 6px 18px rgba(37,99,235,.34);
  --sh-up:0 -1px 0 var(--line), 0 -8px 24px rgba(0,0,0,.44);
}

/* Tizim sozlamasiga ergashish (data-theme qo'lda qo'yilmagan bo'lsa) */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg-canvas:#0C1119; --bg-surface:#141B24; --bg-surface-2:#1B2430;
    --bg-sunken:#0A0E15;
    --fg-1:#E9EEF6; --fg-2:#AFBCCD; --fg-3:#8494A8; --fg-4:#63728A;
    --line-subtle:#1B2430; --line:#263140; --line-strong:#33414F;
    --brand:#3B7BF6; --brand-hover:#5490F8; --brand-press:#2563EB;
    --brand-soft:rgba(59,123,246,.14); --brand-soft-2:rgba(59,123,246,.22);
    --brand-ink:#93BBFD; --brand-block:#2350C8;
    --ok:#34D39C; --ok-soft:rgba(18,185,129,.16); --ok-ink:#5FE0B4;
    --warn:#FFC34D; --warn-soft:rgba(255,176,33,.16); --warn-ink:#FFD68A;
    --danger:#FF6369; --danger-soft:rgba(229,72,77,.18); --danger-ink:#FF9CA0;
    --track:#263140; --focus:#609AFA; --scrim:rgba(0,0,0,.62);
    --sh-1:0 1px 2px rgba(0,0,0,.40);
    --sh-2:0 2px 6px rgba(0,0,0,.44);
    --sh-3:0 4px 14px rgba(0,0,0,.50);
    --sh-4:0 12px 32px rgba(0,0,0,.58);
    --sh-brand:0 6px 18px rgba(37,99,235,.34);
    --sh-up:0 -1px 0 var(--line), 0 -8px 24px rgba(0,0,0,.44);
  }
}

/* ── modul ranglari: 7 ta modulni ajratish uchun ────────────
   Faqat ikki joyda: modul ikonkasi va ochilgan akkordeonning
   chap chizig'i. Progressga HECH QACHON tegmaydi — progress
   doim yashil (tugagan) / sariq (jarayonda) / ko'k (joriy). */
:root{
  --m1:#2563EB; --m1-s:#EFF5FF;
  --m2:#7C5CFC; --m2-s:#F1EDFF;
  --m3:#0F9F6F; --m3-s:#E7F8F1;
  --m4:#C47E00; --m4-s:#FFF4DE;
  --m5:#E5484D; --m5-s:#FEECEC;
  --m6:#0D9B9B; --m6-s:#E4F7F7;
  --m7:#4F46E5; --m7-s:#EEEDFD;
}
[data-theme="dark"]{
  --m1-s:rgba(37,99,235,.18);  --m2-s:rgba(124,92,252,.18);
  --m3-s:rgba(18,185,129,.18); --m4-s:rgba(255,176,33,.18);
  --m5-s:rgba(229,72,77,.18);  --m6-s:rgba(14,165,165,.18);
  --m7-s:rgba(79,70,229,.18);
}

/* ── shakl va harakat ─────────────────────────────────────── */
:root{
  --r-xs:6px; --r-sm:10px; --r-md:14px; --r-lg:18px;
  --r-xl:24px; --r-2xl:32px; --r-pill:999px; --r-block:28px;

  --s-1:4px;  --s-2:8px;  --s-3:12px; --s-4:16px; --s-5:20px;
  --s-6:24px; --s-7:32px; --s-8:40px; --s-9:48px; --s-10:64px;

  --e-out:cubic-bezier(.22,.61,.36,1);
  --e-in:cubic-bezier(.4,0,1,1);
  --e-inout:cubic-bezier(.65,0,.35,1);
  --e-emph:cubic-bezier(.2,.8,.2,1);
  --e-pop:cubic-bezier(.34,1.24,.64,1);
  --t-1:120ms; --t-2:180ms; --t-3:240ms;
  --t-4:320ms; --t-5:520ms; --t-6:900ms;

  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,
         "Helvetica Neue",Arial,sans-serif;
  --focus-ring:0 0 0 2px var(--bg-surface), 0 0 0 4px var(--focus);
}

/* Telegram mini app: 100vh emas — barqaror balandlik va xavfsiz zona */
html[data-surface="tma"]{
  --app-h:var(--tg-viewport-stable-height, 100dvh);
  --sa-top:max(env(safe-area-inset-top,0px), var(--tg-content-safe-area-inset-top,0px));
  --sa-bottom:max(env(safe-area-inset-bottom,0px), var(--tg-safe-area-inset-bottom,0px));
  background:var(--tg-theme-bg-color, var(--bg-canvas));
}

/* ── umumiy asos ──────────────────────────────────────────── */
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
:focus-visible{outline:none;box-shadow:var(--focus-ring)}

/* Harakat kamaytirilgan bo'lsa — hammasi darhol */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:1ms!important;animation-iteration-count:1!important;
    transition-duration:1ms!important;scroll-behavior:auto!important}
}
