/* Zeus AI base: reset, typography, links, focus, form defaults, utilities. */
*, *::before, *::after { box-sizing: border-box; }
html, body { height: 100%; margin: 0; }
html { -webkit-text-size-adjust: 100%; }
body {
  background: var(--canvas); color: var(--text); font-family: var(--font); font-size: var(--fs-md); line-height: var(--lh-base);
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; font-feature-settings: "cv11", "ss01";
}
h1, h2, h3, h4 { margin: 0; line-height: var(--lh-tight); letter-spacing: -.012em; font-weight: 700; color: var(--text); }
h1 { font-size: var(--fs-2xl); } h2 { font-size: var(--fs-xl); } h3 { font-size: var(--fs-lg); } h4 { font-size: var(--fs-md); }
p { margin: 0 0 var(--s-3); }
a { color: var(--accent); text-decoration: none; }
a:hover { color: var(--accent-hover); text-decoration: underline; }
b, strong { font-weight: 600; }
small { font-size: var(--fs-xs); }
hr { border: 0; border-top: 1px solid var(--line); margin: var(--s-4) 0; }
code, kbd { font-family: var(--font-mono); font-size: .92em; }
kbd { background: var(--surface-2); border: 1px solid var(--line-strong); border-bottom-width: 2px; border-radius: 4px; padding: 0 5px; color: var(--text-2); }
svg.icon { width: 1.15em; height: 1.15em; flex: 0 0 auto; vertical-align: -.2em; }

:focus { outline: none; }
:focus-visible { outline: none; box-shadow: var(--ring); border-radius: var(--r-sm); }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
button:disabled, input:disabled, select:disabled, textarea:disabled { cursor: not-allowed; opacity: .55; }
::selection { background: var(--brand-200); }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: var(--n-200); border-radius: var(--r-pill); border: 2px solid transparent; background-clip: content-box; }
::-webkit-scrollbar-thumb:hover { background: var(--n-300); background-clip: content-box; border: 2px solid transparent; }

/* utilities */
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.hidden { display: none !important; }
.row { display: flex; align-items: center; gap: var(--s-3); }
.row.wrap { flex-wrap: wrap; }
.stack { display: flex; flex-direction: column; gap: var(--s-3); }
.grow { flex: 1 1 auto; min-width: 0; }
.spacer { margin-left: auto; }
.muted { color: var(--text-2); }
.hint { color: var(--text-3); font-size: var(--fs-xs); }
.nowrap { white-space: nowrap; }
.right { text-align: right; }
.center { text-align: center; }
.mt-2 { margin-top: var(--s-2); } .mt-4 { margin-top: var(--s-4); } .mb-2 { margin-bottom: var(--s-2); } .mb-4 { margin-bottom: var(--s-4); }
.mt-3 { margin-top: var(--s-3); } .mb-3 { margin-bottom: var(--s-3); } .mt-5 { margin-top: var(--s-5); } .mb-5 { margin-bottom: var(--s-5); }
.w-full { width: 100%; }
