:root{--bg: #0f0d0a;--bg-raised: #17140f;--bg-inset: #0a0908;--border: #2c261c;--border-strong: #463b2a;--text: #e8e0d0;--text-dim: #9a8f7a;--accent: #d9a441;--accent-dim: #8a6a2c;--good: #7fbf6a;--bad: #d96a5a;--info: #6aa8d9}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,sans-serif;font-size:15px}#app{min-height:100vh}h1,h2,h3{font-weight:600;margin:0 0 .5rem}a{color:var(--accent)}.shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:var(--bg-raised);border-right:1px solid var(--border);padding:1.25rem .75rem;display:flex;flex-direction:column;gap:.25rem}.sidebar .brand{font-size:1.05rem;font-weight:700;color:var(--accent);padding:0 .75rem 1rem;letter-spacing:.02em}.sidebar button.nav{display:block;width:100%;text-align:left;background:none;border:none;color:var(--text-dim);padding:.55rem .75rem;border-radius:8px;font-size:.95rem;cursor:pointer}.sidebar button.nav:hover{color:var(--text);background:#d9a44114}.sidebar button.nav.active{color:var(--accent);background:#d9a4411f;font-weight:600}.sidebar .spacer{flex:1}.sidebar .whoami{padding:.5rem .75rem;font-size:.8rem;color:var(--text-dim);overflow-wrap:anywhere}.main{padding:1.5rem 2rem 3rem;max-width:1100px;width:100%}.main>h1{margin-bottom:1.25rem}.panel{background:var(--bg-raised);border:1px solid var(--border);border-radius:12px;padding:1.1rem 1.25rem;margin-bottom:1.25rem}.panel h2{font-size:1rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.9rem}table{width:100%;border-collapse:collapse;font-size:.92rem}th{text-align:left;color:var(--text-dim);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;padding:.4rem .6rem;border-bottom:1px solid var(--border)}td{padding:.55rem .6rem;border-bottom:1px solid var(--border);vertical-align:middle}tr:last-child td{border-bottom:none}tr.clickable{cursor:pointer}tr.clickable:hover td{background:#d9a4410d}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.25rem}.stat{background:var(--bg-raised);border:1px solid var(--border);border-radius:12px;padding:1rem 1.25rem}.stat .label{color:var(--text-dim);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}.stat .value{font-size:1.7rem;font-weight:700;margin-top:.25rem}input,select,textarea{background:var(--bg-inset);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:.5rem .7rem;font-size:.95rem;font-family:inherit}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent-dim)}input[type=number]{width:7rem}label{color:var(--text-dim);font-size:.85rem}button.btn{background:var(--accent);color:#201709;border:none;border-radius:8px;padding:.5rem 1rem;font-size:.92rem;font-weight:600;cursor:pointer}button.btn:hover{filter:brightness(1.1)}button.btn:disabled{opacity:.45;cursor:default;filter:none}button.btn.ghost{background:transparent;color:var(--accent);border:1px solid var(--accent-dim)}button.btn.danger{background:transparent;color:var(--bad);border:1px solid var(--bad)}button.btn.small{padding:.3rem .7rem;font-size:.82rem}.row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.row+.row{margin-top:.75rem}.badge{display:inline-block;border-radius:999px;padding:.1rem .6rem;font-size:.75rem;font-weight:600;border:1px solid var(--border-strong, var(--border));color:var(--text-dim)}.badge.good{color:var(--good);border-color:var(--good)}.badge.bad{color:var(--bad);border-color:var(--bad)}.badge.info{color:var(--info);border-color:var(--info)}.badge.accent{color:var(--accent);border-color:var(--accent-dim)}.dim{color:var(--text-dim)}.mono{font-family:Consolas,Cascadia Mono,monospace;font-size:.88em}.error{color:var(--bad);font-size:.9rem;margin-top:.5rem}.notice{color:var(--good);font-size:.9rem;margin-top:.5rem}.empty{color:var(--text-dim);padding:1rem 0;text-align:center}progress{width:160px;height:10px;accent-color:var(--accent)}.login-wrap{min-height:100vh;display:grid;place-items:center}.login{width:min(380px,92vw);background:var(--bg-raised);border:1px solid var(--border);border-radius:14px;padding:2rem}.login h1{color:var(--accent);margin-bottom:.25rem}.login p.sub{color:var(--text-dim);margin:0 0 1.25rem;font-size:.9rem}.login input{width:100%;margin-bottom:.75rem}.login button.btn{width:100%}
