/*
 * TokenPilot theme token foundation.
 *
 * This file is intentionally not loaded globally yet.
 * It salvages the semantic token direction from PR #1 while keeping
 * the current main cascade stable for the next controlled rollout steps.
 *
 * Planned future load order:
 * 1. tokens.css                 semantic design tokens
 * 2. app.css                    legacy/components using old and new tokens
 * 3. optional component CSS     one file at a time
 * 4. optional theme-light.css   after a pilot page has passed visual checks
 *
 * During the refactor, legacy aliases such as --bg, --panel, --text and
 * --line remain available. New CSS should prefer semantic tokens below.
 */

:root{
  color-scheme:dark;

  /* Page surfaces */
  --surface-page:#0b1020;
  --surface-page-gradient:linear-gradient(180deg,#08101d 0%, #0b1020 100%);
  --surface-card:#131d36;
  --surface-card-muted:#1a2748;
  --surface-card-strong:#0f172a;
  --surface-overlay:rgba(2,6,23,.58);

  /* Text */
  --text-primary:#f7f9ff;
  --text-secondary:#a5b7dd;
  --text-tertiary:#64748b;
  --text-inverse:#ffffff;

  /* Borders and shadows */
  --border-subtle:#344773;
  --border-muted:rgba(148,163,184,.18);
  --border-strong:rgba(84,109,168,.72);
  --shadow-panel:0 14px 34px rgba(0,0,0,.34);
  --shadow-floating:0 18px 42px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.06);
  --shadow-card-soft:0 8px 18px rgba(2,6,23,.20);
  --shadow-inset-highlight:inset 0 1px 0 rgba(255,255,255,.06);

  /* Brand/accent */
  --accent-primary:#3b82f6;
  --accent-primary-strong:#2563eb;
  --accent-primary-soft:rgba(96,165,250,.20);
  --accent-primary-ring:rgba(96,165,250,.24);
  --accent-info:#06b6d4;
  --accent-info-soft:rgba(56,189,248,.12);
  --accent-violet:#a855f7;
  --accent-violet-soft:rgba(168,85,247,.14);
  --accent-violet-ring:rgba(168,85,247,.24);

  /* State */
  --state-success:#22c55e;
  --state-success-text:#a7f3d0;
  --state-success-soft:rgba(34,197,94,.12);
  --state-success-ring:rgba(34,197,94,.30);
  --state-warning:#f59e0b;
  --state-warning-soft:rgba(245,158,11,.12);
  --state-warning-ring:rgba(234,179,8,.24);
  --state-danger:#ef4444;
  --state-danger-soft:rgba(239,68,68,.12);
  --state-danger-ring:rgba(248,113,113,.30);
  --state-orange:#f97316;

  /* Radius/typography */
  --radius-md:12px;
  --radius-lg:18px;
  --font-sans:"Inter", "IBM Plex Sans", system-ui, -apple-system, sans-serif;
  --font-features:"cv11", "ss01", "tnum";

  /* Layout stability */
  --layout-dashboard-stable-min-height:calc(100vh - 160px);
  --layout-dashboard-panel-min-height:120px;
  --layout-dashboard-fold-summary-min-height:74px;
  --layout-dashboard-status-min-height:74px;
  --layout-dashboard-activity-row-min-height:66px;
  --layout-dashboard-activity-row-min-height-sm:62px;

  /* Legacy aliases kept for migration compatibility. */
  --bg:var(--surface-page);
  --panel:var(--surface-card);
  --panel-2:var(--surface-card-muted);
  --line:var(--border-subtle);
  --soft:var(--text-secondary);
  --text:var(--text-primary);
  --muted:var(--text-tertiary);
  --shadow:var(--shadow-panel);
  --radius:var(--radius-lg);
  --blue:var(--accent-primary);
  --cyan:var(--accent-info);
  --green:var(--state-success);
  --red:var(--state-danger);
  --yellow:var(--state-warning);
  --orange:var(--state-orange);
  --purple:var(--accent-violet);
  --purple-soft:var(--accent-violet-soft);
}

:root[data-theme="light"]{
  color-scheme:light;

  /* Page surfaces */
  --surface-page:#f7f8fa;
  --surface-page-gradient:var(--surface-page);
  --surface-card:#ffffff;
  --surface-card-muted:#f1f5f9;
  --surface-card-strong:#ffffff;
  --surface-overlay:rgba(241,245,249,.72);

  /* Text */
  --text-primary:#0f172a;
  --text-secondary:#475569;
  --text-tertiary:#94a3b8;
  --text-inverse:#ffffff;

  /* Borders and shadows */
  --border-subtle:#e5e7eb;
  --border-muted:#f1f3f5;
  --border-strong:#d8e1ec;
  --shadow-panel:0 14px 34px rgba(15,23,42,.08);
  --shadow-floating:0 14px 34px rgba(15,23,42,.08), inset 0 1px 0 rgba(255,255,255,.72);
  --shadow-card-soft:0 8px 18px rgba(15,23,42,.08);
  --shadow-inset-highlight:inset 0 1px 0 rgba(255,255,255,.78);

  /* Brand/accent */
  --accent-primary:#2563eb;
  --accent-primary-strong:#1d4ed8;
  --accent-primary-soft:rgba(37,99,235,.10);
  --accent-primary-ring:rgba(37,99,235,.22);
  --accent-info:#0891b2;
  --accent-info-soft:rgba(8,145,178,.12);
  --accent-violet:#6366f1;
  --accent-violet-soft:rgba(99,102,241,.10);
  --accent-violet-ring:rgba(99,102,241,.22);

  /* State */
  --state-success:#16a34a;
  --state-success-text:#16a34a;
  --state-success-soft:rgba(22,163,74,.10);
  --state-success-ring:rgba(22,163,74,.24);
  --state-warning:#ca8a04;
  --state-warning-soft:rgba(202,138,4,.10);
  --state-warning-ring:rgba(202,138,4,.24);
  --state-danger:#dc2626;
  --state-danger-soft:rgba(220,38,38,.10);
  --state-danger-ring:rgba(220,38,38,.22);
  --state-orange:#ea580c;

  /* Legacy aliases kept for migration compatibility. */
  --bg:var(--surface-page);
  --panel:var(--surface-card);
  --panel-2:var(--surface-card-muted);
  --line:var(--border-subtle);
  --line-soft:var(--border-muted);
  --soft:var(--text-secondary);
  --text:var(--text-primary);
  --muted:var(--text-tertiary);
  --shadow:var(--shadow-panel);
  --blue:var(--accent-primary);
  --cyan:var(--accent-info);
  --green:var(--state-success);
  --red:var(--state-danger);
  --yellow:var(--state-warning);
  --orange:var(--state-orange);
  --green-soft:var(--state-success-soft);
  --red-soft:var(--state-danger-soft);
  --yellow-soft:var(--state-warning-soft);
  --blue-soft:var(--accent-primary-soft);
  --cyan-soft:var(--accent-info-soft);
  --orange-soft:rgba(234,88,12,.10);
  --purple:var(--accent-violet);
  --purple-soft:var(--accent-violet-soft);
}
