* { box-sizing: border-box; }
html { font-family: var(--font-ui); background: var(--bg-canvas); color: var(--text-primary); font-size: 16px; }
body { margin: 0; font-size: var(--font-base); line-height: 1.5; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button, select { cursor: pointer; }
button:disabled { cursor: not-allowed; }
a { color: var(--accent-primary); text-underline-offset: 4px; }
a:hover { color: var(--text-primary); }
button { color: inherit; }
svg { flex-shrink: 0; }
h1, h2, h3, p { margin: 0; }
h1 { font: 400 var(--font-title-size)/1.2 var(--font-title); letter-spacing: -.45px; }
h2 { font: 400 var(--font-xl)/1.3 var(--font-title); }
h3 { font-size: var(--font-lg); font-weight: 600; }
small { font-size: var(--font-xs); }
hr { border: 0; border-top: 1px solid var(--border-subtle); margin: var(--space-5) 0; }
:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 3px; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 16px; top: -70px; z-index: 100; background: var(--bg-elevated); padding: 12px 20px; border: 1px solid var(--accent-primary); }
.skip-link:focus { top: 12px; }
.muted { color: var(--text-muted); }
.secondary { color: var(--text-secondary); }
.mono { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
.stack { display: flex; flex-direction: column; gap: var(--space-4); }
.inline, .actions, .toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-3); }
.actions { justify-content: flex-end; }
.grid-2 { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--space-4); }
.grow { flex: 1; min-width: 0; }
.break { overflow-wrap: anywhere; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; } }
