:root{--bg: #0a0a0a;--bg-elevated: #111111;--bg-card: #1a1a1a;--bg-card-hover: #222222;--accent: #f59e0b;--accent-hover: #fbbf24;--accent-subtle: rgba(245, 158, 11, .1);--accent-border: rgba(245, 158, 11, .3);--brand: linear-gradient(135deg, #f43f5e 0%, #f59e0b 100%);--text: #fafafa;--text-2: #a1a1aa;--text-3: #52525b;--border: rgba(255, 255, 255, .07);--border-hover: rgba(255, 255, 255, .14);--fast: #22c55e;--ok: #eab308;--slow: #ef4444;--danger: #ef4444;--danger-subtle: rgba(239, 68, 68, .1);--radius: 12px;--radius-sm: 8px;--radius-full: 9999px;--mono: "JetBrains Mono", ui-monospace, monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}button{cursor:pointer;border:none;font-family:inherit;font-size:.875rem;font-weight:500;border-radius:var(--radius-sm);padding:.5rem 1rem;transition:background .15s,opacity .15s,transform .1s;line-height:1;touch-action:manipulation}button:active{transform:scale(.97)}button:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--brand);color:#fff;font-weight:700}.btn-primary:hover:not(:disabled){filter:brightness(1.1)}.btn-ghost{background:var(--bg-card);color:var(--text);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--bg-card-hover);border-color:var(--border-hover)}input{font-family:inherit;font-size:1rem;background:var(--bg-card);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.65rem .85rem;outline:none}input:focus{border-color:var(--accent-border)}.error-msg{background:var(--danger-subtle);border:1px solid rgba(239,68,68,.3);color:#fca5a5;border-radius:var(--radius-sm);padding:.6rem .85rem;font-size:.85rem}.muted{color:var(--text-2)}.faint{color:var(--text-3)}
