/* ASHI-DEV V2 — Design Tokens (منبع واحد رنگ، فاصله، تایپوگرافی، سایه و حرکت)
   این فایل فقط «متغیر» تعریف می‌کند؛ هیچ قاعده‌ی ظاهری ندارد. site.css / portal.css / admin.css
   هرکدام فقط از این توکن‌ها می‌خوانند تا سه سطح (سایت عمومی، پرتال، پنل مدیر) یک زبان طراحی داشته باشند
   ولی افکت‌های سایت عمومی به جدول‌ها و فرم‌های پنل نشت نکند.
   رنگ‌های برند (--b1 نقره‌ای، --b2 قرمز، --b3 قرمز تیره، --bgd پس‌زمینه) از «پنل ← ظاهر» می‌آیند و روی این‌ها سوار می‌شوند. */

:root {
  /* ---- مواد خام: Obsidian · Graphite · Silver · Ivory · Crimson ---- */
  --obsidian-950: #050507;
  --obsidian-900: #08080a;
  --graphite-850: #0e0e11;
  --graphite-800: #131317;
  --graphite-700: #1a1a1f;
  --graphite-600: #24242b;
  --graphite-500: #33333c;
  --silver-100: #f1f3f6;
  --silver-300: #c9ced6;
  --silver-500: #9aa1ad;
  --silver-700: #6a717d;
  --ivory-100: #f6f0e4;
  --ivory-300: #e4dccb;
  --ivory-500: #a9a396;
  --crimson-500: #c1121f;
  --crimson-600: #a30f1b;
  --crimson-800: #6e0d17;
  --ok: #3ccf8e;
  --warn: #e3a72f;
  --bad: #ef5360;
  --info: #5aa9e6;

  /* ---- نقش‌های معنایی (تم تیره = پیش‌فرض) ---- */
  --accent: var(--b1, var(--silver-300));         /* نقره‌ای فلزی؛ از پنل قابل تغییر */
  --signature: var(--b2, var(--crimson-500));     /* قرمز امضا؛ کم‌مصرف */
  --signature-deep: var(--b3, var(--crimson-800));
  --surface-0: var(--bgd, var(--obsidian-900));   /* پس‌زمینه‌ی صفحه */
  --surface-1: var(--graphite-850);
  --surface-2: var(--graphite-800);
  --surface-3: var(--graphite-700);
  --text: var(--ivory-100);
  --text-muted: var(--ivory-500);
  --text-strong: #ffffff;
  --line: rgba(241, 243, 246, .10);
  --line-strong: rgba(241, 243, 246, .20);
  --fill-soft: rgba(241, 243, 246, .045);
  --fill-hover: rgba(241, 243, 246, .08);
  --focus: color-mix(in srgb, var(--accent) 80%, #fff);

  /* ---- متال: گرادیان نقره‌ای برای عنوان‌ها و خطوط ظریف ---- */
  --metal: linear-gradient(135deg, #f7f9fc 0%, #c3c9d3 38%, #7e8591 58%, #dfe3ea 100%);
  --metal-text: linear-gradient(100deg, #ffffff 0%, #c9ced6 45%, #8e95a1 70%, #e8ebf0 100%);
  --crimson-glow: 0 0 0 1px color-mix(in srgb, var(--signature) 55%, transparent), 0 10px 40px -10px color-mix(in srgb, var(--signature) 55%, transparent);
  --grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");

  /* ---- تایپوگرافی (فونت محلی Vazirmatn؛ هرگز CDN) ---- */
  --font: Vazirmatn, "Segoe UI", Tahoma, system-ui, sans-serif;
  --font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --fs-xs: .75rem;
  --fs-sm: .875rem;
  --fs-md: 1rem;
  --fs-lg: 1.125rem;
  --fs-xl: clamp(1.25rem, 1.1rem + .6vw, 1.5rem);
  --fs-2xl: clamp(1.6rem, 1.3rem + 1.2vw, 2.2rem);
  --fs-3xl: clamp(2.1rem, 1.5rem + 2.4vw, 3.4rem);
  --fs-hero: clamp(2.5rem, 1.4rem + 5vw, 5.4rem);
  --lh-tight: 1.2;
  --lh-snug: 1.45;
  --lh-body: 1.85;
  --tracking-caps: .18em;

  /* ---- فاصله (مقیاس ۴ نقطه‌ای) ---- */
  --sp-1: .25rem;
  --sp-2: .5rem;
  --sp-3: .75rem;
  --sp-4: 1rem;
  --sp-5: 1.5rem;
  --sp-6: 2rem;
  --sp-7: 3rem;
  --sp-8: 4.5rem;
  --sp-9: 7rem;
  --gutter: clamp(1rem, 4vw, 2rem);
  --maxw: 1180px;

  /* ---- شعاع، ارتفاع (سایه)، لایه‌ها ---- */
  --r-xs: 6px;
  --r-sm: 10px;
  --r-md: 14px;
  --r-lg: 20px;
  --r-xl: 28px;
  --r-pill: 999px;
  --e-1: 0 1px 0 rgba(255, 255, 255, .04) inset, 0 1px 2px rgba(0, 0, 0, .35);
  --e-2: 0 1px 0 rgba(255, 255, 255, .05) inset, 0 8px 24px -8px rgba(0, 0, 0, .6);
  --e-3: 0 1px 0 rgba(255, 255, 255, .06) inset, 0 24px 60px -18px rgba(0, 0, 0, .75);
  --z-base: 1;
  --z-nav: 40;
  --z-overlay: 80;
  --z-modal: 100;
  --z-toast: 120;

  /* ---- حرکت: کنترل‌شده و سینمایی؛ با prefers-reduced-motion خاموش می‌شود ---- */
  --ease: cubic-bezier(.2, .8, .2, 1);
  --ease-in-out: cubic-bezier(.65, 0, .35, 1);
  --t-fast: .18s;
  --t-med: .45s;
  --t-slow: .9s;

  /* ---- نقاط شکست مرجع (برای مستندات؛ در @media به‌صورت عدد می‌آیند) ---- */
  --bp-sm: 480px;
  --bp-md: 780px;
  --bp-lg: 1080px;
  --bp-xl: 1440px;

  color-scheme: dark;
}

/* ---- تم روشن (v22): کاغذی سرد + گرافیت؛ قرمز امضا همان‌طور که هست ---- */
[data-theme=light] {
  --accent: #232936;
  --surface-0: #e8ebf0;
  --surface-1: #ffffff;
  --surface-2: #ffffff;
  --surface-3: #dfe3ea;
  --text: #1c202a;
  --text-muted: #4f596b;
  --text-strong: #000;
  --line: rgba(19, 22, 28, .11);
  --line-strong: rgba(19, 22, 28, .22);
  --fill-soft: rgba(19, 22, 28, .04);
  --fill-hover: rgba(19, 22, 28, .07);
  --metal-text: linear-gradient(100deg, #0f1218 0%, #3a414f 55%, #161a22 100%);
  --e-1: 0 1px 2px rgba(19, 22, 28, .08);
  --e-2: 0 8px 24px -10px rgba(19, 22, 28, .22);
  --e-3: 0 24px 60px -20px rgba(19, 22, 28, .3);
  color-scheme: light;
}

/* ---- کاهش حرکت: همه‌ی زمان‌ها صفر ---- */
@media (prefers-reduced-motion: reduce) {
  :root { --t-fast: 0s; --t-med: 0s; --t-slow: 0s; }
}
