/* Semantic theme contract. Add future palettes under [data-ui-theme="…"].
   Components consume roles, never a named palette. No preference storage or UI. */
@font-face {
  font-family:Inter;
  src:url("assets/fonts/InterVariable.woff2") format("woff2");
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
}
:root,
[data-ui-theme="titan"] {
  color-scheme:light;
  --ui-header-bg:#173B31;
  --ui-app-bg:#E8EDF2;
  --ui-sidebar-bg:#293640;
  --ui-sidebar-hover:#344550;
  --ui-sidebar-selected:#354F62;
  --ui-sidebar-text:#E5EBF0;
  --ui-sidebar-muted:#AFBDC8;
  --ui-sidebar-accent:#80B6D6;
  --ui-header-text:#F2F6F3;
  --ui-header-muted:#C2D1CB;
  --ui-header-brand:#A2D8A9;
  --ui-header-hover:rgba(255,255,255,.10);
  --ui-header-border:rgba(255,255,255,.16);
  --ui-header-status-success:#A3D2B9;
  --ui-header-status-warning:#E5BF8D;
  --ui-header-status-danger:#E2A5AC;
  --ui-surface:#FFFFFF;
  --ui-surface-soft:#F3F7FB;
  /* Surface hierarchy: content, work panels, inputs and analysis are not
     interchangeable. These roles are shared by desktop and mobile. */
  --ui-surface-card:var(--ui-surface);
  --ui-surface-panel:#F7F8FA;
  --ui-surface-inset:#E6ECF2;
  --ui-surface-input:#EEF3F8;
  --ui-surface-actions:#E2EAF3;
  --ui-surface-info:#EAF1F9;
  --ui-surface-document:#FAF9F6;
  --ui-surface-analytical:#EEF0F7;
  --ui-surface-hover:#EDF3F7;
  --ui-surface-selected:#E4EFF6;
  --ui-surface-disabled:#E8EDF1;
  --ui-border:#BAC7D3;
  --ui-border-card:#AEBECB;
  --ui-border-panel:#9AABBB;
  --ui-border-section:#93A6B8;
  --ui-border-strong:var(--ui-border-section);
  --ui-border-interactive:#687E93;
  --ui-text:#203040;
  --ui-text-secondary:#516477;
  --ui-text-label:#405368;
  --ui-text-placeholder:#607488;
  --ui-text-disabled:#748293;
  --ui-icon:#43566A;
  --ui-station-eyebrow:#A45E24;
  --ui-station-heading:#4F7652;
  --ui-station-shift-text:#000000;
  --ui-station-wordmark:#23613F;
  --ui-station-wordmark-highlight:#32804F;
  --ui-station-wordmark-sheen:#286D5D;
  --ui-navigation-card-hover:#E0EDE5;
  --ui-navigation-entry-hover:var(--ui-success);
  --ui-navigation-entry-hover-text:var(--ui-on-accent);
  --ui-accent:#2563A6;
  --ui-accent-hover:#1F528B;
  --ui-accent-soft:#E4EFF6;
  --ui-on-accent:#FFFFFF;
  --ui-selection-bg:var(--ui-accent);
  --ui-selection-text:var(--ui-on-accent);
  --ui-success:#2F7C58;
  --ui-success-text:#246448;
  --ui-success-soft:#E7F2EC;
  --ui-warning:#C58739;
  --ui-warning-text:#80551F;
  --ui-warning-soft:#FAF0E2;
  --ui-danger:#B34C57;
  --ui-danger-hover:#963E48;
  --ui-danger-soft:#F8EAEC;
  --ui-info:var(--ui-accent);
  --ui-info-soft:var(--ui-accent-soft);
  --ui-button-primary-bg:var(--ui-accent);
  --ui-button-primary-hover:var(--ui-accent-hover);
  --ui-button-primary-text:var(--ui-on-accent);
  --ui-button-secondary-bg:var(--ui-surface-actions);
  --ui-button-secondary-text:var(--ui-text);
  --ui-button-secondary-border:var(--ui-border-interactive);
  --ui-button-icon-bg:var(--ui-surface-card);
  --ui-button-icon-border:var(--ui-border-interactive);
  --ui-segment-bg:#DCE6F0;
  --ui-segment-text:#43566A;
  --ui-segment-active:var(--ui-accent);
  --ui-segment-active-text:var(--ui-on-accent);
  --ui-table-head:#E7EEF5;
  --ui-table-total:#DCE6F0;
  --ui-focus-ring:0 0 0 3px rgba(37,99,166,.18);
  --ui-backdrop:rgba(28,40,50,.48);
  --ui-shadow-none:none;
  --ui-shadow-sm:0 1px 2px rgba(38,53,65,.07),0 3px 7px rgba(38,53,65,.05);
  --ui-shadow-panel:0 2px 4px rgba(38,53,65,.05),0 6px 16px rgba(38,53,65,.08);
  --ui-shadow-workspace:0 2px 3px rgba(38,53,65,.05),0 7px 18px rgba(38,53,65,.09);
  --ui-shadow-overlay:0 16px 40px rgba(38,53,65,.18);
  /* Docked Shell geometry is independent of the temporary expanded rail. */
  --ui-shell-edge:14px;
  --ui-shell-gap:14px;
  --ui-shell-radius:18px;
  --ui-shell-header-height:58px;
  --ui-shell-rail-width:64px;
  --ui-shell-rail-expanded:232px;
  --ui-shell-control-size:32px;
  --ui-shell-nav-size:44px;
  --ui-shell-header-layer:70;
  --ui-shell-sidebar-layer:80;
  --ui-shell-shadow:0 4px 16px rgba(30,48,64,.12),0 1px 3px rgba(30,48,64,.06);
  --ui-shell-motion:200ms;
  --ui-shell-easing:cubic-bezier(.2,.7,.2,1);
  --ui-radius-control:8px;
  --ui-radius-panel:12px;
  --ui-radius-large:16px;
  --ui-radius-mobile:18px;
  --ui-radius-pill:999px;
  --ui-control-height:40px;
  --ui-control-compact:34px;
  --ui-control-touch:44px;
  --ui-space-1:4px;
  --ui-space-2:8px;
  --ui-space-3:12px;
  --ui-space-4:16px;
  --ui-space-5:20px;
  --ui-space-6:24px;
  --ui-font:Inter,"Segoe UI",Arial,sans-serif;
  --ui-font-mono:"Cascadia Code",Consolas,monospace;
  --ui-font-body:14px;
  --ui-font-caption:12px;
  --ui-font-label:13px;
  --ui-font-section:17px;
  --ui-font-title:24px;
  --ui-font-value:30px;
  --ui-weight-normal:400;
  --ui-weight-medium:500;
  --ui-weight-semibold:600;
  --ui-line-height:1.5;
  --ui-duration:160ms;
  --ui-chart-1:#347BA8;
  --ui-chart-2:#B59059;
  --ui-chart-3:#9185A5;
  --ui-chart-4:#718BA2;
  --ui-chart-5:#9BA8B2;
  --ui-chart-6:#789994;
  --ui-chart-7:#9F8F87;
  --ui-chart-8:#8799B3;

  /* Metric identity, not operational status. Decorative accents and readable
     icon ink are separate roles, especially for the light amber card. */
  --ui-metric-label:var(--ui-text-label);
  --ui-metric-closed-bg:#EAF2FC;
  --ui-metric-closed-accent:#347BA8;
  --ui-metric-closed-ink:#29658C;
  --ui-metric-active-bg:#F0EDFA;
  --ui-metric-active-accent:#8775BA;
  --ui-metric-active-ink:#6A579E;
  --ui-metric-output-bg:#FFF2E3;
  --ui-metric-output-accent:#CF9345;
  --ui-metric-output-ink:#94601F;
  --ui-metric-period-bg:#EBF0F4;
  --ui-metric-period-accent:#607F98;
  --ui-metric-period-ink:#48677E;

  /* Compatibility aliases for the existing components, not a second theme. */
  --grass-900:var(--ui-text);
  --grass-800:var(--ui-accent-hover);
  --grass-700:var(--ui-accent);
  --grass-600:var(--ui-accent);
  --grass-500:var(--ui-accent);
  --grass-100:var(--ui-accent-soft);
  --mint-50:var(--ui-surface-soft);
  --line:var(--ui-border);
  --text:var(--ui-text);
  --muted:var(--ui-text-secondary);
  --panel:var(--ui-surface);
  --warn:var(--ui-warning);
  --blue:var(--ui-info);
  --shadow:var(--ui-shadow-panel);
}
