/* ============================================================================
   shiraze-tokens.css — نظامِ توکنِ واحدِ شیرازه · v1.0 · ۱۸ شهریور ۱۴۰۵
   ----------------------------------------------------------------------------
   هر مقدارِ این فایل از source/ استخراج شده است، مگر آنجا که با BUILT علامت
   خورده. هیچ رنگِ تازه‌ای ساخته نشده. اعدادِ کنتراست اندازه‌گیری‌شده‌اند
   (WCAG 2.1، sRGB) و روی سطحِ کارتِ هر تم محاسبه شده‌اند.
   بارگذاری: اولین <link> در هر سه سطح، قبل از style.css خودِ صفحه.
   تمِ تاریک: data-theme="dark" روی <html> — همان الگویی که پورتال دارد.
   ============================================================================ */

:root {
  /* ── رنگِ برند ─────────────────────────────────────────────────────────
     چهار رنگِ 02_RULES §۶ + دو مشتقِ تیره که در source/ هستند.            */
  --s-primary:        #0D6E6A;  /* 6.04:1 روی کارت — متن، دکمه، آیکن       */
  --s-primary-strong: #0A5A57;  /* 7.99:1 — هاور/فشرده، انتهای گرادیان     */
  --s-primary-deep:   #074340;  /* پنلِ برندِ صفحهٔ ورود (login:82)          */
  --s-primary-hi:     #20B7B2;  /* 2.46:1 — گرافیکِ تزئینی، هرگز متن        */
  --s-primary-soft:   #E4F4F2;  /* زمینهٔ روشن؛ متنِ #0f172a روی آن 15.75:1 */
  --s-primary-veil:   #A7E5E1;  /* زمینهٔ چیپِ انتخاب‌شده؛ #0A5A57 → 5.72:1  */

  /* ── خاکستری‌ها ────────────────────────────────────────────────────── */
  --s-ink:            #0f172a;  /* 17.76:1 — متنِ اصلی                     */
  --s-ink-2:          #334155;  /* 10.30:1 — متنِ دوم                      */
  --s-ink-muted:      #64748b;  /*  4.73:1 — متنِ کم‌رنگ، هنوز خواندنی      */
  --s-ink-invert:     #ffffff;  /* روی پُرشده‌های تیره                      */
  --s-page:           #f8fafc;  /* زمینهٔ صفحه                              */
  --s-surface:        rgba(255, 255, 255, 0.88);  /* کارت                  */
  --s-surface-modal:  rgba(255, 255, 255, 0.98);  /* مودال                 */
  --s-surface-sunken: #eef2f7;  /* شیارِ داخلی، ریلِ اسکرول                 */
  --s-line:           rgba(148, 163, 184, 0.28);  /* 1.26:1 — جداکنندهٔ     */
                                /*   تزئینی. مرزِ تنهای یک کنترل نباشد.     */
  --s-line-strong:    rgba(148, 163, 184, 0.40);  /* 1.40:1 — همان، پررنگ‌تر */
  --s-line-control:   #64748b;  /* 4.73:1 — مرزِ کنترل‌های تعاملی           */

  /* ── معنایی ───────────────────────────────────────────────────────────
     هر رنگ دو توکن دارد: پُرکننده (گرافیک ≥۳:۱) و مرکّب (متن ≥۴٫۵:۱).
     این تعارضِ --success و --warning را با نقش حل می‌کند، نه با قرعه.    */
  --s-success:        #059669;  /* 3.75:1 — فقط پُرکننده و آیکن            */
  --s-success-ink:    #047857;  /* 5.45:1 — متن                            */
  --s-success-soft:   rgba(5, 150, 105, 0.12);   /* متنِ success-ink 4.72:1 */
  --s-warning:        #d97706;  /* 3.17:1 — فقط پُرکننده و آیکن            */
  --s-warning-ink:    #b45309;  /* 4.99:1 — متن                            */
  --s-warning-soft:   rgba(217, 119, 6, 0.12);   /* متنِ warning-ink 4.40:1 */
  --s-danger:         #dc2626;  /* 4.80:1 — متن و پُرکننده (سفید 4.83:1)    */
  --s-danger-ink:     #b91c1c;  /* 6.44:1 — متن (cal: --danger-strong)     */
  --s-danger-soft:    rgba(220, 38, 38, 0.10);   /* متنِ danger-ink 5.51:1  */

  /* قاعدهٔ پُرشدهٔ رنگی — اندازه‌گیری‌شده، نه سلیقه:
     دکمهٔ پُر با متنِ سفید فقط primary (6.08:1) و danger (4.83:1).
     success با سفید ۳٫۷۷:۱ می‌شود و رد است — success فقط نشانِ نرم.
     warning پُر باید متنِ #0f172a بگیرد (5.60:1)، سفید ۳٫۱۹:۱ رد است.
     primary-hi پُر هم فقط با متنِ #0f172a (7.21:1)، سفید ۲٫۴۸:۱ رد است. */

  /* ── هویتِ پنج سامانه + شیرازه ───────────────────────────────────────
     رنگ هرگز تنها حاملِ هویت نیست: نامِ فارسی + لوگو اجباری (02_RULES §۵) */
  --s-p24:            #059669;  --s-p24-ink:       #047857;
  --s-doctoreto:      #0D6E6A;  --s-doctoreto-ink: #0A5A57;
  --s-drdr:           #7c3aed;  --s-drdr-ink:      #6d28d9;
  --s-nobat:          #20B7B2;  --s-nobat-ink:     #0A5A57;
  --s-doctor_yab:     #0099FF;  --s-doctor_yab-ink: #0072CC;  /* برندِ واقعیِ doctor-yab.ir */
  --s-drnext:         #00CCAA;  --s-drnext-ink:     #00997F;  /* برندِ واقعیِ panel.drnext.ir */
  --s-shiraze:        #d97706;  --s-shiraze-ink:   #b45309;

  /* ── فاصله ── ۱۰ پله. از مقیاسِ تقویم، منهای ۶۴px که هیچ‌جا نبود ────── */
  --space-2xs: 2px;   --space-xs:  4px;   --space-sm:  8px;
  --space-md:  12px;  --space-base:16px;  --space-lg:  20px;
  --space-xl:  24px;  --space-2xl: 32px;  --space-3xl: 48px;
  --space-5xl: 80px;

  /* ── گردی ── نردبانِ تقویم؛ ابرمجموعهٔ داشبورد (۱۴/۲۰/۲۸) و لندینگ (۶/۱۰) */
  --radius-xs:   6px;    --radius-sm: 10px;  --radius-md: 14px;
  --radius-lg:   20px;   --radius-xl: 28px;  --radius-pill: 999px;

  /* ── تایپوگرافی ── ⚠️ BUILT: مقیاس در source/ وجود نداشت (۴۹ اندازهٔ
     متمایز در ۲۶۴ اعلان). هر پلهٔ زیر مُدِ یکی از خوشه‌های واقعی است.
     قاعدهٔ مهاجرت: به پلهٔ نزدیک بالا — هیچ متنی در پروداکشن کوچک نمی‌شود. */
  --font-fa: Vazirmatn, Tahoma, Arial, sans-serif;
  --t-meta:  0.72rem;   /* ۱۱٫۵px — شمارنده و برچسبِ ثانویه. متنِ اقدام نه. */
  --t-ui:    0.82rem;   /* ۱۳٫۱px — پیش‌فرضِ رابط (پرتکرارترین: ۳۱ بار)     */
  --t-body:  0.90rem;   /* ۱۴٫۴px — متنِ خوانده‌شدنی، دادهٔ بیمار           */
  --t-lead:  1.05rem;   /* ۱۶٫۸px — ورودی‌ها، عنوانِ ردیف                   */
  --t-title: 1.35rem;   /* ۲۱٫۶px — عنوانِ بخش                             */
  --t-page:  2rem;      /* ۳۲px  — عنوانِ صفحه                             */
  --t-hero:  clamp(2rem, 5vw, 3rem);   /* dash:293 — فقط لندینگ            */

  --w-body: 500;  --w-em: 700;  --w-ui: 800;  --w-num: 900;
  --lh-tight: 1;  --lh-title: 1.3;  --lh-ui: 1.6;  --lh-prose: 1.8;

  /* ── ارتفاع و هاله ───────────────────────────────────────────────────── */
  --shadow-sm:  0 2px 8px rgba(15, 23, 42, 0.06);
  --shadow:     0 18px 60px rgba(15, 23, 42, 0.09);
  --shadow-lg:  0 24px 60px rgba(15, 23, 42, 0.16);
  --focus-edge: #0D6E6A;                              /* 6.04:1 — لبهٔ قطعی */
  --focus-ring: 0 0 0 4px rgba(13, 110, 106, 0.24);   /* هالهٔ نرم           */

  /* ── حرکت ── ۶ مدت، ۳ منحنی. «کِی» بخشِ تعریف است، نه توضیح. ─────────── */
  --m-tap:          120ms;  /* بازخوردِ لمس/فشار. تنها مقدارِ زیرِ ۱۵۰ در محصول. */
  --m-base:         180ms;  /* پیش‌فرض. هاور، فوکوس، رنگ، مرز، سایه. ۹۹ کاربرد. */
  --m-panel:        300ms;  /* چیزی که وارد یا خارجِ چیدمان می‌شود: مودال، توست. */
  --m-enter:        420ms;  /* اولین ظاهرشدنِ یک ناحیه، یک بار در هر ناوبری.     */
  --m-ambient:     1500ms;  /* حلقهٔ بی‌پایان: اسکلتون، اسپینر.                  */
  --m-ambient-slow:2800ms;  /* حلقهٔ بی‌پایانِ کند: درخششِ زمینه (لندینگ).       */

  --e-standard: cubic-bezier(0.22, 1, 0.36, 1);     /* تنها منحنیِ مشترکِ دو سطح */
  --e-spring:   cubic-bezier(0.34, 1.56, 0.64, 1);  /* فقط تأییدِ یک اتفاق       */
  --e-exit:     cubic-bezier(0.55, 0, 1, 0.45);     /* خروج از صفحه              */

  --tap-min: 44px;  /* 02_RULES §۶ — کفِ هدفِ لمسی */
}

