/* Minimal resets + element defaults. Everything else is component-level. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;font-feature-settings:"ss01","cv01"}
body{margin:0;background:var(--bg-app);color:var(--text-primary);font:var(--type-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-wrap:pretty}
a{color:var(--text-link);text-decoration:none;text-underline-offset:2px}
a:hover{color:var(--text-link-hover);text-decoration:underline}
h1,h2,h3,h4,p{margin:0}
h1{font:var(--type-h1);letter-spacing:var(--tracking-display)}
h2{font:var(--type-h2);letter-spacing:var(--tracking-tight)}
h3{font:var(--type-h3)}
code,kbd,pre{font:var(--type-code)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:none;box-shadow:var(--focus-ring)}
::selection{background:var(--accent-subtle-hover);color:var(--text-primary)}
[data-theme="light"] ::selection{background:rgba(31,167,100,.25)}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--gray-800);border-radius:var(--radius-full);border:2px solid transparent;background-clip:padding-box}
[data-theme="light"] ::-webkit-scrollbar-thumb{background:var(--gray-300);border:2px solid transparent;background-clip:padding-box}
.ax-num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
