.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;align-items:center;gap:10px;padding:10px var(--pad) calc(10px + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--bg) 62%,transparent)}.tabbar-pill{flex:1;display:flex;align-items:center;justify-content:space-around;height:58px;padding:0 6px;border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--hairline)}.tab{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-pill);color:var(--text-faint);transition:color var(--dur-fast) linear,background var(--dur) var(--ease-out),transform var(--dur) var(--ease-spring)}.tab:active{transform:scale(.9);transition-duration:60ms}.tab.is-active{color:var(--accent);background:var(--accent-ghost)}.tab.is-active>svg{animation:tab-pop var(--dur) var(--ease-spring)}@keyframes tab-pop{0%{transform:scale(.82)}}.fab{display:grid;place-items:center;width:58px;height:58px;border-radius:var(--r-pill);background:var(--accent);box-shadow:0 8px 24px #35e08d47;transition:transform var(--dur) var(--ease-spring),box-shadow var(--dur) var(--ease-out)}.fab:active{transform:scale(.9);box-shadow:0 4px 12px #35e08d33;transition-duration:70ms;transition-timing-function:ease-out}.gesture-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;pointer-events:none;background:#080d0a73;animation:fade var(--dur-fast) linear}.gesture-layer__ink path{fill:none;stroke:var(--accent);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 8px rgba(53,224,141,.55))}.gesture-layer__hint{position:absolute;left:50%;bottom:calc(var(--tabbar-h) + 24px);transform:translate(-50%);padding:9px 18px;border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--hairline);color:var(--text-dim);font-size:13px;font-weight:560;white-space:nowrap}.home-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.home-head__name{font-size:17px;font-weight:660;letter-spacing:-.01em}.avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:var(--r-pill);background:var(--accent)}.icon-btn{position:relative;display:grid;place-items:center;width:42px;height:42px;border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--hairline);color:var(--text)}.icon-btn:disabled{opacity:.35}.icon-btn .dot{position:absolute;top:9px;right:10px;width:8px;height:8px;border-radius:50%;background:var(--accent);border:2px solid var(--surface)}.pill-dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}.balance{padding:18px 18px 6px}.big-money{margin:10px 0 4px;display:flex;align-items:baseline;letter-spacing:-.035em}.big-money__whole{font-size:44px;font-weight:700;line-height:1}.big-money__tail{font-size:22px;font-weight:600;color:var(--text-faint)}.balance__split{display:flex;align-items:stretch;margin-top:14px;border-top:1px solid var(--hairline);padding-top:14px}.balance__divider{width:1px;background:var(--hairline);margin:0 14px}.flow{flex:1;display:flex;align-items:flex-start;gap:10px;padding-bottom:12px}.flow>span:last-child{display:flex;flex-direction:column;gap:3px}.flow__icon{display:grid;place-items:center;width:26px;height:26px;border-radius:9px;flex:none}.flow__icon.is-income{background:var(--accent-ghost);color:var(--accent)}.flow__icon.is-expense{background:var(--danger-ghost);color:var(--danger)}.flow__value{font-size:16px;font-weight:640}.home-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.goal-card{position:relative;display:block;width:100%;text-align:left;overflow:hidden;padding:16px 18px 18px}.goal-card__main{display:block;width:100%;text-align:left;color:inherit;transition:transform var(--dur) var(--ease-spring)}.goal-card__main:active{transform:scale(.985);transition-duration:70ms}.goal-card--empty{display:flex;flex-direction:column;gap:12px}.goal-card__empty-text{position:relative;margin:0;font-size:15px;line-height:1.45;color:var(--text-dim)}.goal-card__ask{position:relative;z-index:1;width:100%;height:auto;min-height:48px;margin-top:14px;padding:10px 16px;font-size:14px;white-space:normal}.goal-advice{position:relative;z-index:1;margin-top:14px;padding:14px 0 0;border-top:1px solid var(--hairline);background:var(--surface);animation:item-in var(--dur) var(--ease-out)}.goal-advice p{margin:0 0 10px;font-size:14px;line-height:1.45}.goal-advice ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.goal-advice li{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;font-size:13px;line-height:1.35}.goal-advice li .faint{display:block;margin-top:2px}.goal-advice__error{position:relative;z-index:1;margin:10px 0 0;font-size:13px;color:var(--danger)}.goal-card__title{margin:10px 0 6px;font-size:26px;font-weight:700;letter-spacing:-.025em}.progress{position:relative;height:6px;margin:12px 0;border-radius:var(--r-pill);background:var(--surface-3);overflow:hidden}.progress__fill{height:100%;border-radius:inherit;background:var(--accent);transition:width var(--dur-slow) var(--ease-out);animation:progress-in var(--dur-slow) var(--ease-out)}@keyframes progress-in{0%{width:0}}.goal-card__hint{position:relative;margin:0;font-size:13px;line-height:1.4;color:var(--text-dim)}.goal-card__hint b{color:var(--accent);font-weight:640}.home-recent-head{margin:22px 0 10px}.link{color:var(--accent);font-size:14px;font-weight:600}.tx-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.tx{display:flex;align-items:center;gap:12px;width:100%;padding:10px 6px;border-radius:var(--r-md);text-align:left;transition:background var(--dur-fast) linear,transform var(--dur) var(--ease-spring)}.tx:not(:disabled):active{transform:scale(.985);transition-duration:60ms}.tx:not(:disabled):active{background:var(--surface)}.tx__icon{display:grid;place-items:center;width:42px;height:42px;flex:none;border-radius:14px;background:var(--surface-2);color:var(--text-dim)}.tx__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.tx__title{font-size:15px;font-weight:620;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx__right{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex:none}.tx__pending{font-size:11px;color:var(--text-faint)}.empty{padding:24px 8px;text-align:center;font-size:14px;line-height:1.5}.stats-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.segmented{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:5px;border-radius:var(--r-pill);background:var(--surface)}.segmented__glider{position:absolute;top:5px;bottom:5px;left:5px;width:calc((100% - 10px - 8px) / 3);border-radius:var(--r-pill);background:var(--surface-3);transition:transform var(--dur) var(--ease-out);pointer-events:none}.segmented__btn{position:relative;z-index:1;height:42px;border-radius:var(--r-pill);font-size:15px;font-weight:600;color:var(--text-dim);transition:color var(--dur-fast) linear}.segmented__btn.is-active{color:var(--text)}.period-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0 4px}.period-nav__label{flex:1;text-align:center;font-size:15px;font-weight:620;text-transform:lowercase}.stats-total{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:18px 0 16px}.stats-total .big-money{margin-bottom:0}.stats-total .pill{flex:none;max-width:42%;text-align:right}.legend{display:flex;gap:12px;font-size:12px;color:var(--text-dim)}.legend__item{display:inline-flex;align-items:center;gap:5px}.legend__item i{width:7px;height:7px;border-radius:50%}.bars{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:8px;align-items:end;height:160px;margin-top:18px}.bars__col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:8px;height:100%;padding:4px 2px;border-radius:var(--r-sm);border:1.5px solid transparent;transition:border-color var(--dur) var(--ease-out),transform var(--dur) var(--ease-spring),background var(--dur-fast) linear}.bars__col:active{transform:scale(.96);transition-duration:60ms}.bars__col.is-active{border-color:var(--surface-3);background:#ffffff08}.bars__stack{width:100%;display:flex;flex-direction:column;justify-content:flex-end;gap:3px;min-height:8px;overflow:hidden}.bars__bar{width:100%;border-radius:5px;transform-origin:bottom;animation:bar-grow var(--dur-slow) var(--ease-out) both;animation-delay:calc(min(var(--i, 0),12)*30ms);transition:height var(--dur-slow) var(--ease-out)}.bars__bar--income{background:var(--accent)}.bars__bar--expense{background:var(--danger)}.bars__label{font-size:11px;color:var(--text-faint);white-space:nowrap}.bars-caption{margin:12px 0 0;font-size:13px;color:var(--text-dim);animation:item-in var(--dur) var(--ease-out)}@keyframes bar-grow{0%{transform:scaleY(0)}}.cat-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.cat-row{display:flex;align-items:center;gap:12px}.cat-row__body{flex:1;min-width:0;display:block}.insight{display:flex;align-items:flex-start;gap:10px;margin:18px 0 0;padding:14px 16px;border-radius:var(--r-md);background:var(--accent-ghost);color:var(--accent);font-size:14px;line-height:1.4;animation:item-in var(--dur) var(--ease-out)}.goal-hero{position:relative;overflow:hidden;min-height:210px;padding:16px 18px 20px}.goal-hero__fern{position:absolute;right:-14px;bottom:-26px;pointer-events:none}.goal-hero__title{position:relative;margin:12px 0 4px;font-size:28px;font-weight:700;letter-spacing:-.03em}.goal-hero__amount{position:relative;display:flex;align-items:baseline;gap:8px;font-size:15px}.goal-hero__amount .tnum{font-size:30px;font-weight:700;color:var(--accent);letter-spacing:-.03em}.goal-hero__badge{position:absolute;right:18px;bottom:20px;padding:5px 13px;border-radius:var(--r-pill);background:var(--accent);color:#05150c;font-size:13px;font-weight:680}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}.stat{display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:var(--r-md);background:var(--surface);border:1.5px solid transparent}.stat.is-accent{border-color:var(--accent-dim)}.stat__value{font-size:16px;font-weight:650;letter-spacing:-.015em}.stat.is-accent .stat__value{color:var(--accent)}.goal-comment{margin:0 0 12px;padding:12px 14px;border-radius:var(--r-md);background:var(--accent-ghost);color:var(--text);font-size:14px;line-height:1.45}.steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.step{display:flex;align-items:center;gap:12px;width:100%;padding:14px;border-radius:var(--r-md);background:var(--surface);border:1.5px solid transparent;text-align:left;transition:border-color var(--dur) var(--ease-out),transform var(--dur) var(--ease-spring)}.step:active{transform:scale(.985);transition-duration:60ms}.step.is-on{border-color:var(--accent-dim)}.step__icon{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:12px;background:var(--surface-2);color:var(--text-dim)}.step__icon.is-on{background:var(--accent-ghost);color:var(--accent)}.step__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.step__gain{flex:none;font-size:15px;font-weight:660;color:var(--accent);text-align:right;max-width:84px}.goal-actions{display:flex;gap:10px;margin-top:22px}.goal-actions .btn.primary{flex:1}.goal-actions__square{width:62px;flex:none}.goals-title{font-size:22px;margin:0 0 14px}.goals-create{display:flex;justify-content:center;margin-bottom:18px}.goals-create__btn{min-width:200px;padding:0 30px}.goals-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.goal-item{display:block;width:100%;text-align:left;transition:transform var(--dur) var(--ease-spring)}.goal-item:active{transform:scale(.985);transition-duration:70ms}.auto-row,.auto-empty{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;text-align:left;border:1.5px solid transparent;transition:border-color var(--dur) var(--ease-out),transform var(--dur) var(--ease-spring)}.auto-row.is-on{border-color:var(--accent-dim)}.auto-empty:active{transform:scale(.985);transition-duration:70ms}.auto-row__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.auto-row__body .tx__title{white-space:normal}.goal-paused{margin:12px 0 0;padding:12px 14px;border-radius:var(--r-md);background:var(--danger-ghost);color:var(--danger);font-size:13px;line-height:1.4}.menu-item{display:flex;align-items:center;gap:12px;width:100%;flex:none;padding:15px 16px;border-radius:var(--r-md);background:var(--surface-2);font-size:15px;font-weight:600;text-align:left;transition:transform var(--dur) var(--ease-spring),background var(--dur-fast) linear}.menu-item:active{transform:scale(.985);transition-duration:60ms}.menu-item:disabled{opacity:.5}.menu-item.is-danger{color:var(--danger);background:var(--danger-ghost)}input[type=date]{color-scheme:dark}input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.7);cursor:pointer}.goal-behind{margin:12px 0 0;padding:12px 14px;border-radius:var(--r-md);background:var(--surface);border:1.5px solid var(--accent-dim);color:var(--text-dim);font-size:13px;line-height:1.45}.paywall{display:flex;flex-direction:column;gap:14px;padding:20px 18px;border-radius:var(--r-lg);background:var(--surface);border:1.5px solid var(--accent-dim)}.paywall.is-compact{padding:16px;gap:12px}.paywall__badge{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;padding:5px 11px;border-radius:var(--r-pill);background:var(--accent-ghost);color:var(--accent);font-size:12px;font-weight:600}.paywall__title{margin:0;font-size:22px;font-weight:700;letter-spacing:-.02em}.paywall__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.paywall__list li{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.4}.paywall__list svg{flex:none;margin-top:1px;color:var(--accent)}.paywall__free{margin:0;line-height:1.45}.paywall__plans{display:flex;flex-direction:column;gap:10px}.paywall__plan{height:auto;min-height:60px;flex-direction:column;gap:2px;padding:12px}.paywall__plan-title{font-size:14px;font-weight:600;opacity:.85}.paywall__plan-price{font-size:19px;font-weight:700}.paywall__check{height:48px;font-size:15px}.paywall__note{margin:0;font-size:14px;color:var(--text-dim)}.access-row{display:flex;align-items:center;gap:12px;padding:14px 16px;margin-top:10px}.assistant.screen{display:flex;flex-direction:column;height:var(--app-height, 100dvh);max-height:var(--app-height, 100dvh);padding-top:12px;padding-bottom:0;overflow:hidden}.assistant-head{display:flex;align-items:center;gap:12px;padding-bottom:14px;flex:none}.assistant-avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:var(--r-pill);background:var(--accent);flex:none}.chat{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding-bottom:12px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.bubble{max-width:86%;padding:14px 16px;border-radius:var(--r-lg);font-size:15px;line-height:1.45;white-space:pre-wrap;animation:bubble-in var(--dur) var(--ease-out)}.bubble--bot{align-self:flex-start;background:var(--surface);border-bottom-left-radius:8px}.bubble--me{align-self:flex-end;background:var(--surface-3);border-bottom-right-radius:8px}.bubble__action{width:100%;height:48px;margin-top:14px}.bubble--typing{display:flex;gap:5px;padding:18px}.bubble--typing span{width:7px;height:7px;border-radius:50%;background:var(--text-faint);animation:pulse 1.2s infinite}.bubble--typing span:nth-child(2){animation-delay:.18s}.bubble--typing span:nth-child(3){animation-delay:.36s}@keyframes pulse{0%,60%,to{opacity:.3}30%{opacity:1}}@keyframes bubble-in{0%{opacity:0;transform:translateY(10px) scale(.98)}}.composer{flex:none;padding:8px 0 var(--composer-pad, calc(var(--tabbar-h) + 8px));background:linear-gradient(to top,var(--bg) 70%,transparent)}.suggestions{display:flex;gap:8px;overflow-x:auto;padding-bottom:10px;scrollbar-width:none}.suggestions::-webkit-scrollbar{display:none}.composer__row{display:flex;align-items:flex-end;gap:8px;min-height:58px;padding:6px 6px 6px 18px;border-radius:28px;background:var(--surface);transition:box-shadow var(--dur) var(--ease-out)}.composer__row:focus-within{box-shadow:0 0 0 1.5px var(--accent-dim)}.composer__row textarea{flex:1;min-width:0;min-height:22px;max-height:132px;padding:12px 0;resize:none;line-height:1.4;overflow-y:auto}.composer__row textarea::placeholder{color:var(--text-faint)}.composer__send{display:grid;place-items:center;width:46px;height:46px;flex:none;border-radius:var(--r-pill);background:var(--accent);transition:opacity .15s ease,transform var(--dur) var(--ease-spring)}.composer__send:active:not(:disabled){transform:scale(.9);transition-duration:60ms}.composer__send:disabled{opacity:.35}.help-list{margin:0;padding:0 0 8px 18px;color:var(--text-dim);font-size:15px;line-height:1.55}.help-list li+li{margin-top:8px}.bubble__result{margin:10px 0 0;font-size:13px;line-height:1.4;color:var(--accent)}.bubble__result.is-error{color:var(--danger)}.manual{padding-bottom:32px}.manual-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.manual-head__title{margin:0;font-size:17px;font-weight:660}.icon-btn.is-ghost{color:var(--text-faint)}.mode{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;border-radius:var(--r-pill);background:var(--surface)}.mode__auto,.mode__manual{display:flex;align-items:center;justify-content:center;gap:7px;height:42px;border-radius:var(--r-pill);font-size:14px;font-weight:600}.mode__auto{color:var(--text-faint)}.mode__manual{background:var(--surface-3);color:var(--text)}.mode__note{margin:8px 0 18px;text-align:center;font-size:12px;color:var(--text-faint)}.switch{display:inline-flex;gap:4px;padding:4px;margin:0 auto;border-radius:var(--r-pill);background:var(--surface)}.manual>.switch{display:flex;width:fit-content}.switch__btn{padding:9px 22px;border-radius:var(--r-pill);font-size:15px;font-weight:620;color:var(--text-dim);transition:background var(--dur) var(--ease-out),color var(--dur-fast) linear}.switch__btn.is-active.is-expense{background:var(--danger-ghost);color:var(--danger)}.switch__btn.is-active.is-income{background:var(--accent-ghost);color:var(--accent)}.amount-field{position:relative;display:block;margin:26px 0 22px;text-align:center}.amount-field__display{font-size:40px;font-weight:700;letter-spacing:-.035em}.amount-field__input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0}.caret{display:inline-block;width:2px;height:34px;margin:0 2px;vertical-align:-6px;background:var(--accent);animation:blink 1.1s steps(2) infinite}.amount-field__currency{margin-left:6px;color:var(--text-faint)}@keyframes blink{50%{opacity:0}}.cat-head{margin-bottom:12px}.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.cat{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;height:78px;padding:0 4px;border-radius:var(--r-md);background:var(--surface);border:1.5px solid transparent;color:var(--text-dim);font-size:12px;font-weight:560;text-align:center;transition:border-color var(--dur) var(--ease-out),color var(--dur-fast) linear,background var(--dur) var(--ease-out),transform var(--dur) var(--ease-spring)}.cat:active{transform:scale(.94);transition-duration:60ms}.cat.is-active{border-color:var(--accent);color:var(--accent);background:var(--accent-ghost)}.cat--more{border:1.5px dashed var(--surface-3);background:transparent;color:var(--text-faint)}.field{display:flex;align-items:center;gap:12px;height:56px;margin-top:10px;padding:0 16px;border-radius:var(--r-md);background:var(--surface);color:var(--text-dim)}.field input{flex:1;color:var(--text)}.field input::placeholder{color:var(--text-faint)}.manual-save{margin-top:22px;width:100%}.error{margin:12px 0 0;color:var(--danger);font-size:13px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.assistant-link{width:100%;padding:14px 16px;transition:transform var(--dur) var(--ease-spring)}.assistant-link:active{transform:scale(.985);transition-duration:60ms}.settings-title{margin:24px 0 10px}.tones{display:flex;flex-direction:column;gap:8px}.tone{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 16px;border-radius:var(--r-md);background:var(--surface);border:1.5px solid transparent;text-align:left;transition:border-color var(--dur) var(--ease-out),background var(--dur) var(--ease-out),transform var(--dur) var(--ease-spring)}.tone:active{transform:scale(.985);transition-duration:60ms}.tone.is-active{border-color:var(--accent);background:var(--accent-ghost)}.tone__label{font-size:15px;font-weight:640}.tone.is-active .tone__label{color:var(--accent)}.toggle-row{display:flex;align-items:center;gap:14px;margin-top:10px;padding:16px}.toggle-row__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.toggle-row__text .tx__title{white-space:normal}.toggle-row.is-disabled{opacity:.55}.switch-ui{position:relative;width:50px;height:30px;flex:none;border-radius:var(--r-pill);background:var(--surface-3);transition:background var(--dur) var(--ease-out)}.switch-ui.is-on{background:var(--accent)}.switch-ui:disabled{opacity:.6}.switch-ui__knob{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;transition:transform var(--dur) var(--ease-spring)}.switch-ui.is-on .switch-ui__knob{transform:translate(20px)}.devices{display:flex;flex-direction:column;gap:8px;margin-top:10px}.device{padding:14px 16px}.pair-actions{display:grid;gap:10px;margin-top:14px}.pairing{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:14px;text-align:center}.pairing__title{font-size:17px;font-weight:650}.pairing__steps{margin:2px 0 6px;padding-left:20px;align-self:stretch;text-align:left;color:var(--text-dim);font-size:14px;line-height:1.5}.pairing__steps li+li{margin-top:8px}.pairing__steps b{color:var(--text);font-weight:620}.pairing__steps code{padding:1px 5px;border-radius:6px;background:var(--surface-2);font-size:13px}.pairing__code{font-size:30px;font-weight:700;letter-spacing:.16em;color:var(--accent)}.pairing__url{align-self:stretch;padding:10px 12px;border-radius:var(--r-sm);background:var(--surface-2);color:var(--text-dim);font-size:13px;line-height:1.4;word-break:break-all}.pairing__copied{font-size:13px;font-weight:600;color:var(--accent)}.pairing__note{margin:0;text-align:left;align-self:stretch;line-height:1.45}.hint-row{padding:14px 16px;margin-top:10px}:root{--bg: #080d0a;--surface: #131a15;--surface-2: #1a221c;--surface-3: #222b24;--hairline: rgba(255, 255, 255, .06);--text: #f1f5f2;--text-dim: #8b968e;--text-faint: #5d6760;--accent: #35e08d;--accent-dim: #1f6b45;--accent-ghost: rgba(53, 224, 141, .12);--danger: #f0715c;--danger-ghost: rgba(240, 113, 92, .14);--r-sm: 12px;--r-md: 18px;--r-lg: 24px;--r-pill: 999px;--pad: 16px;--tabbar-h: 76px;--ease-out: cubic-bezier(.32, .72, 0, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-spring: cubic-bezier(.34, 1.32, .64, 1);--dur-fast: .16s;--dur: .28s;--dur-slow: .42s;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.35;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}button{font:inherit;color:inherit;border:none;background:none;cursor:pointer;padding:0}input,textarea{font:inherit;color:inherit;background:none;border:none;outline:none}.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.screen{min-height:100%;padding:12px var(--pad) calc(var(--tabbar-h) + 24px)}.card{background:var(--surface);border-radius:var(--r-lg);padding:18px}.row{display:flex;align-items:center;gap:12px}.spread{display:flex;align-items:center;justify-content:space-between}.muted{color:var(--text-dim)}.faint{color:var(--text-faint);font-size:13px}.section-title{font-size:17px;font-weight:650;letter-spacing:-.01em}.pill{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:var(--r-pill);font-size:12px;font-weight:600;background:var(--accent-ghost);color:var(--accent)}.pill.danger{background:var(--danger-ghost);color:var(--danger)}.btn{display:flex;align-items:center;justify-content:center;gap:8px;height:54px;border-radius:var(--r-pill);font-size:16px;font-weight:620;background:var(--surface-2);transition:transform var(--dur) var(--ease-spring),opacity var(--dur-fast) linear,background var(--dur-fast) linear}.btn:active{transform:scale(.96);transition-duration:60ms;transition-timing-function:ease-out}.btn.primary{background:var(--accent);color:#05150c}.btn:disabled{opacity:.45}.btn.outline{background:var(--surface);border:1.5px solid var(--accent);color:var(--accent)}.icon-btn{transition:transform var(--dur) var(--ease-spring),background var(--dur-fast) linear,border-color var(--dur) var(--ease-out),color var(--dur-fast) linear}.icon-btn:active{transform:scale(.9);transition-duration:60ms}.icon-btn.is-on{border-color:var(--accent);color:var(--accent);background:var(--accent-ghost)}.icon-btn.is-spacer{visibility:hidden;pointer-events:none}.chip{flex:none;padding:9px 15px;border-radius:var(--r-pill);background:var(--surface);color:var(--text-dim);font-size:13px;font-weight:560;white-space:nowrap;border:1.5px solid transparent;transition:transform var(--dur) var(--ease-spring),background var(--dur-fast) linear,color var(--dur-fast) linear,border-color var(--dur) var(--ease-out)}.chip:active{transform:scale(.96);transition-duration:60ms}.chip.is-active{background:var(--accent-ghost);color:var(--accent);border-color:var(--accent-dim)}.chip:disabled{opacity:.5}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:flex-end;background:#0009;animation:fade var(--dur-fast) linear;overscroll-behavior:contain}.sheet{width:100%;max-height:86dvh;padding:22px var(--pad) calc(26px + env(safe-area-inset-bottom));border-radius:26px 26px 0 0;background:var(--surface);display:flex;flex-direction:column;gap:14px;animation:rise var(--dur) var(--ease-out);overflow:hidden}.sheet__head{flex:none}.sheet__body{flex:1;min-height:0;display:flex;flex-direction:column;gap:14px;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.sheet__input{font-size:36px;font-weight:700;text-align:center;letter-spacing:-.03em;padding:8px 0}.sheet__input::placeholder{color:var(--text-faint)}.sheet__text{height:52px;flex:none;padding:0 16px;border-radius:var(--r-md);background:var(--surface-2)}.sheet-label{margin:4px 0 0;font-size:13px;font-weight:600;color:var(--text-faint)}.choice-row{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}.choice-row::-webkit-scrollbar{display:none}.choice-row.wrap{flex-wrap:wrap;overflow:visible}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(28px)}}.skeleton{background:linear-gradient(90deg,var(--surface) 25%,var(--surface-2) 50%,var(--surface) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--r-md)}.tab-view{min-height:100%;animation:view-in var(--dur) var(--ease-out) both}@keyframes view-in{0%{opacity:0;transform:translateY(12px) scale(.985)}}.is-refreshing{opacity:.55;transition:opacity var(--dur) var(--ease-out)}.modal-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;overflow-y:auto;background:var(--bg);animation:modal-in var(--dur) var(--ease-out) both}.modal-layer.is-closing{animation:modal-out .24s var(--ease-in-out) both}@keyframes modal-in{0%{transform:translateY(100%)}}@keyframes modal-out{to{transform:translateY(100%)}}.stagger{animation:item-in var(--dur) var(--ease-out) both;animation-delay:calc(min(var(--i, 0),12)*26ms)}@keyframes item-in{0%{opacity:0;transform:translateY(10px)}}@keyframes shimmer{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}}.gate{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:100dvh;padding:32px 28px;text-align:center}.gate__icon{display:grid;place-items:center;width:62px;height:62px;border-radius:var(--r-pill);background:var(--accent);color:#05150c;font-size:28px}.gate__title{margin:6px 0 0;font-size:22px;font-weight:680;letter-spacing:-.02em}.gate__text{margin:0;max-width:320px;color:var(--text-dim);font-size:15px;line-height:1.5}.gate__text b{color:var(--text)}
