:root{--bg:#f6f7f9;--surface:#fff;--surface-2:#eef1f5;--text:#1b1f24;--muted:#5b6470;--border:#d5dae1;--accent:#2f6fdf;--accent-soft:#e3ecfc;--accent-text:#fff;--danger:#b42318;--danger-soft:#fdecea;--warning:#b54708;--warning-soft:#fef0c7;--radius:8px;--tabbar-height:3.75rem;--sidebar-width:15rem;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#121418;--surface:#1c1f25;--surface-2:#262a32;--text:#e8eaee;--muted:#9aa3ae;--border:#343a44;--accent:#6b9cf5;--accent-soft:#1f2d47;--accent-text:#0d1117;--danger:#f97066;--danger-soft:#3a1d1b;--warning:#fdb022;--warning-soft:#3d2a0a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#121418;--surface:#1c1f25;--surface-2:#262a32;--text:#e8eaee;--muted:#9aa3ae;--border:#343a44;--accent:#6b9cf5;--accent-soft:#1f2d47;--accent-text:#0d1117;--danger:#f97066;--danger-soft:#3a1d1b;--warning:#fdb022;--warning-soft:#3d2a0a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,sans-serif;line-height:1.5}a{color:var(--accent)}input,button{font:inherit}input{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;color:var(--text);padding:.7rem .8rem;font-size:1rem}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}:focus:not(:focus-visible){outline:none}.muted{color:var(--muted)}.icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:1.35rem;height:1.35rem}.button-primary,.button-secondary{border-radius:var(--radius);cursor:pointer;padding:.7rem 1rem}.button-primary{background:var(--accent);color:var(--accent-text);border:none}.button-secondary{border:1px solid var(--border);background:var(--surface);color:var(--text)}button:disabled{opacity:.6;cursor:default}.form-error{min-height:1.2em;color:var(--danger);margin:0}.banner-error{border-radius:var(--radius);background:var(--danger-soft);color:var(--danger);margin:1rem 1rem 0;padding:.75rem 1rem}.login-page{place-items:center;min-height:100dvh;padding:1rem;display:grid}.login-form{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);gap:.5rem;width:100%;max-width:22rem;padding:1.5rem;display:grid}.login-form h1{margin:0 0 .5rem;font-size:1.4rem}.login-form label{color:var(--muted);margin-top:.5rem;font-size:.9rem}.login-form .button-primary{margin-top:.5rem}.sidebar{display:none}.main{min-width:0;padding-bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom))}.content{padding:1rem}.page h1{margin:0 0 .75rem;font-size:1.4rem}.tabbar{z-index:10;height:calc(var(--tabbar-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--border);background:var(--surface);grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;inset:auto 0 0}.tab{min-width:0;color:var(--muted);cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:.15rem;padding:.25rem;font-size:.7rem;text-decoration:none;display:flex}.tab span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.tab[aria-current=page],.tab.is-active{color:var(--accent)}.more-sheet{width:100%;max-width:100%;padding:.75rem .75rem calc(.75rem + env(safe-area-inset-bottom));background:var(--surface);color:var(--text);border:none;border-radius:12px 12px 0 0;margin:auto 0 0}.more-sheet::backdrop{background:#0006}.more-sheet hr{border:none;border-top:1px solid var(--border);margin:.5rem 0}.nav-link{border-radius:var(--radius);width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:.75rem;padding:.7rem .75rem;font-size:.95rem;text-decoration:none;display:flex}.nav-link:hover{background:var(--surface-2)}.nav-link[aria-current=page]{background:var(--accent-soft);color:var(--accent);font-weight:600}.nav-user{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:0;padding:.25rem .75rem;font-size:.85rem;overflow:hidden}select{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a929c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right .75rem center / 1rem;min-height:2.75rem;color:var(--text);font:inherit;appearance:none;padding:.7rem 2.25rem .7rem .8rem;font-size:1rem}.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:0;margin-bottom:1rem;padding:1rem}.card h2{margin:0;font-size:1.1rem}.card>.muted{margin:.25rem 0 .75rem;font-size:.9rem}.section-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.toggle{color:var(--muted);cursor:pointer;align-items:center;gap:.35rem;font-size:.9rem;display:inline-flex}.toggle input{width:auto}.item-list{margin:0 0 1rem;padding:0;list-style:none}.item{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem 0;display:flex}.item.is-archived .item-name{color:var(--muted)}.item-main{flex-wrap:wrap;flex:12rem;align-items:center;gap:.5rem;min-width:0;display:flex}.item-name{overflow-wrap:anywhere}.item-actions{min-width:0;margin-left:auto;display:flex}.row-actions-inline{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.row-menu-wrap{display:none;position:relative}.row-menu-button{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text)}.row-menu-button .icon{stroke-width:3px}.row-menu{z-index:20;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:13rem;padding:.25rem;display:grid;position:absolute;top:calc(100% + .25rem);right:0;box-shadow:0 8px 24px #00000026}.row-menu-item{border-radius:calc(var(--radius) - 2px);color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;padding:.65rem .75rem}.row-menu-item:hover{background:var(--surface-2)}@media (width<=599px){.row-actions-inline{display:none}.row-menu-wrap{display:block}}.row-feedback{border-radius:var(--radius);flex-basis:100%;margin:.25rem 0 0;padding:.5rem .75rem;font-size:.9rem}.row-feedback p{margin:0}.row-feedback.is-error{background:var(--danger-soft);color:var(--danger)}.row-feedback.is-success{background:var(--accent-soft);color:var(--text)}.row-feedback.is-confirm{border:1px solid var(--border);background:var(--surface-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.row-feedback-actions{gap:.5rem;margin-left:auto;display:flex}.button-danger{border-radius:var(--radius);background:var(--danger);color:#fff;cursor:pointer;border:none}.badge{background:var(--surface-2);color:var(--muted);white-space:nowrap;border-radius:999px;padding:.1rem .5rem;font-size:.75rem}.badge-business{background:var(--accent-soft);color:var(--accent)}.button-small{padding:.4rem .75rem;font-size:.9rem}.inline-form{flex-wrap:wrap;gap:.5rem;width:100%;display:flex}.inline-form input{flex:12rem;width:auto}.account-group+.account-group{margin-top:.75rem}.group-title{color:var(--muted);letter-spacing:.02em;text-transform:uppercase;align-items:center;gap:.5rem;margin:1rem 0 .25rem;font-size:.85rem;font-weight:600;display:flex}.item-detail{overflow-wrap:anywhere;font-size:.85rem}.item-amount{font-variant-numeric:tabular-nums;white-space:nowrap}.field{gap:.25rem;display:grid}.field label,.row-feedback-typed{color:var(--muted);font-size:.9rem}.row-feedback-typed{flex-basis:100%;gap:.25rem;display:grid}.field-error{color:var(--danger);margin:0;font-size:.85rem}[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger)}fieldset[aria-invalid=true]{border-radius:var(--radius);box-shadow:0 0 0 2px var(--danger)}.modal{background:var(--surface);width:100%;max-width:100%;height:100dvh;max-height:100dvh;color:var(--text);border:none;margin:0;padding:0}.modal::backdrop{background:#00000073}.modal-header{z-index:1;border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex;position:sticky;top:0}.modal-title{margin:0;font-size:1.1rem}.icon-button{cursor:pointer;flex:none;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;padding:0;line-height:1;display:inline-flex}.icon-button .icon{width:1.25rem;height:1.25rem;display:block}.modal-close{border-radius:var(--radius);color:var(--muted);background:0 0;border:none}.modal:focus{outline:none}.modal-close:hover{background:var(--surface-2)}.modal-body{padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom))}.modal-body>.form-error{margin-bottom:.75rem}.modal-discard{border-bottom:1px solid var(--border);background:var(--warning-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex}.modal-discard p{margin:0;font-weight:600}.modal-confirm{border-radius:12px 12px 0 0;height:fit-content;margin:auto 0 0}.modal-confirm .modal-title{margin-bottom:.5rem}.confirm-message{margin:0 0 .75rem}@media (width>=600px){.modal,.modal-confirm{border-radius:12px;width:min(40rem,100% - 2rem);height:fit-content;max-height:calc(100dvh - 4rem);margin:auto}.modal-confirm{width:min(30rem,100% - 2rem)}}.form-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.form-actions-error{color:var(--danger);flex:14rem;margin:0;font-size:1rem;font-weight:600}.form-actions-error:empty{display:none}@media (width<=599px){.form-actions-error{flex-basis:100%}}.segmented{border-radius:var(--radius);background:var(--surface-2);flex-wrap:wrap;gap:.25rem;margin-bottom:1rem;padding:.25rem;display:flex}.segment{border-radius:calc(var(--radius) - 2px);color:var(--muted);cursor:pointer;background:0 0;border:none;flex:auto;padding:.5rem .75rem}.segment[aria-pressed=true]{background:var(--surface);color:var(--text);font-weight:600;box-shadow:0 1px 2px #00000014}.item.is-child{padding-left:1.25rem}.item.is-child .item-name:before{content:"↳ ";color:var(--muted)}.toolbar{justify-content:flex-end;margin-bottom:.5rem;display:flex}.field-label{color:var(--muted);font-size:.9rem}.field-note{color:var(--muted);margin:0;padding:.7rem 0}.form-warnings{gap:.35rem;display:grid}.form-warnings:empty{display:none}.field-warning{border-left:3px solid var(--warning);border-radius:var(--radius);background:var(--warning-soft);color:var(--text);margin:0;padding:.5rem .75rem;font-size:.9rem}@media (width>=600px){.form-warnings{grid-column:1/-1}}.item-stack{flex-direction:column;align-items:flex-start;gap:.15rem}.item-line{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.badge-regular{background:var(--accent-soft);color:var(--accent)}.badge-one_off{background:var(--warning-soft);color:var(--text)}.sub-panel{border-left:2px solid var(--border);flex-basis:100%;margin-top:.5rem;padding:.5rem 0 0 1rem}.sub-panel .group-title{margin-top:0}.month-picker{border:none;margin:0;padding:0}.month-grid{grid-template-columns:repeat(4,1fr);gap:.25rem .5rem;margin-top:.25rem;display:grid}.month-option{align-items:center;gap:.35rem;font-size:.9rem;display:inline-flex}.month-option input{width:auto}@media (width>=600px){.month-grid{grid-template-columns:repeat(6,1fr)}}.inline-form .form-span{flex-basis:100%}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:.75rem;display:grid}.form-grid>*,.form-grid .form-group>*{grid-column:1/-1}.form-grid>.half,.form-grid .form-group>.half{grid-column:auto}.form-grid .form-group{display:contents}.field{align-content:start;min-width:0}.field select,.field input:not([type=checkbox]){width:100%;min-width:0}input[type=date]{appearance:none;white-space:nowrap;width:100%;min-width:0;min-height:2.75rem;line-height:1.25;display:block}input[type=date]::-webkit-date-and-time-value{text-align:left;margin:0}@media (width>=600px){.form-grid>*,.form-grid .form-group>*{grid-column:auto}.form-grid>.span-2,.form-grid>.form-actions,.form-grid>.form-warnings,.form-grid>p,.form-grid .form-group>.field-note,.form-grid>.field-warning,.form-grid .month-picker{grid-column:1/-1}.form-grid .col-start{grid-column-start:1}}.calendar{gap:.75rem;display:grid}.calendar-summary p{margin:0}.calendar-summary .muted{font-size:.9rem}.calendar-nav{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.calendar-title{margin:0;font-size:1rem}.calendar-title:first-letter{text-transform:uppercase}.calendar-nav-button{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text)}.calendar-nav-button:disabled{opacity:.35}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem;display:grid}.calendar-weekday{color:var(--muted);text-align:center;font-size:.8rem}.calendar-day{aspect-ratio:1;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;min-width:0;max-width:3rem;color:var(--text);font-variant-numeric:tabular-nums;cursor:pointer;justify-content:center;justify-self:center;align-items:center;padding:0;display:flex}.calendar-day.is-weekend{background:var(--surface-2)}.calendar-day[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--accent-text);font-weight:600}.calendar-day:disabled{opacity:.35;cursor:default;border-style:dashed}.calendar-shortcuts{flex-wrap:wrap;gap:.5rem;display:flex}.calendar-import{justify-items:start;gap:.35rem;display:grid}.file-button{display:inline-block}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.calendar-import input:focus-visible+.file-button{outline:2px solid var(--accent);outline-offset:2px}.import-errors{margin:.35rem 0 0;padding-left:1.25rem}.calendar-form .form-actions{margin-top:1rem}.setting-row{align-items:center}.setting-label{flex-direction:column;flex:14rem;gap:.15rem;min-width:0;display:flex}.setting-controls{flex-wrap:wrap;flex:20rem;justify-content:flex-end;align-items:center;gap:.5rem;min-width:0;display:flex}.setting-field{flex:9rem;width:auto;min-width:0;max-width:14rem}select.setting-field,.setting-when{flex:0 auto;max-width:100%}.setting-field.setting-pair{flex:11rem;max-width:14rem}::placeholder{color:var(--muted);opacity:1}.setting-summary{text-align:right;overflow-wrap:anywhere;flex:12rem}.setting-summary.is-empty{color:var(--muted)}.setting-status{color:var(--success,#16a34a);white-space:nowrap;flex:none;font-size:.85rem}.setting-status:empty{display:none}.setting-error{text-align:right;flex-basis:100%}@media (width<=599px){.setting-controls{flex-basis:100%;justify-content:stretch}.setting-field,select.setting-field,.setting-when,.setting-field.setting-pair{flex:100%;max-width:none}.setting-summary,.setting-error{text-align:left}}.allocation-preview{justify-content:center;display:flex}.allocation-ring{width:9rem;height:9rem}.ring-track{fill:none;stroke:var(--surface-2);stroke-width:14px}.ring-segment{fill:none;stroke-width:14px;transition:stroke-dasharray .15s}.ring-total{fill:var(--text);font-size:14px;font-weight:600}.ring-total.is-off{fill:var(--danger)}.swatch{vertical-align:baseline;border-radius:2px;width:.7rem;height:.7rem;margin-right:.4rem;display:inline-block}@media (width>=900px){.layout{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);min-height:100dvh;display:grid}.sidebar{border-right:1px solid var(--border);background:var(--surface);flex-direction:column;gap:.15rem;height:100dvh;padding:1rem .75rem;display:flex;position:sticky;top:0;overflow-y:auto}.brand{margin:0 0 .75rem;padding:0 .75rem;font-size:1.15rem;font-weight:700}.sidebar-footer{border-top:1px solid var(--border);flex-direction:column;gap:.15rem;margin-top:auto;padding-top:.75rem;display:flex}.main{padding-bottom:0}.content{max-width:72rem;padding:1.5rem 2rem}.tabbar,.more-sheet{display:none}}
