:root{--page: #f1f3f8;--card: #ffffff;--inset: #f7f8fc;--brand: #2e44ce;--brand-text: #2e44ce;--brand-soft: #e8ebfb;--sky: #5a9cee;--navy: #070b1e;--ink: #0a0f28;--ink-muted: #596078;--ink-faint: #8a92a8;--on-brand: #ffffff;--fill: #e9ebf4;--positive: #0f7a52;--positive-soft: #e2f4ec;--warning: #9a5b00;--danger: #c01f2b;--danger-soft: #fdeaeb;--chat: #008069;--line: rgba(10, 15, 40, .16);--disp: -apple-system, BlinkMacSystemFont, "SF Pro Display", Inter, system-ui, sans-serif;--text: -apple-system, BlinkMacSystemFont, "SF Pro Text", Inter, system-ui, sans-serif;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0;overflow-x:hidden;background:var(--page)}body{font-family:var(--text);color:var(--ink);-webkit-font-smoothing:antialiased;touch-action:manipulation}#root{min-height:100vh}.app{max-width:440px;margin:0 auto;min-height:100vh;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:flex;flex-direction:column}.num{font-variant-numeric:tabular-nums}.eyebrow{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}h1,h2{text-wrap:balance}.card{background:var(--card);border-radius:24px;padding:22px;box-shadow:0 .5px 1px #0a0f280a,0 2px 6px #0a0f280a,0 12px 32px #0a0f2812}.btn{width:100%;height:52px;border:0;border-radius:999px;cursor:pointer;font-family:var(--text);font-size:17px;font-weight:600;letter-spacing:-.01em;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn-primary{background:var(--brand);color:var(--on-brand);box-shadow:0 1px 1px #0a0f281a,0 3px 8px #2e44ce2e,0 10px 24px #2e44ce38}.btn-neutral{background:var(--fill);color:var(--ink)}.btn-chat{background:var(--chat);color:#fff;font-size:16px;box-shadow:0 1px 1px #00000040,0 6px 16px #00806959}.btn:disabled{background:#c7cbe0;color:#fff;cursor:not-allowed}.field{width:100%;height:52px;border-radius:999px;border:1.5px solid var(--line);background:var(--inset);padding:0 20px;font-family:var(--text);font-size:16px;color:var(--ink)}.field::placeholder{color:var(--ink-faint)}.field:focus{outline:none;border-color:var(--brand);background:#fff;box-shadow:0 0 0 4px #2e44ce29}.field.err{border-color:var(--danger);background:#fff;box-shadow:0 0 0 4px #c01f2b1f}.lab{font-size:13px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--ink-muted)}.msg-err{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--danger)}.opt{display:flex;align-items:center;gap:14px;width:100%;background:var(--card);border:0;border-radius:999px;padding:16px 22px;cursor:pointer;font-family:var(--text);font-size:16px;line-height:21px;letter-spacing:-.01em;color:var(--ink);text-align:left;box-shadow:0 .5px 1px #0a0f280a,0 2px 6px #0a0f280d}.opt .tick{width:24px;height:24px;border-radius:999px;flex-shrink:0;box-shadow:inset 0 0 0 1.5px #0a0f2829;display:inline-flex;align-items:center;justify-content:center}.opt .box{width:24px;height:24px;border-radius:8px;flex-shrink:0;box-shadow:inset 0 0 0 1.5px #0a0f2829;display:inline-flex;align-items:center;justify-content:center}.opt.sel{background:var(--brand-soft);box-shadow:0 1px 2px #0a0f2812,inset 0 0 0 1.5px var(--brand)}.opt.sel .tick,.opt.sel .box{background:var(--brand);box-shadow:none}.chip{font-size:12px;font-weight:600;white-space:nowrap;color:var(--brand-text);background:var(--brand-soft);padding:6px 11px;border-radius:999px}.progress{flex-grow:1;height:8px;border-radius:999px;background:#e3e6f0;box-shadow:inset 0 1px 2px #0a0f280f;overflow:hidden}.progress>div{height:100%;border-radius:999px;background:var(--brand);transition:width .35s cubic-bezier(.32,.72,0,1)}.icon-btn{width:40px;height:40px;border:0;border-radius:999px;flex-shrink:0;background:var(--card);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 .5px 1px #0a0f280a,0 2px 6px #0a0f280d}@media (prefers-reduced-motion: no-preference){.btn,.opt,.icon-btn{transition:transform .12s cubic-bezier(.32,.72,0,1),box-shadow .18s,background-color .18s}.btn:active,.icon-btn:active{transform:scale(.98)}.opt:active{transform:scale(.99)}.field{transition:border-color .18s cubic-bezier(.32,.72,0,1),box-shadow .18s,background-color .18s}.spin{animation:sp .9s linear infinite;transform-origin:center}@keyframes sp{to{transform:rotate(360deg)}}.fade{animation:fade .32s cubic-bezier(.32,.72,0,1) both}@keyframes fade{0%{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:none}}}
