/* Graphite neutrals + Oxford blue accent theme tokens and shared interaction rules. */
:root {
  color-scheme: light;

  --c-bg: #ffffff;
  --c-surface: #f8fafc;
  --c-surface-2: #f1f5f9;
  --c-border: #cfd6e2;

  --c-text: #0f172a;
  --c-text-muted: #475569;
  --c-icon: #64748b;

  --c-accent: #1e3a8a;
  --c-accent-hover: #1d4ed8;
  --c-accent-active: #1e40af;
  --c-accent-soft: #eff6ff;
  --c-accent-soft-hover: #dbeafe;
  --c-accent-soft-active: #bfdbfe;

  --c-success: #0f766e;
  --c-warning: #b45309;
  --c-danger: #b91c1c;
  --c-danger-hover: #a21b1b;
  --c-danger-active: #860f11;

  --c-disabled-bg: #e2e8f0;
  --c-disabled-border: #cbd5e1;
  --c-disabled-text: #94a3b8;

  --c-focus-ring: rgba(29, 78, 216, 0.35);
  --c-focus-outline: #1d4ed8;

  --rgb-bg: 255 255 255;
  --rgb-surface: 248 250 252;
  --rgb-surface-2: 241 245 249;
  --rgb-border: 226 232 240;

  --rgb-text: 15 23 42;
  --rgb-text-muted: 71 85 105;
  --rgb-icon: 100 116 139;

  --rgb-accent: 30 58 138;
  --rgb-accent-hover: 29 78 216;
  --rgb-accent-active: 30 64 175;
  --rgb-accent-soft: 239 246 255;
  --rgb-accent-soft-hover: 219 234 254;
  --rgb-accent-soft-active: 191 219 254;

  --rgb-success: 15 118 110;
  --rgb-warning: 180 83 9;
  --rgb-danger: 185 28 28;
  --rgb-danger-hover: 162 27 27;
  --rgb-danger-active: 134 15 17;

  --rgb-disabled-bg: 226 232 240;
  --rgb-disabled-border: 203 213 225;
  --rgb-disabled-text: 148 163 184;

  --rgb-focus-ring: 29 78 216;
  --rgb-focus-outline: 29 78 216;

  /* Backward-compatible aliases for legacy selectors in stylesheet.css. */
  --bg: var(--c-bg);
  --panel: var(--c-surface);
  --text: var(--c-text);
  --muted: var(--c-text-muted);
  --border: var(--c-border);
  --brand: var(--c-accent);
  --brand-soft: var(--c-accent-soft);
  --danger: var(--c-danger);
}

* {
  box-sizing: border-box;
}

a {
  color: var(--c-accent);
}

a:hover {
  color: var(--c-accent-hover);
}

:where(a, button, input, select, textarea):focus-visible {
  outline: 2px solid var(--c-focus-outline);
  outline-offset: 2px;
  box-shadow: none;
}
