:root {
  color-scheme: light;

  /* PolicyParse-inspired foundations. Keep Streamlit-compatible semantic names stable. */
  --canvas: #f8f9fa;
  --canvas-grid: transparent;
  --surface: #ffffff;
  --surface-raised: #ffffff;
  --surface-sunken: #f3f5f8;
  --surface-hover: #eef2f6;
  --surface-selected: #e8f1fa;
  --ink: #24303a;
  --ink-strong: #17222b;
  --ink-secondary: #4a5963;
  --ink-muted: #6b7782;
  --border-soft: #e8ecef;
  --border: #dce2e7;
  --border-strong: #b5c0c9;

  --brand: #005aa9;
  --brand-dark: #004887;
  --brand-pressed: #003866;
  --brand-soft: #eef6fc;
  --brand-selected: #e6f1fa;
  --success: #17775d;
  --success-soft: #e5f5ee;
  --warning: #a65a00;
  --warning-soft: #fff2dd;
  --signal: #b42318;
  --signal-dark: #8d1b12;
  --signal-soft: #fff0ee;
  --info: #005aa9;
  --info-soft: #eef6fc;
  --focus: #005aa9;

  --shadow-quiet: 0 1px 0 rgba(17, 24, 39, 0.02), 0 1px 2px rgba(17, 24, 39, 0.04);
  --shadow-float: 0 1px 0 rgba(17, 24, 39, 0.02), 0 16px 40px -12px rgba(17, 24, 39, 0.14);
  --elevation: var(--shadow-quiet);
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 10px;
  --rail: 236px;
  --rail-collapsed: 68px;
  --page-gutter: clamp(20px, 3vw, 28px);
  --section-gap: clamp(18px, 2.5vw, 28px);
  --compact-row: 36px;
  --control-height: 32px;
  --topbar-height: 56px;

  --font-sans: "Segoe UI Variable", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  --font-body: var(--font-sans);
  --font-display: var(--font-sans);
  --font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  /* Compatibility aliases for existing feature CSS. */
  --navy: var(--ink-strong);
  --navy-2: #344550;
  --paper: var(--canvas);
  --line: var(--border);
  --hairline: var(--border-soft);
  --muted: var(--ink-secondary);
  --control-line: var(--border-strong);
  --bg-panel: #fbfcfd;
  --bg-elev: #ffffff;
}

* { box-sizing: border-box; }
html { background: var(--canvas); }
body {
  margin: 0;
  color: var(--ink);
  background-color: var(--canvas);
  background-image: none;
  font-family: var(--font-body);
  font-size: 13.5px;
  line-height: 1.45;
  letter-spacing: -0.005em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

:where(button, input, select, textarea) { font: inherit; }
:where(input, select, textarea) { border-radius: var(--radius-sm); }
:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--focus);
  outline: 3px solid color-mix(in srgb, var(--focus) 35%, transparent);
  outline-offset: 2px;
}

:where(.status-badge, .role-chip, .record-code, .page-kicker, .card-label, .refresh-label, .result-summary, .section-heading > span) {
  font-variant-numeric: tabular-nums;
}

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

@media (forced-colors: active) {
  :where(.status-badge, .role-chip, .form-notice, .alert, .metric-urgent, .primary-nav a[aria-current="page"]) { border: 1px solid CanvasText; }
}
