:root{--bg:#f7f8fa;--panel:#ffffff;--panel-2:#fbfcfd;--border:#e4e7ec;--text:#1a1d23;--muted:#667085;--accent:#2f6fed;--accent-soft:#eaf1fe;--ok:#12805c;--ok-soft:#e3f5ee;--err:#d92d20;--err-soft:#fdeceb;--warn:#b25e09;--warn-soft:#fdf3e6;--radius:12px;--shadow:0 1px 2px rgba(16,24,40,0.06),0 1px 3px rgba(16,24,40,0.04)}@media (prefers-color-scheme:dark){:root{--bg:#0d0f13;--panel:#161a21;--panel-2:#1b2028;--border:#262c36;--text:#e7eaf0;--muted:#94a0b3;--accent:#6f9bff;--accent-soft:#1a2740;--ok:#48c79a;--ok-soft:#113026;--err:#f57369;--err-soft:#35171a;--warn:#e2a34f;--warn-soft:#33240f}}*{box-sizing:border-box}body,html{padding:0;margin:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}h1{font-size:20px;font-weight:650;margin:0 0 2px}h2{font-size:15px;font-weight:600;margin:0 0 12px}.muted{color:var(--muted)}.app{display:flex;min-height:100vh}.sidebar{width:232px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);padding:20px 14px;display:flex;flex-direction:column;gap:4px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:9px;font-weight:650;padding:4px 8px 16px;font-size:14px}.brand .dot,.dot{width:9px;height:9px;border-radius:50%;background:var(--accent);display:inline-block;flex-shrink:0}.brand small{display:block;font-size:11.5px}.brand small,.nav a{color:var(--muted);font-weight:500}.nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px}.nav a:hover{background:var(--panel-2);color:var(--text)}.nav a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.sidebar .foot{margin-top:auto;border-top:1px solid var(--border);padding-top:12px;font-size:12px}.sidebar .foot .email{color:var(--muted);padding:0 8px 8px;word-break:break-all}.signout{width:100%;text-align:left;padding:8px 10px;border-radius:8px;background:transparent;border:1px solid var(--border);color:var(--muted);cursor:pointer;font-size:13px}.signout:hover{color:var(--err);border-color:var(--err)}.main{flex:1 1;min-width:0;padding:28px 32px 60px;max-width:1200px}.pagehead{margin-bottom:22px}.pagehead .sub{color:var(--muted)}.grid{display:grid;grid-gap:14px;gap:14px}.grid.k4{grid-template-columns:repeat(4,1fr)}.grid.k3{grid-template-columns:repeat(3,1fr)}.grid.k2{grid-template-columns:repeat(2,1fr)}@media (max-width:900px){.grid.k3,.grid.k4{grid-template-columns:repeat(2,1fr)}.sidebar{width:180px}}@media (max-width:640px){.grid.k2,.grid.k3,.grid.k4{grid-template-columns:1fr}.main{padding:20px 16px 48px}}.tile{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow)}.tile .label{color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.tile .value{font-size:26px;font-weight:680;margin-top:6px;letter-spacing:-.01em}.tile .value.sm{font-size:19px}.tile .hint{color:var(--muted);font-size:12.5px;margin-top:4px}.tile .value.ok{color:var(--ok)}.tile .value.err{color:var(--err)}.tile .value.warn{color:var(--warn)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px;margin-top:20px}.panel.flush{padding:0;overflow:hidden}.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge.ok{color:var(--ok);background:var(--ok-soft)}.badge.err{color:var(--err);background:var(--err-soft)}.badge.warn{color:var(--warn);background:var(--warn-soft)}.badge.neutral{color:var(--muted);background:var(--panel-2)}.tablewrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}thead th{text-align:left;font-weight:600;color:var(--muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;background:var(--panel-2);position:-webkit-sticky;position:sticky;top:0}tbody td,thead th{padding:11px 16px;border-bottom:1px solid var(--border)}tbody td{vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--panel-2)}td.num,th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}a.rowlink,td.name{font-weight:550}a.rowlink{color:var(--accent)}a.rowlink:hover{text-decoration:underline}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.bar{height:6px;border-radius:4px;background:var(--border);overflow:hidden;min-width:80px}.bar>span{display:block;height:100%;background:var(--ok)}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}input[type=email],input[type=password],input[type=search],input[type=text],select{background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:8px 12px;font-size:13.5px;outline:none}input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.toolbar input[type=search]{min-width:260px}button.btn{background:var(--accent);color:#fff;border:none;padding:8px 14px;border-radius:8px;font-weight:600;cursor:pointer;font-size:13.5px}button.btn:hover{filter:brightness(1.05)}.empty{padding:40px;text-align:center;color:var(--muted)}.alert{background:var(--err-soft);border-radius:8px;padding:9px 12px;font-size:13px;margin:4px 0}.alert,.errmsg{color:var(--err)}.errmsg{font-size:12.5px;max-width:440px}.linkrow{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.linkbtn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--text);font-size:13px;font-weight:550}.linkbtn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.crumbs{color:var(--muted);font-size:13px;margin-bottom:8px}.crumbs a:hover{color:var(--accent)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:32px 30px;width:100%;max-width:380px;display:flex;flex-direction:column}.login-brand{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12.5px;font-weight:600;margin-bottom:14px}.login-card h1{font-size:22px}.login-card label{font-size:12.5px;font-weight:600;color:var(--muted);margin:14px 0 5px}.login-card button[type=submit]{margin-top:22px;background:var(--accent);color:#fff;border:none;padding:11px;border-radius:9px;font-weight:650;cursor:pointer;font-size:14px}.login-card button[type=submit]:hover{filter:brightness(1.05)}