:root{color-scheme:light;--color-background: #f5f7f2;--color-surface: #ffffff;--color-surface-subtle: #edf3e6;--color-text: #202b24;--color-text-muted: #667166;--color-border: #dfe6db;--color-control-border: #8b8e7a;--color-primary: #315c35;--color-primary-hover: #1b3d34;--color-on-primary: #ffffff;--color-accent: #b9ee72;--color-positive: #1b5e43;--color-positive-bg: #edf3e6;--color-warning: #8f590e;--color-warning-bg: #faedd2;--color-negative: #af3c48;--color-negative-bg: #fbeae6;--color-focus: #315c35;--ring-track-color: #dfe6db;--ring-track-inner-color: #edf3e6;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 9999px;--shadow-subtle: 0 1px 3px rgba(46, 48, 41, .05);--shadow-card: 0 2px 6px rgba(46, 48, 41, .04);--shadow-elevated: 0 8px 24px rgba(46, 48, 41, .08);--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-numeric: "Inter", tabular-nums, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{color-scheme:light;background-color:var(--color-background);color:var(--color-text);font-family:var(--font-family);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}h1,h2,h3,h4{color:var(--color-text);font-weight:600;letter-spacing:-.01em}.num-tabular{font-family:var(--font-numeric);font-variant-numeric:tabular-nums}button{font-family:inherit;cursor:pointer;border:none;background:none}button:disabled{cursor:not-allowed;opacity:.6}input,select,textarea{font-family:inherit;font-size:1rem}.app-container{max-width:1024px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;padding-bottom:calc(72px + env(safe-area-inset-bottom,16px))}@media(min-width:1024px){.app-container{padding-bottom:var(--space-8)}}.card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-card);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.card-interactive{cursor:pointer}.card-interactive:hover{border-color:var(--color-control-border);box-shadow:var(--shadow-elevated)}.card-interactive:active{transform:scale(.99)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.badge-positive{background-color:var(--color-positive-bg);color:var(--color-positive)}.badge-warning{background-color:var(--color-warning-bg);color:var(--color-warning)}.badge-negative{background-color:var(--color-negative-bg);color:var(--color-negative)}.badge-neutral{background-color:var(--color-surface-subtle);color:var(--color-text-muted)}.segmented-control{display:flex;background-color:var(--color-surface-subtle);padding:4px;border-radius:var(--radius-full);gap:2px}.segmented-button{flex:1;padding:6px 12px;border-radius:var(--radius-full);font-size:.875rem;font-weight:500;color:var(--color-text-muted);text-align:center;transition:all .15s ease}.segmented-button.active{background-color:var(--color-surface);color:var(--color-text);font-weight:600;box-shadow:var(--shadow-subtle)}.toast-banner{position:fixed;bottom:calc(80px + env(safe-area-inset-bottom,16px));left:50%;transform:translate(-50%);background-color:#1f2923;color:#fff;padding:12px 20px;border-radius:var(--radius-full);box-shadow:var(--shadow-elevated);display:flex;align-items:center;gap:16px;z-index:1000;animation:slideUp .25s cubic-bezier(.16,1,.3,1)}.toast-undo-btn{color:#84dcc6;font-weight:600;text-decoration:underline;cursor:pointer}@keyframes slideUp{0%{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%)}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#1f292366;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-end;justify-content:center;z-index:2000;padding:0}@media(min-width:640px){.modal-overlay{align-items:center;padding:var(--space-4)}}.modal-content{background-color:var(--color-surface);width:100%;max-width:520px;border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);padding:var(--space-6);max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-elevated)}@media(min-width:640px){.modal-content{border-radius:var(--radius-lg)}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}button{color:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}input,select,textarea{min-width:0;max-width:100%;min-height:44px;font-size:16px!important}input[type=date]{display:block;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=date]::-webkit-date-and-time-value{text-align:left}button{min-height:44px}button svg{flex-shrink:0}.app-container{max-width:1440px;width:100%;padding-bottom:calc(110px + env(safe-area-inset-bottom,0px))}.app-container>*{min-width:0}.card{box-shadow:none;border-color:var(--color-border)}.badge{text-transform:none;letter-spacing:0}.app-header{padding:20px 20px 0}.header-brand,.nav-brand{display:flex;align-items:center;gap:9px}.header-brand strong,.nav-brand strong{font-size:25px;letter-spacing:-1.2px}.header-brand strong span,.nav-brand strong span{color:var(--color-primary)}.brand-symbol{display:grid;place-items:center;width:34px;height:34px;background:#ddf3bd;color:#315c35;border-radius:12px}.demo-label{font-size:10px;letter-spacing:.02em;padding:3px 7px;background:var(--color-surface-subtle);color:var(--color-text-muted);border-radius:6px;margin-left:auto}.date-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:19px}.header-date{display:flex;flex-direction:column}.header-date>span{font-size:12px;color:var(--color-text-muted);text-transform:capitalize}.header-date>strong{font-size:22px;letter-spacing:-.7px}.date-actions{display:flex;align-items:center;gap:4px}.icon-button{width:44px;display:inline-grid;place-items:center;border-radius:50%}.icon-button:hover{background:var(--color-surface-subtle)}.profile-button{background:#fff;border:1px solid var(--color-border);margin-left:8px}.today-button{font-size:12px;font-weight:600;padding:0 8px;color:var(--color-primary)}.home-screen,.app-screen{padding:20px;width:100%}.segmented-control{border-radius:12px;background:#e9eee4}.segmented-button{min-height:36px;border-radius:9px;padding:7px 10px;font-size:13px}.segmented-button.active{color:var(--color-primary)}.spending-summary{flex-wrap:wrap;gap:10px;background:#e8f2da!important;border-color:#d7e6c4;padding:18px!important}.spending-summary>div:first-child>span{font-size:10px!important;letter-spacing:.07em!important}.spending-summary>div:first-child>div{font-size:28px!important;margin-top:5px;letter-spacing:-1px}.spending-summary .badge{background:#f6fbef}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.section-heading h2{font-size:15px}.section-heading>span{font-size:11px;color:var(--color-text-muted)}.home-layout{display:grid;gap:0}.home-layout>*{min-width:0}.expense-composer{padding:14px!important}.expense-composer form{gap:10px!important}.expense-composer .amount-field{background:#f7f9f5!important;border-color:#bac7b2!important;min-height:58px;align-items:center!important}.expense-composer .amount-field:focus-within{outline:2px solid var(--color-focus);outline-offset:2px}.expense-composer .amount-field input{font-size:28px!important;letter-spacing:-.8px}.expense-composer button[aria-pressed]{min-height:40px;font-size:12px!important;padding:7px 10px!important}.expense-composer label{font-size:10px!important;letter-spacing:.05em}.expense-composer select,.expense-composer input[type=date]{border-color:#a9b7a0!important;padding:8px!important}.expense-composer button[type=submit]{min-height:46px}.optional-description summary{color:var(--color-text-muted);font-size:12px;cursor:pointer;padding:7px 0}.optional-description label{display:block;margin:4px 0}.budget-column section>h2{font-size:15px!important;text-transform:none!important;letter-spacing:-.2px!important;color:var(--color-text)!important;margin-bottom:12px!important}.category-card{display:flex;flex-direction:column;text-align:left;gap:9px;width:100%;min-width:0;padding:16px;transition:border-color .15s,transform .15s}.category-card:hover{border-color:#94ab82;transform:translateY(-2px)}.category-heading{display:flex;align-items:center;gap:10px}.category-heading>svg{margin-left:auto;color:#7e8c76}.category-name{font-size:15px;font-weight:600;overflow-wrap:anywhere}.category-symbol{background:#f0f4ea;border-radius:11px;width:34px;height:34px;display:grid;place-items:center;flex-shrink:0}.category-body{display:flex;align-items:center;gap:12px;justify-content:space-between}.category-metric{min-width:0}.metric-label{display:block;font-size:11px;color:var(--color-text-muted)}.category-amount{display:block;font-size:clamp(20px,3vw,25px);line-height:1.4;letter-spacing:-.7px;overflow-wrap:anywhere}.category-ring{flex-shrink:0}.category-context{font-size:12px;color:var(--color-primary);overflow-wrap:anywhere}.category-footer{font-size:11px;color:var(--color-text-muted);border-top:1px solid #edf0e9;padding-top:9px}.category-alert{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--color-negative)}.category-card.negative .category-amount{color:var(--color-negative)}.category-card.investment_goal{background:#f2f7e9}.category-card.tattoo_pool{background:#f6f3fa}.commitment-link{gap:12px}.commitment-link>div{min-width:0}.main-nav{position:fixed;bottom:calc(12px + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);width:calc(100% - 32px);max-width:440px;background:#fff;border:1px solid #dae4d1;box-shadow:0 8px 30px #24371914;border-radius:24px;padding:7px;display:flex;gap:3px;z-index:1000}.nav-item{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;border-radius:18px;min-height:54px;color:var(--color-text-muted);font-size:10px;font-weight:500}.nav-item.active{background:#e4f3ce;color:#315c35;font-weight:700}.nav-brand,.nav-caption,.nav-note{display:none}.page-heading{gap:12px;flex-wrap:wrap}.page-heading h1{font-size:24px!important;letter-spacing:-.8px}.app-screen .card{min-width:0}.transaction-row{gap:12px}.transaction-row>div:first-child{min-width:0;flex:1}.transaction-row>div:first-child>div:last-child{min-width:0;overflow-wrap:anywhere}.transaction-row>div:last-child{flex-shrink:0}.transaction-row .num-tabular{white-space:nowrap;font-size:14px!important}.activity-list{background:#fff;border:1px solid var(--color-border);border-radius:16px;overflow:hidden;gap:0!important}.activity-list .transaction-row{border:0;border-radius:0;border-bottom:1px solid #eef1e9;padding:16px!important}.activity-list .transaction-row:last-child{border-bottom:0}.chart-card>div:first-child{gap:12px;flex-wrap:wrap}.chart-card table{min-width:480px}.chart-card{overflow-x:auto}.commitment-row{gap:12px;flex-wrap:wrap}.commitment-row>div:first-child{min-width:0;flex:1 1 160px;overflow-wrap:anywhere}.commitment-row>div:last-child{flex-wrap:wrap}.commitment-summary{grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr))!important}.commitment-summary .card{text-align:left!important;padding:18px!important}.commitment-progress{height:6px;border-radius:6px;background:#e4ecd9;margin-top:14px;overflow:hidden}.commitment-progress span{display:block;height:100%;background:#72a642;border-radius:inherit}.overdue-panel summary{cursor:pointer;font-size:14px;font-weight:600;color:var(--color-negative);min-height:44px}.overdue-panel .commitment-row{padding:12px 0!important}.toast-banner{max-width:calc(100% - 24px);width:max-content;border-radius:16px;bottom:calc(100px + env(safe-area-inset-bottom,0px));font-size:13px}.modal-content{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}.modal-content>div{min-width:0}@media(max-width:359px){.app-header{padding:16px 12px 0}.home-screen,.app-screen{padding:16px 12px}.transaction-row{flex-wrap:wrap}.transaction-row>div:last-child{margin-left:auto}}@media(min-width:640px){.app-header{padding:28px 28px 0}.home-screen,.app-screen{padding:24px 28px}.home-layout{grid-template-columns:minmax(260px,.85fr) minmax(0,1.15fr);gap:24px;align-items:start}.composer-column{position:sticky;top:24px}}@media(min-width:1024px){.app-container{padding-left:224px;padding-bottom:32px}.main-nav{top:0;bottom:0;left:max(0px,calc((100vw - 1440px)/2));width:224px;max-width:none;transform:none;border-radius:0;border:0;border-right:1px solid var(--color-border);padding:32px 18px;flex-direction:column;gap:8px;box-shadow:none}.nav-brand{display:flex;padding:0 8px;margin-bottom:44px}.nav-caption{display:block;font-size:10px;color:var(--color-text-muted);letter-spacing:.12em;padding:0 14px;margin-bottom:8px}.nav-item{flex:0;flex-direction:row;justify-content:flex-start;gap:12px;padding:12px 16px;font-size:13px;min-height:48px;border-radius:12px}.nav-note{display:block;margin-top:auto;padding:16px 12px;font-size:11px;line-height:1.8;color:var(--color-text-muted)}.app-header{display:flex;justify-content:space-between;align-items:center}.header-brand>.brand-symbol,.header-brand>strong{display:none}.date-bar{margin:0;flex:1}.header-brand{order:2;margin-left:20px}.home-layout{grid-template-columns:320px minmax(0,1fr)}.home-screen>.segmented-control{width:300px}.toast-banner{left:calc(50% + 112px)}}.chart-scope{font-size:11px;color:var(--color-text-muted);margin-bottom:16px}.activity-period{padding:20px 20px 0;max-width:360px}.activity-period .segmented-control{margin-bottom:0!important}@media(min-width:640px){.activity-period{padding-left:28px}}.category-detail{max-width:900px;margin:0 auto}.category-detail>div:first-child{gap:12px;flex-wrap:wrap}.detail-hero{display:flex;flex-direction:column;align-items:center;gap:18px;width:100%}.detail-hero .num-tabular{font-size:30px!important;overflow-wrap:anywhere}.category-detail section .card{gap:12px;flex-wrap:wrap}.chart-toggle{cursor:pointer;font-size:14px;font-weight:600;min-height:44px;padding:10px 0}.chart-toggle span{float:right;font-size:11px;font-weight:400;color:var(--color-primary)}.chart-card[open] .chart-toggle{margin-bottom:18px;border-bottom:1px solid var(--color-border)}.chart-card[open] .chart-toggle span{display:none}.overdue-panel summary>svg{margin:0 6px;vertical-align:middle}@media(max-width:639px){.category-card{gap:7px;padding:14px 16px}.category-heading{gap:8px}.category-footer{padding-top:7px}.category-amount{font-size:24px}}@media(max-width:639px){.spending-summary{padding:14px!important}.spending-summary .badge{font-size:10px!important;padding:4px 7px!important}.spending-summary>div:first-child>span{letter-spacing:.03em!important}.spending-summary>div:first-child>div{font-size:26px!important}}
