:root{--ground:#10131a;--surface:#181c25;--surface-2:#212633;--stripe:#1f2430;--rule:#2b313f;--ink:#e9ebef;--ink-2:#a4acbb;--ink-3:#6f7889;--accent:#e6a544;--accent-ink:#10131a;--good:#59b98c;--warn:#e0a12f;--bad:#e06a51;--font-display:"Saira Condensed", system-ui, sans-serif;--font-body:"IBM Plex Sans", system-ui, -apple-system, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--ground:#f5f6f8;--surface:#fff;--surface-2:#eceef2;--stripe:#f3f4f7;--rule:#dde1e8;--ink:#171a20;--ink-2:#565f6c;--ink-3:#8a929e;--accent:#cf8a2b;--accent-ink:#fff}}:root[data-theme=light]{--ground:#f5f6f8;--surface:#fff;--surface-2:#eceef2;--stripe:#f3f4f7;--rule:#dde1e8;--ink:#171a20;--ink-2:#565f6c;--ink-3:#8a929e;--accent:#cf8a2b;--accent-ink:#fff}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--ground);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.55}a{color:var(--accent)}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:.01em;margin:0;font-weight:600}button{font:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.tabnum{font-variant-numeric:tabular-nums}.shell{grid-template-rows:auto 1fr;min-height:100%;display:grid}.topbar{background:var(--surface);border-bottom:1px solid var(--rule);align-items:center;gap:1rem;padding:.6rem 1.1rem;display:flex}.brand{align-items:center;gap:.65rem;min-width:0;display:flex}.brand img{object-fit:contain;width:auto;max-width:160px;height:40px;display:block}.brand .brand-name{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.02em;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:1.2rem;font-weight:700;overflow:hidden}.brand .badge{font-family:var(--font-mono);letter-spacing:.12em;background:var(--accent);color:var(--accent-ink);text-transform:uppercase;border-radius:2px;flex:none;padding:.2rem .45rem;font-size:.58rem;font-weight:600}.topbar .spacer{flex:1}@media (width<=34rem){.brand .brand-name{font-size:1rem}.brand img{height:32px}}button.link,a.link{cursor:pointer;color:var(--ink-2);text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:.82rem;text-decoration:underline}button.link:hover,a.link:hover{color:var(--ink)}a.link.active{color:var(--accent)}.nav{background:var(--surface);border-bottom:1px solid var(--rule);gap:.2rem;padding:0 1.1rem;display:flex;overflow-x:auto}.nav a{color:var(--ink-2);white-space:nowrap;border-bottom:2px solid #0000;align-items:center;gap:.4rem;padding:.7rem .8rem;font-size:.86rem;font-weight:500;text-decoration:none;display:inline-flex}.nav a:hover{color:var(--ink)}.nav a.active{color:var(--ink);border-bottom-color:var(--accent)}.nav a .ico{font-size:.95rem}.content{width:100%;max-width:1180px;margin:0 auto;padding:1.4rem 1.1rem 4rem}.page-stub{padding:2.5rem 0}.page-stub h1{text-transform:uppercase;font-size:1.8rem}.page-stub p{color:var(--ink-2);max-width:60ch}.page-stub .meta{font-family:var(--font-mono);color:var(--ink-3);margin-top:1rem;font-size:.78rem}.centered{place-items:center;min-height:100%;padding:2rem;display:grid}.card{background:var(--surface);border:1px solid var(--rule);border-radius:4px;width:100%;max-width:22rem;padding:1.6rem}.card h1{text-transform:uppercase;margin-bottom:1rem;font-size:1.5rem}.field{gap:.3rem;margin-bottom:.9rem;display:grid}.field label{font-size:.78rem;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2)}.field input{background:var(--ground);color:var(--ink);border:1px solid var(--rule);font:inherit;border-radius:3px;padding:.55rem .6rem}button.primary{cursor:pointer;background:var(--accent);width:100%;color:var(--accent-ink);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.03em;border:none;border-radius:3px;padding:.6rem;font-size:1rem;font-weight:600}button.primary:disabled{opacity:.6;cursor:default}.msg{margin-top:.8rem;font-size:.85rem}.msg.err{color:var(--bad)}.msg.ok{color:var(--good)}
