/* Design tokens. Desktop-only by agreed scope (D-010): there are no
   width-based media queries anywhere in this application. That is a scope
   decision, not an oversight. */
:root {
  --ink:        #1a1d21;
  --ink-soft:   #4a5158;
  --ink-faint:  #767d85;
  --line:       #d8dde3;
  --line-soft:  #eaeef2;
  --bg:         #f5f7f9;
  --panel:      #ffffff;
  --accent:     #1c4f8b;
  --accent-dk:  #143a67;
  --accent-bg:  #e8eef7;
  --ok:         #1c6b42;
  --ok-bg:      #e6f3ec;
  --warn:       #8a5a00;
  --warn-bg:    #fdf3e0;
  --err:        #9b2226;
  --err-bg:     #fbeaea;
  --radius:     6px;
  --gap:        16px;
  --shadow:     0 1px 3px rgba(20,30,45,.10), 0 6px 18px rgba(20,30,45,.06);
  --mono:       ui-monospace, "SF Mono", Menlo, Consolas, monospace;
}

body {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 15px;
  line-height: 1.5;
  color: var(--ink);
  background: var(--bg);
}

/* Focus must always be visible. Never remove this without replacing it. */
:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 2px;
  border-radius: 3px;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
  }
}
