:root{--primary-purple: #8b7cff;--deep-purple: #6b52e8;--brand: #7b61d9;--green: #4ade80;--blue: #7db4ff;--orange: #fdba74;--danger: #f87171;--bg: #15131f;--surface: #1f1b2e;--surface-2: #272238;--border: #352e4d;--text: #f4f1fb;--text-muted: #a79fc4;--radius-card: 22px;--radius-lg: 28px;--radius-pill: 999px;--shadow-soft: 0 12px 30px -12px rgba(40, 20, 80, .55);--font: "Heebo", system-ui, -apple-system, "Segoe UI", sans-serif}.light{--bg: #f6f3ff;--surface: #ffffff;--surface-2: #f0ecfb;--border: #e3ddf3;--text: #1d1830;--text-muted: #6a6388}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased}h1,h2,h3{font-weight:800;letter-spacing:-.015em;margin:0 0 .4em}a{color:var(--primary-purple)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:1.25rem;box-shadow:var(--shadow-soft)}.chip{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .7rem;border-radius:var(--radius-pill);background:var(--surface-2);color:var(--text-muted);font-size:.8rem;font-weight:500}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:var(--radius-pill);background:var(--brand);color:#fff;font-family:inherit;font-weight:700;font-size:.95rem;padding:.6rem 1.25rem;cursor:pointer;transition:transform .08s ease}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn.ghost{background:transparent;color:var(--text-muted)}.input,.select,.textarea{width:100%;font-family:inherit;font-size:.95rem;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:14px;padding:.6rem .85rem}.textarea{min-height:88px;resize:vertical}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.85rem}.field label{font-size:.85rem;color:var(--text-muted);font-weight:500}.muted{color:var(--text-muted)}.error{color:var(--danger)}.stack{display:flex;flex-direction:column;gap:1rem}.row{display:flex;align-items:center;gap:.75rem}
