:root{color-scheme:light;--color-bg-primary: #eef3f6;--color-bg-secondary: rgba(255, 255, 255, .72);--color-bg-tertiary: rgba(247, 250, 252, .68);--color-bg-inverse: #101416;--color-text-primary: #111719;--color-text-secondary: #68757a;--color-text-tertiary: #98a3a7;--color-text-inverse: #f9fbfb;--color-text-link: #087bff;--color-border-primary: rgba(255, 255, 255, .92);--color-border-secondary: rgba(73, 91, 98, .12);--color-border-focus: #1987ff;--color-accent-primary: #101416;--color-accent-primary-hover: #263033;--color-accent-primary-active: #000;--color-accent-secondary: #0d86ff;--color-income: #079a78;--color-income-soft: rgba(7, 154, 120, .12);--color-expense: #ff614c;--color-expense-soft: rgba(255, 97, 76, .12);--color-budget: #e49b1a;--color-budget-soft: rgba(228, 155, 26, .13);--color-status-success: #079a78;--color-status-warning: #d88b00;--color-status-error: #dc3d39;--color-status-info: #0d86ff;--color-surface-overlay: rgba(36, 47, 52, .32);--color-tooltip-bg: #ffffff;--ambient-blue: rgba(93, 207, 255, .17);--ambient-purple: rgba(223, 157, 255, .13);--ambient-coral: rgba(255, 122, 83, .2);--space-0: 0;--space-1: 2px;--space-2: 4px;--space-3: 6px;--space-4: 8px;--space-5: 12px;--space-6: 16px;--space-7: 24px;--space-8: 32px;--space-9: 48px;--space-10: 64px;--space-11: 96px;--space-12: 128px;--font-family-display: "Aptos Display", "PingFang SC", "Microsoft YaHei UI", system-ui, sans-serif;--font-family-body: "Aptos", "PingFang SC", "Microsoft YaHei UI", system-ui, sans-serif;--font-family-mono: "Cascadia Code", "SFMono-Regular", Consolas, monospace;--font-size-xs: .72rem;--font-size-sm: .82rem;--font-size-base: .94rem;--font-size-md: 1.04rem;--font-size-lg: 1.2rem;--font-size-xl: 1.45rem;--font-size-2xl: 1.85rem;--font-size-3xl: clamp(2.15rem, 5vw, 3.4rem);--font-size-4xl: clamp(3rem, 7vw, 5.6rem);--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 620;--font-weight-bold: 740;--line-height-tight: 1.12;--line-height-normal: 1.5;--line-height-relaxed: 1.7;--letter-spacing-tight: -.045em;--letter-spacing-normal: 0;--letter-spacing-wide: .1em;--max-width-content: 760px;--max-width-wide: 1120px;--max-width-page: 1440px;--border-radius-sm: 10px;--border-radius-md: 16px;--border-radius-lg: 28px;--border-radius-xl: 38px;--border-radius-full: 999px;--shadow-sm: 0 4px 12px rgba(63, 79, 86, .08), inset 0 1px 0 rgba(255,255,255,.8);--shadow-md: 0 18px 44px rgba(69, 88, 97, .11), inset 0 1px 0 rgba(255,255,255,.95);--shadow-lg: 0 32px 80px rgba(70, 87, 94, .15), inset 0 1px 0 rgba(255,255,255,.98);--shadow-focus: 0 0 0 4px rgba(13, 134, 255, .18);--shadow-glow: 0 12px 32px rgba(255, 97, 76, .32), 0 4px 12px rgba(255, 97, 76, .22), inset 0 1px 0 rgba(255,255,255,.7);--duration-instant: 50ms;--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .4s;--duration-slower: .6s;--easing-default: cubic-bezier(.4, 0, .2, 1);--easing-out: cubic-bezier(0, 0, .2, 1);--easing-bounce: cubic-bezier(.34, 1.56, .64, 1)}[data-theme=dark]{color-scheme:dark;--color-bg-primary: #13191c;--color-bg-secondary: rgba(31, 39, 43, .82);--color-bg-tertiary: rgba(44, 53, 57, .68);--color-bg-inverse: #f5f8f8;--color-text-primary: #eef4f3;--color-text-secondary: #a9b5b8;--color-text-tertiary: #77858a;--color-text-inverse: #142023;--color-border-primary: rgba(255, 255, 255, .13);--color-border-secondary: rgba(255, 255, 255, .08);--color-accent-primary: #f5f8f8;--color-accent-primary-hover: #dce4e5;--color-accent-primary-active: #fff;--color-accent-secondary: #55aaff;--color-income: #47d1ad;--color-income-soft: rgba(71, 209, 173, .12);--color-expense: #ff806e;--color-expense-soft: rgba(255, 128, 110, .13);--color-budget: #ffc356;--color-budget-soft: rgba(255, 195, 86, .13);--color-surface-overlay: rgba(0, 0, 0, .62);--color-tooltip-bg: #20282c;--ambient-blue: rgba(53, 167, 218, .12);--ambient-purple: rgba(166, 88, 210, .1);--ambient-coral: rgba(255, 93, 66, .12);--shadow-sm: 0 5px 16px rgba(0, 0, 0, .22), inset 0 1px 0 rgba(255,255,255,.06);--shadow-md: 0 20px 48px rgba(0, 0, 0, .29), inset 0 1px 0 rgba(255,255,255,.07);--shadow-lg: 0 34px 90px rgba(0, 0, 0, .42), inset 0 1px 0 rgba(255,255,255,.08)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--color-bg-primary: #13191c;--color-bg-secondary: rgba(31, 39, 43, .82);--color-bg-tertiary: rgba(44, 53, 57, .68);--color-text-primary: #eef4f3;--color-text-secondary: #a9b5b8;--color-text-tertiary: #77858a;--color-border-primary: rgba(255,255,255,.13);--color-border-secondary: rgba(255,255,255,.08);--color-tooltip-bg: #20282c}}*{box-sizing:border-box}html{background:#dde5e9;min-height:100%;overscroll-behavior:none}body{margin:0;min-width:0;min-height:100vh;overflow-x:hidden;font-family:var(--font-family-body);color:var(--color-text-primary);background:#dde5e9;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{color:inherit}button,[role=button]{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible{outline:none;box-shadow:var(--shadow-focus)}button:disabled{opacity:.46;cursor:not-allowed}h1,h2,h3,p{margin:0}.app-shell{position:relative;width:min(100%,520px);min-height:100dvh;margin:0 auto;overflow:hidden;background:radial-gradient(circle at 10% 8%,var(--ambient-blue),transparent 27%),radial-gradient(circle at 90% 1%,var(--ambient-purple),transparent 25%),linear-gradient(165deg,var(--color-bg-primary),color-mix(in srgb,var(--color-bg-primary) 86%,white))}.app-shell:before{content:"";position:fixed;z-index:0;inset:0;width:min(100%,520px);margin:auto;pointer-events:none;opacity:.32;background-image:radial-gradient(rgba(255,255,255,.9) .6px,transparent .6px);background-size:17px 17px;-webkit-mask-image:linear-gradient(to bottom,black,transparent 35%);mask-image:linear-gradient(to bottom,black,transparent 35%)}.app-shell main{position:relative;z-index:1}.ambient{position:fixed;z-index:0;width:220px;height:220px;border-radius:50%;filter:blur(70px);pointer-events:none;opacity:.65}.ambient-one{left:calc(50% - 300px);top:32%;background:var(--ambient-blue)}.ambient-two{right:calc(50% - 300px);top:4%;background:var(--ambient-purple)}.page{width:100%;min-height:100dvh;padding:calc(env(safe-area-inset-top) + 24px) 18px calc(118px + env(safe-area-inset-bottom));animation:page-in var(--duration-slow) var(--easing-out)}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.glass-card{position:relative;border:1px solid var(--color-border-primary);border-radius:var(--border-radius-lg);background:var(--color-bg-secondary);box-shadow:var(--shadow-md);backdrop-filter:blur(24px) saturate(1.12);-webkit-backdrop-filter:blur(24px) saturate(1.12)}.glass-card:after{content:"";position:absolute;pointer-events:none;inset:5px;border-radius:calc(var(--border-radius-lg) - 5px);border:1px solid var(--color-border-secondary);opacity:.42}.section-block{width:100%;margin-top:30px}.section-block>.glass-card,.balance-hero,.quick-pair{width:100%}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:0 5px 12px}.section-heading h2{font:var(--font-weight-semibold) var(--font-size-lg)/1.2 var(--font-family-display);letter-spacing:-.02em}.section-heading p{margin-top:3px;color:var(--color-text-secondary);font-size:var(--font-size-xs)}.section-heading button{position:relative;z-index:2}.text-action{border:0;background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-sm);display:flex;align-items:center;padding:5px}.welcome-header,.page-title{display:flex;align-items:center;justify-content:space-between;min-height:62px;margin:0 4px 16px}.welcome-header span,.page-title span,.settings-brand span{color:var(--color-text-secondary);font-size:var(--font-size-xs);letter-spacing:.02em}.welcome-header h1{margin-top:3px;font:var(--font-weight-semibold) var(--font-size-xl)/1.18 var(--font-family-display);letter-spacing:-.04em}.page-title h1{font:var(--font-weight-bold) var(--font-size-3xl)/1 var(--font-family-display);letter-spacing:var(--letter-spacing-tight)}.avatar-button,.header-icon{position:relative;width:48px;height:48px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--color-border-primary);background:var(--color-bg-secondary);box-shadow:var(--shadow-sm)}.month-switcher{width:fit-content;margin:0 auto 16px;padding:4px;border:1px solid var(--color-border-primary);border-radius:var(--border-radius-full);background:color-mix(in srgb,var(--color-bg-secondary) 88%,transparent);box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:8px}.month-switcher span{min-width:112px;text-align:center;font-weight:var(--font-weight-medium);font-size:var(--font-size-sm)}.icon-button{border:1px solid var(--color-border-primary);background:var(--color-bg-tertiary);width:40px;height:40px;display:grid;place-items:center;border-radius:50%;box-shadow:var(--shadow-sm);transition:transform var(--duration-fast)}.icon-button:active{transform:scale(.93)}.icon-button.subtle{width:30px;height:30px;box-shadow:none;border-color:transparent}.icon-button.active{color:#fff;background:var(--color-accent-primary)}.balance-hero{overflow:hidden;padding:25px 22px 20px;border-radius:var(--border-radius-xl);background:linear-gradient(150deg,#ffffffe0,#f0f9fba1 55%,#e1f3f9b3)}[data-theme=dark] .balance-hero{background:linear-gradient(150deg,#2a3438e6,#1b262adb)}.balance-hero:before{content:"";position:absolute;width:180px;height:180px;right:-60px;top:-76px;background:var(--ambient-blue);filter:blur(26px);border-radius:50%}.hero-topline{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.hero-topline em{font-style:normal;padding:5px 9px;border-radius:var(--border-radius-full);background:#ffffff8a;color:var(--color-income);font-size:var(--font-size-xs)}.hero-amount{position:relative;z-index:1;display:block;margin:8px 0 22px;font:var(--font-weight-semibold) var(--font-size-3xl)/1.05 var(--font-family-mono);letter-spacing:-.08em;font-variant-numeric:tabular-nums}.hero-amount.negative{color:var(--color-expense)}.hero-metrics{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);padding-bottom:20px;border-bottom:1px solid var(--color-border-secondary)}.hero-metrics div{min-width:0;padding:0 12px;border-right:1px solid var(--color-border-secondary)}.hero-metrics div:first-child{padding-left:0}.hero-metrics div:last-child{padding-right:0;border:0}.hero-metrics span{display:block;color:var(--color-text-secondary);font-size:var(--font-size-xs)}.hero-metrics strong{display:block;overflow:hidden;text-overflow:ellipsis;margin-top:4px;font-family:var(--font-family-mono);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;white-space:nowrap}.income{color:var(--color-income)}.expense{color:var(--color-expense)}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{appearance:textfield;-moz-appearance:textfield}.money-flow-ruler{position:relative;z-index:1;padding-top:18px}.ruler-labels,.ruler-days{display:flex;align-items:center;justify-content:space-between}.ruler-labels span{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.ruler-labels small,.ruler-days{color:var(--color-text-tertiary);font-size:.65rem}.ruler-readout{min-height:25px;margin-top:8px;padding:4px 9px;border-radius:var(--border-radius-full);display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--color-text-secondary);background:var(--color-expense-soft);font-size:.64rem}.ruler-readout.is-empty{justify-content:center;color:var(--color-text-tertiary);background:transparent}.ruler-readout strong{color:var(--color-expense);font-family:var(--font-family-mono);font-size:.68rem}.ruler-bars{height:54px;margin:5px 0;display:flex;align-items:flex-end;gap:3px}.ruler-bars button{flex:1;min-width:2px;max-width:none;padding:0;border:0;border-radius:var(--border-radius-full);background:linear-gradient(to top,#ff6850,#ffb29d);transition:height var(--duration-normal) var(--easing-out),box-shadow var(--duration-fast),transform var(--duration-fast);touch-action:manipulation}.ruler-bars button.today{background:linear-gradient(to top,var(--color-expense),#ffb29d);box-shadow:0 0 0 3px var(--color-expense-soft),0 4px 12px #ff614c33}.ruler-bars button.selected{box-shadow:0 0 0 3px color-mix(in srgb,var(--color-expense) 28%,transparent),0 5px 13px #ff614c40;transform:translateY(-2px)}.quick-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:13px}.monthly-backup-strip{position:relative;width:100%;min-height:62px;margin-top:13px;padding:10px 13px;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid color-mix(in srgb,var(--color-budget) 26%,var(--color-border-primary));border-radius:21px;background:color-mix(in srgb,var(--color-budget-soft) 58%,var(--color-bg-secondary));box-shadow:var(--shadow-sm);text-align:left}.monthly-backup-strip>span{width:38px;height:38px;display:grid;place-items:center;border-radius:13px;color:var(--color-budget);background:color-mix(in srgb,var(--color-budget-soft) 78%,white)}.monthly-backup-strip strong,.monthly-backup-strip small{display:block}.monthly-backup-strip strong{font-size:var(--font-size-sm)}.monthly-backup-strip small{margin-top:3px;color:var(--color-text-secondary);font-size:.66rem}.monthly-backup-strip em{display:flex;align-items:center;gap:2px;color:var(--color-status-warning);font-size:var(--font-size-xs);font-style:normal;white-space:nowrap}.compact-stat{min-width:0;padding:17px;cursor:pointer}.compact-stat:after{inset:3px}.compact-icon{width:34px;height:34px;margin-bottom:15px;border-radius:12px;display:grid;place-items:center}.compact-icon.budget{color:var(--color-budget);background:var(--color-budget-soft)}.compact-icon.asset{color:var(--color-status-info);background:#0d86ff1a}.compact-stat>span{display:block;color:var(--color-text-secondary);font-size:var(--font-size-xs)}.compact-stat>strong{display:block;overflow:hidden;margin:4px 0 9px;font:var(--font-weight-semibold) var(--font-size-md)/1.15 var(--font-family-mono);text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.04em}.compact-stat>small{color:var(--color-text-tertiary);font-size:.66rem}.progress-track{height:6px;overflow:hidden;border-radius:var(--border-radius-full);background:var(--color-border-secondary)}.progress-track i{display:block;height:100%;min-width:2px;border-radius:inherit;background:var(--color-budget)}.progress-track.income i{background:var(--color-income)}.progress-track.expense i{background:var(--color-expense)}.progress-track.blue i{background:var(--color-status-info)}.reminders-card,.transaction-list-card,.settings-list{overflow:hidden;padding:5px 13px}.reminder-item{position:relative;z-index:1;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:13px 0;border-bottom:1px solid var(--color-border-secondary)}.reminder-item:last-child{border-bottom:0}.reminder-bell{width:38px;height:38px;border-radius:13px;color:var(--color-budget);background:var(--color-budget-soft);display:grid;place-items:center}.reminder-item div>strong,.reminder-item div>small{display:block}.reminder-item div>strong{font-size:var(--font-size-sm)}.reminder-item div>small{margin-top:3px;color:var(--color-text-secondary);font-size:.68rem}.reminder-actions{display:flex;gap:5px}.reminder-actions button{border:0;padding:7px 9px;border-radius:var(--border-radius-full);background:var(--color-bg-tertiary);color:var(--color-text-secondary);font-size:.68rem}.reminder-actions .confirm{color:#fff;background:var(--color-accent-primary)}.horizontal-cards{width:100%;display:flex;gap:12px;overflow-x:auto;padding:1px 1px 16px;margin-bottom:-16px;scrollbar-width:none;scroll-snap-type:x mandatory}.horizontal-cards::-webkit-scrollbar{display:none}.horizontal-cards.single-card{overflow:visible;padding-inline:0;scroll-snap-type:none}.credit-card-panel{flex:0 0 87%;scroll-snap-align:start;padding:19px;overflow:hidden}.horizontal-cards.single-card .credit-card-panel{flex-basis:100%}.credit-card-panel:before{content:"";position:absolute;inset:auto -36px -80px auto;width:160px;height:160px;border-radius:50%;background:var(--ambient-coral);filter:blur(30px)}.credit-card-head{position:relative;z-index:1;display:flex;align-items:center;gap:11px}.credit-card-head>span{width:40px;height:40px;border-radius:13px;color:#fff;display:grid;place-items:center}.credit-card-head strong,.credit-card-head small{display:block}.credit-card-head strong{font-size:var(--font-size-sm)}.credit-card-head small{margin-top:3px;color:var(--color-text-secondary);font-size:.68rem}.credit-due{position:relative;z-index:1;margin:22px 0 14px}.credit-due span{display:block;color:var(--color-text-secondary);font-size:var(--font-size-xs)}.credit-due strong{display:block;margin-top:4px;font:var(--font-weight-semibold) var(--font-size-xl)/1 var(--font-family-mono);letter-spacing:-.05em}.credit-meta{position:relative;z-index:1;display:flex;justify-content:space-between;color:var(--color-text-secondary);font-size:.68rem}.outline-pill{position:relative;z-index:1;width:100%;margin-top:18px;height:40px;border:1px solid var(--color-border-primary);border-radius:var(--border-radius-full);background:#ffffff5c;font-weight:var(--font-weight-medium)}.budget-overview{padding:20px}.total-budget-line{position:relative;z-index:1;padding-bottom:17px;border-bottom:1px solid var(--color-border-secondary)}.total-budget-line>div:first-child{display:flex;justify-content:space-between;margin-bottom:8px;font-size:var(--font-size-sm)}.total-budget-line>div strong{font-family:var(--font-family-mono)}.total-budget-line>small{display:block;margin-top:7px;color:var(--color-text-secondary);font-size:.68rem}.category-budget-row{position:relative;z-index:1;display:grid;grid-template-columns:9px minmax(0,1fr) 34px;align-items:center;gap:10px;padding-top:15px}.category-dot{width:8px;height:8px;border-radius:50%}.category-budget-row>div>span{display:block;margin-bottom:6px;font-size:var(--font-size-xs)}.category-budget-row>strong{text-align:right;font-family:var(--font-family-mono);font-size:var(--font-size-xs)}.blank-action{position:relative;z-index:1;width:100%;min-height:58px;border:1px dashed var(--color-border-secondary);border-radius:var(--border-radius-md);color:var(--color-text-secondary);background:transparent;display:flex;align-items:center;justify-content:center;gap:7px}.transaction-row{position:relative;z-index:1;width:100%;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:11px;padding:13px 0;border:0;border-bottom:1px solid var(--color-border-secondary);background:transparent;text-align:left}.transaction-row:last-child{border-bottom:0}.transaction-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:15px;background:var(--color-bg-tertiary)}.transaction-icon.income{color:var(--color-income);background:var(--color-income-soft)}.transaction-icon.transfer{color:var(--color-status-info);background:#0d86ff1a}.transaction-main{min-width:0}.transaction-main>strong{display:block;overflow:hidden;font-size:var(--font-size-sm);text-overflow:ellipsis;white-space:nowrap}.transaction-main>small{display:block;overflow:hidden;margin-top:3px;color:var(--color-text-secondary);font-size:.66rem;text-overflow:ellipsis;white-space:nowrap}.inline-tags{display:flex;gap:4px;margin-top:5px}.inline-tags i{padding:2px 5px;border-radius:var(--border-radius-full);font-size:.6rem;font-style:normal}.transaction-amount{font:var(--font-weight-semibold) var(--font-size-sm)/1 var(--font-family-mono);letter-spacing:-.04em;white-space:nowrap}.transaction-amount.transfer{color:var(--color-text-secondary)}.bottom-nav{position:fixed;z-index:20;left:50%;bottom:max(10px,env(safe-area-inset-bottom));transform:translate(-50%);width:min(calc(100% - 24px),496px);height:76px;display:grid;grid-template-columns:repeat(5,1fr);align-items:center;padding:6px 7px;border:1px solid var(--color-border-primary);border-radius:27px;background:color-mix(in srgb,var(--color-bg-secondary) 93%,transparent);box-shadow:var(--shadow-lg);backdrop-filter:blur(28px) saturate(1.2);-webkit-backdrop-filter:blur(28px) saturate(1.2)}.bottom-nav:after{content:"";position:absolute;inset:4px;border:1px solid var(--color-border-secondary);border-radius:23px;pointer-events:none}.bottom-nav button{position:relative;z-index:1;height:59px;min-width:0;border:0;background:transparent;color:var(--color-text-tertiary);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.bottom-nav button span{font-size:.61rem}.bottom-nav button.active{color:var(--color-text-primary)}.bottom-nav button.active svg{stroke-width:2.6}.bottom-nav .nav-add{width:68px;height:68px;justify-self:center;margin-top:-26px;color:#fff;border-radius:50%;background:linear-gradient(145deg,#ff9c7b,#ff573e 58%,#ee3f29);box-shadow:var(--shadow-glow);border:1px solid rgba(255,255,255,.76);transition:transform var(--duration-fast) var(--easing-bounce)}.bottom-nav .nav-add:active{transform:scale(.91)}.search-field{display:flex;align-items:center;gap:9px;height:48px;padding:0 15px;border:1px solid var(--color-border-primary);border-radius:var(--border-radius-full);background:var(--color-bg-secondary);box-shadow:var(--shadow-sm);color:var(--color-text-tertiary)}.search-field input{width:100%;border:0;outline:0;color:var(--color-text-primary);background:transparent}.kind-filter{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:12px 0;padding:4px;border-radius:var(--border-radius-full);background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);box-shadow:var(--shadow-sm)}.kind-filter button{border:0;height:34px;border-radius:var(--border-radius-full);background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-xs)}.kind-filter button.active{color:var(--color-text-inverse);background:var(--color-accent-primary)}.kind-filter button.active.expense{background:var(--color-expense)}.kind-filter button.active.income{background:var(--color-income)}.filter-panel{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:17px;margin-bottom:15px}.filter-panel>*{position:relative;z-index:1}.filter-panel label span,.filter-tags>span{display:block;margin:0 2px 5px;color:var(--color-text-secondary);font-size:.66rem}.filter-panel select{width:100%;height:40px;padding:0 10px;border:1px solid var(--color-border-secondary);border-radius:12px;background:var(--color-bg-tertiary);color:var(--color-text-primary)}.filter-tags{grid-column:1 / -1}.filter-tags div{display:flex;flex-wrap:wrap;gap:6px}.filter-tags button,.tag-choice-list button{border:1px solid color-mix(in srgb,var(--tag) 26%,transparent);border-radius:var(--border-radius-full);padding:6px 9px;color:var(--tag);background:color-mix(in srgb,var(--tag) 7%,transparent);font-size:var(--font-size-xs)}.filter-tags button.active,.tag-choice-list button.active{color:#fff;background:var(--tag)}.reset-filters{grid-column:1 / -1;border:0;background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-xs);display:flex;align-items:center;justify-content:center;gap:5px}.results-count{margin:18px 6px 9px;color:var(--color-text-secondary);font-size:var(--font-size-xs)}.empty-state{padding:70px 20px;text-align:center;color:var(--color-text-secondary)}.empty-icon{width:54px;height:54px;margin:0 auto 13px;display:grid;place-items:center;border:1px solid var(--color-border-primary);border-radius:18px;background:var(--color-bg-secondary);box-shadow:var(--shadow-sm)}.empty-state h3{color:var(--color-text-primary);font-size:var(--font-size-md)}.empty-state p{max-width:260px;margin:7px auto 0;font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.stats-page .first{margin-top:16px}.category-chart-card,.trend-chart-card,.tag-stats-card{padding:18px}.donut-wrap{position:relative;overflow:hidden}.donut-wrap .recharts-wrapper{position:relative;z-index:2}.donut-wrap .recharts-tooltip-wrapper{z-index:8!important}.donut-wrap .recharts-default-tooltip{opacity:1!important;color:var(--color-text-primary)!important;background:var(--color-tooltip-bg)!important}.donut-center{position:absolute;z-index:1;inset:50% auto auto 50%;width:112px;min-height:92px;overflow:hidden;padding:9px;transform:translate(-50%,-50%);border:0;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:transparent}.donut-center span{max-width:88px;overflow:hidden;color:var(--color-text-secondary);font-size:.68rem;text-overflow:ellipsis;white-space:nowrap}.donut-center strong{max-width:102px;overflow:hidden;margin-top:5px;font:var(--font-weight-semibold) var(--font-size-md)/1 var(--font-family-mono);text-overflow:ellipsis;white-space:nowrap}.donut-center small{margin-top:6px;color:var(--color-text-tertiary);font-size:.56rem}.category-ranking{position:relative;z-index:1}.category-ranking>div{display:flex;justify-content:space-between;align-items:center;padding:10px 2px;border-top:1px solid var(--color-border-secondary);font-size:var(--font-size-sm)}.category-ranking span{display:flex;align-items:center;gap:8px}.category-ranking i{width:8px;height:8px;border-radius:50%}.category-ranking strong{font-family:var(--font-family-mono)}.category-ranking small{margin-left:7px;color:var(--color-text-tertiary);font-size:.64rem}.chart-legend{position:relative;z-index:2;display:flex;justify-content:flex-end;gap:12px;font-size:.68rem;color:var(--color-text-secondary)}.chart-legend span{display:flex;align-items:center;gap:5px}.chart-legend i{width:8px;height:8px;border-radius:3px;background:currentColor}.recharts-wrapper,.recharts-wrapper *{outline:none!important;-webkit-tap-highlight-color:transparent}.chart-empty{min-height:185px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.chart-empty.compact{min-height:80px}.tag-stats-card>div{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:11px 2px;border-bottom:1px solid var(--color-border-secondary)}.tag-stats-card>div:last-child{border-bottom:0}.tag-stats-card span{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border-radius:var(--border-radius-full);font-size:var(--font-size-xs)}.tag-stats-card strong{font-family:var(--font-family-mono);font-size:var(--font-size-sm)}.settings-brand{display:flex;align-items:center;gap:15px;margin:4px 4px 20px}.settings-brand img{width:72px;height:72px;filter:drop-shadow(0 12px 16px rgba(50,70,80,.14))}.settings-brand h1{margin-top:1px;font:var(--font-weight-bold) var(--font-size-2xl)/1 var(--font-family-display);letter-spacing:-.04em}.settings-brand span{font-size:.58rem;letter-spacing:.14em}.install-card{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:11px;padding:17px}.install-card.is-actionable{cursor:pointer}.install-card>*{position:relative;z-index:1}.install-icon{width:48px;height:48px;border-radius:16px;color:var(--color-status-info);background:#0d86ff1c;display:grid;place-items:center}.install-card strong{font-size:var(--font-size-sm)}.install-card p{margin-top:3px;color:var(--color-text-secondary);font-size:.67rem;line-height:1.4}.install-card button{border:0;padding:8px 12px;border-radius:var(--border-radius-full);color:#fff;background:var(--color-status-info);font-size:var(--font-size-xs)}.install-guide{display:flex;flex-direction:column;gap:11px}.install-guide>div{display:grid;grid-template-columns:28px 38px minmax(0,1fr);align-items:center;gap:9px;min-height:68px;padding:11px;border:1px solid var(--color-border-primary);border-radius:18px;background:var(--color-bg-secondary);box-shadow:var(--shadow-sm)}.install-guide>div>span{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--color-status-info);font-size:.68rem;font-weight:var(--font-weight-semibold)}.install-guide>div>svg{color:var(--color-status-info)}.install-guide p strong,.install-guide p small{display:block}.install-guide p strong{font-size:var(--font-size-sm)}.install-guide p small{margin-top:4px;color:var(--color-text-secondary);font-size:.68rem;line-height:1.4}.install-guide .button{width:100%;margin-top:5px}.settings-section{margin-top:28px}.round-add{width:31px;height:31px;display:grid;place-items:center;border:1px solid var(--color-border-primary);border-radius:50%;background:var(--color-bg-secondary);box-shadow:var(--shadow-sm)}.settings-list button{position:relative;z-index:1;width:100%;min-height:59px;display:grid;grid-template-columns:39px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 0;border:0;border-bottom:1px solid var(--color-border-secondary);background:transparent;text-align:left}.settings-list button:last-of-type{border-bottom:0}.setting-leading{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;background:var(--color-bg-tertiary)}.settings-list strong,.settings-list small{display:block}.settings-list strong{font-size:var(--font-size-sm)}.settings-list small{margin-top:3px;color:var(--color-text-secondary);font-size:.66rem}.setting-leading.reminder{color:var(--color-budget);background:var(--color-budget-soft)}.setting-leading.backup{color:var(--color-income);background:var(--color-income-soft)}.setting-leading.restore{color:var(--color-status-info);background:#0d86ff1a}.setting-leading.csv{color:#9b66dd;background:#9b66dd1c}.danger-settings{border-color:color-mix(in srgb,var(--color-status-error) 15%,var(--color-border-primary))}.danger-settings button{color:var(--color-status-error)}.danger-settings button:disabled{opacity:.42}.danger-settings small{color:var(--color-text-secondary)}.setting-leading.clear-month,.setting-leading.clear-all{color:var(--color-status-error);background:var(--color-expense-soft)}.ledger-cleanup-section{margin-top:30px}.ledger-cleanup-note{margin:8px 7px 0;color:var(--color-text-secondary);font-size:.68rem;line-height:1.45}.clear-confirmation{display:flex;flex-direction:column;align-items:center;text-align:center}.clear-confirmation-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:19px;color:var(--color-status-error);background:var(--color-expense-soft);box-shadow:var(--shadow-sm)}.clear-confirmation>strong{margin-top:15px;font-size:var(--font-size-md)}.clear-confirmation>p{max-width:310px;margin-top:7px;color:var(--color-text-secondary);font-size:var(--font-size-xs);line-height:var(--line-height-normal)}.confirmation-actions{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:21px}.button.danger.confirm-delete{color:#fff;background:var(--color-status-error);box-shadow:0 10px 25px color-mix(in srgb,var(--color-status-error) 24%,transparent)}.button:disabled{cursor:not-allowed;opacity:.48}.tap-shield{position:fixed;z-index:55;inset:0;background:transparent;touch-action:none}.chip-manager{padding:16px}.chip-manager>div{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:8px}.chip-manager button{display:flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid color-mix(in srgb,var(--chip) 22%,transparent);border-radius:var(--border-radius-full);color:var(--color-text-primary);background:color-mix(in srgb,var(--chip) 8%,transparent);font-size:var(--font-size-xs)}.chip-manager button i{width:7px;height:7px;border-radius:50%;background:var(--chip)}.theme-switcher{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:4px;border:1px solid var(--color-border-primary);border-radius:var(--border-radius-full);background:var(--color-bg-secondary);box-shadow:var(--shadow-sm)}.theme-switcher button{height:39px;border:0;border-radius:var(--border-radius-full);background:transparent;color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;gap:5px;font-size:var(--font-size-xs)}.theme-switcher button.active{color:var(--color-text-inverse);background:var(--color-accent-primary)}.backup-warning{display:flex;gap:6px;margin:12px 7px 0;color:var(--color-status-warning);font-size:.68rem;line-height:1.4}.reset-ledger{display:flex;align-items:center;gap:6px;margin:30px auto 0;padding:9px 14px;border:0;border-radius:var(--border-radius-full);color:var(--color-text-secondary);background:transparent;font-size:var(--font-size-xs)}.app-footer{padding:28px 0 8px;color:var(--color-text-tertiary);text-align:center;font-size:.64rem}.sheet-backdrop{position:fixed;z-index:50;inset:0;display:flex;align-items:flex-end;justify-content:center;padding-top:30px;background:var(--color-surface-overlay);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:backdrop-in var(--duration-normal)}.sheet-backdrop.centered{z-index:100;align-items:center;padding:max(18px,env(safe-area-inset-top)) 14px max(18px,env(safe-area-inset-bottom))}@keyframes backdrop-in{0%{opacity:0}}.sheet{width:min(100%,520px);max-height:min(92dvh,900px);overflow:hidden;border:1px solid var(--color-border-primary);border-radius:32px 32px 0 0;background:color-mix(in srgb,var(--color-bg-primary) 95%,transparent);box-shadow:0 -22px 70px #2330362e,inset 0 1px #ffffffe6;-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);animation:sheet-in var(--duration-slow) var(--easing-out)}.sheet.centered{width:min(100%,420px);max-height:calc(100dvh - max(36px,env(safe-area-inset-top) + env(safe-area-inset-bottom)));border-radius:28px;box-shadow:0 26px 80px #1a252b47,inset 0 1px #ffffffe6;animation:dialog-in var(--duration-normal) var(--easing-out)}@keyframes sheet-in{0%{transform:translateY(35px);opacity:.6}}@keyframes dialog-in{0%{transform:translateY(12px) scale(.97);opacity:.35}}.sheet-grabber{width:42px;height:5px;margin:9px auto 7px;border-radius:var(--border-radius-full);background:var(--color-border-secondary)}.sheet.centered .sheet-grabber{display:none}.sheet-header{display:flex;align-items:center;justify-content:space-between;padding:9px 19px 15px;border-bottom:1px solid var(--color-border-secondary)}.sheet-header h2{font:var(--font-weight-semibold) var(--font-size-xl)/1.2 var(--font-family-display);letter-spacing:-.04em}.sheet-header p{margin-top:3px;color:var(--color-text-secondary);font-size:var(--font-size-xs)}.sheet-body{max-height:calc(92dvh - 86px);overflow-y:auto;padding:19px 18px calc(24px + env(safe-area-inset-bottom))}.sheet.centered .sheet-body{max-height:calc(100dvh - 128px - max(36px,env(safe-area-inset-top) + env(safe-area-inset-bottom)));padding:18px 18px 20px;overscroll-behavior:contain}.form-stack{display:flex;flex-direction:column;gap:17px}.form-stack label>span{display:block;margin:0 3px 6px;color:var(--color-text-secondary);font-size:var(--font-size-xs)}.form-stack input,.form-stack select{width:100%;height:48px;padding:0 13px;border:1px solid var(--color-border-primary);border-radius:15px;color:var(--color-text-primary);background:var(--color-bg-secondary);box-shadow:var(--shadow-sm);outline:none}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field-grid>label:last-child:nth-child(3){grid-column:1 / -1}.kind-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:4px;border:1px solid var(--color-border-primary);border-radius:var(--border-radius-full);background:var(--color-bg-secondary);box-shadow:var(--shadow-sm)}.kind-tabs.two{grid-template-columns:1fr 1fr}.kind-tabs button{height:40px;border:0;border-radius:var(--border-radius-full);color:var(--color-text-secondary);background:transparent;display:flex;align-items:center;justify-content:center;gap:5px;font-size:var(--font-size-xs)}.kind-tabs button.active{color:#fff;background:var(--color-accent-primary)}.kind-tabs button.active.expense{background:var(--color-expense)}.kind-tabs button.active.income{background:var(--color-income)}.kind-tabs button.active.transfer{background:var(--color-status-info)}.amount-field{display:block;padding:18px;border:1px solid var(--color-border-primary);border-radius:var(--border-radius-lg);background:var(--color-bg-secondary);box-shadow:var(--shadow-md)}.amount-field>span{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.amount-field>div{display:flex;align-items:center;margin-top:3px}.amount-field i{font-style:normal;font:var(--font-weight-medium) var(--font-size-xl)/1 var(--font-family-mono)}.amount-field input{min-width:0;height:auto;padding:0 8px;border:0;background:transparent;box-shadow:none;font:var(--font-weight-semibold) var(--font-size-3xl)/1.2 var(--font-family-mono);letter-spacing:-.07em}.amount-field.expense i,.amount-field.expense input{color:var(--color-expense)}.amount-field.income i,.amount-field.income input{color:var(--color-income)}.amount-field.transfer i,.amount-field.transfer input{color:var(--color-status-info)}.choice-field{margin:0;padding:0;border:0}.choice-field legend{margin:0 3px 8px;color:var(--color-text-secondary);font-size:var(--font-size-xs)}.choice-field legend small{margin-left:4px;color:var(--color-text-tertiary)}.category-choice-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.category-choice-grid button{min-width:0;height:42px;border:1px solid var(--color-border-primary);border-radius:13px;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:.68rem;display:flex;align-items:center;justify-content:center;gap:5px;box-shadow:var(--shadow-sm)}.category-choice-grid button i{width:7px;height:7px;border-radius:50%}.category-choice-grid button.active{color:var(--choice);border-color:color-mix(in srgb,var(--choice) 45%,transparent);background:color-mix(in srgb,var(--choice) 10%,var(--color-bg-secondary))}.tag-choice-list,.color-picker,.icon-picker{display:flex;flex-wrap:wrap;gap:7px}.color-picker button{width:34px;height:34px;border:3px solid transparent;border-radius:50%;box-shadow:inset 0 0 0 1px #fff9}.color-picker button.active{border-color:var(--color-text-primary)}.icon-picker button{width:42px;height:38px;border:1px solid var(--color-border-primary);border-radius:12px;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:.56rem}.icon-picker button.active{color:var(--color-text-inverse);background:var(--color-accent-primary)}.toggle-row{display:flex!important;align-items:center;justify-content:space-between;gap:12px;padding:12px 3px;border-top:1px solid var(--color-border-secondary)}.toggle-row>span{margin:0!important}.toggle-row strong,.toggle-row small{display:block}.toggle-row strong{color:var(--color-text-primary);font-size:var(--font-size-sm)}.toggle-row small{margin-top:3px;color:var(--color-text-secondary);font-size:.66rem}.toggle-row input{appearance:none;width:43px;height:25px;padding:2px;border:0;border-radius:var(--border-radius-full);background:var(--color-border-secondary);box-shadow:none;transition:background var(--duration-fast)}.toggle-row input:before{content:"";display:block;width:21px;height:21px;border-radius:50%;background:#fff;box-shadow:0 2px 5px #00000026;transition:transform var(--duration-fast)}.toggle-row input:checked{background:var(--color-expense)}.toggle-row input:checked:before{transform:translate(18px)}.button{min-height:49px;padding:0 19px;border:1px solid transparent;border-radius:var(--border-radius-full);font-weight:var(--font-weight-medium)}.button.primary{color:var(--color-text-inverse);background:var(--color-accent-primary);box-shadow:var(--shadow-sm)}.button.secondary{border-color:var(--color-border-primary);background:var(--color-bg-secondary)}.button.ghost{background:transparent}.button.danger{color:var(--color-status-error);background:var(--color-expense-soft)}.sticky-form-actions{position:sticky;z-index:5;bottom:calc(-24px - env(safe-area-inset-bottom));display:grid;grid-template-columns:auto 1fr;gap:9px;margin:2px -18px calc(-24px - env(safe-area-inset-bottom));padding:13px 18px calc(17px + env(safe-area-inset-bottom));background:linear-gradient(to bottom,transparent,var(--color-bg-primary) 18%)}.sticky-form-actions .button:only-child{grid-column:1 / -1}.delete-button{width:49px;padding:0}.total-budget-input{padding:17px;border:1px solid var(--color-border-primary);border-radius:var(--border-radius-lg);background:var(--color-bg-secondary);box-shadow:var(--shadow-md)}.total-budget-input label>div{display:flex;align-items:center;font:var(--font-weight-semibold) var(--font-size-xl)/1 var(--font-family-mono)}.total-budget-input input{height:40px;border:0;box-shadow:none;background:transparent;font:inherit}.total-budget-input>div{margin-top:8px}.total-budget-input small{display:block;margin-top:6px;color:var(--color-text-secondary);font-size:.66rem}.category-budget-inputs h3{margin-bottom:8px;font-size:var(--font-size-sm)}.category-budget-inputs label{display:grid;grid-template-columns:minmax(0,1fr) 130px;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--color-border-secondary)}.category-budget-inputs label>span{display:flex;align-items:center;gap:7px;color:var(--color-text-primary)}.category-budget-inputs label i{width:8px;height:8px;border-radius:50%}.category-budget-inputs label small{color:var(--color-text-tertiary);font-size:.6rem}.category-budget-inputs label>div{display:flex;align-items:center;color:var(--color-text-secondary)}.category-budget-inputs input{height:40px;text-align:right}.copy-budget-button{height:43px;border:1px solid var(--color-border-primary);border-radius:var(--border-radius-full);background:var(--color-bg-secondary);display:flex;align-items:center;justify-content:center;gap:6px;color:var(--color-text-secondary);font-size:var(--font-size-xs)}.offline-banner,.update-banner,.error-banner{position:fixed;z-index:60;top:max(8px,env(safe-area-inset-top));left:50%;transform:translate(-50%);width:min(calc(100% - 28px),492px);min-height:38px;padding:7px 12px;border:1px solid var(--color-border-primary);border-radius:var(--border-radius-full);display:flex;align-items:center;justify-content:center;gap:7px;background:color-mix(in srgb,var(--color-bg-secondary) 94%,transparent);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);font-size:var(--font-size-xs)}.offline-banner{color:var(--color-income)}.error-banner{color:var(--color-status-error)}.update-banner button{margin-left:auto;border:0;border-radius:var(--border-radius-full);padding:6px 9px;color:#fff;background:var(--color-status-info);font-size:.66rem}.saving-pill{position:fixed;z-index:70;left:50%;bottom:calc(94px + env(safe-area-inset-bottom));transform:translate(-50%);padding:7px 11px;border-radius:var(--border-radius-full);color:var(--color-text-secondary);background:var(--color-bg-secondary);box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:5px;font-size:.66rem}.app-loading{width:min(100%,520px);min-height:100dvh;margin:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:var(--color-bg-primary);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.app-loading img{width:104px;height:104px;filter:drop-shadow(0 20px 26px rgba(50,70,80,.15))}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.app-loading.inline{width:100%;background:transparent}@media(min-width:521px){.app-shell{box-shadow:0 0 80px #3949502e}}@media(max-width:374px){.page{padding-left:13px;padding-right:13px}.hero-amount{font-size:2rem}.hero-metrics div{padding-inline:8px}.category-choice-grid{grid-template-columns:repeat(3,1fr)}.reminder-item{grid-template-columns:36px minmax(0,1fr)}.reminder-actions{grid-column:2}.monthly-backup-strip{grid-template-columns:38px minmax(0,1fr)}.monthly-backup-strip em{grid-column:2}.bottom-nav{width:calc(100% - 14px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
