:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#f4f5f7;--surface:#fff;--surface-2:#f1f3f6;--border:#e1e4e9;--text:#1c2230;--muted:#6b7280;--accent:#2563eb;--income:#2f9e44;--income-bg:#e6f4ea;--expense:#d64545;--expense-bg:#fcebeb;--saving:#7048e8;--saving-bg:#efeafd;--estimated:#d9780a;--estimated-bg:#fff1dc;--net:#2563eb;--net-bg:#e8effd;--fuel-95:#2a78d6;--fuel-98:#eb6834;--radius:10px;--gap:6px;--cols:16px 28px minmax(170px, 1.6fr) 96px 110px 112px 84px 124px 58px minmax(130px, 1fr) 28px;--pcols:minmax(170px, 1fr) 140px minmax(200px, 2fr) 28px;--gcols:minmax(180px, 1.3fr) 120px 120px 150px 110px minmax(240px, 1.7fr) 58px 28px;--fcols:128px 88px 76px 72px 76px 84px 136px 44px 80px 84px minmax(160px, 1fr) 72px 28px;--ccols:minmax(180px, 1.4fr) 120px 120px 150px 150px minmax(180px, 1.6fr) 28px;--rcols:minmax(180px, 1.6fr) 100px 110px 90px 120px 110px 110px 28px;--mcols:150px 100px minmax(200px, 2fr) minmax(150px, 1fr) 120px 28px;--lcols:150px minmax(200px, 2fr) 90px 110px 120px 28px;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.4}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#111418;--surface:#1a1e25;--surface-2:#222731;--border:#2e343f;--text:#e6e9ef;--muted:#98a1ae;--accent:#6ea0ff;--income:#5cc47a;--income-bg:#1c3224;--expense:#f07474;--expense-bg:#3a2225;--saving:#a88dff;--saving-bg:#2a2444;--estimated:#f3a54a;--estimated-bg:#3a2c17;--net:#6ea0ff;--net-bg:#1d2a45;--fuel-95:#3987e5;--fuel-98:#d95926}}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1,h2{margin:0;font-size:1.05rem;font-weight:650}button,input,select{font:inherit;color:inherit}input,select{font-size:16px}[hidden]{display:none!important}.topbar{z-index:10;background:color-mix(in srgb, var(--bg) 85%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;padding:10px 16px;display:flex;position:sticky;top:0}.topbar h1{font-size:1.25rem}.tabs{gap:4px;margin-right:auto;display:flex}.tab{color:var(--muted);border-radius:999px;padding:4px 12px;font-weight:600;text-decoration:none}.tab:hover{background:var(--surface-2);color:var(--text)}.tab[aria-current=page]{background:var(--net-bg);color:var(--net)}.topbar-actions{display:contents}.account{flex:none;position:relative}.account-button{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;max-width:220px;padding:4px 10px;font-weight:600;display:flex}.account-button:after{content:"▾";color:var(--muted);font-size:.8em}.account-button:hover,.account-button[aria-expanded=true]{background:var(--surface-2)}.account-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.menu-icon{display:none}.account-menu{z-index:20;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;width:max-content;min-width:240px;max-width:calc(100vw - 24px);padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 30px #0000002e}.menu-who{border-bottom:1px solid var(--border);overflow-wrap:anywhere;margin-bottom:4px;padding:4px 10px 8px;font-weight:650}.menu-who small{color:var(--muted);font-size:.75rem;font-weight:400;display:block}.account-menu button.link,.account-menu .button{width:100%;color:var(--text);text-align:left;background:0 0;border:none;border-radius:6px;padding:9px 10px;font-size:.95rem;font-weight:400;display:block}.account-menu button.link:hover,.account-menu .button:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.menu-page:not(:empty){border-block:1px solid var(--border);margin:4px 0;padding:4px 0}.menu-page>span{display:block}.menu-note{max-width:260px;color:var(--muted);margin:2px 10px 4px;font-size:.75rem}.save-status{color:var(--muted);background:0 0;border:1px solid #0000;border-radius:999px;padding:3px 10px;font-size:.85rem}.save-status[data-state=saved]:after{content:" ✓";color:var(--income)}.save-status[data-state=error]{color:var(--expense);border-color:var(--expense);cursor:pointer}.app{flex-direction:column;gap:16px;max-width:1920px;margin:0 auto;padding:16px 16px 64px;display:flex}.loading{color:var(--muted)}.load-error{padding:16px}.load-error p{margin:0 0 12px}.load-error .error{color:var(--expense);font-weight:600}.summary{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.summary-card{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--kind);border-radius:var(--radius);padding:12px 16px}.summary-label{color:var(--muted);font-size:.85rem}.summary-value{font-variant-numeric:tabular-nums;color:var(--kind);font-size:1.5rem;font-weight:650}.summary-detail{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.85rem}.summary-card.negative .summary-value{color:var(--expense)}.income{--kind:var(--income);--kind-bg:var(--income-bg)}.expense{--kind:var(--expense);--kind-bg:var(--expense-bg)}.saving{--kind:var(--saving);--kind-bg:var(--saving-bg)}.estimated{--kind:var(--estimated);--kind-bg:var(--estimated-bg)}.net{--kind:var(--net);--kind-bg:var(--net-bg)}.legend{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chip{background:var(--kind-bg);color:var(--kind);border-radius:999px;padding:2px 10px;font-size:.8rem;font-weight:600}.hint{color:var(--muted);font-size:.85rem}.legend .hint{margin-left:4px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 0 8px}.section-head{flex-wrap:wrap;align-items:center;gap:10px;padding:0 16px 8px;display:flex}.section-name{flex:0 360px;min-width:0;font-size:16px;font-weight:650}.badge{background:var(--net-bg);color:var(--net);border-radius:999px;padding:2px 8px;font-size:.75rem;font-weight:600}.section-actions{gap:2px;margin-left:auto;display:flex}.table-scroll{overflow-x:auto}.row,.prow,.grow,.frow,.crow,.rrow{grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:8px;padding:8px 10px;display:grid}.row.head,.prow.head,.grow.head,.frow.head,.crow.head,.rrow.head{display:none}.item,.prow:not(.head),.goal,.fillup,.crow:not(.head),.route{border:1px solid var(--border);border-radius:8px;margin:0 12px 10px}.cell{flex-direction:column;gap:2px;min-width:0;display:flex}.cell-label{color:var(--muted);font-size:.75rem;font-weight:600}.check-cell{cursor:pointer;flex-direction:row;align-items:center;gap:8px;min-height:36px}.check-cell .cell-label{color:var(--text);font-size:.85rem;font-weight:400}.row>.handle{order:1;grid-column:span 1;align-self:center}.row>.cell-name{order:2;grid-column:span 10}.row>.icon,.prow>.icon,.grow>.icon,.frow>.icon,.crow>.icon,.rrow>.icon{order:3;grid-column:span 1;place-self:center end}.row>.cell-type{order:4;grid-column:span 6}.row>.cell-mode{order:5;grid-column:span 6}.row>.cell-monthly,.row>.cell-percent,.row>.cell-yearly{order:6;grid-column:span 4}.row>.cell-enabled,.row>.cell-estimated{order:7;grid-column:span 6}.row>.cell-note{order:8;grid-column:span 12}.prow>.cell-name{order:1;grid-column:span 7}.prow>.cell-value{order:2;grid-column:span 4}.prow>.cell-note{order:4;grid-column:span 12}.right{text-align:right}.center{text-align:center;justify-self:center}.empty{color:var(--muted);padding:10px 24px;font-style:italic}.item{border-left:3px solid var(--type-color)}.item:hover{background:var(--surface-2)}.item.type-income{--type-color:var(--income);--type-bg:var(--income-bg)}.item.type-expense{--type-color:var(--expense);--type-bg:var(--expense-bg)}.item.type-saving{--type-color:var(--saving);--type-bg:var(--saving-bg)}.item .num{background:var(--type-bg)}.item.estimated .num{background:var(--estimated-bg)}.item.disabled .row>.cell:not(.cell-enabled){opacity:.45}.item.disabled .num{text-decoration:line-through}.item.dragging{opacity:.4}.handle{cursor:grab;color:var(--muted);opacity:.4;-webkit-user-select:none;user-select:none;text-align:center}.item:hover .handle{opacity:1}.drop-marker{border-top:2px solid var(--accent);height:0;margin:-1px 12px}.row.sub{padding-top:0;padding-bottom:8px}.sub-body{flex-direction:column;grid-column:1/-1;gap:6px;min-width:0;display:flex}.sub-line{flex-wrap:wrap;align-items:center;gap:6px 12px;min-width:0;display:flex}.param-chips{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.chip-button{border:1px solid var(--border);background:var(--surface);color:var(--accent);cursor:pointer;border-radius:999px;padding:1px 9px;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.8rem}.chip-button:hover{border-color:var(--accent);background:var(--net-bg)}.formula{flex:auto;align-items:center;gap:8px;min-width:0;display:flex}.sub-label{min-width:68px;color:var(--muted);flex:none;font-size:.8rem}.formula-input{flex:1;font-family:ui-monospace,Cascadia Mono,Consolas,monospace}.item-message{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.85rem}.item-message.error{color:var(--expense);white-space:normal}.row.sum{font-variant-numeric:tabular-nums;grid-template-columns:repeat(3,minmax(0,1fr));margin:0 12px;font-weight:600}.row.total{border-top:1px solid var(--border);margin-top:4px}.sum-label{grid-column:1/-1}.sum-cell{text-align:right;white-space:nowrap}.sum-cell:before{content:attr(data-label);color:var(--muted);font-size:.75rem;display:block}.row.balance{background:var(--net-bg);color:var(--net);border-radius:8px}.row.sum.negative .sum-cell{color:var(--expense)}input[type=text],select{border:1px solid var(--border);background:var(--surface);border-radius:6px;width:100%;min-width:0;padding:7px 8px}select{cursor:pointer}select option{background:var(--surface);color:var(--text)}input[type=text]:hover:not([readonly]),select:hover{border-color:var(--border)}input[type=text]:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);outline:none}input[type=text]:focus:not([readonly]){background:var(--surface)}input[readonly]{cursor:default}input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;margin:0}.num{text-align:right;font-variant-numeric:tabular-nums}.num::placeholder{color:var(--muted)}button.icon{width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;font-size:1rem}button.icon:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.item button.icon:hover,.prow button.icon:hover,.fillup button.icon:hover,.crow button.icon:hover,.section-actions button.icon[aria-label$=verwijderen]:hover{color:var(--expense)}button.icon:disabled{opacity:.3;cursor:default}button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.add-item{color:var(--accent);cursor:pointer;background:0 0;border:none;border-radius:6px;margin:6px 16px 2px;padding:5px 10px;font-weight:600}.add-item:hover{background:var(--net-bg)}.add-section{border:1.5px dashed var(--border);border-radius:var(--radius);color:var(--muted);cursor:pointer;background:0 0;padding:12px;font-weight:600}.add-section:hover{border-color:var(--accent);color:var(--accent)}.params .section-head{padding-bottom:10px}.button{border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;border-radius:6px;padding:6px 12px;font-weight:600;text-decoration:none;display:inline-block}.button:hover{border-color:var(--accent);color:var(--accent)}.button.primary{border-color:var(--accent);background:var(--accent);color:var(--surface)}.button.primary:hover{color:var(--surface);filter:brightness(1.08)}.button:disabled{opacity:.6;cursor:default}button.link{color:var(--accent);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:3px 6px;font-size:.9rem}button.link:hover{background:var(--net-bg)}.backup-actions{flex-wrap:wrap;gap:8px;padding:0 16px 8px;display:flex}.goal{border-left:3px solid var(--saving)}.goal.reached{border-left-color:var(--income)}.goal:hover{background:var(--surface-2)}.goal .num{background:var(--saving-bg)}.grow>.cell-title{order:1;grid-column:span 11}.grow>.cell-target{order:4;grid-column:span 4}.grow>.cell-start-amount{order:5;grid-column:span 4}.grow>.cell-monthly{order:6;grid-column:span 4;align-self:center}.grow>.cell-start{order:7;grid-column:span 6}.grow>.cell-reached{order:8;grid-column:span 6}.grow>.cell-progress{order:9;grid-column:span 12;gap:3px}.grow.sub>.cell-description{grid-column:span 12}.grow.sub{padding-top:0;padding-bottom:8px}.goal-description{color:var(--muted)}.goal-monthly{color:var(--saving);font-variant-numeric:tabular-nums;font-weight:600}.progress{background:var(--surface-2);border-radius:999px;height:6px;overflow:hidden}.goal:hover .progress{background:var(--border)}.progress-bar{border-radius:inherit;background:var(--saving);height:100%}.goal-progress-text{font-variant-numeric:tabular-nums;font-size:.85rem}.goal.reached .progress-bar{background:var(--income)}.goal.reached .grow>.cell:not(.cell-reached){opacity:.6}input[type=date]{border:1px solid var(--border);background:var(--surface);width:100%;min-width:0;color:inherit;border-radius:6px;padding:6px}input[type=date]:hover{border-color:var(--border)}input[type=date]:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);outline:none}.goal-select{flex:200px;width:auto;min-width:0;max-width:100%}.car-switch{align-items:center;gap:8px;display:flex}.car-switch select,.period-select{width:auto}.summary-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.fuel-year .section-head h2,.costs .section-head h2,.car .section-head h2{font-size:1.05rem}.collapse{width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;font-size:1rem}.collapse:hover{background:var(--surface-2);color:var(--text)}.fillup{border-left:3px solid var(--net)}.fillup:hover{background:var(--surface-2)}.fillup.warning{border-left-color:var(--estimated)}.fillup.error,.crow.error{border-left:3px solid var(--expense)}.fillup.incomplete .frow:not(.sub)>.cell{opacity:.75}.fillup .num{background:var(--net-bg)}.computed{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;padding:7px 8px;display:block}.frow.sub{padding-top:0;padding-bottom:8px}.fillup-message{color:var(--muted);grid-column:1/-1;font-size:.85rem}.fillup.warning .fillup-message{color:var(--estimated)}.fillup.error .fillup-message{color:var(--expense)}.frow>.cell-date{order:1;grid-column:span 6}.frow>.cell-driven{order:2;grid-column:span 6}.frow>.cell-liters,.frow>.cell-total{order:3;grid-column:span 6}.frow>.cell-consumption{order:4;grid-column:span 12}.frow>.extra-button{order:5}.frow>.cell-odometer,.frow>.cell-price{order:6;grid-column:span 6}.frow>.cell-fuel,.frow>.cell-full{order:7;grid-column:span 6}.frow>.cell-other,.frow>.cell-missed{order:8;grid-column:span 6}.frow>.cell-note{order:9;grid-column:span 12}.frow>.icon{order:10}.frow>.cell-consumption .computed{text-align:left;padding:0}.year-hint{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.85rem}.crow>.cell-name{order:1;grid-column:span 11}.crow>.icon{order:2}.crow>.cell-monthly,.crow>.cell-yearly,.crow>.cell-from,.crow>.cell-until{order:3;grid-column:span 6}.crow>.cell-note{order:4;grid-column:span 12}.crow .num{background:var(--expense-bg)}.rrow>.cell-name{order:1;grid-column:span 11}.rrow>.icon{order:2}.rrow>.cell-distance,.rrow>.cell-round{order:3;grid-column:span 6}.rrow>.cell-times,.rrow>.cell-per{order:4;grid-column:span 6}.rrow>.cell-fuel,.rrow>.cell-total{order:5;grid-column:span 6}.rrow>.cell-fuel .computed,.rrow>.cell-total .computed{text-align:left;padding-left:0}.route .num{background:var(--net-bg)}.rrow.sub{padding-top:0;padding-bottom:8px}.route-message{color:var(--muted);grid-column:1/-1;font-size:.85rem}.crow.derived{border-style:dashed}.derived-name{padding:7px 8px;font-weight:600;display:block}.crow.derived .computed{text-align:left;padding-left:0}.crow.derived .computed.note{white-space:normal}.crow.derived .cell-until{display:none}.maintenance-item{border:1px solid var(--border);border-left:3px solid var(--expense);border-radius:8px;margin:0 12px 10px}.mrow,.lrow{grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:8px;padding:8px 10px;display:grid}.mrow.head,.lrow.head{display:none}.mrow>.cell-date{order:1;grid-column:span 6}.mrow>.cell-odometer{order:2;grid-column:span 5}.mrow>.icon,.lrow>.icon{order:3;grid-column:span 1;place-self:center end}.mrow>.cell-description{order:4;grid-column:span 12}.mrow>.cell-garage{order:5;grid-column:span 8}.mrow>.cell-total{order:6;grid-column:span 4}.mrow>.cell-total .computed{font-weight:650}.mrow .num,.lrow .num{background:var(--expense-bg)}.ltable{border-top:1px solid var(--border);margin:0 10px 8px}.lrow{border-bottom:1px solid var(--border)}.lrow>.cell-kind{order:1;grid-column:span 11}.lrow>.cell-description{order:4;grid-column:span 12}.lrow>.cell-quantity,.lrow>.cell-price,.lrow>.cell-total{order:5;grid-column:span 4}.line-actions{flex-wrap:wrap;gap:4px;padding-top:4px;display:flex}.add-line{color:var(--accent);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:.85rem;font-weight:600}.add-line:hover{background:var(--surface-2)}.fsum{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:4px 24px;margin:0 12px;padding:8px 10px;display:flex}.fsum.total{border-top:1px solid var(--border);margin-top:4px}.fsum.fixed{background:var(--net-bg);color:var(--net);border-radius:8px}.fsum-title{flex:100%;font-weight:600}.fsum-item{flex-direction:column;display:flex}.fsum-label{color:var(--muted);font-size:.75rem}.fsum-value{white-space:nowrap;font-weight:600}.car-fields{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;padding:0 16px 4px;display:grid}.car-hint{margin:4px 16px 0}.compare-verdict{border-left:3px solid var(--kind);background:var(--kind-bg);border-radius:8px;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:0 16px 12px;padding:10px 12px;display:flex}.compare-verdict strong{color:var(--kind);font-size:1.1rem}.compare-table{border-collapse:collapse;font-variant-numeric:tabular-nums;margin:0 16px}.compare-table th,.compare-table td{border-bottom:1px solid var(--border);text-align:right;white-space:nowrap;padding:5px 0 5px 16px}.compare-table th[scope=row]{color:var(--muted);text-align:left;white-space:normal;padding-left:0;font-weight:400}.compare-spread{color:var(--muted);display:block}.compare-table thead th{font-weight:600}.compare-notes p,.compare-tip{max-width:72ch;margin:10px 16px 0}.fuel-super95{color:var(--fuel-95)}.fuel-super98{color:var(--fuel-98)}.fuel-other{color:var(--muted)}.charts{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:20px 28px;padding:0 16px 8px;display:grid}.chart{min-width:0;margin:0}.chart figcaption{flex-wrap:wrap;align-items:baseline;gap:0 8px;display:flex}.chart h3{margin:0;font-size:.95rem;font-weight:600}.chart-legend{min-height:1.4em;color:var(--muted);flex-wrap:wrap;gap:2px 14px;margin:2px 0 4px;font-size:.8rem;display:flex}.legend-item{align-items:center;gap:6px;display:inline-flex}.key{background:currentColor;flex:none;display:inline-block}.key-dot{border-radius:50%;width:8px;height:8px}.key-line{border-radius:1px;width:14px;height:2px}.key-rect{border-radius:2px;width:10px;height:10px}.chart-plot{min-width:0;position:relative;overflow:hidden}.chart-plot svg{display:block}.chart-plot svg:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:6px}.chart-grid{stroke:var(--border);stroke-width:1px;shape-rendering:crispedges}.chart-baseline{stroke:var(--muted);stroke-opacity:.6;stroke-width:1px;shape-rendering:crispedges}.chart-axis{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.chart-label{fill:var(--text);font-variant-numeric:tabular-nums;font-size:11px;font-weight:600}.chart-dot{fill:currentColor;stroke:var(--surface);stroke-width:2px}.chart-line{fill:none;stroke:currentColor;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart-bar{fill:currentColor}.chart-marker{fill:none;stroke:currentColor;stroke-width:2px}.chart-crosshair{stroke:var(--muted);stroke-width:1px;shape-rendering:crispedges}.chart-band{fill:var(--surface-2)}.chart-empty{color:var(--muted);margin:0;padding:24px 0;font-size:.85rem}.chart-tip{z-index:1;border:1px solid var(--border);background:var(--surface);pointer-events:none;border-radius:8px;min-width:120px;padding:6px 10px;font-size:.8rem;position:absolute;box-shadow:0 2px 8px #0000001f}.tip-title,.tip-note{color:var(--muted);white-space:nowrap}.tip-row{white-space:nowrap;align-items:center;gap:6px;display:flex}.tip-row strong{font-variant-numeric:tabular-nums}.tip-row span:last-child{color:var(--muted)}.tip-row .key:not([class*=fuel-]){visibility:hidden}.chart-table summary{width:fit-content;color:var(--accent);cursor:pointer;margin-top:4px;font-size:.85rem}.chart-table table{border-collapse:collapse;font-variant-numeric:tabular-nums;margin-top:4px;font-size:.85rem}.chart-table th,.chart-table td{border-bottom:1px solid var(--border);text-align:right;white-space:nowrap;padding:3px 0 3px 16px}.chart-table th:first-child{text-align:left;padding-left:0}.chart-table tbody th{font-weight:400}.dialog.wide{width:min(640px,100vw - 32px)}.split-choice{gap:20px;margin-bottom:12px;display:flex}.check-label{align-items:center;gap:8px;display:flex}.redistribution{flex-direction:column;gap:10px;margin-bottom:12px;display:flex}.redistribution-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 12px;display:grid}.redistribution-row .hint{grid-column:1/-1;padding-left:24px}.amount-input{align-items:center;gap:6px;display:flex}.amount-input input{border:1px solid var(--border);background:var(--surface);border-radius:6px;width:96px;padding:6px 8px}.amount-input input:disabled{opacity:.5}.unit{min-width:1.5em;color:var(--muted);white-space:nowrap;font-size:.85rem}.redistribution-total{font-weight:600}.dialog .redistribution-total{margin-bottom:4px}.redistribution-total.error{color:var(--expense)}.auth{width:100%;max-width:460px;margin:24px auto 0;padding:20px 24px}.auth h2{margin-bottom:12px;font-size:1.2rem}.auth p{margin:0 0 12px}.auth-form{flex-direction:column;gap:12px;display:flex}.field{flex-direction:column;gap:4px;font-weight:600;display:flex}.field .hint{font-weight:400}.field input{border:1px solid var(--border);background:var(--surface);border-radius:6px;width:100%;padding:8px 10px;font-weight:400}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);outline:none}.password-rules{color:var(--muted);margin:0;padding:0;font-size:.85rem;font-weight:400;list-style:none}.password-rules li{padding-left:1.4em;position:relative}.password-rules li:before{text-align:center;content:"○" / "";width:1em;position:absolute;left:0}.password-rules [data-state=busy]:before{content:"…" / ""}.password-rules [data-state=ok]{color:var(--text)}.password-rules [data-state=ok]:before{color:var(--income);content:"✓" / "Voldaan: ";font-weight:700}.password-rules [data-state=bad]{color:var(--expense);font-weight:600}.password-rules [data-state=bad]:before{content:"✗" / ""}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.check{color:var(--muted);align-items:center;gap:8px;font-size:.85rem;display:flex}.form-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;display:flex}.form-error{color:var(--expense);margin:0;font-weight:600}.auth-message{background:var(--net-bg);border-radius:6px;padding:8px 12px}.auth-links{flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:16px;margin-left:-6px;display:flex}.warning{border-left:3px solid var(--estimated);background:var(--estimated-bg);border-radius:6px;padding:8px 12px;font-weight:600}.recovery-words{background:var(--surface-2);border-radius:8px;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:6px 16px;margin:0 0 12px;padding:12px 16px 12px 40px;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:1.05rem;display:grid}.recovery-code{color:var(--muted);overflow-wrap:anywhere;font-family:ui-monospace,Cascadia Mono,Consolas,monospace}.dialog{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:min(460px,100vw - 32px);color:var(--text);padding:16px}.dialog::backdrop{background:#0006}.dialog h2{margin-bottom:12px}.dialog p{margin:0 0 16px}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}@media print{.topbar,.toast,.no-print{display:none!important}body,.card{color:#000;background:#fff;border:none}}.toast{background:var(--text);max-width:min(520px,100vw - 32px);color:var(--bg);border-radius:8px;padding:10px 16px;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #0003}@media (width>=641px){.topbar{padding:12px 24px}.dialog{padding:20px 24px}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.account{flex:none}.app{padding:20px 24px 64px}.compare-spread{display:inline}}@media (width>=900px){input,select{font-size:inherit}input[type=text],input[type=date],select{background:0 0;border-color:#0000}input[type=text]{padding:5px 8px}input[type=date]{padding:4px 6px}select{padding:5px 4px}input[type=text]:focus:not([readonly]){background:var(--surface)}.field input,.amount-input input,.car-fields input,.car-switch select,.summary-head select{border-color:var(--border);background:var(--surface)}.section-name{font-size:1.05rem}.formula-input{font-size:.85rem}.table{min-width:1060px}.ptable{min-width:600px}.gtable{min-width:1080px}.ftable{min-width:1240px}.ctable{min-width:900px}.rtable{min-width:860px}.mtable{min-width:760px}.mrow,.lrow{gap:var(--gap);align-items:center;padding:2px 12px 2px 13px}.mrow{grid-template-columns:var(--mcols)}.lrow{grid-template-columns:var(--lcols);border-bottom:none}.mrow.head,.lrow.head{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;padding-top:4px;padding-bottom:4px;font-size:.78rem;font-weight:600;display:grid}.mrow.head>div,.lrow.head>div{padding:0 8px}.mrow.head{padding-left:16px}.mrow>.cell,.mrow>.icon,.lrow>.cell,.lrow>.icon{order:0;grid-column:auto;place-self:auto}.mrow>.cell-total .computed,.lrow>.cell-total .computed{text-align:right}.maintenance-item{border-top:none;border-right:none;border-bottom:1px solid var(--border);border-radius:0;margin:0 0 6px}.ltable{border-top:none;margin:0 0 6px 250px}.ltable .lrow.head{font-size:.72rem}.line-actions{padding-left:13px}.crow.derived .cell-until{display:block}.crow.derived .cell-monthly .computed,.crow.derived .cell-yearly .computed{text-align:right}.crow.derived .cell-from .computed{padding-left:8px}.row,.prow,.grow,.frow,.crow,.rrow{grid-template-columns:var(--cols);gap:var(--gap);border-left:3px solid #0000;align-items:center;padding:2px 12px 2px 13px}.prow{grid-template-columns:var(--pcols)}.grow{grid-template-columns:var(--gcols)}.frow{grid-template-columns:var(--fcols)}.crow{grid-template-columns:var(--ccols)}.rrow{grid-template-columns:var(--rcols)}.row.head,.prow.head,.grow.head,.frow.head,.crow.head,.rrow.head{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;padding-top:4px;padding-bottom:4px;font-size:.78rem;font-weight:600;display:grid}.row.head>div,.prow.head>div,.grow.head>div,.frow.head>div,.crow.head>div,.rrow.head>div{padding:0 8px}.item,.prow:not(.head),.goal,.fillup,.crow:not(.head),.route{border:none;border-radius:0;margin:0}.item .row{border-left-color:var(--type-color)}.goal .grow{border-left-color:var(--saving)}.goal.reached .grow{border-left-color:var(--income)}.row>.cell,.row>.handle,.row>.icon,.prow>.cell,.prow>.icon,.grow>.cell,.grow>.icon,.frow>.cell,.frow>.icon,.crow>.cell,.crow>.icon,.rrow>.cell,.rrow>.icon{order:0;grid-column:auto;place-self:auto}.cell{display:block}.cell-label{display:none}.car-fields .cell-label{display:block}.check-cell{justify-content:center;min-height:0;display:flex}.grow>.cell-monthly{text-align:right;padding-right:8px}.grow>.cell-progress{padding:0 8px;display:flex}.grow.sub>.cell-description{grid-column:1/7}.row.sub{padding-top:0;padding-bottom:6px}.sub-body{grid-column:3/11;gap:4px}.sub-line{flex-wrap:nowrap}.sub-label{padding-left:8px}.goal-select{flex:0 auto;min-width:220px}.fillup .frow:not(.sub){border-left-color:var(--net)}.fillup.warning .frow:not(.sub){border-left-color:var(--estimated)}.fillup.error .frow:not(.sub),.crow.error{border-left-color:var(--expense)}.fillup,.fillup.error,.fillup.warning{border-left:none}.frow.sub{padding-bottom:4px}.fillup-message{grid-column:2/-2;padding-left:8px}.frow>.cell-consumption .computed,.rrow>.cell-fuel .computed,.rrow>.cell-total .computed{text-align:right}.rrow.sub{padding-bottom:4px}.route-message{grid-column:1/-2;padding-left:8px}.fsum{margin:0;padding:7px 20px 7px 21px}.fsum.fixed{border-radius:0}.fsum-title{flex:0 0 200px}.row.sum{grid-template-columns:var(--cols);margin:0;padding-top:7px;padding-bottom:7px}.row.balance{border-radius:0}.sum-label{grid-column:1/6;padding-left:8px}.sum-cell{padding-right:8px}.sum-cell:before{content:none}}@media (pointer:coarse) and (width<=899px){button.icon{width:36px;height:36px}input[type=checkbox]{width:20px;height:20px}.row>.handle{display:none}.row>.cell-name{grid-column:span 11}}@media (pointer:coarse) and (width>=900px){.row>.handle{visibility:hidden}}.peek,.fold-actions,.fold-toggle,.hint-toggle,.edit-toggle,.extra-button,.legend-toggle,.summary-tip,.cell-calc{display:none}@media (width<=640px){.topbar{flex-wrap:nowrap;gap:6px;padding:6px 8px 6px 14px}.topbar h1{font-size:1.1rem}.tab{padding:4px 10px}.account-button{justify-content:center;width:40px;height:40px;padding:0;font-size:1.2rem}.account-button:after,.account-button .account-name{display:none}.menu-icon{display:inline}.save-status{place-items:center;width:32px;height:32px;padding:0;font-size:0;display:grid}.save-status:before{font-size:16px}.save-status[data-state=saving]:before{content:"⟳";animation:.9s linear infinite spin}.save-status[data-state=saved]:before{content:"✓";color:var(--income);font-weight:700}.save-status[data-state=saved]:after{content:none}.save-status[data-state=error]:before{content:"⚠";color:var(--expense)}}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.save-status[data-state=saving]:before{animation:none}}@media (width<=899px){.app{gap:12px;padding-bottom:96px}.peek{width:100%;min-height:48px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;order:-1;grid-column:1/-1;align-items:center;gap:10px;padding:7px 12px 7px 11px;display:flex}.peek.static{cursor:default}.peek-main{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.peek-title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.peek-title.placeholder,.peek.static .peek-title{color:var(--muted);font-weight:500}.peek-title.placeholder{font-style:italic}.peek-meta{color:var(--muted);white-space:nowrap;align-items:center;gap:6px;font-size:.8rem;display:flex;overflow:hidden}.peek-meta>*{flex:none}.peek-meta .peek-note{text-overflow:ellipsis;flex:0 auto;overflow:hidden}.peek-meta .chip{padding:0 7px;font-size:.72rem}.peek-meta .mono{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.78rem}.peek-amount{font-variant-numeric:tabular-nums;white-space:nowrap;flex-direction:column;align-items:flex-end;font-weight:650;display:flex}.peek-detail{color:var(--muted);font-size:.78rem;font-weight:400}.peek .progress{height:5px;margin-top:4px}.item.disabled .peek-title,.item.disabled .peek-value{color:var(--muted);text-decoration:line-through}.rec,.table-scroll .rec{border-style:solid;border-width:1px 0 0 3px;border-color:var(--border) transparent transparent;border-radius:0;margin:0}.rec.item{border-left-color:var(--type-color)}.rec.goal{border-left-color:var(--saving)}.rec.goal.reached{border-left-color:var(--income)}.rec.fillup,.rec.route{border-left-color:var(--net)}.rec.fillup.warning{border-left-color:var(--estimated)}.rec.fillup.error,.rec.crow.error,.rec.crow,.rec.maintenance-item{border-left-color:var(--expense)}.rec:not(.open){padding:0}.rec:not(.open)>:not(.peek){display:none!important}.rec:hover{background:0 0}.rec.open{background:var(--surface-2);padding-bottom:10px}.rec.open>.peek .peek-title{white-space:normal}.folded{display:none!important}.extra-button{text-align:left;order:50;grid-column:1/-1;justify-self:start;padding:4px 0;font-weight:600;display:block}.extra-button small{color:var(--muted);font-weight:400}.fold-actions{order:99;grid-column:1/-1;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px 0;display:flex}.rec>.row~.fold-actions,.rec>.grow~.fold-actions,.rec>.frow~.fold-actions,.rec>.rrow~.fold-actions,.rec>.ltable~.fold-actions{padding:2px 10px 0}.fold-actions .button.primary{padding:7px 18px}button.link.danger{color:var(--expense)}.rec button.icon[data-key$=\:delete],.row>.handle{display:none}.row>.cell-name,.grow>.cell-title,.crow>.cell-name,.rrow>.cell-name,.lrow>.cell-kind{grid-column:span 12}.prow>.cell-value,.mrow>.cell-odometer,.prow>.cell-name{grid-column:span 6}.row>.cell-monthly,.row>.cell-percent,.row>.cell-yearly{grid-column:span 12}.item[data-mode=monthly] .row>.cell-percent,.item[data-mode=monthly] .row>.cell-yearly,.item[data-mode=yearly] .row>.cell-monthly,.item[data-mode=yearly] .row>.cell-percent,.item[data-mode=percentage] .row>.cell-monthly,.item[data-mode=percentage] .row>.cell-yearly,.item[data-mode=formula] .row>.cell-monthly,.item[data-mode=formula] .row>.cell-percent,.item[data-mode=formula] .row>.cell-yearly,.item[data-mode=formula] .row>.cell-calc{display:none}.row>.cell-calc{color:var(--muted);font-variant-numeric:tabular-nums;order:6;grid-column:span 12;margin-top:-4px;font-size:.82rem;display:block}.row>.extra-button{order:8}.section .row.sum.total{display:none}.row.balance{justify-content:space-between;gap:12px;margin:8px 12px 0;display:flex}.row.balance>.sum-cell~.sum-cell{display:none}.row.balance .sum-cell:before{content:none}.crow.derived{border-style:dashed solid;border-width:1px 0 0 3px;border-color:var(--border) transparent transparent;border-radius:0;margin:0;padding:0}.crow.derived>.peek.static{display:flex}.crow.derived>.cell,.crow.derived>.icon{display:none}.maintenance-item.open>.ltable{border:1px solid var(--border);background:var(--surface);border-radius:8px;margin:0 10px 8px;overflow:hidden}.ltable .lrow.rec{border-bottom:none;border-left-color:#0000}.ltable .lrow.rec:first-of-type{border-top:none}.ltable .lrow.rec.open{background:var(--bg)}.ltable .peek{min-height:42px}.line-actions{border-top:1px solid var(--border);padding:4px 6px}.fuel-year.current>.add-item{right:max(16px, env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:15;background:var(--accent);color:var(--surface);border-radius:999px;margin:0;padding:12px 18px;position:fixed;box-shadow:0 6px 18px #00000040}.fuel-year.current>.add-item:hover{background:var(--accent);filter:brightness(1.08)}.fuel-year.closed .fsum{display:none}.fuel-year.closed .section-head{padding-bottom:0}.section-head{gap:4px;padding:0 8px 6px 4px}.fold-toggle{min-width:0;min-height:40px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;align-items:center;gap:8px;padding:4px 8px;display:flex}.fold-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:1rem;font-weight:650;overflow:hidden}.fold-info{font-variant-numeric:tabular-nums;white-space:nowrap;align-items:baseline;gap:10px;margin-left:auto;display:flex}.fold-count{color:var(--muted);font-size:.8rem}.fold-total{font-weight:650}.compare .fold-info,.car .fold-info{color:var(--muted);font-size:.85rem}.chev{width:14px;color:var(--muted);transition:transform .15s;display:inline-block}.collapsed .fold-toggle .chev{transform:rotate(-90deg)}@media (prefers-reduced-motion:reduce){.chev{transition:none}}.card.collapsed{padding-bottom:12px}.card.collapsed>:not(.section-head),.card.collapsed .section-head>:not(.fold-toggle){display:none}.card.collapsed .section-head{padding-bottom:0}.section-head:has(>.fold-toggle)>h2{display:none}.section-head>.hint{display:none}.card.show-hint .section-head>.hint{flex:100%;order:20;padding:0 8px 4px;display:block}.hint-toggle,.edit-toggle{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;place-items:center;font-size:1.05rem;display:grid}.hint-toggle[aria-expanded=true],.edit-toggle[aria-expanded=true]{background:var(--net-bg);color:var(--net)}.section:not(.editing) .section-head>.section-name,.section:not(.editing) .section-head>.badge,.section:not(.editing) .section-head>.section-actions{display:none}.section.editing .section-head>.section-name{flex:100%;order:10;margin:4px 0 0 8px}.section.editing .section-head>.badge,.section.editing .section-head>.section-actions{order:11;margin-left:8px}.section.editing .section-head>.section-actions{margin-left:auto}section.summary{cursor:pointer;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.summary-card{padding:7px 10px 8px}.summary-label{font-size:.78rem}.summary-value{font-size:1.15rem}section.summary:not(.details) .summary-detail{display:none}.car-summary .summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.car-summary .summary-card{padding:6px 8px 7px}.car-summary .summary-label{font-size:.72rem;line-height:1.25}.car-summary .summary-value{font-size:1rem}.car-summary .summary-detail{font-size:.7rem;line-height:1.3}.legend-toggle,.summary-tip{display:inline}.legend-toggle{order:1;margin-left:auto}.legend>.summary-tip{margin-left:0}.legend>.chip,.legend>.hint:not(.summary-tip){order:2}.legend:not(.open)>.chip,.legend:not(.open)>.hint:not(.summary-tip){display:none}}
