.bs-root{position:fixed;inset:0;z-index:90;display:flex;flex-direction:column;justify-content:flex-end}.bs-backdrop{position:absolute;inset:0;background:#0f17286b;animation:bs-fade-in .32s ease-out both}.bs-sheet{position:relative;width:100%;max-height:min(88dvh,calc(100vh - 40px));display:flex;flex-direction:column;background:var(--card);border-radius:22px 22px 0 0;box-shadow:0 -8px 40px #0f17282e;outline:none;overscroll-behavior:contain;animation:bs-slide-in .46s cubic-bezier(.32,.72,0,1) both;will-change:transform}.bs-grabber{flex-shrink:0;display:flex;justify-content:center;padding:8px 0 4px;cursor:grab;touch-action:none}.bs-grabber i{width:38px;height:5px;border-radius:3px;background:#17233b2e}.bs-content{overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;padding:4px 20px calc(22px + env(safe-area-inset-bottom))}@keyframes bs-fade-in{0%{opacity:0}to{opacity:1}}@keyframes bs-slide-in{0%{transform:translate3d(0,100%,0)}to{transform:translateZ(0)}}@media(min-width:700px){.bs-root{justify-content:flex-end;align-items:center}.bs-sheet{max-width:460px;margin-bottom:32px;border-radius:22px;max-height:min(82dvh,calc(100vh - 80px))}.bs-content{padding-bottom:22px}}@media(prefers-reduced-motion:reduce){.bs-sheet{animation-name:bs-fade-in}}.stat-ranges{display:flex;gap:8px;margin-top:-8px}.stat-chip{flex:1;border:1px solid var(--line);background:var(--card);color:var(--text-dim);border-radius:999px;padding:7px 10px;font-size:.84rem;font-weight:600;cursor:pointer;font-variant-numeric:tabular-nums;white-space:nowrap;transition:transform .2s var(--ease-ios),background .2s,border-color .2s,color .2s}.stat-chip:active{transform:scale(.96)}.stat-chip.active{border-color:var(--brand);color:var(--brand);background:var(--brand-tint)}.stat-delta{display:inline-flex;align-items:baseline;gap:2px;color:var(--text-muted)}.stat-delta-what{color:var(--text-muted)}.stat-retry{margin-top:6px}.stat-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;border-bottom:1px solid var(--hairline);padding-bottom:8px}.stat-section-head .section-title{border-bottom:none;padding-bottom:0}.stat-toggle{border:1px solid var(--line);background:var(--card);color:var(--text-dim);border-radius:999px;padding:4px 11px;font-size:.76rem;font-weight:620;cursor:pointer;white-space:nowrap;transition:transform .2s var(--ease-ios),background .2s,border-color .2s,color .2s}.stat-toggle:active{transform:scale(.96)}.stat-toggle.active{border-color:var(--brand);color:var(--brand);background:var(--brand-tint)}.stat-toggle:disabled{opacity:.4;cursor:default}.stat-chart{position:relative;width:100%;max-width:100%;overflow:visible}.stat-svg{display:block;width:100%;height:auto;max-width:100%;touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:crosshair;font-family:var(--font)}.stat-grid{stroke:var(--hairline);stroke-width:1;shape-rendering:crispEdges}.stat-axis{stroke:var(--line);stroke-width:1;shape-rendering:crispEdges}.stat-ylabel,.stat-xlabel{fill:var(--text-muted);font-size:9.5px;font-variant-numeric:tabular-nums;font-weight:500}.stat-xlabel.current{fill:var(--text-dim);font-weight:650}.stat-maxlabel{fill:var(--text-dim);font-size:10px;font-weight:650;font-variant-numeric:tabular-nums}.stat-active-bg{fill:var(--track);opacity:.9}.stat-bar.current rect{opacity:.6}.stat-bar.current rect:last-child{opacity:1}.stat-hatch-line{fill:var(--bg);opacity:.55}.stat-tip{position:absolute;top:0;z-index:2;pointer-events:none;background:var(--card);color:var(--text);border:1px solid var(--hairline);border-radius:12px;box-shadow:var(--shadow-hover);padding:8px 11px;min-width:128px;max-width:min(240px,100%);font-size:.8rem;line-height:1.35}.stat-tip-title{color:var(--text-dim);font-weight:600;font-size:.74rem}.stat-tip-amount{font-weight:720;font-size:1rem;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.stat-tip-meta{color:var(--text-muted);font-size:.74rem;font-variant-numeric:tabular-nums}.stat-tip-list{list-style:none;margin-top:6px;padding-top:6px;border-top:1px solid var(--hairline);display:flex;flex-direction:column;gap:3px}.stat-tip-list li{display:flex;align-items:center;gap:6px;font-size:.74rem}.stat-tip-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-dim)}.stat-tip-val{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.stat-legend{list-style:none;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.8rem;color:var(--text-dim)}.stat-legend li{display:inline-flex;align-items:center;gap:6px}.stat-hint{font-size:.76rem;color:var(--text-muted);line-height:1.4}.stat-dot{width:9px;height:9px;border-radius:50%;flex:none;display:inline-block}.stat-table-btn{align-self:flex-start;background:none;border:none;color:var(--brand);font-size:.82rem;font-weight:600;cursor:pointer;padding:6px 0;border-radius:8px}.stat-table-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow)}.stat-table{width:100%;border-collapse:collapse;font-size:.88rem}.stat-table th,.stat-table td{padding:9px 12px;text-align:left;white-space:nowrap}.stat-table thead th{font-size:.72rem;font-weight:650;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--hairline)}.stat-table tbody th{font-weight:550}.stat-table tbody tr+tr th,.stat-table tbody tr+tr td{border-top:1px solid var(--hairline)}.stat-table tbody tr.current th,.stat-table tbody tr.current td{color:var(--text-dim)}.stat-table tfoot th,.stat-table tfoot td{border-top:2px solid var(--line);font-weight:700}.stat-table .num{text-align:right;font-variant-numeric:tabular-nums}.stat-rows{list-style:none;display:flex;flex-direction:column;gap:12px}.stat-row-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:.92rem}.stat-row-name{display:inline-flex;align-items:center;gap:8px;font-weight:550;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stat-row-amount{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.stat-row-amount small{color:var(--text-muted);font-weight:500;margin-left:8px;font-size:.78rem}.stat-track{height:6px;background:var(--track);border-radius:4px;margin-top:6px;overflow:hidden}.stat-bar-fill{height:100%;border-radius:4px;transition:width .5s var(--ease-ios)}.stat-skel-title{height:12px;width:30%;background:var(--track);border-radius:6px}.stat-skel-chart{height:176px;background:var(--track);border-radius:12px}@media(prefers-reduced-motion:reduce){.stat-bar-fill,.stat-chip,.stat-toggle{transition:none}}.st-root,.st-page{display:flex;flex-direction:column;gap:22px}.st-banner{background:color-mix(in srgb,var(--red) 12%,var(--card));color:var(--red);border-radius:12px;padding:10px 14px;font-size:.88rem;font-weight:550}.st-pagehead{padding:4px 0 0}.st-title{font-size:1.5rem;font-weight:760;letter-spacing:-.02em;line-height:1.15}.st-subhead{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin:-4px -6px 0}.st-subhead .st-title{font-size:1.05rem;text-align:center;white-space:nowrap}.st-subhead-action{display:flex;justify-content:flex-end}.st-back{justify-self:start;display:inline-flex;align-items:center;gap:2px;min-height:44px;padding:8px 10px 8px 4px;border:none;background:transparent;border-radius:10px;color:var(--brand);font-size:.92rem;font-weight:600;cursor:pointer;max-width:100%;transition:background .2s var(--ease-ios),transform .2s var(--ease-ios)}.st-back span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.st-back:hover{background:var(--brand-tint)}.st-back:active{transform:scale(.96)}.st-back:focus-visible,.st-row:focus-visible,.st-row-main:focus-visible,.st-icon-btn:focus-visible,.st-add-btn:focus-visible,.st-toggle:focus-visible,.st-slot:focus-visible,.st-theme-card:focus-visible,.st-logout:focus-visible,.st-collapse:focus-visible,.st-copy:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.st-lead{font-size:.9rem;color:var(--text-dim);line-height:1.5;margin-top:-8px}.st-segmented{margin-top:0}.st-group{display:flex;flex-direction:column;gap:10px}.st-list{list-style:none;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.st-list>li+li>.st-row{border-top:1px solid var(--hairline)}.st-list>li.st-inactive .st-row-title,.st-list>li.st-inactive .st-dot{opacity:.55}.st-row{width:100%;min-height:52px;display:flex;align-items:center;gap:12px;padding:12px 14px;background:none;border:none;text-align:left;cursor:pointer;font-size:.95rem;color:var(--text);transition:background .15s var(--ease-ios)}.st-row:disabled{cursor:default}.st-row:not(:disabled):not(.st-row-static):active{background:var(--track)}.st-row-static{padding:0 8px 0 0;cursor:default}.st-row-main{flex:1;min-width:0;min-height:52px;display:flex;align-items:center;gap:12px;padding:10px 6px 10px 14px;background:none;border:none;text-align:left;cursor:pointer;font:inherit;color:inherit;border-radius:0;transition:background .15s var(--ease-ios)}.st-row-main:is(button):active{background:var(--track)}.st-row-main:is(div){cursor:default}.st-row-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.st-row-title{font-weight:550;display:flex;align-items:center;gap:8px;flex-wrap:wrap;line-height:1.3}.st-row-sub{font-size:.78rem;color:var(--text-muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap;line-height:1.35}.st-row-value{color:var(--text-muted);font-size:.9rem;white-space:nowrap;font-variant-numeric:tabular-nums}.st-amount{color:var(--text);font-weight:600}.st-chevron{color:var(--text-muted);flex:none;opacity:.7}.st-row-action{flex:none;margin-right:6px;min-height:44px}.st-dot{display:inline-block;border-radius:50%;flex:none}.st-order{display:flex;gap:2px;flex:none}.st-icon-btn{width:40px;height:44px;border:none;background:transparent;color:var(--brand);border-radius:10px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s var(--ease-ios),transform .2s var(--ease-ios),opacity .2s}.st-icon-btn:hover{background:var(--brand-tint)}.st-icon-btn:active{transform:scale(.92)}.st-icon-btn:disabled{opacity:.25;cursor:default}.st-add-btn{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--card);border:1px dashed var(--line);border-radius:var(--radius);color:var(--brand);font-size:.92rem;font-weight:620;cursor:pointer;padding:10px 14px;transition:background .2s var(--ease-ios),transform .2s var(--ease-ios)}.st-add-btn:hover{background:var(--brand-tint)}.st-add-btn:active{transform:scale(.98)}.st-collapse{display:flex;justify-content:space-between;align-items:center;width:100%;background:none;border:none;border-bottom:1px solid var(--hairline);cursor:pointer;text-align:left;min-height:44px}.st-collapse svg{transition:transform .25s var(--ease-ios)}.st-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px;display:flex;flex-direction:column;gap:10px}.st-namecard .field{gap:6px}.st-inline-actions{display:flex;justify-content:flex-end}.primary-btn.st-compact{flex:0 0 auto;padding:11px 18px;font-size:.92rem;border-radius:12px;min-height:44px}.st-readonly{font-size:1.05rem;font-weight:650;letter-spacing:-.01em}.field input:disabled{opacity:.6;cursor:not-allowed}.field.invalid input{border-color:var(--red)}.st-slots{display:flex;flex-wrap:wrap;gap:10px}.st-slot{width:44px;height:44px;border-radius:50%;border:none;cursor:pointer;padding:0;background:transparent;display:inline-flex;align-items:center;justify-content:center;position:relative;transition:transform .2s var(--ease-ios)}.st-slot:before{content:"";width:30px;height:30px;border-radius:50%;background:var(--slot);position:absolute;transition:transform .2s var(--ease-ios),box-shadow .2s var(--ease-ios)}.st-slot svg{position:relative}.st-slot.active:before{box-shadow:0 0 0 3px var(--card),0 0 0 5px var(--slot)}.st-slot:active{transform:scale(.92)}.st-slot:disabled{cursor:default;opacity:.55}.st-slot:disabled.active{opacity:1}.st-toggle{flex:none;width:51px;height:31px;border-radius:16px;border:none;padding:2px;cursor:pointer;background:var(--track);position:relative;margin:8px 6px 8px 0;transition:background .25s var(--ease-ios)}.st-toggle i{display:block;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 2px 4px #0003,0 0 0 .5px #0000000f;transition:transform .25s var(--ease-ios)}.st-toggle.on{background:#34c759}:root[data-theme=dark] .st-toggle.on{background:#30d158}.st-toggle.on i{transform:translate(20px)}.st-toggle:disabled{opacity:.5;cursor:default}.st-toggle:after{content:"";position:absolute;inset:-7px -4px}.st-info{background:var(--brand-tint);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:6px;font-size:.88rem;line-height:1.5;color:var(--text-dim)}.st-info-title{font-weight:680;color:var(--text);font-size:.9rem}.st-info-body b{color:var(--text);font-weight:620}.st-budget-row{cursor:text;padding:6px 12px 6px 14px}.st-budget-row .st-row-text{flex:1 1 auto}.st-budget-input{position:relative;display:flex;align-items:center;flex:0 0 auto;width:132px}.st-budget-input input{width:100%;min-height:44px;border:1px solid transparent;background:var(--bg);color:var(--text);border-radius:10px;padding:8px 30px 8px 12px;font-size:1rem;font-weight:600;text-align:right;outline:none;font-variant-numeric:tabular-nums;transition:border-color .2s,box-shadow .2s}.st-budget-input input::placeholder{color:var(--text-muted);font-weight:500;font-size:.85rem}.st-budget-input input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint)}.st-budget-input input:disabled{opacity:.55}.st-budget-row.invalid .st-budget-input input{border-color:var(--red)}.st-budget-unit{position:absolute;right:12px;color:var(--text-muted);font-weight:600;pointer-events:none;font-size:.95rem}@media(max-width:360px){.st-budget-input{width:112px}}.st-setup{gap:14px}.st-endpoint{gap:8px}.st-endpoint-url{display:block;padding:8px 10px;font-size:.85rem;line-height:1.45}.st-copy{align-self:flex-start;min-height:44px;margin-left:-6px}.st-themes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.st-theme-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;background:var(--card);border:2px solid transparent;border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 10px 12px;cursor:pointer;color:var(--text);min-height:44px;transition:border-color .2s var(--ease-ios),transform .2s var(--ease-ios)}.st-theme-card:active{transform:scale(.97)}.st-theme-card.active{border-color:var(--brand)}.st-theme-label{font-size:.92rem;font-weight:650;margin-top:4px}.st-theme-hint{font-size:.74rem;color:var(--text-muted)}.st-theme-check{position:absolute;top:8px;right:8px;width:22px;height:22px;border-radius:50%;background:var(--brand);color:var(--on-brand);display:inline-flex;align-items:center;justify-content:center}.st-preview{width:100%;max-width:88px;aspect-ratio:3 / 4;border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:5px;border:1px solid var(--hairline);overflow:hidden;--pv-bg: #f3f4f8;--pv-card: #ffffff;--pv-text: #141a2e;--pv-line: #d9dde8;background:var(--pv-bg)}.st-preview-dark{--pv-bg: #111321;--pv-card: #1c2036;--pv-text: #eef0f8;--pv-line: #313852}.st-preview-auto{background:linear-gradient(115deg,#f3f4f8 0 50%,#111321 50% 100%)}.st-preview-auto .st-preview-bar,.st-preview-auto .st-preview-line{background:linear-gradient(115deg,#d9dde8 0 50%,#313852 50% 100%)}.st-preview-auto .st-preview-hero{background:linear-gradient(115deg,#fff 0 50%,#1c2036 50% 100%)}.st-preview-bar{height:5px;width:60%;border-radius:3px;background:var(--pv-line)}.st-preview-hero{height:26px;border-radius:6px;background:var(--pv-card);box-shadow:0 1px 2px #0000000f}.st-preview-line{height:5px;border-radius:3px;background:var(--pv-line)}.st-preview-line.short{width:55%}.st-footer{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:6px}.st-logout{width:100%;min-height:50px;background:var(--card);border:none;border-radius:var(--radius);box-shadow:var(--shadow);color:var(--red);font-size:1rem;font-weight:620;cursor:pointer;transition:background .15s var(--ease-ios),transform .2s var(--ease-ios)}.st-logout:active{transform:scale(.98);background:var(--track)}.st-signed-in{font-size:.82rem;color:var(--text-muted)}.st-signed-in b{color:var(--text-dim);font-weight:600}@media(prefers-reduced-motion:reduce){.st-back,.st-row,.st-row-main,.st-icon-btn,.st-add-btn,.st-slot,.st-slot:before,.st-toggle,.st-toggle i,.st-theme-card,.st-logout,.st-collapse svg{transition:none}}:root{--pwa-topbar-h: 52px;--pwa-nav-h: 76px}.pwa-offline{position:fixed;top:calc(env(safe-area-inset-top) + var(--pwa-topbar-h));left:0;right:0;z-index:49;display:flex;align-items:center;justify-content:center;gap:8px;padding:6px 16px;font-size:.78rem;font-weight:550;letter-spacing:.01em;color:var(--text-dim);background:var(--track);border-bottom:1px solid var(--hairline);animation:pwa-drop .3s var(--ease-ios)}.pwa-offline-dot{width:7px;height:7px;border-radius:50%;background:var(--text-muted);animation:pwa-pulse 2.4s ease-in-out infinite}.pwa-bottom{position:fixed;left:0;right:0;bottom:calc(var(--pwa-nav-h) + env(safe-area-inset-bottom));z-index:55;display:flex;justify-content:center;padding:0 14px;pointer-events:none;animation:pwa-rise .35s var(--ease-ios)}.pwa-card{pointer-events:auto;width:100%;max-width:480px;display:flex;align-items:center;gap:12px;padding:12px 12px 12px 16px;border-radius:16px;background:var(--card);color:var(--text);border:1px solid var(--hairline);box-shadow:var(--shadow-hover)}.pwa-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.pwa-text strong{font-size:.92rem;font-weight:700;letter-spacing:-.005em}.pwa-text span{font-size:.78rem;color:var(--text-dim);line-height:1.35}.pwa-btn{flex:0 0 auto;border:none;border-radius:11px;padding:9px 14px;font-size:.85rem;font-weight:650;background:var(--brand);color:var(--on-brand);cursor:pointer;transition:transform .2s var(--ease-ios),filter .2s}.pwa-btn:hover{filter:brightness(1.06)}.pwa-btn:active{transform:scale(.96)}.pwa-icon{flex:0 0 auto;width:36px;height:36px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;background:var(--brand-tint);color:var(--brand)}.pwa-icon svg{width:20px;height:20px}.pwa-close{flex:0 0 auto;width:34px;height:34px;border-radius:10px;border:none;background:transparent;color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s var(--ease-ios),transform .2s var(--ease-ios)}.pwa-close svg{width:16px;height:16px}.pwa-close:hover{background:var(--track)}.pwa-close:active{transform:scale(.92)}@media(min-width:760px){.pwa-bottom{bottom:calc(20px + env(safe-area-inset-bottom))}}@keyframes pwa-drop{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@keyframes pwa-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes pwa-pulse{0%,to{opacity:.45}50%{opacity:1}}@media(prefers-reduced-motion:reduce){.pwa-offline,.pwa-bottom{animation:none}.pwa-offline-dot{animation:none;opacity:1}.pwa-btn,.pwa-close{transition:none}}:root{color-scheme:light;--bg: #f3f4f8;--page-glow: #e8ebf5;--card: #ffffff;--text: #141a2e;--text-dim: #5c657f;--text-muted: #8b93a8;--line: #e3e6ee;--hairline: rgba(20, 26, 46, .08);--track: #e9ecf3;--glass: rgba(255, 255, 255, .88);--brand: #2f4fbf;--brand-tint: rgba(47, 79, 191, .1);--on-brand: #fff;--red: #d63b41;--shadow: 0 1px 2px rgba(20, 26, 46, .05);--shadow-hover: 0 2px 4px rgba(20, 26, 46, .05), 0 10px 26px rgba(20, 26, 46, .08);--radius: 16px;--font: system-ui, -apple-system, "Segoe UI", sans-serif;--ease-ios: cubic-bezier(.32, .72, 0, 1)}:root[data-theme=dark]{color-scheme:dark;--bg: #111321;--page-glow: #1a1e33;--card: #1c2036;--text: #eef0f8;--text-dim: #b4bad0;--text-muted: #8f97b3;--line: #313852;--hairline: rgba(220, 226, 250, .12);--track: #2a3049;--glass: rgba(28, 32, 54, .92);--brand: #8fa6ff;--brand-tint: rgba(143, 166, 255, .14);--on-brand: #0f1633;--red: #ff7b80;--shadow: 0 1px 3px rgba(0, 0, 0, .25);--shadow-hover: 0 3px 18px rgba(0, 0, 0, .35)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;text-size-adjust:100%}a,button,[role=button]{-webkit-tap-highlight-color:transparent}body{font-family:var(--font);background:var(--bg);background-image:linear-gradient(180deg,var(--page-glow) 0%,var(--bg) 280px);background-repeat:no-repeat;color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;touch-action:manipulation}button{font-family:var(--font);color:inherit}input{font-family:var(--font)}.topbar{background:var(--glass);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--hairline);position:sticky;top:0;z-index:50;padding-top:env(safe-area-inset-top)}.topbar-inner{max-width:720px;margin:0 auto;padding:10px 18px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px;font-weight:750;letter-spacing:-.01em;font-size:1.05rem}.brand-logo{width:28px;height:28px;border-radius:9px;background:linear-gradient(140deg,#5d7ded,#2f4fbf 60%,#22399a);display:inline-flex;align-items:center;justify-content:center;box-shadow:0 3px 8px #2f4fbf59}.brand-logo svg{width:18px;height:18px}.topbar-right{display:flex;gap:6px}.ghost-btn{background:transparent;border:1px solid transparent;border-radius:10px;padding:7px 11px;font-size:.85rem;font-weight:600;color:var(--brand);cursor:pointer;transition:background .2s var(--ease-ios),transform .2s var(--ease-ios)}.ghost-btn:hover{background:var(--brand-tint)}.ghost-btn:active{transform:scale(.96)}.page{max-width:720px;margin:0 auto;padding:14px 18px calc(140px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:22px;animation:page-in .28s var(--ease-ios)}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.me-chip{font-size:.82rem;font-weight:600;color:var(--text-dim);background:var(--track);padding:5px 10px;border-radius:999px}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:45;background:var(--glass);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-top:1px solid var(--hairline);padding-bottom:env(safe-area-inset-bottom)}.bottom-nav-inner{max-width:720px;margin:0 auto;display:flex}.bottom-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 0 8px;color:var(--text-muted);text-decoration:none;font-size:.68rem;font-weight:600;letter-spacing:.01em;transition:color .2s,transform .2s var(--ease-ios)}.bottom-tab:active{transform:scale(.94)}.bottom-tab.active{color:var(--brand)}:root{--pwa-nav-h: 64px}.budget{max-width:320px;margin:12px auto 0}.budget-track{height:8px;border-radius:5px;background:var(--track);overflow:hidden}.budget-bar{height:100%;border-radius:5px;background:var(--brand);transition:width .5s var(--ease-ios)}.budget.over .budget-bar{background:var(--red)}.budget-text{font-size:.8rem;color:var(--text-dim);margin-top:6px;font-variant-numeric:tabular-nums}.budget.over .budget-text{color:var(--red)}.cat-btn{width:100%;background:none;border:none;text-align:left;padding:0;cursor:pointer;display:block}.cat-row.dim{opacity:.45}.cat-row.active .cat-name{color:var(--brand)}.cat-track.has-budget{background:var(--track);box-shadow:inset 0 0 0 1px var(--hairline)}.cat-track.over .cat-bar{background:var(--red)!important}.filter-clear{float:right;background:none;border:none;color:var(--brand);font-size:.75rem;font-weight:650;cursor:pointer;text-transform:none;letter-spacing:0;padding:0 2px}.filter-chip{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;background:var(--brand-tint);color:var(--brand);border-radius:999px;padding:4px 6px 4px 12px;font-size:.82rem;font-weight:600}.filter-chip button{background:none;border:none;color:inherit;font-size:1.1rem;line-height:1;cursor:pointer;padding:2px 6px}.search{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:0 10px 0 12px;color:var(--text-muted)}.search:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint)}.search input{flex:1;border:none;background:transparent;color:var(--text);font-size:.95rem;padding:11px 0;outline:none;min-width:0;-webkit-appearance:none;appearance:none}.search input::-webkit-search-cancel-button{display:none}.search-clear{background:var(--track);border:none;border-radius:50%;width:22px;height:22px;line-height:1;color:var(--text-dim);cursor:pointer;font-size:1rem}.note-field{position:relative}.suggestions{list-style:none;position:absolute;left:0;right:0;top:100%;z-index:5;margin-top:4px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-hover);overflow:hidden}.suggestions button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;background:none;border:none;padding:10px 12px;text-align:left;font-size:.9rem;cursor:pointer;color:var(--text)}.suggestions li+li button{border-top:1px solid var(--hairline)}.suggestions button:hover,.suggestions button:active{background:var(--track)}.sug-meta{display:inline-flex;align-items:center;gap:6px;color:var(--text-muted);font-size:.78rem;white-space:nowrap}.chip.archived{opacity:.7;font-style:italic}.expense-row:disabled,.fab:disabled{opacity:.5;cursor:default}.section-title{display:flex;justify-content:space-between;align-items:baseline}.month-nav{display:flex;align-items:center;justify-content:space-between}.month-arrow{width:40px;height:40px;border-radius:12px;border:none;background:var(--card);box-shadow:var(--shadow);font-size:1.45rem;line-height:1;cursor:pointer;color:var(--text);transition:transform .2s var(--ease-ios),opacity .2s}.month-arrow:active{transform:scale(.94)}.month-arrow:disabled{opacity:.3;cursor:default}.month-title{background:none;border:none;font-size:1.1rem;font-weight:700;letter-spacing:-.01em;cursor:pointer;padding:6px 12px;border-radius:10px}.month-title.is-past{color:var(--brand)}.segmented{display:flex;background:var(--track);border-radius:12px;padding:3px;margin-top:-6px}.segment{flex:1;border:none;background:transparent;color:var(--text-dim);border-radius:9px;padding:8px 12px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .25s var(--ease-ios),color .2s,box-shadow .25s}.segment.active{background:var(--card);color:var(--text);box-shadow:var(--shadow)}.segmented.small{margin-top:0;flex:0 0 auto}.segmented.small .segment{padding:6px 14px;font-size:.85rem}.hero-note{font-size:.78rem;color:var(--text-muted);margin-top:6px}.field-hint{font-size:.78rem;color:var(--text-muted)}.payer-track{display:flex;height:8px;border-radius:5px;overflow:hidden;gap:2px;background:var(--track)}.payer-seg{background:var(--text-muted)}.payer-seg.me{background:var(--brand)}.payer-list{list-style:none;display:flex;flex-direction:column;gap:6px;margin-top:10px}.payer-row{display:flex;justify-content:space-between;font-size:.92rem}.payer-name{display:inline-flex;align-items:center;gap:8px;font-weight:550}.payer-dot{width:9px;height:9px;border-radius:50%;background:var(--text-muted)}.payer-row.me .payer-dot{background:var(--brand)}.expense-sub{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.tag{font-size:.68rem;font-weight:650;letter-spacing:.02em;padding:1px 7px;border-radius:6px;background:var(--track);color:var(--text-dim)}.tag-me{background:var(--brand-tint);color:var(--brand)}.payer-chips{gap:6px}.chip.brand{border-color:var(--brand);color:var(--brand);background:var(--brand-tint)}.inbox .section-title{display:flex;align-items:center;gap:8px;color:var(--brand);border-bottom-color:var(--brand-tint)}.badge{background:var(--brand);color:var(--on-brand);border-radius:999px;font-size:.7rem;padding:1px 7px;letter-spacing:0}.inbox-hint{font-size:.82rem;color:var(--text-muted);margin-top:-4px}.inbox-row{background:var(--brand-tint)}.inbox-dot{width:9px;height:9px;border-radius:50%;background:var(--brand);flex:none;box-shadow:0 0 0 3px var(--brand-tint)}.confirm-lead{font-size:.9rem;color:var(--text-dim);line-height:1.45;margin-top:-6px}.setup-link{text-align:center;margin-top:8px}.link-btn{background:none;border:none;color:var(--text-muted);font-size:.82rem;font-weight:550;cursor:pointer;padding:8px 12px;border-radius:8px}.link-btn:hover{color:var(--brand);background:var(--brand-tint)}.setup .setup-lead,.setup .setup-note{font-size:.9rem;color:var(--text-dim);line-height:1.5}.setup-steps{padding-left:20px;display:flex;flex-direction:column;gap:10px;font-size:.92rem;line-height:1.5}.setup-steps ul{padding-left:18px;margin-top:4px;display:flex;flex-direction:column;gap:3px;color:var(--text-dim)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82em;background:var(--track);padding:1px 5px;border-radius:5px;word-break:break-all}.hero{text-align:center;padding:6px 0 2px}.hero-label{font-size:.8rem;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}.hero-number{font-size:clamp(2.4rem,11vw,3.4rem);font-weight:760;letter-spacing:-.03em;line-height:1.1;font-variant-numeric:tabular-nums;margin-top:4px}.hero-meta{display:flex;justify-content:center;align-items:center;gap:10px;color:var(--text-muted);font-size:.85rem;margin-top:6px;font-variant-numeric:tabular-nums}.hero-meta .dot{width:3px;height:3px;border-radius:50%;background:var(--text-muted)}.skeleton .hero-number{background:var(--track);border-radius:12px;width:60%;margin:6px auto 0;height:3rem}.section{display:flex;flex-direction:column;gap:10px}.section-title{font-size:.78rem;font-weight:650;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;padding-bottom:8px;border-bottom:1px solid var(--hairline)}.cat-list{list-style:none;display:flex;flex-direction:column;gap:12px}.cat-head{display:flex;justify-content:space-between;align-items:baseline;font-size:.92rem}.cat-name{display:inline-flex;align-items:center;gap:8px;font-weight:550}.cat-amount{font-variant-numeric:tabular-nums;font-weight:600}.cat-amount small{color:var(--text-muted);font-weight:500;margin-left:8px;font-size:.78rem}.cat-dot{width:9px;height:9px;border-radius:50%;flex:none;display:inline-block}.cat-track{height:6px;background:var(--track);border-radius:4px;margin-top:6px;overflow:hidden}.cat-bar{height:100%;border-radius:4px;transition:width .5s var(--ease-ios)}.day-group{display:flex;flex-direction:column;gap:4px;margin-top:4px}.day-head{display:flex;justify-content:space-between;font-size:.8rem;color:var(--text-muted);font-weight:600;padding:4px 2px;font-variant-numeric:tabular-nums}.expense-list{list-style:none;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.expense-list li+li .expense-row{border-top:1px solid var(--hairline)}.expense-row{width:100%;display:flex;align-items:center;gap:12px;padding:13px 14px;background:none;border:none;text-align:left;cursor:pointer;font-size:.95rem;transition:background .15s var(--ease-ios)}.expense-row:active{background:var(--track)}.expense-row.pending{opacity:.55}.expense-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.expense-title{font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.expense-sub{font-size:.78rem;color:var(--text-muted)}.expense-amount{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.empty{text-align:center;color:var(--text-dim);padding:28px 12px;font-size:.95rem;line-height:1.5}.empty .hint{color:var(--text-muted);font-size:.85rem;margin-top:4px}.fab{position:fixed;right:20px;bottom:calc(var(--pwa-nav-h, 64px) + 16px + env(safe-area-inset-bottom));width:60px;height:60px;border-radius:20px;border:none;background:var(--brand);color:var(--on-brand);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 22px #2f4fbf66;z-index:40;transition:transform .25s var(--ease-ios),filter .2s}.fab:hover{filter:brightness(1.07)}.fab:active{transform:scale(.92)}@media(min-width:760px){.fab{right:calc(50% - 340px)}}.sheet-form{display:flex;flex-direction:column;gap:18px;padding:4px 18px calc(18px + env(safe-area-inset-bottom))}.sheet-head{display:flex;justify-content:space-between;align-items:center}.sheet-head h2{font-size:1.05rem;font-weight:700;letter-spacing:-.01em}.field,.amount-field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:.78rem;font-weight:650;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}.field-label small{text-transform:none;letter-spacing:0;font-weight:500;color:var(--text-muted)}.field input,.amount-input input{width:100%;border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:12px;padding:12px 13px;font-size:1rem;outline:none;transition:border-color .2s,box-shadow .2s}.field input:focus,.amount-input input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint)}.amount-input{position:relative;display:flex;align-items:center}.amount-input input{font-size:2.2rem;font-weight:700;letter-spacing:-.02em;padding:10px 52px 10px 16px;font-variant-numeric:tabular-nums;text-align:right}.amount-input input::placeholder{color:var(--text-muted);font-weight:600}.amount-unit{position:absolute;right:18px;font-size:1.5rem;font-weight:600;color:var(--text-muted);pointer-events:none}.amount-field.invalid input{border-color:var(--red)}.field-error{font-size:.8rem;color:var(--red)}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:999px;padding:8px 13px;font-size:.88rem;font-weight:550;cursor:pointer;transition:transform .2s var(--ease-ios),background .2s,border-color .2s}.chip:active{transform:scale(.95)}.chip.active{font-weight:650}.field-row{display:flex;gap:12px}.field-row .field{flex:0 0 46%;min-width:0}.field-row .field.grow{flex:1 1 auto}.field input[type=date]{min-height:46px;-webkit-appearance:none;appearance:none}.sheet-actions{display:flex;gap:10px;margin-top:4px}.primary-btn{flex:1;background:var(--brand);color:var(--on-brand);border:none;border-radius:14px;padding:15px 18px;font-size:1rem;font-weight:680;cursor:pointer;box-shadow:0 4px 14px #2f4fbf4d;transition:transform .25s var(--ease-ios),filter .2s,opacity .2s}.primary-btn:active{transform:scale(.97)}.primary-btn:disabled{opacity:.45;cursor:default;box-shadow:none}.danger-btn{background:transparent;border:1px solid var(--line);color:var(--red);border-radius:14px;padding:15px 16px;font-size:.95rem;font-weight:620;cursor:pointer;transition:background .2s,transform .25s var(--ease-ios)}.danger-btn.confirm{background:var(--red);color:#fff;border-color:var(--red)}.danger-btn:active{transform:scale(.97)}.toast{position:fixed;left:50%;bottom:calc(var(--pwa-nav-h, 64px) + 90px + env(safe-area-inset-bottom));transform:translate(-50%);background:var(--text);color:var(--bg);padding:10px 16px;border-radius:12px;font-size:.9rem;font-weight:550;box-shadow:var(--shadow-hover);z-index:60;animation:toast-in .3s var(--ease-ios);max-width:calc(100vw - 40px);text-align:center}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}.login-overlay{position:fixed;inset:0;background:var(--bg);background-image:linear-gradient(180deg,var(--page-glow) 0%,var(--bg) 380px);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.login-card{background:var(--card);border:1px solid var(--hairline);border-radius:22px;box-shadow:var(--shadow-hover);padding:40px;text-align:center;max-width:380px}.login-logo{width:56px;height:56px;margin:0 auto 18px}.login-logo .brand-logo{width:56px;height:56px;border-radius:16px;box-shadow:0 6px 18px #2f4fbf66}.login-logo .brand-logo svg{width:34px;height:34px}.login-card h2{font-size:1.25rem;font-weight:750;letter-spacing:-.01em;margin-bottom:8px}.login-card p{font-size:.85rem;color:var(--text-dim);margin-bottom:26px;line-height:1.5}.login-btn{background:var(--brand);color:var(--on-brand);border:none;border-radius:12px;padding:13px 24px;font-size:.95rem;font-weight:650;cursor:pointer;width:100%;box-shadow:0 4px 14px #2f4fbf4d;transition:filter .2s var(--ease-ios),transform .3s var(--ease-ios)}.login-btn:hover{filter:brightness(1.07);transform:translateY(-1px)}.login-btn:active{transform:scale(.97)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
