:root{--ink: #1b1f24;--muted: #5f6b7a;--bg: #f4f6f8;--panel: #fff;--line: #d9dee4;--primary: #1565c0;--ok: #2e7d32;--warn: #b26a00;--bad: #c62828;--admin: #6a1b9a;font-family:Segoe UI,system-ui,sans-serif;color:var(--ink);background:var(--bg);font-size:15px}*{box-sizing:border-box}body{margin:0}h1{font-size:24px;margin:0 12px 0 0}h2{font-size:18px;margin:0}button{font:inherit;padding:6px 12px;border:1px solid var(--line);background:#fff;border-radius:6px;cursor:pointer}button:hover{border-color:var(--primary)}button.primary{background:var(--primary);color:#fff;border-color:var(--primary)}input,select{font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:6px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:600;font-size:13px}tr.clickable{cursor:pointer}tr.clickable:hover{background:#eef3fb}.shell{display:flex;min-height:100vh}aside{width:220px;background:#1b1f24;color:#fff;display:flex;flex-direction:column;padding:16px 0}aside a{color:#c9d1d9;text-decoration:none;padding:9px 18px}aside a.active,aside a:hover{background:#2d333b;color:#fff}.brand{font-weight:700;font-size:20px;padding:0 18px 16px}.signout{margin:auto 18px 0}main{flex:1;padding:20px 24px;overflow-x:auto}.card{background:var(--panel);border-radius:8px;padding:16px;margin-bottom:16px;box-shadow:0 1px 2px #0000000f}.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.stats{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0 16px}.stat{background:var(--panel);border-radius:8px;padding:12px 16px;min-width:160px;border-top:4px solid var(--primary)}.stat.ok{border-color:var(--ok)}.stat.warn{border-color:var(--warn)}.stat.bad{border-color:var(--bad)}.stat-label{color:var(--muted);font-size:13px}.stat-value{font-size:22px;font-weight:700}.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:12px;font-weight:600;border:1px solid currentColor}.badge:before{content:"● "}.badge.ok{color:var(--ok)}.badge.warn{color:var(--warn)}.badge.bad{color:var(--bad)}.badge.muted{color:var(--muted)}.badge.admin{color:var(--admin)}.inline{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap}.actions{display:flex;gap:6px;flex-wrap:wrap}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.tabs{display:flex;gap:6px;margin:8px 0 16px;flex-wrap:wrap}.tabs button.active{background:var(--primary);color:#fff}.form{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-bottom:12px}.form label,.login-card label{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:13px}.muted{color:var(--muted)}.mono{font-family:Consolas,monospace;font-size:12px;word-break:break-all}.big{font-size:18px}.error{color:var(--bad)}.login{min-height:100vh;display:grid;place-items:center}.login-card{width:360px;display:flex;flex-direction:column;gap:12px}.bars{display:flex;align-items:flex-end;gap:2px;height:120px;margin-bottom:12px;border-bottom:1px solid var(--line)}.bar{flex:1;background:var(--primary);min-height:1px;border-radius:2px 2px 0 0}
