:root{--bg:#181a20;--panel:#20232c;--fg:#e6e8ee;--dim:#9aa0ad;--accent:#4f9cff;--on:#37c46a;--danger:#ff5f6e;--amber:#f5a623;--border:#2a2e39;--input:#141620}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}a{color:var(--accent);text-decoration:none}h1{font-size:22px;margin:0 0 4px}h2{font-size:16px;margin:0 0 10px}.muted{color:var(--dim)}button{font:inherit;cursor:pointer;border:1px solid var(--border);border-radius:6px;padding:7px 13px;background:var(--panel);color:var(--fg)}button:hover{border-color:#3a4050}button.accent{background:var(--accent);color:#0b1220;font-weight:600;border-color:var(--accent)}button.danger{color:var(--danger);border-color:var(--danger)}button.danger,button.ghost{background:transparent}button:disabled{opacity:.45;cursor:not-allowed}input,select{font:inherit;padding:8px 10px;border-radius:6px;border:1px solid var(--border);background:var(--input);color:var(--fg);width:100%}label{display:block;margin:10px 0 4px;color:var(--dim);font-size:13px}.wrap{max-width:1000px;margin:0 auto;padding:20px}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:16px}.row,.spread{display:flex;align-items:center;gap:10px}.spread{justify-content:space-between}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:10px 8px;border-bottom:1px solid var(--border)}th{color:var(--dim);font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:7px;vertical-align:middle}.dot.active,.dot.online{background:var(--on)}.dot.connecting{animation:pulse 1.5s infinite}.dot.connecting,.dot.paused{background:var(--amber)}.dot.offline{background:var(--dim)}.dot.kicked,.dot.needs_reauth{background:var(--amber)}@keyframes pulse{0%{transform:scale(.95);box-shadow:0 0 0 0 rgba(255,193,7,.7)}70%{transform:scale(1);box-shadow:0 0 0 5px rgba(255,193,7,0)}to{transform:scale(.95);box-shadow:0 0 0 0 rgba(255,193,7,0)}}@keyframes spin{to{transform:rotate(1turn)}}.spin{animation:spin .8s linear infinite}.menu-wrap{position:relative;display:inline-block}.menu{position:absolute;right:0;top:100%;margin-top:4px;min-width:140px;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.45);z-index:40;overflow:hidden}.menu button{display:block;width:100%;text-align:left;border:0;border-radius:0;background:transparent;padding:9px 12px}.chip,.menu button:hover{background:var(--input)}.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border:1px solid var(--border);border-radius:999px;font-size:12px}.chip.on{border-color:var(--on)}.chip button{padding:0;border:0;background:transparent;line-height:1;font-size:13px}.tog{width:14px;height:14px;border-radius:50%;border:2px solid var(--dim);display:inline-block}.tog.on{background:var(--on);border-color:var(--on)}.dot.error{background:var(--danger)}.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.65);display:flex;align-items:center;justify-content:center;z-index:50}.modal{width:min(560px,94vw)}.err{color:var(--danger);margin:8px 0}.pill{font-size:12px;padding:2px 8px;border-radius:999px;background:var(--input);color:var(--dim)}.no-spin::-webkit-inner-spin-button,.no-spin::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.no-spin{-moz-appearance:textfield}.apc-sched-row{flex-wrap:nowrap}@media (max-width:480px){.apc-sched-row{flex-wrap:wrap}.apc-sched-row .apc-date-time-wrap{margin-left:56px}}input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px!important;height:16px!important;background:var(--input);border:1px solid var(--border);border-radius:4px;outline:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;position:relative;transition:all .2s ease;vertical-align:middle;margin:0}input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}input[type=checkbox]:checked:after{content:"✓";color:#0b1220;font-size:11px;font-weight:900;position:absolute}input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}input[type=checkbox]:hover:not(:disabled){border-color:rgba(79,156,255,.5);box-shadow:0 0 6px rgba(79,156,255,.2)}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,#20232c 25%,#2a2e39 50%,#20232c 75%);background-size:200% 100%;animation:shimmer 1.6s linear infinite}