:root{--bg:#0b1220;--panel:#121b2e;--line:#22304d;--text:#e6ecf7;--muted:#8fa3c8;--accent:#38bdf8;--ok:#31d97c;--warn:#f5b942;--bad:#ff5f56}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
a{color:var(--accent);text-decoration:none}
.shell{display:flex;min-height:100vh}
.side{width:230px;background:var(--panel);border-right:1px solid var(--line);padding:20px 14px}
.side h1{font-size:16px;margin:0 0 18px}
.side a{display:block;padding:9px 12px;border-radius:8px;color:var(--muted);margin-bottom:4px}
.side a.on,.side a:hover{background:#1b2742;color:var(--text)}
.main{flex:1;padding:28px;min-width:0}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:16px}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.filters input,.filters select{background:#0e1628;border:1px solid var(--line);color:var(--text);border-radius:8px;padding:8px 10px}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line)}
th{color:var(--muted);font-weight:600;font-size:13px}
.empty{color:var(--muted);text-align:center;padding:26px}
.login{max-width:360px;margin:12vh auto}
.login input{width:100%;padding:10px;margin:6px 0 14px;background:#0e1628;border:1px solid var(--line);color:var(--text);border-radius:8px}
.btn{background:var(--accent);color:#04111f;border:0;border-radius:8px;padding:10px 16px;font-weight:600;cursor:pointer}
.err{color:var(--bad);margin-bottom:10px}
.foot{color:var(--muted);font-size:12px;margin-top:24px}
@media(max-width:760px){.shell{display:block}.side{width:auto}}
