:root{--page:#f9f9f7;--surface:#fcfcfb;--border:#e1e0d9;--ink:#0b0b0b;--ink-2:#52514e;--muted:#898781;--grid:#e1e0d9;--accent:#2a78d6;--accent-soft:#eaf2fc;--good:#0ca30c;--good-text:#006300;--warning:#fab219;--critical:#d03b3b;font-family:system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--page);color:var(--ink);font-size:14px}#root{min-height:100vh}.layout{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:2px;width:230px;padding:18px 12px;display:flex}.sidebar .logo{letter-spacing:.4px;margin:2px 10px 16px;font-size:16px;font-weight:700}.sidebar .logo span{color:var(--accent)}.sidebar a{color:var(--ink-2);border-radius:7px;padding:9px 12px;font-size:14px;text-decoration:none;display:block}.sidebar a:hover{color:var(--ink);background:#f1f0ec}.sidebar a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.sidebar .section{text-transform:uppercase;color:var(--muted);letter-spacing:1px;margin:14px 12px 4px;font-size:11px}.sidebar .foot{margin-top:auto;font-size:13px}.main{flex:1;padding:26px 30px;overflow-x:auto}.main h1{margin-bottom:4px;font-size:21px;font-weight:650}.main .sub{color:var(--ink-2);margin-bottom:22px;font-size:14px}.cards{grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:14px;margin-bottom:18px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px 18px;box-shadow:0 1px 2px #0b0b0b0a}.card .label{color:var(--ink-2);text-transform:uppercase;letter-spacing:.5px;font-size:12px}.card .value{margin-top:6px;font-size:30px;font-weight:700}.card .value.gold{color:var(--ink)}.card .meta{color:var(--muted);margin-top:3px;font-size:12px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-bottom:16px;padding:18px 20px;box-shadow:0 1px 2px #0b0b0b0a}.panel h2{color:var(--ink);margin-bottom:12px;font-size:14px;font-weight:650}.empty{color:var(--muted);text-align:center;padding:26px;font-size:14px}.grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=980px){.grid-2{grid-template-columns:1fr}}.btn{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:7px;padding:9px 16px;font-size:14px;font-weight:600}.btn:hover{background:#1c5cab}.btn.ghost{color:var(--ink-2);border:1px solid var(--border);background:0 0;font-weight:500}.btn.ghost:hover{color:var(--ink);background:#f1f0ec}.auth-wrap{background:var(--page);justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:360px;padding:30px;box-shadow:0 4px 16px #0b0b0b0f}.auth-card h1{margin-bottom:4px;font-size:19px}.auth-card p{color:var(--ink-2);margin-bottom:18px;font-size:13px}.auth-card label{color:var(--ink-2);margin:12px 0 4px;font-size:13px;display:block}.auth-card input{border:1px solid var(--border);width:100%;color:var(--ink);background:#fff;border-radius:7px;padding:10px 12px;font-size:14px}.auth-card input:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.auth-card .btn{width:100%;margin-top:18px}.auth-card .err{color:var(--critical);margin-top:10px;font-size:13px}.auth-card .alt{text-align:center;margin-top:14px;font-size:13px}.auth-card .alt button{color:var(--accent);cursor:pointer;background:0 0;border:0;font-size:13px}.badge{border-radius:999px;align-items:center;gap:4px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge.ok{color:var(--good-text);background:#0ca30c1a}.badge.warn{color:#8a5d00;background:#fab21924}.badge.bad{color:var(--critical);background:#d03b3b1a}table.list{border-collapse:collapse;width:100%;font-size:14px}table.list th{text-align:left;color:var(--muted);text-transform:uppercase;border-bottom:1px solid var(--border);padding:8px 10px;font-size:12px;font-weight:600}table.list td{border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;padding:10px}table.list tr:last-child td{border-bottom:0}input,select{font-family:inherit}form.panel input,form.panel select{border:1px solid var(--border)!important;color:var(--ink)!important;background:#fff!important}
