/* ==========================================================================
   base.css: reset, typography, focus, and page-level states
   ========================================================================== */
*{box-sizing:border-box;}
html,body{margin:0;padding:0;min-width:0;}
body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;}
h1,h2,h3{margin:0;font-family:var(--font);}
button,input,select,textarea{font-family:inherit;font-size:inherit;}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px;}
[hidden]{display:none !important;}
@media (prefers-reduced-motion:reduce){*{transition:none !important;animation:none !important;}}

/* Portal pages stay hidden until the role check passes (see core/auth.js). */
html.js body[data-guard]{visibility:hidden;}

/* Shown when the page is opened straight from disk. ES modules need a web server. */
html.file-mode body::before{content:"This app needs a local web server. Open the folder with VS Code Live Server, or run: python3 -m http.server";display:block;padding:12px 16px;background:var(--amber-soft);color:var(--amber);font-size:13px;font-weight:600;text-align:center;}
