:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f7fb;--bg-elevated:#eef3fa;--panel:#fff;--panel-soft:#f8fafc;--panel-strong:#eff4fb;--border:#dbe4f0;--border-strong:#cbd8e8;--text:#172538;--muted:#67788f;--primary:#3164f4;--primary-strong:#244ecd;--primary-soft:#eef3ff;--success-bg:#effcf3;--success-text:#166534;--danger-bg:#fff1f2;--danger-text:#be123c;--danger-border:#fecdd3;--shadow:0 20px 60px #11233d14;--shadow-soft:0 10px 30px #11233d0f;--control-height:40px;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b1220;--bg-elevated:#121b2d;--panel:#121b2d;--panel-soft:#162237;--panel-strong:#1a2942;--border:#24344d;--border-strong:#324661;--text:#edf4ff;--muted:#9db0cb;--primary:#82a7ff;--primary-strong:#6b97ff;--primary-soft:#1f3154;--success-bg:#143021;--success-text:#9ae6b4;--danger-bg:#351621;--danger-text:#feb2c4;--danger-border:#703248;--shadow:0 24px 70px #00000059;--shadow-soft:0 14px 34px #00000040}*,:before,:after{box-sizing:border-box}html,body,#app{min-height:100vh}body{background:radial-gradient(circle at top left, color-mix(in srgb, var(--primary-soft) 70%, transparent) 0, transparent 26%), linear-gradient(180deg, color-mix(in srgb, var(--panel-soft) 68%, transparent), transparent 24%), var(--bg);min-width:320px;color:var(--text);margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.app-root{width:100%;min-height:100vh;padding:20px}.auth-layout,.shell-layout{width:100%;min-height:calc(100vh - 40px)}.auth-layout{grid-template-columns:minmax(360px,1.15fr) minmax(360px,.85fr);align-items:stretch;gap:28px;display:grid}.auth-intro,.auth-panel-wrap{min-height:100%}.auth-intro{flex-direction:column;justify-content:center;padding:40px;display:flex}.auth-panel-wrap{align-items:stretch;display:flex}.auth-card,.panel,.toolbar-card,.modal-panel{background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:24px}.auth-card,.panel{padding:28px}.toast{z-index:10000;min-width:240px;max-width:380px;box-shadow:var(--shadow);border:1px solid #0000;border-radius:14px;align-items:flex-start;gap:10px;padding:13px 14px 13px 18px;font-size:.9rem;line-height:1.4;display:flex;position:fixed;top:20px;right:20px}.toast.success{background:var(--success-bg);color:var(--success-text);border-color:#bbf7d0}[data-theme=dark] .toast.success{border-color:#166534}.toast.error{background:var(--danger-bg);color:var(--danger-text);border-color:var(--danger-border)}.toast-text{flex:1}.toast-dismiss{cursor:pointer;color:inherit;opacity:.55;background:0 0;border:none;flex-shrink:0;margin-top:-1px;padding:0 2px;font-size:1.15rem;line-height:1}.toast-dismiss:hover{opacity:1}.toast-enter-active,.toast-leave-active{transition:opacity .2s,transform .25s}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(30px)}.eyebrow{color:var(--primary);letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;font-size:.82rem;font-weight:700}.hero-copy,.muted,.section-subtitle{color:var(--muted)}.grid{gap:18px;display:grid}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.wide{grid-column:1/-1}label{color:var(--text);gap:8px;font-size:.95rem;font-weight:600;display:grid}input,select,textarea{border:1px solid var(--border);background:var(--panel-soft);width:100%;color:var(--text);border-radius:16px;padding:13px 14px;transition:border-color .15s,box-shadow .15s,background-color .15s}input,select{height:var(--control-height);padding-top:0;padding-bottom:0}.toolbar-select{width:auto;font-weight:600}.year-select{appearance:none;background:linear-gradient(45deg, transparent 50%, currentColor 50%) calc(100% - 18px) 50% / 5px 5px no-repeat, linear-gradient(135deg, currentColor 50%, transparent 50%) calc(100% - 13px) 50% / 5px 5px no-repeat, color-mix(in srgb, var(--panel) 38%, var(--panel-strong));border-color:color-mix(in srgb, var(--border-strong) 72%, var(--border));min-width:94px;color:var(--text);border-radius:12px;padding-right:34px;box-shadow:inset 0 1px #ffffff61}input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb, var(--primary) 22%, transparent);border-color:var(--primary)}input[readonly],input:disabled{opacity:.6;cursor:default}input[readonly]:focus,input:disabled:focus{border-color:var(--border);outline:none}.field-hint{color:var(--muted);margin-top:-4px;font-size:.8rem;font-weight:400}.lot-total-summary{color:var(--text);gap:8px;font-size:.95rem;font-weight:600;display:grid}.lot-total-summary span{border:1px solid var(--border);background:var(--panel-soft);border-radius:16px;padding:13px 14px;font-weight:400}.data-table th.action-col,.data-table td.action-col{text-align:right;white-space:nowrap;width:1%}.data-table td.action-col>div{justify-content:flex-end;align-items:center;gap:.5rem;display:flex}textarea{resize:vertical}.primary,.ghost,.danger{min-height:var(--control-height);border:0;border-radius:14px;justify-content:center;align-items:center;padding:0 16px;font-weight:700;transition:transform .15s,filter .15s,background-color .15s,border-color .15s;display:inline-flex}.primary:hover,.ghost:hover,.danger:hover{filter:brightness(.99);transform:translateY(-1px)}.primary{background:var(--primary);color:#fff}.primary:hover{background:var(--primary-strong)}.ghost{background:color-mix(in srgb, var(--panel) 38%, var(--panel-strong));color:var(--text);border:1px solid color-mix(in srgb, var(--border-strong) 72%, var(--border));box-shadow:inset 0 1px #ffffff61}.danger{background:var(--danger-bg);color:var(--danger-text)}.segmented{height:var(--control-height);background:color-mix(in srgb, var(--panel-soft) 60%, var(--panel-strong));border:1px solid color-mix(in srgb, var(--border-strong) 72%, var(--border));border-radius:16px;align-items:stretch;gap:6px;margin-bottom:18px;padding:4px;display:inline-flex}.segmented.compact{margin-bottom:0}.segmented button{min-width:0;color:var(--muted);background:0 0;border:0;border-radius:12px;flex:auto;justify-content:center;align-items:center;padding:0 14px;font-weight:700;display:inline-flex}.segmented button.active{background:var(--panel);color:var(--text);box-shadow:var(--shadow-soft)}.auth-form{gap:22px;display:grid}.auth-grid{grid-template-columns:1fr;gap:18px;display:grid}.auth-submit{min-width:180px}.shell-layout{grid-template-columns:minmax(0,1fr);align-content:start;align-items:start;gap:8px;display:grid}.sidebar{background:color-mix(in srgb, var(--panel) 92%, transparent);border:1px solid var(--border);min-height:auto;box-shadow:var(--shadow-soft);border-radius:20px;align-self:start;gap:10px;padding:14px 12px;display:grid;position:sticky;top:20px}.sidebar-brand{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding-bottom:8px;display:flex}.sidebar-brand strong{letter-spacing:-.02em;font-size:.95rem;font-weight:800;display:block}.sidebar-brand p{margin:2px 0 0;font-size:.82rem}.sidebar-nav{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.nav-link{color:color-mix(in srgb, var(--text) 74%, var(--muted));border-radius:10px;padding:10px 12px;font-size:.95rem;font-weight:700;transition:background-color .15s,color .15s,transform .15s}.nav-link.is-active,.nav-link:hover{background:color-mix(in srgb, var(--primary-soft) 82%, var(--panel));color:var(--text);transform:translateY(-1px)}.content-layout,.stack{gap:14px;display:grid}.stack.compact{gap:6px}.align-end{align-items:flex-end}.topbar{background:color-mix(in srgb, var(--panel) 92%, transparent);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:20px;justify-content:space-between;align-items:center;gap:14px;padding:12px 20px;display:flex}.topbar-left{flex:auto;align-items:center;gap:18px;min-width:0;display:flex}.topbar-brand{flex-shrink:0;align-items:center;gap:12px;display:flex}.topbar-brand-mark{flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex}.topbar-brand-mark svg{width:42px;height:42px;display:block}.topbar-brand-mark-bg{fill:color-mix(in srgb, var(--primary-soft) 86%, var(--panel));stroke:color-mix(in srgb, var(--primary) 22%, var(--border));stroke-width:1.5px}.topbar-brand-mark-trend{fill:color-mix(in srgb, var(--primary-strong) 90%, var(--text))}.topbar-brand-mark-bar{fill:var(--primary)}.topbar-brand-mark-bar.is-short{opacity:.72}.topbar-brand-mark-bar.is-mid{opacity:.84}.topbar-brand-mark-bar.is-tall{opacity:.96}.topbar-brand-copy{gap:2px;min-width:0;display:grid}.topbar-brand-name{color:var(--text);letter-spacing:.01em;white-space:nowrap;font-size:1rem;font-weight:800;line-height:1.05;display:block}.topbar-nav{min-width:0}.topbar-household-name{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:220px;font-size:.8rem;font-weight:700;line-height:1.2;overflow:hidden}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:stretch;gap:10px;display:flex}.topbar-actions>.ghost{align-items:center;padding-top:0;padding-bottom:0;display:flex}.weather-clock{height:var(--control-height);background:color-mix(in srgb, var(--panel) 38%, var(--panel-strong));border:1px solid color-mix(in srgb, var(--border-strong) 72%, var(--border));white-space:nowrap;border-radius:16px;align-self:center;align-items:center;gap:7px;padding:0 12px;font-size:.85rem;display:flex;box-shadow:inset 0 1px #ffffff61}.weather-icon{font-size:1rem;line-height:1}.weather-temp{color:var(--text);font-weight:600}.weather-sep{color:var(--border-strong)}.clock-time{color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:.02em;font-weight:700}.weather-loc{color:var(--muted);font-size:.8rem}.toolbar-card,.page-header{justify-content:space-between;align-items:center;gap:18px;padding:14px 18px;display:flex}.page-header h2{margin:0 0 6px;font-size:1.4rem}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.dashboard-grid.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.panel-head,.section-head{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px;display:flex}.panel-head h2,.section-head h2{margin:0}.panel-actions,.list-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.search-input{border-radius:12px;width:220px;padding:8px 12px}.records-toolbar{justify-content:flex-end;margin-top:-6px;display:flex}.records-toolbar .search-input{width:min(320px,100%)}.search-list-move,.search-list-enter-active,.search-list-leave-active{transition:opacity .2s,transform .2s}.search-list-enter-from,.search-list-leave-to{opacity:0;transform:translateY(-6px)}.search-list-leave-active{width:100%;position:absolute}.search-list-container{position:relative}.stats-panel{min-height:220px}.timeframe-toolbar{align-items:flex-start}.timeframe-controls{justify-items:end;gap:12px;display:grid}.timeframe-custom{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.timeframe-custom label{min-width:150px}.stats-list,.collection,.bar-list{gap:12px;display:grid}.stats-row,.metric-row,.row,.bar-list-meta{justify-content:space-between;align-items:center;gap:12px;display:flex}.collection-item,.summary-card,.chart-card{border:1px solid var(--border);background:var(--panel-soft);border-radius:18px;padding:18px}.collection-item header,.summary-card header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.summary-grid-four{grid-template-columns:repeat(4,minmax(0,1fr))}.summary-card strong{margin-top:8px;font-size:1.3rem;display:block}.kpi-card{color:var(--text);border-width:2px}.kpi-card strong,.kpi-card h3{color:var(--text)}.kpi-income{background:color-mix(in srgb, var(--success-text) 26%, var(--panel-soft));border-color:color-mix(in srgb, var(--success-text) 52%, var(--border))}.kpi-investing{background:color-mix(in srgb, #6366f1 26%, var(--panel-soft));border-color:color-mix(in srgb, #6366f1 52%, var(--border))}.kpi-necessary{background:color-mix(in srgb, var(--primary) 24%, var(--panel-soft));border-color:color-mix(in srgb, var(--primary) 48%, var(--border))}.kpi-expenses{background:color-mix(in srgb, var(--danger-text) 26%, var(--panel-soft));border-color:color-mix(in srgb, var(--danger-text) 52%, var(--border))}.kpi-positive{background:color-mix(in srgb, var(--success-text) 26%, var(--panel-soft));border-color:color-mix(in srgb, var(--success-text) 52%, var(--border))}.kpi-negative{background:color-mix(in srgb, var(--danger-text) 26%, var(--panel-soft));border-color:color-mix(in srgb, var(--danger-text) 52%, var(--border))}.compact-card{padding:16px}.compact-card header h3{font-size:.92rem}.compact-gap{gap:14px}.latest-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.charts-row{grid-template-columns:1fr 1fr;align-items:start;gap:18px;display:grid}.chart-placeholder{min-height:340px;color:var(--color-muted,#94a3b8);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px;font-size:.9rem;display:flex}.chart-placeholder p{max-width:200px;margin:0;line-height:1.5}.history-grid{align-items:start}.compact-list{gap:10px;display:grid}.compact-list-item{border:1px solid var(--border);background:var(--panel-soft);border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.compact-list-main,.compact-list-meta{gap:4px;display:grid}.compact-list-meta{text-align:right;justify-items:end}.compact-list-item.is-inline{gap:18px}.compact-list-item.is-inline .compact-list-main,.compact-list-item.is-inline .compact-list-meta{align-items:center;gap:14px;display:flex}.compact-list-item.is-inline .compact-list-main{flex-wrap:wrap;flex:auto;min-width:0}.compact-list-item.is-inline .compact-list-main strong{margin-right:2px}.compact-list-item.is-inline .compact-list-main .muted,.compact-list-item.is-inline .compact-list-main span:not(.muted){white-space:nowrap}.compact-list-item.is-inline .compact-list-meta{flex-wrap:wrap;flex:none;justify-content:flex-end}.compact-list-item.is-inline .compact-list-meta strong,.compact-list-item.is-inline .compact-list-meta span{white-space:nowrap}.compact-inline-separator{color:var(--border-strong)}.compact-button{min-height:var(--control-height);height:var(--control-height);border-radius:12px;padding:0 12px}.pill.subtle{background:var(--panel);color:var(--muted)}.confirm-delete-box{border:1px solid var(--border);background:var(--panel-soft);border-radius:16px;gap:4px;padding:14px 16px;display:grid}.toolbar-inline{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.integrated-toolbar{align-items:center}.overview-wide-chart .chart-card{margin:0}.summary-spotlight{text-align:center;padding:28px}.summary-spotlight strong{font-size:2rem}.positive-text{color:var(--success-text)}.negative-text{color:var(--danger-text)}.investing-text{color:#6366f1}.section-head-right{align-items:center;gap:10px;display:flex}.section-toggle{cursor:pointer;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:8px;flex-shrink:0;padding:4px 8px;font-size:1rem;font-weight:700;line-height:1;transition:transform .2s,color .15s,border-color .15s;transform:rotate(0)}.section-toggle:hover{color:var(--text);border-color:var(--border)}.section-toggle.is-open{transform:rotate(90deg)}.compact-summary-block{gap:8px;display:grid}.expense-workspace{background:var(--panel);gap:0;padding:0;display:grid;overflow:hidden}.expense-workspace-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:18px;display:flex}.expense-workspace-head h2,.expense-workspace-head p{margin:0}.expense-workspace-head .primary{flex-shrink:0}.expense-workspace-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;padding:14px;display:grid}.expense-workspace-grid.three-columns{grid-template-columns:repeat(3,minmax(0,1fr))}.expense-workspace-block{--workspace-accent:var(--primary);text-align:left;border:1px solid var(--border);background:var(--panel-soft);min-height:150px;color:var(--text);cursor:pointer;border-radius:18px;flex-direction:column;justify-content:space-between;align-items:stretch;gap:18px;padding:16px;transition:background .15s,border-color .15s,transform .15s,box-shadow .15s;display:flex;position:relative}.expense-workspace-block:before{content:"";background:var(--workspace-accent);border-radius:18px 18px 0 0;height:4px;position:absolute;inset:0 0 auto}.expense-workspace-block:first-child{--workspace-accent:#38bdf8}.expense-workspace-block:nth-child(2){--workspace-accent:#22c55e}.expense-workspace-block:nth-child(3){--workspace-accent:#f97316}.expense-workspace-block:nth-child(4){--workspace-accent:#6366f1}.expense-workspace-block:nth-child(5){--workspace-accent:#e11d48}.expense-workspace-block:hover,.expense-workspace-block:focus-visible{border-color:color-mix(in srgb, var(--workspace-accent) 42%, var(--border));background:color-mix(in srgb, var(--workspace-accent) 8%, var(--panel-soft));box-shadow:0 14px 30px color-mix(in srgb, var(--shadow) 42%, transparent);transform:translateY(-2px)}.expense-workspace-block:focus-visible{outline:3px solid color-mix(in srgb, var(--workspace-accent) 26%, transparent);outline-offset:2px}.expense-workspace-title h3,.expense-workspace-meta{margin:0}.expense-workspace-title{align-items:center;gap:10px;min-width:0;display:flex}.expense-workspace-title:before{content:"";border:1px solid color-mix(in srgb, var(--workspace-accent) 28%, var(--border));background:color-mix(in srgb, var(--workspace-accent) 16%, var(--panel-soft));border-radius:12px;flex:none;width:34px;height:34px}.expense-workspace-title h3{font-size:.98rem}.expense-workspace-meta{border:1px solid var(--border);background:var(--panel);width:100%;min-width:0;max-width:100%;color:var(--text);text-align:left;border-radius:14px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-weight:700;display:flex}.expense-workspace-meta strong{color:var(--text);white-space:nowrap;font-size:1.08rem;font-weight:800}.record-choice-grid{flex-direction:column;align-items:center;gap:10px;display:flex}.record-choice{text-align:center;border:1px solid var(--border);background:var(--panel-soft);width:min(280px,100%);color:var(--text);cursor:pointer;border-radius:16px;justify-content:center;align-items:center;padding:12px 24px;display:flex}.record-choice:hover{border-color:color-mix(in srgb, var(--primary) 40%, var(--border));background:color-mix(in srgb, var(--primary) 8%, var(--panel-soft))}.flow-panel{gap:18px;display:grid}.flow-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.flow-card{border:1px solid var(--border);background:var(--panel-soft);border-radius:16px;gap:8px;padding:16px;display:grid}.flow-card.is-positive{background:var(--success-bg)}.flow-card.is-negative{background:color-mix(in srgb, var(--danger-bg) 84%, var(--panel-soft))}.flow-label{color:var(--muted);font-size:.88rem;font-weight:700}.progress-comparison{border:1px solid var(--border);background:var(--panel-soft);border-radius:18px;gap:10px;padding:16px;display:grid}.progress-meta{justify-content:space-between;align-items:center;gap:12px;display:flex}.progress-track{background:var(--panel-strong);border-radius:999px;height:12px;overflow:hidden}.progress-fill{border-radius:inherit;background:linear-gradient(90deg, var(--primary), color-mix(in srgb, var(--primary) 64%, #fff));height:100%}.detail-form-block{border:1px solid var(--border);background:var(--panel-soft);border-radius:18px;padding:18px}.detail-group-card{border:1px solid var(--border);background:var(--panel-soft);border-radius:18px;gap:12px;padding:16px;display:grid}.detail-group-card .section-head{margin-bottom:0}.holding-meta-row{color:var(--muted);flex-wrap:wrap;gap:2px 20px;margin-top:5px;font-size:.84rem;display:flex}.holding-meta-row strong{color:var(--text);margin-right:3px;font-weight:600}.timeframe-sep{color:var(--muted);flex-shrink:0;font-size:.85rem}.month-picker{position:relative}.month-picker-trigger{height:var(--control-height);background:var(--panel-soft);border:1px solid var(--border);color:var(--text);white-space:nowrap;border-radius:12px;align-items:center;gap:6px;padding:0 12px;font-size:.875rem;font-weight:600;transition:border-color .15s,background-color .15s;display:inline-flex}.month-picker-trigger:hover,.month-picker-trigger.is-open{border-color:var(--primary)}.month-picker-label{color:var(--muted);font-size:.8rem;font-weight:600}.month-picker-dropdown{z-index:200;background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px;min-width:210px;padding:12px;position:absolute;top:calc(100% + 6px);left:0}.month-picker.align-right .month-picker-dropdown{left:auto;right:0}.month-picker-year-nav{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.month-picker-year{font-size:.95rem;font-weight:700}.month-picker-nav-btn{border:1px solid var(--border);color:var(--text);background:0 0;border-radius:8px;padding:4px 10px;font-size:1rem;font-weight:700;line-height:1;transition:background-color .12s}.month-picker-nav-btn:hover{background:var(--panel-soft)}.month-picker-grid{grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.month-picker-month{color:var(--muted);background:0 0;border:0;border-radius:10px;padding:8px 4px;font-size:.85rem;font-weight:600;transition:background-color .1s,color .1s}.month-picker-month:hover{background:var(--panel-soft);color:var(--text)}.month-picker-month.active{background:var(--primary);color:#fff}.pill{background:var(--primary-soft);color:var(--primary-strong);border-radius:999px;align-items:center;padding:4px 10px;font-size:.8rem;font-weight:700;display:inline-flex}.pill.danger{border:1px solid color-mix(in srgb, var(--danger-text) 48%, var(--danger-border));background:color-mix(in srgb, var(--danger-text) 34%, var(--danger-bg));color:var(--danger-text)}.pill.success{border:1px solid color-mix(in srgb, var(--success-text) 36%, transparent);background:var(--success-bg);color:var(--success-text)}.budget-alert-list{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.budget-status-bar{flex-wrap:wrap;flex:1;align-content:center;align-self:center;align-items:center;gap:8px;min-height:38px;padding:0 12px;display:flex}.budget-status-bar .pill{min-height:30px;color:var(--text);font-size:1rem;line-height:1}.chart-alert-list{align-items:center;margin:0}.empty-state{border:1px dashed var(--border-strong);color:var(--muted);background:var(--panel-soft);border-radius:18px;padding:24px}.form-grid{row-gap:18px}.fixed-cost-valid-from{border-top:1px solid var(--border);padding-top:14px}.form-section-title{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px;font-size:.82rem;font-weight:700;display:block}.valid-from-inputs{gap:10px}.valid-from-hint{margin:8px 0 0;font-size:.82rem}.form-actions{justify-content:flex-end;align-items:center;gap:12px;margin-top:24px;display:flex}.form-actions.inline{justify-content:flex-start;margin-top:14px}.file-picker{border:1px dashed var(--border-strong);background:var(--panel-soft);cursor:pointer;border-radius:18px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;padding:14px 16px;transition:border-color .15s,background-color .15s;display:grid}.file-picker:hover{border-color:var(--primary);background:color-mix(in srgb, var(--primary-soft) 72%, var(--panel-soft))}.file-picker input{display:none}.file-picker-button{background:var(--panel);border:1px solid var(--border);border-radius:12px;justify-content:center;align-items:center;padding:10px 14px;font-weight:700;display:inline-flex}.file-picker-name{min-width:0;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.chart-card{gap:18px;display:grid}.chart-card .apexcharts-canvas{margin:0 auto}.chart-card .apexcharts-xaxis-label,.chart-card .apexcharts-yaxis-label,.chart-card .apexcharts-legend-text{fill:var(--muted)!important;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif!important;font-weight:600!important}.chart-card .apexcharts-xaxis-label,.chart-card .apexcharts-yaxis-label{font-size:13px!important}.chart-card .apexcharts-legend-text{font-size:14px!important}.column-chart{grid-template-columns:repeat(auto-fit,minmax(76px,1fr));align-items:end;gap:14px;min-height:240px;display:grid}.column-chart-item{gap:10px;display:grid}.column-bars{justify-content:center;align-items:end;gap:8px;min-height:180px;display:flex}.column-bar{background:var(--panel-strong);border-radius:12px 12px 6px 6px;width:24px}.column-bar.primary{background:var(--primary)}.column-bar.secondary{background:color-mix(in srgb, var(--primary) 28%, var(--panel-strong))}.column-label{color:var(--muted);text-align:center;font-size:.84rem}.chart-legend{color:var(--muted);flex-wrap:wrap;gap:16px;font-size:.9rem;display:flex}.comparison-legend{flex-wrap:nowrap;gap:18px;padding-bottom:4px;font-size:1rem;font-weight:700;overflow-x:auto}.comparison-legend span{white-space:nowrap;flex:none}.comparison-head-legend{flex:auto;justify-content:center;align-self:center;min-width:220px;transform:translateY(-4px)}.chart-legend span{align-items:center;gap:8px;display:inline-flex}.legend-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.legend-dot.primary{background:var(--primary)}.legend-dot.secondary{background:color-mix(in srgb, var(--primary) 28%, var(--panel-strong))}.bar-list-row{gap:8px;display:grid}.bar-track{background:var(--panel-strong);border-radius:999px;width:100%;height:10px;overflow:hidden}.bar-fill{border-radius:inherit;background:linear-gradient(90deg, var(--primary), color-mix(in srgb, var(--primary) 64%, #fff));height:100%}.modal-backdrop{z-index:1000;background:#0a12208a;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal-backdrop-priority{z-index:1010}.modal-panel{width:min(760px,100%);max-height:calc(100vh - 48px);padding:24px;overflow:auto}.modal-small{width:min(460px,100%)}.modal-fit{width:fit-content;min-width:min(320px,100%);max-width:min(480px,100%)}.modal-large{width:min(1100px,100%)}.modal-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.modal-title-group{align-items:center;gap:10px;min-width:0;display:flex}.modal-head h2{min-width:0;margin:0}.modal-head-actions{flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;display:flex}.modal-back-button{border:1px solid var(--border);background:var(--panel-soft);width:34px;height:34px;color:var(--text);cursor:pointer;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;gap:4px;padding:0;font-size:1.25rem;font-weight:800;line-height:1;display:inline-flex}.modal-back-button:hover{border-color:color-mix(in srgb, var(--primary) 38%, var(--border));background:color-mix(in srgb, var(--primary) 8%, var(--panel-soft))}.modal-content{gap:14px;display:grid}@media (width<=1240px){.shell-layout,.dashboard-grid,.dashboard-grid.two-columns,.summary-grid,.summary-grid-four,.latest-summary-grid,.flow-grid,.charts-row{grid-template-columns:1fr}}@media (width<=1024px){.app-root{padding:16px}.auth-layout,.shell-layout{grid-template-columns:1fr}.sidebar{min-height:auto;position:static}.topbar,.toolbar-card,.page-header{flex-direction:column;align-items:stretch}.topbar-actions,.panel-actions{justify-content:flex-start}.topbar-left{flex-direction:column;align-self:stretch;align-items:flex-start}.topbar-nav{width:100%}.topbar-brand,.weather-clock{align-self:flex-start}.topbar-household-name{max-width:180px}.compact-list-item{flex-direction:column;align-items:stretch}.compact-list-item.is-inline .compact-list-main,.compact-list-item.is-inline .compact-list-meta{gap:6px;display:grid}.compact-list-meta{text-align:left;justify-items:start}.expense-workspace-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.expense-workspace-meta{flex-wrap:wrap}}@media (width<=720px){.auth-card,.panel,.toolbar-card,.modal-panel{border-radius:20px;padding:20px}.grid.two,.auth-layout,.file-picker{grid-template-columns:1fr}.segmented{width:100%}.segmented button{flex:50%}.topbar-brand-name,.topbar-household-name{white-space:normal}.expense-workspace.panel{padding:0}.expense-workspace-head{flex-direction:column;align-items:stretch}.expense-workspace-grid{grid-template-columns:1fr}}.table-scroll{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:.92rem}.data-table th,.data-table td{text-align:left;vertical-align:middle;border-bottom:1px solid var(--border);white-space:nowrap;padding:.55rem .75rem}.data-table thead th{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.78rem;font-weight:600}.data-table thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.data-table thead th.sortable:hover{color:var(--text)}.sort-icon{opacity:.4;margin-left:4px;font-style:normal;display:inline-block}.sort-icon.active{opacity:1;color:var(--primary)}.data-table th.num,.data-table td.num{text-align:right;font-variant-numeric:tabular-nums}.data-table tfoot td{border-top:2px solid var(--border);background:var(--panel-soft);font-weight:700}.data-table th.center,.data-table td.center{text-align:center}.data-table.fixed-cols{table-layout:fixed}.data-table tbody tr:hover{background:var(--panel-soft)}.data-table tbody tr:last-child td{border-bottom:none}.settings-page{grid-template-columns:minmax(180px,240px) minmax(0,1fr);align-items:start;gap:18px;display:grid}.settings-nav,.settings-panel{box-shadow:var(--shadow-soft);border-radius:16px}.settings-nav{gap:8px;padding:12px;display:grid;position:sticky;top:20px}.settings-nav-item{width:100%;color:var(--text);text-align:left;background:0 0;border:1px solid #0000;border-radius:12px;gap:4px;padding:12px;display:grid}.settings-nav-item span{color:var(--muted);font-size:.84rem}.settings-nav-item.active,.settings-nav-item:hover{border-color:var(--border);background:var(--panel-soft)}.settings-panel{padding:0;overflow:visible}.settings-panel-head{border-bottom:1px solid var(--border);background:var(--panel-soft);padding:18px 20px}.settings-panel-head-action{justify-content:space-between;align-items:center;gap:18px;display:flex}.settings-panel-head h2{margin:0 0 4px;font-size:1.15rem}.settings-panel-head p,.settings-row p{margin:0}.settings-list{display:grid;overflow:visible}.settings-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:16px 20px;display:grid;overflow:visible}.settings-row-form{grid-template-columns:minmax(180px,.8fr) minmax(340px,1.4fr);align-items:start}.settings-row:last-child{border-bottom:0}.settings-row h3{margin:0 0 4px;font-size:.98rem}.settings-row p{color:var(--muted);font-size:.9rem}.settings-control{justify-content:flex-end;align-items:center;gap:12px;min-width:300px;display:flex}.weather-location-picker{z-index:30;gap:8px;width:min(420px,100%);display:grid;position:relative}.weather-location-current{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;font-size:.84rem;display:flex}.weather-location-current strong{color:var(--text);text-align:right}.weather-location-picker input{border-radius:12px;padding:10px 12px}.weather-location-status{color:var(--muted);font-size:.86rem}.weather-location-results{z-index:100;background:var(--panel);border:1px solid var(--border);max-height:220px;box-shadow:var(--shadow);border-radius:14px;gap:6px;padding:8px;display:grid;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:auto}.weather-location-results button{border:1px solid var(--border);background:var(--panel-soft);width:100%;color:var(--text);text-align:left;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:9px 10px;display:flex}.weather-location-results button:hover{border-color:var(--primary);background:var(--primary-soft)}.weather-location-results span{color:var(--muted);text-align:right;font-size:.82rem}.settings-value{color:var(--text);white-space:nowrap;font-weight:800}.settings-facts{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.settings-facts span{border:1px solid var(--border);background:var(--panel-soft);color:var(--muted);border-radius:999px;padding:6px 10px;font-size:.88rem;font-weight:700}.settings-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:min(100%,560px);display:grid}.settings-profile-grid{grid-template-columns:repeat(3,minmax(0,1fr));min-width:min(100%,820px)}.settings-household-grid{grid-template-columns:1fr;align-items:start;min-width:min(100%,760px)}.settings-form-grid label,.settings-form-grid .settings-facts,.settings-form-grid .mfa-setup-box{grid-column:1/-1}.settings-profile-grid label{grid-column:auto}.settings-household-grid .settings-household-name,.settings-household-grid .settings-member-add,.settings-household-grid .settings-member-list{grid-column:1/-1}.settings-form-grid label{font-size:.86rem}.settings-form-grid input{border-radius:12px;padding:10px 12px}.settings-form-action{justify-self:end}.settings-row-action{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.settings-member-add{grid-template-columns:minmax(260px,420px) auto;justify-content:start;align-items:end;gap:12px;display:grid}.settings-member-add label{grid-column:auto}.settings-member-add button{white-space:nowrap;min-height:42px}.settings-member-list{gap:8px;display:grid}.settings-member-row{border:1px solid var(--border);background:var(--panel-soft);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.settings-member-row div{gap:2px;display:grid}.settings-member-row span{color:var(--muted);font-size:.86rem}.settings-member-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.password-checks{flex-wrap:wrap;gap:8px;display:flex}.password-checks span{border:1px solid var(--border);background:var(--panel-soft);color:var(--muted);border-radius:999px;padding:6px 10px;font-size:.82rem;font-weight:800}.password-checks span.ok{border-color:color-mix(in srgb, var(--success-text) 36%, var(--border));background:var(--success-bg);color:var(--success-text)}.inline-error{color:var(--danger-text);margin:0;font-weight:700}.mfa-status{justify-content:flex-start}.mfa-qr{border:1px solid var(--border);background:#fff;border-radius:18px;place-items:center;padding:18px;display:grid}.mfa-qr svg{width:min(240px,100%);height:auto;display:block}.mfa-setup-box{border:1px solid var(--border);background:var(--panel-soft);border-radius:14px;gap:8px;padding:12px;display:grid}.mfa-setup-box code{word-break:break-all;font-weight:800}.mfa-setup-box a{color:var(--primary-strong);font-weight:800}.danger-row{background:color-mix(in srgb, var(--danger-bg) 26%, transparent)}@media (width<=900px){.settings-page,.settings-row,.settings-row-form,.settings-form-grid,.settings-household-grid{grid-template-columns:1fr}.settings-panel-head-action{flex-direction:column;align-items:stretch}.settings-household-grid label{grid-column:1/-1}.settings-member-add{grid-template-columns:1fr}.settings-nav{position:static}.settings-control{flex-wrap:wrap;justify-content:flex-start;min-width:0}.settings-facts{justify-content:flex-start}}.hh-costs-layout{grid-template-columns:minmax(320px,1fr) minmax(360px,1.4fr);align-items:start;gap:18px;display:grid}.hh-costs-panel{padding:0;overflow:hidden}.hh-costs-panel .section-head{margin-bottom:14px;padding:16px 18px 0}.hh-fixed-list,.hh-expense-list{display:grid}.hh-fixed-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 18px;display:flex}.hh-fixed-row:last-child{border-bottom:0}.hh-fixed-row-info{align-items:center;gap:10px;min-width:0;display:flex}.hh-fixed-row-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.hh-fixed-total{background:var(--panel-soft);font-weight:700}.hh-category-pill{font-size:.78rem}.hh-chart-hint{text-align:center;padding:6px 0 2px;font-size:.8rem}.hh-segment-summary{justify-content:space-between;align-items:center;padding:12px 0;display:flex}.hh-segment-amount{font-size:1.5rem}.hh-expense-toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 18px;display:flex}.hh-expense-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 18px;display:flex}.hh-expense-row:last-child{border-bottom:0}.hh-expense-row-info{gap:2px;min-width:0;display:grid}.hh-expense-row-info span{color:var(--muted);font-size:.84rem}.hh-expense-row-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.hh-expense-total{background:var(--panel-soft);justify-content:space-between;padding:10px 18px;font-weight:700;display:flex}.hh-kind-consumable{background:color-mix(in srgb, #2563eb 12%, var(--panel-soft));color:#2563eb;border-color:color-mix(in srgb, #2563eb 28%, var(--border))}.hh-kind-unexpected{background:var(--danger-bg);color:var(--danger-text);border-color:color-mix(in srgb, var(--danger-text) 28%, var(--border))}@media (width<=900px){.hh-costs-layout{grid-template-columns:1fr}}.landing[data-v-81a4605e]{gap:72px;max-width:1120px;margin:0 auto;padding:56px 0 72px;display:grid}.landing-hero[data-v-81a4605e]{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:48px;display:grid}.landing-hero-copy h1[data-v-81a4605e]{letter-spacing:-.02em;margin:0 0 18px;font-size:clamp(2rem,4vw,3rem);line-height:1.1}.landing-hero-copy .hero-copy[data-v-81a4605e]{max-width:30rem;margin:0;font-size:1.125rem}.landing-hero-actions[data-v-81a4605e]{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.landing-cta-button[data-v-81a4605e]{padding:14px 24px;font-size:1rem}.landing-hero-note[data-v-81a4605e]{color:var(--muted);align-items:center;gap:8px;margin:20px 0 0;font-size:.9rem;font-weight:600;display:flex}.landing-hero-note svg[data-v-81a4605e]{color:var(--primary);flex-shrink:0}.landing-preview[data-v-81a4605e]{background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:24px;gap:18px;padding:24px;display:grid}.landing-preview-head[data-v-81a4605e]{justify-content:space-between;align-items:center;gap:12px;display:flex}.landing-preview-month[data-v-81a4605e]{color:var(--muted);font-size:.85rem;font-weight:700}.landing-preview-balance[data-v-81a4605e]{gap:4px;display:grid}.landing-preview-balance strong[data-v-81a4605e]{letter-spacing:-.02em;font-size:2.25rem}.landing-preview-stats[data-v-81a4605e]{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.landing-preview-stat[data-v-81a4605e]{background:var(--panel-soft);border:1px solid var(--border);border-radius:16px;gap:4px;padding:14px 16px;display:grid}.landing-preview-stat strong[data-v-81a4605e]{font-size:1.25rem}.landing-preview-chart[data-v-81a4605e]{justify-content:space-between;align-items:flex-end;gap:10px;height:120px;padding-top:8px;display:flex}.landing-preview-chart span[data-v-81a4605e]{background:linear-gradient(180deg, var(--primary), color-mix(in srgb, var(--primary) 55%, transparent));border-radius:8px 8px 4px 4px;flex:1}.landing-section-head[data-v-81a4605e]{text-align:center;max-width:38rem;margin:0 auto 36px}.landing-section-head h2[data-v-81a4605e]{letter-spacing:-.02em;margin:0 0 12px;font-size:clamp(1.5rem,3vw,2.1rem)}.landing-section-head .hero-copy[data-v-81a4605e]{margin:0;font-size:1.05rem}.landing-feature-grid[data-v-81a4605e]{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.landing-feature-card[data-v-81a4605e]{background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow-soft);border-radius:20px;align-content:start;gap:12px;padding:24px;transition:transform .15s,border-color .15s,box-shadow .15s;display:grid}.landing-feature-card[data-v-81a4605e]:hover{border-color:var(--border-strong);box-shadow:var(--shadow);transform:translateY(-3px)}.landing-feature-icon[data-v-81a4605e]{background:var(--primary-soft);width:46px;height:46px;color:var(--primary-strong);border-radius:14px;justify-content:center;align-items:center;display:inline-flex}.landing-feature-icon[data-v-81a4605e] svg{width:22px;height:22px}.landing-feature-card h3[data-v-81a4605e]{margin:0;font-size:1.1rem}.landing-feature-card p[data-v-81a4605e]{margin:0;font-size:.95rem;line-height:1.5}.landing-steps[data-v-81a4605e]{counter-reset:landing-step;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:0;padding:0;list-style:none;display:grid}.landing-step[data-v-81a4605e]{background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow-soft);border-radius:20px;align-items:flex-start;gap:16px;padding:24px;display:flex}.landing-step-number[data-v-81a4605e]{background:var(--primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:1.05rem;font-weight:800;display:inline-flex}.landing-step h3[data-v-81a4605e]{margin:0 0 6px;font-size:1.05rem}.landing-step p[data-v-81a4605e]{margin:0;font-size:.95rem;line-height:1.5}@media (width<=960px){.landing[data-v-81a4605e]{gap:56px;padding:36px 0 56px}.landing-hero[data-v-81a4605e]{grid-template-columns:1fr;gap:32px}.landing-feature-grid[data-v-81a4605e],.landing-steps[data-v-81a4605e]{grid-template-columns:1fr}}@media (width<=720px){.landing-hero-actions .landing-cta-button[data-v-81a4605e]{flex:100%}}
