:root,:root[data-theme=dark]{color-scheme:dark;--bg: #0b1426;--bg-glow-1: transparent;--bg-glow-2: transparent;--surface: #111c33;--surface-solid: #16233f;--surface-2: rgba(255, 255, 255, .04);--border: #24344f;--text: #e8edf7;--text-muted: #8c9bb5;--primary: #5b9dff;--primary-2: #2f6fe4;--accent-soft: rgba(91, 157, 255, .14);--success: #3ccf9a;--danger: #f27c7c;--warn: #e7b93e;--shadow: 0 1px 3px rgba(0, 0, 0, .35);--glow: 0 0 0 1px rgba(91, 157, 255, .35);--shadow-hover: 0 6px 18px rgba(0, 0, 0, .45);--row-hover: rgba(91, 157, 255, .07)}:root[data-theme=light]{color-scheme:light;--bg: #f4f6fb;--bg-glow-1: rgba(79, 140, 255, .28);--bg-glow-2: rgba(29, 78, 216, .1);--surface: #ffffff;--surface-solid: #ffffff;--surface-2: rgba(10, 26, 80, .04);--border: rgba(20, 50, 130, .14);--text: #0a1a4a;--text-muted: #5a6b9a;--primary: #1d4ed8;--primary-2: #0f2f8f;--accent-soft: rgba(29, 78, 216, .1);--success: #059669;--danger: #dc2626;--warn: #b45309;--shadow: 0 1px 4px rgba(15, 47, 143, .1);--glow: 0 0 0 1px rgba(29, 78, 216, .35);--shadow-hover: 0 8px 22px rgba(15, 47, 143, .16);--row-hover: rgba(29, 78, 216, .07)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--text);background:var(--bg);transition:background-color .4s,color .3s;overflow-x:hidden}h1,h2,h3,p{margin:0}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--primary)}::-webkit-scrollbar-track{background:transparent}.muted{color:var(--text-muted)}.spacer{flex:1}.page{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden;animation:fade-in .45s ease both}.topbar{display:flex;align-items:center;gap:12px;padding:12px 24px;background:var(--surface);border-bottom:1px solid var(--border);z-index:5}.topbar h1{font-size:1.1rem;font-weight:650}.brand{display:flex;align-items:center;gap:12px}.brand p{font-size:.78rem;color:var(--text-muted)}.brand h1{line-height:1.2}.logo{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-weight:800;letter-spacing:.5px;color:#fff;background:var(--primary-2)}.state{flex:1;display:grid;place-items:center;text-align:center;gap:14px;align-content:center;color:var(--text-muted);padding:24px}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);transition:box-shadow .3s,border-color .3s}.card-hover:hover{border-color:var(--primary);box-shadow:var(--shadow-hover)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px;padding:0 18px;border-radius:8px;font:inherit;font-weight:600;font-size:.9rem;cursor:pointer;border:1px solid transparent;color:var(--text);transition:transform .2s,box-shadow .25s,background .25s,border-color .25s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{color:#fff;background:var(--primary-2)}.btn-primary:hover:not(:disabled){background:var(--primary)}.btn-ghost{background:var(--surface);border-color:var(--border)}.btn-ghost:hover:not(:disabled){border-color:var(--primary);box-shadow:var(--glow)}.btn-sm{height:32px;padding:0 14px;font-size:.82rem;border-radius:10px}.input{width:100%;height:44px;padding:0 14px;border-radius:8px;font:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--border);outline:none;transition:border-color .25s,box-shadow .25s,background .25s}.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--accent-soft)}.input.sm{height:34px;width:auto;padding:0 8px}select.input option{color:#0a1a4a;background:#fff}.chip{display:inline-flex;align-items:center;padding:3px 11px;border-radius:999px;font-size:.78rem;background:var(--accent-soft);color:var(--primary);border:1px solid transparent;white-space:nowrap;font-weight:550}.badge{display:inline-block;padding:3px 10px;border-radius:8px;font-size:.75rem;font-weight:650;text-transform:capitalize;background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border)}.badge.ok{color:var(--success);background:rgba(52,211,153,.12);border-color:#34d39959}.badge.warn{color:var(--warn);background:rgba(251,191,36,.12);border-color:#fbbf2459}.badge.info{color:var(--primary);background:var(--accent-soft);border-color:transparent}.badge.bad{color:var(--danger);background:rgba(248,113,113,.12);border-color:#f8717159}.spinner{width:38px;height:38px;border-radius:50%;border:3px solid var(--accent-soft);border-top-color:var(--primary);animation:spin .8s linear infinite}.skeleton{height:22px;border-radius:8px;background:linear-gradient(90deg,var(--surface-2),var(--accent-soft),var(--surface-2));background-size:200% 100%;animation:shimmer 1.4s linear infinite}@keyframes fade-in{0%{opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{to{background-position:-200% 0}}@keyframes fade-up{0%{opacity:0;transform:translateY(16px)}}.fade-up{animation:fade-up .55s cubic-bezier(.2,.8,.2,1) both}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media (max-width: 1024px){.topbar{padding:10px 16px}}
