:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5efe5;--panel:#fffcf7d6;--panel-border:#4934231f;--text:#000;--muted:#000;--accent:#000;--shadow:0 28px 80px #462c191f;--line:#55402d1f;--positive:#b7e1cd;--negative:#f4c7c3;--neutral:#000}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{color:var(--text);background:radial-gradient(circle at 0 0,#be92572e,#0000 28%),linear-gradient(160deg,#fbf7f2 0%,#efe3d2 100%);font-family:Cambria,Georgia,Times New Roman,serif}a{color:inherit}.shell{width:min(1500px,100% - 2rem);margin:0 auto;padding:2.5rem 0 5rem}.shell-month{padding-bottom:3rem}.hero{padding:2rem 0 2.5rem}.hero-compact{justify-content:space-between;align-items:flex-end;gap:1.5rem;display:flex}.eyebrow{color:var(--accent);letter-spacing:.18em;text-transform:uppercase;margin:0 0 .75rem;font-size:.8rem;font-weight:700}.hero h1{margin:0;font-size:clamp(2.4rem,5vw,4.5rem);line-height:.98}.lede{max-width:34rem;color:var(--muted);margin:0;font-size:1.1rem;line-height:1.7}.month-board,.summary-card,.budget-card,.month-nav{border:1px solid var(--panel-border);background:var(--panel);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:var(--shadow);border-radius:24px}.month-layout,.sidebar-layout{grid-template-columns:280px minmax(0,1fr);align-items:flex-start;gap:1rem;display:grid}.sidebar-layout.is-collapsed{grid-template-columns:minmax(0,1fr)}.sidebar-layout.is-collapsed .month-nav{position:static}.sidebar-layout.is-collapsed .month-nav__content{display:none}.sidebar-layout__content{min-width:0}.year-switcher,.detail-toolbar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.year-switcher__current,.year-switcher__link,.income-card{border:1px solid var(--panel-border);background:var(--panel);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:var(--shadow);border-radius:20px}.year-switcher__current{justify-items:center;padding:.85rem 1.2rem;display:grid}.year-switcher__current strong{font-size:1.6rem}.year-switcher__link,.inline-link{text-decoration:none}.year-switcher__link{text-align:center;min-width:92px;padding:1rem 1.15rem;font-weight:700}.inline-link{color:var(--accent);font-weight:700}.month-nav{padding:1rem;position:sticky;top:1rem}.month-nav__header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.25rem .2rem .85rem;display:flex}.month-nav__header span{color:var(--muted);font-size:.95rem}.month-nav nav{gap:.45rem;margin-top:.75rem;display:grid}.sidebar-toggle{border:1px solid var(--panel-border);color:var(--text);font:inherit;cursor:pointer;background:#ffffff8c;border-radius:999px;padding:.55rem .9rem}.month-nav__link{border:1px solid #0000;border-radius:16px;flex-direction:column;gap:.15rem;padding:.8rem .9rem;text-decoration:none;transition:border-color .16s,background-color .16s,transform .16s;display:flex}.month-nav__link span{font-weight:700}.month-nav__link small{color:var(--muted);font-size:.85rem}.month-nav__link:hover{border-color:var(--panel-border);background:#ffffff73;transform:translateY(-1px)}.month-nav__link.is-active{background:#0000000f;border-color:#0003}.month-board{padding:1.25rem}.setup-notice,.entry-form{border:1px solid var(--panel-border);box-shadow:var(--shadow);background:#ffffff9e;border-radius:22px}.setup-notice{margin-bottom:1rem;padding:1rem 1.1rem}.setup-notice h2{margin:0 0 .4rem;font-size:1.2rem}.setup-notice p{margin:0}.setup-notice__code{background:#0000000d;border-radius:16px;margin-top:.8rem;padding:.85rem;display:block;overflow-x:auto}.entry-form-grid,.entry-form-stack{gap:1rem;margin-bottom:1rem;display:grid}.entry-form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.entry-form-grid--compact{grid-template-columns:minmax(0,25rem)}.entry-form-grid--allocated-funds{grid-template-columns:1fr}.entry-form-grid--allocated-funds .entry-form-stack{grid-template-columns:repeat(2,minmax(0,25rem))}.modal-launcher{min-width:0}.modal-trigger,.entry-form button,.modal-close{font:inherit}.modal-trigger,.modal-close{cursor:pointer;color:inherit;background:#00000014;border:1px solid #0000002e;border-radius:999px;justify-content:center;align-items:center;padding:.8rem 1rem;font-weight:700;text-decoration:none;display:inline-flex}.modal-trigger{width:100%}.modal-trigger--compact{width:auto;min-width:2.5rem;padding:.45rem .8rem}.modal-backdrop{z-index:1000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#21191166;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal-panel{border:1px solid var(--panel-border);width:min(100%,34rem);max-height:min(90vh,60rem);box-shadow:var(--shadow);background:#fffcf7f7;border-radius:28px;overflow:auto}.modal-panel--wide{width:min(100%,52rem)}.modal-panel__header{justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1rem 0;display:flex}.modal-panel__title{margin:0;font-size:1.1rem}.modal-close{padding:.6rem .9rem}.modal-panel .entry-form{box-shadow:none;background:0 0;border:0;border-radius:0}.entry-form{gap:.85rem;padding:1rem;display:grid}.entry-form__heading h3{margin:0;font-size:1rem}.entry-form label{gap:.35rem;font-size:.9rem;font-weight:700;display:grid}.entry-form input,.entry-form select,.entry-form textarea,.entry-form button{font:inherit}.entry-form input,.entry-form select,.entry-form textarea{border:1px solid var(--panel-border);background:#ffffffe6;border-radius:14px;width:100%;padding:.75rem .85rem}.entry-form input[type=checkbox]{width:auto;padding:0}.entry-form button{cursor:pointer;background:#00000014;border:1px solid #0000002e;border-radius:999px;padding:.8rem 1rem;font-weight:700}.entry-form button:disabled{cursor:wait;opacity:.7}.entry-form__actions{flex-wrap:nowrap;gap:.75rem;display:flex}.entry-form__actions>*{flex:1}.entry-form__danger{color:#8c1d18}.checkbox-field{align-items:center;gap:.65rem;display:flex}.checkbox-field span{font-size:.95rem;font-weight:700}.split-entry-section{border:1px solid var(--panel-border);background:#ffffff8c;border-radius:14px;gap:.65rem;padding:.8rem;display:grid}.split-entry-section__head{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.split-entry-row{grid-template-columns:repeat(5,minmax(0,1fr));align-items:end;gap:.55rem;display:grid}.split-entry-row__checkbox{align-self:center}.split-entry-row__remove{padding-inline:.8rem}.button-secondary{background:#ffffffad!important}.form-error{color:#8c1d18;margin:0;font-size:.9rem}.month-header{justify-content:space-between;align-items:flex-end;gap:1rem;padding-bottom:1rem;display:flex}.month-header__actions{flex-wrap:wrap;justify-content:flex-end;align-items:flex-end;gap:.85rem;display:flex}.form-status{color:var(--muted);margin:0;font-size:.9rem}.month-label{color:var(--accent);letter-spacing:.18em;text-transform:uppercase;margin:0 0 .3rem;font-size:.75rem;font-weight:700}.month-header h2{margin:0;font-size:1.8rem}.month-header p:last-child{color:var(--muted);margin:0}.page-action-link{min-height:2.75rem;color:var(--text);background:#ffffffb8;border:1px solid #0000002e;border-radius:999px;justify-content:center;align-items:center;padding:.7rem 1rem;font-weight:700;text-decoration:none;display:inline-flex}.budget-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.budget-card{overflow:hidden}.budget-card--full-height{grid-row:span 2}.budget-card__header{border-bottom:1px solid var(--line);padding:.9rem 1rem}.budget-card__actions{justify-content:flex-end;display:flex}.budget-card__title{justify-content:space-between;align-items:center;gap:1rem;display:flex}.budget-card__header h3{margin:0;font-size:1rem}.budget-table{padding:.75rem 1rem 0}.budget-table__head,.budget-table__row{grid-template-columns:.8fr 1.35fr .8fr .8fr;align-items:center;gap:.75rem;display:grid}.budget-table__head{border-bottom:1px solid var(--line);letter-spacing:.04em;text-transform:uppercase;padding-bottom:.5rem;font-size:.76rem;font-weight:700}.budget-table__body{display:grid}.budget-table__row{border-bottom:1px solid var(--line);min-height:2.5rem;color:var(--muted);font-size:.94rem}.table-empty-state{color:var(--muted);padding:.9rem 0}.allocated-rows .allocated-row--body{grid-template-columns:none;justify-self:normal;padding:.7rem 1rem}.budget-table__row.has-notes,.budget-table__head.has-notes{grid-template-columns:.65fr 1.1fr .75fr .95fr .8fr}.budget-table__head.has-income-review,.budget-table__row.has-income-review{grid-template-columns:.9fr .8fr 1.35fr .85fr .8fr}.budget-table__row.is-needs-review,.allocated-row.is-needs-review{background:#ffda79}.budget-table__head>:last-child,.budget-table__row>:last-child,.allocated-row>:last-child{justify-self:end}.totals{gap:.55rem;margin:0;padding:1rem;display:grid}.totals div,.summary-card dl div{justify-content:space-between;gap:1rem;padding:3px;display:flex}.totals dt,.summary-card dt{font-weight:700}.totals dd,.summary-card dd{font-variant-numeric:tabular-nums;margin:0}.is-positive dd,.tone-positive{background-color:var(--positive)}.tone-negative{background-color:var(--negative)}.tone-neutral{background-color:var(--positive)}.summary-grid{grid-template-columns:1.3fr 1fr;gap:1rem;margin-top:1rem;display:grid}.summary-card{padding:1rem 1.1rem}.summary-card__heading{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.8rem;display:flex}.summary-card__actions{flex-wrap:nowrap;align-items:center;gap:.75rem;display:flex}.summary-card h3{margin:0;font-size:1rem}.summary-card dl{gap:.6rem;margin:0;display:grid}.tone-sand{background:#e8d4bbd1}.tone-rose{background:#e4c2c2d1}.tone-butter{background:#ebe1b8d1}.tone-lavender{background:#d5cde8d1}.tone-sky{background:#c9ddecd1}.tone-sage{background:#d1e1c8d1}.allocated-grid{scroll-snap-type:x proximity;gap:1rem;padding-bottom:.35rem;display:flex;overflow-x:auto}.allocated-grid::-webkit-scrollbar{height:.7rem}.allocated-grid::-webkit-scrollbar-thumb{background:#8c5a2b47;border-radius:999px}.allocated-summary-modal{gap:1rem;padding:0 1rem 1rem;display:grid}.allocated-month-totals{border:1px solid var(--panel-border);box-shadow:var(--shadow);background:#f4efe5eb;border-radius:22px;margin-top:1rem;padding:1rem 1.1rem}.allocated-month-totals__grid{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.75rem;display:grid}.allocated-month-totals--modal{margin-top:0}.allocated-month-total{border:1px solid var(--line);background:#ffffff80;border-radius:16px;align-content:start;gap:.35rem;min-height:5.25rem;padding:.8rem .9rem;display:grid}.allocated-month-total span{color:var(--muted);font-size:.9rem;line-height:1.2}.allocated-month-total__label{color:var(--text);font-weight:600}.allocated-month-total strong{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:1rem;line-height:1.2}.allocated-month-total__row{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.allocated-card,.allocated-total-card{border:1px solid var(--panel-border);box-shadow:var(--shadow);background:#f4efe5eb;border-radius:22px}.allocated-card{scroll-snap-align:start;flex:0 0 min(24rem,100vw - 5rem);min-width:min(24rem,100vw - 5rem);overflow:hidden}.allocated-card__header{border-bottom:1px solid var(--line);background:#8c5a2b14;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;display:flex}.allocated-card__actions{justify-content:flex-end;display:flex}.allocated-card__header h3{margin:0;font-size:.98rem}.allocated-stats{gap:.45rem;margin:0;padding:.8rem 1rem;display:grid}.allocated-stats div,.allocated-total-card div{justify-content:space-between;gap:1rem;padding:3px;display:flex}.allocated-stats dt{font-weight:700}.allocated-stats dd{font-variant-numeric:tabular-nums;margin:0}.allocated-rows{border-top:1px solid var(--line);display:grid}.allocated-row{border-bottom:1px solid var(--line);color:var(--muted);grid-template-columns:minmax(0,.9fr) minmax(0,1.8fr) minmax(max-content,.9fr) auto;align-items:center;gap:.6rem;padding:.7rem 1rem;font-size:.92rem;display:grid}.allocated-row--head{color:var(--text);letter-spacing:.04em;text-transform:uppercase;background:#8c5a2b0f;font-size:.78rem}.allocated-total-card{margin-top:1rem;padding:1rem 1.1rem}.allocated-total-card--modal{margin-top:0}.allocated-total-card--modal div{grid-template-columns:minmax(0,1fr) auto;align-items:baseline;display:grid}.allocated-total-card strong{font-size:1.2rem}.expense-averages{border:1px solid var(--panel-border);box-shadow:var(--shadow);background:#f4efe5eb;border-radius:22px;overflow-x:auto}.expense-averages__table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:1650px}.expense-averages__table th,.expense-averages__table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);vertical-align:top;padding:.9rem .65rem}.expense-averages__table thead th{color:var(--text);text-align:center;white-space:normal;overflow-wrap:anywhere;background:#ffffff61;font-size:.84rem;font-weight:700;line-height:1.25}.expense-averages__table thead th:first-child{background:#ffffff52;width:175px}.expense-averages__table tbody th{text-align:left;background:#ffffff52;font-weight:700}.expense-averages__table td{font-variant-numeric:tabular-nums;text-align:right}.expense-averages__summary-row th,.expense-averages__summary-row td{font-weight:700}.expense-summary{border:1px solid var(--panel-border);box-shadow:var(--shadow);background:#f4efe5eb;border-radius:22px;margin-top:1rem;padding:1rem 1.1rem}.expense-summary__grid{gap:.75rem;display:grid}.expense-summary__labels,.expense-summary__row{grid-template-columns:160px repeat(6,minmax(0,1fr));align-items:center;gap:.75rem;display:grid}.expense-summary__labels{color:var(--muted);font-size:.85rem}.expense-summary__row{border-top:1px solid var(--line);padding:.75rem 0}.expense-summary__row strong,.expense-summary__row span{font-variant-numeric:tabular-nums}.income-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.income-card{padding:1.15rem}.income-card__header{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:.8rem;display:flex}.income-card__header h2{margin:0;font-size:1.4rem}.income-table{padding:0}.overview-section+.overview-section{margin-top:1rem}.overview-section__header{margin-bottom:.85rem}.overview-section__header--actions{justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.overview-section__header h3{margin:0;font-size:1.15rem}.overview-scroll{border:1px solid var(--panel-border);box-shadow:var(--shadow);background:#f4efe5eb;border-radius:22px;overflow-x:auto}.overview-table{border-collapse:collapse;table-layout:auto;width:max-content;min-width:100%}.overview-table th,.overview-table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);vertical-align:top;padding:.8rem .6rem}.overview-table thead th{text-align:center;background:#ffffff61;font-size:.82rem}.overview-table thead th:first-child,.overview-table tbody th{z-index:1;background:#ffffffb8;position:sticky;left:0}.overview-table thead th:first-child{z-index:2;width:170px}.overview-table tbody th{text-align:left;font-size:.88rem}.overview-table td{text-align:right;font-variant-numeric:tabular-nums}.overview-table__column-head{gap:.6rem;display:grid}.overview-table__column-head strong{line-height:1.35}.overview-table__settings-row th,.overview-table__settings-row td{background:#8c5a2b0f}.overview-settings-button{justify-self:center;width:auto}.overview-cell-button{width:100%;min-width:0;box-shadow:none;text-align:right;background:0 0;border:1px dashed #0000;border-radius:12px;padding:.3rem .45rem;font-weight:600}.overview-cell-button:hover{border-color:var(--panel-border);background:#ffffff73}.overview-settings-page{gap:1rem;display:grid}.overview-settings-page__toolbar{border:1px solid var(--panel-border);box-shadow:var(--shadow);background:#ffffff9e;border-radius:22px;justify-content:space-between;align-items:flex-end;gap:1rem;padding:1rem;display:flex}.overview-settings-page__toolbar h3{margin:0;font-size:1.2rem}.overview-settings-page__toolbar p:last-child{max-width:42rem;color:var(--muted);margin:0}.overview-settings-section+.overview-settings-section{margin-top:.25rem}.overview-settings-table tbody td,.overview-settings-table thead th{text-align:left}.overview-settings-table thead th:last-child,.overview-settings-table tbody td:last-child{min-width:140px}.overview-settings-table td{white-space:normal}.overview-settings-table__actions{flex-wrap:nowrap;gap:.5rem;display:flex}.overview-settings-table__actions .modal-launcher{display:contents}.accounts-table thead th,.accounts-table tbody td{text-align:left;vertical-align:top}.accounts-table td:last-child{min-width:96px}.account-inline-input{width:100%;min-width:7.5rem}.account-owner-chip{border-radius:10px;padding:.35rem .55rem;font-weight:700;display:inline-block}.accounts-months-value{text-align:center;font-variant-numeric:tabular-nums;border-radius:10px;min-width:4.6rem;padding:.2rem .45rem;display:inline-block}.rich-text-preview{min-width:10rem;line-height:1.35;display:block}.rich-text-empty{color:var(--muted)}.entry-form__hint{color:#21221eb8;margin:0;font-size:.92rem}.import-summary-card{margin-top:1rem}.import-summary-card__meta{color:#21221ec2;margin:0}.import-summary-card__section+.import-summary-card__section{margin-top:1rem}.import-summary-card__list{margin:.6rem 0 0;padding-left:1.2rem}.import-summary-card__list li+li{margin-top:.45rem}.entry-description{text-overflow:ellipsis;overflow:hidden}@media (max-width:1100px){.month-layout,.sidebar-layout,.entry-form-grid,.budget-grid,.summary-grid,.allocated-month-totals__grid,.allocated-grid,.expense-summary__labels,.expense-summary__row,.income-detail-grid{grid-template-columns:1fr}.month-nav{position:static}.hero-compact,.month-header,.month-nav__header{flex-direction:column;align-items:flex-start}.split-entry-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:800px){.shell{padding-top:3rem}.year-switcher,.detail-toolbar,.summary-card__heading,.overview-settings-page__toolbar,.overview-section__header--actions,.month-header__actions,.income-card__header,.budget-card__title{flex-direction:column;align-items:flex-start}.overview-table thead th:first-child,.overview-table tbody th{position:static}.modal-panel__header{flex-direction:column;align-items:flex-start}.budget-table__head,.budget-table__row,.budget-table__row.has-notes,.budget-table__head.has-notes,.budget-table__head.has-income-review,.budget-table__row.has-income-review,.allocated-row{grid-template-columns:1fr;padding:.5rem 0}.allocated-card{flex-basis:min(20rem,100vw - 4.5rem);min-width:min(20rem,100vw - 4.5rem)}.split-entry-row{grid-template-columns:1fr}}
