:root{--bg:#0b1220;--panel:#131c2f;--text:#e8edf8;--muted:#a5b4d1;--border:#26334d;--accent:#4f7cff}:root[data-theme=light]{--bg:#f3f6fc;--panel:#fff;--text:#111d37;--muted:#4f6183;--border:#d4def0;--accent:#3e67d8}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif}.container{max-width:1140px;margin:0 auto;padding:0 1rem}.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:1rem}.btn{border:1px solid var(--border);background:transparent;color:var(--text);padding:.55rem .9rem;border-radius:10px}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.muted{color:var(--muted)}.marketing-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;gap:.8rem;position:sticky;top:0;background:var(--bg)}.logo-link{display:flex;flex-direction:column}.logo-link span{font-size:.78rem;color:var(--muted)}.nav-link{margin:0 .4rem;color:var(--muted)}.nav-link.active{color:var(--text)}.header-actions{display:flex;gap:.6rem;align-items:center}.hero{display:grid;grid-template-columns:1.2fr .8fr;gap:1rem;padding:1rem 0}.hero h1{font-size:2rem;line-height:1.2}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1rem}.app-shell{display:grid;grid-template-columns:270px 1fr;min-height:100vh}.sidebar{border-radius:0;min-height:100vh}.side-link{display:block;padding:.45rem .55rem;border-radius:8px;color:var(--muted)}.side-link.active,.side-link:hover{background:#4f7cff26;color:var(--text)}.app-main{padding:1rem}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.metric{font-size:2rem;margin:.2rem 0}.badge{font-size:.75rem;color:var(--muted)}.row{display:flex;justify-content:space-between;align-items:center}@media (max-width:960px){.hero,.grid3,.grid2,.app-shell{grid-template-columns:1fr}.marketing-header{flex-wrap:wrap}}.status-banner{border:1px solid var(--border);border-radius:12px;padding:.85rem 1rem;margin:.8rem 0;background:var(--panel)}.status-banner strong{display:block;margin-bottom:.2rem}.status-banner p{margin:.2rem 0;color:var(--muted)}.status-banner.info{border-color:#2f6ea8}.status-banner.warn{border-color:#a87e2f}.status-banner.error{border-color:#a83d3d}
