:root{--bg: #0b1a17;--panel: #0f221e;--panel-2: #122924;--line: rgba(255, 255, 255, .07);--line-2: rgba(255, 255, 255, .12);--ink: #e8f2ef;--dim: rgba(200, 225, 218, .55);--dimmer: rgba(200, 225, 218, .32);--acc: #1eb48c;--acc-deep: #16a37a;--warn: #f59e0b;--bad: #ef4444;--info: #6382ff;--display: "Syne", system-ui, sans-serif;--body: "Inter", system-ui, -apple-system, sans-serif;--mono: "JetBrains Mono", ui-monospace, monospace;--r-sm: 6px;--r: 9px;--r-lg: 14px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font:400 14px/1.55 var(--body);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-radius:var(--r-sm)}.shell{display:flex;min-height:100vh}.sidebar{width:224px;flex:0 0 224px;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:20px 14px;position:sticky;top:0;height:100vh}.logo{display:flex;align-items:center;gap:10px;padding:0 6px 22px}.logo svg{width:30px;height:30px;flex:0 0 30px}.logo-text{font-family:var(--display);font-size:17px;font-weight:800;letter-spacing:-.03em}.logo-sub{font-family:var(--mono);font-size:9px;letter-spacing:.14em;color:var(--dimmer);text-transform:uppercase;margin-top:1px}.nav{display:flex;flex-direction:column;gap:2px}.nav a{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:var(--r);color:var(--dim);font-size:13.5px;font-weight:500}.nav a:hover{background:#ffffff0a;color:var(--ink)}.nav a.on{background:#1eb48c21;color:var(--acc)}.nav a svg{width:16px;height:16px;opacity:.85}.side-foot{margin-top:auto;padding-top:16px;border-top:1px solid var(--line)}.side-user{font-size:12px;color:var(--dim);padding:0 6px 9px;overflow:hidden;text-overflow:ellipsis}.main{flex:1;min-width:0;padding:28px 32px 64px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:24px}.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}h1{font-family:var(--display);font-size:28px;font-weight:800;letter-spacing:-.035em;margin:4px 0 0}h2{font-family:var(--display);font-size:19px;font-weight:700;letter-spacing:-.02em;margin:0 0 14px}.btn{background:var(--acc);color:#04120e;border:0;border-radius:var(--r);padding:9px 16px;font:700 13px var(--body);cursor:pointer;transition:background .15s}.btn:hover{background:var(--acc-deep)}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line-2)}.btn.ghost:hover{background:#ffffff0d}.btn.danger{background:transparent;color:var(--bad);border:1px solid rgba(239,68,68,.35)}.btn.sm{padding:6px 11px;font-size:12px}.btn:disabled{opacity:.4;cursor:not-allowed}input,select,textarea{background:#ffffff0a;border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 11px;color:var(--ink);font:400 13.5px var(--body);width:100%}input:focus,select:focus,textarea:focus{outline:0;border-color:var(--acc)}select option{background:var(--panel);color:var(--ink)}label.field{display:block;margin-bottom:13px}label.field>span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim);margin-bottom:6px}.row{display:flex;gap:12px;flex-wrap:wrap}.row>*{flex:1;min-width:140px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;margin-bottom:22px}.stat{background:var(--panel);padding:15px 17px}.stat-v{font-family:var(--mono);font-size:21px;font-weight:700;letter-spacing:-.02em}.stat-v.good{color:var(--acc)}.stat-v.bad{color:var(--bad)}.stat-l{font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.08em;margin-top:3px}table.tbl{width:100%;border-collapse:collapse}table.tbl th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim);font-weight:500;padding:9px 12px;border-bottom:1px solid var(--line)}table.tbl td{padding:12px;border-bottom:1px solid var(--line);font-size:13.5px}table.tbl tr:last-child td{border-bottom:0}table.tbl tbody tr:hover{background:#ffffff05}.num{font-family:var(--mono)}.good{color:var(--acc)}.bad{color:var(--bad)}.warn{color:var(--warn)}.pill{display:inline-block;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600;border:1px solid}.bar{display:block;height:3px;background:#ffffff14;border-radius:2px;overflow:hidden}.bar>b{display:block;height:100%;border-radius:2px;background:var(--acc);transition:width .35s cubic-bezier(.2,.8,.3,1)}.empty{padding:52px 20px;text-align:center;color:var(--dim);border:1px dashed var(--line-2);border-radius:var(--r-lg);display:flex;flex-direction:column;align-items:center;gap:15px}.error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#fca5a5;padding:10px 14px;border-radius:var(--r);margin-bottom:15px;font-size:13px}.note{font-size:12px;color:var(--dim);margin:8px 0 0}.note code{background:#ffffff0f;padding:1px 5px;border-radius:4px;font-family:var(--mono);font-size:11px;margin-right:3px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#040c0ab8;display:grid;place-items:center;padding:20px;z-index:60}.modal-in{background:var(--panel);border:1px solid var(--line-2);border-radius:var(--r-lg);padding:24px;width:100%;max-width:560px;max-height:88vh;overflow:auto}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.login{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:372px}.login-card .logo{justify-content:center;padding-bottom:26px}@media (max-width: 900px){.shell{flex-direction:column}.sidebar{width:auto;flex:none;height:auto;position:static;flex-direction:row;align-items:center;gap:12px;padding:12px 14px;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}.logo{padding:0;flex:0 0 auto}.logo-sub{display:none}.nav{flex-direction:row;gap:4px}.nav a{white-space:nowrap;padding:7px 10px;font-size:13px}.nav a span{display:none}.nav a svg{width:15px;height:15px}.nav a.on span{display:inline}.side-foot{margin:0 0 0 auto;padding:0;border:0;flex:0 0 auto}.side-user{display:none}.main{padding:20px 16px 48px}h1{font-size:23px}}@media (prefers-reduced-motion: reduce){*,.bar>b{transition:none!important;animation:none!important}}