[data-theme="dark"] {
  --s-primary:        #2DD4CB;  /*  9.86:1 */
  --s-primary-strong: #17A39E;  /*  5.86:1 */
  --s-primary-deep:   #0c2e2c;
  --s-primary-hi:     #5EEAD4;  /* 12.29:1 — در تمِ تاریک متن هم می‌شود */
  --s-primary-soft:   rgba(45, 212, 203, 0.18);
  --s-primary-veil:   rgba(94, 234, 212, 0.18);

  --s-ink:            #f8fafc;  /* 17.38:1 */
  --s-ink-2:          #e2e8f0;  /* 14.75:1 */
  --s-ink-muted:      #94a3b8;  /*  7.09:1 */
  --s-ink-invert:     #071317;
  --s-page:           #020617;
  --s-surface:        rgba(15, 23, 42, 0.88);
  --s-surface-modal:  rgba(15, 23, 42, 0.96);
  --s-surface-sunken: #10131e;  /* widget dark bg-gradient، انتها */
  --s-line:           rgba(148, 163, 184, 0.22);
  --s-line-strong:    rgba(148, 163, 184, 0.32);
  --s-line-control:   #94a3b8;  /* 7.09:1 */

  --s-success:        #10b981;  /*  7.17:1 */
  --s-success-ink:    #6ee7b7;  /* 11.93:1 */
  --s-success-soft:   rgba(16, 185, 129, 0.18);
  --s-warning:        #f59e0b;  /*  8.47:1 */
  --s-warning-ink:    #fcd34d;  /* 12.61:1 — re-measured 2026-09-09 (was labelled 10.89) */
  --s-warning-soft:   rgba(245, 158, 11, 0.18);
  --s-danger:         #ef4444;  /*  4.83:1 — پُرشده با متنِ #071317 (5.01:1)،
                                   سفید روی آن ۳٫۷۶:۱ و رد است */
  --s-danger-ink:     #fca5a5;  /*  9.58:1 — re-measured 2026-09-09 (was labelled 8.05) */
  --s-danger-soft:    rgba(239, 68, 68, 0.18);

  --s-p24:            #10b981;  --s-p24-ink:       #6ee7b7;
  --s-doctoreto:      #2DD4CB;  --s-doctoreto-ink: #5EEAD4;
  --s-drdr:           #a78bfa;  --s-drdr-ink:      #c084fc;
  --s-nobat:          #5EEAD4;  --s-nobat-ink:     #5EEAD4;
  --s-doctor_yab:     #4DB3FF;  --s-doctor_yab-ink: #9AD2FF;
  --s-drnext:         #1DE3C4;  --s-drnext-ink:     #7CF2E0;
  --s-shiraze:        #f59e0b;  --s-shiraze-ink:   #fcd34d;

  --shadow-sm:  0 2px 8px rgba(0, 0, 0, 0.24);
  --shadow:     0 18px 60px rgba(0, 0, 0, 0.26);
  --shadow-lg:  0 24px 70px rgba(0, 0, 0, 0.36);
  --focus-edge: #2DD4CB;
  --focus-ring: 0 0 0 4px rgba(45, 212, 203, 0.30);
}

