*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg:#0d1117;--color-surface:#161b22;--color-surface-hi:#1c2333;--color-overlay:#21262d;--color-border:#30363d;--color-border-hi:#484f58;--color-border-subtle:#21262d;--color-accent:#58a6ff;--color-accent-dim:#58a6ff26;--color-accent-glow:#58a6ff40;--color-success:#3fb950;--color-success-dim:#3fb95026;--color-warning:#d29922;--color-error:#f85149;--color-error-dim:#f8514926;--color-text:#e6edf3;--color-text-muted:#8b949e;--color-text-dim:#484f58;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", "Consolas", monospace}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:13px;line-height:1.5}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border-hi);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#6e7681}::selection{color:#fff;background:#58a6ff4d}:focus-visible{outline:2px solid var(--color-accent);outline-offset:-1px;border-radius:var(--radius-sm)}.glass-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.btn{border-radius:var(--radius-sm);font-family:var(--font-sans);cursor:pointer;border:1px solid var(--color-border);white-space:nowrap;background:var(--color-surface);color:var(--color-text-muted);align-items:center;gap:6px;padding:6px 14px;font-size:.8rem;font-weight:500;line-height:1.4;transition:all .15s;display:inline-flex}.btn:hover:not(:disabled){background:var(--color-surface-hi);color:var(--color-text);border-color:var(--color-border-hi)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{color:#fff;background:#1f6feb;border-color:#1f6feb}.btn-primary:hover:not(:disabled){background:#388bfd;border-color:#388bfd}.btn-primary:active:not(:disabled){background:#1f6feb}.btn-ghost{color:var(--color-text-muted);border:1px solid var(--color-border);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--color-surface-hi);color:var(--color-text);border-color:var(--color-border-hi)}.btn-danger{color:var(--color-error);background:0 0;border:1px solid #f851494d}.btn-danger:hover:not(:disabled){background:var(--color-error-dim);border-color:var(--color-error)}.btn-success{color:#fff;background:#238636;border-color:#238636}.btn-success:hover:not(:disabled){background:#2ea043;border-color:#2ea043}.tag{letter-spacing:.03em;text-transform:uppercase;background:var(--color-accent-dim);color:var(--color-accent);font-size:.65rem;font-weight:500;font-family:var(--font-mono);border:1px solid #58a6ff33;border-radius:999px;align-items:center;padding:2px 8px;display:inline-flex}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:2px solid #ffffff26;border-top-color:var(--color-accent);border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-in-up{animation:.25s forwards fadeInUp}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.8)}}.pulse-dot{background:var(--color-success);border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite pulse-dot}.divider{background:var(--color-border);flex-shrink:0;width:100%;height:1px}input,textarea,select{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);outline:none;padding:7px 10px;font-size:.82rem;transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus,select:focus{border-color:var(--color-accent);box-shadow:0 0 0 2px #58a6ff26}input::placeholder,textarea::placeholder{color:var(--color-text-dim)}select{cursor:pointer}select option,select optgroup{background:var(--color-surface);color:var(--color-text)}
