:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#213547;background-color:#fbf8ee;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;height:100%}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){a:hover{color:#747bff}button{background-color:#f9f9f9}}.balance-card{background:var(--sage-surface-hero);border:.5px solid rgba(42,91,63,.08);border-radius:var(--card-radius);box-shadow:var(--card-shadow);padding:var(--component-padding-md);display:flex;flex-direction:column}.balance-pill{align-self:flex-start;display:inline-flex;align-items:center;gap:5px;padding:5px 11px 5px 9px;background:var(--sage-surface);color:var(--sage-action);border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.2px}.balance-hero{display:flex;align-items:center;gap:12px;margin-top:10px}.balance-hero-text{flex:1;min-width:0;display:flex;flex-direction:column}.balance-amount-hero{display:inline-flex;align-items:baseline;color:var(--sage-hero);letter-spacing:-1px}.balance-amount-hero.is-debtor{color:var(--alert-soft-text)}.balance-amount-main{font-size:36px;font-weight:800;line-height:1}.balance-amount-rest{font-size:18px;font-weight:800}.balance-sub{margin-top:4px;font-size:12px;font-weight:500;color:#4a6553}.balance-btn{flex-shrink:0;padding:9px 18px;background:var(--sage-action);color:#fff;border:none;border-radius:var(--radius-pill);font-size:13px;font-weight:700;cursor:pointer;box-shadow:0 3px 10px #2a5b3f47;-webkit-tap-highlight-color:transparent;transition:transform .15s ease}.balance-btn:active{transform:scale(.97)}.balance-btn:focus-visible{outline:2px solid var(--sage-action);outline-offset:2px}.balance-settled-text{margin:10px 0 0;font-size:14px;font-weight:600;color:var(--sage-action)}@media print{.balance-btn{display:none}}.nested-sheet-overlay{position:fixed;inset:0;z-index:1100;display:flex;align-items:flex-end;justify-content:center;background:#0006;backdrop-filter:var(--modal-backdrop-filter);-webkit-backdrop-filter:var(--modal-backdrop-filter);animation:nested-sheet-fade var(--duration-normal) var(--ease-out)}.nested-sheet{width:100%;max-width:428px;max-height:85vh;display:flex;flex-direction:column;background:var(--card-bg);border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;box-shadow:var(--shadow-lg);transition:transform .25s var(--ease-out);animation:nested-sheet-up .28s var(--ease-out)}.nested-sheet--dragging{transition:none}.nested-sheet--cream{background:var(--color-bg-primary)}.nested-sheet-grip{flex-shrink:0;padding:var(--space-sm) var(--component-padding-md) var(--space-md);cursor:grab;touch-action:none;-webkit-tap-highlight-color:transparent}.nested-sheet-handle{display:block;width:40px;height:4px;margin:0 auto var(--space-md);border-radius:var(--radius-full);background:var(--color-border-medium)}.nested-sheet-title{margin:0;text-align:center;font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary)}.nested-sheet-body{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 var(--component-padding-md) var(--component-padding-md)}.nested-sheet-footer{flex-shrink:0;display:flex;justify-content:center;padding:var(--space-md) var(--component-padding-md) calc(var(--component-padding-md) + env(safe-area-inset-bottom,0px));border-top:1px solid var(--color-border-light);background:var(--card-bg)}.nested-sheet-footer .btn--primary{flex:0 0 auto;width:auto;padding:var(--space-md) var(--space-2xl);border-radius:var(--radius-pill)}@keyframes nested-sheet-fade{0%{opacity:0}to{opacity:1}}@keyframes nested-sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.nested-sheet--full{height:92dvh;max-height:92dvh}.nested-sheet-headbar{flex-shrink:0;display:flex;align-items:center;gap:var(--space-sm);padding:0 var(--component-padding-md) var(--space-md);border-bottom:.5px solid var(--color-border-light)}.nested-sheet-headbar-icon{display:inline-flex;align-items:center;color:var(--color-text-secondary)}.nested-sheet-headbar-title{flex:1;margin:0;font-size:var(--text-base);font-weight:var(--font-medium);color:var(--color-text-primary)}.nested-sheet-close{flex-shrink:0;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-full);background:var(--color-bg-secondary);color:var(--color-text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--duration-normal) var(--ease-out)}.nested-sheet-close:hover{background:var(--color-border-light);color:var(--color-text-primary)}.nested-sheet-close:active{transform:scale(var(--scale-active))}.nested-sheet-btn-icon,.nested-sheet-spinner{display:inline-flex;align-items:center;vertical-align:middle;margin-right:var(--space-xs)}.nested-sheet-spinner{width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:var(--radius-full);animation:nested-sheet-spin .7s linear infinite}@keyframes nested-sheet-spin{to{transform:rotate(360deg)}}.reimb-sheet .nested-sheet-headbar-icon{color:var(--sage-action)}.reimb-sheet .nested-sheet-headbar-title{font-size:var(--text-lg);font-weight:var(--font-extrabold);color:var(--sage-hero);letter-spacing:-.4px}.reimb-sheet .nested-sheet-close{width:34px;height:34px;background:var(--pill-surface)}.reimb-sheet .nested-sheet-footer button{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;border-radius:var(--radius-full);background:var(--sage-action);color:#fff;padding:17px 0;font-size:var(--text-base);font-weight:var(--font-extrabold);letter-spacing:-.2px;box-shadow:0 6px 18px #2a5b3f52}.reimb-sheet .nested-sheet-btn-icon{margin-right:0}.reimb-context{display:flex;align-items:center;gap:14px;background:var(--sage-surface);border:.5px solid rgba(42,91,63,.08);border-radius:18px;padding:var(--space-lg) 18px;margin-bottom:var(--space-2xl)}.reimb-avatar{flex-shrink:0;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--text-lg);font-weight:var(--font-extrabold)}.reimb-avatar--partner{background:var(--honey-500);color:var(--honey-900)}.reimb-avatar--me{background:var(--primary-500);color:var(--sage-hero)}.reimb-context-text{display:flex;flex-direction:column;min-width:0}.reimb-context-label{font-size:var(--text-sm);font-weight:var(--font-medium);color:#4a6553;margin-bottom:2px}.reimb-context-amount{font-size:26px;font-weight:var(--font-extrabold);color:var(--sage-hero);letter-spacing:-.8px;line-height:1}.reimb-field{margin-bottom:var(--space-2xl)}.reimb-field:last-child{margin-bottom:0}.reimb-label{display:flex;align-items:baseline;gap:6px;font-size:var(--text-2xs);letter-spacing:1.1px;text-transform:uppercase;color:var(--color-text-secondary);font-weight:var(--font-bold);margin-bottom:10px}.reimb-amount-box{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);background:var(--card-bg);border:1.5px solid var(--sage-action);border-radius:var(--radius-lg);padding:var(--space-lg) 18px;margin-bottom:var(--space-md)}.reimb-amount-input{flex:1;min-width:0;border:none;background:none;padding:0;outline:none;font-family:inherit;font-size:30px;font-weight:var(--font-extrabold);color:var(--sage-hero);letter-spacing:-1px}.reimb-amount-input::placeholder{color:var(--color-text-muted)}.reimb-amount-suffix{flex-shrink:0;font-size:22px;font-weight:var(--font-extrabold);color:var(--accent-600);letter-spacing:-.5px}.reimb-pill{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;border-radius:var(--radius-full);padding:11px 16px;font-size:13px;font-weight:var(--font-bold);font-family:inherit;border:.5px solid var(--color-border-light);background:var(--pill-surface);color:var(--color-text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color .12s ease,color .12s ease,border-color .12s ease,box-shadow .12s ease}.reimb-pill svg{flex-shrink:0}.reimb-pill--active{background:var(--sage-action);color:#fff;border-color:var(--sage-action);box-shadow:0 3px 8px #2a5b3f40}.reimb-pill:focus-visible{outline:2px solid var(--primary-700);outline-offset:2px}.reimb-shortcuts{display:flex}.reimb-date-pills{display:flex;gap:var(--space-sm);flex-wrap:wrap}.reimb-date-pills .reimb-pill{flex:1}.reimb-date-pills .reimb-pill--other{flex:0 0 auto}.reimb-date-native{position:absolute;width:1px;height:1px;padding:0;border:0;opacity:0;pointer-events:none}.reimb-note-input{width:100%;background:var(--card-bg);border:.5px solid var(--color-border-light);border-radius:14px;padding:15px 16px;font-size:var(--text-sm);font-family:inherit;color:var(--sage-hero);outline:none}.reimb-note-input::placeholder{color:var(--color-text-muted)}.reimb-note-input:focus{border-color:var(--primary-500)}.home-view-clean{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--component-padding-md) var(--page-padding);padding-bottom:calc(var(--nav-height) + var(--space-md));height:100%;width:100%;background:var(--gradient-bg-light);box-sizing:border-box;overflow-y:auto;-webkit-overflow-scrolling:touch}.month-selector-minimal{display:flex;align-items:center;justify-content:center;gap:var(--component-gap-sm);padding:0}.month-nav-minimal{position:relative;width:32px;height:32px;border:none;background:transparent;color:var(--color-text-secondary);font-size:1.75rem;font-weight:var(--font-normal);cursor:pointer;transition:var(--transition-normal);display:flex;align-items:center;justify-content:center;touch-action:manipulation;-webkit-tap-highlight-color:transparent;padding:0;line-height:1;border-radius:var(--radius-sm)}.month-nav-minimal:before{content:"";position:absolute;top:50%;left:50%;width:var(--tap-target-min);height:var(--tap-target-min);transform:translate(-50%,-50%)}.month-nav-minimal:hover{color:var(--primary-500);transform:scale(var(--scale-hover));background:var(--primary-50)}.month-nav-minimal:active{transform:scale(var(--scale-active))}.month-title-minimal{font-size:var(--text-base);font-weight:var(--font-medium);color:var(--color-text-primary);margin:0;text-transform:capitalize;letter-spacing:.01em;white-space:nowrap;min-width:140px;text-align:center}.month-selector-minimal{gap:14px;padding:4px 4px 16px}.month-nav-minimal{width:30px;height:30px;border-radius:50%;background:#fff;border:.5px solid var(--color-border-light);color:#6e6a55}.month-nav-minimal svg{width:15px;height:15px}.month-nav-minimal:hover{background:#fff;color:#6e6a55;transform:none}.month-title-minimal{font-size:15px;font-weight:700;color:var(--sage-hero);min-width:0}.month-selector-label{display:flex;flex-direction:column;align-items:center;gap:2px}.month-entries-count{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.month-summary-card{background:var(--card-bg);border-radius:var(--card-radius);padding:var(--component-padding-md);box-shadow:var(--card-shadow);border:var(--card-border);display:flex;flex-direction:column;gap:var(--space-lg)}.month-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md)}.month-card-titles{display:flex;flex-direction:column;gap:var(--space-xs);min-width:0}.month-card-label{font-size:15px;font-weight:700;color:var(--sage-hero)}.month-card-sub{font-size:11px;font-weight:500;color:#9b9782}.month-cat-link{position:relative;display:inline-flex;align-items:center;padding:0;border:none;background:none;font:inherit;color:inherit;cursor:pointer}.month-cat-link:after{content:"";position:absolute;inset:-14px -8px}.month-cat-link:hover{opacity:.7}.month-cat-chevron{margin-left:2px;color:var(--color-text-tertiary)}.month-trend{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;padding:5px 11px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}button.month-trend{border:none;cursor:pointer;font:inherit;font-size:11px;font-weight:700;-webkit-appearance:none;appearance:none;transition:filter .15s ease}button.month-trend:hover{filter:brightness(.96)}button.month-trend:active{transform:scale(.97)}.month-trend-down{background:var(--sage-surface);color:var(--sage-action)}.month-trend-up{background:var(--alert-soft-bg);color:var(--alert-soft-text)}.month-trend-stable{background:transparent;color:var(--color-text-tertiary)}.month-card-body{display:flex;align-items:center;justify-content:center;gap:var(--space-xl);padding-top:var(--space-lg)}.month-donut{position:relative;width:140px;flex-shrink:0}.month-donut-svg{display:block;width:100%;height:auto}.month-donut-track{stroke:var(--color-bg-primary)}.month-donut-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.month-donut-amount{font-size:16px;font-weight:800;letter-spacing:-.4px;color:var(--sage-hero);line-height:1.1}.month-legend{min-width:0;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.month-legend-row{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.month-legend-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;flex-shrink:0}.month-legend-avatar.is-user{background:#a1cab5;color:var(--sage-hero);box-shadow:0 3px 8px #a1cab58c}.month-legend-avatar.is-partner{background:#eec75d;color:var(--honey-900);box-shadow:0 3px 8px #eec75d80}.month-legend-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.month-legend-head{display:flex;align-items:center;gap:6px;min-width:0}.month-legend-name{font-size:13px;font-weight:600;color:var(--sage-hero);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-legend-badge{flex-shrink:0;padding:1px 6px;border-radius:4px;font-size:10px;font-weight:700}.month-legend-badge.is-user{background:var(--sage-surface);color:var(--sage-action)}.month-legend-badge.is-partner{background:var(--honey-surface);color:var(--honey-900)}.month-legend-amount{font-size:16px;font-weight:800;letter-spacing:-.4px;color:var(--sage-hero)}.month-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-3xl) var(--space-lg);text-align:center}.month-empty-icon{color:var(--color-text-tertiary)}.month-empty-text{margin:0;font-size:var(--text-sm);color:var(--color-text-secondary)}.recent-expenses-card{background:var(--card-bg);border-radius:var(--card-radius);padding:var(--component-padding-md);box-shadow:var(--card-shadow);border:var(--card-border);display:flex;flex-direction:column;gap:var(--space-md)}.recent-expenses-header{display:flex;align-items:center;justify-content:space-between}.recent-expenses-title{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-primary)}.recent-expenses-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.recent-expense-row{display:flex;align-items:center;gap:var(--space-md);min-width:0}.recent-expense-icon{width:var(--size-avatar-sm);height:var(--size-avatar-sm);border-radius:var(--radius-full);background:var(--color-bg-secondary);display:flex;align-items:center;justify-content:center;font-size:var(--text-base);flex-shrink:0}.recent-expense-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.recent-expense-title{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-expense-meta{font-size:var(--text-xs);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-expense-amount{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-primary);flex-shrink:0}.recent-expenses-seeall{background:none;border:none;padding:0;cursor:pointer;font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--primary-800)}.recent-expenses-list.is-separated{gap:0}.recent-expenses-list.is-separated .recent-expense-row{padding:var(--space-sm) 0}.recent-expenses-list.is-separated .recent-expense-row+.recent-expense-row{border-top:.5px solid var(--color-border-light)}.home-view-clean:not(.solo-home) .month-summary-card,.home-view-clean:not(.solo-home) .recent-expenses-card{background:var(--color-bg-tertiary)}.home-view-clean:not(.solo-home) .recent-expenses-title{font-size:15px;font-weight:700;color:var(--sage-hero)}.home-view-clean:not(.solo-home) .recent-expenses-seeall{display:inline-flex;align-items:center;gap:2px;font-size:12px;font-weight:700;color:var(--sage-action)}.home-view-clean:not(.solo-home) .recent-expenses-list{gap:0}.home-view-clean:not(.solo-home) .recent-expense-row{gap:12px;padding:10px 0}.home-view-clean:not(.solo-home) .recent-expense-row+.recent-expense-row{border-top:.5px solid rgba(0,0,0,.05)}.home-view-clean:not(.solo-home) .recent-expense-icon{width:40px;height:40px;border-radius:12px}.home-view-clean:not(.solo-home) .recent-expense-meta{font-size:11px;font-weight:500;color:#9b9782}.home-view-clean:not(.solo-home) .recent-expense-amount{font-size:15px;font-weight:800;letter-spacing:-.3px;color:var(--sage-hero)}@media(max-width:360px){.month-donut{width:96px}.month-card-body{gap:var(--space-lg)}}@media(min-width:600px){.home-view-clean{padding:var(--component-padding-md) var(--page-padding);padding-bottom:calc(var(--nav-height) + var(--space-md));gap:var(--space-md)}}@media(min-width:768px){.home-view-clean{max-width:680px;margin:0 auto}.month-nav-minimal:hover{color:var(--primary-500);transform:scale(var(--scale-hover))}}@media(min-width:1024px){.home-view-clean{max-width:800px}}@media(max-width:480px){.home-view-clean{padding:var(--component-padding-sm) var(--space-lg);padding-bottom:calc(var(--nav-height) + var(--space-md));gap:var(--space-md)}.month-selector-minimal{gap:var(--space-lg)}.month-title-minimal{font-size:var(--text-sm);min-width:120px}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.home-view-clean{animation:fadeIn var(--duration-slow) var(--ease-out)}.month-nav-minimal:focus-visible{outline:2px solid var(--primary-700);outline-offset:2px}@media print{.home-view-clean{background:#fff;box-shadow:none}}.pb-card{background:var(--card-bg);border:var(--card-border);border-radius:var(--card-radius);box-shadow:var(--card-shadow);padding:16px;display:flex;flex-direction:column}.pb-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.pb-title{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-primary);min-width:0}.pb-status{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;padding:4px 10px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium);white-space:nowrap}.pb-status.is-ontrack{background:#e5f1eb;color:var(--primary-900)}.pb-status.is-attention{background:#fff6cc;color:#8b6914}.pb-status.is-highpace{background:var(--alert-soft-bg);color:var(--alert-soft-text)}.pb-status.is-exceeded{background:var(--alert-soft-text);color:var(--alert-soft-bg)}.pb-hero{display:flex;align-items:baseline;gap:var(--space-sm);margin-top:12px}.pb-spent{font-size:28px;font-weight:var(--font-medium);letter-spacing:-.4px;color:var(--color-text-primary);line-height:1.1}.pb-total{font-size:13px;color:var(--color-text-secondary)}.pb-context{margin:6px 0 0;font-size:var(--text-xs);color:var(--color-text-secondary);line-height:1.4}.pb-context strong{font-weight:var(--font-medium);color:var(--color-text-primary)}.pb-bar{position:relative;height:10px;border-radius:var(--radius-full);background:var(--surface-subtle);margin-top:12px}.pb-bar-fill{height:100%;border-radius:var(--radius-full);background:linear-gradient(90deg,var(--primary-500) 0%,#7dbc9f 100%)}.pb-bar-marker{position:absolute;top:-2px;width:2px;height:14px;background:#5c5a4c;border-radius:1px;transform:translate(-1px)}.pb-legends{display:flex;justify-content:space-between;margin-top:6px}.pb-legend-consumed,.pb-legend-elapsed{font-size:var(--text-3xs);color:var(--color-text-secondary)}.pb-legend-elapsed{display:inline-flex;align-items:center;gap:4px}.pb-legend-square{width:6px;height:6px;background:#5c5a4c;border-radius:1px}.pb-card--empty{gap:4px}.pb-empty-text{margin:8px 0 0;font-size:var(--text-sm);color:var(--color-text-secondary)}.pb-empty-cta{align-self:flex-start;margin-top:10px;padding:8px 16px;background:var(--primary-500);color:var(--primary-900);border:none;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium);cursor:pointer}.category-donut-svg{display:block;flex-shrink:0}.category-donut-amount{font-size:19px;font-weight:800;letter-spacing:-.4px;fill:var(--sage-hero)}.solo-cat-legend{min-width:0;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.solo-cat-row{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.solo-cat-swatch{width:8px;height:8px;border-radius:var(--radius-full);flex-shrink:0}.solo-cat-name{flex:1;min-width:0;font-size:var(--text-xs);color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.solo-cat-amount{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-primary);white-space:nowrap}.solo-cat-pct{font-size:var(--text-xs);color:var(--color-text-tertiary);min-width:2.4em;text-align:right}.solo-cat-row.is-others .solo-cat-name{font-style:italic;color:var(--color-text-tertiary)}.solo-cat-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-xl) var(--space-lg);text-align:center;color:var(--color-text-tertiary)}.solo-cat-empty-text{margin:0;font-size:var(--text-sm);color:var(--color-text-secondary)}.solo-cat-cta{margin-top:var(--space-xs);padding:8px 16px;background:var(--primary-500);color:var(--primary-900);border:none;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium);cursor:pointer}.pg-card{display:block;width:100%;text-align:left;background:var(--card-bg);border:var(--card-border);border-radius:var(--card-radius);box-shadow:var(--card-shadow);padding:var(--component-padding-md);cursor:pointer;-webkit-tap-highlight-color:transparent}.pg-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md)}.pg-titles{display:flex;flex-direction:column;gap:3px;min-width:0}.pg-eyebrow{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-primary)}.pg-name{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary);min-width:0}.pg-name-icon{color:var(--primary-700);flex-shrink:0}.pg-figures{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.pg-amounts{font-size:var(--text-sm);color:var(--color-text-primary);white-space:nowrap}.pg-pct{font-size:var(--text-xs);color:var(--color-text-tertiary)}.pg-bar{height:6px;border-radius:var(--radius-full);background:var(--surface-subtle);margin-top:12px;overflow:hidden}.pg-bar-fill{height:100%;border-radius:var(--radius-full);background:linear-gradient(90deg,var(--primary-500) 0%,#7dbc9f 100%)}.pg-projection{display:block;margin-top:8px;font-size:var(--text-xs);color:var(--color-text-tertiary)}.pg-exceptional{margin-top:12px;padding:6px 12px;background:transparent;border:.5px solid var(--color-border-light);border-radius:var(--radius-full);color:var(--primary-800);font-size:var(--text-2xs);font-weight:var(--font-medium);cursor:pointer}.pg-pending{margin-top:12px;padding:10px 12px;background:var(--surface-subtle);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:8px}.pg-pending-label{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--color-text-secondary)}.pg-pending-actions{display:flex;gap:var(--space-sm)}.pg-btn-primary{padding:8px 14px;background:var(--sage-action);color:#fff;border:none;border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:var(--font-semibold);cursor:pointer;white-space:nowrap}.pg-btn-secondary{padding:8px 14px;background:transparent;border:none;color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:var(--font-medium);cursor:pointer}.pg-card--reached{display:flex;flex-direction:column;align-items:flex-start}.pg-card--reached .pg-name-icon{color:var(--primary-700)}.pg-name--reached{font-size:17px;font-weight:var(--font-semibold);color:var(--color-text-primary);margin-top:2px}.pg-reached-sub{margin:8px 0 0;font-size:var(--text-sm);color:var(--color-text-secondary)}.pg-actions{display:flex;align-items:center;gap:var(--space-sm);margin-top:12px}.pg-card--empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);background:var(--card-bg);border:.5px dashed var(--color-border-light);border-radius:var(--card-radius);padding:var(--space-xl) var(--space-lg);text-align:center;cursor:default}.pg-purchased-note{margin:0 0 var(--space-xs);font-size:var(--text-xs);color:var(--color-text-secondary)}.pg-purchased-detail{margin:0 0 var(--space-sm);padding:0;background:none;border:none;color:var(--primary-800);font-size:var(--text-xs);font-weight:var(--font-medium);cursor:pointer}.pg-empty-icon{color:var(--color-text-tertiary)}.pg-empty-text{margin:0;font-size:var(--text-sm);color:var(--color-text-secondary)}.pg-empty-cta{margin-top:var(--space-xs);padding:8px 16px;background:var(--sage-action);color:#fff;border:none;border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:var(--font-semibold);cursor:pointer}.goal-sheet{display:flex;flex-direction:column;gap:var(--space-lg);padding:var(--space-sm) 0 var(--space-md)}.goal-sheet-sub{margin:0;font-size:var(--text-xs);color:var(--color-text-secondary)}.goal-field{display:flex;flex-direction:column;gap:var(--space-xs)}.goal-field-label{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.goal-input,.goal-amount input{width:100%;border:.5px solid var(--color-border-light);border-radius:var(--radius-md);padding:10px 12px;font-size:var(--text-sm);color:var(--color-text-primary);background:#fff}.goal-input:focus,.goal-amount input:focus{outline:none;border-color:var(--primary-500)}.goal-amount{position:relative;display:flex;align-items:center}.goal-amount input{padding-right:28px}.goal-amount--hero input{font-size:24px;padding:12px}.goal-amount-suffix{position:absolute;right:12px;font-size:var(--text-sm);color:var(--color-text-secondary);pointer-events:none}.goal-icons{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.goal-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);border:.5px solid var(--color-border-light);background:#fff;color:var(--color-text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent}.goal-icon.is-selected{border-color:var(--primary-500);background:var(--primary-100);color:var(--primary-900)}.goal-icon svg{width:20px;height:20px;flex-shrink:0}.goal-icon-more{height:40px;padding:0 12px;border-radius:var(--radius-md);border:.5px dashed var(--color-border-light);background:none;font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--primary-800);cursor:pointer}.goal-section{display:flex;flex-direction:column;gap:var(--space-sm)}.goal-section-title{font-size:var(--text-3xs);font-weight:var(--font-semibold);letter-spacing:.6px;text-transform:uppercase;color:var(--color-text-secondary)}.goal-progress-row{display:flex;justify-content:space-between;font-size:var(--text-sm);color:var(--color-text-primary)}.goal-progress-pct{color:var(--color-text-tertiary)}.goal-progress-bar{height:6px;border-radius:var(--radius-full);background:var(--surface-subtle);overflow:hidden}.goal-progress-fill{height:100%;border-radius:var(--radius-full);background:linear-gradient(90deg,var(--primary-500),#7dbc9f)}.goal-breakdown{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.goal-breakdown li{display:flex;justify-content:space-between;font-size:var(--text-xs);color:var(--color-text-secondary)}.goal-breakdown-total{padding-top:4px;margin-top:2px;border-top:.5px solid var(--color-border-light);font-weight:var(--font-semibold)}.goal-breakdown-total span{color:var(--color-text-primary)}.goal-history{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.goal-history-row{padding:var(--space-sm) 0;border-top:.5px solid var(--color-border-light)}.goal-history-row:first-child{border-top:none}.goal-history-main{display:flex;flex-direction:column;gap:2px}.goal-history-amount{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-primary)}.goal-history-meta{font-size:var(--text-xs);color:var(--color-text-tertiary)}.goal-history-empty{margin:0;font-size:var(--text-xs);color:var(--color-text-tertiary)}.goal-purchase-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm) 0;border-top:.5px solid var(--color-border-light)}.goal-purchase-row:first-child{border-top:none}.goal-purchase-trash{flex-shrink:0;padding:6px;line-height:0;border:none;background:transparent;color:var(--color-text-tertiary);cursor:pointer;-webkit-tap-highlight-color:transparent}.goal-purchase-confirm{display:inline-flex;align-items:center;gap:var(--space-xs);flex-shrink:0}.goal-purchase-del{padding:6px 12px;border:none;border-radius:var(--radius-pill);background:var(--alert-soft-bg);color:var(--alert-soft-text);font-size:var(--text-xs);font-weight:var(--font-medium);cursor:pointer}.goal-actions-block{display:flex;flex-direction:column;gap:var(--space-sm)}.goal-use-btn{padding:12px 16px;border:none;border-radius:var(--radius-pill);background:var(--sage-action);color:#fff;box-shadow:0 3px 10px #2a5b3f47;font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer}.goal-skip-btn{align-self:flex-start;padding:10px 16px;border:none;border-radius:var(--radius-pill);background:var(--alert-soft-bg);color:var(--alert-soft-text);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer}.goal-close-btn{padding:10px 16px;border:.5px solid var(--color-border-light);border-radius:var(--radius-pill);background:transparent;color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer}.goal-close-confirm{display:flex;flex-direction:column;gap:var(--space-sm);padding:12px;border-radius:var(--radius-md);background:var(--surface-subtle)}.goal-close-confirm-text{font-size:var(--text-xs);color:var(--color-text-secondary)}.goal-close-confirm-actions{display:flex;gap:var(--space-sm)}.goal-close-cancel{padding:8px 14px;border:none;background:transparent;color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:var(--font-medium);cursor:pointer}.goal-close-do{padding:8px 14px;border:none;border-radius:var(--radius-pill);background:var(--color-text-secondary);color:#fff;font-size:var(--text-xs);font-weight:var(--font-medium);cursor:pointer}.goal-info-card{padding:12px;border-radius:var(--radius-md);background:var(--surface-subtle);font-size:var(--text-sm);color:var(--color-text-primary)}.goal-hint{margin:-6px 0 0;font-size:var(--text-xs);color:var(--alert-soft-text)}.goal-carryover-hint{margin:0;font-size:var(--text-xs);color:var(--primary-800)}.goal-source-choice{display:flex;flex-direction:column;gap:var(--space-xs);margin-top:var(--space-xs)}.goal-source-option{display:flex;flex-direction:column;gap:1px;text-align:left;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--card-bg);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color .15s ease,background .15s ease}.goal-source-option.is-selected{border-color:var(--sage-action);background:var(--sage-surface-hero)}.goal-source-main{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-primary)}.goal-source-sub{font-size:var(--text-2xs);color:var(--color-text-tertiary)}.goal-source-option.is-selected .goal-source-sub{color:var(--sage-action)}.solo-home{gap:var(--space-lg);padding-bottom:calc(var(--nav-height) + var(--space-lg))}.budget-section{display:flex;flex-direction:column;gap:var(--component-gap-md);align-items:center;width:100%;max-width:400px}.section-header{display:flex;align-items:center;justify-content:space-between;width:100%}.section-header h2{margin:0;font-size:var(--text-2xl);font-weight:var(--font-semibold);color:var(--color-text-primary)}.edit-budget-btn{background:var(--neutral-100);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-lg);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);cursor:pointer;transition:var(--transition-colors);-webkit-tap-highlight-color:transparent}.edit-budget-btn:hover{background:var(--neutral-200);border-color:var(--color-border-medium);color:var(--color-text-primary)}.edit-budget-btn:active{transform:scale(var(--scale-active))}.no-budget-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-4xl) var(--space-2xl);background:#fff;border-radius:var(--radius-xl);border:2px dashed var(--color-border-light);gap:var(--space-lg);width:100%;max-width:400px}.no-budget-icon{font-size:3rem;margin-bottom:var(--space-sm)}.no-budget-content{display:flex;flex-direction:column;gap:var(--space-lg);align-items:center}.no-budget-content h3{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text-primary);margin:0}.no-budget-content p{color:var(--color-text-secondary);margin:0;font-size:var(--text-base);max-width:300px}.set-budget-btn{background:var(--gradient-secondary);color:#fff;border:none;border-radius:var(--radius-lg);padding:var(--space-lg) var(--space-2xl);font-size:var(--text-base);font-weight:var(--font-semibold);cursor:pointer;transition:var(--transition-normal);box-shadow:var(--shadow-secondary);min-height:48px;-webkit-tap-highlight-color:transparent}.set-budget-btn:hover{background:linear-gradient(135deg,var(--secondary-600) 0%,var(--secondary-700) 100%);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.set-budget-btn:active{transform:scale(var(--scale-active))}.solo-budget-summary-redesign{width:100%;display:flex;justify-content:center;max-width:400px}.budget-overview-card{background:var(--card-bg);border-radius:var(--card-radius);padding:var(--component-padding-lg);box-shadow:var(--card-shadow);border:var(--card-border);width:100%}.budget-main-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-lg);align-items:stretch}.budget-stat-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-lg) var(--space-sm);background:transparent;border:none;border-radius:var(--radius-lg);cursor:pointer;transition:var(--transition-normal);text-align:center;-webkit-tap-highlight-color:transparent;min-height:80px}.budget-stat-item:hover{background:var(--neutral-50);transform:translateY(-2px)}.budget-stat-item:active{transform:scale(var(--scale-active))}.stat-circle{width:48px;height:48px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;flex-shrink:0}.income-circle{background:linear-gradient(135deg,var(--secondary-100),var(--secondary-200));color:var(--secondary-600)}.expenses-circle{background:linear-gradient(135deg,var(--neutral-100),var(--neutral-200));color:var(--neutral-600)}.balance-circle{background:linear-gradient(135deg,var(--primary-100),var(--primary-200));color:var(--primary-600)}.balance-item.positive .balance-circle{background:linear-gradient(135deg,var(--secondary-100),var(--secondary-200));color:var(--secondary-600)}.balance-item.negative .balance-circle{background:linear-gradient(135deg,var(--error-100),var(--error-200));color:var(--error-600)}.stat-icon-svg{width:24px;height:24px;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.stat-details{display:flex;flex-direction:column;gap:var(--space-xs);align-items:center}.stat-amount{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--color-text-primary);line-height:var(--leading-tight)}.stat-label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.loading-state,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-5xl) var(--space-2xl);text-align:center;gap:var(--space-lg)}.loading-spinner{width:2rem;height:2rem;border:3px solid var(--color-border-light);border-top:3px solid var(--secondary-500);border-radius:var(--radius-full);animation:spin 1s linear infinite}.loading-state span,.error-state span{color:var(--color-text-secondary);font-size:var(--text-base);font-weight:var(--font-medium)}@media(max-width:480px){.solo-home{gap:var(--component-gap-sm);padding-bottom:calc(var(--nav-height) + var(--space-lg))}.budget-section{gap:var(--component-gap-sm)}.section-header{flex-direction:column;gap:var(--space-lg);align-items:stretch;text-align:center}.section-header h2{font-size:var(--text-xl)}.no-budget-state{padding:var(--space-3xl) var(--space-lg)}.no-budget-content h3{font-size:var(--text-lg)}.no-budget-content p{font-size:var(--text-sm)}.budget-main-stats{grid-template-columns:1fr;gap:var(--space-md)}.budget-stat-item{flex-direction:row;justify-content:flex-start;text-align:left;padding:var(--space-lg);background:var(--neutral-50);border:1px solid var(--color-border-light)}.stat-details{align-items:flex-start;flex:1}.stat-amount{font-size:var(--text-xl)}}@media(min-width:481px)and (max-width:768px){.budget-overview-card{padding:var(--component-padding-md)}.budget-main-stats{gap:var(--space-md)}.stat-circle{width:44px;height:44px}.stat-icon-svg{width:22px;height:22px}}@media(min-width:769px){.solo-home{max-width:600px}.budget-section{max-width:500px}.budget-stat-item:hover{background:var(--neutral-50);transform:translateY(-4px);box-shadow:var(--shadow-sm)}}.inline-loader{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-2xl)}.inline-loader-ring{width:28px;height:28px;border-radius:50%;border:3px solid var(--color-border);border-top-color:#2f6e5b;animation:inline-loader-spin .8s linear infinite}.inline-loader-label{color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium)}@keyframes inline-loader-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.inline-loader-ring{animation:none}}.confirm-dialog-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;padding:20px}.confirm-dialog-overlay.fade-in{animation:fadeIn .2s cubic-bezier(.4,0,.2,1)}.confirm-dialog-overlay.fade-out{animation:fadeOut .2s cubic-bezier(.4,0,.2,1)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.confirm-dialog{background:#fff;border-radius:16px;box-shadow:0 20px 50px #00000026;max-width:400px;width:100%;overflow:hidden}.confirm-dialog.slide-up{animation:slideUp .3s cubic-bezier(.4,0,.2,1)}.confirm-dialog.slide-down{animation:slideDown .2s cubic-bezier(.4,0,.2,1)}@keyframes slideUp{0%{transform:translateY(20px) scale(.95);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes slideDown{0%{transform:translateY(0) scale(1);opacity:1}to{transform:translateY(20px) scale(.95);opacity:0}}.confirm-dialog-header{display:flex;flex-direction:column;align-items:center;padding:24px 24px 16px;text-align:center}.confirm-dialog-icon{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:16px}.confirm-dialog-icon.primary{background:var(--primary-100);color:var(--primary-800)}.confirm-dialog-icon.danger{background:#ef44441a;color:var(--error-500)}.confirm-dialog-icon.warning{background:#f59e0b1a;color:var(--warning-500)}.confirm-dialog-title{margin:0;font-size:18px;font-weight:600;color:var(--color-text-primary);line-height:1.3}.confirm-dialog-body{padding:0 24px 24px}.confirm-dialog-message{margin:0;font-size:14px;line-height:1.5;color:var(--color-text-secondary);text-align:center}.confirm-dialog-actions{display:flex;gap:12px;padding:0 24px 24px}.confirm-dialog-btn{flex:1;padding:12px 20px;border-radius:var(--radius-pill);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;border:none;display:flex;align-items:center;justify-content:center;gap:8px}.confirm-dialog-btn:disabled{opacity:.6;cursor:not-allowed}.confirm-dialog-btn.cancel{background:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-border-medium)}.confirm-dialog-btn.cancel:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-text-tertiary)}.confirm-dialog-btn.confirm.primary{background:var(--primary-500);color:var(--primary-900)}.confirm-dialog-btn.confirm.primary:hover:not(:disabled){background:var(--primary-600)}.confirm-dialog-btn.confirm.danger{background:var(--error-500);color:#fff}.confirm-dialog-btn.confirm.danger:hover:not(:disabled){background:var(--error-600)}.confirm-dialog-btn.confirm.warning{background:var(--warning-500);color:#fff}.confirm-dialog-btn.confirm.warning:hover:not(:disabled){background:#d97706}.spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top:2px solid white;border-radius:50%;animation:spin 1s linear infinite}@media(max-width:480px){.confirm-dialog-overlay{padding:16px}.confirm-dialog{max-width:none}.confirm-dialog-header{padding:20px 20px 12px}.confirm-dialog-body{padding:0 20px 20px}.confirm-dialog-actions{padding:0 20px 20px;flex-direction:column}.confirm-dialog-actions .confirm-dialog-btn{width:100%}}.nested-sheet-body:has(>.cat-sheet){padding:0}.cat-sheet{display:flex;flex-direction:column}.cat-sheet__header{position:relative;display:flex;align-items:center;justify-content:space-between;padding:6px 16px 14px}.cat-sheet__header:after{content:"";position:absolute;left:16px;right:16px;bottom:0;height:.5px;background:var(--color-border-light)}.cat-sheet__title{margin:0;font-size:15px;font-weight:500;color:var(--color-text-primary)}.cat-sheet__close{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--radius-full);background:var(--surface-subtle);color:var(--color-text-secondary);cursor:pointer}.cat-sheet__close svg{width:18px;height:18px;flex-shrink:0}.cat-sheet__section{padding:14px 16px 0}.cat-sheet__label{display:block;font-size:var(--text-3xs);font-weight:500;letter-spacing:.6px;text-transform:uppercase;color:var(--color-text-secondary);margin-bottom:6px}.cat-sheet__name{width:100%;border:none;border-bottom:1px solid var(--color-border-medium);background:transparent;padding:6px 0;font-size:14px;color:var(--color-text-primary);outline:none;transition:border-color var(--duration-fast, .15s) var(--ease-out)}.cat-sheet__name::placeholder{color:var(--color-text-tertiary)}.cat-sheet__name.is-valid,.cat-sheet__name:focus{border-bottom-color:var(--primary-500)}.cat-sheet__icon-head{display:flex;align-items:baseline;justify-content:space-between}.cat-sheet__count{font-size:var(--text-2xs);color:var(--color-text-tertiary)}.cat-sheet__search{display:flex;align-items:center;gap:8px;padding:8px 12px;border:.5px solid var(--color-border-light);border-radius:var(--radius-full);background:var(--color-bg-primary, #fbf8ee);transition:border-color var(--duration-fast, .15s) var(--ease-out)}.cat-sheet__search:focus-within{border-color:var(--primary-500)}.cat-sheet__search-icon{flex-shrink:0;color:var(--color-text-tertiary)}.cat-sheet__search-input{flex:1;min-width:0;border:none;background:transparent;font-size:13px;color:var(--color-text-primary);outline:none}.cat-sheet__search-input::placeholder{color:var(--color-text-tertiary)}.cat-sheet__grid-wrap{padding:14px 16px 16px}.cat-sheet__group{margin-bottom:18px}.cat-sheet__group:last-child{margin-bottom:0}.cat-sheet__group-title{margin:0 0 8px;font-size:var(--text-2xs);font-weight:500;color:var(--color-text-secondary)}.cat-sheet__grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.cat-sheet__tile{display:flex;align-items:center;justify-content:center;aspect-ratio:1;border:.5px solid rgba(0,0,0,.08);border-radius:var(--radius-md);background:#fff;color:#8b8870;cursor:pointer;transition:border-color var(--duration-fast, .15s) var(--ease-out),background var(--duration-fast, .15s) var(--ease-out)}.cat-sheet__tile.is-selected{border-width:1px}.cat-sheet__empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px 16px;color:var(--color-text-tertiary)}.cat-sheet__empty-text{margin:0;font-size:13px;color:var(--color-text-secondary)}.cat-sheet__empty-clear{border:none;background:transparent;color:var(--primary-800);font-size:13px;text-decoration:underline;cursor:pointer}.cat-sheet__footer{position:sticky;bottom:0;padding:12px 16px calc(16px + env(safe-area-inset-bottom,0px));border-top:.5px solid var(--color-border-light);background:#fff}.cat-sheet__submit{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:13px 18px;border:none;border-radius:var(--radius-pill);background:var(--sage-action);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:opacity var(--duration-fast, .15s) var(--ease-out)}.cat-sheet__submit:disabled{opacity:.4;cursor:not-allowed}.cat-sheet__delete{width:100%;margin-top:var(--space-sm);padding:11px 18px;border:none;border-radius:var(--radius-pill);background:var(--alert-soft-bg);color:var(--alert-soft-text);font-size:14px;font-weight:var(--font-medium);cursor:pointer}.modal-overlay{position:fixed;inset:0;background-color:#00000080;backdrop-filter:var(--modal-backdrop-filter);-webkit-backdrop-filter:var(--modal-backdrop-filter);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}.modal-content{background:var(--color-bg-primary);border-radius:var(--radius-2xl);max-width:500px;width:100%;max-height:90vh;overflow:auto;position:relative;box-shadow:var(--shadow-lg)}.modal-content--form{max-width:428px;background:var(--color-bg-tertiary)}.modal-content--form .modal-header{background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border-light);align-items:center;padding:var(--space-md) var(--component-padding-md);z-index:3}.modal-content--form .modal-title{font-size:var(--text-lg)}.modal-content--form .modal-close-btn{width:32px;height:32px;background:var(--pill-surface)}.modal-content--form .modal-sticky-footer{background:var(--color-bg-tertiary)}.modal-content--form .modal-body{padding-bottom:88px}.modal-content--form .choice-btn:not(.choice-btn--selected),.modal-content--form .choice-pill:not(.choice-pill--selected){background:var(--pill-surface);border-color:var(--pill-border)}.modal-header{position:sticky;top:0;z-index:1;padding:var(--component-padding-md);border-bottom:1px solid var(--color-border-light);display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-md);background:#fff}.modal-eyebrow{display:block;font-size:var(--text-xs);font-weight:var(--font-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:2px}.modal-title{margin:0;font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--color-text-primary);line-height:var(--leading-tight)}.modal-close-btn{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);border:none;cursor:pointer;color:var(--color-text-secondary);border-radius:var(--radius-full);-webkit-tap-highlight-color:transparent;transition:background-color var(--duration-normal) ease,color var(--duration-normal) ease}.modal-close-btn:hover{background:var(--color-border-light);color:var(--color-text-primary)}.modal-close-btn:focus-visible{outline:2px solid var(--primary-700);outline-offset:2px}.modal-close-btn svg{width:20px;height:20px;flex-shrink:0}.modal-body{padding:var(--component-padding-md)}.expense-form{display:flex;flex-direction:column;gap:var(--section-gap)}.expense-form .form-group{display:flex;flex-direction:column;gap:var(--space-sm)}.xf-identity{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding-top:var(--space-md)}.xf-amount-field{display:flex;align-items:baseline;gap:var(--space-xs)}.xf-amount-input{width:6ch;min-width:0;border:none;background:none;padding:0;text-align:center;font-family:inherit;font-size:2.5rem;font-weight:var(--font-extrabold);letter-spacing:-.02em;line-height:1;color:var(--sage-hero);appearance:textfield;-moz-appearance:textfield}.xf-amount-input:focus{outline:none}.xf-amount-input::placeholder{color:var(--color-text-muted);font-weight:var(--font-extrabold)}.xf-amount-input::-webkit-outer-spin-button,.xf-amount-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.xf-amount-cur{font-size:1.75rem;font-weight:var(--font-medium);color:var(--accent-600);opacity:.8}.xf-desc{width:100%;border:none;background:none;padding:0;text-align:center;font-family:inherit;font-size:var(--text-base);color:var(--color-text-primary)}.xf-desc:focus{outline:none}.xf-desc::placeholder{color:var(--color-text-muted)}.form-label{display:flex;align-items:baseline;justify-content:space-between;font-weight:var(--font-medium);color:var(--color-text-secondary);font-size:var(--text-sm)}.form-label-tag{font-weight:var(--font-normal);letter-spacing:0;text-transform:none;color:var(--color-text-muted)}.modal-body .form-label,.modal-body .details-field-label{font-size:var(--text-sm);font-weight:var(--font-medium);letter-spacing:0;text-transform:none;color:var(--color-text-secondary)}.form-input{width:100%;padding:var(--space-md);border:1px solid var(--color-border-medium);border-radius:var(--radius-md);font-size:16px;font-family:inherit;color:var(--color-text-primary);background:var(--card-bg);box-sizing:border-box;transition:border-color var(--duration-normal) ease}.form-input:focus{outline:none;border-color:var(--primary-500)}.form-input-wrapper{position:relative}.form-input--with-suffix{padding-right:var(--space-3xl)}.form-input-suffix{position:absolute;right:var(--space-md);top:50%;transform:translateY(-50%);color:var(--color-text-secondary);font-weight:var(--font-medium)}.modal-body .form-input--underline{border:none;border-bottom:1px solid var(--color-border-medium);border-radius:0;padding:var(--space-sm) 0;font-size:var(--text-lg)}.modal-body .form-input--underline:focus{border-bottom-color:var(--primary-500)}.modal-body .amount-field{display:flex;align-items:baseline;gap:var(--space-sm);border-bottom:2px solid var(--primary-500);padding-bottom:var(--space-sm)}.modal-body .amount-field-input{flex:1;min-width:0;border:none;background:none;padding:0;font-family:inherit;font-size:var(--text-4xl);font-weight:var(--font-bold);line-height:1.1;color:var(--color-text-primary);appearance:textfield;-moz-appearance:textfield}.modal-body .amount-field-input,.modal-body .amount-field-input:focus{outline:none;box-shadow:none}.modal-body .amount-field-input::placeholder{color:var(--color-text-muted);font-weight:var(--font-bold)}.modal-body .amount-field-input::-webkit-outer-spin-button,.modal-body .amount-field-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.modal-body .amount-field-suffix{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--accent-600)}.modal-body .category-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-lg) var(--space-sm)}.modal-body .category-btn{padding:0;border:none;background:none;box-shadow:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);width:auto;min-height:0;-webkit-tap-highlight-color:transparent}.modal-body .category-icon{width:100%;max-width:58px;aspect-ratio:1;margin:0 auto;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-lg);background:var(--pill-surface);color:var(--color-text-secondary);border:1px solid var(--pill-border);transition:background-color var(--duration-normal) ease,color var(--duration-normal) ease,box-shadow var(--duration-normal) ease}.modal-body .category-btn--selected .category-icon{background:var(--sage-surface);color:var(--sage-action);border-color:transparent;box-shadow:0 0 0 2px var(--sage-action)}.modal-body .category-btn--create .category-icon{background:var(--color-bg-tertiary);border:1.5px dashed var(--pill-border);color:var(--color-text-secondary)}.modal-body .category-name{font-size:var(--text-2xs);font-weight:var(--font-medium);color:var(--color-text-secondary);text-align:center;line-height:1.15;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal-body .category-btn--selected .category-name{color:var(--color-text-primary);font-weight:var(--font-semibold)}.cat-create{display:flex;flex-direction:column;gap:var(--space-lg);padding-top:var(--space-sm)}.cat-create-icons{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--space-sm)}.cat-create-icon{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--card-bg);color:var(--color-text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color var(--duration-normal) ease,background-color var(--duration-normal) ease}.cat-create-icon.is-selected{border:2px solid var(--primary-500);background:var(--primary-50);color:var(--primary-700)}.cat-create-colors{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.cat-create-color{width:36px;height:36px;display:flex;align-items:center;justify-content:center;padding:2px;border:2px solid transparent;border-radius:var(--radius-full);background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.cat-create-color.is-selected{border-color:var(--color-text-primary)}.choice-group{display:flex;gap:var(--space-md)}.choice-btn{flex:1;min-width:0;padding:var(--space-md) var(--space-lg);border:1px solid var(--color-border-medium);border-radius:var(--radius-full);background:var(--card-bg);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-primary);transition:border-color var(--duration-normal) ease,background-color var(--duration-normal) ease,color var(--duration-normal) ease;-webkit-tap-highlight-color:transparent}.choice-btn:not(.choice-btn--selected):hover{border-color:var(--primary-400)}.choice-btn--selected{border-color:var(--sage-action);background:var(--sage-action);color:#fff;font-weight:var(--font-extrabold);box-shadow:0 3px 8px #2a5b3f40}.split-config{margin-top:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm)}.split-config-label{font-size:var(--text-sm);color:var(--color-text-secondary)}.date-pills{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.cal{display:flex;flex-direction:column;padding-top:var(--space-xs)}.cal-head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-xs) var(--space-xs) var(--space-lg)}.cal-month{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--color-text-primary);text-transform:capitalize}.cal-nav{display:flex;gap:var(--space-xs)}.cal-nav button{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-full);background:var(--pill-surface);color:var(--sage-action);cursor:pointer;-webkit-tap-highlight-color:transparent}.cal-nav button svg{width:18px;height:18px;flex-shrink:0}.cal-dow{display:grid;grid-template-columns:repeat(7,1fr)}.cal-dow span{text-align:center;font-size:var(--text-2xs);font-weight:var(--font-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em;padding-bottom:var(--space-sm)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-xs)}.cal-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border:none;background:none;border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-primary);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--duration-fast) ease}.cal-day:not(.cal-day--sel):not(:disabled):hover{background:var(--pill-surface)}.cal-day--out{color:var(--color-text-muted);font-weight:var(--font-normal)}.cal-day--today{box-shadow:inset 0 0 0 1.5px var(--primary-500);font-weight:var(--font-bold)}.cal-day--sel{background:var(--sage-action);color:#fff;font-weight:var(--font-bold);box-shadow:0 2px 6px #2a5b3f4d}.cal-day:disabled{color:var(--color-text-muted);opacity:.4;cursor:not-allowed}.cal-foot{display:flex;justify-content:flex-end;padding-top:var(--space-lg);margin-top:var(--space-sm);border-top:1px solid var(--color-border-light)}.cal-ok{border:none;border-radius:var(--radius-full);background:var(--sage-action);color:#fff;font-weight:var(--font-bold);font-size:var(--text-sm);padding:var(--space-md) var(--space-2xl);box-shadow:0 3px 10px #2a5b3f47;cursor:pointer;-webkit-tap-highlight-color:transparent}.cal-day:focus-visible,.cal-nav button:focus-visible,.cal-ok:focus-visible{outline:2px solid var(--primary-700);outline-offset:2px}.choice-pill{padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border-medium);border-radius:var(--radius-full);background:var(--card-bg);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-primary);cursor:pointer;display:inline-flex;align-items:center;gap:var(--space-xs);white-space:nowrap;-webkit-tap-highlight-color:transparent;transition:border-color var(--duration-normal) ease,background-color var(--duration-normal) ease,color var(--duration-normal) ease}.choice-pill:not(.choice-pill--selected):hover{border-color:var(--primary-400)}.choice-pill--selected{border-color:var(--sage-action);background:var(--sage-action);color:#fff;font-weight:var(--font-extrabold);box-shadow:0 3px 8px #2a5b3f40}.expense-form .details-group{background:var(--pill-surface);border:none;border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm)}.modal-body .details-toggle-title{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-primary)}.details-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:0;border:none;background:none;cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent}.details-toggle-main{display:flex;flex-direction:column;gap:2px;min-width:0}.details-toggle-sub{font-size:var(--text-xs);color:var(--color-text-muted)}.details-chevron{flex-shrink:0;color:var(--color-text-secondary);transition:transform var(--duration-normal) ease}.details-chevron.is-open{transform:rotate(180deg)}.details-body{display:flex;flex-direction:column;gap:var(--space-md);margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--color-border-light)}.details-field{display:flex;flex-direction:column;gap:var(--space-sm)}.details-textarea{resize:vertical;font-family:inherit}.details-note{margin:0;font-size:var(--text-sm);color:var(--color-text-muted)}.details-receipt-btn{display:inline-flex;align-items:center;gap:var(--space-sm);align-self:flex-start;padding:var(--space-sm) var(--space-md);border:1px dashed var(--color-border-medium);border-radius:var(--radius-md);background:var(--card-bg);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;-webkit-tap-highlight-color:transparent}.details-receipt-btn:hover{border-color:var(--primary-400);color:var(--color-text-primary)}.receipt-options{display:flex;flex-direction:column;gap:var(--space-md);padding-top:var(--space-sm)}.receipt-option{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--card-bg);color:var(--color-text-primary);font-size:var(--text-base);font-weight:var(--font-medium);cursor:pointer}.receipt-option:disabled{opacity:.5;cursor:not-allowed}.receipt-note{margin:var(--space-xs) 0 0;text-align:center;font-size:var(--text-xs);color:var(--color-text-muted)}.choice-btn--full{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--space-sm)}.choice-btn--avatar{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm)}.choice-avatar{width:20px;height:20px;flex-shrink:0;border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:var(--font-bold)}.choice-avatar.is-me{background:var(--primary-500);color:#fff}.choice-avatar.is-partner{background:var(--surface-cream);color:var(--accent-900)}.choice-btn--selected .choice-avatar.is-me{background:var(--pill-surface);color:var(--sage-action)}.frequency-group{display:flex;gap:var(--space-sm);margin-top:var(--space-md)}.frequency-btn{flex:1;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border-medium);border-radius:var(--radius-md);background:var(--card-bg);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-normal);color:var(--color-text-primary);transition:border-color var(--duration-normal) ease,background-color var(--duration-normal) ease,color var(--duration-normal) ease;-webkit-tap-highlight-color:transparent}.frequency-btn--selected{border:2px solid var(--primary-500);background:var(--primary-50);font-weight:var(--font-semibold);color:var(--primary-900)}.modal-actions{display:flex;gap:var(--space-md);margin-top:var(--space-xl)}.modal-sticky-footer{position:sticky;bottom:0;z-index:2;margin:var(--space-sm) calc(var(--component-padding-md) * -1) calc(var(--component-padding-md) * -1);padding:var(--space-md) var(--component-padding-md) calc(var(--component-padding-md) + env(safe-area-inset-bottom,0px));background:var(--color-bg-primary);border-top:1px solid var(--color-border-light)}.btn--block{width:100%}.btn{flex:1;display:inline-flex;gap:6px;padding:var(--space-md);border-radius:var(--radius-md);font-size:var(--text-base);cursor:pointer;font-weight:var(--font-medium);min-height:48px;transition:background-color var(--duration-normal) ease,opacity var(--duration-normal) ease;display:flex;align-items:center;justify-content:center;gap:var(--space-sm);-webkit-tap-highlight-color:transparent}.btn:focus-visible{outline:2px solid var(--primary-700);outline-offset:2px}.btn--secondary{border:1px solid var(--color-border-medium);background:var(--card-bg);color:var(--color-text-primary)}.btn--secondary:hover{background:var(--neutral-50)}.btn--primary{border:none;border-radius:var(--radius-pill);background:var(--sage-action);color:#fff;font-weight:var(--font-semibold);box-shadow:0 3px 10px #2a5b3f47}.btn--primary:hover{opacity:.92}.btn--primary:disabled{background:var(--color-border-medium);box-shadow:none;cursor:not-allowed}.expense-form .xf-submit{border-radius:var(--radius-pill);background:var(--sage-action);color:#fff;font-weight:var(--font-bold);box-shadow:0 3px 10px #2a5b3f47;transition:transform .15s ease}.expense-form .xf-submit:active{transform:scale(.98)}.expense-form .xf-submit:disabled{background:var(--color-border-medium);color:var(--color-bg-primary);box-shadow:none;cursor:not-allowed}.xd{display:flex;flex-direction:column;position:relative}.xd-close{position:absolute;top:0;right:0;z-index:1;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;border-radius:var(--radius-full);background:var(--color-bg-secondary);color:var(--color-text-primary);-webkit-tap-highlight-color:transparent;transition:background-color var(--duration-normal) ease,color var(--duration-normal) ease}.xd-close:hover{background:var(--color-border-light);color:var(--color-text-primary)}.xd-close:focus-visible{outline:2px solid var(--primary-700);outline-offset:2px}.xd-close svg{width:20px;height:20px;flex-shrink:0}.xd-hero{display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 0 var(--space-sm)}.xd-pastille{width:60px;height:60px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-lg);background:var(--color-bg-secondary);color:var(--color-text-secondary);margin-bottom:var(--space-md)}.xd-pastille--refund{background:var(--sage-surface);color:var(--sage-action)}.xd-title{margin:0;font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--color-text-primary);line-height:var(--leading-tight)}.xd-chip-cat{display:inline-flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-sm);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--font-semibold)}.xd-chip-dot{width:9px;height:9px;border-radius:50%;background:var(--color-text-tertiary)}.xd-amount{margin-top:var(--space-md);font-size:var(--text-4xl);font-weight:var(--font-extrabold);color:var(--sage-hero);letter-spacing:-.02em;line-height:1}.xd-split{margin:var(--space-sm) 0 0;font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:var(--font-medium)}.xd-card{margin-top:var(--space-lg);padding:0 var(--space-lg);background:var(--color-bg-tertiary);border:1px solid var(--color-border-light);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.xd-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md) 0;border-bottom:1px solid var(--color-border-light)}.xd-row:last-child{border-bottom:none}.xd-hint{display:flex;align-items:flex-start;gap:var(--space-sm);margin-top:var(--space-md);padding:var(--space-md);border-radius:var(--radius-md);background:var(--sage-surface);color:var(--sage-action)}.xd-hint svg{flex-shrink:0;margin-top:1px}.xd-hint p{margin:0;font-size:var(--text-xs);line-height:1.45}.xd-hint strong{font-weight:var(--font-bold)}.xd-label{font-size:var(--text-sm);color:var(--color-text-secondary)}.xd-value{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-primary);text-align:right}.xd-badge{display:inline-flex;align-items:center;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-semibold)}.xd-badge--neutral{background:var(--color-bg-secondary);color:var(--color-text-secondary)}.xd-badge--sage{background:var(--sage-surface);color:var(--sage-action)}.xd-badge--honey{background:var(--honey-surface);color:var(--honey-900)}.xd-flow{display:flex;align-items:center;justify-content:center;gap:var(--space-lg);padding:var(--space-lg) 0;border-bottom:1px solid var(--color-border-light)}.xd-flow-who{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);flex:1}.xd-flow-av{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);font-weight:var(--font-bold);font-size:var(--text-base)}.xd-flow-av--me{background:var(--sage-surface);color:var(--sage-action)}.xd-flow-av--partner{background:var(--honey-surface);color:var(--honey-900)}.xd-flow-who>span{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-primary)}.xd-flow-arrow{color:var(--color-text-tertiary);flex-shrink:0}.xd-actions{display:flex;gap:var(--space-md);margin-top:var(--space-lg)}.xd-btn-danger{background:var(--alert-soft-bg);border:1.5px solid var(--chart-segment-4);color:var(--chart-segment-4)}.xd-btn-danger:hover{filter:brightness(.97)}.loading-text{text-align:center;padding:20px;color:var(--color-text-secondary)}.toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:12px;max-width:400px;pointer-events:none}.toast{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0000001f;border:1px solid rgba(0,0,0,.08);overflow:hidden;pointer-events:auto;position:relative;min-width:320px;max-width:400px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.toast-enter{animation:toastSlideIn .3s cubic-bezier(.4,0,.2,1) forwards}.toast-exit{animation:toastSlideOut .3s cubic-bezier(.4,0,.2,1) forwards}@keyframes toastSlideIn{0%{transform:translate(100%) scale(.95);opacity:0}to{transform:translate(0) scale(1);opacity:1}}@keyframes toastSlideOut{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(100%) scale(.95);opacity:0}}.toast-content{display:flex;align-items:flex-start;gap:12px;padding:16px;position:relative}.toast-icon{font-size:18px;line-height:1;margin-top:2px;flex-shrink:0}.toast-message{flex:1;font-size:14px;line-height:1.4;color:var(--color-text-primary);font-weight:500}.toast-action{background:transparent;border:1px solid currentColor;border-radius:6px;padding:4px 12px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;margin-left:8px;flex-shrink:0}.toast-close{background:transparent;border:none;color:var(--color-text-tertiary);cursor:pointer;font-size:16px;line-height:1;padding:4px;border-radius:4px;transition:all .2s;flex-shrink:0;margin-left:8px}.toast-close:hover{background:#0000000d;color:var(--color-text-secondary)}.toast-progress{position:absolute;bottom:0;left:0;height:3px;background:linear-gradient(90deg,#0000001a,#0003);animation:progressBar linear forwards;border-radius:0 0 12px 12px}@keyframes progressBar{0%{width:100%}to{width:0%}}.toast-success .toast-action{color:var(--secondary-500)}.toast-success .toast-action:hover{background:#10b9811a}.toast-error .toast-action{color:var(--error-500)}.toast-error .toast-action:hover{background:#ef44441a}.toast-warning .toast-action{color:var(--warning-500)}.toast-warning .toast-action:hover{background:#f59e0b1a}.toast-info{border-left:4px solid var(--primary-800)}.toast-info .toast-action{color:var(--primary-800)}.toast-info .toast-action:hover{background:var(--primary-100)}@media(max-width:768px){.toast-container{top:10px;right:10px;left:10px;max-width:none}.toast{min-width:auto;max-width:none}.toast-content{padding:14px}.toast-message{font-size:13px}}:root{--space-xs: .25rem;--space-sm: .5rem;--space-md: .75rem;--space-lg: 1rem;--space-xl: 1.25rem;--space-2xl: 1.5rem;--space-3xl: 2rem;--space-4xl: 2.5rem;--space-5xl: 3rem;--component-padding-sm: var(--space-lg);--component-padding-md: var(--space-xl);--component-padding-lg: var(--space-2xl);--component-gap-sm: var(--space-lg);--component-gap-md: var(--space-2xl);--component-gap-lg: var(--space-3xl);--section-gap: var(--space-3xl);--page-padding: var(--space-lg);--nav-height: 90px;--header-height: 4rem;--size-icon-sm: 1.25rem;--size-icon-md: 1.5rem;--size-avatar-sm: 2rem;--size-avatar-md: 2.25rem;--size-avatar-lg: 2.5rem;--size-fab: 3.5rem;--tap-target-min: 2.75rem;--text-3xs: .625rem;--text-2xs: .6875rem;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.75rem;--text-4xl: 2rem;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--leading-tight: 1.2;--leading-normal: 1.5;--leading-relaxed: 1.75;--primary-50: #f2f9f5;--primary-100: #e0f0e8;--primary-200: #c5e3d4;--primary-300: #a9d6c0;--primary-400: #9dd2bb;--primary-500: #96ceb4;--primary-600: #79bb9e;--primary-700: #5c9a80;--primary-800: #3d7a60;--primary-900: #1f4a37;--secondary-50: #f0fdf4;--secondary-100: #dcfce7;--secondary-200: #bbf7d0;--secondary-300: #86efac;--secondary-400: #4ade80;--secondary-500: #10b981;--secondary-600: #059669;--secondary-700: #047857;--secondary-800: #065f46;--secondary-900: #064e3b;--accent-50: #fefcf0;--accent-100: #fdf6d6;--accent-200: #faecab;--accent-300: #f7e187;--accent-400: #f5dc78;--accent-500: #f4d871;--accent-600: #b89a33;--accent-700: #927a28;--accent-800: #6e5c20;--accent-900: #574919;--error-50: #fef2f2;--error-100: #fee2e2;--error-200: #fecaca;--error-300: #fca5a5;--error-400: #f87171;--error-500: #ef4444;--error-600: #dc2626;--error-700: #b91c1c;--error-800: #991b1b;--error-900: #7f1d1d;--warning-50: #fffbeb;--warning-100: #fef3c7;--warning-200: #fde68a;--warning-300: #fcd34d;--warning-400: #fbbf24;--warning-500: #f59e0b;--warning-600: #d97706;--warning-700: #b45309;--warning-800: #92400e;--warning-900: #78350f;--alert-soft-bg: #fbe8e0;--alert-soft-text: #a85530;--color-success: var(--primary-800);--color-success-subtle: var(--primary-100);--color-success-border: var(--primary-200);--neutral-50: #f8fafc;--neutral-100: #f1f5f9;--neutral-200: #e2e8f0;--neutral-300: #cbd5e1;--neutral-400: #94a3b8;--neutral-500: #64748b;--neutral-600: #475569;--neutral-700: #334155;--neutral-800: #1e293b;--neutral-900: #0f172a;--color-bg-primary: #fbf8ee;--color-bg-secondary: #f5efdf;--color-bg-tertiary: #ffffff;--color-text-primary: #3b352a;--color-text-secondary: #7a7263;--color-text-tertiary: #9a9281;--color-text-muted: #b7af9e;--color-border-light: #eae3d2;--color-border-medium: #d8d0bc;--color-border-strong: #bfb6a0;--surface-cream: #ffeead;--surface-cream-strong: #f4d871;--surface-subtle: #f5f2e5;--pill-surface: #f8f5ec;--pill-border: #ddd5c3;--sage-hero: #1f4531;--sage-action: #2a5b3f;--sage-surface: #d6e7da;--sage-surface-hero: #e8f1e8;--honey-500: #f5cb47;--honey-900: #6b5410;--honey-surface: #fff3d0;--radius-none: 0;--radius-xs: .25rem;--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.25rem;--radius-2xl: 1.5rem;--radius-3xl: 2rem;--radius-full: 9999px;--radius-pill: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--shadow-xl: 0 12px 32px rgba(0, 0, 0, .15);--shadow-2xl: 0 20px 40px rgba(0, 0, 0, .18);--shadow-primary: 0 4px 16px rgba(150, 206, 180, .4);--shadow-secondary: 0 4px 16px rgba(61, 122, 96, .25);--shadow-error: 0 4px 16px rgba(160, 35, 52, .25);--shadow-warning: 0 4px 16px rgba(255, 173, 96, .3);--shadow-purple: 0 6px 20px rgba(124, 165, 142, .45);--gradient-bg-light: linear-gradient(135deg, #fbf8ee 0%, #f5efdf 100%);--gradient-bg-medium: linear-gradient(135deg, #f5efdf 0%, #efe7d2 100%);--gradient-card: linear-gradient(135deg, #ffffff 0%, #fbf8ee 100%);--gradient-header: linear-gradient(135deg, #ffffff 0%, #fbf8ee 100%);--gradient-primary: linear-gradient(135deg, var(--primary-500) 0%, var(--primary-600) 100%);--gradient-secondary: linear-gradient(135deg, #96ceb4 0%, #5c9a80 100%);--gradient-accent: linear-gradient(135deg, #f4d871 0%, #e6c34f 100%);--gradient-purple: linear-gradient(135deg, #96ceb4 0%, #5c9a80 100%);--z-base: 0;--z-dropdown: 10;--z-sticky: 20;--z-overlay: 30;--z-modal-backdrop: 40;--z-modal: 50;--z-toast: 60;--z-tooltip: 70;--duration-fast: .15s;--duration-normal: .2s;--duration-slow: .3s;--duration-slower: .5s;--ease-linear: linear;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--breakpoint-xs: 320px;--breakpoint-sm: 480px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--breakpoint-2xl: 1536px;--nav-bg: rgba(255, 255, 255, .95);--nav-border: var(--color-border-light);--nav-shadow: var(--shadow-lg);--nav-backdrop-filter: blur(20px);--modal-bg: rgba(0, 0, 0, .5);--modal-backdrop-filter: blur(4px);--card-bg: var(--color-bg-tertiary);--card-border: 1px solid rgba(255, 255, 255, .8);--card-shadow: var(--shadow-md);--card-radius: var(--radius-xl);--opacity-disabled: .5;--opacity-loading: .7;--opacity-overlay: .8;--scale-hover: 1.02;--scale-active: .98;--scale-focus: 1.05;--chart-accent: #96CEB4;--chart-accent-light: #b9ddca;--chart-accent-lighter: #d6ebdf;--chart-accent-subtle: #eaf5ef;--chart-accent-dark: #3D7A60;--chart-segment-1: #96CEB4;--chart-segment-2: #F4D871;--chart-segment-3: #FFAD60;--chart-segment-4: #A02334;--chart-segment-5: #3D7A60;--chart-segment-6: #E8A87C;--chart-segment-7: #C99846;--chart-segment-8: #7FB3A0;--chart-bg: #FAFBFC;--chart-surface: #FFFFFF;--chart-border: rgba(150, 206, 180, .12);--chart-grid: rgba(61, 122, 96, .08);--chart-axis: rgba(61, 122, 96, .15);--chart-axis-text: #9a9281;--chart-text-primary: #3b352a;--chart-text-secondary: #7a7263;--chart-text-muted: #9a9281;--chart-tooltip-bg: rgba(59, 53, 42, .95);--chart-tooltip-text: #FFFFFF;--chart-tooltip-border: rgba(150, 206, 180, .3);--chart-budget-good: #96CEB4;--chart-budget-warning: #FFAD60;--chart-budget-danger: #A02334;--chart-line-primary: #96CEB4;--chart-line-secondary: rgba(150, 206, 180, .3);--chart-fill-gradient-start: rgba(150, 206, 180, .22);--chart-fill-gradient-end: rgba(150, 206, 180, .02);--chart-animation-duration: .8s;--chart-animation-easing: cubic-bezier(.4, 0, .2, 1);--chart-shadow: 0 4px 24px rgba(61, 122, 96, .1);--chart-shadow-hover: 0 8px 32px rgba(61, 122, 96, .14)}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;width:100%;margin:0;padding:0;overflow-x:hidden}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background-color:var(--color-bg-primary);color:var(--color-text-primary);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100%;width:100%;display:flex;flex-direction:column;position:relative}.app-container{height:100vh;display:flex;flex-direction:column;position:relative;background:var(--gradient-bg-light);overflow:hidden}.page-container{width:100%;max-width:428px;margin:0 auto;position:relative;display:flex;flex-direction:column;height:100%}.content-container{flex:1;display:flex;flex-direction:column;padding:0 var(--page-padding);padding-bottom:calc(var(--nav-height) + var(--space-lg));gap:var(--section-gap);overflow-y:auto;-webkit-overflow-scrolling:touch}.content-container-full{flex:1;display:flex;flex-direction:column;padding-bottom:calc(var(--nav-height) + var(--space-lg));gap:var(--section-gap);overflow-y:auto;-webkit-overflow-scrolling:touch}.page-wrapper{display:flex;flex-direction:column;height:100%;background:var(--gradient-bg-light)}.page-wrapper-with-nav{display:flex;flex-direction:column;height:100%;background:var(--gradient-bg-light);padding-top:var(--header-height)}.section{display:flex;flex-direction:column;gap:var(--component-gap-md)}.section-compact{display:flex;flex-direction:column;gap:var(--component-gap-sm)}.section-spacious{display:flex;flex-direction:column;gap:var(--component-gap-lg)}.grid{display:grid;gap:var(--component-gap-md)}.grid-1{grid-template-columns:1fr}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-auto{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.grid-auto-sm{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.grid-auto-lg{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.flex-around{display:flex;align-items:center;justify-content:space-around}.flex-evenly{display:flex;align-items:center;justify-content:space-evenly}.flex-start{display:flex;align-items:flex-start;justify-content:flex-start}.flex-end{display:flex;align-items:flex-end;justify-content:flex-end}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.gap-xs{gap:var(--space-xs)}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.gap-xl{gap:var(--space-xl)}.gap-2xl{gap:var(--space-2xl)}.gap-3xl{gap:var(--space-3xl)}.p-xs{padding:var(--space-xs)}.p-sm{padding:var(--space-sm)}.p-md{padding:var(--space-md)}.p-lg{padding:var(--space-lg)}.p-xl{padding:var(--space-xl)}.p-2xl{padding:var(--space-2xl)}.p-3xl{padding:var(--space-3xl)}.px-xs{padding-left:var(--space-xs);padding-right:var(--space-xs)}.px-sm{padding-left:var(--space-sm);padding-right:var(--space-sm)}.px-md{padding-left:var(--space-md);padding-right:var(--space-md)}.px-lg{padding-left:var(--space-lg);padding-right:var(--space-lg)}.px-xl{padding-left:var(--space-xl);padding-right:var(--space-xl)}.py-xs{padding-top:var(--space-xs);padding-bottom:var(--space-xs)}.py-sm{padding-top:var(--space-sm);padding-bottom:var(--space-sm)}.py-md{padding-top:var(--space-md);padding-bottom:var(--space-md)}.py-lg{padding-top:var(--space-lg);padding-bottom:var(--space-lg)}.py-xl{padding-top:var(--space-xl);padding-bottom:var(--space-xl)}.m-xs{margin:var(--space-xs)}.m-sm{margin:var(--space-sm)}.m-md{margin:var(--space-md)}.m-lg{margin:var(--space-lg)}.m-xl{margin:var(--space-xl)}.m-2xl{margin:var(--space-2xl)}.m-3xl{margin:var(--space-3xl)}.mx-auto{margin-left:auto;margin-right:auto}.mx-xs{margin-left:var(--space-xs);margin-right:var(--space-xs)}.mx-sm{margin-left:var(--space-sm);margin-right:var(--space-sm)}.mx-md{margin-left:var(--space-md);margin-right:var(--space-md)}.mx-lg{margin-left:var(--space-lg);margin-right:var(--space-lg)}.my-xs{margin-top:var(--space-xs);margin-bottom:var(--space-xs)}.my-sm{margin-top:var(--space-sm);margin-bottom:var(--space-sm)}.my-md{margin-top:var(--space-md);margin-bottom:var(--space-md)}.my-lg{margin-top:var(--space-lg);margin-bottom:var(--space-lg)}@media(max-width:480px){.content-container{padding:0 var(--space-lg);gap:var(--space-2xl)}.grid-4{grid-template-columns:repeat(3,1fr)}.grid-3{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.gap-xl{gap:var(--space-lg)}.gap-2xl{gap:var(--space-xl)}.gap-3xl{gap:var(--space-2xl)}.p-xl{padding:var(--space-lg)}.p-2xl{padding:var(--space-xl)}.p-3xl{padding:var(--space-2xl)}}@media(min-width:481px)and (max-width:768px){.content-container{padding:0 var(--space-xl);gap:var(--space-3xl)}.grid-4{grid-template-columns:repeat(2,1fr)}}@media(min-width:769px){.page-container{max-width:680px}.content-container{padding:0 var(--space-2xl);gap:var(--space-4xl)}.grid-auto{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}}@media(min-width:1024px){.page-container{max-width:800px}.content-container{padding:0 var(--space-3xl);gap:var(--space-5xl)}}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.inset-0{inset:0}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-auto{overflow:auto}.overflow-scroll{overflow:scroll}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.visible{visibility:visible}.invisible{visibility:hidden}@media(max-width:480px){.hidden-mobile{display:none}.visible-mobile{display:block}}@media(min-width:481px){.hidden-desktop{display:none}.visible-desktop{display:block}}.z-base{z-index:var(--z-base)}.z-dropdown{z-index:var(--z-dropdown)}.z-sticky{z-index:var(--z-sticky)}.z-overlay{z-index:var(--z-overlay)}.z-modal-backdrop{z-index:var(--z-modal-backdrop)}.z-modal{z-index:var(--z-modal)}.z-toast{z-index:var(--z-toast)}.z-tooltip{z-index:var(--z-tooltip)}.transition-fast{transition:all var(--duration-fast) var(--ease-out)}.transition-normal{transition:all var(--duration-normal) var(--ease-out)}.transition-slow{transition:all var(--duration-slow) var(--ease-out)}.transition-colors{transition:color var(--duration-normal) var(--ease-out),background-color var(--duration-normal) var(--ease-out),border-color var(--duration-normal) var(--ease-out)}.transition-transform{transition:transform var(--duration-normal) var(--ease-out)}.transition-opacity{transition:opacity var(--duration-normal) var(--ease-out)}.smooth-scroll{scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.hide-scrollbar::-webkit-scrollbar{display:none}.card{background:var(--card-bg);border:var(--card-border);border-radius:var(--card-radius);box-shadow:var(--card-shadow);padding:var(--component-padding-md);transition:var(--transition-normal)}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.card-compact{padding:var(--component-padding-sm)}.card-spacious{padding:var(--component-padding-lg)}.card-flat{box-shadow:var(--shadow-xs);border:1px solid var(--color-border-light)}.card-elevated{box-shadow:var(--shadow-xl)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);border:none;border-radius:var(--radius-md);font-family:inherit;font-size:var(--text-base);font-weight:var(--font-semibold);line-height:var(--leading-normal);text-decoration:none;cursor:pointer;transition:var(--transition-normal);position:relative;overflow:hidden;white-space:nowrap;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;min-height:44px}.btn:disabled{opacity:var(--opacity-disabled);cursor:not-allowed;pointer-events:none}.btn:active{transform:scale(var(--scale-active))}.btn-sm{padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);min-height:36px}.btn-lg{padding:var(--space-lg) var(--space-2xl);font-size:var(--text-lg);min-height:52px}.btn-xl{padding:var(--space-xl) var(--space-3xl);font-size:var(--text-xl);min-height:60px}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-primary)}.btn-primary:hover{background:linear-gradient(135deg,var(--primary-600) 0%,var(--primary-700) 100%);box-shadow:var(--shadow-lg)}.btn-secondary{background:var(--gradient-secondary);color:#fff;box-shadow:var(--shadow-secondary)}.btn-secondary:hover{background:linear-gradient(135deg,var(--secondary-600) 0%,var(--secondary-700) 100%);box-shadow:var(--shadow-lg)}.btn-outline{background:transparent;color:var(--primary-500);border:2px solid var(--primary-500);box-shadow:none}.btn-outline:hover{background:var(--primary-500);color:#fff}.btn-ghost{background:transparent;color:var(--color-text-secondary);box-shadow:none;border:1px solid transparent}.btn-ghost:hover{background:var(--neutral-100);color:var(--color-text-primary)}.btn-danger{background:linear-gradient(135deg,var(--error-500) 0%,var(--error-600) 100%);color:#fff;box-shadow:var(--shadow-error)}.btn-danger:hover{background:linear-gradient(135deg,var(--error-600) 0%,var(--error-700) 100%)}.btn-full{width:100%}.btn-icon{padding:var(--space-md);min-width:44px;min-height:44px}.btn-icon-sm{padding:var(--space-sm);min-width:36px;min-height:36px}.form-group{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-lg)}.form-label{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-primary);margin:0}.form-label-optional{color:var(--color-text-secondary);font-weight:var(--font-normal)}.form-input{width:100%;padding:var(--space-md) var(--space-lg);border:2px solid var(--color-border-light);border-radius:var(--radius-md);font-size:var(--text-base);font-family:inherit;background:#fff;color:var(--color-text-primary);transition:var(--transition-colors);box-sizing:border-box;min-height:44px}.form-input:focus{outline:none;border-color:var(--primary-500);box-shadow:0 0 0 3px #96ceb440}.form-input:disabled{background:var(--neutral-100);color:var(--color-text-muted);cursor:not-allowed}.form-input::placeholder{color:var(--color-text-muted)}.form-input-error{border-color:var(--error-500)}.form-input-error:focus{border-color:var(--error-500);box-shadow:0 0 0 3px #ef44441a}.form-textarea{resize:vertical;min-height:100px}.form-select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");background-position:right var(--space-md) center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:var(--space-3xl);-webkit-appearance:none;appearance:none}.form-error{font-size:var(--text-sm);color:var(--error-500);margin-top:var(--space-xs)}.form-help{font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:var(--space-xs)}.page-header{display:flex;align-items:center;justify-content:space-between;padding:var(--component-padding-md);background:var(--gradient-header);border-radius:0 0 var(--radius-2xl) var(--radius-2xl);box-shadow:var(--shadow-md);border-bottom:1px solid var(--color-border-light);margin-bottom:var(--component-gap-md);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.page-title{flex-shrink:0;margin:0 0 calc(var(--space-lg) - var(--space-md));padding:0;font-size:var(--text-2xs);font-weight:var(--font-bold);text-transform:uppercase;letter-spacing:1.4px;color:var(--color-text-tertiary)}.page-subtitle{font-size:var(--text-base);color:var(--color-text-secondary);margin:0;font-weight:var(--font-medium)}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:428px;background:#fff;border-top:.5px solid var(--color-border-light);padding:14px 12px 18px;display:flex;justify-content:space-evenly;align-items:center;z-index:var(--z-sticky);box-shadow:var(--nav-shadow);border-radius:22px 22px 0 0;min-height:var(--nav-height)}.nav-item{flex:1;display:flex;align-items:center;justify-content:center;padding:6px 2px;border:none;background:none;cursor:pointer;max-width:96px;min-height:48px;-webkit-tap-highlight-color:transparent}.nav-item:active{transform:scale(var(--scale-active))}.nav-item-inner{display:flex;flex-direction:column;align-items:center;gap:5px;color:#9b9782;transition:color .15s ease}.nav-item.active .nav-item-inner{color:var(--sage-action)}.nav-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.nav-label{font-size:10px;font-weight:600;color:inherit;text-align:center}.nav-item.active .nav-label{font-weight:700}.nav-item.active .nav-item-inner:after{content:"";width:16px;height:3px;border-radius:999px;background:var(--sage-action)}.nav-item-add{flex:1;display:flex;align-items:center;justify-content:center;padding:0;background:transparent}.nav-add-icon{width:54px;height:54px;border-radius:50%;background:var(--sage-action);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px #2a5b3f59;margin-top:-24px;transition:transform .2s ease,box-shadow .2s ease}.nav-item-add:hover .nav-add-icon{transform:translateY(-2px);box-shadow:0 8px 22px #2a5b3f66}.nav-item-add:active .nav-add-icon{transform:translateY(0) scale(.97)}.add-symbol{color:#fff;line-height:1}.modal{background:#fff;border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;width:100%;max-width:428px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:slideUp var(--duration-slow) var(--ease-out);z-index:var(--z-modal)}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.modal-title{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary);margin:0}.modal-content{padding:var(--component-padding-md);overflow-y:auto;-webkit-overflow-scrolling:touch;flex:1}.modal-footer{display:flex;gap:var(--space-lg);padding:var(--component-padding-md);border-top:1px solid var(--color-border-light);background:var(--neutral-50);flex-shrink:0}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-4xl) var(--space-2xl);text-align:center;gap:var(--space-lg)}.loading-spinner{width:2rem;height:2rem;border:3px solid var(--color-border-light);border-top:3px solid var(--primary-500);border-radius:var(--radius-full);animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-text{color:var(--color-text-secondary);font-size:var(--text-base);font-weight:var(--font-medium)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-4xl) var(--space-2xl);text-align:center;gap:var(--space-lg)}.empty-icon{font-size:3rem;opacity:.7;margin-bottom:var(--space-sm)}.empty-title{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text-primary);margin:0}.empty-description{font-size:var(--text-base);color:var(--color-text-secondary);margin:0;max-width:300px}.toast-container{position:fixed;top:var(--space-lg);right:var(--space-lg);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-sm);max-width:400px;width:calc(100% - var(--space-2xl))}.toast{background:#fff;border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-xl);border:1px solid var(--color-border-light);display:flex;align-items:center;gap:var(--space-md);animation:slideInRight var(--duration-slow) var(--ease-out)}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast-success{border-left:4px solid var(--secondary-500)}.toast-error{border-left:4px solid var(--error-500)}.toast-warning{border-left:4px solid var(--warning-500)}.toast-info{border-left:4px solid var(--primary-500)}.divider{height:1px;background:var(--color-border-light);margin:var(--space-lg) 0}.divider-vertical{width:1px;background:var(--color-border-light);margin:0 var(--space-lg)}.avatar{width:40px;height:40px;border-radius:var(--radius-full);background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:var(--font-semibold);font-size:var(--text-base)}.avatar-sm{width:32px;height:32px;font-size:var(--text-sm)}.avatar-lg{width:48px;height:48px;font-size:var(--text-lg)}.badge{display:inline-flex;align-items:center;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.05em}.badge-primary{background:var(--primary-100);color:var(--primary-700)}.badge-secondary{background:var(--secondary-100);color:var(--secondary-700)}.badge-error{background:var(--error-100);color:var(--error-700)}.badge-warning{background:var(--warning-100);color:var(--warning-700)}@media(max-width:480px){.page-header{flex-direction:column;gap:var(--space-lg);text-align:center;padding:var(--component-padding-sm)}.modal{border-radius:var(--radius-xl) var(--radius-xl) 0 0}.modal-header,.modal-content,.modal-footer{padding:var(--component-padding-sm)}.modal-footer{flex-direction:column}.toast-container{top:var(--space-sm);right:var(--space-sm);left:var(--space-sm);width:auto;max-width:none}}html,body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background-color:var(--color-bg-primary);color:var(--color-text-primary);overflow-x:hidden}#root{position:relative;overflow-x:hidden}.mobile-app{height:100vh;display:flex;flex-direction:column;background:var(--gradient-bg-light);position:relative;overflow:hidden}.mobile-header{position:sticky;top:0;z-index:var(--z-sticky);background:var(--color-bg-primary)}.header-content{display:flex;align-items:center;justify-content:center;padding:var(--space-lg);max-width:428px;margin:0 auto}.mode-toggle-centered{display:flex;gap:2px;padding:var(--space-xs);background:var(--color-bg-tertiary);border:.5px solid var(--color-border-light);border-radius:var(--radius-full)}.mode-toggle-centered button{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-md) var(--space-lg);border:none;background:transparent;border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);cursor:pointer;transition:background-color var(--duration-normal) ease,color var(--duration-normal) ease;-webkit-tap-highlight-color:transparent}.mode-toggle-centered button.active{background:var(--primary-500);color:var(--primary-900)}.mode-toggle-centered button:focus-visible{outline:2px solid var(--primary-700);outline-offset:2px}@media(hover:hover){.mode-toggle-centered button:not(.active):hover{color:var(--color-text-primary)}}.mode-icon{width:var(--size-icon-sm);height:var(--size-icon-sm);flex-shrink:0;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.mode-label{font-size:var(--text-sm);font-weight:var(--font-medium);line-height:1;white-space:nowrap}.mobile-main{flex:1;display:flex;flex-direction:column;padding:var(--space-lg);padding-bottom:calc(var(--nav-height) + var(--space-lg));overflow-y:auto;-webkit-overflow-scrolling:touch;width:100%;box-sizing:border-box}.mobile-main.full-width-content{padding:0;overflow:hidden}.login-container{position:relative;overflow:hidden;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:var(--space-2xl);padding:clamp(72px,13vh,112px) var(--space-2xl) var(--space-3xl);text-align:center;background:var(--gradient-bg-light)}.login-blob{position:absolute;border-radius:50%;filter:blur(48px);z-index:0;pointer-events:none}.login-blob--1{width:230px;height:230px;background:var(--primary-500);top:-70px;left:-80px;opacity:.34}.login-blob--2{width:210px;height:210px;background:var(--honey-500);bottom:-80px;right:-70px;opacity:.2}.login-container>*:not(.login-blob){position:relative;z-index:1}.login-logo{width:82px;height:82px;object-fit:contain}.login-brand{font-family:Lexend,-apple-system,BlinkMacSystemFont,sans-serif;font-size:var(--text-4xl);font-weight:var(--font-bold);letter-spacing:-.01em;color:var(--sage-hero);margin:calc(-1 * var(--space-md)) 0 0}.login-tagline{font-family:Lexend,-apple-system,BlinkMacSystemFont,sans-serif;font-weight:var(--font-normal);font-size:var(--text-lg);color:var(--color-text-secondary);margin:0;max-width:290px;line-height:1.4}.login-auth{width:100%;max-width:320px;display:flex;flex-direction:column;gap:var(--space-md)}.login-field{width:100%;min-height:48px;padding:0 var(--space-lg);border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--card-bg);font-family:inherit;font-size:16px;color:var(--color-text-primary)}.login-field::placeholder{color:var(--color-text-muted)}.login-field:focus{outline:none;border-color:var(--sage-action)}.login-field:disabled{opacity:.6}.login-btn{width:100%;min-height:50px;display:flex;align-items:center;justify-content:center;gap:10px;border-radius:var(--radius-pill);border:none;font-family:inherit;font-size:var(--text-base);font-weight:var(--font-semibold);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .15s ease,box-shadow .15s ease}.login-btn:active{transform:scale(.98)}.login-btn--demo{background:var(--sage-action);color:#fff;box-shadow:0 3px 10px #2a5b3f47}.login-btn--demo:disabled{opacity:.6;cursor:default;transform:none}.login-btn--google{background:#fff;color:var(--color-text-primary);border:1px solid var(--color-border-strong);box-shadow:0 1px 2px #3b352a1a,0 3px 10px #3b352a0f}.login-btn--google svg{width:20px;height:20px;flex-shrink:0}.login-divider{display:flex;align-items:center;gap:12px;margin:var(--space-sm) 0;color:var(--color-text-muted);font-size:var(--text-xs)}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--color-border-light)}.login-gate{display:flex;align-items:center;justify-content:center;gap:5px;margin:-2px 0 0;font-size:var(--text-2xs);color:var(--color-text-tertiary)}.login-gate svg{width:13px;height:13px;flex-shrink:0}.login-alert{display:flex;align-items:flex-start;gap:10px;width:100%;max-width:320px;padding:var(--space-lg);border-radius:var(--radius-lg);background:var(--alert-soft-bg);color:var(--alert-soft-text);text-align:left}.login-alert svg{width:20px;height:20px;flex-shrink:0;margin-top:1px}.login-alert p{margin:0;font-size:var(--text-sm);line-height:1.45}.login-alert strong{font-weight:var(--font-bold)}.history-view-mobile{display:flex;flex-direction:column;height:100%;width:100%;background:var(--gradient-bg-light);padding-top:var(--component-padding-md);padding-bottom:var(--nav-height);gap:var(--component-gap-md);overflow-y:auto;-webkit-overflow-scrolling:touch}.modal-overlay{position:fixed;inset:0;background:var(--modal-bg);-webkit-backdrop-filter:var(--modal-backdrop-filter);backdrop-filter:var(--modal-backdrop-filter);display:flex;align-items:flex-end;justify-content:center;z-index:var(--z-modal-backdrop);padding:0}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--component-padding-md);border-bottom:1px solid var(--color-border-light);background:#fff;flex-shrink:0}.modal-header h3{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary);margin:0}.modal-close{background:none;border:none;font-size:var(--text-2xl);cursor:pointer;padding:var(--space-xs);border-radius:var(--radius-sm);color:var(--color-text-secondary);transition:var(--transition-colors);-webkit-tap-highlight-color:transparent;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.modal-close:hover{background:var(--neutral-100);color:var(--color-text-primary)}.modal-close:active{transform:scale(var(--scale-active))}.modal-form{padding:var(--component-padding-md);display:flex;flex-direction:column;gap:var(--space-lg);overflow-y:auto;-webkit-overflow-scrolling:touch;flex:1}.modal-form input,.modal-form select{width:100%;padding:var(--space-md) var(--space-lg);border:2px solid var(--color-border-light);border-radius:var(--radius-md);font-size:16px;font-family:inherit;background:#fff;color:var(--color-text-primary);transition:var(--transition-colors);box-sizing:border-box;-webkit-appearance:none;appearance:none;min-height:44px}.modal-form input:focus,.modal-form select:focus{outline:none;border-color:var(--primary-500);box-shadow:0 0 0 3px #96ceb459}.modal-form input::placeholder{color:var(--color-text-muted)}.modal-actions{display:flex;gap:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--color-border-light);margin-top:auto}.kopika-splash{position:fixed;inset:0;background:#fbf8ee;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6vh}.kopika-splash-logo{width:40vw;max-width:240px;aspect-ratio:1;background:url(/kopika-logo.png) center / contain no-repeat;animation:kopika-spin 1.6s linear infinite}.kopika-splash-word{font-family:Lexend,system-ui,sans-serif;font-weight:600;color:#1e5135;font-size:clamp(28px,9vw,44px);letter-spacing:.5px}@keyframes kopika-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.kopika-splash-logo{animation:none}}@media(max-width:480px){.mobile-main{padding:var(--space-md);padding-bottom:calc(var(--nav-height) + var(--space-md))}.history-view-mobile{padding-top:var(--component-padding-sm);gap:var(--component-gap-sm)}}@media(min-width:768px){.mobile-app{width:100%;max-width:428px;margin:0 auto}}.action-btn{flex:1;border:none;padding:var(--space-lg);font-weight:var(--font-semibold);cursor:pointer;transition:var(--transition-normal);-webkit-tap-highlight-color:transparent}.action-btn.edit-action{background:var(--primary-500);color:#fff}.action-btn.delete-action{background:var(--error-500);color:#fff}.action-btn:active{transform:scale(var(--scale-active))}button:not(:disabled){cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}.save-btn-minimal,.btn-save,.btn-create,.btn-confirm{display:inline-flex!important;align-items:center;justify-content:center;font-weight:var(--font-semibold);border-radius:var(--radius-lg);transition:var(--transition-normal);border:none;min-height:44px;-webkit-tap-highlight-color:transparent}.history-view-mobile,.stats-view-mobile,.calendar-container{background:var(--gradient-bg-light, linear-gradient(135deg, #fbf8ee 0%, #f5efdf 100%))!important;height:100%;width:100%;display:flex;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch}.chart-container{min-height:350px!important;position:relative;background:var(--gradient-bg-medium, white)!important;border-radius:var(--radius-lg, 12px)!important}.save-btn-minimal:not(:disabled):hover,.btn-save:not(:disabled):hover,.btn-create:not(:disabled):hover,.btn-confirm:not(:disabled):hover{transform:translateY(-1px);box-shadow:var(--shadow-lg)}.save-btn-minimal:active,.btn-save:active,.btn-create:active,.btn-confirm:active{transform:scale(var(--scale-active))}.hidden{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.stats-page{height:100%;width:100%;background:var(--gradient-bg-light);padding:var(--space-lg) var(--page-padding) 6rem;display:flex;flex-direction:column;gap:var(--space-md);overflow-y:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box}.stats-mode-toggle{flex-shrink:0;margin:0 auto}.history-view-mobile .page-title{padding:0 var(--page-padding);margin-bottom:calc(var(--space-lg) - var(--space-2xl))}.history-view-mobile .mode-toggle-centered{align-self:center}.stats-card{flex-shrink:0;background:var(--color-bg-tertiary);border-radius:var(--card-radius);box-shadow:var(--card-shadow);padding:var(--space-lg)}.stats-period-pills{display:flex;gap:2px;padding:3px;border-radius:var(--radius-full);background:var(--color-bg-primary, #fbf8ee)}.stats-period-pill{flex:1;min-height:44px;padding:6px 8px;border:none;border-radius:var(--radius-full);background:none;font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stats-period-pill.is-active{background:var(--primary-500);color:var(--primary-900)}.cps{display:flex;flex-direction:column;gap:var(--space-sm);padding-bottom:var(--space-md)}.cps-section-label{margin:var(--space-sm) 0 2px;font-size:var(--text-3xs);font-weight:var(--font-medium);letter-spacing:.6px;text-transform:uppercase;color:var(--color-text-secondary)}.cps-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}.cps-shortcut{min-height:44px;padding:10px 12px;border:.5px solid var(--color-border-light);border-radius:var(--radius-pill);background:#fff;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-primary);cursor:pointer;-webkit-tap-highlight-color:transparent}.cps-shortcut.is-active{background:var(--primary-500);color:var(--primary-900);border-color:transparent}.stats-period-pill:focus-visible,.cps-shortcut:focus-visible{outline:2px solid var(--primary-700);outline-offset:2px}.cps-range-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-md)}.cps-range-value{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--sage-action);white-space:nowrap}.cps-cal{padding-top:2px}.cal-day--in-range{background:var(--sage-surface);color:var(--sage-action);font-weight:var(--font-semibold);border-radius:var(--radius-md)}.cal-day--in-range:hover{background:var(--sage-surface)}.stats-eyebrow{margin:0;font-size:var(--text-3xs);font-weight:var(--font-medium);letter-spacing:.6px;text-transform:uppercase;color:var(--color-text-secondary)}.stats-total-amount{margin:4px 0 0;font-size:26px;font-weight:var(--font-medium);letter-spacing:-.5px;color:var(--color-text-primary)}.stats-total-period{display:flex;align-items:center;gap:6px;margin:6px 0 0;font-size:15px;font-weight:var(--font-medium);color:var(--color-text-primary)}.stats-total-period-icon{flex-shrink:0;color:var(--color-text-secondary)}.stats-total-meta{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-sm);margin:3px 0 0}.stats-total-duration{font-size:var(--text-2xs);color:var(--color-text-secondary)}.stats-total-ref{font-size:var(--text-2xs);color:#8b8870;text-align:right}.stats-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-md)}.stats-section-title{margin:0;font-size:var(--text-base);font-weight:var(--font-medium);color:var(--color-text-primary)}.stats-section-count{font-size:var(--text-xs);color:var(--color-text-secondary)}.stats-donut-body{display:flex;align-items:center;gap:20px}.stats-donut-svg{flex-shrink:0}.stats-donut-legend{list-style:none;margin:0;padding:0;flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.stats-donut-legend-item{display:flex;align-items:center;gap:var(--space-sm)}.stats-donut-swatch{flex-shrink:0;width:10px;height:10px;border-radius:50%}.stats-donut-legend-name{flex:1;min-width:0;font-size:var(--text-xs);color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stats-donut-legend-pct{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-primary)}.stats-donut-legend-item.is-others .stats-donut-legend-name{font-style:italic;color:#8b8870}.stats-donut-legend-item.is-others .stats-donut-legend-pct{font-weight:400;color:#8b8870}.stats-donut-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-lg);color:var(--color-text-tertiary);text-align:center}.stats-donut-empty p{margin:0;font-size:var(--text-sm);color:var(--color-text-secondary)}.stats-bars-row{display:flex;align-items:flex-end;gap:10px}.stats-bar-col{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px}.stats-bar-amount{font-size:var(--text-3xs);color:var(--color-text-secondary);white-space:nowrap}.stats-bar-amount.is-current,.stats-bar-label.is-current{font-weight:var(--font-medium);color:var(--color-text-primary)}.stats-bar-track{width:100%;height:100px;display:flex;align-items:flex-end}.stats-bar-fill{width:100%;background:var(--primary-500);border-radius:4px 4px 0 0}.stats-bar-label{font-size:var(--text-3xs);color:var(--color-text-secondary)}.stats-insights{flex-shrink:0;display:flex;flex-direction:column;gap:var(--space-sm)}.stats-insights-label{margin:0 0 2px;font-size:var(--text-3xs);font-weight:var(--font-medium);letter-spacing:.6px;text-transform:uppercase;color:var(--color-text-secondary)}.stats-insight-card{display:flex;gap:10px;padding:12px 14px;background:#fff;border:.5px solid var(--color-border-light);border-radius:var(--radius-lg)}.stats-insight-card.is-highlight{border:1px solid var(--surface-cream)}.stats-insight-icon{flex-shrink:0;width:28px;height:28px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center}.stats-insight-icon--cream{background:#fdf2cc;color:#8a6d1a}.stats-insight-icon--sage{background:#e5f1eb;color:var(--primary-800)}.stats-insight-text{display:flex;flex-direction:column;gap:2px;min-width:0}.stats-insight-title{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-primary)}.stats-insight-desc{font-size:var(--text-2xs);color:var(--color-text-secondary);line-height:1.4}.stats-catlist-tools{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.stats-catlist-search{flex:1;min-width:0;display:flex;align-items:center;gap:var(--space-sm);padding:8px 12px;border-radius:var(--radius-full);background:var(--color-bg-primary, #fbf8ee);border:.5px solid var(--color-border-light)}.stats-catlist-search-icon{flex-shrink:0;color:var(--color-text-tertiary)}.stats-catlist-search-input{flex:1;min-width:0;border:none;background:transparent;font-size:var(--text-sm);color:var(--color-text-primary);outline:none}.stats-catlist-sort{position:relative;flex-shrink:0}.stats-catlist-sort-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:.5px solid var(--color-border-light);border-radius:var(--radius-md);background:#fff;color:var(--color-text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent}.stats-catlist-menu{position:absolute;top:calc(100% + 4px);right:0;z-index:5;display:flex;flex-direction:column;min-width:150px;padding:4px;background:#fff;border:.5px solid var(--color-border-light);border-radius:var(--radius-md);box-shadow:0 8px 24px #0000001a}.stats-catlist-menu-item{text-align:left;padding:10px 12px;min-height:44px;border:none;border-radius:var(--radius-sm);background:none;font-size:var(--text-sm);color:var(--color-text-primary);cursor:pointer}.stats-catlist-menu-item.is-active{color:var(--primary-800);font-weight:var(--font-medium)}.stats-catlist-empty{margin:var(--space-sm) 0 0;font-size:var(--text-sm);color:var(--color-text-secondary)}.stats-catlist-rows{list-style:none;margin:0;padding:0}.stats-catrow-item{list-style:none}.stats-catrow{width:100%;display:flex;align-items:center;gap:12px;min-height:48px;padding:8px 4px;margin:0 -4px;border:none;border-bottom:.5px solid rgba(0,0,0,.06);background:none;font:inherit;color:inherit;text-align:left;cursor:pointer;border-radius:var(--radius-md);-webkit-tap-highlight-color:transparent}.stats-catrow-item:last-child .stats-catrow{border-bottom:none}.stats-catrow:focus,.stats-catrow:focus-visible{outline:none}.stats-catrow-icon{flex-shrink:0;width:32px;height:32px;border-radius:var(--radius-md);display:inline-flex;align-items:center;justify-content:center}.stats-catrow-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.stats-catrow-name{font-size:var(--text-sm);color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stats-catrow-sub{font-size:var(--text-xs);color:var(--color-text-secondary)}.stats-catrow-delta{flex-shrink:0;padding:2px 7px;border-radius:var(--radius-full);font-size:var(--text-3xs);font-weight:var(--font-medium)}.stats-catrow-delta.is-up{background:var(--alert-soft-bg);color:var(--alert-soft-text)}.stats-catrow-delta.is-down{background:#e5f1eb;color:var(--primary-800)}.stats-catrow-delta.is-flat{background:var(--pill-surface);color:var(--color-text-secondary)}.stats-catrow-chevron{flex-shrink:0;color:var(--color-text-tertiary)}.stats-catdetail{height:100%;width:100%;background:var(--gradient-bg-light);padding:var(--space-lg) var(--page-padding) 6rem;display:flex;flex-direction:column;gap:var(--space-md);overflow-y:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;animation:scd-slide-in var(--duration-normal) ease}@keyframes scd-slide-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.scd-head{flex-shrink:0;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) 0}.scd-back{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-full);background:var(--pill-surface);color:var(--sage-action);cursor:pointer;-webkit-tap-highlight-color:transparent}.scd-back svg{width:22px;height:22px;flex-shrink:0}.scd-back:focus-visible{outline:2px solid var(--primary-700);outline-offset:2px}.scd-icon{flex-shrink:0;width:32px;height:32px;border-radius:var(--radius-md);display:inline-flex;align-items:center;justify-content:center}.scd-title{margin:0;font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--color-text-primary);line-height:var(--leading-tight);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scd-total{margin:4px 0 0;font-size:28px;font-weight:var(--font-medium);letter-spacing:-.5px;color:var(--color-text-primary)}.scd-summary-meta{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-top:var(--space-sm)}.scd-count{font-size:var(--text-sm);color:var(--color-text-secondary)}.scd-rows{list-style:none;margin:0;padding:0}.scd-row{display:flex;align-items:center;gap:12px;min-height:48px;padding:8px 0;border-bottom:.5px solid rgba(0,0,0,.06)}.scd-row:last-child{border-bottom:none}.scd-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.scd-row-title{font-size:var(--text-sm);color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scd-row-sub{font-size:var(--text-xs);color:var(--color-text-secondary)}.scd-row-amount{flex-shrink:0;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-primary)}.scd-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-lg);color:var(--color-text-tertiary);text-align:center}.scd-empty p{margin:0;font-size:var(--text-sm);color:var(--color-text-secondary)}.stats-export-pdf{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);width:100%;padding:var(--space-sm) var(--space-md);background:var(--color-bg-tertiary);color:var(--sage-action);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:var(--card-shadow);font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer;transition:background .15s ease,opacity .15s ease}.stats-export-pdf:active{background:var(--sage-surface)}.stats-export-pdf:disabled{opacity:.6;cursor:default}.pdf-report-offscreen{position:fixed;left:-10000px;top:0;width:794px;pointer-events:none;z-index:-1}