/* ── کم‌کردنِ حرکت بخشی از تعریفِ توکن است، نه پیوستِ آخرِ فایل ───────────
   با بازتعریفِ همان نام‌ها، هر مصرف‌کننده‌ای که از توکن استفاده کرده
   خودبه‌خود رعایت می‌کند و لازم نیست بلوکِ دومی بنویسد. حلقه‌های بی‌پایان
   با مدتِ صفر اجرا نمی‌شوند — همان رفتارِ خواسته‌شده.                     */
@media (prefers-reduced-motion: reduce) {
  :root {
    --m-tap: 0ms;  --m-base: 0ms;  --m-panel: 0ms;  --m-enter: 0ms;
    --m-ambient: 0ms;  --m-ambient-slow: 0ms;
  }
}

/* ── بازنشستگان ───────────────────────────────────────────────────────────
   این توکن‌ها دیگر تعریف نمی‌شوند. جدولِ کاملِ مهاجرت در گزارش است.
   --radius-card --radius-btn --r-xs --r-sm --r-md --r-xl
   --text-primary --text-secondary --text-muted --muted
   --card-bg --modal-bg --bg-gradient --border-2 --focus
   --brand --brand-hi --brand-soft --brand-bg --primary-glow
   --space-4xl (۶۴px — صفر کاربرد در کلِ محصول)
   ============================================================================ */
