/* Brand and compatibility tokens shared by app, auth, and standalone PWA pages. */
@font-face{
  font-family:"Mona Sans";
  src:url("fonts/mona-sans.woff2") format("woff2");
  font-style:normal;
  font-weight:200 900;
  font-stretch:75% 125%;
  font-display:swap;
}
@font-face{
  font-family:"Newsreader";
  src:url("fonts/newsreader.woff2") format("woff2");
  font-style:normal;
  font-weight:200 800;
  font-display:swap;
}
:root{
  --bp-mobile:900px;
  --bp-tablet:980px;
  --bp-desktop:981px;
  --brand-paper:#f4f4f3;
  --brand-surface:#ffffff;
  --brand-surface-quiet:#ececeb;
  --brand-ink:#0b0b0b;
  --brand-ink-muted:#5c5c5c;
  --brand-border:#d4d4d2;
  --brand-border-strong:#a8a8a6;
  --brand-primary:#2756c7;
  --brand-primary-hover:#1e439d;
  --brand-trust:#27684d;
  --brand-sidebar:#ececeb;
  --brand-sidebar-muted:#5c5c5c;
  --brand-sidebar-active:#0b0b0b;
  --brand-radius-sm:2px;
  --brand-radius-md:4px;
  --brand-radius-lg:6px;
  --font-ui:"Mona Sans",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-editorial:var(--font-ui);
  --bg:var(--brand-paper);
  --panel:var(--brand-surface);
  --panel-2:var(--brand-surface-quiet);
  --border:var(--brand-border);
  --border-strong:var(--brand-border-strong);
  --text:var(--brand-ink);
  --text-muted:var(--brand-ink-muted);
  --muted:#6e6e6e;
  --accent:var(--brand-ink);
  --accent-hover:#2a2a2a;
  --accent-soft:rgba(39,86,199,0.10);
  --accent-ring:rgba(39,86,199,0.28);
  --action-fg:#ffffff;
  --selection-bg:rgba(39,86,199,0.28);
  --selection-fg:var(--brand-ink);
  --status-success:var(--brand-trust);
  --status-warning:#d97706;
  --status-danger:#dc2626;
  --status-info:var(--brand-primary);
  --danger:var(--status-danger);
  --sidebar-width:240px;
  --sidebar-collapsed-width:56px;
  --strategy-split-list-width:280px;
  --strategy-split-list-collapsed:52px;
  --mobile-top-bar-height:56px;
  --wip-banner-row-height:36px;
  --mobile-header-control:40px;
  /* Radius tokens follow html[data-corners]; :root brand radii stay at Small
       so app/landing brand-token parity tests remain stable. */
  --radius-sm:var(--brand-radius-sm);
  --radius-md:var(--brand-radius-md);
  --radius-lg:var(--brand-radius-lg);
  --radius-pill:4px;
  --radius-circle:50%;
  --shadow-card:none;
  --shadow-card-hover:none;
  --shadow-elevated:0 8px 24px rgba(0,0,0,0.12);
  --shadow-overlay:0 16px 40px rgba(0,0,0,0.18);
  --shadow-focus:0 0 0 2px var(--accent-ring);
  --transition-speed:0.16s;
  --ease-out:cubic-bezier(0.22,0.61,0.36,1);
  --brand:var(--brand-primary);
  --theme-color-light:var(--brand-paper);
  --theme-color-dark:#0b0b0b;
  --space-xs:4px;
  --space-sm:8px;
  --space-md:12px;
  --space-lg:16px;
  --space-xl:24px;
  --page-pad:22px;
  --page-header-bar-height:76px;
  --section-gap:16px;
  --card-pad-y:18px;
  --card-pad-x:20px;
  --grid-gap:14px;
  --stack-gap:14px;
  --mobile-page-tabs-height:44px;
  --sidebar-nav-icon-size:0.9rem;
  --fs-xxs:11px;
  --fs-xs:12px;
  --fs-sm:13px;
  --fs-md:15px;
  --fs-lg:17px;
  --fs-xl:22px;
  --fs-2xl:28px;
  --fs-3xl:34px;
  --lh-tight:1.2;
  --lh-snug:1.3;
  --lh-normal:1.4;
  --kicker-tracking:0.05em;
  --touch-target-min:44px;
  --control-height:36px;
  --control-height-mobile:44px;
}
[data-theme="dark"]{
  --brand-paper:#0b0b0b;
  --brand-surface:#141414;
  --brand-surface-quiet:#1c1c1c;
  --brand-ink:#f2f2f2;
  --brand-ink-muted:#a3a3a3;
  --brand-border:#2a2a2a;
  --brand-border-strong:#3f3f3f;
  --brand-primary:#5b8def;
  --brand-primary-hover:#7aa3f5;
  --brand-trust:#72b894;
  --brand-sidebar:#111111;
  --brand-sidebar-muted:#a3a3a3;
  --brand-sidebar-active:#f2f2f2;
  --bg:var(--brand-paper);
  --panel:var(--brand-surface);
  --panel-2:var(--brand-surface-quiet);
  --border:var(--brand-border);
  --border-strong:var(--brand-border-strong);
  --text:var(--brand-ink);
  --text-muted:var(--brand-ink-muted);
  --muted:#8a8a8a;
  --accent:#f2f2f2;
  --accent-hover:#ffffff;
  --accent-soft:rgba(91,141,239,0.16);
  --accent-ring:rgba(91,141,239,0.34);
  --action-fg:#0b0b0b;
  --selection-bg:rgba(91,141,239,0.40);
  --selection-fg:var(--brand-ink);
  --status-success:var(--brand-trust);
  --status-warning:#ff9f0a;
  --status-danger:#ff453a;
  --status-info:var(--brand-primary);
  --shadow-card:none;
  --shadow-card-hover:none;
  --shadow-elevated:0 8px 24px rgba(0,0,0,0.55);
  --shadow-overlay:0 16px 40px rgba(0,0,0,0.70);
}
html[data-text-size="small"]{
  --fs-xxs:10px;
  --fs-xs:11px;
  --fs-sm:12px;
  --fs-md:13px;
  --fs-lg:14px;
  --fs-xl:16px;
  --fs-2xl:18px;
  --fs-3xl:20px;
  --sidebar-nav-icon-size:0.8rem;
}
html[data-text-size="medium"]{
  --fs-xxs:11px;
  --fs-xs:12px;
  --fs-sm:13px;
  --fs-md:14px;
  --fs-lg:16px;
  --fs-xl:19px;
  --fs-2xl:24px;
  --fs-3xl:28px;
  --sidebar-nav-icon-size:0.85rem;
}
html[data-text-size="large"]{
  --fs-xxs:11px;
  --fs-xs:12px;
  --fs-sm:13px;
  --fs-md:15px;
  --fs-lg:17px;
  --fs-xl:22px;
  --fs-2xl:28px;
  --fs-3xl:34px;
  --sidebar-nav-icon-size:0.9rem;
}
html[data-text-size="xl"]{
  --fs-xxs:12px;
  --fs-xs:13px;
  --fs-sm:14px;
  --fs-md:16px;
  --fs-lg:19px;
  --fs-xl:25px;
  --fs-2xl:32px;
  --fs-3xl:40px;
  --sidebar-nav-icon-size:1rem;
}
html[data-corners="small"]{
  --radius-sm:2px;
  --radius-md:4px;
  --radius-lg:6px;
  --radius-pill:4px;
}
html[data-corners="medium"]{
  --radius-sm:4px;
  --radius-md:8px;
  --radius-lg:12px;
  --radius-pill:8px;
}
html[data-corners="large"]{
  --radius-sm:8px;
  --radius-md:12px;
  --radius-lg:16px;
  --radius-pill:999px;
}
html[data-spacing="small"]{
  --space-xs:3px;
  --space-sm:6px;
  --space-md:8px;
  --space-lg:12px;
  --space-xl:16px;
  --page-pad:12px;
  --page-header-bar-height:48px;
  --section-gap:10px;
  --card-pad-y:10px;
  --card-pad-x:12px;
  --grid-gap:8px;
  --stack-gap:8px;
  --mobile-page-tabs-height:34px;
  --sidebar-width:212px;
  --mobile-top-bar-height:44px;
  --wip-banner-row-height:28px;
  --mobile-header-control:32px;
  --touch-target-min:32px;
  --control-height:26px;
  --control-height-mobile:30px;
}
html[data-spacing="medium"]{
  --space-xs:4px;
  --space-sm:7px;
  --space-md:10px;
  --space-lg:14px;
  --space-xl:20px;
  --page-pad:16px;
  --page-header-bar-height:52px;
  --section-gap:12px;
  --card-pad-y:14px;
  --card-pad-x:16px;
  --grid-gap:11px;
  --stack-gap:11px;
  --mobile-page-tabs-height:38px;
  --sidebar-width:226px;
  --mobile-top-bar-height:50px;
  --wip-banner-row-height:30px;
  --mobile-header-control:36px;
  --touch-target-min:36px;
  --control-height:30px;
  --control-height-mobile:36px;
}
html[data-spacing="large"]{
  --space-xs:4px;
  --space-sm:8px;
  --space-md:12px;
  --space-lg:16px;
  --space-xl:24px;
  --page-pad:22px;
  --page-header-bar-height:76px;
  --section-gap:16px;
  --card-pad-y:18px;
  --card-pad-x:20px;
  --grid-gap:14px;
  --stack-gap:14px;
  --mobile-page-tabs-height:44px;
  --sidebar-width:240px;
  --mobile-top-bar-height:56px;
  --wip-banner-row-height:36px;
  --mobile-header-control:40px;
  --touch-target-min:44px;
  --control-height:36px;
  --control-height-mobile:44px;
}
html[data-focus-color="mono"]{
  --brand-primary:var(--brand-ink);
  --brand-primary-hover:#2a2a2a;
  --accent:var(--brand-ink);
  --accent-hover:#2a2a2a;
  --accent-soft:rgba(11,11,11,0.08);
  --accent-ring:rgba(11,11,11,0.28);
  --action-fg:#ffffff;
  --selection-bg:rgba(11,11,11,0.18);
  --selection-fg:var(--brand-ink);
  --status-info:var(--brand-primary);
  --brand:var(--brand-primary);
}
html[data-theme="dark"][data-focus-color="mono"]{
  --brand-primary:#f2f2f2;
  --brand-primary-hover:#ffffff;
  --accent:#f2f2f2;
  --accent-hover:#ffffff;
  --accent-soft:rgba(242,242,242,0.14);
  --accent-ring:rgba(242,242,242,0.34);
  --action-fg:#0b0b0b;
  --selection-bg:rgba(242,242,242,0.28);
  --selection-fg:var(--brand-ink);
  --status-info:var(--brand-primary);
  --brand:var(--brand-primary);
}
html[data-focus-color="red"]{
  --brand-primary:#c62828;
  --brand-primary-hover:#a61e1e;
  --accent:#c62828;
  --accent-hover:#a61e1e;
  --accent-soft:rgba(198,40,40,0.10);
  --accent-ring:rgba(198,40,40,0.28);
  --action-fg:#ffffff;
  --selection-bg:rgba(198,40,40,0.28);
  --selection-fg:var(--brand-ink);
  --status-info:var(--brand-primary);
  --brand:var(--brand-primary);
}
html[data-theme="dark"][data-focus-color="red"]{
  --brand-primary:#ff6b6b;
  --brand-primary-hover:#ff8585;
  --accent:#c62828;
  --accent-hover:#a61e1e;
  --accent-soft:rgba(255,107,107,0.16);
  --accent-ring:rgba(255,107,107,0.34);
  --action-fg:#ffffff;
  --selection-bg:rgba(255,107,107,0.40);
  --selection-fg:var(--brand-ink);
  --status-info:var(--brand-primary);
  --brand:var(--brand-primary);
}
html[data-focus-color="orange"]{
  --brand-primary:#d35400;
  --brand-primary-hover:#b34700;
  --accent:#d35400;
  --accent-hover:#b34700;
  --accent-soft:rgba(211,84,0,0.12);
  --accent-ring:rgba(211,84,0,0.30);
  --action-fg:#ffffff;
  --selection-bg:rgba(211,84,0,0.28);
  --selection-fg:var(--brand-ink);
  --status-info:var(--brand-primary);
  --brand:var(--brand-primary);
}
html[data-theme="dark"][data-focus-color="orange"]{
  --brand-primary:#ff9f43;
  --brand-primary-hover:#ffb366;
  --accent:#d35400;
  --accent-hover:#b34700;
  --accent-soft:rgba(255,159,67,0.16);
  --accent-ring:rgba(255,159,67,0.34);
  --action-fg:#ffffff;
  --selection-bg:rgba(255,159,67,0.40);
  --selection-fg:var(--brand-ink);
  --status-info:var(--brand-primary);
  --brand:var(--brand-primary);
}
html[data-focus-color="amber"]{
  --brand-primary:#c56a0a;
  --brand-primary-hover:#a35708;
  --accent:#c56a0a;
  --accent-hover:#a35708;
  --accent-soft:rgba(197,106,10,0.12);
  --accent-ring:rgba(197,106,10,0.30);
  --action-fg:#ffffff;
  --selection-bg:rgba(197,106,10,0.28);
  --selection-fg:var(--brand-ink);
  --status-info:var(--brand-primary);
  --brand:var(--brand-primary);
}
html[data-theme="dark"][data-focus-color="amber"]{
  --brand-primary:#ffb020;
  --brand-primary-hover:#ffc14d;
  --accent:#c56a0a;
  --accent-hover:#a35708;
  --accent-soft:rgba(255,176,32,0.16);
  --accent-ring:rgba(255,176,32,0.34);
  --action-fg:#ffffff;
  --selection-bg:rgba(255,176,32,0.40);
  --selection-fg:var(--brand-ink);
  --status-info:var(--brand-primary);
  --brand:var(--brand-primary);
}
html[data-focus-color="yellow"]{
  --brand-primary:#c9a000;
  --brand-primary-hover:#a68500;
  --accent:#c9a000;
  --accent-hover:#a68500;
  --accent-soft:rgba(201,160,0,0.14);
  --accent-ring:rgba(201,160,0,0.32);
  --action-fg:#0b0b0b;
  --selection-bg:rgba(201,160,0,0.28);
  --selection-fg:var(--brand-ink);
  --status-info:var(--brand-primary);
  --brand:var(--brand-primary);
}
html[data-theme="dark"][data-focus-color="yellow"]{
  --brand-primary:#f5d000;
  --brand-primary-hover:#ffe14d;
  --accent:#8a7000;
  --accent-hover:#6e5a00;
  --accent-soft:rgba(245,208,0,0.18);
  --accent-ring:rgba(245,208,0,0.36);
  --action-fg:#ffffff;
  --selection-bg:rgba(245,208,0,0.40);
  --selection-fg:var(--brand-ink);
  --status-info:var(--brand-primary);
  --brand:var(--brand-primary);
}
html[data-focus-color="lime"]{
  --brand-primary:#6a9a00;
  --brand-primary-hover:#567d00;
  --accent:#6a9a00;
  --accent-hover:#567d00;
  --accent-soft:rgba(106,154,0,0.12);
  --accent-ring:rgba(106,154,0,0.30);
  --action-fg:#ffffff;
  --selection-bg:rgba(106,154,0,0.28);
  --selection-fg:var(--brand-ink);
  --status-info:var(--brand-primary);
  --brand:var(--brand-primary);
}
html[data-theme="dark"][data-focus-color="lime"]{
  --brand-primary:#a8e63a;
  --brand-primary-hover:#bdf05a;
  --accent:#6a9a00;
  --accent-hover:#567d00;
  --accent-soft:rgba(168,230,58,0.16);
  --accent-ring:rgba(168,230,58,0.34);
  --action-fg:#ffffff;
  --selection-bg:rgba(168,230,58,0.40);
  --selection-fg:var(--brand-ink);
  --status-info:var(--brand-primary);
  --brand:var(--brand-primary);
}
html[data-focus-color="green"]{
  --brand-primary:#1f7a4d;
  --brand-primary-hover:#18633e;
  --accent:#1f7a4d;
  --accent-hover:#18633e;
  --accent-soft:rgba(31,122,77,0.10);
  --accent-ring:rgba(31,122,77,0.28);
  --action-fg:#ffffff;
  --selection-bg:rgba(31,122,77,0.28);
  --selection-fg:var(--brand-ink);
  --status-info:var(--brand-primary);
  --brand:var(--brand-primary);
}
html[data-theme="dark"][data-focus-color="green"]{
  --brand-primary:#3dd68c;
  --brand-primary-hover:#5ce0a0;
  --accent:#1f7a4d;
  --accent-hover:#18633e;
  --accent-soft:rgba(61,214,140,0.16);
  --accent-ring:rgba(61,214,140,0.34);
  --action-fg:#ffffff;
  --selection-bg:rgba(61,214,140,0.40);
  --selection-fg:var(--brand-ink);
  --status-info:var(--brand-primary);
  --brand:var(--brand-primary);
}
html[data-focus-color="teal"]{
  --brand-primary:#0f766e;
  --brand-primary-hover:#0c5f59;
  --accent:#0f766e;
  --accent-hover:#0c5f59;
  --accent-soft:rgba(15,118,110,0.12);
  --accent-ring:rgba(15,118,110,0.30);
  --action-fg:#ffffff;
  --selection-bg:rgba(15,118,110,0.28);
  --selection-fg:var(--brand-ink);
  --status-info:var(--brand-primary);
  --brand:var(--brand-primary);
}
html[data-theme="dark"][data-focus-color="teal"]{
  --brand-primary:#2dd4bf;
  --brand-primary-hover:#5eead4;
  --accent:#0f766e;
  --accent-hover:#0c5f59;
  --accent-soft:rgba(45,212,191,0.16);
  --accent-ring:rgba(45,212,191,0.34);
  --action-fg:#ffffff;
  --selection-bg:rgba(45,212,191,0.40);
  --selection-fg:var(--brand-ink);
  --status-info:var(--brand-primary);
  --brand:var(--brand-primary);
}
html[data-focus-color="cyan"]{
  --brand-primary:#0891b2;
  --brand-primary-hover:#0e7490;
  --accent:#0891b2;
  --accent-hover:#0e7490;
  --accent-soft:rgba(8,145,178,0.12);
  --accent-ring:rgba(8,145,178,0.30);
  --action-fg:#ffffff;
  --selection-bg:rgba(8,145,178,0.28);
  --selection-fg:var(--brand-ink);
  --status-info:var(--brand-primary);
  --brand:var(--brand-primary);
}
html[data-theme="dark"][data-focus-color="cyan"]{
  --brand-primary:#22d3ee;
  --brand-primary-hover:#67e8f9;
  --accent:#0891b2;
  --accent-hover:#0e7490;
  --accent-soft:rgba(34,211,238,0.16);
  --accent-ring:rgba(34,211,238,0.34);
  --action-fg:#ffffff;
  --selection-bg:rgba(34,211,238,0.40);
  --selection-fg:var(--brand-ink);
  --status-info:var(--brand-primary);
  --brand:var(--brand-primary);
}
html[data-focus-color="blue"]{
  --brand-primary:#2756c7;
  --brand-primary-hover:#1e439d;
  --accent:#2756c7;
  --accent-hover:#1e439d;
  --accent-soft:rgba(39,86,199,0.10);
  --accent-ring:rgba(39,86,199,0.28);
  --action-fg:#ffffff;
  --selection-bg:rgba(39,86,199,0.28);
  --selection-fg:var(--brand-ink);
  --status-info:var(--brand-primary);
  --brand:var(--brand-primary);
}
html[data-theme="dark"][data-focus-color="blue"]{
  --brand-primary:#5b8def;
  --brand-primary-hover:#7aa3f5;
  --accent:#2756c7;
  --accent-hover:#1e439d;
  --accent-soft:rgba(91,141,239,0.16);
  --accent-ring:rgba(91,141,239,0.34);
  --action-fg:#ffffff;
  --selection-bg:rgba(91,141,239,0.40);
  --selection-fg:var(--brand-ink);
  --status-info:var(--brand-primary);
  --brand:var(--brand-primary);
}
html[data-focus-color="indigo"]{
  --brand-primary:#4338ca;
  --brand-primary-hover:#3730a3;
  --accent:#4338ca;
  --accent-hover:#3730a3;
  --accent-soft:rgba(67,56,202,0.12);
  --accent-ring:rgba(67,56,202,0.30);
  --action-fg:#ffffff;
  --selection-bg:rgba(67,56,202,0.28);
  --selection-fg:var(--brand-ink);
  --status-info:var(--brand-primary);
  --brand:var(--brand-primary);
}
html[data-theme="dark"][data-focus-color="indigo"]{
  --brand-primary:#818cf8;
  --brand-primary-hover:#a5b4fc;
  --accent:#4338ca;
  --accent-hover:#3730a3;
  --accent-soft:rgba(129,140,248,0.16);
  --accent-ring:rgba(129,140,248,0.34);
  --action-fg:#ffffff;
  --selection-bg:rgba(129,140,248,0.40);
  --selection-fg:var(--brand-ink);
  --status-info:var(--brand-primary);
  --brand:var(--brand-primary);
}
html[data-focus-color="violet"]{
  --brand-primary:#7c3aed;
  --brand-primary-hover:#6d28d9;
  --accent:#7c3aed;
  --accent-hover:#6d28d9;
  --accent-soft:rgba(124,58,237,0.12);
  --accent-ring:rgba(124,58,237,0.30);
  --action-fg:#ffffff;
  --selection-bg:rgba(124,58,237,0.28);
  --selection-fg:var(--brand-ink);
  --status-info:var(--brand-primary);
  --brand:var(--brand-primary);
}
html[data-theme="dark"][data-focus-color="violet"]{
  --brand-primary:#a78bfa;
  --brand-primary-hover:#c4b5fd;
  --accent:#7c3aed;
  --accent-hover:#6d28d9;
  --accent-soft:rgba(167,139,250,0.16);
  --accent-ring:rgba(167,139,250,0.34);
  --action-fg:#ffffff;
  --selection-bg:rgba(167,139,250,0.40);
  --selection-fg:var(--brand-ink);
  --status-info:var(--brand-primary);
  --brand:var(--brand-primary);
}
html[data-focus-color="pink"]{
  --brand-primary:#db2777;
  --brand-primary-hover:#be185d;
  --accent:#db2777;
  --accent-hover:#be185d;
  --accent-soft:rgba(219,39,119,0.12);
  --accent-ring:rgba(219,39,119,0.30);
  --action-fg:#ffffff;
  --selection-bg:rgba(219,39,119,0.28);
  --selection-fg:var(--brand-ink);
  --status-info:var(--brand-primary);
  --brand:var(--brand-primary);
}
html[data-theme="dark"][data-focus-color="pink"]{
  --brand-primary:#f472b6;
  --brand-primary-hover:#f9a8d4;
  --accent:#db2777;
  --accent-hover:#be185d;
  --accent-soft:rgba(244,114,182,0.16);
  --accent-ring:rgba(244,114,182,0.34);
  --action-fg:#ffffff;
  --selection-bg:rgba(244,114,182,0.40);
  --selection-fg:var(--brand-ink);
  --status-info:var(--brand-primary);
  --brand:var(--brand-primary);
}
html[data-focus-color="rose"]{
  --brand-primary:#e11d48;
  --brand-primary-hover:#be123c;
  --accent:#e11d48;
  --accent-hover:#be123c;
  --accent-soft:rgba(225,29,72,0.12);
  --accent-ring:rgba(225,29,72,0.30);
  --action-fg:#ffffff;
  --selection-bg:rgba(225,29,72,0.28);
  --selection-fg:var(--brand-ink);
  --status-info:var(--brand-primary);
  --brand:var(--brand-primary);
}
html[data-theme="dark"][data-focus-color="rose"]{
  --brand-primary:#fb7185;
  --brand-primary-hover:#fda4af;
  --accent:#e11d48;
  --accent-hover:#be123c;
  --accent-soft:rgba(251,113,133,0.16);
  --accent-ring:rgba(251,113,133,0.34);
  --action-fg:#ffffff;
  --selection-bg:rgba(251,113,133,0.40);
  --selection-fg:var(--brand-ink);
  --status-info:var(--brand-primary);
  --brand:var(--brand-primary);
}
