/* EventForecast design tokens (DESIGN_SPEC.md §1, with the v4 fixes from PLAN.md decision 1).
   Headings use Syne 600, as the design artifact does (owner decision D1, 2026-10-01).
   Numbers and percentages stay at weight 500, never bold. */

/* ── Fonts (self-hosted) ─────────────────────────────────────────────────── */
@font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 400 600; font-display: swap;
  src: url('/forecast/assets/fonts/DMSans-variable-400-600-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 400 600; font-display: swap;
  src: url('/forecast/assets/fonts/DMSans-variable-400-600-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'DM Mono'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('/forecast/assets/fonts/DMMono-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'DM Mono'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('/forecast/assets/fonts/DMMono-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+20A0-20AB, U+20AD-20C0, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'DM Mono'; font-style: normal; font-weight: 500; font-display: swap;
  src: url('/forecast/assets/fonts/DMMono-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'DM Mono'; font-style: normal; font-weight: 500; font-display: swap;
  src: url('/forecast/assets/fonts/DMMono-500-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+20A0-20AB, U+20AD-20C0, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 200 800; font-display: swap;
  src: url('/forecast/assets/fonts/PlusJakartaSans-variable-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 200 800; font-display: swap;
  src: url('/forecast/assets/fonts/PlusJakartaSans-variable-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* Syne (variable 400-800, OFL). Display face for headings and figures; figures stay at 500. */
@font-face { font-family: 'Syne'; font-style: normal; font-weight: 400 800; font-display: swap;
  src: local('Syne'), url('/forecast/assets/fonts/Syne-variable-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Syne'; font-style: normal; font-weight: 400 800; font-display: swap;
  src: local('Syne'), url('/forecast/assets/fonts/Syne-variable-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

:root {
  /* ── Ink scale ── */
  --ink: #0D0F1A;
  --text: #4E505E;
  --text-strong: #3A3C4A;
  --text-muted: #5E606C;
  --text-faint: #8E90A0;
  --text-faint-dark: #7A7C8C;
  --on-dark: #FFFAF0;
  --on-dark-2: #D9D0C3;
  --on-dark-3: #EFE8DD;

  /* ── Surfaces ── */
  --bg-app: #FFFAF0;
  --bg-card: #FFFFFF;
  --bg-peach: #FFF1DE;
  --bg-apricot: #FFDAB2;
  --bg-note: #FFFAF2;
  --bg-bench: #FDF3E3;
  --bg-backdrop: #EDE7DD;
  --dark-2: #242947;
  --dark-3: #383E62;
  --dark-4: #4A5078;

  /* ── Brand / accent ── */
  --orange: #FF8500;
  --cta: #FFA335;
  --orange-light: #FFAD61;
  --lively-red: #EF3543;
  --pink: #F59A8F;
  --glow: radial-gradient(circle, rgba(240,81,44,.35), rgba(241,136,0,.12) 45%, transparent 70%);
  --banner-gradient: linear-gradient(90deg, #FFF1DE, #fff 60%);
  --chart-gradient: linear-gradient(90deg, #EF3543, #FF8500 45%, #FF8500);
  --negative-gradient: linear-gradient(90deg, #F59A8F, #EF3543);
  --positive-gradient: linear-gradient(90deg, #7BDC9A, #1F9D55);
  --focus-ring: 0 0 0 2px #fff, 0 0 0 4px #6C3BF0;

  /* ── Status (bg / fg / dot) ── */
  --ok-bg: #E4F3EA;       --ok-fg: #156238;      --ok-dot: #1F9D55;
  --ok-box-bg: #EEF8F1;   --ok-box-border: #C9E7D3;
  --warn-bg: #FDF1DC;     --warn-fg: #8A4F05;    --warn-dot: #D98A0B;  --warn-border: #F1DDB8;
  --neutral-bg: #F1ECE4;  --neutral-fg: #5A4F43; --neutral-dot: #8E90A0;
  --standard-bg: #EFE8DD; --standard-fg: #5E606C; --standard-dot: #CDBFAE;
  --paused-border: #B5A896;
  --finished-bg: #EFEAFE; --finished-fg: #4A2BB0; --finished-dot: #6C3BF0;
  --solid-bg: #E9EEF7;    --solid-fg: #23457A;
  --risk-bg: #FFDAB2;     --risk-fg: #8C3A06;
  --danger-bg: #FDEEEC;   --danger-fg: #B4231C;
  --error-input: #D9534A; --error-section: #E3A49C;

  /* ── Warm neutrals ── */
  --warm-track: #F3E6D3;
  --warm-next: #9C8B76;
  --warm-curve: #DCD3C6;
  --warm-dash: #CDBFAE;
  --warm-caption: #8A7E71;

  /* ── Alpha ink ── */
  --a06: rgba(13,15,28,.06);
  --a07: rgba(13,15,28,.07);
  --a08: rgba(13,15,28,.08);
  --a10: rgba(13,15,28,.10);
  --a12: rgba(13,15,28,.12);
  --a14: rgba(13,15,28,.14);
  --a18: rgba(13,15,28,.18);
  --a22: rgba(13,15,28,.22);
  --a28: rgba(13,15,28,.28);

  /* ── Type ── */
  --font-sans: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono: 'DM Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;
  --font-display: 'Syne', 'Plus Jakarta Sans', 'DM Sans', system-ui, sans-serif;
  --fw-heading: 600;
  --fw-number: 500;

  /* ── Radii ── */
  --r-pill: 999px;
  --r-panel: 24px;
  --r-card: 20px;
  --r-figure: 18px;
  --r-note: 16px;
  --r-item: 14px;
  --r-box: 12px;
  --r-field: 10px;
  --r-bar: 9px;
  --r-seg: 8px;
  --r-chip: 7px;

  /* ── Shadows ── */
  --sh-card: 0 1px 2px rgba(22,17,11,.04);
  --sh-panel: 0 1px 3px rgba(22,17,11,.05);
  --sh-hover: 0 6px 20px rgba(22,17,11,.07);
  --sh-btn: 0 1px 2px rgba(22,17,11,.15);
  --sh-seg: 0 1px 2px rgba(22,17,11,.1);
  --sh-seg-strong: 0 1px 2px rgba(22,17,11,.12);
  --sh-nav-current: 0 1px 2px rgba(22,17,11,.08), 0 0 0 1px rgba(13,15,28,.14);
  --sh-menu: 0 16px 40px rgba(22,17,11,.14);
  --sh-popover: 0 16px 40px rgba(22,17,11,.18);
  --sh-toast: 0 12px 32px rgba(22,17,11,.3);
  --sh-launcher: 0 8px 24px rgba(22,17,11,.25);

  /* ── Layout ── */
  --sidebar-w: 252px;
  --sidebar-w-firstrun: 272px;
  --topbar-h: 56px;
  --content-max: 1180px;
  --onb-max: 880px;

  /* ── Motion ── */
  --t-fast: .15s;
  --t-rise: .3s;

  /* ── z-index scale ── */
  --z-sticky: 5;
  --z-drawer: 40;
  --z-menu: 50;
  --z-launcher: 61;
  --z-toast: 70;
}

@keyframes ef-rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes ef-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
@keyframes ef-shimmer { 0% { background-position: -400px 0; } 100% { background-position: 400px 0; } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}
