:root{--ff-peach:#ffcab5;--ff-apricot:#ffb4a2;--ff-beige:#f5e6d3;--ff-sand:#e8d5c4;--ff-cream:#fff8f0;--ff-blush:#f8e0e7;--ff-terracotta:#c97b63;--ff-income:#7bae8a;--ff-chocolate:#3d2f28;--ff-radius-sm:8px;--ff-radius-md:12px;--ff-radius-lg:16px;--ff-radius-pill:999px;--ff-gradient-cta:linear-gradient(135deg, #ffcab5 0%, #ffb4a2 50%, #f5c4b8 100%);--ff-gradient-nav-active:linear-gradient(90deg, #ffcab559, #f5e6d326);--ff-gradient-pearl-border:linear-gradient(135deg, #ffe8dc, #f5e6d3, #f0d4e8, #f5e6d3);--ff-gradient-chart-bar:linear-gradient(180deg, #ffcab5, #ffb4a2)}[data-theme=dark]{--ff-bg:linear-gradient(160deg, #2a2420 0%, #1e1b18 55%, #241f1c 100%);--ff-text:#f5ede4;--ff-text-muted:#b8a99a;--ff-sidebar-bg:#241f1c;--ff-card-bg:linear-gradient(135deg, #ffd4c438 0%, #f5e6d324 45%, #f8e0e71f 100%);--ff-card-bg-solid:#2a2522;--ff-card-border:#ffe8dc40;--ff-workspace-bg:#f7ede324;--ff-workspace-solid:#2f2924;--ff-input-bg:#fff8f014;--ff-row-stripe:#f5e6d30f;--ff-shadow:0 4px 24px #00000040;--ff-table-header-bg:#e8d5c440}[data-theme=light]{--ff-bg:linear-gradient(160deg, #fff8f0 0%, #f5e6d3 100%);--ff-text:#3d2f28;--ff-text-muted:#7a6b5e;--ff-sidebar-bg:#e8d5c4;--ff-card-bg:linear-gradient(135deg, #fff 0%, #fff5eb 100%);--ff-card-bg-solid:#fffaf5;--ff-card-border:#ffcab573;--ff-workspace-bg:#f7ede3;--ff-workspace-solid:#f7ede3;--ff-input-bg:#fff;--ff-row-stripe:#e8d5c459;--ff-shadow:0 4px 24px #2a24201f;--ff-table-header-bg:#e8d5c4}[data-theme=dark],[data-theme=light]{--bg:#1e1b18;--bg-elevated:var(--ff-sidebar-bg);--card:var(--ff-card-bg-solid);--card-hover:var(--ff-workspace-solid);--border:var(--ff-card-border);--border-soft:var(--ff-card-border);--accent:var(--ff-apricot);--accent-dim:var(--ff-peach);--accent-glow:#ffcab533;--danger:var(--ff-terracotta);--danger-soft:#c97b6326;--muted:var(--ff-text-muted);--text:var(--ff-text);--shadow:var(--ff-shadow);--radius:var(--ff-radius-lg);--radius-sm:var(--ff-radius-sm);color:var(--ff-text)}[data-theme=light]{--bg:#fff8f0}:root{font-weight:400;line-height:1.5}*{box-sizing:border-box}body{min-height:100vh;margin:0}a{color:var(--accent);text-decoration:none}#root{min-height:100vh}.app-shell{flex-direction:column;max-width:480px;min-height:100vh;margin:0 auto;display:flex}.app-body{flex-direction:column;flex:1;min-width:0;display:flex}.sidebar-nav{display:none}.brand-mark{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:.85rem;font-weight:800;display:flex}.brand-mark-sm{width:36px;height:36px;font-size:.75rem}.sidebar-brand{align-items:center;gap:.75rem;display:flex}.header-brand-mobile{align-items:center;gap:.65rem;display:flex}.nav-icon{opacity:.9;color:currentColor;flex-shrink:0}.header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.35rem;display:flex}.app-topbar{display:none}.period-picker-compact .chip{padding:.3rem .6rem;font-size:.75rem}.period-picker{flex-wrap:nowrap}.ff-theme-toggle-label{display:none}.app-header{border-bottom:1px solid var(--border-soft);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10;background:#241f1ce0;justify-content:space-between;align-items:center;padding:.85rem 1.25rem;display:flex;position:sticky;top:0}[data-theme=light] .app-header{background:#fff8f0eb}.app-brand{margin:0;font-size:1rem;font-weight:700}.app-user{color:var(--muted);margin:.15rem 0 0;font-size:.8rem}.app-main{flex:1;padding:1rem 1.25rem 5rem}.bottom-nav{border-top:1px solid var(--border);background:var(--card);grid-template-columns:1fr 1fr 1fr;width:100%;max-width:480px;margin:0 auto;display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav.nav-4{grid-template-columns:repeat(4,1fr)}.bottom-nav.nav-5{grid-template-columns:repeat(5,1fr)}.bottom-nav.nav-4 a,.bottom-nav.nav-5 a{padding:.65rem .15rem;font-size:.72rem}.bottom-nav a{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:.15rem;padding:.55rem .25rem .65rem;font-size:.68rem;font-weight:500;text-decoration:none;transition:color .15s;display:flex}.bottom-nav a.active,.bottom-nav a.active .nav-icon{color:var(--accent)}.bottom-nav-fab,.bottom-nav-more{color:var(--muted);cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:.15rem;padding:.55rem .25rem .65rem;font-family:inherit;font-size:.68rem;font-weight:500;display:flex}.bottom-nav-fab{position:relative;top:-10px}.bottom-nav-fab>svg{background:var(--ff-gradient-cta);width:48px;height:48px;color:var(--ff-chocolate);border-radius:50%;padding:12px;box-shadow:0 4px 16px #ffb4a273}.bottom-nav-more.active,.bottom-nav-more:hover{color:var(--accent)}.fab-menu-backdrop,.drawer-backdrop,.sheet-backdrop{z-index:90;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1e1b188c;position:fixed;inset:0}.fab-menu{z-index:91;flex-direction:column;gap:.5rem;min-width:220px;display:flex;position:fixed;bottom:5.5rem;left:50%;transform:translate(-50%)}.fab-menu-item{border:1px solid var(--ff-card-border);background:var(--ff-card-bg-solid);color:var(--ff-text);border-radius:var(--ff-radius-md);cursor:pointer;box-shadow:var(--ff-shadow);padding:.85rem 1rem;font-family:inherit;font-size:.92rem;font-weight:600}.fab-menu-item:hover{background:var(--ff-row-stripe)}.mobile-drawer{z-index:91;background:var(--ff-sidebar-bg);border-left:1px solid var(--ff-card-border);flex-direction:column;gap:1rem;width:min(280px,85vw);padding:1rem;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-8px 0 32px #0003}.mobile-drawer-header{justify-content:space-between;align-items:center;display:flex}.mobile-drawer nav{flex-direction:column;gap:.25rem;display:flex}.mobile-drawer nav a{border-radius:var(--radius-sm);color:var(--muted);align-items:center;gap:.65rem;padding:.75rem .9rem;font-weight:500;text-decoration:none;display:flex}.mobile-drawer nav a.active{background:var(--ff-gradient-nav-active);color:var(--accent);font-weight:600}.sheet-panel{z-index:91;border-radius:var(--ff-radius-lg) var(--ff-radius-lg) 0 0;margin:0;max-width:480px;margin-inline:auto;padding:1.25rem;position:fixed;bottom:0;left:0;right:0}.quick-add-sheet h3{margin-top:0}.tx-day-group{list-style:none}.tx-day-label{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);margin:.5rem 0 .35rem;font-size:.78rem;font-weight:600}.tx-day-items{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.tx-day-row td{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:0 0;border-bottom:none;padding-top:1rem;padding-bottom:.35rem;font-size:.78rem;font-weight:600}.tx-search-bar{border-radius:var(--ff-radius-md);border:1px solid var(--ff-card-border);background:var(--ff-input-bg);align-items:center;gap:.5rem;padding:.55rem .85rem;display:flex}.tx-search-bar input{min-width:0;color:var(--ff-text);background:0 0;border:none;outline:none;flex:1;padding:.25rem 0;font-size:.92rem}.tx-search-bar input:focus{box-shadow:none;outline:none}.tx-search-icon{color:var(--muted);flex-shrink:0}.tx-search-clear{padding:.25rem}.tx-search-count{white-space:nowrap;font-size:.75rem}.tx-unknown-merchant{color:var(--ff-terracotta);font-style:italic}.tx-clarify-btn{border-radius:var(--ff-radius-pill);color:var(--ff-apricot);cursor:pointer;background:#ffcab526;border:1px solid #ffcab58c;align-items:center;padding:.2rem .55rem;font-family:inherit;font-size:.75rem;font-weight:600;display:inline-flex}.tx-clarify-btn:hover{background:var(--ff-gradient-nav-active);color:var(--ff-chocolate)}[data-theme=dark] .tx-clarify-btn:hover{color:var(--ff-peach)}.tx-clarify-btn-inline{vertical-align:middle;margin-left:.35rem}.field-highlight input{border-color:var(--ff-apricot);box-shadow:0 0 0 2px #ffcab559}.sticky-quick-add{left:0;right:0;bottom:calc(3.75rem + env(safe-area-inset-bottom,0px));z-index:8;background:var(--ff-card-bg-solid);border-top:1px solid var(--ff-card-border);max-width:480px;margin:0 auto;padding:.6rem 1rem .5rem;position:fixed;box-shadow:0 -6px 24px #0000002e}.sticky-quick-add-form{align-items:center;gap:.5rem;display:flex}.sticky-quick-add-form input{border-radius:var(--ff-radius-pill);flex:1;min-width:0;padding:.65rem .85rem}.sticky-quick-add-btn{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;padding:0;display:flex}.sticky-quick-add-error{margin:.35rem 0 0;font-size:.78rem}.dashboard-page-mobile{padding-bottom:5.5rem}.auth-page{justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.auth-card{background:var(--card);border:1px solid var(--border-soft);width:100%;max-width:420px;box-shadow:var(--shadow);border-radius:18px;padding:1.75rem}.auth-brand{align-items:center;gap:.85rem;margin-bottom:1.25rem;display:flex}.auth-card h1{margin:0 0 .15rem;font-size:1.45rem;font-weight:700}.auth-footer{text-align:center;color:var(--muted);margin-top:1rem;font-size:.9rem}.page-center{min-height:50vh;color:var(--muted);justify-content:center;align-items:center;display:flex}.stack{flex-direction:column;gap:1rem;display:flex}.page-header{flex-direction:column;gap:.75rem;margin-bottom:.25rem;display:flex}.page-title{letter-spacing:-.02em;margin:0;font-size:1.65rem;font-weight:700}.page-subtitle{margin:.2rem 0 0;font-size:.92rem}.page-header-actions,.page-header-actions-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.filter-chips-compact .chip{padding:.35rem .7rem;font-size:.8rem}.card{background:var(--card);border:1px solid var(--border-soft);border-radius:var(--radius);padding:1.1rem 1.2rem;transition:border-color .15s,background .15s;box-shadow:0 2px 12px #00000026}.card:hover{border-color:var(--border)}.card h2,.card h3{margin:0 0 .5rem;font-size:1rem;font-weight:600}.empty-state{text-align:center;padding:2rem 1.25rem}.empty-state-title{margin:0 0 .35rem;font-size:1.05rem;font-weight:600}.pill{background:var(--accent-glow);color:var(--accent);border:1px solid #3ecf8e40;border-radius:999px;padding:.15rem .5rem;font-size:.78rem;font-weight:500;display:inline-block}.pill-muted{color:var(--muted);border-color:var(--border-soft);background:#8b9cb01a}.label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0;font-size:.75rem}.muted{color:var(--muted);font-size:.9rem}.stat-value{margin:.25rem 0 0;font-size:1.4rem;font-weight:700}.stat-value.expense{color:var(--danger)}.stat-value.income{color:var(--accent)}.stats-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.stat-full{grid-column:1/-1}.change{margin:.25rem 0 0;font-weight:600}.category-list,.tx-list{margin:0;padding:0;list-style:none}.category-list li,.tx-item{border-bottom:1px solid var(--border);justify-content:space-between;gap:.5rem;padding:.5rem 0;display:flex}.category-list li:last-child,.tx-item:last-child{border-bottom:none}.tx-title{margin:0;font-weight:600}.amount{white-space:nowrap;font-weight:700}.amount.expense{color:var(--danger)}.amount.income{color:var(--accent)}.form,.auth-card label{flex-direction:column;gap:.35rem;margin-bottom:.85rem;font-size:.9rem;display:flex}input,textarea,select{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);width:100%;color:inherit;font:inherit;padding:.65rem .8rem;transition:border-color .15s,box-shadow .15s}label{color:var(--muted);flex-direction:column;gap:.35rem;font-size:.88rem;font-weight:500;display:flex}.code-input{text-transform:uppercase;letter-spacing:.08em}.field-error,.form-error{color:var(--danger);margin:0;font-size:.8rem}.btn-primary{border-radius:var(--radius-sm);background:linear-gradient(180deg, var(--accent), var(--accent-dim));color:#0a1218;cursor:pointer;width:100%;box-shadow:0 4px 14px var(--accent-glow);border:none;padding:.75rem 1rem;font-size:.95rem;font-weight:700;transition:transform .1s,box-shadow .15s,opacity .15s}.btn-primary:hover:not(:disabled){box-shadow:0 6px 20px var(--accent-glow);transform:translateY(-1px)}.btn-primary:disabled{opacity:.55;cursor:wait;transform:none}.btn-ghost{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;padding:.45rem .85rem;font-size:.88rem;font-weight:500;transition:border-color .15s,background .15s}.btn-ghost:hover:not(:disabled){border-color:var(--accent-dim);background:var(--card-hover)}.tabs{grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:1rem;display:grid}.tab{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;padding:.55rem}.tab.active{border-color:var(--accent);color:var(--accent)}.stack.gap-sm{gap:.65rem}.settings-dl{flex-direction:column;gap:.75rem;margin:0;display:flex}.settings-dl dt{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0;font-size:.75rem}.settings-dl dd{margin:.15rem 0 0;font-weight:600}.btn-row{gap:.5rem;margin-bottom:.75rem;display:flex}.btn-inline{flex:1;width:auto}.btn-full{width:100%}.btn-danger{border:1px solid var(--danger);width:100%;color:var(--danger);cursor:pointer;background:0 0;border-radius:10px;padding:.75rem 1rem;font-size:.95rem;font-weight:600}.btn-danger:disabled{opacity:.6;cursor:wait}.btn-icon{padding:.45rem .65rem;font-size:1.1rem;line-height:1;text-decoration:none}.invite-block{margin:.75rem 0}.invite-row{align-items:center;gap:.5rem;margin-top:.35rem;display:flex}.invite-code{background:var(--bg);border:1px solid var(--border);letter-spacing:.1em;border-radius:10px;flex:1;padding:.55rem .75rem;font-size:1.1rem;font-weight:700}.members-block{margin:.75rem 0}.members-list{margin:.35rem 0 .75rem;padding:0;list-style:none}.members-list li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.45rem 0;display:flex}.members-list li:last-child{border-bottom:none}.badge{text-transform:uppercase;letter-spacing:.04em;color:var(--accent);border:1px solid var(--accent-dim);border-radius:6px;padding:.1rem .4rem;font-size:.7rem}.form-info{color:var(--accent);margin:0;font-size:.85rem}a.btn-primary,a.btn-link{text-align:center;color:#0a1218;text-decoration:none;display:block}.btn-link-muted{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.filter-chips{flex-wrap:wrap;gap:.5rem;display:flex}.chip{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;padding:.45rem .85rem;font-size:.85rem;font-weight:500}.tx-item-btn{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;padding:.5rem 0}.tx-item-btn:hover .tx-title{color:var(--accent)}.tx-editor{margin-bottom:.5rem}.tx-editor-header{justify-content:space-between;align-items:flex-start;margin-bottom:.5rem;display:flex}.tx-editor-hint{margin:.5rem 0 0;font-size:.8rem}.btn-danger.btn-inline{flex:1;width:auto}.tx-badge{color:var(--accent);border:1px solid var(--accent-dim);vertical-align:middle;border-radius:6px;margin-left:.4rem;padding:.05rem .35rem;font-size:.7rem;font-weight:600}.items-list{margin:0;padding:0;list-style:none}.item-row{border-bottom:1px solid var(--border);justify-content:space-between;gap:.75rem;padding:.55rem 0;display:flex}.item-row:last-child{border-bottom:none}.item-name{margin:0;font-size:.95rem;font-weight:600}.ff-truncate{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}.ff-truncate-inline,.history-merchant{vertical-align:bottom;max-width:min(160px,42vw);display:inline-block}.col-truncate{max-width:220px}.product-stat-head>div:first-child{flex:1;min-width:0}.history-list-main{min-width:0;overflow:hidden}.dashboard-recent-mobile{padding:1rem}.dashboard-recent-list{margin:0;padding:0;list-style:none}.dashboard-recent-item{border:none;border-bottom:1px solid var(--border);width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.65rem 0;display:flex}.dashboard-recent-list li:last-child .dashboard-recent-item{border-bottom:none;padding-bottom:0}.dashboard-recent-main{flex:1;min-width:0}.dashboard-recent-title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;display:block;overflow:hidden}.dashboard-recent-meta{margin-top:.15rem;font-size:.78rem;display:block}.dashboard-body-mobile .dashboard-actions{margin-top:0}.pwa-toast{left:50%;bottom:calc(1rem + env(safe-area-inset-bottom,0px));z-index:120;border-radius:var(--ff-radius-md);border:1px solid var(--ff-card-border);background:var(--ff-card-bg-solid);max-width:min(480px,100vw - 2rem);box-shadow:var(--ff-shadow);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.88rem;display:flex;position:fixed;transform:translate(-50%)}.pwa-toast-btn{padding:.35rem .75rem;font-size:.82rem}@media (width<=899px){.pwa-toast{bottom:calc(7.5rem + env(safe-area-inset-bottom,0px))}}.item-meta{margin:.15rem 0 0;font-size:.8rem}.item-price{white-space:nowrap;color:var(--danger);font-weight:700}.items-section{border-bottom:1px solid var(--border);margin-bottom:1rem;padding-bottom:.75rem}.items-section h3,.edit-section-title{margin:0 0 .5rem;font-size:.95rem}.product-stats-list{flex-direction:column;gap:.65rem;margin:0;padding:0;list-style:none;display:flex}.product-stat-card{margin:0}.product-stat-head{justify-content:space-between;gap:.75rem;display:flex}.product-stat-foot{flex-wrap:wrap;gap:.75rem;margin-top:.5rem;font-size:.8rem;display:flex}.product-stat-btn{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;padding:0}.history-block{border-top:1px solid var(--border);margin-top:.75rem;padding-top:.75rem}.history-list{margin:0;padding:0;font-size:.85rem;list-style:none}.history-list li{border-bottom:1px solid var(--border);justify-content:space-between;gap:.5rem;padding:.35rem 0;display:flex}.history-list li:last-child{border-bottom:none}.drop-zone{border:2px dashed var(--border);text-align:center;cursor:pointer;transition:border-color .15s}.drop-zone.drag-over,.drop-zone:hover{border-color:var(--accent)}.chart-wrap{margin-top:.5rem}.chart-wrap-wide{min-height:200px}.chart-legend{flex-direction:column;gap:.35rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.chart-legend li{grid-template-columns:12px 1fr auto;align-items:center;gap:.5rem;font-size:.85rem;display:grid}.legend-dot{border-radius:50%;width:10px;height:10px}.dashboard-actions,.chart-sections,.reports-sections,.dashboard-charts,.dashboard-body{flex-direction:column;gap:1rem;display:flex}.card-heading-row{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.card-heading-row h3{margin:0}.card-link{white-space:nowrap;font-size:.85rem;font-weight:600}.dashboard-recent-hint{margin:.75rem 1rem .25rem;font-size:.82rem}.report-tabs{margin-top:-.25rem}.report-table{margin-top:1rem}.dashboard-reports-cta h3,.report-export h3{margin-top:0}.step-indicator{gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.step-indicator li{text-align:center;opacity:.45;flex-direction:column;flex:1;align-items:center;gap:.35rem;transition:opacity .2s;display:flex}.step-indicator li.active{opacity:1}.step-dot{border:1px solid var(--border);background:var(--bg-elevated);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:.75rem;font-weight:700;display:flex}.step-indicator li.active .step-dot{border-color:var(--accent);background:var(--accent-glow);color:var(--accent)}.step-label{color:var(--muted);font-size:.68rem;font-weight:500}.receipt-layout{flex-direction:column;gap:1rem;display:flex}.receipt-drop{justify-content:center;align-items:center;min-height:200px;padding:2rem 1.25rem;display:flex}.drop-zone-inner{text-align:center}.drop-icon-svg{color:var(--ff-apricot);opacity:.9;margin:0 auto .65rem;display:block}.drop-title{margin:0 0 .25rem;font-size:1.05rem;font-weight:600}.receipt-preview-img{border-radius:var(--radius-sm);object-fit:contain;border:1px solid var(--border);max-width:100%;max-height:220px;margin:0 auto .75rem;display:block}.receipt-split{flex-direction:column;gap:1rem;display:flex}.receipt-photo-panel{flex-direction:column;align-items:center;padding:1rem;display:flex;box-shadow:0 0 0 1px #ffcab540,0 8px 32px #ffb4a226}.receipt-photo-img{border-radius:var(--radius-sm);object-fit:contain;border:1px solid var(--border);max-width:100%;max-height:min(70vh,520px);display:block}.receipt-photo-meta{text-align:center;margin:.75rem 0 0;font-size:.82rem}.receipt-workspace{padding:1.25rem}.receipt-workspace h3{margin-top:0}.settings-panel{flex-direction:column;gap:1rem;display:flex}.settings-tabs{margin-top:-.25rem}.settings-danger-zone{border-color:#b85c5073;margin-top:.5rem}.settings-danger-zone h3{color:#b85c50;margin-top:0}.settings-danger-actions{flex-wrap:wrap;gap:.65rem;display:flex}.theme-picker{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.theme-picker-btn,.btn-primary.btn-inline{align-items:center;gap:.4rem;display:inline-flex}.receipt-input-actions{width:100%}.camera-backdrop{z-index:110;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#04080ee0;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.camera-panel{width:100%;max-width:520px;padding:1rem}.camera-video{border-radius:var(--radius-sm);object-fit:cover;background:#000;width:100%;max-height:min(60vh,480px);display:block}.camera-hint{text-align:center;margin:.75rem 0 0;font-size:.85rem}.loading-card{text-align:center;padding:2rem 1rem}.loading-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;margin:0 auto .75rem;animation:.8s linear infinite spin;display:block}@keyframes spin{to{transform:rotate(360deg)}}.auth-card-wide{max-width:480px}.onboarding-options{grid-template-columns:1fr 1fr;gap:.65rem;margin-bottom:1rem;display:grid}.onboarding-option{text-align:left;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);color:inherit;cursor:pointer;padding:.85rem;transition:border-color .15s,background .15s}.onboarding-option.active{border-color:var(--accent-dim);background:var(--accent-glow)}.onboarding-option .option-title{margin-bottom:.2rem;font-size:.92rem;font-weight:600;display:block}.onboarding-option .muted{font-size:.78rem;line-height:1.35}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#04080eb8;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}.modal-panel{border-radius:var(--radius) var(--radius) 0 0;width:100%;max-height:92vh;box-shadow:var(--shadow);margin:0;overflow-y:auto}.tx-editor-title{margin:0;font-size:1.15rem;font-weight:700}.tx-editor-meta{margin:.25rem 0 0;font-size:.82rem}.tx-editor-amount{margin:.5rem 0 0;font-size:1.35rem}.tx-editor-body{flex-direction:column;gap:1rem;margin-top:.75rem;display:flex}.form-grid{grid-template-columns:1fr 1fr;gap:.65rem;display:grid}.form-grid-full{grid-column:1/-1}.form-grid label{margin-bottom:0}.tx-editor-actions{margin-top:.75rem;margin-bottom:0}.item-main{min-width:0}.stat-cards .stat-value{letter-spacing:-.02em;font-size:1.55rem}.tx-list-mobile{flex-direction:column;gap:.65rem;display:flex}.tx-card{padding:0;overflow:hidden}.tx-card .tx-item{border-bottom:none;flex-direction:column;align-items:stretch;padding:0}.tx-card .tx-item-btn{justify-content:space-between;align-items:flex-start;gap:.5rem;width:100%;padding:.85rem 1rem .5rem;display:flex}.tx-card .tx-clarify-btn{align-self:flex-start;margin:0 1rem .75rem}.tx-meta{margin:.15rem 0 0;font-size:.8rem}.tx-table-desktop,.products-table-desktop{display:none}.data-panel{padding:0;overflow:hidden}.data-table{border-collapse:collapse;width:100%;font-size:.88rem}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--border);background:var(--bg-elevated);padding:.75rem 1rem;font-size:.72rem;font-weight:600}.data-table td{border-bottom:1px solid var(--border-soft);vertical-align:middle;padding:.7rem 1rem}.data-table tbody tr:last-child td{border-bottom:none}.data-row-clickable{cursor:pointer;transition:background .12s}.data-row-selected{background:var(--accent-glow)}.products-history-panel h3{margin-top:0}.products-history-close{margin-top:.75rem}.data-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.data-table .nowrap{white-space:nowrap;color:var(--muted);font-size:.85rem}.tx-title-inline{font-weight:600}.settings-grid{flex-direction:column;gap:1rem;display:flex}.products-list-mobile{display:flex}@media (width>=900px){.app-shell{flex-direction:row;align-items:stretch;max-width:none}.ff-theme-toggle-label{display:inline}.header-actions{align-items:center;gap:.5rem;display:flex}.sidebar-nav{border-right:1px solid var(--border-soft);background:var(--bg-elevated);flex-direction:column;flex-shrink:0;width:240px;min-height:100vh;padding:1.5rem 1rem;display:flex;position:sticky;top:0}.sidebar-brand{border-bottom:1px solid var(--border-soft);margin-bottom:2rem;padding-bottom:1.25rem}.sidebar-nav nav{flex-direction:column;gap:.25rem;display:flex}.sidebar-nav a{border-radius:var(--radius-sm);color:var(--muted);align-items:center;gap:.65rem;padding:.7rem .9rem;font-size:.92rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.sidebar-nav a.active{color:var(--accent);background:var(--accent-glow);font-weight:600}.sidebar-nav a:hover:not(.active){color:var(--text);background:#ffffff0a}.app-body{background:radial-gradient(ellipse 55% 45% at 100% 0%, #ffcab514, transparent), radial-gradient(ellipse 40% 35% at 0% 100%, #f8e0e70f, transparent), var(--bg);flex:1}.app-header{display:none}.app-topbar{border-bottom:1px solid var(--border-soft);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10;background:#241f1c99;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 2.25rem;display:flex;position:sticky;top:0}[data-theme=light] .app-topbar{background:#fff8f0d9}.topbar-family{align-items:center;gap:.65rem;min-width:0;display:flex}.topbar-period{flex:1;justify-content:center}.topbar-actions{align-items:center;gap:.5rem;display:flex}.app-main{width:100%;max-width:1120px;padding:1.75rem 2.25rem 2.5rem}.bottom-nav{display:none}.page-header{flex-direction:row;justify-content:space-between;align-items:flex-start}.page-title{font-size:1.85rem}.dashboard-page .stats-grid{grid-template-columns:repeat(4,1fr)}.dashboard-page .stat-full{grid-column:auto}.dashboard-charts{grid-template-columns:1.45fr .95fr;align-items:stretch;gap:1rem;display:grid}.dashboard-body{grid-template-columns:1.55fr 1fr;align-items:start;gap:1rem;display:grid}.dashboard-actions{flex-direction:column;gap:1rem;display:flex}.dashboard-recent .data-table th:first-child,.dashboard-recent .data-table td:first-child{padding-left:1rem}.dashboard-recent .data-table th:last-child,.dashboard-recent .data-table td:last-child{padding-right:1rem}.app-main{max-width:1200px}.dashboard-page .chart-sections,.page-reports .reports-sections{grid-template-columns:1.2fr .8fr;gap:1rem;display:grid}.tx-list-mobile,.products-list-mobile{display:none}.tx-table-desktop,.products-table-desktop{display:block}.settings-grid{grid-template-columns:repeat(2,1fr);align-items:start;gap:1rem;display:grid}.page-settings .settings-grid>.card:last-child{grid-column:1/-1;max-width:420px}.receipt-layout{grid-template-columns:1fr 1fr;align-items:start;display:grid}.receipt-split{grid-template-columns:minmax(280px,.95fr) minmax(320px,1.05fr);align-items:stretch;gap:1.25rem;display:grid}.receipt-photo-panel{justify-content:center;min-height:360px}.modal-backdrop{align-items:center;padding:1.5rem}.modal-panel{border-radius:var(--radius);max-width:640px}.tx-editor-body{grid-template-columns:1fr 1fr;gap:1.25rem;display:grid}.chart-sections{grid-template-columns:1.2fr .8fr;gap:1rem;display:grid}}body{background:var(--ff-bg);color:var(--ff-text);-webkit-font-smoothing:antialiased;font-family:Inter,Segoe UI,Roboto,sans-serif}.ff-card,.card.ff-card,.card{background:var(--ff-card-bg);border:1px solid var(--ff-card-border);border-radius:var(--ff-radius-lg);box-shadow:var(--ff-shadow);position:relative;overflow:hidden}.ff-card:before,.card:before{content:"";pointer-events:none;background:linear-gradient(105deg,#0000 40%,#ffffff14 50%,#0000 60%);position:absolute;inset:0}.ff-workspace{background:var(--ff-workspace-bg);border-radius:var(--ff-radius-md);border:1px solid var(--ff-card-border)}.ff-btn-primary,.btn-primary{background:var(--ff-gradient-cta);color:var(--ff-chocolate);border-radius:var(--ff-radius-sm);cursor:pointer;border:none;padding:10px 20px;font-weight:700;box-shadow:0 4px 14px #ffb4a259}.ff-btn-primary:hover:not(:disabled),.btn-primary:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-1px)}.ff-btn-secondary,.btn-ghost{color:var(--ff-text);border-radius:var(--ff-radius-sm);background:0 0;border:1px solid #ffcab573}.ff-btn-danger,.btn-danger{color:#b85c50;border-color:#b85c50}.chip.active{border-color:var(--ff-apricot);color:var(--ff-chocolate);background:var(--ff-gradient-nav-active)}[data-theme=dark] .chip.active{color:var(--ff-peach)}.stat-value.expense,.amount.expense{color:var(--ff-terracotta);font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.stat-value.income,.amount.income{color:var(--ff-income);font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.amount,.stat-value,.data-table .num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.pill{color:var(--ff-text);background:#ffcab559;border-color:#ffb4a266}[data-theme=light] .pill{color:var(--ff-chocolate);background:#ffe8dc}.sidebar-nav{background:var(--ff-sidebar-bg)}.sidebar-nav a.active{background:var(--ff-gradient-nav-active);color:var(--ff-peach)}[data-theme=light] .sidebar-nav a.active{color:var(--ff-chocolate)}.brand-mark{background:var(--ff-gradient-cta);color:var(--ff-chocolate);box-shadow:0 4px 16px #ffcab559}.data-table th{background:var(--ff-table-header-bg)}.data-row-clickable:hover{background:var(--ff-row-stripe)}input,textarea,select{background:var(--ff-input-bg);color:var(--ff-text);border-color:#ffcab559}input:focus,textarea:focus,select:focus{border-color:var(--ff-apricot);box-shadow:none;outline:2px solid #ffcab566}.ff-theme-toggle{border-radius:var(--ff-radius-pill);border:1px solid var(--ff-card-border);background:var(--ff-input-bg);color:var(--ff-text);cursor:pointer;align-items:center;gap:.35rem;padding:.35rem .65rem;font-size:.8rem;display:inline-flex}.ff-theme-toggle:hover{background:var(--ff-row-stripe)}@keyframes ff-cta-shimmer{0%,to{filter:brightness()}50%{filter:brightness(1.08)}}.ff-cta-shimmer{animation:8s ease-in-out infinite ff-cta-shimmer}@media (prefers-reduced-motion:reduce){.ff-cta-shimmer{animation:none}}
