@import "https://fonts.googleapis.com/css2?family=Noto+Serif+Arabic:wght@500;600;700&family=Cairo:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&family=Inter:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@600;700&display=swap";
html[lang=en]{--font-display:"Georgia", "Times New Roman", serif;--font-body:"Inter", system-ui, sans-serif}html[lang=zh]{--font-display:"Noto Serif SC", "Songti SC", serif;--font-body:"Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif}
:root{--bg:#ede7d9;--surface:#f5f0e4;--surface-2:#e6dfcd;--ink:#1c2b22;--ink-soft:#4a5a4f;--accent:#a6772c;--accent-strong:#7d5716;--accent-tint:#a6772c1f;--income:#3f6b4a;--income-tint:#3f6b4a1f;--expense:#a23e3e;--expense-tint:#a23e3e1a;--warn:#b5701b;--line:#1c2b2229;--line-strong:#1c2b2252;--on-fill:#fff}:root[data-theme=dark]{--bg:#14201a;--surface:#1a2921;--surface-2:#223429;--ink:#ede7d9;--ink-soft:#b9c2b5;--accent:#c99a44;--accent-strong:#d9b061;--accent-tint:#c99a4429;--income:#6fae7f;--income-tint:#6fae7f29;--expense:#d17272;--expense-tint:#d1727229;--warn:#e0a24a;--line:#ede7d924;--line-strong:#ede7d947;--on-fill:#14201a}@media (prefers-color-scheme:dark){:root{--bg:#14201a;--surface:#1a2921;--surface-2:#223429;--ink:#ede7d9;--ink-soft:#b9c2b5;--accent:#c99a44;--accent-strong:#d9b061;--accent-tint:#c99a4429;--income:#6fae7f;--income-tint:#6fae7f29;--expense:#d17272;--expense-tint:#d1727229;--warn:#e0a24a;--line:#ede7d924;--line-strong:#ede7d947;--on-fill:#14201a}}:root[data-theme=light]{--bg:#ede7d9;--surface:#f5f0e4;--surface-2:#e6dfcd;--ink:#1c2b22;--ink-soft:#4a5a4f;--accent:#a6772c;--accent-strong:#7d5716;--accent-tint:#a6772c1f;--income:#3f6b4a;--income-tint:#3f6b4a1f;--expense:#a23e3e;--expense-tint:#a23e3e1a;--warn:#b5701b;--line:#1c2b2229;--line-strong:#1c2b2252;--on-fill:#fff}
:root{--font-display:"Noto Serif Arabic", "Times New Roman", serif;--font-body:"Cairo", Tahoma, sans-serif;--font-num:"IBM Plex Mono", Consolas, monospace;--fs-hero:44px;--fs-hero-sm:32px;--fs-title:28px;--fs-title-sm:22px;--fs-lg:18px;--fs-body:16px;--fs-sm:14.5px;--fs-xs:13px;--fw-reg:400;--fw-med:500;--fw-semi:600;--fw-bold:700;--lh-tight:1.35;--lh-body:1.65}
:root{--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--r-sm:8px;--r-md:12px;--r-lg:20px;--r-pill:999px;--tap:48px;--gutter:16px;--page-max:980px}
:root{--ease:cubic-bezier(.2,.8,.2,1);--t-fast:.12s;--t-base:.22s;--press-scale:.97;--shadow-fab:0 6px 16px #00000040}
*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);margin:0}body{font-family:var(--font-body);font-size:16px;line-height:var(--lh-body);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:var(--fw-semi);line-height:var(--lh-tight);color:var(--ink);margin:0}p{margin:0}a{color:var(--accent-strong);text-decoration:none}a:hover{color:var(--accent);text-decoration:underline}ul{margin:0;padding:0;list-style:none}button{font-family:inherit}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:isolate}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.container{max-width:var(--page-max);padding:0 var(--gutter);margin:0 auto}.btn{min-height:var(--tap);padding:0 var(--s5);border-radius:var(--r-md);font-size:var(--fs-body);font-weight:var(--fw-semi);cursor:pointer;justify-content:center;align-items:center;gap:var(--s2);transition:transform var(--t-fast) var(--ease), background var(--t-base);-webkit-tap-highlight-color:transparent;border:1px solid #0000;display:inline-flex}.btn:active{transform:scale(var(--press-scale))}.btn-primary{background:var(--ink);color:var(--bg)}.btn-accent{background:var(--accent);color:var(--on-fill)}.btn-ghost{color:var(--ink);border-color:var(--line-strong);background:0 0}.btn-google{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}.btn-block{width:100%}.btn[disabled]{opacity:.45;cursor:not-allowed}.gicon{flex-shrink:0;width:20px;height:20px}.btn-pulse{animation:1.8s ease-out infinite btn-pulse}.btn-pulse:hover,.btn-pulse:focus-visible{animation-play-state:paused}@keyframes btn-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 45%, transparent)}70%{box-shadow:0 0 0 10px color-mix(in srgb, var(--accent) 0%, transparent)}to{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 0%, transparent)}}.topbar{z-index:30;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--line);background:#ede7d9eb;position:sticky;top:0}:root[data-theme=dark] .topbar{background:#14201ae0}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .topbar{background:#14201ae0}}.topbar-inner{max-width:var(--page-max);padding:var(--s3) var(--gutter);justify-content:space-between;align-items:center;gap:var(--s3);margin:0 auto;display:flex}.brand{align-items:center;gap:var(--s2);flex-shrink:0;display:flex}.wordmark{font-family:var(--font-display);font-weight:var(--fw-bold);color:var(--ink);font-size:22px}.theme-btn,.lang-btn{border:1px solid var(--line-strong);background:var(--surface);height:40px;color:var(--ink-soft);border-radius:var(--r-pill);cursor:pointer;transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);flex-shrink:0;justify-content:center;align-items:center;gap:6px;display:inline-flex}.theme-btn{width:40px;padding:0}.theme-btn:hover,.lang-btn:hover{background:var(--accent-tint);color:var(--accent-strong);border-color:var(--accent)}.theme-btn:focus-visible,.lang-btn:focus-within{outline:2px solid var(--accent);outline-offset:2px}.theme-btn svg,.lang-btn svg{flex-shrink:0;width:18px;height:18px}.theme-btn .i-sun,:root[data-theme=dark] .theme-btn .i-moon{display:none}:root[data-theme=dark] .theme-btn .i-sun{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme]) .theme-btn .i-moon{display:none}:root:not([data-theme]) .theme-btn .i-sun{display:block}}.topbar-actions{align-items:center;gap:var(--s3);display:flex}.topbar .btn{min-height:40px;padding:0 var(--s4);font-size:var(--fs-sm)}@media (max-width:560px){.topbar-actions{gap:var(--s2)}.topbar .btn{padding:0 var(--s3)}.topbar-actions .lang-cur{display:none}}@media (max-width:480px){.land-topbar .lang-caret{display:none}.land-topbar .lang-btn{width:40px;padding:0}.land-topbar .btn{white-space:nowrap}.land-topbar .btn-accent,.land-topbar .btn-ghost{padding:0 var(--s3)}.land-topbar .topbar-actions{gap:var(--s2)}}.hero-sec{padding:clamp(32px,6vw,64px) 0 clamp(40px,7vw,72px)}.hero-grid{gap:var(--s6);grid-template-columns:1.1fr .9fr;align-items:center;display:grid}@media (max-width:860px){.hero-grid{grid-template-columns:minmax(0,1fr)}}.eyebrow{align-items:center;gap:var(--s2);font-size:var(--fs-xs);font-weight:var(--fw-bold);letter-spacing:1.5px;color:var(--accent-strong);border:1px solid var(--accent);border-radius:var(--r-pill);padding:4px 14px;display:inline-flex}.hero-title{margin-top:var(--s4);max-width:560px;font-size:clamp(30px,5.4vw,50px)}.hero-desc{margin-top:var(--s3);color:var(--ink-soft);font-size:var(--fs-lg);max-width:480px;line-height:1.7}.hero-cta{margin-top:var(--s5);align-items:center;gap:var(--s4);flex-wrap:wrap;display:flex}.hero-note{color:var(--ink-soft);font-size:var(--fs-xs)}.phone{border:8px solid var(--ink);background:var(--bg);border-radius:32px;flex-direction:column;width:100%;max-width:320px;height:560px;margin:0 auto;display:flex;position:relative;overflow:hidden;box-shadow:0 24px 48px #14201a38}.phone .top{padding:var(--s3) var(--s4);justify-content:space-between;align-items:center;display:flex}.phone .body{padding:0 var(--s4);gap:var(--s3);flex:1;align-content:start;display:grid;overflow:hidden}.hero-card{padding:var(--s4);border-radius:var(--r-lg);background:var(--ink);color:var(--bg)}.hero-card .lbl{font-size:var(--fs-xs);opacity:.75}.hero-card .big{font-family:var(--font-num);font-size:30px;font-weight:var(--fw-med);direction:ltr}.mini-stats{gap:var(--s2);grid-template-columns:1fr 1fr;display:grid}.mini-stat{padding:var(--s3);border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line)}.mini-stat .lbl{color:var(--ink-soft);font-size:12px}.mini-stat .v{font-size:var(--fs-lg);font-weight:var(--fw-semi)}.mini-stat.inc .v{color:var(--income)}.mini-stat.exp .v{color:var(--expense)}.mini-tx{align-items:center;gap:var(--s3);padding:var(--s2) 0;border-bottom:1px solid var(--line);display:flex}.mini-tx:last-child{border-bottom:0}.mini-tx .ic{background:var(--accent-tint);border-radius:50%;flex-shrink:0;place-items:center;width:34px;height:34px;font-size:15px;display:grid}.mini-tx .nm{font-size:13.5px;font-weight:var(--fw-semi)}.mini-tx .sub{color:var(--ink-soft);font-size:11.5px}.mini-tx .amt{font-size:13.5px;font-weight:var(--fw-semi);margin-inline-start:auto}.mini-tx .amt.inc{color:var(--income)}.mini-tx .amt.exp{color:var(--expense)}.phone-fab{border:3px solid var(--bg);background:var(--accent);width:48px;height:48px;color:var(--on-fill);box-shadow:var(--shadow-fab);border-radius:50%;place-items:center;font-size:22px;line-height:1;display:grid;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.sec{padding:clamp(40px,6vw,72px) 0}.sec-alt{background:var(--surface)}.sec-head{gap:var(--s2);margin-bottom:var(--s5);max-width:640px;display:grid}.sec-head.center{text-align:center;margin-inline:auto}.kicker{font-size:var(--fs-xs);font-weight:var(--fw-bold);letter-spacing:2px;color:var(--accent-strong);text-transform:uppercase}.sec-title{font-size:clamp(24px,4vw,34px)}.sec-desc{color:var(--ink-soft);font-size:var(--fs-body)}.grid{gap:var(--s4);display:grid}.g3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.g2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.g4{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s5)}.card-alt{background:var(--bg)}.step-card{gap:var(--s2);display:grid}.step-card .n{font-family:var(--font-num);font-weight:var(--fw-bold);color:var(--accent-strong);font-size:22px}.why-card{gap:var(--s2);display:grid}.why-ic{font-size:30px;line-height:1}.card h3{font-size:var(--fs-lg)}.card p{color:var(--ink-soft);font-size:var(--fs-sm);line-height:1.7}.install-line{justify-content:center;align-items:center;gap:var(--s4);margin-top:var(--s6);padding-top:var(--s6);border-top:1px solid var(--line);text-align:center;flex-wrap:wrap;display:flex}.install-line span{color:var(--ink-soft);font-size:var(--fs-sm);max-width:420px}.plans{gap:var(--s5);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:stretch;display:grid}.plan{border:1px solid var(--line-strong);border-radius:var(--r-lg);padding:var(--s5);background:var(--surface);gap:var(--s3);flex-direction:column;display:flex;position:relative}.plan.pop{border:2px solid var(--accent)}.plan .badge{top:-13px;background:var(--accent);color:var(--on-fill);font-size:12.5px;font-weight:var(--fw-bold);border-radius:var(--r-pill);padding:2px 12px;position:absolute;inset-inline-start:var(--s5)}.plan .price{font-family:var(--font-display);font-size:34px;font-weight:var(--fw-bold)}.plan .price small{font-family:var(--font-body);font-size:var(--fs-sm);font-weight:var(--fw-reg);color:var(--ink-soft)}.plan .price-approx{font-size:var(--fs-sm);color:var(--ink-soft);direction:ltr;margin-top:2px}.plan ul{gap:var(--s2);font-size:var(--fs-sm);display:grid}.plan li{gap:var(--s2);display:flex}.plan li:before{content:"✓";color:var(--income);font-weight:var(--fw-bold)}.plan li.no{color:var(--ink-soft)}.plan li.no:before{content:"—";color:var(--ink-soft)}.trial-banner{align-items:center;gap:var(--s3);text-align:center;margin-bottom:var(--s5);padding:var(--s3) var(--s4);border:1px dashed var(--accent);border-radius:var(--r-md);color:var(--ink-soft);font-size:var(--fs-sm);flex-wrap:wrap;justify-content:center;display:flex}.price-per-day{text-align:center;color:var(--ink-soft);font-size:var(--fs-xs);margin-top:var(--s4)}.faq{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;padding:var(--s4) 0;font-weight:var(--fw-semi);font-size:var(--fs-body);justify-content:space-between;align-items:center;gap:var(--s3);list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"";width:9px;height:9px;margin-inline:var(--s2);border-right:2px solid var(--accent-strong);border-bottom:2px solid var(--accent-strong);transition:transform var(--t-base) var(--ease), border-color var(--t-fast) var(--ease);flex-shrink:0;transform:translateY(-2px)rotate(45deg)}.faq summary:hover:after{border-color:var(--accent)}.faq[open] summary:after{transform:translateY(2px)rotate(-135deg)}.faq p{padding:0 0 var(--s4);color:var(--ink-soft);font-size:var(--fs-sm);max-width:640px;line-height:1.7}.site-footer{padding:var(--s6) 0 calc(var(--s6) + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);margin-top:var(--s6)}.footer-grid{justify-content:space-between;align-items:center;gap:var(--s4);flex-wrap:wrap;display:flex}.footer-links{gap:var(--s5);flex-wrap:wrap;display:flex}.footer-links a{color:var(--ink-soft);font-size:var(--fs-sm)}.footer-note{color:var(--ink-soft);font-size:var(--fs-xs)}.sticky-cta{inset-inline:0;z-index:40;padding:var(--s3) var(--gutter) calc(var(--s3) + env(safe-area-inset-bottom,0px));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-top:1px solid var(--line);background:#ede7d9f2;display:none;position:fixed;bottom:0}:root[data-theme=dark] .sticky-cta{background:#14201aeb}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .sticky-cta{background:#14201aeb}}@media (max-width:720px){.sticky-cta.on{display:block}}.auth-wrap{min-height:100dvh;padding:var(--s6) var(--gutter);flex-direction:column;justify-content:center;align-items:center;display:flex}.auth-card{gap:var(--s5);width:100%;max-width:400px;display:grid}.auth-head{text-align:center;gap:var(--s2);display:grid}.auth-head .wordmark{font-size:36px}.auth-head p{color:var(--ink-soft);font-size:var(--fs-sm)}.auth-form{gap:var(--s4);display:grid}.turnstile-widget{justify-content:center;min-height:65px;display:flex}.field{gap:var(--s2);display:grid}.field label{font-size:var(--fs-sm);font-weight:var(--fw-semi);color:var(--ink-soft)}.field .row-between{justify-content:space-between;align-items:baseline;display:flex}.field .row-between a{font-size:var(--fs-xs);font-weight:var(--fw-semi)}.input-wrap{align-items:center;display:flex;position:relative}.field input{width:100%;height:var(--tap);border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface);padding:0 var(--s3);font-size:var(--fs-body);font-family:var(--font-body);color:var(--ink);outline:none}.field input:focus{border-color:var(--accent)}.field input.num-input{font-family:var(--font-num);text-align:end;direction:ltr}.input-wrap input{padding-inline-start:44px}.field .toggle-pass{inset-inline-start:4px;width:36px;height:36px;color:var(--ink-soft);cursor:pointer;border-radius:var(--r-sm);background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.field .toggle-pass:hover{color:var(--ink)}.field .toggle-pass svg{width:20px;height:20px}.field .hint{color:var(--ink-soft);font-size:12.5px}.field .hint.err{color:var(--expense)}.check-row{align-items:center;gap:var(--s2);font-size:var(--fs-sm);color:var(--ink-soft);display:flex}.check-row input{width:18px;height:18px;accent-color:var(--accent)}.divider{align-items:center;gap:var(--s3);color:var(--ink-soft);display:flex}.divider span:not(.line){font-size:var(--fs-xs)}.divider .line{background:var(--line);flex:1;height:1px}.auth-switch{text-align:center;font-size:var(--fs-sm);color:var(--ink-soft)}.auth-legal{text-align:center;color:var(--ink-soft);font-size:12.5px;line-height:1.6}.auth-back{align-items:center;gap:var(--s2);color:var(--ink-soft);font-size:var(--fs-sm);font-weight:var(--fw-semi);display:inline-flex}.auth-back:hover{color:var(--ink)}.status-icon{border-radius:var(--r-pill);background:var(--income-tint);width:64px;height:64px;color:var(--income);place-items:center;margin:0 auto;font-size:30px;display:grid}.strength{gap:4px;display:flex}.strength i{background:var(--line);border-radius:2px;flex:1;height:4px}.strength.weak i:first-child{background:var(--expense)}.strength.mid i:first-child,.strength.mid i:nth-child(2){background:var(--warn)}.strength.strong i{background:var(--income)}[data-view].hidden{display:none}.lang-dd{flex-shrink:0;position:relative}.lang-btn{padding:0 var(--s3);font:inherit;font-size:var(--fs-xs);font-weight:var(--fw-semi)}.lang-btn.open{background:var(--accent-tint);color:var(--accent-strong);border-color:var(--accent)}.lang-btn .lang-caret{width:14px;height:14px;transition:transform var(--t-fast) var(--ease)}.lang-btn.open .lang-caret{transform:rotate(180deg)}.lang-menu{z-index:100;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-md);min-width:168px;animation:lang-pop var(--t-fast) var(--ease);gap:2px;margin:0;padding:6px;list-style:none;display:grid;position:fixed;box-shadow:0 12px 32px #14201a2e,0 2px 6px #14201a14}@keyframes lang-pop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.lang-opt{justify-content:space-between;align-items:center;gap:var(--s3);width:100%;min-height:40px;padding:0 var(--s3);border-radius:calc(var(--r-md) - 4px);color:var(--ink);font:inherit;font-size:var(--fs-sm);text-align:start;cursor:pointer;background:0 0;border:0;display:flex}.lang-opt:hover,.lang-opt:focus-visible{background:var(--surface-2);outline:none}.lang-opt[aria-selected=true]{background:var(--accent-tint);color:var(--accent-strong);font-weight:var(--fw-semi)}.lang-opt svg{flex-shrink:0;width:16px;height:16px}@media (max-width:420px){.lang-btn .lang-cur{display:none}.lang-btn{padding:0 var(--s3)}}.legal{max-width:760px;padding:var(--s5) var(--gutter) var(--s8,64px);gap:var(--s4);margin:0 auto;display:grid}.legal h1{font-size:clamp(26px,5vw,36px)}.legal h2{font-size:var(--fs-lg);margin-bottom:var(--s2)}.legal h2 .num{color:var(--accent-strong)}.legal p{color:var(--ink-soft);line-height:1.85}.legal section{gap:var(--s2);padding-top:var(--s3);border-top:1px solid var(--line);display:grid}.legal .legal-meta{font-size:var(--fs-xs)}.legal .legal-intro{color:var(--ink);font-size:var(--fs-body)}.legal-contact{margin-top:var(--s4);justify-self:start}.auth-error{background:color-mix(in srgb, var(--expense) 12%, transparent);border:1px solid var(--expense);color:var(--expense);border-radius:var(--r-md);padding:var(--s3);font-size:var(--fs-sm);text-align:center}.steps{margin:0 auto var(--s4);gap:var(--s2);flex-wrap:wrap;justify-content:center;align-items:center;max-width:460px;padding:0;list-style:none;display:flex}.steps li{color:var(--ink-soft);font-size:var(--fs-xs);font-weight:var(--fw-semi);align-items:center;gap:6px;display:flex}.steps li+li:before{content:"";background:var(--line-strong);width:18px;height:1px;margin-inline-end:2px}.steps-n{background:var(--line);border-radius:50%;flex-shrink:0;place-items:center;width:22px;height:22px;font-size:12px;display:grid}.steps li.on{color:var(--accent-strong)}.steps li.on .steps-n{background:var(--accent);color:var(--on-fill)}.steps li.done .steps-n{background:var(--income);color:var(--on-fill)}.otp-boxes{gap:var(--s2);cursor:text;direction:ltr;justify-content:center;display:flex;position:relative}.otp-cell{aspect-ratio:3/4;max-width:56px;font-family:var(--font-num);font-size:26px;font-weight:var(--fw-bold);color:var(--ink);border:2px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);flex:1;justify-content:center;align-items:center;transition:border-color .15s,box-shadow .15s,background .15s;display:flex}.otp-cell.filled{border-color:var(--accent)}.otp-cell.active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint);background:var(--bg)}.otp-cell{overflow:hidden}.otp-digit{animation:.18s cubic-bezier(.34,1.4,.64,1) otp-pop;display:inline-block}@keyframes otp-pop{0%{opacity:0;transform:translateY(90%)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.otp-digit{animation:none}}.otp-boxes.is-disabled{opacity:.6;pointer-events:none}.otp-hidden-input{opacity:0;color:#0000;caret-color:#0000;text-align:center;cursor:text;background:0 0;border:0;width:100%;height:100%;font-size:16px;position:absolute;inset:0}.otp-hidden-input:focus{outline:none}.otp-how{color:var(--ink-soft);font-size:var(--fs-sm);gap:6px;margin:0;padding-inline-start:var(--s5);display:grid}.otp-how li::marker{color:var(--accent-strong);font-weight:var(--fw-bold)}.otp-hint{text-align:center;color:var(--ink-soft);font-size:var(--fs-xs);margin:0;line-height:1.6}.auth-note{padding:var(--s3);border-radius:var(--r-md);background:var(--accent-tint);border:1px solid var(--accent);font-size:var(--fs-sm);text-align:center;margin:0;line-height:1.6}.google-hero{gap:var(--s2);padding:var(--s4) var(--s3) var(--s3);border:2px solid var(--accent);border-radius:var(--r-lg);background:var(--accent-tint);display:grid;position:relative}.google-hero .btn-google{min-height:52px;font-size:var(--fs-body);font-weight:var(--fw-bold)}.google-badge{top:-12px;border-radius:var(--r-pill);background:var(--accent);color:var(--on-fill);font-size:var(--fs-xs);font-weight:var(--fw-bold);padding:2px 12px;position:absolute;inset-inline-start:var(--s4)}
.app-body{padding-bottom:96px}.app-header{z-index:20;background:var(--bg);border-bottom:1px solid var(--line);padding:var(--s3) 0;position:sticky;top:0}.app-header-inner{max-width:560px;padding:0 var(--gutter);justify-content:space-between;align-items:center;gap:var(--s3);margin:0 auto;display:flex}.app-title{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:20px}.plan-switch{background:var(--surface-2);border-radius:var(--r-pill);gap:4px;padding:4px;display:flex}.plan-switch button{min-height:32px;padding:0 var(--s3);border-radius:var(--r-pill);cursor:pointer;color:var(--ink-soft);font-family:var(--font-body);font-size:var(--fs-xs);font-weight:var(--fw-semi);background:0 0;border:0;flex:1}.plan-switch button.on{background:var(--surface);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}.plan-lock{opacity:.7;font-size:.8em}.avatar-btn{border-radius:var(--r-pill);background:var(--accent-tint);cursor:pointer;border:0;flex-shrink:0;place-items:center;width:36px;height:36px;font-size:17px;display:grid}.app-main{max-width:560px;padding:var(--s5) var(--gutter);gap:var(--s5);align-content:start;margin:0 auto;display:grid}.screen-title{font-size:var(--fs-title)}.app-aside,.desktop-only,.app-sidebar{display:none}@media (min-width:900px){.mobile-only{display:none!important}.desktop-only{display:block}.app-body{padding-bottom:0}.app-sidebar{gap:var(--s5);inset-inline-start:0;width:240px;padding:var(--s5) var(--s4);border-inline-end:1px solid var(--line);background:var(--surface);z-index:20;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;overflow-y:auto}.sidebar-brand{justify-content:space-between;align-items:center;display:flex}.sidebar-nav{gap:4px;display:grid}.sidebar-nav a{align-items:center;gap:var(--s3);text-align:start;width:100%;padding:0 var(--s3);border-radius:var(--r-md);height:46px;color:var(--ink-soft);font-family:var(--font-body);font-size:var(--fs-body);font-weight:var(--fw-med);cursor:pointer;background:0 0;border:0;text-decoration:none;display:flex}.sidebar-nav a span:first-child{font-size:18px}.sidebar-nav a.on{background:var(--accent-tint);color:var(--accent-strong);font-weight:var(--fw-bold)}.sidebar-account{align-items:center;gap:var(--s3);color:var(--ink);padding:var(--s2);border-radius:var(--r-md);margin-top:auto;text-decoration:none;display:flex}.sidebar-account:hover{background:var(--surface-2)}.sidebar-account .nm{font-size:var(--fs-sm);font-weight:var(--fw-semi)}.app-main{max-width:720px;padding:var(--s6);gap:var(--s5);margin-inline-start:240px}.app-main.with-aside{max-width:none;margin-inline-end:320px}.app-main.wide{max-width:none;padding:var(--s6) var(--s7);margin-inline-end:0}.app-aside{inset-inline-end:0;width:320px;padding:var(--s6) var(--s5);border-inline-start:1px solid var(--line);background:var(--surface);z-index:20;display:block;position:fixed;top:0;bottom:0;overflow-y:auto}.signout-btn{max-width:320px;margin-inline:auto}.reports-grid{grid-template-columns:1fr 1fr;align-items:start}.account-grid{grid-template-columns:1.3fr 1fr;align-items:start}.subscribe-grid{grid-template-columns:1fr 1fr;align-items:start;max-width:960px}.overlay{align-items:center}.sheet{border-radius:var(--r-lg);opacity:0;max-width:420px;transition:opacity var(--t-base) var(--ease);padding-bottom:var(--s5);transform:none;box-shadow:0 20px 48px #14201a40}.overlay.on .sheet{opacity:1}}.bottom-nav{inset-inline:0;z-index:30;border-top:1px solid var(--line-strong);background:var(--surface);max-width:560px;padding-bottom:env(safe-area-inset-bottom,0px);grid-template-columns:repeat(4,1fr);margin:0 auto;display:grid;position:fixed;bottom:0}.bottom-nav a{min-height:60px;color:var(--ink-soft);font-family:var(--font-body);cursor:pointer;background:0 0;border:0;place-items:center;gap:2px;font-size:12px;text-decoration:none;display:grid}.bottom-nav a span{font-size:21px}.bottom-nav a.on{color:var(--accent-strong);font-weight:var(--fw-bold)}.fab{z-index:31;border:4px solid var(--bg);background:var(--accent);width:60px;height:60px;color:var(--on-fill);cursor:pointer;box-shadow:var(--shadow-fab);border-radius:50%;place-items:center;font-size:30px;line-height:1;display:grid;position:fixed;bottom:78px;left:50%;transform:translate(-50%)}.balance-card{padding:var(--s5);border-radius:var(--r-lg);background:var(--ink);color:var(--bg)}.balance-card .lbl{font-size:var(--fs-sm);opacity:.75}.balance-card .big{font-family:var(--font-num);font-size:var(--fs-hero);font-weight:var(--fw-med);direction:ltr;margin-top:2px}.balance-card .trend{gap:var(--s2);margin-top:var(--s3);border-radius:var(--r-pill);font-size:var(--fs-sm);background:#ffffff1f;align-items:center;padding:4px 12px;display:inline-flex}.stat-grid{gap:var(--s3);grid-template-columns:1fr 1fr;display:grid}.stat-box{padding:var(--s4);border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line)}.stat-box .lbl{font-size:var(--fs-xs);color:var(--ink-soft)}.stat-box .v{font-size:var(--fs-title-sm);font-weight:var(--fw-semi);font-family:var(--font-num);direction:ltr;margin-top:2px}.stat-box.inc .v{color:var(--income)}.stat-box.exp .v{color:var(--expense)}.insight{gap:var(--s3);padding:var(--s4);border-radius:var(--r-md);background:var(--accent-tint);border:1px solid var(--accent);display:flex}.insight .i{font-size:var(--fs-title-sm);flex-shrink:0}.insight p{color:var(--ink);font-size:var(--fs-sm);line-height:1.7}.section-head{margin-bottom:var(--s2);justify-content:space-between;align-items:baseline;display:flex}.section-head h2{font-size:var(--fs-title-sm)}.section-head a{font-size:var(--fs-sm);font-weight:var(--fw-semi)}.tx-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:0;overflow:hidden}.tx-row{gap:var(--s3);padding:var(--s3) var(--s4);grid-template-columns:44px 1fr auto;align-items:center;min-height:64px;display:grid}.tx-row .ic{background:var(--accent-tint);border-radius:50%;flex-shrink:0;place-items:center;width:44px;height:44px;font-size:20px;display:grid}.tx-row .nm{font-weight:var(--fw-semi);font-size:var(--fs-body);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.tx-row .sub{font-size:var(--fs-xs);color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.tx-row .amt{font-weight:var(--fw-semi);font-family:var(--font-num);font-variant-numeric:tabular-nums;direction:ltr}.tx-row .amt.inc{color:var(--income)}.tx-row .amt.exp{color:var(--expense)}.tx-row-mid{min-width:0;display:block}.tx-row-end{align-items:center;gap:var(--s3);display:flex}.edit-hint{color:var(--ink-soft);opacity:.4;transition:opacity var(--t-fast) var(--ease);display:inline-flex}.edit-hint svg{width:16px;height:16px}.tx-row-btn:hover .edit-hint,.tx-row-btn:focus-visible .edit-hint{opacity:.95;color:var(--accent-strong)}.tx-row-wrap{border-bottom:1px solid var(--line);align-items:stretch;display:flex}.tx-list .tx-row-wrap:last-child{border-bottom:0}.tx-row-btn{min-width:0;font:inherit;color:inherit;cursor:pointer;text-align:start;direction:inherit;background:0 0;border:0;flex:1;margin:0;padding:0;display:block}.tx-row-btn .tx-row{transition:background var(--t-fast) var(--ease)}.tx-row-btn:hover .tx-row,.tx-row-btn:focus-visible .tx-row{background:var(--surface-2)}.tx-row-btn:focus-visible{outline:none}.tx-row-dup{border:0;border-inline-start:1px solid var(--line);width:48px;color:var(--ink-soft);cursor:pointer;transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);background:0 0;flex-shrink:0;place-items:center;display:grid}.tx-row-dup svg{width:18px;height:18px}.tx-row-dup:hover,.tx-row-dup:focus-visible{color:var(--accent-strong);background:var(--surface-2);outline:none}.period-range{gap:var(--s3);margin-top:var(--s3);flex-wrap:wrap;display:flex}.period-range .field{flex:1;min-width:150px}.period-range input[type=date]{width:100%;height:var(--tap);border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface);padding:0 var(--s3);font:inherit;color:var(--ink)}.reports-grid,.account-grid{gap:var(--s5);display:grid}.toast-wrap{inset-inline:0;z-index:60;padding:0 var(--gutter);pointer-events:none;justify-content:center;display:flex;position:fixed;bottom:90px}.toast{pointer-events:auto;justify-content:space-between;align-items:center;gap:var(--s4);background:var(--ink);color:var(--bg);padding:var(--s3) var(--s4);border-radius:var(--r-md);width:100%;max-width:420px;font-size:var(--fs-sm);display:flex;box-shadow:0 12px 32px #00000040}.toast button{background:var(--accent);color:var(--on-fill);border-radius:var(--r-sm);min-height:36px;font-family:var(--font-body);font-weight:var(--fw-semi);cursor:pointer;border:0;flex-shrink:0;padding:6px 14px}.category-row{gap:var(--s3)}.cat-action{color:var(--accent-strong);font-family:var(--font-body);font-size:var(--fs-sm);font-weight:var(--fw-semi);cursor:pointer;border-radius:var(--r-sm);background:0 0;border:0;padding:6px 10px}.cat-action:hover{background:var(--surface-2)}.cat-action.danger{color:var(--expense)}.category-form{gap:var(--s3);padding:var(--s4);border-bottom:1px solid var(--line);display:grid}.icon-picker{gap:var(--s2);flex-wrap:wrap;display:flex}.icon-opt{border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;place-items:center;width:40px;height:40px;font-size:18px;display:grid}.icon-opt.on{border-color:var(--accent);background:var(--accent-tint)}.icon-custom{align-items:center;gap:var(--s2);height:40px;padding:0 var(--s3);border-radius:var(--r-md);border:1px dashed var(--line-strong);background:var(--surface);cursor:text;display:inline-flex}.icon-custom:focus-within{border-color:var(--accent)}.icon-custom.on{border-style:solid;border-color:var(--accent);background:var(--accent-tint)}.icon-custom-emoji{font-size:18px;line-height:1}.icon-custom input{width:96px;color:var(--ink);font-family:var(--font-body);font-size:var(--fs-sm);background:0 0;border:0;outline:none;padding:0}.icon-custom input::placeholder{color:var(--ink-soft)}.icon-custom-hint{font-size:var(--fs-xs);color:var(--ink-soft);flex-basis:100%}.notif{display:inline-flex;position:relative}.notif-btn{border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);cursor:pointer;place-items:center;width:40px;height:40px;font-size:18px;display:grid;position:relative}.notif-badge{top:-4px;border-radius:var(--r-pill);background:var(--expense);color:#fff;min-width:18px;height:18px;font-size:11px;font-weight:var(--fw-semi);place-items:center;padding:0 4px;line-height:1;display:grid;position:absolute;inset-inline-end:-4px}.notif-panel{z-index:60;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-md);width:300px;max-width:calc(100vw - 16px);position:fixed;overflow:hidden;box-shadow:0 8px 24px #00000024}.notif-head{padding:var(--s3) var(--s4);font-weight:var(--fw-semi);border-bottom:1px solid var(--line)}.notif-empty{padding:var(--s5) var(--s4);text-align:center;color:var(--ink-soft);font-size:var(--fs-sm)}.notif-list{max-height:320px;overflow-y:auto}.notif-item{gap:var(--s3);padding:var(--s3) var(--s4);border-bottom:1px solid var(--line);align-items:flex-start;display:flex}.notif-item:last-child{border-bottom:0}.notif-item .ic{font-size:16px;line-height:1.3}.notif-body{flex:1;min-width:0}.notif-item-t{font-size:var(--fs-sm);font-weight:var(--fw-semi);color:var(--ink)}.notif-item-d{font-size:var(--fs-xs);color:var(--ink-soft);margin-top:2px}.notif-item.over .notif-item-d{color:var(--expense)}.notif-item.renew{background:var(--accent-tint)}.notif-renew{min-height:32px;margin-top:var(--s2);padding:0 var(--s3);border-radius:var(--r-pill);background:var(--accent);color:var(--on-fill);font-size:var(--fs-xs);font-weight:var(--fw-semi);align-items:center;display:inline-flex}.notif-renew:hover{color:var(--on-fill);opacity:.9;text-decoration:none}.tx-head-row{justify-content:space-between;align-items:center;gap:var(--s3);flex-wrap:wrap;display:flex}.tx-export{position:relative}.tx-export-btn{min-height:40px;padding:0 var(--s4);font-size:var(--fs-sm)}.tx-export-backdrop{z-index:40;position:fixed;inset:0}.tx-export-menu{inset-inline-end:0;top:calc(100% + var(--s2));z-index:41;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-md);padding:var(--s2);gap:var(--s1);min-width:140px;display:grid;position:absolute;box-shadow:0 8px 24px #0000001f}.tx-export-menu button{min-height:40px;padding:0 var(--s3);border-radius:var(--r-sm);color:var(--ink);font-size:var(--fs-sm);font-family:var(--font-body);text-align:start;cursor:pointer;align-items:center;gap:var(--s2);background:0 0;border:0;display:flex}.tx-export-menu button:hover{background:var(--accent-tint)}.search-bar{align-items:center;gap:var(--s2);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:0 var(--s3);height:48px;display:flex}.search-bar input{font-size:var(--fs-body);font-family:var(--font-body);color:var(--ink);background:0 0;border:0;outline:none;flex:1}.search-bar .i{color:var(--ink-soft)}.chip-row{gap:var(--s2);flex-wrap:wrap;display:flex}.chip{min-height:40px;padding:0 var(--s4);border-radius:var(--r-pill);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font-size:var(--fs-sm);cursor:pointer;align-items:center;gap:var(--s2);display:inline-flex}.chip.on{background:var(--accent-tint);border-color:var(--accent);color:var(--accent-strong);font-weight:var(--fw-semi)}.empty{text-align:center;padding:var(--s6) var(--s4);color:var(--ink-soft)}.empty .em{font-size:40px}.empty h3{color:var(--ink);font-size:var(--fs-lg);margin:var(--s2) 0;font-family:var(--font-display)}.bars-chart{align-items:stretch;gap:var(--s3);height:140px;padding:var(--s2) 0;display:flex}.bars-chart .col{justify-content:flex-end;align-items:center;gap:var(--s2);flex-direction:column;flex:1;height:100%;display:flex}.bars-chart .bar-area{flex:1;align-items:flex-end;width:100%;min-height:0;display:flex}.bars-chart .bar{background:var(--income-tint);border:1px solid var(--line);border-radius:var(--r-sm) var(--r-sm) 0 0;flex-shrink:0;width:100%}.bars-chart .col.on .bar{background:var(--accent)}.bars-chart .lbl{font-size:var(--fs-xs);color:var(--ink-soft)}.budget-row+.budget-row{margin-top:var(--s4)}.budget-row .top{margin-bottom:var(--s2);font-size:var(--fs-sm);justify-content:space-between;align-items:center;gap:var(--s3);display:flex}.budget-row .top>span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.budget-row .fig{font-family:var(--font-num);color:var(--ink-soft);white-space:nowrap;direction:ltr;unicode-bidi:isolate;flex-shrink:0}.bar-track{background:var(--line);border-radius:var(--r-pill);height:10px;overflow:hidden}.bar-track>span{border-radius:var(--r-pill);background:var(--income);height:100%;display:block}.bar-track.warn>span{background:var(--warn)}.bar-track.over>span{background:var(--expense)}.lock-banner{gap:var(--s3);padding:var(--s4);border:1px dashed var(--accent);border-radius:var(--r-md);background:var(--surface);align-items:center;display:flex}.lock-banner .flex1{flex:1}.lock-banner .note{color:var(--ink-soft);font-size:var(--fs-xs)}.profile-card{align-items:center;gap:var(--s4);display:flex}.profile-avatar{border-radius:var(--r-pill);background:var(--accent-tint);flex-shrink:0;place-items:center;width:56px;height:56px;font-size:28px;display:grid}.profile-name{font-family:var(--font-display);font-size:var(--fs-title-sm);font-weight:var(--fw-semi)}.profile-sub{color:var(--ink-soft);font-size:var(--fs-sm);margin-top:2px}.settings-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:0;overflow:hidden}.settings-row{align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);border-bottom:1px solid var(--line);border-inline:0;text-align:start;cursor:pointer;width:100%;font-family:var(--font-body);color:var(--ink);min-height:56px;transition:background var(--t-fast) var(--ease);background:0 0;border-top:0;text-decoration:none;display:flex}.settings-row:last-child{border-bottom:0}.settings-row:hover,.settings-row:focus-visible{background:var(--surface-2);text-decoration:none}.backup-format-pick{gap:var(--s3);padding:var(--s3) var(--s4) var(--s4);display:flex}.backup-format-pick .btn{min-height:var(--tap);padding:0 var(--s3);gap:var(--s2);background:var(--surface);border-color:var(--line-strong);font-weight:var(--fw-semi);flex:1}.backup-format-pick .btn:hover,.backup-format-pick .btn:focus-visible{background:var(--accent-tint);border-color:var(--accent);color:var(--accent-strong)}.settings-row .ic{text-align:center;width:24px;font-size:20px}.settings-row .lbl{font-size:var(--fs-body);color:var(--ink);flex:1}.settings-row:hover .lbl{color:var(--ink)}.settings-row .val{color:var(--ink-soft);font-size:var(--fs-sm)}.settings-row .chev{color:var(--ink-soft);font-size:var(--fs-lg)}.settings-row-block{cursor:default;padding:var(--s4);display:block}.settings-row-block:hover{background:0 0}.reminder-setting{gap:var(--s3);display:grid}.reminder-main{align-items:center;gap:var(--s3);display:flex}.reminder-main .ic{text-align:center;width:24px;font-size:20px}.reminder-txt{flex:1;min-width:0}.reminder-title{font-size:var(--fs-body);font-weight:var(--fw-semi);color:var(--ink)}.reminder-sub{font-size:var(--fs-xs);color:var(--ink-soft);margin-top:2px}.reminder-list{gap:var(--s2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.reminder-chip{align-items:center;gap:var(--s2);padding:0 var(--s2) 0 var(--s3);border-radius:var(--r-pill);background:var(--accent-tint);border:1px solid var(--accent);height:36px;color:var(--accent-strong);font-size:var(--fs-sm);font-weight:var(--fw-semi);display:inline-flex}.reminder-chip button{width:22px;height:22px;color:var(--accent-strong);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;font-size:13px;display:grid}.reminder-chip button:hover{background:color-mix(in srgb, var(--accent) 20%, transparent)}.reminder-chip button:disabled{opacity:.5;cursor:not-allowed}.reminder-add{align-items:center;gap:var(--s2);flex-wrap:wrap;display:flex}.reminder-add .btn{min-height:44px;padding:0 var(--s5)}.tp{display:inline-flex;position:relative}.tp-btn{align-items:center;gap:var(--s3);height:44px;padding:0 var(--s4);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);color:var(--ink);font-size:var(--fs-body);cursor:pointer;display:inline-flex}.tp-btn:hover:not(:disabled){border-color:var(--accent)}.tp-btn:disabled{opacity:.5;cursor:not-allowed}.tp-caret{color:var(--ink-soft);font-size:12px}.tp-pop{z-index:60;gap:var(--s1);padding:var(--s2);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-md);display:flex;position:fixed;box-shadow:0 8px 24px #00000024}.tp-col{flex-direction:column;gap:2px;max-height:200px;padding:0 2px;display:flex;overflow-y:auto}.tp-col::-webkit-scrollbar{width:6px}.tp-col::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:3px}.tp-col-period{border-inline-start:1px solid var(--line);margin-inline-start:2px;padding-inline-start:var(--s2)}.tp-col button{border-radius:var(--r-sm);min-width:44px;height:36px;color:var(--ink);font-size:var(--fs-body);cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.tp-col button:hover{background:var(--surface-2)}.tp-col button.on{background:var(--accent);color:var(--on-fill);font-weight:var(--fw-semi)}.reminder-note{font-size:var(--fs-xs);color:var(--ink-soft)}.premium-card{background:var(--accent-tint);border:1px solid var(--accent);gap:var(--s3);padding:var(--s5);border-radius:var(--r-lg);display:grid}.premium-card h3{color:var(--accent-strong);font-size:var(--fs-lg)}.subscribed-card{align-items:center;gap:var(--s3);padding:var(--s4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);display:flex}.signout-btn{width:100%;min-height:var(--tap);border:1px solid var(--line-strong);color:var(--expense);border-radius:var(--r-md);font-family:var(--font-body);font-weight:var(--fw-semi);font-size:var(--fs-body);cursor:pointer;transition:background var(--t-fast) var(--ease);background:0 0}.signout-btn:hover{background:var(--expense-tint)}.btn:hover,.btn:focus-visible{text-decoration:none}.btn.btn-accent:hover,.btn.btn-accent:focus-visible{color:var(--on-fill);filter:brightness(.96)}.btn.btn-primary:hover,.btn.btn-primary:focus-visible{color:var(--bg);filter:brightness(1.1)}.btn.btn-ghost:hover,.btn.btn-ghost:focus-visible,.btn.btn-google:hover,.btn.btn-google:focus-visible{color:var(--ink);background:var(--surface-2)}.export-field{gap:var(--s2);display:grid}.export-label{font-size:var(--fs-sm);font-weight:var(--fw-semi);color:var(--ink-soft)}.export-summary{font-size:var(--fs-sm);color:var(--ink-soft);text-align:center}.export-note{font-size:var(--fs-xs);color:var(--ink-soft);margin-top:var(--s1)}.export-checks{gap:var(--s2);display:grid}.export-check{align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);cursor:pointer;font-size:var(--fs-sm);color:var(--ink);display:flex}.export-check input{width:18px;height:18px;accent-color:var(--accent);cursor:pointer}.export-check:has(input:checked){border-color:var(--accent);background:var(--accent-tint)}.budget-note{gap:var(--s3);padding:var(--s3) var(--s4);border:1px dashed var(--accent);border-radius:var(--r-md);background:var(--surface);font-size:var(--fs-sm);color:var(--ink-soft);align-items:flex-start;display:flex}.budget-note b{color:var(--ink);margin-bottom:var(--s1);display:block}.budget-manage{gap:var(--s3);display:grid}.budget-manage-row{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s4)}.budget-row-locked{opacity:.6}.budget-locked-note{font-size:var(--fs-xs);color:var(--ink-soft)}.budget-manage-head{justify-content:space-between;align-items:center;gap:var(--s3);flex-wrap:wrap;display:flex}.budget-cat{font-weight:var(--fw-semi);align-items:center;gap:var(--s2);display:inline-flex}.budget-cat .ic-sm{font-size:18px}.budget-limit-field{align-items:center;gap:var(--s2);font-size:var(--fs-sm);color:var(--ink-soft);display:inline-flex}.budget-limit-field input{border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--bg);width:110px;height:40px;padding:0 var(--s3);font-family:var(--font-num);text-align:end;color:var(--ink);direction:ltr;outline:none}.budget-limit-field select{border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--bg);height:40px;color:var(--ink);font:inherit;padding:0 var(--s2)}.budget-range{gap:var(--s3);margin-top:var(--s3);flex-wrap:wrap;display:flex}.budget-range label{align-items:center;gap:var(--s2);font-size:var(--fs-sm);color:var(--ink-soft);display:inline-flex}.budget-range input{border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--bg);height:40px;color:var(--ink);font:inherit;padding:0 var(--s2)}.budget-limit-field input:focus{border-color:var(--accent)}.budget-manage-figs{margin-top:var(--s2);font-size:var(--fs-xs);color:var(--ink-soft)}.overlay{z-index:50;background:#14201a73;justify-content:center;align-items:flex-end;display:none;position:fixed;inset:0}.overlay.on{display:flex}.sheet{background:var(--surface);border-radius:var(--r-lg) var(--r-lg) 0 0;width:100%;max-width:560px;max-height:92vh;padding:var(--s5) var(--gutter) calc(var(--s5) + env(safe-area-inset-bottom,0px));transition:transform var(--t-base) var(--ease);overflow-y:auto;transform:translateY(100%);box-shadow:0 -8px 24px #0000002e}.overlay.on .sheet{transform:translateY(0)}.sheet-head{margin-bottom:var(--s4);justify-content:space-between;align-items:flex-start;display:flex}.sheet-head h3{font-size:var(--fs-title-sm)}.sheet-subhead{font-size:var(--fs-xs);color:var(--ink-soft);margin-top:2px}.sheet-close{color:var(--ink-soft);cursor:pointer;background:0 0;border:0;font-size:22px}.seg2{border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--bg);grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.seg2 button{min-height:var(--tap);color:var(--ink-soft);font-size:var(--fs-body);font-family:var(--font-body);font-weight:var(--fw-semi);cursor:pointer;transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);background:0 0;border:0}.seg2 button.on{background:var(--accent);color:var(--on-fill)}.seg2 button:not(.on):hover{background:var(--surface-2);color:var(--ink)}.seg2 button.on.inc{background:var(--income);color:var(--on-fill)}.seg2 button.on.exp{background:var(--expense);color:var(--on-fill)}.amount-box{text-align:center;padding:var(--s5) var(--s3);background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--r-lg);cursor:pointer;width:100%;transition:border-color var(--t-fast) var(--ease);font-family:inherit;display:block}.amount-box:hover{border-color:var(--accent)}.amount-box .cur{color:var(--ink-soft);font-size:var(--fs-sm)}.amount-box .val{font-family:var(--font-num);font-size:var(--fs-hero);font-weight:var(--fw-med);direction:ltr}.amount-box.exp .val{color:var(--expense)}.amount-box.inc .val{color:var(--income)}.amount-clear{font-size:var(--fs-xs);color:var(--ink-soft);opacity:.6;margin-top:var(--s1)}.keypad{gap:var(--s2);direction:ltr;grid-template-columns:repeat(3,1fr);display:grid}.keypad button{border-radius:var(--r-md);border:1px solid var(--line);background:var(--bg);height:52px;color:var(--ink);font-family:var(--font-num);cursor:pointer;font-size:20px}.onb-wrap{min-height:100dvh;padding:var(--s6) var(--gutter);justify-content:center;align-items:center;display:flex}.onb-card{gap:var(--s5);width:100%;max-width:440px;display:grid}.onb-choices{gap:var(--s3);display:grid}.onb-choice{align-items:center;gap:var(--s4);padding:var(--s4);border:2px solid var(--line-strong);border-radius:var(--r-lg);background:var(--surface);cursor:pointer;text-align:start;width:100%;font-family:var(--font-body);display:flex}.onb-choice.on{border-color:var(--accent);background:var(--accent-tint)}.onb-choice .ic{border-radius:var(--r-pill);background:var(--bg);flex-shrink:0;place-items:center;width:48px;height:48px;font-size:24px;display:grid}.onb-choice .t{font-weight:var(--fw-semi);font-size:var(--fs-body);color:var(--ink)}.onb-choice .d{font-size:var(--fs-xs);color:var(--ink-soft);margin-top:2px}.onb-progress{justify-content:center;gap:6px;display:flex}.onb-progress i{background:var(--line);border-radius:2px;width:24px;height:4px}.onb-progress i.on{background:var(--accent)}.plan-summary{background:var(--accent-tint);border:1px solid var(--accent);border-radius:var(--r-lg);padding:var(--s5);gap:var(--s3);display:grid}.plan-summary .row-between{justify-content:space-between;align-items:center;display:flex}.plan-summary .trial-badge{font-size:var(--fs-xs);color:var(--on-fill);background:var(--income);border-radius:var(--r-pill);padding:4px 10px}.price-lines{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s5);gap:var(--s3);display:grid}.price-lines .line{font-size:var(--fs-body);color:var(--ink-soft);justify-content:space-between;align-items:baseline;display:flex}.price-lines .line.strong{font-weight:var(--fw-semi);color:var(--ink)}.price-lines .line .v{font-family:var(--font-num);direction:ltr}.price-lines hr{background:var(--line);border:0;height:1px;margin:0}.pay-methods{gap:var(--s2);flex-wrap:wrap;display:flex}.subscribe-grid{gap:var(--s5);width:100%;margin-inline:auto;display:grid}.sub-review-col,.sub-pay-col{gap:var(--s5);align-content:start;display:grid}.pay-cta{gap:var(--s3);display:grid}.secure-note{font-size:var(--fs-xs);color:var(--ink-soft);text-align:center;margin:0;line-height:1.6}.pay-error{font-size:var(--fs-sm);color:var(--expense);text-align:center;margin:0}.feat-list{gap:var(--s2);font-size:var(--fs-sm);margin:0;padding:0;list-style:none;display:grid}.feat-list li{gap:var(--s2);color:var(--ink);align-items:flex-start;display:flex}.feat-list li:before{content:"✓";color:var(--income);font-weight:var(--fw-bold);flex-shrink:0}.renew-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s4);gap:var(--s2);display:grid}.switch-row{justify-content:space-between;align-items:center;gap:var(--s3);display:flex}.switch-row .switch-label{font-size:var(--fs-body);font-weight:var(--fw-semi);color:var(--ink)}.renew-hint{font-size:var(--fs-xs);color:var(--ink-soft);margin:0;line-height:1.6}.switch{flex-shrink:0;width:46px;height:28px;display:inline-block;position:relative}.switch input{opacity:0;cursor:pointer;z-index:1;width:100%;height:100%;margin:0;position:absolute;inset:0}.switch .track{background:var(--surface-2);border:1px solid var(--line-strong);border-radius:var(--r-pill);transition:background .15s,border-color .15s;position:absolute;inset:0}.switch .thumb{top:3px;background:var(--surface);border-radius:50%;width:20px;height:20px;transition:inset-inline-start .15s;position:absolute;inset-inline-start:3px;box-shadow:0 1px 3px #00000040}.switch input:checked~.track{background:var(--accent);border-color:var(--accent)}.switch input:checked~.thumb{inset-inline-start:calc(100% - 23px)}.switch input:focus-visible~.track{outline:2px solid var(--accent);outline-offset:2px}.dur-options{gap:var(--s2);grid-template-columns:repeat(3,1fr);display:grid}.dur-options.tier-options{grid-template-columns:repeat(2,1fr)}.sub-status{padding:var(--s3) var(--s4);border-radius:var(--r-md);background:var(--accent-tint);border:1px solid var(--accent);color:var(--accent-strong);font-size:var(--fs-sm);font-weight:var(--fw-semi);width:100%;max-width:960px;margin-inline:auto}.sub-status.locked{background:color-mix(in srgb, var(--expense) 10%, transparent);border-color:var(--expense);color:var(--expense)}.feat-list li.no{color:var(--ink-soft)}.feat-list li.no:before{content:"—";color:var(--ink-soft)}.dur-opt{text-align:center;padding:var(--s3) var(--s2);min-height:var(--tap);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--bg);color:var(--ink-soft);cursor:pointer;gap:2px;display:grid;position:relative}.dur-opt:not(.on):hover{background:var(--surface-2)}.dur-opt.on{border-color:var(--accent);background:var(--accent-tint);color:var(--ink)}.dur-opt .dur-name{font-size:var(--fs-sm);font-weight:var(--fw-semi)}.dur-opt .dur-price{font-family:var(--font-num);font-size:var(--fs-body);color:var(--ink);direction:ltr}.dur-opt.on .dur-price{color:var(--accent-strong)}.dur-opt .dur-per{font-size:var(--fs-xs);color:var(--ink-soft);direction:ltr}.dur-opt .dur-save{font-size:var(--fs-xs);color:var(--on-fill);background:var(--income);border-radius:var(--r-pill);margin-top:2px;padding:1px 8px;display:inline-block}.chip.chip-add{color:var(--accent-strong);border-style:dashed}.new-cat{gap:var(--s2);margin-top:var(--s3);flex-wrap:wrap;align-items:center;display:flex}.new-cat input{border-radius:var(--r-md);border:1px solid var(--accent);background:var(--surface);min-width:140px;height:44px;padding:0 var(--s3);font:inherit;font-size:var(--fs-body);color:var(--ink);outline:none;flex:1}.new-cat .btn{min-height:44px;padding:0 var(--s4)}.new-cat-hint{font-size:var(--fs-xs);color:var(--ink-soft);flex-basis:100%}.new-cat .icon-picker{flex-basis:100%}.app-loading{place-content:center;justify-items:center;gap:var(--s4);min-height:100dvh;padding:var(--s6);text-align:center;display:grid}.app-loading-txt{color:var(--ink-soft);font-size:var(--fs-sm)}.app-spinner{border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite app-spin}@keyframes app-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.app-spinner{animation-duration:2s}}.empty .empty-cta{margin-top:var(--s4)}.fb-form{gap:var(--s4);display:grid}.fb-form textarea{width:100%;min-height:140px;padding:var(--s3);border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface);font:inherit;font-size:var(--fs-body);color:var(--ink);resize:vertical;outline:none;line-height:1.7}.fb-form textarea:focus{border-color:var(--accent)}.fb-thanks{gap:var(--s3);text-align:center;padding:var(--s6) var(--s4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);justify-items:center;display:grid}.fb-thanks p{color:var(--ink-soft);font-size:var(--fs-sm);margin:0}.fb-item{padding:var(--s3) var(--s4);border-bottom:1px solid var(--line);gap:var(--s2);display:grid}.fb-item:last-child{border-bottom:0}.fb-item p{color:var(--ink);font-size:var(--fs-sm);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;line-height:1.7}.fb-item-top{align-items:center;gap:var(--s2);font-size:var(--fs-xs);flex-wrap:wrap;display:flex}.fb-tag{border-radius:var(--r-pill);font-weight:var(--fw-semi);background:var(--accent-tint);color:var(--accent-strong);padding:2px 10px}.fb-tag.problem{background:color-mix(in srgb, var(--expense) 12%, transparent);color:var(--expense)}.fb-date{color:var(--ink-soft)}.fb-status{color:var(--income);font-weight:var(--fw-semi);margin-inline-start:auto}.avatar{background:var(--accent-tint);color:var(--accent-strong);font-weight:var(--fw-bold);border:1px solid var(--line);border-radius:50%;flex-shrink:0;place-items:center;display:inline-grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%;display:block}.avatar-initial{line-height:1;font-family:var(--font-display)}.avatar-link{border-radius:50%;flex-shrink:0;display:inline-grid}.avatar-edit{flex-shrink:0;position:relative}.avatar-edit-btn{inset-inline-end:-4px;border:2px solid var(--surface);background:var(--accent);width:28px;height:28px;color:var(--on-fill);cursor:pointer;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;bottom:-4px}.avatar-edit-btn:hover{filter:brightness(.95)}.avatar-edit-btn svg{width:14px;height:14px}.avatar-actions{gap:var(--s3);margin-top:var(--s2);flex-wrap:wrap;align-items:center;display:flex}.avatar-actions button{font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-semi);color:var(--accent-strong);cursor:pointer;background:0 0;border:0;padding:0}.avatar-actions button.danger{color:var(--expense)}.avatar-actions button:disabled{opacity:.5;cursor:default}.avatar-msg{font-size:var(--fs-xs);color:var(--ink-soft);margin:0}.avatar-msg.err{color:var(--expense)}.pay-cb{min-height:calc(100dvh - 72px);padding:var(--s6) var(--gutter);place-items:center;display:grid}@media (min-width:900px){.pay-cb{min-height:100dvh;margin-inline-start:240px}}.pay-cb-inner{gap:var(--s3);width:100%;max-width:420px;display:grid}.pay-cb-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s7) var(--s5) var(--s6);justify-items:center;gap:var(--s3);text-align:center;margin-bottom:var(--s2);display:grid}.pay-cb-card h2{font:700 var(--fs-lg) var(--font-display);color:var(--ink);margin:0;animation:.45s ease-out .75s both pay-rise}.pay-cb-card p{font-size:var(--fs-sm);color:var(--ink-soft);max-width:34ch;margin:0;line-height:1.8;animation:.45s ease-out .9s both pay-rise}.pay-icon{--pay-c:#1f9d55;width:96px;height:96px;margin-bottom:var(--s2);overflow:visible}.pay-cb-card.fail .pay-icon{--pay-c:var(--expense)}.pay-icon .pi-circle{fill:var(--pay-c);transform-box:fill-box;transform-origin:50%;animation:.55s cubic-bezier(.2,.9,.3,1.35) both pay-pop}.pay-icon .pi-ring{fill:none;stroke:var(--pay-c);stroke-width:2px;opacity:0;transform-box:fill-box;transform-origin:50%;animation:.9s ease-out .35s both pay-ring}.pay-icon .pi-mark{fill:none;stroke:#fff;stroke-width:4.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:48;stroke-dashoffset:0;animation:.4s ease-out .45s both pay-draw}@keyframes pay-pop{0%{transform:scale(0)}70%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes pay-ring{0%{opacity:.55;transform:scale(1)}to{opacity:0;transform:scale(1.6)}}@keyframes pay-draw{0%{stroke-dashoffset:48px}to{stroke-dashoffset:0}}@keyframes pay-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.balance-top{justify-content:space-between;align-items:center;gap:var(--s3);display:flex}.privacy-btn{cursor:pointer;border-radius:var(--r-pill);border:1px solid var(--line-strong);background:var(--surface);width:36px;height:36px;color:var(--ink-soft);flex-shrink:0;place-items:center;padding:0;display:grid}.privacy-btn:hover{background:var(--accent-tint);color:var(--accent-strong);border-color:var(--accent)}.privacy-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.privacy-btn svg{width:18px;height:18px}.privacy-btn .i-eye-off,:root[data-privacy=on] .privacy-btn .i-eye{display:none}:root[data-privacy=on] .privacy-btn .i-eye-off{display:block}.balance-card .privacy-btn{color:inherit;background:#ffffff1a;border-color:#ffffff38}.balance-card .privacy-btn:hover{color:inherit;background:#ffffff2e;border-color:#fff6}.money{transition:filter .2s}:root[data-privacy=on] .money{filter:blur(.4em);-webkit-user-select:none;user-select:none}.switch-warn{gap:var(--s3);padding:var(--s4);border-radius:var(--r-md);margin-bottom:var(--s3);background:var(--expense-tint);border:1px solid var(--expense);display:grid}.switch-warn p{font-size:var(--fs-sm);color:var(--ink);margin:0;line-height:1.8}.switch-warn .check-row{font-size:var(--fs-sm);font-weight:var(--fw-semi)}.ledger-note{margin:var(--s2) 0 0;font-size:var(--fs-xs);color:var(--ink-soft);line-height:1.7}.sub-info-card{gap:var(--s2);padding:var(--s5);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);display:grid}.sub-info-card.soon{border-color:var(--warn)}.sub-info-card.off{border-color:var(--expense)}.sub-info-lbl{font-size:var(--fs-xs);color:var(--ink-soft)}.sub-info-name{font:700 var(--fs-lg) var(--font-display);color:var(--ink)}.sub-info-meta{justify-content:space-between;gap:var(--s2);font-size:var(--fs-sm);color:var(--ink-soft);flex-wrap:wrap;display:flex}.sub-info-meta b{color:var(--accent-strong)}.sub-info-card.soon .sub-info-meta b{color:var(--warn)}.sub-info-card .btn{margin-top:var(--s2)}.switch-warn .switch-agree{padding:var(--s2) var(--s3);border-radius:var(--r-sm);border:2px dashed var(--expense);background:var(--surface);cursor:pointer}.switch-warn .switch-agree.ok{border-style:solid;border-color:var(--income)}.switch-warn .switch-agree.nudge{box-shadow:0 0 0 4px color-mix(in srgb, var(--expense) 25%, transparent);animation:.45s agree-shake}.switch-need{font-size:var(--fs-xs);font-weight:var(--fw-semi);color:var(--expense);margin:0}.btn-waiting{opacity:.6}@keyframes agree-shake{0%,to{transform:none}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}@media (prefers-reduced-motion:reduce){.switch-warn .switch-agree.nudge{animation:none}}.extend-note{margin:0 0 var(--s3);padding:var(--s3) var(--s4);border-radius:var(--r-md);font-size:var(--fs-sm);background:var(--income-tint);border:1px solid var(--income);color:var(--ink);line-height:1.8}
.demo{gap:var(--s3);justify-items:center;width:100%;max-width:340px;margin:0 auto;display:grid}.demo-phone{max-width:320px}.demo-scene{animation:demo-in .35s var(--ease);position:absolute;inset:0}@keyframes demo-in{0%{opacity:0;transform:translateY(6px)}}.demo-pad{height:100%;padding:var(--s4);gap:var(--s3);align-content:start;display:grid}.demo-brand{font-size:18px}.demo-h{font-family:var(--font-display);margin:0;font-size:18px;line-height:1.4}.demo-top{justify-content:space-between;align-items:center;gap:var(--s2);font-size:var(--fs-body);display:flex}.demo-pill{border-radius:var(--r-pill);border:1px solid var(--line-strong);color:var(--ink-soft);padding:2px 10px;font-size:12px}.demo-choices{gap:var(--s2);display:grid}.demo-choice{align-items:center;gap:var(--s3);padding:var(--s3);border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface);display:flex;position:relative}.demo-choice .ic{font-size:22px}.demo-choice b{font-size:var(--fs-sm);display:block}.demo-choice small{color:var(--ink-soft);font-size:12px;line-height:1.5;display:block}.demo-choice.pick{background:var(--accent-tint);border-color:var(--accent);animation:demo-pick .3s 1.3s var(--ease) backwards}@keyframes demo-pick{0%{background:var(--surface);border-color:var(--line-strong)}}.demo-tap{inset-inline-end:22px;background:color-mix(in srgb, var(--accent) 35%, transparent);border:2px solid var(--accent);opacity:0;pointer-events:none;border-radius:50%;width:26px;height:26px;margin-top:-6px;animation:1.2s ease-out 1s backwards demo-tap;position:absolute;top:50%}@keyframes demo-tap{0%{opacity:0;transform:scale(1.6)}35%{opacity:1;transform:scale(1)}65%{opacity:1;transform:scale(.8)}to{opacity:0;transform:scale(1.4)}}.demo-btn{border-radius:var(--r-md);background:var(--accent);min-height:44px;color:var(--on-fill);font-weight:var(--fw-semi);font-size:var(--fs-sm);place-items:center;display:grid}.demo-pulse{animation:1.4s ease-in-out infinite demo-pulse}@keyframes demo-pulse{0%,to{box-shadow:0 0 #0000}50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--accent) 30%, transparent)}}.demo-sheet-head{font-size:var(--fs-body);color:var(--ink);justify-content:space-between;align-items:center;display:flex}.demo-sheet-head span{color:var(--ink-soft)}.demo-seg{border-radius:var(--r-pill);background:var(--surface-2);grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.demo-seg span{text-align:center;border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:var(--fw-semi);color:var(--ink-soft);padding:6px 0}.demo-seg span.on{background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}.demo-seg span.on.inc{color:var(--income)}.demo-seg span.on.exp{color:var(--expense)}.demo-amount{text-align:center;padding:var(--s3);border-radius:var(--r-lg);background:var(--bg);border:1px solid var(--income)}.demo-amount small{color:var(--ink-soft);font-size:12px;display:block}.demo-amount.exp{border-color:var(--expense)}.demo-amount b{font-family:var(--font-num);font-size:34px;font-weight:var(--fw-med);color:var(--income);direction:ltr}.demo-amount.exp b{color:var(--expense)}.demo-chips{flex-wrap:wrap;gap:6px;display:flex}.demo-chip{border-radius:var(--r-pill);border:1px solid var(--line-strong);color:var(--ink-soft);padding:4px 12px;font-size:12px}.demo-chip.pick{background:var(--accent-tint);border-color:var(--accent);color:var(--accent-strong);font-weight:var(--fw-semi);animation:demo-chip .3s 2.1s var(--ease) backwards}@keyframes demo-chip{0%{border-color:var(--line-strong);color:var(--ink-soft);font-weight:var(--fw-reg);background:0 0}}.demo-keypad{direction:ltr;grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.demo-keypad span{border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);place-items:center;height:34px;font-size:15px;display:grid}.demo-list{padding:0 var(--s3)}.demo-new{animation:demo-new 1.6s 1.2s var(--ease) backwards}@keyframes demo-new{0%{opacity:0;background:var(--accent-tint);transform:translateY(-10px)}35%{opacity:1;background:var(--accent-tint);transform:none}to{background:0 0}}.demo .mini-tx .nm{font-size:var(--fs-sm);font-weight:var(--fw-semi)}.demo .mini-tx .sub{color:var(--ink-soft);font-size:12px}.demo .mini-tx .amt{font-size:var(--fs-sm);direction:ltr;margin-inline-start:auto}.demo .mini-tx .amt.inc{color:var(--income)}.demo .mini-tx .amt.exp{color:var(--expense)}.demo-budget{padding:var(--s3) 0;border-bottom:1px solid var(--line)}.demo-budget:last-child{border-bottom:0}.demo-budget-top{justify-content:space-between;gap:var(--s2);font-size:var(--fs-sm);margin-bottom:6px;display:flex}.demo-budget-top .num{color:var(--ink-soft);white-space:nowrap;font-size:12px}.demo-track{border-radius:var(--r-pill);background:var(--line);height:8px;overflow:hidden}.demo-track span{border-radius:var(--r-pill);background:var(--income);height:100%;animation:demo-bar .9s var(--ease) backwards;display:block}.demo-track span.warn{background:var(--warn)}@keyframes demo-bar{0%{width:0!important}}.demo-insight{animation:demo-fade .5s 1.6s var(--ease) backwards}@keyframes demo-fade{0%{opacity:0;transform:translateY(8px)}}.demo-caption{text-align:center;min-height:3em;color:var(--ink-soft);font-size:var(--fs-sm);margin:0;line-height:1.6}.demo-tabs{align-items:center;gap:var(--s2);width:100%;display:flex}.demo-tab{min-width:0;min-height:40px;padding:0 var(--s2);border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--surface);color:var(--ink-soft);font:inherit;font-size:var(--fs-xs);font-weight:var(--fw-semi);cursor:pointer;transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);flex:auto;justify-content:center;align-items:center;gap:6px;display:flex;position:relative;overflow:hidden}.demo-tab:hover{border-color:var(--accent);color:var(--accent-strong)}.demo-tab.on{background:var(--accent-tint);border-color:var(--accent);color:var(--accent-strong)}.demo-tab-n{background:var(--line);border-radius:50%;flex-shrink:0;place-items:center;width:18px;height:18px;font-size:11px;display:grid}.demo-tab.on .demo-tab-n{background:var(--accent);color:var(--on-fill)}.demo-tab-t{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.demo-tab-bar{inset-inline-start:0;background:var(--accent);width:100%;height:3px;animation:linear backwards demo-fill;position:absolute;bottom:0}@keyframes demo-fill{0%{width:0}}.demo-play{border:1px solid var(--line-strong);background:var(--surface);width:40px;height:40px;color:var(--ink-soft);cursor:pointer;border-radius:50%;flex-shrink:0;place-items:center;display:grid}.demo-play:hover{border-color:var(--accent);color:var(--accent-strong);background:var(--accent-tint)}.demo-play svg{width:16px;height:16px}@media (max-width:480px){.demo{grid-template-columns:minmax(0,1fr)}.demo-tab-n{display:none}}@media (max-width:400px){.demo-tabs{gap:6px}.demo-tab{padding:0 6px}}.demo:not(.playing) .demo-scene *,.demo:not(.playing) .demo-tab-bar{animation-play-state:paused}@media (prefers-reduced-motion:reduce){.demo *,.demo-scene{transition:none!important;animation:none!important}}.demo-ledgers{border-radius:var(--r-pill);background:var(--surface-2);gap:4px;padding:4px;display:flex}.demo-ledger{min-height:34px;padding:0 var(--s4);border-radius:var(--r-pill);color:var(--ink-soft);font:inherit;font-size:var(--fs-xs);font-weight:var(--fw-semi);cursor:pointer;transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);background:0 0;border:0}.demo-ledger.on{background:var(--surface);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}.demo-label{padding:6px var(--s4);border-radius:var(--r-pill);background:var(--accent-tint);border:1px dashed var(--accent);color:var(--accent-strong);font-size:var(--fs-xs);font-weight:var(--fw-semi);text-align:center;margin:0}

