/* Lancio tokens — generated from tokens.json */
@font-face { font-family: 'Vazirmatn'; src: url('fonts/Vazirmatn-Variable.woff2') format('woff2'); font-weight: 100 900; font-display: swap; }
@font-face { font-family: 'Vazirmatn RD'; src: url('fonts/VazirmatnRD-Variable.woff2') format('woff2'); font-weight: 100 900; font-display: swap; }
:root, [data-theme="light"] {
  --paper: #F6F3EC;
  --surface: #FFFFFF;
  --surface-sunken: #EEEADF;
  --surface-overlay: #FFFFFF;
  --line: #E3DDD0;
  --line-control: #8C8676;
  --ink: #1D2130;
  --ink-muted: #5A5F6E;
  --ink-subtle: #676C7C;
  --accent: #2A45C2;
  --accent-hover: #233AA6;
  --accent-soft: #E7EBFB;
  --on-accent: #FFFFFF;
  --focus-ring: var(--accent);
  --spark: #F2A93B;
  --status-done: #1D7A4C;
  --status-done-soft: #DFF2E5;
  --status-partial: #9A5B00;
  --status-partial-soft: #FBEED6;
  --status-skipped: #BE3329;
  --status-skipped-soft: #FBE4E1;
  --danger: var(--status-skipped);
  --danger-soft: var(--status-skipped-soft);
  --warning: var(--status-partial);
  --warning-soft: var(--status-partial-soft);
  --subject-rose: #a6344f;
  --subject-rose-soft: #ffe6e8;
  --subject-coral: #a63c0c;
  --subject-coral-soft: #ffe7df;
  --subject-amber: #865900;
  --subject-amber-soft: #ffe9cc;
  --subject-olive: #626a00;
  --subject-olive-soft: #ebf1cf;
  --subject-green: #007835;
  --subject-green-soft: #d9f6dd;
  --subject-teal: #00736a;
  --subject-teal-soft: #ccf7f1;
  --subject-sky: #006d91;
  --subject-sky-soft: #d8f2ff;
  --subject-indigo: #3f5bb8;
  --subject-indigo-soft: #e5edff;
  --subject-violet: #724aab;
  --subject-violet-soft: #f0e9ff;
  --subject-magenta: #943b84;
  --subject-magenta-soft: #ffe3f8;
  --subject-brown: #82583b;
  --subject-brown-soft: #fee8da;
  --subject-slate: #576574;
  --subject-slate-soft: #e6eef7;
  --shadow-sm: 0 1px 2px rgba(29,33,48,0.06), 0 1px 1px rgba(29,33,48,0.04);
  --shadow-md: 0 4px 14px rgba(29,33,48,0.08);
  --shadow-lg: 0 -8px 32px rgba(29,33,48,0.14);
}
[data-theme="dark"] {
  --paper: #13151B;
  --surface: #1B1E26;
  --surface-sunken: #0E1014;
  --surface-overlay: #232733;
  --line: #2A2E39;
  --line-control: #6B7180;
  --ink: #ECE8DF;
  --ink-muted: #A6AAB5;
  --ink-subtle: #8A8F9B;
  --accent: #8FA3FF;
  --accent-hover: #A9B8FF;
  --accent-soft: #222A4F;
  --on-accent: #111A44;
  --focus-ring: var(--accent);
  --spark: #F2A93B;
  --status-done: #63D39B;
  --status-done-soft: #16301F;
  --status-partial: #F0B556;
  --status-partial-soft: #33270F;
  --status-skipped: #FF8B80;
  --status-skipped-soft: #3A1C1A;
  --danger: var(--status-skipped);
  --danger-soft: var(--status-skipped-soft);
  --warning: var(--status-partial);
  --warning-soft: var(--status-partial-soft);
  --subject-rose: #ff9dac;
  --subject-rose-soft: #481f26;
  --subject-coral: #ffa383;
  --subject-coral-soft: #482114;
  --subject-amber: #ebb25f;
  --subject-amber-soft: #402800;
  --subject-olive: #bbc769;
  --subject-olive-soft: #2d3105;
  --subject-green: #83d494;
  --subject-green-soft: #12361c;
  --subject-teal: #4cd7c8;
  --subject-teal-soft: #003631;
  --subject-sky: #60ccfc;
  --subject-sky-soft: #003346;
  --subject-indigo: #a2bcff;
  --subject-indigo-soft: #202c4d;
  --subject-violet: #c9acff;
  --subject-violet-soft: #332649;
  --subject-magenta: #eea0dc;
  --subject-magenta-soft: #41213a;
  --subject-brown: #dbb59c;
  --subject-brown-soft: #3e2819;
  --subject-slate: #b3bfcd;
  --subject-slate-soft: #262f38;
  --shadow-sm: 0 1px 2px rgba(0,0,0,0.4);
  --shadow-md: 0 6px 18px rgba(0,0,0,0.45);
  --shadow-lg: 0 -8px 32px rgba(0,0,0,0.6);
}
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) {
  --paper: #13151B;
  --surface: #1B1E26;
  --surface-sunken: #0E1014;
  --surface-overlay: #232733;
  --line: #2A2E39;
  --line-control: #6B7180;
  --ink: #ECE8DF;
  --ink-muted: #A6AAB5;
  --ink-subtle: #8A8F9B;
  --accent: #8FA3FF;
  --accent-hover: #A9B8FF;
  --accent-soft: #222A4F;
  --on-accent: #111A44;
  --focus-ring: var(--accent);
  --spark: #F2A93B;
  --status-done: #63D39B;
  --status-done-soft: #16301F;
  --status-partial: #F0B556;
  --status-partial-soft: #33270F;
  --status-skipped: #FF8B80;
  --status-skipped-soft: #3A1C1A;
  --danger: var(--status-skipped);
  --danger-soft: var(--status-skipped-soft);
  --warning: var(--status-partial);
  --warning-soft: var(--status-partial-soft);
  --subject-rose: #ff9dac;
  --subject-rose-soft: #481f26;
  --subject-coral: #ffa383;
  --subject-coral-soft: #482114;
  --subject-amber: #ebb25f;
  --subject-amber-soft: #402800;
  --subject-olive: #bbc769;
  --subject-olive-soft: #2d3105;
  --subject-green: #83d494;
  --subject-green-soft: #12361c;
  --subject-teal: #4cd7c8;
  --subject-teal-soft: #003631;
  --subject-sky: #60ccfc;
  --subject-sky-soft: #003346;
  --subject-indigo: #a2bcff;
  --subject-indigo-soft: #202c4d;
  --subject-violet: #c9acff;
  --subject-violet-soft: #332649;
  --subject-magenta: #eea0dc;
  --subject-magenta-soft: #41213a;
  --subject-brown: #dbb59c;
  --subject-brown-soft: #3e2819;
  --subject-slate: #b3bfcd;
  --subject-slate-soft: #262f38;
  --shadow-sm: 0 1px 2px rgba(0,0,0,0.4);
  --shadow-md: 0 6px 18px rgba(0,0,0,0.45);
  --shadow-lg: 0 -8px 32px rgba(0,0,0,0.6);
} }
:root {
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-12: 48px;
  --radius-xs: 6px;
  --radius-sm: 10px;
  --radius-md: 14px;
  --radius-lg: 22px;
  --radius-full: 999px;
  --font-display: "Vazirmatn RD", Vazirmatn, Tahoma, sans-serif;
  --font-sans: Vazirmatn, Tahoma, system-ui, sans-serif;
}
.display { font-family: var(--font-display); font-size: 40px; line-height: 56px; font-weight: 800; }
.title-1 { font-family: var(--font-display); font-size: 28px; line-height: 42px; font-weight: 800; }
.title-2 { font-family: var(--font-display); font-size: 22px; line-height: 34px; font-weight: 700; }
.title-3 { font-family: var(--font-display); font-size: 18px; line-height: 28px; font-weight: 700; }
.body-lg { font-family: var(--font-sans); font-size: 17px; line-height: 30px; font-weight: 400; }
.body { font-family: var(--font-sans); font-size: 15px; line-height: 26px; font-weight: 400; }
.body-strong { font-family: var(--font-sans); font-size: 15px; line-height: 26px; font-weight: 600; }
.caption { font-family: var(--font-sans); font-size: 13px; line-height: 22px; font-weight: 400; }
.label { font-family: var(--font-sans); font-size: 12px; line-height: 18px; font-weight: 600; }
.num-xl { font-family: var(--font-display); font-size: 36px; line-height: 44px; font-weight: 800; }
.num { font-family: var(--font-display); font-size: 20px; line-height: 28px; font-weight: 700; }
