/* ==========================================================================
   CodeForge 8.0 — base / reset
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box}
html,body{height:100%}
html{background:var(--ground)}
body{margin:0;background:var(--ground);color:var(--text);font:400 var(--fs-body)/20px var(--font-ui);-webkit-font-smoothing:antialiased;overflow:hidden}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--accent-text)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-control)}
[hidden]{display:none!important}

.icon{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.icon.sm{width:16px;height:16px}
.icon.xs{width:14px;height:14px}
.icon.lg{width:22px;height:22px}
.mono{font-family:var(--font-mono)}
.tnum{font-variant-numeric:tabular-nums}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;padding:0;margin:-1px}

/* Text/utility helpers kept for js/tools/** and other not-yet-migrated call
   sites that build className strings like "text-muted" or "flex". */
.text-mono{font-family:var(--font-mono)}
.text-primary{color:var(--text)}
.text-secondary,.text-muted{color:var(--text-3)}
.text-accent{color:var(--accent-text)}
.text-success{color:var(--ok)}
.text-error{color:var(--err)}
.text-warning{color:var(--warn)}
.text-small{font-size:12px}
.text-sm{font-size:13px}
.text-xs{font-size:11px}
.flex{display:flex}
.flex-1{flex:1}
.gap-4{gap:4px}
.gap-8{gap:8px}
.gap-12{gap:12px}
.items-center{align-items:center}
.w-full{width:100%}
.mt-4{margin-top:4px}
.mt-8{margin-top:8px}

/* Scrollbars — thin, theme-aware */
*{scrollbar-width:thin;scrollbar-color:var(--stroke-strong) transparent}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:var(--stroke-strong);border-radius:6px;border:2px solid transparent;background-clip:padding-box}
*::-webkit-scrollbar-thumb:hover{background:var(--text-3)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
