/* ═══ Reset, element defaults, and the layout atoms ═══════════════ */

*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
/* Rules elsewhere set explicit `display` values, which beat the [hidden]
   attribute's UA default. Make hidden mean hidden, everywhere. */
[hidden]{display:none !important}

*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--r-pill);
  border:2px solid transparent;background-clip:content-box}
::selection{background:var(--accent-t28);color:var(--text)}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

html,body{height:100%}
body{
  background:var(--bg);color:var(--text);font-family:var(--font-ui);
  font-size:var(--fs-body);line-height:1.5;overscroll-behavior-y:none;
  -webkit-font-smoothing:antialiased;
  /* Tabular figures everywhere, so digits don't jitter as quantities change. */
  font-feature-settings:var(--num-feature);
}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
button{cursor:pointer;border:none;background:none}
a{color:var(--accent);text-decoration:none}
:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--r-sm)}

/* ── atoms ─────────────────────────────────────────────── */
.row{display:flex;align-items:center;gap:12px}
.row.between{justify-content:space-between}
.grow{flex:1;min-width:0}
.stack{display:flex;flex-direction:column;gap:10px}
.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.dim{color:var(--text-muted)}
.muted{color:var(--text-sub)}

.sec-head{display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin:22px 0 10px}
.sec-head h2{font-size:var(--fs-body);font-weight:700;letter-spacing:-.01em}
.sec-head:first-child{margin-top:0}
hr.sep{border:none;border-top:1px solid var(--border);margin:14px 0}
