:root{--ink:#0f0f0f;--surface:#1c1c1e;--surface-2:#26262a;--accent:#1fad64;--accent-hover:#189a56;--warning:#f59e0b;--danger:#ef4444;--text:#f5f5f5;--text-dim:#a1a1aa;--border:#2e2e33;--font:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--ink);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:1.5rem;margin:0 0 4px}h2{font-size:1.15rem;margin:0 0 12px}.muted{color:var(--text-dim)}.shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:var(--surface);border-right:1px solid var(--border);padding:20px 14px;display:flex;flex-direction:column;gap:4px}.sidebar .brand{display:flex;align-items:center;gap:8px;margin-bottom:18px;font-weight:700}.sidebar .brand .dot{width:26px;height:26px;border-radius:7px;background:var(--accent);color:var(--ink);display:grid;place-items:center;font-weight:800}.navlink{color:var(--text);padding:9px 12px;border-radius:8px;font-weight:500}.navlink:hover{background:var(--surface-2);text-decoration:none}.navlink.active{background:rgba(31,173,100,.14);color:#fff}.sidebar .spacer{flex:1 1}.content{padding:28px clamp(16px,4vw,40px);max-width:1100px}.page-head{margin-bottom:22px}.grid{display:grid;grid-gap:16px;gap:16px}.stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px 20px}.stat .n{font-size:1.9rem;font-weight:800;letter-spacing:-.02em}.stat .l{color:var(--text-dim);font-size:.85rem;text-transform:uppercase;letter-spacing:.04em}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:12px}table{width:100%;border-collapse:collapse;min-width:640px}td,th{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border);white-space:nowrap}thead th{color:var(--text-dim);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;background:var(--surface)}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--surface)}.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.78rem;font-weight:600;border:1px solid var(--border)}.badge.on{color:var(--accent);border-color:rgba(31,173,100,.5)}.badge.off{color:var(--text-dim)}.badge.default{color:var(--ink);background:var(--accent);border-color:var(--accent)}form.stack{display:grid;grid-gap:12px;gap:12px;max-width:440px}label{display:grid;grid-gap:5px;gap:5px;font-size:.9rem;font-weight:600}input,select{width:100%;padding:10px 12px;background:var(--ink);border:1px solid var(--border);border-radius:8px;color:var(--text);font:inherit}input:focus,select:focus{outline:2px solid var(--accent);border-color:var(--accent)}.row{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.btn{display:inline-block;background:var(--accent);color:var(--ink);padding:10px 18px;border:none;border-radius:8px;cursor:pointer;font:inherit;font-weight:700}.btn:hover{background:var(--accent-hover)}.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border)}.btn.ghost:hover{background:var(--surface-2)}.btn.small{padding:6px 12px;font-size:.85rem}.btn:disabled{opacity:.6;cursor:not-allowed}.form-error{color:var(--danger)}.form-error,.form-ok{font-weight:600;margin:0}.form-ok{color:var(--accent)}.section-gap{margin-top:32px}.inline-form{display:inline}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}