:root{--bg:#0b0b12;--surface:#14141d;--raised:#1c1c28;--hl:#262635;--line:#2a2a3a;--text:#f4f4f8;--text2:#a3a3b8;--text3:#6e6e85;--violet:#8b5cf6;--blue:#3b82f6;--teal:#2dd4bf;--danger:#f87171;--warn:#fbbf24;--ok:#34d399;--brand:linear-gradient(135deg, var(--violet), var(--blue) 55%, var(--teal));--r:10px;--r-lg:16px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,sans-serif}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#f6f6fa;--surface:#fff;--raised:#eeeef5;--hl:#e3e3ee;--line:#d9d9e3;--text:#101018;--text2:#55556a;--text3:#8a8a9e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-size:14px}a{color:var(--violet);text-decoration:none}h1{letter-spacing:-.01em;margin:0 0 16px;font-size:24px}h2{margin:24px 0 10px;font-size:16px}.layout{grid-template-columns:232px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--line);height:100vh;padding:18px 12px;position:sticky;top:0;overflow-y:auto}.brand{letter-spacing:.14em;background:var(--brand);color:#0000;-webkit-background-clip:text;background-clip:text;padding:4px 10px 18px;font-size:15px;font-weight:900}.nav a{color:var(--text2);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-weight:500;display:flex}.nav a.active,.nav a:hover{background:var(--raised);color:var(--text)}.nav .group{color:var(--text3);text-transform:uppercase;letter-spacing:.08em;margin:16px 10px 6px;font-size:11px}main{min-width:0;padding:28px clamp(16px,3vw,40px)}.topbar{display:none}@media (width<=860px){.layout{grid-template-columns:1fr}.sidebar{z-index:20;width:260px;transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.sidebar.open{transform:none}.topbar{border-bottom:1px solid var(--line);background:var(--surface);z-index:10;align-items:center;gap:12px;padding:12px 16px;display:flex;position:sticky;top:0}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px}.grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;display:grid}.stat .v{font-variant-numeric:tabular-nums;margin-top:6px;font-size:26px;font-weight:800}.stat .k{color:var(--text2);text-transform:uppercase;letter-spacing:.06em;font-size:12px}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spacer{flex:1}input,select,textarea{background:var(--raised);color:var(--text);border:1px solid var(--line);font:inherit;border-radius:8px;min-width:0;padding:8px 10px}input:focus,select:focus,textarea:focus{outline:2px solid var(--violet);outline-offset:-1px}label.field{color:var(--text2);gap:5px;font-size:12px;display:grid}button{font:inherit;border:1px solid var(--line);background:var(--raised);color:var(--text);cursor:pointer;border-radius:999px;padding:7px 14px;font-weight:600}button:hover:not(:disabled){background:var(--hl)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--brand);color:#fff;border:0}button.danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 40%, transparent)}button.small{padding:4px 10px;font-size:12px}.table-wrap{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 12px}th{color:var(--text3);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:700}tr:last-child td{border-bottom:0}td.wrap{white-space:normal}.thumb{object-fit:cover;background:var(--hl);vertical-align:middle;border-radius:6px;width:36px;height:36px}.badge{border:1px solid var(--line);color:var(--text2);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.badge.ok{color:var(--ok);border-color:color-mix(in srgb, var(--ok) 40%, transparent)}.badge.warn{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 40%, transparent)}.badge.bad{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 40%, transparent)}.badge.teal{color:var(--teal);border-color:color-mix(in srgb, var(--teal) 40%, transparent)}.progress{background:var(--hl);border-radius:99px;min-width:80px;height:6px;overflow:hidden}.progress>div{background:var(--brand);height:100%;transition:width .3s}.muted{color:var(--text2)}.small-text{color:var(--text3);font-size:12px}.error{color:var(--danger)}.pager{color:var(--text2);justify-content:flex-end;align-items:center;gap:8px;margin-top:10px;display:flex}.drop{border:2px dashed var(--line);border-radius:var(--r-lg);text-align:center;color:var(--text2);padding:34px;transition:border-color .15s,background .15s}.drop.over{border-color:var(--violet);background:color-mix(in srgb, var(--violet) 8%, transparent)}.modal-bg{z-index:50;background:#0009;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{width:min(640px,100%);max-height:90vh;overflow:auto}.form-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.toast{background:var(--raised);border:1px solid var(--line);z-index:60;border-radius:12px;padding:12px 16px;position:fixed;bottom:20px;right:20px;box-shadow:0 10px 30px #0006}.login{place-items:center;min-height:100vh;padding:16px;display:grid}.login .card{gap:12px;width:min(380px,100%);display:grid}pre.log{background:var(--bg);border:1px solid var(--line);white-space:pre-wrap;border-radius:10px;max-height:360px;padding:12px;font-size:12px;overflow:auto}.bars{align-items:flex-end;gap:3px;height:120px;display:flex}.bars div{background:var(--brand);border-radius:3px 3px 0 0;flex:1;max-width:36px;min-height:2px}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}
