:root{--ink: #1E2338;--ink55: rgba(30, 35, 56, .55);--ink50: rgba(30, 35, 56, .5);--ink45: rgba(30, 35, 56, .45);--accent: #3D6DF2;--accent-dark: #2B55CC;--violet: #9D6CF0;--violet-deep: #5D48C9;--grad: linear-gradient(93deg, #5D7BF3, #9D6CF0);--grad-135: linear-gradient(135deg, #5D7BF3, #9D6CF0);--success: #3FAE6A;--success-text: #2E8F55;--border: #C9D0EC;--hairline: #E1E5F4;--chip-bg: #EEF1FB;--shadow-card: 0 2px 10px rgba(30, 35, 56, .07);--shadow-float: 0 4px 16px rgba(30, 35, 56, .08);--shadow-cta: 0 6px 18px rgba(109, 107, 243, .35)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0}body{font-family:Onest,system-ui,-apple-system,sans-serif;color:var(--ink);background:#d9e0f5}#root{min-height:100dvh}.app{max-width:430px;margin:0 auto;height:100dvh;background:linear-gradient(180deg,#f2f4fb,#d9e0f5);display:flex;flex-direction:column;position:relative}.screen{flex:1;min-height:0;display:flex;flex-direction:column;padding:calc(14px + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom))}.screen--flush{padding-left:0;padding-right:0}h1{font-size:24px;font-weight:700;line-height:1.25;margin:0}h2{font-size:20px;font-weight:700;margin:0}.sub{font-size:13px;line-height:1.5;color:var(--ink55)}.hint{font-size:12px;color:var(--ink50)}.micro{font-size:10px;line-height:1.5;color:#1e233866}.topbar{height:44px;display:flex;align-items:center;justify-content:space-between;gap:8px}.topbar__title{font-size:13.5px;font-weight:700}.topbar__mid{font-size:12px;color:var(--ink50);font-weight:500}.roundbtn{width:38px;height:38px;border-radius:50%;border:none;cursor:pointer;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #1e233814;color:var(--ink);flex:none}.roundbtn--grad{background:var(--grad-135);box-shadow:0 4px 12px #6d6bf366}.roundbtn--ghost{background:transparent;box-shadow:none}.btn{font-family:Onest,sans-serif;font-weight:600;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:transform .15s ease,filter .15s ease;width:100%}.btn:active{transform:scale(.97)}.btn-primary{height:54px;border-radius:18px;font-size:16px;color:#fff;background:var(--grad);box-shadow:var(--shadow-cta)}.btn-primary:active{filter:brightness(.92)}.btn-primary:disabled{background:#dde1f2;color:var(--ink45);box-shadow:none;cursor:default}.btn-primary--m{height:50px;border-radius:16px;font-size:14.5px}.btn-secondary{height:50px;border-radius:16px;font-size:13.5px;color:var(--ink);background:#fff;border:1.5px solid var(--border)}.btn-secondary--violet{border-color:#c9bdf5;color:var(--violet-deep)}.btn-ghost{height:44px;background:transparent;font-size:13.5px;color:var(--accent)}.btn-chipbg{background:var(--chip-bg);color:var(--accent);border:none}.card{background:#fff;border-radius:22px;box-shadow:var(--shadow-float)}.card--sm{border-radius:16px;box-shadow:var(--shadow-card)}.chip{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--hairline);border-radius:999px;padding:7px 12px;font-size:11.5px;color:var(--ink);font-weight:500;white-space:nowrap}.chip--store{background:var(--chip-bg);border:none;padding:3px 9px;font-size:10.5px;color:var(--accent);font-weight:700}.chip--active{background:linear-gradient(93deg,#5d7bf324,#9d6cf024);border:1.5px solid #C9BDF5;color:var(--violet-deep);font-weight:700;font-size:12px}.chip--muted{border:1.5px solid var(--hairline);color:var(--ink55);font-weight:600;font-size:12px}.shimmer{background:linear-gradient(100deg,#e9edf9 40%,#f7f9fe,#e9edf9 60%);background-size:200% 100%;animation:shimmer 2.4s infinite linear}@keyframes shimmer{0%{background-position:150% 0}to{background-position:-50% 0}}@keyframes eq{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes breathe{0%,to{opacity:.5}50%{opacity:1}}@keyframes recPulse{0%{box-shadow:0 0 #7d6ef359}to{box-shadow:0 0 0 24px #7d6ef300}}@keyframes spin{to{transform:rotate(360deg)}}.fade-up{animation:fadeUp .7s ease}.spinner{width:14px;height:14px;border:2px solid #DCE1F2;border-top-color:var(--violet);border-radius:50%;animation:spin .8s linear infinite;flex:none}.spinner--white{border-color:#fff6;border-top-color:#fff;width:16px;height:16px}.progress{height:5px;border-radius:3px;background:#edf0fa;overflow:hidden}.progress>div{height:100%;border-radius:3px;background:var(--grad);transition:width 1s linear}.note-error{background:#fdecec;border:1px solid #F5C4C4;border-radius:16px;padding:12px 14px;font-size:12.5px;line-height:1.5;color:#b34040}.note-warn{background:#fff6e8;border:1px solid #F2DDB4;border-radius:16px;padding:12px 14px;font-size:12.5px;line-height:1.5;color:#9a6b1f;font-weight:500}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1e233859;z-index:40;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:430px;max-height:85dvh;overflow:auto;background:linear-gradient(180deg,#f7f8fd,#edf0fa);border-radius:24px 24px 0 0;padding:10px 20px calc(28px + env(safe-area-inset-bottom));animation:sheetUp .3s ease-out}@keyframes sheetUp{0%{transform:translateY(40%);opacity:.6}to{transform:none;opacity:1}}.sheet__handle{width:36px;height:4px;border-radius:2px;background:#1e233833;margin:0 auto}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(24px + env(safe-area-inset-bottom));z-index:60;display:flex;align-items:center;gap:9px;background:#f7f8fd;border-radius:12px;padding:10px 14px;box-shadow:0 4px 14px #1e23382e;font-size:11.5px;font-weight:600;color:var(--ink);animation:fadeUp .3s ease;max-width:90vw}.quote{background:#fff;border-radius:16px;padding:11px 14px;font-size:12.5px;line-height:1.5;color:#1e2338cc;border-left:3px solid var(--violet);box-shadow:0 2px 8px #1e23380d}.dashed{background:#fff;border:1.5px dashed #B9C2E8;border-radius:20px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--ink);font-family:Onest,sans-serif}.bottomnav{flex:none;display:flex;align-items:center;justify-content:space-around;padding:8px 24px calc(10px + env(safe-area-inset-bottom));background:#ffffffd1;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--hairline);margin:8px 0 calc(-24px - env(safe-area-inset-bottom))}.screen:not(.screen--flush)>.bottomnav{margin-left:-20px;margin-right:-20px}img{-webkit-user-drag:none}button{font-family:Onest,sans-serif}a{color:var(--accent)}
