:root{--bg:#0f1115;--panel:#171a21;--panel2:#1e222b;--line:#2a2f3a;--text:#e8eaed;--muted:#9aa3b2;--gold:#d4af37;--gold-soft:#e8c860;--green:#34d399;--red:#f87171;--blue:#60a5fa}*{box-sizing:border-box}body,html{padding:0;margin:0}body{background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:14px}a{color:inherit;text-decoration:none}h1,h2,h3{margin:0 0 .4rem}h1{font-size:1.3rem}h2{font-size:1.05rem;color:var(--gold-soft)}.shell{display:flex;min-height:100vh}.sidebar{width:216px;background:var(--panel);border-right:1px solid var(--line);padding:16px 12px;position:-webkit-sticky;position:sticky;top:0;height:100vh;flex-shrink:0}.brand{font-weight:700;color:var(--gold);font-size:1.05rem;letter-spacing:.3px;margin-bottom:2px}.brand small{display:block;color:var(--muted);font-weight:400;font-size:.72rem;letter-spacing:0}.nav{margin-top:18px;flex-direction:column;gap:2px}.nav,.nav a{display:flex}.nav a{padding:8px 10px;border-radius:8px;color:var(--muted);font-weight:500;align-items:center;gap:8px}.nav a:hover{background:var(--panel2);color:var(--text)}.nav a.active{background:rgba(212,175,55,.13);color:var(--gold-soft)}.main{flex:1 1;padding:22px 26px;max-width:1200px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.who{color:var(--muted);font-size:.82rem}.who b{color:var(--text)}.role-pill{background:var(--panel2);border:1px solid var(--line);border-radius:99px;padding:2px 9px;font-size:.72rem;margin-left:6px}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:16px}.grid{display:grid;grid-gap:14px;gap:14px}.cols-2{grid-template-columns:repeat(2,1fr)}.cols-3{grid-template-columns:repeat(3,1fr)}.cols-4{grid-template-columns:repeat(4,1fr)}@media (max-width:820px){.cols-2,.cols-3,.cols-4{grid-template-columns:1fr}}.stat{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px}.stat .k{color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.5px}.stat .v{font-size:1.5rem;font-weight:700;margin-top:4px}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);font-size:.86rem}th{color:var(--muted);font-weight:600;font-size:.74rem;text-transform:uppercase;letter-spacing:.4px}td.num,th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}tr:hover td{background:hsla(0,0%,100%,.02)}.pos{color:var(--green)}.neg{color:var(--red)}label{display:block;font-size:.76rem;color:var(--muted);margin-bottom:4px}input,select,textarea{width:100%;background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:8px 10px;font-size:.88rem;font-family:inherit}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gold)}.field{margin-bottom:12px}.row{display:flex;gap:10px;flex-wrap:wrap}.row>*{flex:1 1;min-width:120px}.btn{background:var(--gold);color:#1a1408;border:none;border-radius:8px;padding:9px 16px;font-weight:700;cursor:pointer;font-size:.88rem}.btn:hover{background:var(--gold-soft)}.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--text);font-weight:500}.btn.ghost:hover{border-color:var(--gold)}.btn.sm{padding:5px 10px;font-size:.78rem}.btn:disabled{opacity:.5;cursor:not-allowed}.err{color:var(--red)}.err,.ok{font-size:.82rem;margin:8px 0}.ok{color:var(--green)}.muted{color:var(--muted)}.tag{font-size:.72rem;padding:2px 8px;border-radius:99px;border:1px solid var(--line)}.tag.open{color:var(--blue);border-color:rgba(96,165,250,.4)}.tag.melted{color:var(--muted)}.right{text-align:right}.spacer{flex:1 1}hr{border:none;border-top:1px solid var(--line);margin:14px 0}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-card{width:340px}.print-only{display:none}@media print{body{background:#fff;color:#000}.btn,.no-print,.sidebar,.topbar .who{display:none!important}.main{padding:0;max-width:none}.print-only{display:block}.card{border:none;padding:0;margin-bottom:14px}.stat{border:1px solid #ccc}td,th{border-bottom:1px solid #ccc}td,th{color:#000}.pos{color:#060!important}.neg{color:#900!important}}