:root{--bg:#f7f3ee;--surface:#fffdf9;--surface-elevated:#fff;--text-primary:#221d18;--text-secondary:#6f665d;--border:#e4dbd1;--accent:#b45f37;--accent-strong:#8f4024;--accent-soft:#f4dfd2;--success:#2f7d59;--warning:#a66a00;--danger:#b73535;--radius-sm:6px;--radius-md:8px;--radius-lg:8px;--shadow-sm:0 8px 24px #4c342314;--shadow-md:0 18px 48px #4c342321;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--transition:.18s ease;color:var(--text-primary);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=dark]{--bg:#181614;--surface:#201d1a;--surface-elevated:#28231f;--text-primary:#f7f1ea;--text-secondary:#beb1a6;--border:#3b332d;--accent:#e19b70;--accent-strong:#f0b58f;--accent-soft:#3b2a22;--success:#72c29a;--warning:#e0af55;--danger:#f08282;--shadow-sm:0 8px 24px #00000040;--shadow-md:0 18px 48px #00000059;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root[data-theme=system]{--bg:#181614;--surface:#201d1a;--surface-elevated:#28231f;--text-primary:#f7f1ea;--text-secondary:#beb1a6;--border:#3b332d;--accent:#e19b70;--accent-strong:#f0b58f;--accent-soft:#3b2a22;--success:#72c29a;--warning:#e0af55;--danger:#f08282;--shadow-sm:0 8px 24px #00000040;--shadow-md:0 18px 48px #00000059;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html{background:var(--bg);min-width:320px}body{min-width:320px;min-height:100svh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a,button,input,select,textarea{outline-color:#0000}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:3px}#root{min-height:100svh}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-shell{grid-template-columns:88px minmax(0,1fr);min-height:100svh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--border);align-items:center;gap:var(--space-6);padding:var(--space-5) var(--space-3);flex-direction:column;height:100svh;display:flex;position:sticky;top:0}.brand-mark,.nav-button,.bottom-nav__item,.icon-button{transition:background var(--transition), color var(--transition), transform var(--transition);border:0;justify-content:center;align-items:center;display:inline-flex}.brand-mark{border-radius:var(--radius-md);background:var(--accent);color:#fffaf5;width:48px;height:48px;box-shadow:var(--shadow-sm)}.side-nav{gap:var(--space-3);width:100%;display:grid}.nav-button{color:var(--text-secondary);border-radius:var(--radius-md);min-height:62px;padding:var(--space-2);background:0 0;flex-direction:column;gap:.35rem;width:100%}.nav-button span{font-size:.72rem;line-height:1.1}.nav-button:hover,.nav-button--active{background:var(--accent-soft);color:var(--accent-strong)}.main-content{min-width:0;padding:var(--space-8)}.page{gap:var(--space-6);width:100%;max-width:1180px;margin:0 auto;display:grid}.page--form{max-width:860px}.mobile-header,.bottom-nav{display:none}.dashboard-header,.page-header{align-items:flex-start;gap:var(--space-4);justify-content:space-between;display:flex}.page-header{max-width:760px;display:block}.eyebrow{color:var(--accent-strong);letter-spacing:0;margin:0 0 var(--space-2);text-transform:uppercase;font-size:.78rem;font-weight:800}h1,h2,h3,p{margin:0}h1{color:var(--text-primary);letter-spacing:0;font-size:clamp(2rem,4vw,4.25rem);font-weight:780;line-height:.98}h2{color:var(--text-primary);font-size:1.22rem;line-height:1.18}h3{color:var(--text-primary);font-size:1rem}p{color:var(--text-secondary);line-height:1.6}.date-line,.status-pill,.mobile-header__date{color:var(--text-secondary);align-items:center;gap:var(--space-2);display:inline-flex}.status-pill{background:var(--surface);border:1px solid var(--border);color:var(--success);min-height:40px;padding:0 var(--space-4);white-space:nowrap;border-radius:999px;font-weight:700}.sync-chip{background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);align-items:center;gap:var(--space-2);min-height:34px;padding:0 var(--space-3);white-space:nowrap;border-radius:999px;font-size:.8rem;font-weight:800;display:inline-flex}.sync-chip--synced,.sync-chip--connected{color:var(--success)}.sync-chip--syncing,.sync-chip--pending{color:var(--warning)}.sync-chip--offline,.sync-chip--auth-required,.sync-chip--error{color:var(--danger)}.hero-card,.panel,.metric-card,.empty-state{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.hero-card{gap:var(--space-5);grid-template-columns:minmax(0,1fr) auto;padding:clamp(1.25rem,4vw,2.25rem);display:grid}.hero-card strong{margin:var(--space-2) 0;font-size:clamp(2.35rem,8vw,5.5rem);line-height:.95;display:block}.hero-card__side{background:var(--accent-soft);border-radius:var(--radius-md);color:var(--accent-strong);min-width:120px;padding:var(--space-4);text-align:center;align-self:start}.hero-card__side span{font-size:2rem;font-weight:800;display:block}.hero-card__side small{color:var(--text-secondary)}.hero-card__summary{border-top:1px solid var(--border);padding-top:var(--space-4);grid-column:1/-1}.grid-two,.grid-three,.filter-grid,.field-grid,.button-grid{gap:var(--space-4);display:grid}.grid-two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-three{grid-template-columns:repeat(3,minmax(0,1fr))}.panel,.metric-card,.empty-state{padding:var(--space-5)}.panel-heading{margin-bottom:var(--space-5)}.panel-heading--row{justify-content:space-between;align-items:center;display:flex}.bucket-row{gap:var(--space-2);padding:var(--space-3) 0;grid-template-columns:minmax(150px,1fr) minmax(140px,2fr) 48px;align-items:center;display:grid}.bucket-row+.bucket-row{border-top:1px solid var(--border)}.bucket-row div:first-child{gap:.15rem;display:grid}.bucket-row span,.bucket-row small,.metric-card span,.insight-list span,.detail-grid dt,.small-muted{color:var(--text-secondary)}.progress-track{background:color-mix(in srgb, var(--border) 70%, transparent);border-radius:999px;height:10px;overflow:hidden}.progress-track span{background:linear-gradient(90deg, var(--accent), var(--accent-strong));border-radius:inherit;height:100%;display:block}.insight-list{gap:var(--space-3);display:grid}.insight-list div,.settings-note,.app-version,.score-grid{background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4)}.insight-list strong,.metric-card strong{margin-top:var(--space-1);display:block}.expense-list{gap:var(--space-3);display:grid}.expense-item{background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);align-items:center;gap:var(--space-3);min-height:66px;padding:var(--space-4);text-align:left;grid-template-columns:minmax(0,1fr) auto auto;width:100%;display:grid}.expense-item:hover{border-color:color-mix(in srgb, var(--accent) 50%, var(--border));transform:translateY(-1px)}.expense-item__main{gap:.2rem;min-width:0;display:grid}.expense-item__main strong,.expense-item__main span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.expense-item__main span{color:var(--text-secondary);font-size:.92rem}.expense-item__amount{font-weight:800}.button,.segmented-control__item{border-radius:var(--radius-sm);align-items:center;gap:var(--space-2);min-height:44px;transition:background var(--transition), border-color var(--transition), color var(--transition), transform var(--transition);border:1px solid #0000;justify-content:center;padding:.65rem 1rem;font-weight:800;display:inline-flex}.button:hover{transform:translateY(-1px)}.button--primary{background:var(--accent);color:#fffaf5}.button--secondary{background:var(--accent-soft);color:var(--accent-strong)}.button--ghost{border-color:var(--border);color:var(--text-primary);background:0 0}.button--danger{background:color-mix(in srgb, var(--danger) 12%, var(--surface));color:var(--danger)}.button-row,.filters-footer{gap:var(--space-3);margin-top:var(--space-5);flex-wrap:wrap;justify-content:flex-end;display:flex}.button-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.expense-form{gap:var(--space-5);display:grid}.form-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5)}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.field,.field--range span{gap:var(--space-2);display:grid}.field span{color:var(--text-secondary);font-size:.88rem;font-weight:700}.field input,.field select,.field textarea{background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);width:100%;min-height:44px;padding:.72rem .85rem}.field textarea{resize:vertical}.field small{color:var(--danger)}.field--wide{grid-column:1/-1}.field--range span{grid-template-columns:minmax(0,1fr) auto;align-items:center}.field--search{position:relative}.field--search svg{color:var(--text-secondary);position:absolute;bottom:.85rem;left:.85rem}.field--search input{padding-left:2.45rem}.accordion-button{color:var(--text-primary);margin-bottom:var(--space-4);background:0 0;border:0;justify-content:space-between;align-items:center;width:100%;min-height:44px;padding:0;font-weight:850;display:flex}.form-submit{justify-self:end}.success-banner{background:color-mix(in srgb, var(--success) 12%, var(--surface));border:1px solid color-mix(in srgb, var(--success) 35%, var(--border));border-radius:var(--radius-md);color:var(--success);align-items:center;gap:var(--space-2);padding:var(--space-4);display:flex}.empty-state{text-align:center;place-items:center;min-height:240px;display:grid}.empty-state__icon{background:var(--accent-soft);border-radius:var(--radius-md);color:var(--accent-strong);justify-content:center;align-items:center;width:52px;height:52px;display:inline-flex}.modal-backdrop{padding:var(--space-4);z-index:20;background:#16120f7a;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);max-height:min(860px,100svh - 2rem);padding:var(--space-5);width:min(100%,620px);overflow:auto}.modal--wide{width:min(100%,860px)}.modal__header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.icon-button{background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);width:44px;height:44px}.expense-detail{gap:var(--space-5);display:grid}.expense-detail__hero{background:var(--accent-soft);border-radius:var(--radius-md);color:var(--accent-strong);padding:var(--space-5)}.expense-detail__hero strong{margin-top:var(--space-2);font-size:2.4rem;line-height:1;display:block}.detail-grid{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.detail-grid div{border-bottom:1px solid var(--border);padding-bottom:var(--space-3)}.detail-grid dd{margin:var(--space-1) 0 0;font-weight:800}.score-grid{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.story-note{border-left:4px solid var(--accent);padding-left:var(--space-4)}.ai-form-section,.ai-suggestion-card,.ai-detail-actions,.ai-story-list{gap:var(--space-4);display:grid}.ai-message{background:color-mix(in srgb, var(--accent) 10%, var(--surface));border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);align-items:center;gap:var(--space-2);padding:var(--space-3);display:flex}.ai-suggestion-card{background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4)}.ai-suggestion-card__summary{align-items:center;gap:var(--space-3);justify-content:space-between;display:flex}.ai-suggestion-card__summary span{color:var(--text-secondary);font-weight:800}.toggle-row{align-items:flex-start;gap:var(--space-3);line-height:1.5;display:flex}.toggle-row input{width:20px;height:20px;margin-top:.15rem}.date-group{gap:var(--space-3);display:grid}.date-group+.date-group{border-top:1px solid var(--border);margin-top:var(--space-5);padding-top:var(--space-5)}.desktop-table table{border-collapse:collapse;width:100%}.desktop-table caption{color:var(--text-secondary);margin-bottom:var(--space-3);text-align:left}.desktop-table th,.desktop-table td{border-bottom:1px solid var(--border);padding:var(--space-3);text-align:left}.desktop-table tr{cursor:pointer}.desktop-table tr:hover td{background:var(--accent-soft)}.story-card,.metric-card{gap:var(--space-3);display:grid}.story-card strong,.metric-card strong{font-size:1.6rem;line-height:1.1}.metric-card--wide{grid-column:span 3}.reflection-panel{gap:var(--space-3);display:grid}.segmented-control{background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-md);gap:var(--space-2);padding:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:inline-grid}.segmented-control__item{color:var(--text-secondary);background:0 0}.segmented-control__item.is-active{background:var(--accent-soft);color:var(--accent-strong)}.settings-note{align-items:flex-start;gap:var(--space-3);display:flex}.sync-status-grid{gap:var(--space-4);margin-bottom:var(--space-5);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.sync-key-row{align-items:end;gap:var(--space-3);margin-bottom:var(--space-5);grid-template-columns:minmax(0,1fr) 44px;display:grid}.sync-button-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.budget-month-bar{align-items:end;gap:var(--space-3);grid-template-columns:44px minmax(0,260px) 44px;display:grid}.budget-progress{margin-bottom:var(--space-4)}.budget-stat-row{color:var(--text-secondary);gap:var(--space-3);flex-wrap:wrap;justify-content:space-between;display:flex}.budget-status{border:1px solid var(--border);color:var(--text-primary);white-space:nowrap;border-radius:999px;padding:.4rem .8rem;font-weight:800}.budget-status--under-pace,.budget-status--on-pace{color:var(--success)}.budget-status--over-pace{color:var(--warning)}.budget-status--budget-exceeded{color:var(--danger)}.budget-category-list,.budget-editor,.budget-editor__categories{gap:var(--space-4);display:grid}.budget-category-row{background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-md);gap:var(--space-3);padding:var(--space-4);display:grid}.budget-category-row>div:first-child,.budget-today-card__amount{justify-content:space-between;align-items:center;display:flex}.budget-category-row span,.budget-today-card span{color:var(--text-secondary);font-weight:800}.budget-category-edit{align-items:end;gap:var(--space-3);grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px;display:grid}.budget-actions{margin-top:0}.budget-today-card{gap:var(--space-3);display:grid}.budget-today-card__amount strong{font-size:1.7rem}.budget-setup-prompt{gap:var(--space-3);display:grid}.field-error{color:var(--danger);font-weight:800}.planning-tabs{grid-template-columns:repeat(3,minmax(0,1fr));justify-self:start}.planning-grid,.planning-list,.planning-form{gap:var(--space-4);display:grid}.planning-form{grid-template-columns:repeat(2,minmax(0,1fr))}.planning-card,.planning-row{background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4)}.planning-card{gap:var(--space-3);display:grid}.planning-card__top,.planning-row{align-items:center;gap:var(--space-3);justify-content:space-between;display:flex}.planning-card__top span{color:var(--text-secondary);font-weight:800}.app-version{justify-content:space-between;align-items:center;display:flex}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.confirm{gap:var(--space-4);display:grid}@media (width<=1024px){.app-shell{padding:calc(72px + env(safe-area-inset-top)) var(--space-4) calc(90px + env(safe-area-inset-bottom));display:block}.sidebar{display:none}.mobile-header{background:color-mix(in srgb, var(--surface) 92%, transparent);border-bottom:1px solid var(--border);min-height:72px;padding:calc(var(--space-3) + env(safe-area-inset-top)) var(--space-4) var(--space-3);z-index:10;justify-content:space-between;align-items:center;display:flex;position:fixed;inset:0 0 auto}.mobile-header strong{display:block}.mobile-header__date{display:none}.main-content{padding:0}.page{gap:var(--space-5)}.dashboard-header{display:block}.dashboard-header .status-pill{margin-top:var(--space-4)}.grid-two,.grid-three,.sync-status-grid,.sync-button-grid,.filter-grid,.button-grid{grid-template-columns:1fr}.desktop-table{display:none}.bottom-nav{background:color-mix(in srgb, var(--surface) 94%, transparent);border-top:1px solid var(--border);padding:var(--space-2) var(--space-2) calc(var(--space-2) + env(safe-area-inset-bottom));z-index:10;grid-template-columns:repeat(7,minmax(0,1fr));gap:.1rem;display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav__item{border-radius:var(--radius-md);color:var(--text-secondary);min-height:58px;padding:var(--space-2) 0;background:0 0;flex-direction:column;gap:.2rem;font-size:.72rem}.bottom-nav__item--active{color:var(--accent-strong)}.bottom-nav__item--add{background:var(--accent);color:#fffaf5}.bottom-nav__item--add.bottom-nav__item--active{color:#fffaf5}.hero-card{grid-template-columns:1fr}.hero-card__side{text-align:left}.bucket-row,.budget-month-bar,.budget-category-edit,.planning-form,.planning-row{grid-template-columns:1fr}.planning-row{align-items:stretch;display:grid}.field-grid,.detail-grid,.score-grid{grid-template-columns:1fr}.metric-card--wide{grid-column:auto}.panel,.metric-card,.empty-state,.form-section{padding:var(--space-4)}.modal{max-height:calc(100svh - 1rem);padding:var(--space-4)}}@media (width<=420px){.app-shell{padding-left:var(--space-3);padding-right:var(--space-3)}h1{font-size:2.35rem}.expense-item{grid-template-columns:minmax(0,1fr) auto}.expense-item svg{display:none}.expense-item__amount{font-size:.95rem}.button-row{justify-content:stretch}.button-row .button{flex:100%}}
