:root{--bg:#0b0e14;--panel:#131823;--border:#232a3a;--text:#e6e9ef;--muted:#8b94a7;--accent:#4f8cff;--good:#35c07f;--warn:#e0a44a}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--text);font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.layout{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:var(--panel);border-right:1px solid var(--border);padding:20px 14px}.brand{font-weight:700;font-size:16px;margin-bottom:4px}.brand small{display:block;color:var(--muted);font-weight:400;font-size:11px}.nav{margin-top:22px;display:flex;flex-direction:column;gap:2px}.nav a{padding:8px 10px;border-radius:8px;color:var(--text)}.nav a:hover{background:#1b2130;text-decoration:none}.main{padding:28px 32px}h1{font-size:20px;margin:0 0 4px}.sub{color:var(--muted);margin:0 0 22px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:12px;gap:12px;margin-bottom:26px}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px}.card .n{font-size:24px;font-weight:700}.card .l{color:var(--muted);font-size:12px;margin-top:2px}table{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--border);border-radius:12px;overflow:hidden}td,th{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em}tr:last-child td{border-bottom:none}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;border:1px solid var(--border)}.badge.legacy{color:var(--warn);border-color:#4a3a22}.badge.house{color:var(--good);border-color:#22443a}.empty{background:var(--panel);border:1px dashed var(--border);border-radius:12px;padding:28px;color:var(--muted);text-align:center}.err{background:#2a1720;border:1px solid #4a2330;color:#ffb4c0;border-radius:12px;padding:16px}code{background:#1b2130;padding:1px 5px;border-radius:5px}.head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.head-actions{display:flex;gap:8px;flex-shrink:0}.btn{display:inline-block;background:var(--accent);color:#fff;padding:8px 14px;border-radius:8px;font-weight:600;border:1px solid transparent;cursor:pointer}.btn:hover{text-decoration:none;filter:brightness(1.08)}.btn.ghost{background:transparent;color:var(--text);border-color:var(--border)}.form{max-width:560px;display:flex;flex-direction:column;gap:14px;margin-top:8px}.form .row{display:flex;gap:12px}.form .row>label{flex:1 1}.form label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:12px}.form input,.form select{background:var(--bg);border:1px solid var(--border);color:var(--text);padding:9px 11px;border-radius:8px;font-size:14px}.form input:focus,.form select:focus{outline:none;border-color:var(--accent)}.form button{align-self:flex-start;background:var(--accent);color:#fff;border:none;padding:10px 18px;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer}.form button:disabled{opacity:.6;cursor:default}ul{margin:0;padding-left:18px}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.auth-card{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:28px;width:100%;max-width:380px}.sidebar{display:flex;flex-direction:column}.userbox{margin-top:auto;padding-top:16px;border-top:1px solid var(--border)}.userbox .uname{font-weight:600;font-size:13px}.userbox .urole{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.logout{background:transparent;border:1px solid var(--border);color:var(--text);padding:6px 12px;border-radius:8px;cursor:pointer;font-size:12px;width:100%}.logout:hover{background:#1b2130}