:root{--bg:#0b0d17;--bg-elev:#141828;--bg-elev-2:#1b2036;--bg-hover:#232842;--indigo:#7c3aed;--indigo-soft:#a78bfa;--indigo-dim:#5b21b6;--cyan:#3b82f6;--cyan-soft:#60a5fa;--text:#e4e7ef;--text-muted:#8b91a7;--text-dim:#5c6378;--border:#232842;--border-strong:#2f3552;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--radius:12px;--radius-lg:16px}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01"}body{background:radial-gradient(ellipse 80% 60% at 50% -10%,rgba(99,102,241,.12),transparent),radial-gradient(ellipse 60% 40% at 90% 100%,rgba(6,182,212,.06),transparent),var(--bg);min-height:100vh}a{text-decoration:none}a,button{color:inherit}button{font-family:inherit;cursor:pointer;border:none;background:none}input,select,textarea{font-family:inherit;font-size:14px;color:var(--text)}.mono,code{font-family:SF Mono,Menlo,Monaco,Cascadia Mono,monospace}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border-radius:var(--radius);font-size:14px;font-weight:500;transition:background .15s,border-color .15s,transform .05s;border:1px solid transparent}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--indigo),var(--indigo-dim));color:#fff;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.1),0 4px 14px rgba(99,102,241,.3)}.btn-primary:hover:not(:disabled){filter:brightness(1.1)}.btn-secondary{background:var(--bg-elev-2);color:var(--text);border-color:var(--border)}.btn-secondary:hover:not(:disabled){border-color:var(--indigo);background:var(--bg-hover)}.input{width:100%;height:42px;padding:0 14px;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:var(--radius);outline:none;transition:border-color .15s}.input:focus{border-color:var(--indigo);box-shadow:0 0 0 3px rgba(99,102,241,.15)}.label{display:block;font-size:12px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px}.error-text{color:var(--danger);font-size:13px;margin-top:8px}