:root{color-scheme:light dark;--font-sans: "Onest", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;--bg: var(--tg-theme-bg-color, #f7f4ef);--surface: color-mix(in srgb, var(--tg-theme-secondary-bg-color, #ffffff) 88%, transparent);--surface-muted: color-mix(in srgb, #ece6dc 84%, transparent);--text: var(--tg-theme-text-color, #1f2523);--muted: var(--tg-theme-hint-color, #5c635e);--line: rgba(31, 37, 35, .12);--accent: var(--tg-theme-button-color, #5f7f67);--on-accent: var(--tg-theme-button-text-color, #ffffff);--task: #497d63;--plan: #3b6fb6;--money: #a9622a;--wish: #a85568;--shop: #6f8f4f;--danger: #c74848;--success: #2f8f6b;--focus: #4c8dff;--radius-card: 12px;--radius-control: 10px;--tap: 44px;--nav-space: calc(106px + env(safe-area-inset-bottom)) ;--shadow-soft: 0 8px 24px rgba(20, 16, 12, .08);--focus-ring: 0 0 0 3px rgba(76, 141, 255, .28);--glass-blur: blur(16px);--ease-out: cubic-bezier(.16, 1, .3, 1);--duration-fast: .14s;--duration-ui: .2s;--z-sticky: 10;--z-sheet: 20;--z-sheet-panel: 21;color:var(--text);background:var(--bg);font-family:var(--font-sans);font-size:15px;line-height:1.4;letter-spacing:-.01em}html{width:100%;max-width:100%;min-height:100%;overflow-x:clip;background:#0d0f0e}html[data-tg-color-scheme=light]{background:#f7f4ef}html[data-tg-color-scheme=dark]{--bg: var(--tg-theme-bg-color, #0d0f0e);--surface: color-mix(in srgb, var(--tg-theme-secondary-bg-color, #1a1d1b) 84%, transparent);--surface-muted: color-mix(in srgb, #222622 78%, transparent);--text: var(--tg-theme-text-color, #eef2ef);--muted: var(--tg-theme-hint-color, #a3aba4);--line: rgba(238, 242, 239, .1);--accent: var(--tg-theme-button-color, #6d9b86);--shadow-soft: 0 10px 28px rgba(0, 0, 0, .28)}*{box-sizing:border-box}body{margin:0;width:100%;max-width:100%;min-width:320px;min-height:100vh;overflow-x:clip;background:transparent;isolation:isolate}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;background:url(/eyes-bg.png) center 36% / cover no-repeat;transform:scale(1.05);opacity:.42;pointer-events:none}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;background:linear-gradient(180deg,#0808082e,#08080875 55%,#080808b3),radial-gradient(circle at 16% 12%,rgba(176,126,78,.2),transparent 34%),radial-gradient(circle at 84% 80%,rgba(120,78,48,.18),transparent 36%);pointer-events:none}html[data-tg-color-scheme=light] body:after{background:linear-gradient(180deg,#f7f4ef8a,#f7f4efad 52%,#f7f4efc7),radial-gradient(circle at 14% 18%,rgba(180,130,86,.1),transparent 34%),radial-gradient(circle at 86% 74%,rgba(130,88,58,.08),transparent 38%)}html[data-tg-color-scheme=light] body:before{opacity:.34}#root{position:relative;z-index:1;width:100%;max-width:100%;overflow-x:clip}button,input,select,textarea{font:inherit}button:disabled{cursor:default}button,a{-webkit-tap-highlight-color:transparent}:where(button,a,input,select,textarea):focus-visible{outline:0;border-color:var(--focus);box-shadow:var(--focus-ring)}input,select,textarea{caret-color:var(--accent)}:where(input,select,textarea):focus{outline:0;border-color:var(--focus);box-shadow:var(--focus-ring)}button:active:not(:disabled),.icon-button:active:not(:disabled),.action-button:active:not(:disabled),.primary-button:active:not(:disabled),.secondary-button:active:not(:disabled),.danger-button:active:not(:disabled),.hub-tile:active,.quick-action:active,.install-app-button:active:not(:disabled),.filter-chip:active,.finance-tool-action:active:not(:disabled),.recurring-pay:active:not(:disabled){transform:scale(.97)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}h1,h2,h3,p{margin:0}h1{font-size:1.56rem;line-height:1.08;font-weight:700;letter-spacing:-.03em;text-wrap:balance}h3{color:var(--muted);font-size:.78rem;font-weight:600;letter-spacing:.04em;margin-bottom:8px;text-transform:uppercase}.shell{width:100%;max-width:100vw;min-height:100svh;overflow-x:clip;padding:max(10px,env(safe-area-inset-top)) 12px var(--nav-space);color:var(--text)}.center-screen,.workspace,.detail-head,.loading,.error{width:min(520px,100%);min-width:0;max-width:520px;margin-left:auto;margin-right:auto}.center-screen{display:grid;gap:10px}.home-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;border:1px solid var(--line);border-radius:var(--radius-card);background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-soft);padding:16px}.hero-copy{display:grid;gap:4px;min-width:0}.hero-greeting{color:var(--text);font-size:.96rem;font-weight:600}.hero-sub{color:var(--muted);font-size:.86rem;line-height:1.35;max-width:260px}.home-hero p{margin-top:0;max-width:none}.hero-refresh{background:color-mix(in srgb,var(--surface) 72%,transparent)}.install-app-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:fit-content;min-height:36px;margin-top:4px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:var(--radius-control);background:color-mix(in srgb,var(--accent) 11%,var(--surface));color:var(--accent);padding:0 10px;font-size:.78rem;font-weight:700;transition:transform var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}.head-actions{display:flex;gap:8px;align-items:center}.eyebrow{display:block;color:var(--accent);font-size:.72rem;font-weight:700;letter-spacing:.08em;margin-bottom:3px;text-transform:uppercase}.hub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.hub-tile{display:grid;gap:6px;min-height:78px;text-align:left;border:1px solid var(--line);border-radius:var(--radius-card);background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);color:var(--text);box-shadow:var(--shadow-soft);padding:12px;transition:transform var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out)}@media(hover:hover){.hub-tile:hover{border-color:color-mix(in srgb,var(--accent) 22%,var(--line));background:color-mix(in srgb,var(--surface) 98%,transparent)}}.hub-tile-label,.hub-tile-foot,.hub-tile small{color:var(--muted);font-size:.8rem;line-height:1.2}.hub-tile-metric{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.hub-tile strong{overflow-wrap:anywhere;font-size:1.48rem;font-variant-numeric:tabular-nums;font-weight:700;line-height:1;letter-spacing:-.03em}.hub-tile-money{display:block;font-size:1.28rem;line-height:1.1}.hub-tile.wide{grid-column:1 / -1}.hub-tile span,.hub-tile small,.summary-panel span,.item-main span{color:var(--muted);font-size:.82rem}.hub-tile span:not(.hub-tile-label){font-size:inherit}.hub-tile.warm strong{color:var(--danger)}.quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.quick-action{display:flex;align-items:center;justify-content:flex-start;gap:10px;min-height:48px;border:1px solid var(--line);border-radius:var(--radius-card);background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);color:var(--text);box-shadow:var(--shadow-soft);padding:10px 12px;text-align:left;transition:transform var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out)}@media(hover:hover){.quick-action:hover{border-color:color-mix(in srgb,var(--accent) 18%,var(--line));background:color-mix(in srgb,var(--surface) 98%,transparent)}}.quick-action-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;min-width:28px;border-radius:8px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.quick-actions .quick-action:nth-child(1) .quick-action-icon{background:color-mix(in srgb,var(--task) 12%,transparent);color:var(--task)}.quick-actions .quick-action:nth-child(2) .quick-action-icon{background:color-mix(in srgb,var(--money) 12%,transparent);color:var(--money)}.quick-actions .quick-action:nth-child(3) .quick-action-icon{background:color-mix(in srgb,var(--shop) 12%,transparent);color:var(--shop)}.quick-actions .quick-action:nth-child(4) .quick-action-icon{background:color-mix(in srgb,var(--shop) 12%,transparent);color:var(--shop)}.quick-actions .quick-action:nth-child(5) .quick-action-icon{background:color-mix(in srgb,var(--wish) 12%,transparent);color:var(--wish)}.quick-action-label{font-size:.88rem;font-weight:600;line-height:1.15;letter-spacing:-.01em}@media(min-width:420px){.quick-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.quick-action{flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:72px;padding:10px 8px;text-align:center}.quick-action-label{font-size:.76rem}}@media(min-width:560px){.quick-actions{grid-template-columns:repeat(5,minmax(0,1fr))}}.stack,.workspace{display:grid;gap:10px}.segment{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface-muted);padding:4px}.segment.segment-3{grid-template-columns:repeat(3,minmax(0,1fr))}.filter-row{display:flex;flex-wrap:wrap;gap:6px}.filter-chip{min-height:34px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);padding:0 12px;font-size:.78rem;font-weight:600;transition:background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.filter-chip.active{border-color:color-mix(in srgb,var(--accent) 34%,var(--line));background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent)}.empty-state{display:grid;justify-items:center;gap:8px;text-align:center;color:var(--muted);padding:18px 14px 20px}.empty-state svg{color:color-mix(in srgb,var(--muted) 72%,transparent)}.empty-state strong{color:var(--text);font-size:.95rem}.empty-state p{margin:0;max-width:260px;font-size:.84rem}.compact-summary .summary-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.compact-summary h3{margin:0;padding:0;color:var(--text);font-size:.92rem;letter-spacing:0;text-transform:none}.summary-sub{color:var(--muted);font-size:.76rem}.summary-metrics{display:flex;flex-wrap:wrap;gap:8px 12px;color:var(--muted);font-size:.82rem}.summary-metrics b{color:var(--text);font-weight:700}.segment button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-weight:600;transition:background-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.segment button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-soft)}.list-block{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-card);background:color-mix(in srgb,var(--surface) 96%,transparent);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:none;padding:8px 0 0}.list-block h3{padding:0 12px}.item-row{display:flex;align-items:center;gap:10px;min-height:52px;border-top:1px solid var(--line);padding:9px 12px;transition:background-color var(--duration-fast) var(--ease-out)}.task-row.overdue{background:color-mix(in srgb,var(--danger) 7%,var(--surface))}.task-row-main,.calendar-task-main{display:flex;align-items:center;gap:10px;min-width:0;min-height:var(--tap);flex:1;border:0;border-radius:8px;background:transparent;color:var(--text);cursor:pointer;padding:0;text-align:left}.task-row-main:focus-visible,.calendar-task-main:focus-visible{box-shadow:inset var(--focus-ring)}.task-row-main:disabled,.calendar-task-main:disabled{cursor:default;opacity:.68}@media(hover:hover)and (pointer:fine){.task-row-main:hover:not(:disabled),.calendar-task-main:hover:not(:disabled){color:var(--accent)}}.clickable-row{cursor:pointer}.clickable-row:hover{background:color-mix(in srgb,var(--surface-muted) 42%,var(--surface))}.clickable-row:focus-visible{outline:0;box-shadow:inset var(--focus-ring)}.list-block h3+.item-row{border-top:0}.item-main{display:grid;gap:3px;min-width:0;flex:1}.item-main strong{min-width:0;overflow-wrap:anywhere;font-size:.98rem;font-weight:700}.calendar-task-row{align-items:center}.date-chip{display:grid;align-content:center;justify-items:center;width:48px;min-width:48px;min-height:46px;border-radius:8px;background:color-mix(in srgb,var(--plan) 12%,var(--surface));color:var(--plan);font-variant-numeric:tabular-nums}.date-chip strong{font-size:1rem;line-height:1}.date-chip span,.calendar-task-meta{white-space:nowrap}.date-chip span{max-width:44px;overflow:hidden;font-size:.68rem;font-weight:760;text-transform:uppercase;text-overflow:ellipsis}.calendar-task-meta{overflow:hidden;text-overflow:ellipsis}.status-dot{width:9px;height:9px;min-width:9px;border-radius:999px;background:color-mix(in srgb,var(--muted) 66%,transparent)}.status-dot.due{background:var(--plan)}.status-dot.overdue{background:var(--danger)}.amount,.summary-panel strong{font-variant-numeric:tabular-nums}.amount{white-space:nowrap}.summary-panel{display:grid;gap:10px;border:1px solid var(--line);border-radius:var(--radius-card);background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-soft);padding:12px}.summary-panel strong{display:block;margin-top:2px;font-size:1.36rem;font-weight:700}.summary-total{display:grid;gap:2px}.summary-total small{color:var(--muted);font-size:.76rem;line-height:1.35}.split,.tags,.row-actions,.form-actions{display:flex;flex-wrap:wrap;gap:8px}.tags span,.split span{border-radius:999px;background:var(--surface-muted);color:var(--muted);padding:6px 9px}.expense-trend{display:grid;gap:4px;margin:2px 0 0;border-top:1px solid var(--line);padding-top:10px}.expense-trend figcaption{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.expense-trend figcaption strong{margin:0;font-size:.88rem;letter-spacing:0}.expense-trend figcaption span,.expense-trend-axis{color:var(--muted);font-size:.72rem}.expense-trend svg{display:block;width:100%;height:92px;overflow:visible}.expense-trend-grid{stroke:color-mix(in srgb,var(--muted) 25%,transparent);stroke-width:1;vector-effect:non-scaling-stroke}.expense-trend-line{fill:none;stroke:var(--money);stroke-linecap:round;stroke-linejoin:round;stroke-width:2.5;vector-effect:non-scaling-stroke}.expense-trend-point{fill:var(--surface);stroke:var(--money);stroke-width:2;vector-effect:non-scaling-stroke}.expense-trend-axis{display:grid;grid-template-columns:repeat(3,1fr);font-variant-numeric:tabular-nums}.expense-trend-axis span{font-size:inherit}.expense-trend-axis span:nth-child(2){text-align:center}.expense-trend-axis span:last-child{text-align:right}.empty,.loading,.error{color:var(--muted);padding:14px}.error{border:1px solid color-mix(in srgb,var(--danger) 34%,transparent);border-radius:var(--radius-card);background:color-mix(in srgb,var(--danger) 10%,var(--surface));color:var(--danger)}.quick-form{position:relative;top:auto;z-index:5;display:grid;gap:11px;max-width:520px;margin:0 auto;border:1px solid var(--line);border-radius:var(--radius-card);background:color-mix(in srgb,var(--surface) 96%,transparent);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:0 14px 34px #0000002e;padding:12px}.quick-form .form-actions{position:sticky;bottom:-12px;z-index:2;margin:0 -12px -12px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface) 96%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:10px 12px calc(10px + env(safe-area-inset-bottom))}.quick-form .form-actions>*{min-width:0}.pwa-install-hint{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;max-width:520px;margin:0 auto 10px;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--line));border-radius:var(--radius-card);background:color-mix(in srgb,var(--accent) 10%,var(--surface));color:var(--accent);padding:10px 10px 10px 12px}.pwa-install-hint div{display:grid;gap:2px;min-width:0}.pwa-install-hint strong{color:var(--text);font-size:.84rem}.pwa-install-hint span{color:var(--muted);font-size:.76rem;line-height:1.3}.install-sheet{align-content:start}.install-sheet-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:var(--radius-card);background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--accent)}.install-sheet-copy{display:grid;gap:10px}.install-sheet-copy p,.install-sheet-copy ol{margin:0}.install-sheet-copy p{color:var(--muted)}.install-sheet-copy ol{display:grid;gap:7px;padding-left:20px;color:var(--text);font-size:.88rem}html.sheet-open,html.sheet-open body{overflow:hidden;overscroll-behavior:none}.sheet-backdrop{position:fixed;top:var(--sheet-viewport-top, 0);right:0;bottom:auto;left:0;z-index:var(--z-sheet);display:grid;align-items:end;box-sizing:border-box;height:var(--sheet-viewport-height, 100dvh);padding:12px 12px calc(12px + env(safe-area-inset-bottom));background:#0606067a;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:sheet-backdrop-in var(--duration-ui) var(--ease-out) both}.sheet-card{position:relative;top:auto;z-index:var(--z-sheet-panel);width:min(520px,100%);max-height:min(760px,calc(var(--sheet-viewport-height, 100dvh) - 24px - env(safe-area-inset-top)));overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;margin:0 auto;border-radius:14px 14px var(--radius-card) var(--radius-card);animation:sheet-panel-in var(--duration-ui) var(--ease-out) both}@keyframes sheet-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes sheet-panel-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.form-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.field{display:grid;gap:6px}.inline-fields{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:8px}.field span{color:color-mix(in srgb,var(--muted) 88%,var(--text));font-size:.78rem;font-weight:600}.field:focus-within span{color:var(--focus)}.field-hint{margin:-2px 0 0;color:var(--muted);font-size:.78rem;line-height:1.35}.category-field{display:grid;gap:8px}.category-field-custom{margin-top:0}input,select{width:100%;min-height:var(--tap);border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);color:var(--text);padding:10px 12px}textarea{min-height:88px;resize:vertical;font:inherit}input::placeholder,textarea::placeholder{color:color-mix(in srgb,var(--muted) 82%,var(--text))}.icon-button,.action-button,.primary-button,.secondary-button,.primary-link,.danger-button{min-height:var(--tap);border-radius:var(--radius-control);border:1px solid var(--line);cursor:pointer;transition:transform var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}@media(hover:hover){.icon-button:hover:not(:disabled){background:color-mix(in srgb,var(--surface-muted) 55%,var(--surface))}.secondary-button:hover:not(:disabled){color:var(--text);background:color-mix(in srgb,var(--surface-muted) 45%,var(--surface))}.action-button:hover:not(:disabled),.primary-button:hover:not(:disabled),.primary-link:hover{filter:brightness(.96)}.install-app-button:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 17%,var(--surface))}.danger-button:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 18%,var(--surface))}}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:var(--tap);min-width:var(--tap);background:var(--surface);color:var(--text);text-decoration:none}.icon-button.small{min-height:34px;width:34px;min-width:34px}.icon-button.success{border-color:color-mix(in srgb,var(--success) 28%,var(--line));background:color-mix(in srgb,var(--success) 12%,var(--surface));color:var(--success)}.icon-button.muted-action{opacity:.5}.action-button,.primary-button,.secondary-button,.primary-link,.danger-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 12px;font-weight:600;text-decoration:none}.action-button,.primary-button,.primary-link{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.secondary-button{background:var(--surface);color:var(--muted)}.danger-button{border-color:color-mix(in srgb,var(--danger) 42%,var(--line));background:color-mix(in srgb,var(--danger) 13%,var(--surface));color:var(--danger)}.form-actions .danger-button{margin-right:auto}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:var(--z-sticky);display:grid;grid-template-columns:repeat(4,1fr);gap:2px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);padding:7px 6px calc(7px + env(safe-area-inset-bottom))}.tab{position:relative;display:grid;justify-items:center;gap:3px;min-width:0;min-height:52px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:.64rem;font-weight:700;padding:0 2px}.tab:before{content:"";width:18px;height:3px;border-radius:99px;background:transparent}.tab.active{color:var(--accent)}.tab.active:before{background:var(--accent)}.auth-shell{display:grid;place-items:center;padding-bottom:16px}.auth-panel{display:grid;gap:12px;justify-items:start;width:min(420px,100%);border:1px solid var(--line);border-radius:var(--radius-card);background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-soft);padding:18px}.brand-mark{display:grid;place-items:center;width:52px;height:52px;border-radius:var(--radius-card);background:var(--accent);color:var(--on-accent);font-weight:900}.pull-root{position:relative}.pull-indicator{display:grid;place-items:center;overflow:hidden;color:var(--muted);font-size:.78rem;font-weight:700;transition:height .16s ease}.skeleton-screen{display:grid;gap:12px}.skeleton{border-radius:var(--radius-card);background:linear-gradient(90deg,color-mix(in srgb,var(--surface-muted) 70%,transparent),color-mix(in srgb,var(--surface) 92%,transparent),color-mix(in srgb,var(--surface-muted) 70%,transparent));background-size:200% 100%;animation:skeleton-shimmer 1.2s var(--ease-out) infinite}.skeleton-hero{height:92px}.skeleton-panel{height:72px}.skeleton-tile{height:74px}.skeleton-tile.wide{grid-column:span 2}.skeleton-block{height:120px}.skeleton-block.short{height:72px}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.inline-loading{padding:8px 12px 12px;color:var(--muted);animation:pulse-muted 1.2s var(--ease-out) infinite}@keyframes pulse-muted{0%,to{opacity:.55}50%{opacity:1}}.search-bar{display:flex;align-items:center;gap:8px;min-height:var(--tap);margin-bottom:12px;border:1px solid var(--line);border-radius:var(--radius-control);background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);padding:0 12px}.search-bar input{flex:1;min-width:0;border:0;background:transparent;color:var(--text);font:inherit;outline:none}.search-bar input::placeholder{color:var(--muted)}.search-clear{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:var(--muted)}.search-results{margin-bottom:12px}.search-row{width:100%;border:0;background:transparent;text-align:left;font:inherit;color:inherit}.activity-row{align-items:flex-start}.activity-row .item-main span{color:var(--muted)}.activity-time{flex-shrink:0;color:var(--muted);font-size:.74rem;font-weight:700;white-space:nowrap}.gratitude-feed{display:grid;gap:10px}.gratitude-feed-head{display:flex;align-items:center;gap:8px;color:var(--wish)}.gratitude-feed-head h3{margin:0;font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.gratitude-list{display:grid;gap:8px}.gratitude-card{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:start;padding:12px 14px;border:1px solid color-mix(in srgb,var(--wish) 28%,var(--line));border-radius:var(--radius-card);background:color-mix(in srgb,var(--wish) 10%,var(--surface));-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-soft)}.gratitude-card-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:999px;color:var(--wish);background:color-mix(in srgb,var(--wish) 16%,transparent)}.gratitude-card-copy{display:grid;gap:2px;min-width:0}.gratitude-card-copy strong{font-size:.92rem;font-weight:700}.gratitude-card-copy span{color:var(--muted);font-size:.86rem;line-height:1.35}.gratitude-card-time{flex-shrink:0;color:var(--muted);font-size:.72rem;font-weight:700;white-space:nowrap}.swipe-row{position:relative;overflow:hidden;border-radius:var(--radius-control)}.swipe-row-action{position:absolute;inset:0 0 0 auto;width:88px;display:grid;place-items:center;background:var(--success);color:#fff;font-size:.82rem;font-weight:700}.swipe-row .item-row{position:relative;z-index:1;background:var(--surface);transition:transform var(--duration-fast) var(--ease-out)}.checkbox-field{display:flex;align-items:center;gap:10px}.checkbox-field input{width:18px;height:18px}.form-error{margin:0;color:var(--danger);font-size:.86rem}.undo-toast{position:fixed;left:12px;right:12px;bottom:calc(72px + env(safe-area-inset-bottom));z-index:var(--z-sheet);display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--radius-card);background:color-mix(in srgb,var(--text) 92%,transparent);color:#fff;box-shadow:var(--shadow-soft)}.undo-toast-action{margin-left:auto;border:0;background:transparent;color:#fff;font-weight:700;text-decoration:underline;cursor:pointer}@media(min-width:420px){.quick-actions-3{grid-template-columns:repeat(3,minmax(0,1fr))}.quick-actions-3 .quick-action{flex-direction:row;align-items:center;justify-content:flex-start;min-height:48px;padding:10px 12px;text-align:left}.quick-actions-3 .quick-action-label{font-size:.88rem}}.month-nav{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:8px}.expense-scope button{min-height:var(--tap)}.month-nav-copy{display:grid;gap:2px;min-width:0;text-align:center}.month-nav-copy strong{font-size:1rem}.month-nav-status{color:var(--muted);font-size:.76rem}.month-export{min-height:40px;padding:0 10px}.expense-row{padding-right:8px}.expense-row-main{display:flex;align-items:center;flex:1;gap:10px;min-width:0;min-height:var(--tap);border:0;border-radius:8px;background:transparent;color:var(--text);cursor:pointer;text-align:left;padding:0}.expense-row-main:focus-visible{box-shadow:inset var(--focus-ring)}.expense-note{display:-webkit-box;overflow:hidden;color:color-mix(in srgb,var(--muted) 88%,var(--text));line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}.expense-receipt-link{display:inline-flex;align-items:center;justify-content:flex-end;gap:4px;min-height:var(--tap);min-width:var(--tap);margin:-4px -4px -4px 0;color:var(--accent);font-size:.76rem;font-weight:700;text-decoration:none;padding:4px}.expense-receipt-link span{color:inherit;font-size:inherit}.expense-list-toggle{width:100%;min-height:var(--tap);border:0;border-top:1px solid var(--line);background:transparent;color:var(--accent);font:inherit;font-size:.86rem;font-weight:700;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}@media(hover:hover){.expense-row-main:hover{color:var(--accent)}.expense-list-toggle:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}}.subscreen-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}.subscreen-head h2{margin:0;font-size:1.1rem}.shopping-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto}.shopping-head-title{display:grid;gap:1px;min-width:0;text-align:center}.shopping-head-title h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shopping-head-title span{color:var(--muted);font-size:.72rem}.shopping-archive-action{padding:0 10px}.shopping-groups{display:grid;gap:10px}.shopping-row{padding-right:8px}.shopping-row-main,.entity-row-main{display:flex;align-items:center;min-width:0;min-height:var(--tap);flex:1;border:0;border-radius:8px;background:transparent;color:var(--text);cursor:pointer;padding:0;text-align:left}.shopping-row-main:focus-visible,.entity-row-main:focus-visible{box-shadow:inset var(--focus-ring)}.shopping-row-main:disabled,.entity-row-main:disabled{cursor:default;opacity:.68}.entity-row-main.static{cursor:default}.item-detail-meta{color:color-mix(in srgb,var(--muted) 90%,var(--text));line-height:1.35}.shopping-row-actions{flex:0 0 auto;flex-wrap:nowrap}@media(hover:hover)and (pointer:fine){.shopping-row-main:hover:not(:disabled),.entity-row-main:hover:not(:disabled):not(.static){color:var(--accent)}}.sync-notice{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:10px;width:min(520px,100%);margin:0 auto 12px;border:1px solid color-mix(in srgb,var(--accent) 34%,var(--line));border-radius:var(--radius-card);background:color-mix(in srgb,var(--accent) 11%,var(--surface));color:var(--accent);padding:11px 12px}.sync-notice.conflict{border-color:color-mix(in srgb,var(--danger) 38%,var(--line));background:color-mix(in srgb,var(--danger) 10%,var(--surface));color:var(--danger)}.sync-notice-copy{display:grid;gap:2px;min-width:0}.sync-notice-copy strong{color:var(--text);font-size:.86rem}.sync-notice-copy span,.sync-notice-copy p{color:var(--muted);font-size:.76rem;line-height:1.4}.sync-notice-copy details{margin-top:4px}.sync-notice-copy summary{width:fit-content;cursor:pointer;color:currentColor;font-size:.76rem;font-weight:700}.sync-notice-copy p{margin-top:4px;max-width:52ch}.sync-notice-actions{display:grid;justify-items:end;gap:4px}.sync-notice-actions .secondary-button{min-height:36px;padding:0 10px;color:currentColor}.sync-discard{min-height:32px;border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:.72rem;font-weight:700}.restore-button{flex:0 0 auto;min-height:36px;padding:8px 12px;white-space:nowrap}.gift-action{min-height:36px;padding:7px 10px;font-size:.74rem;white-space:nowrap}.finance-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.finance-tool-action{display:flex;align-items:center;gap:10px;min-width:0;min-height:64px;border:1px solid var(--line);border-radius:var(--radius-card);background:color-mix(in srgb,var(--surface) 94%,transparent);color:var(--money);cursor:pointer;padding:10px 12px;text-align:left;transition:transform var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out)}.finance-tool-action>span{display:grid;gap:2px;min-width:0}.finance-tool-action strong{color:var(--text);font-size:.84rem;line-height:1.25}.finance-tool-action small{color:var(--muted);font-size:.72rem;line-height:1.3}@media(hover:hover)and (pointer:fine){.finance-tool-action:hover{border-color:color-mix(in srgb,var(--money) 34%,var(--line));background:color-mix(in srgb,var(--money) 8%,var(--surface))}}.compact-month-nav{grid-template-columns:auto 1fr auto}.finance-note,.finance-form-note{border-radius:var(--radius-control);background:color-mix(in srgb,var(--money) 10%,var(--surface));color:var(--money)}.finance-note{display:flex;align-items:center;gap:10px;min-height:62px;padding:11px 12px}.finance-note span{color:var(--text);font-size:.8rem;line-height:1.4}.inline-error{display:flex;align-items:center;gap:12px;min-height:68px;border:1px solid color-mix(in srgb,var(--danger) 36%,var(--line));border-radius:var(--radius-card);background:color-mix(in srgb,var(--danger) 10%,var(--surface));color:var(--danger);padding:10px 12px}.inline-error>div{display:grid;gap:2px;min-width:0;flex:1}.inline-error strong{color:var(--danger);font-size:.84rem}.inline-error span{color:var(--muted);font-size:.76rem;line-height:1.35}.inline-error .secondary-button{flex:0 0 auto}.search-error{margin:0 10px 10px}.finance-form-block{padding-bottom:0}.inline-finance-form{display:grid;gap:10px;border-top:1px solid var(--line);padding:12px}.draft-notice{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;margin:0;border-radius:var(--radius-control);background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent);font-size:.78rem;font-weight:700}.field.invalid>span,.field-error{color:var(--danger)}.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:var(--danger)}.field-error{font-size:.74rem;font-weight:650;line-height:1.35}.finance-save{width:100%;margin-top:2px}.primary-button:disabled,.action-button:disabled,.finance-tool-action:disabled{border-color:var(--line);background:var(--surface-muted);color:var(--muted);opacity:.72}.limit-row{display:flex;align-items:center;gap:10px;min-height:76px;border-top:1px solid var(--line);padding:10px 8px 10px 12px}.list-block h3+.limit-row,.list-block h3+.recurring-row{border-top:0}.limit-row-copy{display:grid;gap:5px;min-width:0;flex:1}.limit-row-copy>div{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.limit-row-copy strong,.limit-row-copy b{font-size:.9rem}.limit-row-copy b{flex:0 0 auto;font-variant-numeric:tabular-nums}.limit-row-copy span{color:var(--muted);font-size:.75rem;line-height:1.3}.limit-row-copy progress{width:100%;height:5px;overflow:hidden;border:0;border-radius:99px;background:var(--surface-muted);accent-color:var(--money)}.limit-row-copy progress::-webkit-progress-bar{border-radius:99px;background:var(--surface-muted)}.limit-row-copy progress::-webkit-progress-value{border-radius:99px;background:var(--money)}.danger-text,.limit-row-copy .danger-text,.danger-icon{color:var(--danger)}.recurring-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto}.recurring-head h2{text-align:center}.recurring-row{display:flex;align-items:center;min-height:78px;border-top:1px solid var(--line);padding:0 6px 0 0}.recurring-row-main{display:flex;align-items:center;gap:9px;min-width:0;min-height:78px;flex:1;border:0;border-radius:8px;background:transparent;color:var(--text);cursor:pointer;padding:8px 6px 8px 12px;text-align:left}.recurring-icon{display:inline-grid;place-items:center;width:34px;height:34px;flex:0 0 auto;border-radius:var(--radius-control);background:color-mix(in srgb,var(--money) 12%,var(--surface));color:var(--money)}.recurring-icon.overdue{background:color-mix(in srgb,var(--danger) 12%,var(--surface));color:var(--danger)}.recurring-copy,.recurring-amount{display:grid;gap:2px;min-width:0}.recurring-copy{flex:1}.recurring-copy strong{overflow-wrap:anywhere;font-size:.9rem}.recurring-copy small,.recurring-amount small{color:var(--muted);font-size:.7rem;line-height:1.3}.recurring-amount{flex:0 0 auto;justify-items:end}.recurring-amount b{font-size:.82rem;font-variant-numeric:tabular-nums;white-space:nowrap}.recurring-pay{display:inline-grid;place-items:center;width:var(--tap);height:var(--tap);flex:0 0 auto;border:0;border-radius:999px;background:color-mix(in srgb,var(--money) 14%,var(--surface));color:var(--money);cursor:pointer}.recurring-pay:disabled,.recurring-row-main:disabled,.expense-row-main:disabled{cursor:default;opacity:.68}.finance-form-note{margin:0;padding:10px 12px;color:var(--muted);font-size:.76rem;line-height:1.4}@media(max-width:440px){.quick-form .form-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.quick-form .form-actions .danger-button{grid-column:1 / -1;width:100%;margin-right:0}.shopping-head{gap:7px}.shopping-head>.secondary-button{padding:0 9px}.shopping-head-title h2{font-size:1rem}.shopping-row{align-items:flex-start;flex-wrap:wrap}.shopping-row-main{min-width:calc(100% - 54px)}.shopping-row-actions{width:100%;justify-content:flex-end}.gift-row,.wishlist-row{align-items:flex-start;flex-wrap:wrap}.wishlist-row .entity-row-main{min-width:100%}.gift-row .row-actions,.wishlist-row .row-actions{width:100%;justify-content:flex-end}.finance-tools{grid-template-columns:1fr}.sync-notice{grid-template-columns:auto minmax(0,1fr)}.sync-notice-actions{grid-column:2;grid-auto-flow:column;justify-content:start;justify-items:start}.recurring-head h2{font-size:1rem}.recurring-head .action-button{padding:0 9px}}@media(max-width:380px){.inline-fields{grid-template-columns:1fr}.head-actions{flex-wrap:wrap;justify-content:flex-end}}@media(min-width:780px){.shell{padding-top:24px}.tabbar{left:50%;right:auto;bottom:18px;width:520px;transform:translate(-50%);border:1px solid var(--line);border-radius:var(--radius-card)}}
