/* ── THEME (20-ago-2026) ──────────────────────────────────────────────────
   Ported from the internal platform's src/theme.css so the two apps read
   as one product, not two. Dark is the default (:root) — matches the
   portal's own look until now. [data-theme='light'] overrides the same
   variable names. Saturated accent colours (blue/green/red/amber) are
   left as literal hex on purpose, same reasoning as the source file: they
   read fine against either background, and re-theming them added risk
   without benefit.
   Toggle: document.documentElement.setAttribute('data-theme','light'|'dark')
*/
:root {
  --bg-app: #0B1829;
  --bg-card: #112240;
  --bg-inset: #0D1F35;
  --bg-input: #0F2340;
  --bg-hover: #1A3355;
  --bg-subtle: #162E4A;
  --border: #1E3A5F;
  --border-alt: #2A3F5F;
  --bg-selected: #1D3461;
  --text-primary: #f1f5f9;
  --text-secondary: #e2e8f0;
  --text-tertiary: #cbd5e1;
  --text-muted: #94a3b8;
  --text-label: #7B93B5;
  --text-dim: #475569;
  --text-dim2: #64748b;
  --bg-chrome: #03101E;
  --card-shadow: 0 1px 3px rgba(0,0,0,.3);
  --theme-transition: background-color .25s ease, color .25s ease, border-color .25s ease;
  /* Primary brand accent — matches the internal app's real action blue,
     not the older navy this portal used before this file existed. */
  --accent: #2563EB;
  --accent-light: #60A5FA;
}

[data-theme='light'] {
  --bg-app: #F4F6FA;
  --bg-card: #FFFFFF;
  --bg-inset: #F1F4F9;
  --bg-input: #FFFFFF;
  --bg-hover: #EEF2F8;
  --bg-subtle: #EDF1F7;
  --border: #E2E8F0;
  --border-alt: #D8E0EA;
  --bg-selected: #DCEAFE;
  --text-primary: #0F172A;
  --text-secondary: #1E293B;
  --text-tertiary: #334155;
  --text-muted: #64748B;
  --text-label: #5B6B85;
  --text-dim: #94A3B8;
  --text-dim2: #94A3B8;
  --bg-chrome: #EEF1F6;
  --card-shadow: 0 1px 3px rgba(15,23,42,.08), 0 1px 2px rgba(15,23,42,.04);
}

* { transition: var(--theme-transition); box-sizing: border-box; }
body { background: var(--bg-app); color: var(--text-primary); }
