:root{--bg:#0a0f1c;--surface:#111a2e;--surface-2:#16213b;--border:#20304f;--accent:#2dd4bf;--accent-dim:#2dd4bf24;--amber:#ffb020;--amber-dim:#ffb02024;--danger:#fb6b6b;--danger-dim:#fb6b6b24;--success:#34d399;--success-dim:#34d39924;--text:#e7ecf6;--text-muted:#8291ad;--text-faint:#54617d}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;background-image:radial-gradient(circle at 20% 0,#2dd4bf0d 0%,#0000 45%);font-family:Inter,-apple-system,sans-serif}a{color:inherit;text-decoration:none}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--text-faint);text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--border);padding:0 10px 10px 0;font-size:11px;font-weight:500}td{border-bottom:1px solid #20304f80;padding:12px 10px 12px 0;font-size:13px}tr{transition:background .12s}tr:hover td{background:#2dd4bf08}tr:last-child td{border-bottom:none}input,select,textarea{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:7px;padding:9px 11px;font-family:Inter,sans-serif;font-size:13px;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #2dd4bf1a}button{cursor:pointer;font-family:Inter,sans-serif;transition:transform .1s,opacity .15s}button:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:#04211d;border:none;border-radius:8px;padding:9px 16px;font-size:13px;font-weight:600;box-shadow:0 0 #2dd4bf66}.btn-primary:hover{box-shadow:0 0 16px #2dd4bf59}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:9px 16px;font-size:13px;font-weight:600}.btn-secondary:hover{border-color:var(--accent);color:var(--accent)}.btn-danger{background:var(--danger-dim);color:var(--danger);border:none;border-radius:7px;padding:6px 12px;font-size:12px;font-weight:600}.btn-danger:hover{background:#fb6b6b38}.btn-small{border-radius:6px;padding:5px 10px;font-size:11.5px}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px 22px;transition:border-color .2s}.pill{border-radius:20px;align-items:center;gap:5px;padding:3px 9px;font-size:11px;font-weight:500;display:inline-flex}.pill-dot{border-radius:50%;width:6px;height:6px;position:relative}.pill-dot:after{content:"";border-radius:50%;animation:2.2s ease-out infinite pulseRing;position:absolute;inset:-3px}.pill.on{background:var(--success-dim);color:var(--success)}.pill.on .pill-dot,.pill.on .pill-dot:after{background:var(--success)}.pill.off{background:var(--danger-dim);color:var(--danger)}.pill.off .pill-dot{background:var(--danger)}.pill.off .pill-dot:after{animation:none}.pill.warn{background:var(--amber-dim);color:var(--amber)}.pill.warn .pill-dot,.pill.warn .pill-dot:after{background:var(--amber)}@keyframes pulseRing{0%{opacity:.55;transform:scale(.4)}to{opacity:0;transform:scale(2.2)}}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:.35s fadeSlideUp}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}
