:root{--accent:#6d5efc;--accent-strong:#5b4de0;--accent-soft:rgba(109,94,252,0.14);--danger:#f0506e;--danger-soft:rgba(240,80,110,0.14);--warn:#f5a524;--warn-soft:rgba(245,165,36,0.14);--ok:#2ecc8f;--ok-soft:rgba(46,204,143,0.14);--info:#38b6ff;--bg:#0d0f16;--bg-elev:#141824;--panel:#171c2b;--panel-2:#1d2334;--line:#262d40;--line-soft:#1e2434;--text:#eef1f7;--text-dim:#a2acc4;--text-faint:#6b7590;--radius:12px;--radius-sm:8px;--shadow:0 1px 2px rgba(0,0,0,0.4),0 8px 24px rgba(0,0,0,0.25);--font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace}@media (prefers-color-scheme:light){:root{--bg:#f4f6fb;--bg-elev:#ffffff;--panel:#ffffff;--panel-2:#f7f9fd;--line:#e3e8f2;--line-soft:#eef1f7;--text:#141824;--text-dim:#4c5670;--text-faint:#8a93ab;--shadow:0 1px 2px rgba(20,24,36,0.06),0 8px 24px rgba(20,24,36,0.08)}}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}button{cursor:pointer}button,input,select,textarea{font-family:inherit;font-size:inherit}::selection{background:var(--accent-soft)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 15px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--panel-2);color:var(--text);font-weight:600;font-size:13px;transition:background .14s,border-color .14s,transform .06s,opacity .14s;white-space:nowrap}.btn:hover{background:var(--panel);border-color:var(--text-faint)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover{filter:brightness(1.08)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-dim)}.btn-ghost:hover{background:var(--panel-2);color:var(--text)}.btn-sm{padding:6px 11px;font-size:12px}.input,.select{width:100%;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--bg-elev);color:var(--text);outline:none;transition:border-color .14s,box-shadow .14s}.input:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input::placeholder{color:var(--text-faint)}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:700;letter-spacing:.01em;border:1px solid transparent;text-transform:capitalize}.badge-ok{background:var(--ok-soft);color:var(--ok)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-neutral{background:var(--panel-2);color:var(--text-dim);border-color:var(--line)}.badge-accent{background:var(--accent-soft);color:var(--accent)}.mono{font-family:var(--mono);font-size:12px}.spin{width:18px;height:18px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.fade-in{animation:fadeIn .2s ease both}