:root{--bg0:#ffffff;--bg1:#f7f7fb;--text:#0b0b10;--muted:#6b7280;--card: rgba(255,255,255,.72);--border: rgba(15, 23, 42, .1);--shadow: 0 18px 60px rgba(15, 23, 42, .1);--radius: 22px;--accent: #2563eb;--topbar: rgba(244,244,244,.92);--topbarBorder: rgba(15, 23, 42, .1);--topbar-h: 74px;--bottom-bar-h: 84px;--surface: rgba(255,255,255,.72);--surface2: rgba(255,255,255,.6);--sheet: rgba(255,255,255,.88);--modal: rgba(255,255,255,.92);--overlay: rgba(0,0,0,.25);--softText: rgba(15,23,42,.85);--accent-blue: #2563eb;--accent-violet: #7c3aed;--accent-green: #16a34a;--accent-orange: #f97316;--accent-pink: #ec4899;--accent-slate: #0f172a;--accent: var(--accent-blue)}*{box-sizing:border-box}html,body{height:100%;margin:0}html,body{background:#f3f4f6}html.dark,html.dark body{background:#0b1020}html.dark{--bg0:#1a3281;--bg1:#060812;--text:#f8fafc;--muted:#ffffff;--card: rgb(47, 47, 78);--border: rgba(148,163,184,.18);--shadow: 0 18px 60px rgba(0,0,0,.45);--topbar: rgba(2,6,23,.78);--topbarBorder: rgba(148,163,184,.18);--surface: rgba(47,47,78,.8);--surface2: rgba(47,47,78,.62);--sheet: rgba(25,28,48,.92);--modal: rgba(25,28,48,.94);--overlay: rgba(0,0,0,.45);--softText: rgba(255,255,255,.85)}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Segoe UI,Roboto,Arial;color:var(--text);background:transparent}.container{max-width:460px;margin:0 auto;padding:18px;padding-top:calc(18px + var(--topbar-h) + env(safe-area-inset-top));padding-bottom:calc(110px + env(safe-area-inset-bottom))}.header{position:fixed;left:0;right:0;top:0;z-index:35;background:var(--topbar)!important;border-bottom:1px solid var(--topbarBorder);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding-top:env(safe-area-inset-top)}.header:before{content:"";position:fixed;left:0;right:0;top:0;height:env(safe-area-inset-top);background:var(--topbar);z-index:34}.headerInner{max-width:460px;margin:0 auto;padding:12px 18px;height:var(--topbar-h);display:flex;align-items:flex-end}.header+.card{margin-top:14px}.title{font-size:24px;letter-spacing:-.02em;font-weight:800}.subtitle{margin-top:4px;font-size:13px;color:var(--muted)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.row{display:flex;gap:12px;flex-wrap:wrap}.col{flex:1;min-width:180px}.kpi{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:18px;border:1px solid var(--border);background:var(--surface2)}.kpi .label{font-size:12px;color:var(--muted)}.kpi .value{font-size:18px;font-weight:800;letter-spacing:-.02em}.bottom-nav.ios{position:fixed;left:0;right:0;bottom:0;padding:10px 12px calc(10px + env(safe-area-inset-bottom));z-index:60;background:transparent;pointer-events:none}.bottom-nav.ios .iosPill{pointer-events:auto;max-width:460px;margin:0 auto;height:62px;padding:8px;border-radius:22px;position:relative;overflow:hidden;background:color-mix(in oklab,var(--card) 82%,transparent);border:1px solid var(--border);box-shadow:0 18px 60px #0f172a24,0 2px 10px #0f172a0f;display:flex;gap:8px}.bottom-nav.ios .iosPill:before{content:"";position:absolute;inset:0;border-radius:22px;pointer-events:none;background:linear-gradient(to top,color-mix(in oklab,var(--card) 85%,transparent),color-mix(in oklab,var(--card) 55%,transparent));z-index:0}.iosTab{flex:1;border:0;background:transparent;border-radius:18px;height:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:10px 12px;color:#0f172abf;transition:transform .12s ease,background .18s ease,color .18s ease;position:relative;z-index:1}.iosTab .iosIcon{opacity:.85}.iosLabel{color:#0f172ad9}.iosTab.active{color:#0b0b10;background:color-mix(in oklab,var(--accent) 20%,transparent)}.iosTab.active .iosLabel{color:#0b0b10}.iosIconWrap{width:38px;height:38px;border-radius:999px;display:grid;place-items:center}.iosIcon{width:22px;height:22px;stroke-width:2.2}.iosTab.active{color:#0b0b10;background:#2563eb1a}.iosTab.active .iosIconWrap{background:color-mix(in oklab,var(--accent) 26%,transparent);box-shadow:0 10px 26px color-mix(in oklab,var(--accent) 30%,transparent)}.iosLabel{font-weight:800;font-size:13px;letter-spacing:-.02em;white-space:nowrap}.iosTab:active{transform:scale(.98)}.logoutIconBtn{width:40px;height:40px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);display:grid;place-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:background .15s ease,transform .12s ease,box-shadow .15s ease}.logoutIcon{width:18px;height:18px;stroke:currentColor;stroke-width:2.2;fill:none}.logoutIconBtn:active{transform:scale(.95);background:#2563eb1f;box-shadow:0 8px 20px #2563eb40}.chartBox{height:190px;width:100%;position:relative}.chartBox canvas{width:100%!important;height:100%!important}.miniCard{margin-top:10px;padding:14px;border-radius:18px;border:1px solid var(--border);background:var(--surface2);overflow:hidden}.miniTitle{font-weight:800;letter-spacing:-.02em;margin-bottom:10px}.smallMuted{font-size:13px;color:var(--muted);line-height:1.35}.fab{position:fixed;right:18px;bottom:88px;width:56px;height:56px;border-radius:999px;border:none;background:var(--accent);color:#fff;font-size:30px;line-height:0;display:flex;align-items:center;justify-content:center;box-shadow:0 18px 60px #2563eb59}.fabMenu{position:fixed;inset:0;z-index:50;background:var(--overlay);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:flex-end;justify-content:center;padding:14px;padding-bottom:calc(var(--bottom-bar-h) + env(safe-area-inset-bottom))}.fabSheet,.confirmSheet{position:relative;z-index:1}.fabSheet{width:min(460px,100%);border-radius:22px;border:1px solid rgba(255,255,255,.22);background:var(--sheet);box-shadow:0 18px 60px #0f172a2e;padding:14px}.sheetTitle{font-weight:900;letter-spacing:-.02em;margin:6px 6px 10px}.sheetBtn{width:100%;padding:12px;border-radius:16px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-weight:800;margin-bottom:10px}.sheetBtn.secondary{background:transparent;font-weight:800;color:var(--text)}.txList{display:flex;flex-direction:column;gap:12px;margin-top:10px}.txItem{display:flex;justify-content:space-between;gap:12px;padding:12px;border-radius:18px;border:1px solid var(--border);background:var(--surface)}.txTop{display:flex;gap:10px;align-items:center}.txType{font-weight:900;letter-spacing:-.02em;font-size:13px}.txDate{font-size:12px;color:var(--muted)}.txMain{margin-top:6px}.txDesc{font-size:13px;color:color-mix(in oklab,var(--text) 86%,var(--muted))}.txTags{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap}.tag{font-size:12px;padding:5px 9px;border-radius:999px;border:1px solid var(--border);background:#ffffffa6;color:var(--text)}.txRight{display:flex;flex-direction:column;gap:8px;align-items:flex-end}.moneyPlus{font-weight:900;color:#16a34a}.moneyMinus{font-weight:900;color:#dc2626}.moneyNeutral{font-weight:900;color:var(--muted)}.tinyBtn{padding:8px 10px;border-radius:12px;border:1px solid var(--border);background:var(--surface);font-weight:800;color:var(--text)}.tinyBtn.danger{color:#111;border:1px solid rgba(15,23,42,.18);background:var(--surface)}.tinyBtn.danger:active{transform:translateY(1px)}.modalBackdrop{position:fixed;inset:0;background:var(--overlay);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;justify-content:center;padding:14px;z-index:50}.modalBackdrop.modalTop{align-items:flex-start;padding-top:calc(14px + var(--topbar-h) + env(safe-area-inset-top));padding-bottom:calc(98px + env(safe-area-inset-bottom))}.modal{width:min(460px,100%);border-radius:26px;border:1px solid rgba(255,255,255,.22);background:var(--modal);box-shadow:0 18px 60px #0f172a2e;padding:14px}.modalHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 6px 10px}.modalTitle{font-weight:950;letter-spacing:-.02em;font-size:16px}.xBtn{width:40px;height:40px;border-radius:14px;border:1px solid var(--border);background:var(--surface);font-weight:900;color:var(--text)}.formGrid{display:flex;flex-direction:column;gap:10px;padding:6px}.field span{display:block;font-size:12px;color:var(--muted);margin:0 0 6px}.field input,.field select{width:100%;padding:12px;border-radius:16px;border:1px solid var(--border);background:var(--surface2);color:var(--text);outline:none}.modalActions{display:flex;gap:10px;padding:6px}.modalActions .sheetBtn{margin:0}body,html{overscroll-behavior-y:none}input[type=date]{-webkit-appearance:none;appearance:none;width:100%;max-width:100%;box-sizing:border-box;padding-right:12px;overflow:hidden;text-overflow:ellipsis}body.modal-open{overflow:hidden;position:fixed;width:100%}.field input,.field select,.field textarea{font-size:16px!important}.dateWrap{width:100%;overflow:hidden}input[type=date]{-webkit-appearance:none;appearance:none;width:100%;max-width:100%;box-sizing:border-box}.headerRow{display:flex;align-items:center;justify-content:space-between}.headerLeft{display:flex;flex-direction:column}.logoutBtn{background:transparent;border:none;font-size:14px;color:#111827;padding:6px 10px;border-radius:10px}.logoutBtn:active{background:#0000000f}.logoutTop{padding:8px 14px;font-size:14px;height:auto}.logoutTop:active{transform:scale(.97)}.confirmSheet{width:min(520px,calc(100vw - 28px));margin:0 auto 18px;background:var(--sheet);border:1px solid var(--border);border-radius:22px;padding:14px;box-shadow:0 18px 60px #0000002e;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.confirmText{padding:10px 6px 14px}.confirmLine{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:800}.dangerBtn{background:#111;color:#fff;border:1px solid rgba(0,0,0,.2)}.dangerBtn:active{transform:scale(.99);opacity:.96}.kpiStack{display:flex;flex-direction:column;gap:12px}.kpi.full{width:100%}.trendIcon{display:inline-block;width:18px;text-align:center;margin-right:6px;font-weight:900;opacity:.85}.rangeBar{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.rangePills{display:flex;gap:8px}.pill{border:1px solid var(--border);background:var(--surface);color:var(--text);padding:8px 12px;border-radius:999px;font-weight:800}.pill.active{background:color-mix(in oklab,var(--accent) 22%,transparent);border-color:color-mix(in oklab,var(--accent) 45%,var(--border));color:color-mix(in oklab,var(--accent) 90%,var(--text))}.rangeNav{display:flex;align-items:center;justify-content:space-between;gap:10px}.navIcon{width:38px;height:34px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:20px;font-weight:900}.rangeLabel{font-weight:900;opacity:.9}.navIcon:disabled{opacity:.35;cursor:not-allowed}.modalBackdrop{padding-bottom:120px}.modalBackdrop.modalTop{display:flex;align-items:flex-start;justify-content:center;padding-top:90px}.modalBackdrop.modalTop .modal{margin-bottom:auto}.pill{display:inline-flex;align-items:center;gap:6px}.pill:last-child{font-weight:700}.txActions{display:flex;gap:8px;margin-top:6px}.navbtn{flex:1;padding:12px 8px;border-radius:16px;border:1px solid rgba(15,23,42,.1);background:var(--surface);display:flex;align-items:center;justify-content:center}.navbtn svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;opacity:.65}.navbtn.primary{background:var(--accent);border:none;color:#fff}.navbtn.primary svg{opacity:1;stroke:#fff}.bottom-blur{position:fixed;left:0;right:0;bottom:0;height:90px;pointer-events:none;z-index:55;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);-webkit-mask-image:linear-gradient(to top,black 65%,transparent);mask-image:linear-gradient(to top,black 65%,transparent)}.budgetList{display:flex;flex-direction:column;gap:12px}.budgetCard{padding:12px;border-radius:18px;border:1px solid var(--border);background:var(--surface)}.budgetTop{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.budgetTitle{font-weight:900;letter-spacing:-.02em}.budgetBar{margin-top:10px;height:10px;border-radius:999px;overflow:hidden;background:color-mix(in oklab,var(--surface) 65%,transparent);border:1px solid var(--border)}.budgetFill{height:100%;border-radius:999px;background:color-mix(in oklab,var(--accent) 55%,transparent)}.budgetBar.warn .budgetFill{background:#f59e0b99}.budgetBar.over .budgetFill{background:#dc26268c}.budgetFoot{margin-top:8px;font-size:13px}.budgetStatus{display:inline-flex;align-items:center;gap:8px;font-weight:900}.budgetStatusIcon{width:18px;height:18px}.budgetStatus.ok{color:#16a34a}.budgetStatus.warn{color:#f59e0b}.budgetStatus.over{color:#dc2626}.accountList{display:flex;flex-direction:column;gap:10px}.accountCard{display:flex;justify-content:space-between;gap:12px;padding:12px;border-radius:18px;border:1px solid var(--border);background:var(--surface)}.accountLeft{min-width:0}.accountName{font-weight:950;letter-spacing:-.02em;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.accountMeta{margin-top:6px;font-size:12px;color:var(--muted);line-height:1.3}.accountRight{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.accountAmount{font-weight:950;letter-spacing:-.02em;font-size:14px}.accountHandle{width:34px;height:28px;display:grid;place-items:center;border-radius:12px;border:1px solid rgba(15,23,42,.1);background:var(--surface);color:#0f172a73;font-weight:900;-webkit-user-select:none;user-select:none}.catBadge{width:34px;height:34px;border-radius:999px;display:grid;place-items:center;background:var(--surface);border:1px solid var(--border)}.catIcon{width:18px;height:18px;opacity:.9}.accountDetailModal{padding:14px}.accHero{border-radius:22px;border:1px solid var(--border);background:var(--surface2);padding:14px;box-shadow:0 12px 40px #0f172a1a}.accHeroTop{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.accHeroName{font-weight:950;letter-spacing:-.02em;font-size:16px}.accHeroMeta{margin-top:4px;font-size:12px;color:var(--muted)}.accHeroBalance{margin-top:10px;font-size:26px;font-weight:950;letter-spacing:-.02em}.accActionsRow{display:flex;gap:10px;margin-top:10px}.accActionsRow .sheetBtn{margin:0;width:100%}.txAmount{font-weight:900;align-self:flex-start}.modal.accountDetailModal{max-height:calc(100vh - (14px + var(--topbar-h) + env(safe-area-inset-top)) - (14px + var(--bottom-bar-h) + env(safe-area-inset-bottom)));overflow:hidden;display:flex;flex-direction:column}.accountDetailScroll{overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:10px}.txList{max-height:60vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.settingRow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 6px}.settingLabel{font-weight:900;letter-spacing:-.02em}.settingHint{font-size:12px;color:var(--muted);margin-top:2px}.settingSelect{border:1px solid var(--border);background:#ffffffa6;border-radius:14px;padding:10px 12px;font-weight:800;outline:none}.settingLink{width:100%;display:flex;align-items:center;justify-content:space-between;padding:12px 10px;border-radius:16px;border:1px solid var(--border);background:var(--surface);font-weight:900;color:var(--text)}.settingLink:active{transform:scale(.99);opacity:.96}.chev{opacity:.55;font-size:20px}.licenseBox{border:1px solid var(--border);background:var(--surface);padding:12px;border-radius:16px}.versionLine{margin-top:10px;display:flex;align-items:center;justify-content:space-between;padding:10px 4px 0;color:#0f172ad9}.switch{position:relative;width:52px;height:32px;display:inline-block}.switch input{display:none}.slider{position:absolute;inset:0;background:#94a3b873;border-radius:999px;transition:.2s;border:1px solid rgba(15,23,42,.12)}.slider:before{content:"";position:absolute;width:26px;height:26px;left:3px;top:2px;border-radius:999px;background:#fffffff2;box-shadow:0 8px 20px #0000001f;transition:.2s}.switch input:checked+.slider{background:color-mix(in oklab,var(--accent) 65%,white)}.switch input:checked+.slider:before{transform:translate(20px)}html.dark .iosTab{color:#ffffffa6}html.dark .iosTab .iosIcon{stroke:#ffffffa6}html.dark .iosLabel{color:#ffffffbf}html.dark .iosTab.active,html.dark .iosTab.active .iosLabel{color:#fff}html.dark .iosTab.active .iosIcon{stroke:#fff}html.dark .iosTab.active .iosIconWrap{background:color-mix(in oklab,var(--accent) 30%,transparent);box-shadow:0 10px 26px color-mix(in oklab,var(--accent) 35%,transparent)}html.dark .sheetBtn.dangerBtn,html.dark .tinyBtn.danger,html.dark .confirmSheet .dangerBtn{background:#111;color:#fff;border:1px solid rgba(255,255,255,.15)}html.dark .sheetBtn.dangerBtn:active{opacity:.95;transform:scale(.99)}html.dark .confirmSheet{background:var(--sheet);border-color:var(--border)}html.dark .confirmSheet .sheetTitle,html.dark .confirmSheet .confirmText,html.dark .confirmSheet .smallMuted,html.dark .confirmSheet .confirmLine{color:var(--text)}html.dark .logoutIconBtn{background:color-mix(in oklab,var(--surface) 85%,black);border-color:var(--border);color:#fff}html.dark .logoutIconBtn .logoutIcon{stroke:#fff}html.dark .logoutIconBtn:active{background:color-mix(in oklab,var(--accent) 25%,var(--surface));box-shadow:0 8px 24px color-mix(in oklab,var(--accent) 35%,transparent)}html.dark .catIcon{stroke:#fff;color:#fff;opacity:.9}html.dark .settingLink,.settingLabel,.settingHint,.versionLine,.licenseBox,.miniTitle{color:var(--text)}.settingHint,.versionLine{color:var(--softText)}.chev{opacity:.55;font-size:20px;color:var(--text)}.container{background:radial-gradient(900px 500px at 20% -10%,rgba(37,99,235,.16),transparent 60%),linear-gradient(180deg,var(--bg0),var(--bg1));border-radius:28px;box-shadow:0 30px 90px #00000073}.txDayGroup{display:flex;flex-direction:column;gap:10px}.txDayHeader{font-size:12px;font-weight:900;letter-spacing:-.01em;color:var(--muted);padding:4px 6px}html,.txList,.txItem{overflow-anchor:none}.lastTxScroll{max-height:340px;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-right:2px}
