*{box-sizing:border-box}html,body,#root{height:100%;overflow:hidden}body{background:var(--paper);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:Space Grotesk,system-ui,-apple-system,sans-serif}button{font:inherit;color:inherit;cursor:pointer}.app{flex-direction:column;height:100%;display:flex}.header{background:var(--app-bg1);height:50px;color:var(--on-ink);flex:none;justify-content:space-between;align-items:center;padding:0 14px;display:flex;position:relative}.header h1{letter-spacing:.2px;pointer-events:none;margin:0;font-family:Fraunces,Georgia,serif;font-size:18px;position:absolute;left:50%;transform:translate(-50%)}.header .left,.header .right{align-items:center;gap:6px;display:flex}.header button,.header select{color:var(--on-ink);background:#ffffff14;border:none;border-radius:999px;padding:6px 12px;font-size:12.5px}.icon-button{justify-content:center;align-items:center;width:36px;height:36px;font-size:24px;line-height:1;display:inline-flex;padding:0!important}.header button:hover,.header select:hover{background:#ffffff29}.budget-name{color:inherit;text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-size:12.5px;overflow:hidden}.zoom{align-items:center;gap:4px;margin-right:8px;display:inline-flex}.zoom button{text-align:center;width:26px;padding:5px 0}.zoom span{opacity:.7;text-align:center;min-width:34px;font-size:11px}.tabs{background:var(--paper-hi);border-top:1px solid var(--paper-line);flex:none;justify-content:center;gap:4px;padding:8px 0 10px;display:flex}.tabs button{letter-spacing:.5px;text-transform:uppercase;color:var(--text-faint);background:0 0;border:none;border-radius:8px;padding:7px 22px;font-size:11px;font-weight:700}.tabs button[aria-selected=true]{color:var(--brass-deep);background:var(--seg-track)}.hero{flex-wrap:wrap;flex:none;justify-content:center;align-items:center;gap:34px;padding-bottom:12px;display:flex}.hero-figures{flex-wrap:wrap;justify-content:center;gap:34px;display:flex}.gauge-caption{letter-spacing:.4px;text-transform:uppercase;color:var(--text-soft);text-align:center;margin-top:2px;font-size:10px}.header .left .menu{left:0;right:auto}.menu-wrap{display:inline-block;position:relative}.menu{z-index:20;border:1px solid var(--paper-line);background:var(--paper-hi);min-width:230px;color:var(--text);border-radius:10px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 28px #00000038}.menu-up{top:auto;bottom:calc(100% + 10px)}.menu button{text-align:left;width:100%;color:var(--text);background:0 0;border:none;border-radius:7px;padding:9px 11px;font-size:14px;display:block}.menu button:hover:not(:disabled){background:var(--seg-track)}.menu button:disabled{color:var(--text-faint);cursor:default}.menu .menu-note{color:var(--text-faint);letter-spacing:.3px;text-transform:uppercase;padding:6px 10px 4px;font-size:10.5px}.page{flex-direction:column;flex:auto;min-height:0;padding:12px 16px 0;display:flex}.toolbar{flex:none;grid-template-columns:1fr auto 1fr;align-items:center;gap:22px;padding-bottom:10px;display:grid}.toolbar .hint{text-align:right;justify-self:end}.toolbar-centre{justify-content:center;display:flex}.segmented{background:var(--seg-track);border-radius:10px;gap:3px;padding:3px;display:inline-flex}.segmented button{letter-spacing:.2px;color:var(--text-soft);white-space:nowrap;background:0 0;border:none;border-radius:8px;padding:9px 28px;font-size:13px;font-weight:600}.segmented .menu-wrap{display:flex}.segmented .menu{min-width:200px}.segmented button:hover[aria-pressed=false]{color:var(--text)}.segmented button[aria-pressed=true]{background:var(--paper-hi);color:var(--text);box-shadow:0 1px 2px #0000001f}.hint{color:var(--text-soft);font-size:13px}.figure{flex-direction:column;display:inline-flex}.figure strong{font-family:Fraunces,Georgia,serif;font-size:19px;font-weight:700}.grid-wrap{scrollbar-width:thin;scrollbar-color:var(--text-faint) transparent;border:1px solid var(--paper-line);background:var(--paper-hi);border-bottom:none;border-radius:10px 10px 0 0;flex:auto;min-height:0;overflow:auto}.grid-wrap::-webkit-scrollbar{width:13px;height:13px}.grid-wrap::-webkit-scrollbar-track{background:var(--paper)}.grid-wrap::-webkit-scrollbar-thumb{background:var(--text-faint);border:3px solid var(--paper);border-radius:999px}.grid-wrap::-webkit-scrollbar-thumb:hover{background:var(--text-soft)}.grid-wrap::-webkit-scrollbar-corner{background:var(--paper)}table.grid{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:var(--grid-font,12.5px)}table.grid th,table.grid td{white-space:nowrap;border-bottom:1px solid var(--paper-line);font-variant-numeric:tabular-nums;text-align:right;padding:.4em .72em}table.grid thead tr:first-child th{z-index:2;height:var(--head-row,25px);background:var(--paper-hi);color:var(--text-soft);letter-spacing:.4px;text-transform:uppercase;text-align:center;border-bottom:none;padding:0 .72em;font-size:11px;font-weight:700;position:sticky;top:0}table.grid thead tr:nth-child(2) th{top:var(--head-row,25px);z-index:2;background:var(--paper-hi);color:var(--text-faint);letter-spacing:.3px;text-transform:uppercase;border-bottom:1px solid var(--text-faint);font-size:9.5px;font-weight:700;position:sticky}table.grid .name{z-index:1;background:var(--paper-hi);text-align:left;border-right:1px solid var(--text-faint);width:13.5em;min-width:13.5em;max-width:13.5em;position:sticky;left:0;overflow:hidden}table.grid td.name .name-inner{align-items:center;min-width:0;display:flex}table.grid td.name .disclosure{flex:none}table.grid thead .name.name{z-index:4;background:var(--paper-hi);text-align:left}.grid-wrap{align-items:flex-start;display:flex}.grid-wrap>table.grid{flex:none}.grid-tail{flex:none;align-self:stretch}table.grid .month-start{border-left:1px solid var(--paper-line)}table.grid tbody tr:hover td:not(.name){background:var(--tag-manual-bg)}table.grid tbody tr:hover .name{background:var(--paper-hi);box-shadow:inset 0 0 0 999px var(--tag-manual-bg)}.row-section .name{letter-spacing:.5px;text-transform:uppercase;color:var(--text-soft);font-family:Fraunces,Georgia,serif;font-size:12px}.row-section td{border-bottom:1px solid var(--text-faint);padding-top:13px}.row-parent .name{font-weight:600}.row-child .name{color:var(--text);padding-left:30px}.row-total td{border-top:1px solid var(--text);border-bottom:none;font-weight:700}.disclosure{color:var(--text-soft);text-align:left;background:0 0;border:none;width:16px;padding:0 5px 0 0;font-size:9px;display:inline-block}.this-month{background:var(--gauge-elapsed)}.muted{color:var(--text-faint)}.over{color:var(--rust-deep)}.under{color:var(--good)}.scrim{z-index:40;background:#00000073;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.dialog{border:1px solid var(--paper-line);background:var(--paper-hi);border-radius:16px;width:min(460px,100%);max-height:82vh;padding:20px;overflow:auto;box-shadow:0 20px 50px #00000059}.dialog h2{margin:0 0 6px;font-family:Fraunces,Georgia,serif;font-size:19px}.dialog p{color:var(--text-soft);margin:0 0 14px;font-size:13px;line-height:1.45}.dialog input{width:100%;font:inherit;color:var(--text);background:var(--paper);border:1px solid var(--paper-line);border-radius:9px;padding:10px 12px;font-size:15px}.dialog input:focus{outline:2px solid var(--brass);outline-offset:1px}.dialog-list{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.dialog-list button{text-align:left;border:1px solid var(--paper-line);width:100%;color:var(--text);background:0 0;border-radius:11px;flex-direction:column;align-items:flex-start;gap:2px;padding:11px 13px;font-size:14px;display:flex}.dialog-list button:hover:not(:disabled){border-color:var(--text-faint);background:var(--seg-track)}.dialog-list small{color:var(--text-faint);font-size:11.5px}.dialog-list button.destructive{color:var(--rust-deep)}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.dialog-actions button{border:1px solid var(--paper-line);color:var(--text-soft);background:0 0;border-radius:9px;padding:8px 16px;font-size:13.5px;font-weight:600}.dialog-actions button:hover:not(:disabled){color:var(--text)}.primary{background:var(--brass);border-color:var(--brass);color:var(--paper)}.primary:disabled{opacity:.5;cursor:default}.dialog-actions .primary{background:var(--brass);border-color:var(--brass);color:var(--paper)}.dialog-actions .primary.destructive{background:var(--rust);border-color:var(--rust)}.dialog-actions button:disabled{opacity:.5;cursor:default}.dialog-rows{flex-direction:column;max-height:46vh;display:flex;overflow:auto}.dialog-row{border-bottom:1px solid var(--paper-line);justify-content:space-between;align-items:baseline;gap:14px;padding:8px 2px;font-size:13.5px;display:flex}.dialog-row span{flex-direction:column;display:flex}.dialog-row small{color:var(--text-faint);font-size:11px}.dialog-row strong{font-variant-numeric:tabular-nums;white-space:nowrap}.dialog-row strong.negative{color:var(--rust-deep)}.row-open{font:inherit;color:inherit;text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;flex:auto;min-width:0;padding:0;overflow:hidden}.row-open:hover{text-underline-offset:2px;text-decoration:underline}.chart-wrap{flex-direction:column;flex:auto;align-items:center;gap:10px;min-height:0;padding-top:4px;display:flex;overflow:auto}.chart{width:min(760px,100%)}.chart svg{width:100%;height:auto;display:block}.chart-labels{margin-top:2px;display:flex}.chart-labels button{color:var(--text-soft);background:0 0;border:none;flex:1;padding:3px 0;font-size:11px}.chart-labels button.selected{color:var(--text);font-weight:700}.chart-readout{border-top:1px solid var(--paper-line);min-height:28px;color:var(--text-soft);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:14px;margin-top:8px;padding-top:8px;font-size:12.5px;display:flex}.chart-readout strong{color:var(--text);font-size:13px}.chart-readout .strong{color:var(--text);font-weight:600}.chart-readout .running{color:var(--brass-deep)}.legend{color:var(--text-soft);flex-wrap:wrap;justify-content:center;gap:18px;font-size:11.5px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.legend i{border:1px solid #0000;border-radius:999px;width:9px;height:9px}.goal-bar{background:var(--seg-track);cursor:pointer;border-radius:999px;flex:none;height:26px;margin-bottom:12px;position:relative;overflow:hidden}.goal-bar div{background:var(--brass);height:100%}.goal-bar span{letter-spacing:.3px;color:var(--text);justify-content:center;align-items:center;font-size:11.5px;font-weight:700;display:flex;position:absolute;inset:0}.link-button{border:1px solid var(--paper-line);color:var(--text-soft);background:0 0;border-radius:8px;padding:6px 14px;font-size:12.5px;font-weight:600}.link-button:hover{color:var(--text);border-color:var(--text-faint)}.row-add{float:right;color:var(--text-faint);background:0 0;border:none;padding:0 2px;font-size:15px;line-height:1}.row-add:hover{color:var(--brass-deep)}.year-chart{flex-direction:column;flex:none;align-items:center;gap:8px;padding-bottom:12px;display:flex}.wizard{background:var(--paper);height:100%;color:var(--text);flex-direction:column;display:flex}.wizard-inner{width:min(560px,100%);margin:0 auto}.wizard-progress{flex:none;align-items:center;gap:6px;width:min(604px,100%);margin:0 auto;padding:18px 22px 0;display:flex}.wizard-dot{background:var(--paper-line);border-radius:2px;flex:1;height:4px}.wizard-dot.done{background:var(--brass-deep)}.wizard-back,.wizard-cancel{white-space:nowrap;background:0 0;border:none;padding:0}.wizard-back{color:var(--text-soft);padding-right:10px;font-size:13px;font-weight:600}.wizard-cancel{color:var(--text-faint);padding-left:10px;font-size:12.5px;font-weight:600}.wizard-back:hover,.wizard-cancel:hover{color:var(--text)}.wizard-scroll{scrollbar-width:thin;scrollbar-color:var(--text-faint) var(--paper-line);flex:auto;min-height:0;padding:0 22px 40px;overflow-y:scroll}.wizard-scroll::-webkit-scrollbar{width:13px}.wizard-scroll::-webkit-scrollbar-track{background:var(--paper-line);border-radius:999px}.wizard-scroll::-webkit-scrollbar-thumb{background:var(--text-faint);border:3px solid var(--paper-line);border-radius:999px}.wizard-scroll::-webkit-scrollbar-thumb:hover{background:var(--text-soft)}.wizard-footer{box-shadow:0 -8px 16px -8px #0000004d}.wizard-title{margin:14px 0 0;font-family:Fraunces,Georgia,serif;font-size:24px;font-weight:700}.wizard-subtitle{color:var(--text-soft);margin:8px 0 0;font-size:13.5px;line-height:19px}.wizard-body{margin-top:22px}.wizard-footer{border-top:1px solid var(--paper-line);background:var(--paper);flex:none;padding:22px}.wizard-primary{background:var(--brass);width:100%;color:var(--paper);border:none;border-radius:14px;padding:15px;font-size:14.5px;font-weight:700;display:block}.wizard-primary:disabled{background:var(--paper-line);color:var(--paper);cursor:default}.wizard-primary:not(:disabled):hover{filter:brightness(1.06)}.skip-link{width:100%;color:var(--text-faint);background:0 0;border:none;padding:14px 0 0;font-size:12.5px;font-weight:600;display:block}.skip-link:hover{color:var(--text-soft)}.field-label{letter-spacing:1.5px;text-transform:uppercase;color:var(--text-soft);margin:0;font-size:11px;font-weight:700}.field-hint{color:var(--text-faint);margin:6px 0 0;font-size:11.5px;line-height:16px}.mt-16{margin-top:16px}.mt-26{margin-top:26px}.mt-28{margin-top:28px}.chip-row{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.chip{border:1px solid var(--paper-line);color:var(--text-soft);background:0 0;border-radius:20px;padding:9px 16px;font-size:13px;font-weight:600}.chip-sm{text-align:center;border-radius:14px;min-width:44px;padding:6px 10px;font-size:11.5px}.chip:hover{border-color:var(--text-faint);color:var(--text)}.chip.active,.chip.active:hover{background:var(--brass);border-color:var(--brass);color:var(--paper)}.start-row{align-items:flex-start;gap:10px;margin-top:12px;display:flex}.start-row .chip-row{flex:1;gap:6px;margin-top:0}.start-col{margin-top:10px}.year-input{width:92px;height:40px;font:inherit;text-align:center;color:var(--text);background:var(--paper-hi);border:1px solid var(--paper-line);border-radius:8px;margin-top:10px;padding:0 10px;font-size:15px}.start-row .year-input{border-radius:10px;width:72px;height:34px;margin-top:0;font-size:14px}.money{border:1px solid var(--paper-line);background:var(--paper-hi);align-items:center;gap:2px;display:flex}.money input{min-width:0;font:inherit;color:var(--text);text-align:right;background:0 0;border:none;outline:none;flex:1}.money input::placeholder,.money-sign{color:var(--text-faint)}.money-lg{border-radius:14px;margin-top:10px;padding:0 16px}.money-lg .money-sign{font-size:22px}.money-lg input{text-align:left;padding:14px 0 14px 6px;font-size:28px}.money-md{border-radius:10px;flex:0 0 96px;width:96px;padding:0 10px}.money-md .money-sign{font-size:13px}.money-md input{padding:8px 0;font-size:14px}.money-sm{border-radius:10px;flex:0 0 88px;width:88px;padding:0 10px}.money-sm .money-sign{font-size:13px}.money-sm input{padding:8px 0;font-size:14px}.money.disabled{background:0 0}.money.disabled input,.money.disabled .money-sign{color:var(--text-faint)}.money:focus-within{border-color:var(--brass)}.step-list{flex-direction:column;gap:16px;margin:0;padding:0;list-style:none;display:flex}.step-list li{align-items:center;gap:14px;display:flex}.step-badge{background:var(--ink-soft);width:28px;height:28px;color:var(--posband-text);border-radius:14px;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:inline-flex}.step-text{font-size:15px}.stream{margin-top:26px}.stream-preview{color:var(--brass-deep);margin:18px 0 0;font-size:13px;font-weight:600}.stream-total{text-align:right;color:var(--brass-deep);margin:22px 0 0;font-size:15px;font-weight:600}.drag-item.dragging{opacity:.55}.cat-block{border-top:1px solid var(--row-line);padding-bottom:4px}.cat-row{align-items:center;gap:10px;padding:12px 0;display:flex}.drag-handle{cursor:grab;color:var(--text-faint);-webkit-user-select:none;user-select:none;padding-right:2px;font-size:15px}.drag-handle:active{cursor:grabbing}.cat-name{font:inherit;color:var(--text);text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;flex:1;align-items:center;gap:8px;padding:0;font-size:14.5px;font-weight:500;display:flex;overflow:hidden}.chev{border-right:1.6px solid var(--text-faint);border-bottom:1.6px solid var(--text-faint);flex:none;width:8px;height:8px;transform:rotate(-45deg)}.chev.open{transform:rotate(45deg)}.row-icon{color:var(--text-faint);opacity:0;background:0 0;border:none;flex:none;padding:2px 4px;font-size:13px;line-height:1}.cat-row:hover .row-icon,.sub-row:hover .row-icon,.row-icon:focus-visible{opacity:1}.row-icon:hover{color:var(--rust-deep)}.sub-row{border-top:1px dashed var(--sub-line);align-items:center;gap:8px;padding:9px 0 9px 20px;display:flex}.sub-name{color:var(--text-soft);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;overflow:hidden}.branch-total.empty{color:var(--text-faint)}.branch-total{text-align:right;width:96px;color:var(--text-soft);font-variant-numeric:tabular-nums;flex:0 0 96px;padding:8px 10px;font-size:14px}.freq-wrap{flex-direction:column;align-items:flex-end;margin:-4px 0 6px;display:flex}.freq-badge{white-space:pre;color:var(--brass-deep);background:0 0;border:none;padding:3px 4px;font-size:11px;font-weight:600}.freq-panel{flex-direction:column;gap:8px;width:100%;margin-top:6px;display:flex}.freq-panel .chip-row{gap:6px;margin-top:0}.month-block{flex-direction:column;gap:6px;display:flex}.month-label{letter-spacing:1px;text-transform:uppercase;color:var(--text-faint);margin:0;font-size:10px;font-weight:600}.add-sub{color:var(--brass-deep);background:0 0;border:none;padding:10px 0 10px 20px;font-size:12.5px;font-weight:600}.add-cat{border:1px dashed var(--paper-line);width:100%;color:var(--brass-deep);background:0 0;border-radius:14px;margin-top:10px;padding:14px;font-size:13.5px;font-weight:600;display:block}.add-cat:hover,.add-class:hover{border-color:var(--brass)}.hidden-block{margin-top:18px}.hidden-label{letter-spacing:1px;color:var(--text-faint);margin:0 0 6px;font-size:10.5px;font-weight:600}.hidden-row{color:var(--text-faint);justify-content:space-between;align-items:center;padding:7px 0;font-size:12.5px;display:flex}.hidden-row button{color:var(--brass-deep);background:0 0;border:none;padding:0;font-size:12px;font-weight:600}.cat-total{color:var(--text-soft);justify-content:space-between;margin-bottom:14px;font-size:12px;font-weight:600;display:flex}.cat-total strong{color:var(--text);font-variant-numeric:tabular-nums;font-size:14px}.goal-row{gap:10px;margin-top:10px;display:flex}.goal-row .money-md{border-radius:12px;flex:auto;width:auto;padding:0 12px}.goal-row .money-md input{text-align:left;padding:12px 0;font-size:16px}.goal-row .money-md .money-sign{font-size:15px}.goal-row .year-input{border-radius:12px;width:84px;height:auto;margin-top:0;font-size:16px}.class-block{border:1px solid var(--paper-line);border-radius:14px;margin-top:12px;overflow:hidden}.class-header{justify-content:space-between;align-items:center;padding:14px;display:flex}.class-name{font-size:14.5px;font-weight:600}.class-tag{color:var(--text-faint);font-size:10.5px;font-weight:600}.asset-row{border-top:1px dashed var(--sub-line);align-items:center;gap:8px;padding:8px 14px;display:flex}.asset-row input{font:inherit;color:var(--text);background:0 0;outline:none}.asset-row input::placeholder{color:var(--text-faint)}.asset-name{border:none;flex:1;min-width:0;padding:4px 0;font-size:13px}.asset-qty,.asset-price{border:1px solid var(--paper-line);text-align:right;border-radius:8px;padding:6px;font-size:12.5px}.asset-qty{width:52px}.asset-price{width:72px}.asset-remove{color:var(--rust-deep);background:0 0;border:none;padding:0 2px;font-size:16px;line-height:1}.add-asset{color:var(--brass-deep);background:0 0;border:none;padding:10px 14px;font-size:12.5px;font-weight:600}.add-class{border:1px dashed var(--paper-line);width:100%;color:var(--brass-deep);background:0 0;border-radius:14px;margin-top:14px;padding:14px;font-size:13.5px;font-weight:600;display:block}.review-seg{width:100%;margin-bottom:14px;display:flex}.review-seg button{flex:1;padding:8px 0;font-size:12px}.summary-card{background:var(--ink-soft);border-radius:16px;flex-direction:column;gap:10px;padding:18px;display:flex}.summary-line{justify-content:space-between;align-items:center;display:flex}.summary-line span{letter-spacing:1px;text-transform:uppercase;color:var(--on-ink);font-size:11px;font-weight:600}.summary-line strong{color:var(--on-ink);font-variant-numeric:tabular-nums;font-size:15px;font-weight:600}.summary-line strong.emphasize{color:var(--posband-text)}.review-row{border-top:1px solid var(--row-line);justify-content:space-between;align-items:center;gap:14px;padding:11px 0;display:flex}.review-row.sub{padding-left:16px}.review-label{font-size:13.5px}.review-row.sub .review-label{color:var(--text-soft);font-size:12.5px}.review-value{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:13px}.wizard-status{padding:22px}.settings-scrim{justify-content:center;align-items:flex-start;padding:46px 20px 20px}.settings-panel{border:1px solid var(--paper-line);background:var(--paper);border-radius:16px;flex-direction:column;width:min(720px,100%);max-height:calc(100vh - 66px);display:flex;overflow:hidden;box-shadow:0 20px 50px #00000059}.settings-head{background:var(--app-bg1);color:var(--on-ink);justify-content:space-between;align-items:center;gap:12px;padding:14px 22px;display:flex}.settings-head h2{color:var(--on-ink);margin:0;font-family:Fraunces,Georgia,serif;font-size:20px}.settings-head button{color:var(--on-ink);background:0 0;border:1px solid #ffffff40;border-radius:8px;padding:6px 14px;font-size:13px;font-weight:600}.settings-head button:hover{background:#ffffff29}.settings-body{flex:auto;min-height:0;padding:20px 22px 40px;overflow:auto}.section-label{letter-spacing:.6px;text-transform:uppercase;color:var(--text-faint);margin:0 0 4px;font-size:11px;font-weight:700}.section-label.spaced{margin-top:30px}.settings-body .hint{margin:0 0 14px}.caption{color:var(--text-faint);margin:4px 0 0;font-size:11.5px;line-height:1.45}.caption code{background:var(--seg-track);border-radius:4px;padding:1px 4px;font-size:11px}.mono{font-variant-numeric:tabular-nums}.settings-block{margin-top:12px}button.wide{border:1px solid var(--brass);background:var(--brass);width:100%;color:var(--paper);border-radius:11px;padding:12px 16px;font-size:14px;font-weight:600;display:block}button.wide.ghost{color:var(--text);border-color:var(--paper-line);background:0 0}button.wide.ghost:hover{border-color:var(--text-faint);background:var(--seg-track)}.settings-card{border:1px solid var(--paper-line);background:var(--paper-hi);border-radius:12px;margin-top:14px;padding:14px 16px}.settings-card.done{opacity:.65}.settings-card-head{align-items:center;gap:10px;display:flex}.settings-card strong{font-size:14.5px}.badge{background:var(--brass);color:var(--paper);letter-spacing:.6px;border-radius:5px;padding:2px 7px;font-size:9.5px;font-weight:700}.settings-actions{flex-wrap:wrap;gap:6px 16px;margin-top:10px;display:flex}.settings-actions button{color:var(--brass-deep);background:0 0;border:none;padding:2px 0;font-size:12.5px;font-weight:600}.settings-actions button:hover:not(:disabled){text-decoration:underline}.settings-actions button.destructive{color:var(--rust-deep)}.settings-years{border-top:1px solid var(--paper-line);flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;padding-top:12px;display:flex}.settings-years .section-label{margin:0}.settings-years .chip{align-items:center;gap:6px;padding:5px 10px;font-size:12px;display:inline-flex}.chip-x{color:var(--rust-deep);font-weight:700}.dialog-list-tall{max-height:40vh;margin-top:10px;overflow:auto}.dialog-create{text-align:left;border:1px solid var(--brass-deep);width:100%;color:var(--brass-deep);background:0 0;border-radius:11px;margin-top:10px;padding:11px 13px;font-size:13px;font-weight:600}.dialog-actions-stacked{flex-direction:column;align-items:stretch}.dialog-actions-stacked button{text-align:center}.wizard-panel,.actuals-panel{height:calc(100vh - 66px)}.settings-head-actions{gap:8px;display:flex}.settings-head .primary{background:var(--brass);border-color:var(--brass);color:var(--paper)}.actuals-row{border-bottom:1px solid var(--paper-line);padding:10px 0}.actuals-row.sub{padding-left:22px}.actuals-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.actuals-name{font-size:13.5px;font-weight:600}.actuals-row.sub .actuals-name{color:var(--text-soft);font-weight:400}.actuals-total{font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.actuals-total.muted{color:var(--text-faint)}.actuals-cells{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.actuals-cells input{width:88px;font:inherit;font-variant-numeric:tabular-nums;text-align:right;border:1px solid var(--paper-line);background:var(--paper-hi);color:var(--text);border-radius:8px;padding:7px 9px;font-size:13px}.actuals-cells input:focus{border-color:var(--brass);outline:none}.actuals-add{border:1px dashed var(--paper-line);width:32px;color:var(--text-faint);background:0 0;border-radius:8px;font-size:15px}.actuals-add:hover{border-color:var(--brass);color:var(--brass-deep)}.prompt-scrim{align-items:center}.prompt{flex-direction:column;gap:10px;width:min(420px,100%);display:flex}.prompt p{margin:0 0 4px}.prompt .wide{margin:0}.prompt-ai{border:1px solid var(--paper-line);color:var(--text-soft);background:0 0;border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:13px 16px;font-size:14px;font-weight:700;display:flex}.prompt-ai .pill{background:var(--paper-line);color:var(--text-faint);letter-spacing:.5px;border-radius:8px;padding:2px 7px;font-size:8.5px}.prompt-link,.prompt-dismiss{color:var(--text-faint);background:0 0;border:none;padding:2px 0;font-size:12.5px}.prompt-link{font-weight:600}.prompt-link:hover:not(:disabled),.prompt-dismiss:hover:not(:disabled){color:var(--text-soft);text-decoration:underline}.prompt-link:disabled,.prompt-ai:disabled,.prompt-dismiss:disabled{opacity:.5}.icon-button.needs-setup:after{content:"";background:var(--brass);border-radius:50%;width:7px;height:7px;animation:1.4s ease-in-out infinite setup-pulse;position:absolute;top:5px;right:5px}.icon-button.needs-setup{position:relative}@keyframes setup-pulse{0%,to{opacity:1}50%{opacity:.25}}@media (prefers-reduced-motion:reduce){.icon-button.needs-setup:after{animation:none}}.note-error{border:1px solid var(--rust-deep);background:var(--paper-hi);color:var(--text);border-radius:10px;align-items:flex-start;gap:12px;margin:0 0 12px;padding:10px 12px;font-size:13px;line-height:1.45;display:flex}.note-error span{flex:auto}.note-error button{color:var(--text-faint);background:0 0;border:none;padding:0 2px;font-size:16px;line-height:1}.note-error button:hover{color:var(--text)}.resume-card{border:1px solid var(--paper-line);background:var(--paper-hi);text-align:center;border-radius:14px;max-width:420px;margin:40px auto;padding:18px 20px}.resume-card strong{margin-bottom:6px;font-family:Fraunces,Georgia,serif;font-size:18px;display:block}.resume-card .caption{margin:0 0 14px}.unsaved-bar{border:1px solid var(--rust);background:color-mix(in srgb, var(--rust) 9%, var(--paper-hi));border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin:10px 0 4px;padding:11px 14px;font-size:13px;line-height:1.45;display:flex}.unsaved-bar button{flex:none}.grid td.actionable{cursor:context-menu}.grid td.actionable:hover{background:var(--seg-track)}.dialog-row.pressable{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px}.dialog-row.pressable:hover:not(:disabled){background:var(--seg-track)}.dialog-row.pressable:disabled{opacity:.5}.rule-row{border:0;border-bottom:1px solid var(--paper-line);text-align:left;cursor:pointer;background:0 0;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:7px 0;display:flex}.rule-row:last-child{border-bottom:0}.rule-row:hover{background:var(--paper)}.rule-pattern{color:var(--text);font-size:13.5px;font-weight:600}.rule-target{color:var(--text-faint);font-size:11.5px}.rule-target.ask{color:var(--brass)}.review-summary{border-bottom:1px solid var(--paper-line);background:var(--paper-hi);font-size:var(--grid-font,14px);flex-wrap:wrap;align-items:center;gap:16px;padding:10px 22px;display:flex}.review-unfiled{color:var(--brass-deep)}.review-group+.review-group{margin-top:18px}.review-table{border-collapse:collapse;width:100%;font-size:var(--grid-font,14px)}.review-table td{border-bottom:1px solid var(--paper-line);vertical-align:middle;padding:6px 8px}.review-date{white-space:nowrap;color:var(--text-faint);width:1%}.review-panel{width:min(1180px,100%)}.drill-panel{width:min(1400px,100%)}.review-desc{white-space:normal;overflow-wrap:anywhere;width:100%;min-width:26ch;line-height:1.45}.review-table td{vertical-align:top}.review-flag{background:var(--paper-hi);border:1px solid var(--paper-line);color:var(--text-faint);border-radius:999px;margin-left:8px;padding:1px 6px;font-size:11px}.review-amount{white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums;width:1%}.review-amount.credit{color:var(--good,#2f7d4f)}.review-category{white-space:nowrap;width:1%;min-width:280px}.drill-add{font-size:var(--grid-font,14px)}.drill-table th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);padding:4px 8px 8px;font-size:11px;font-weight:600}.drill-table th.review-amount{text-align:right}.drill-month{white-space:nowrap;width:1%}.review-panel .category-select,.category-select.plain,select.plain{font:inherit;color:inherit;background:0 0;border:none;max-width:none;padding:0}.review-panel .category-select:hover span:first-child,.category-select.plain:hover span:first-child,.plain-select:hover select.plain{text-underline-offset:2px;text-decoration:underline}.plain-select{align-items:center;gap:6px;padding-right:14px;display:inline-flex;position:relative}.plain-select select.plain{appearance:none}.plain-select:after{content:"▾";color:var(--text-faint);pointer-events:none;opacity:0;font-size:10px;transition:opacity .12s;position:absolute;right:2px}.plain-select:hover:after,.plain-select:focus-within:after{opacity:1}.review-panel .category-select .category-select-caret,.category-select.plain .category-select-caret{opacity:0;transition:opacity .12s}.category-select.plain:hover .category-select-caret,.category-select.plain:focus-visible .category-select-caret,.category-select.plain[aria-expanded=true] .category-select-caret,.review-panel .category-select:hover .category-select-caret,.review-panel .category-select:focus-visible .category-select-caret,.review-panel .category-select[aria-expanded=true] .category-select-caret{opacity:1}.category-select.plain .category-select-empty,.review-panel .category-select .category-select-empty{color:var(--rust-deep)}.drill-add{border-top:1px solid var(--paper-line);margin-top:18px;padding-top:4px}.drill-add-row{flex-wrap:nowrap;align-items:center;gap:8px;display:flex}.drill-add-row .category-select{flex:none;min-width:150px;max-width:220px}.drill-add-row input:not(.drill-value){flex:auto;min-width:120px}.plain-input{border:none;border-bottom:1px solid var(--paper-line);font:inherit;color:inherit;background:0 0;border-radius:0;padding:4px 2px}.plain-input:focus{border-bottom-color:var(--brass-deep);outline:none}.drill-sign{font-variant-numeric:tabular-nums;color:var(--text-faint)}.drill-sign.credit{color:var(--good)}.drill-add-row .category-select.month,.drill-add-row .category-select.direction{min-width:96px;max-width:120px}.drill-value{text-align:right;font-variant-numeric:tabular-nums;flex:none;width:100px}.category-select{text-align:left;justify-content:space-between;align-items:center;gap:8px;width:100%;max-width:300px;font-size:12.5px;display:flex}.category-select span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.category-select-empty{color:var(--brass-deep);font-weight:600}.category-select-caret{color:var(--text-faint);flex:none;font-size:10px}.category-pop{z-index:60;border:1px solid var(--paper-line);background:var(--paper-hi);border-radius:12px;flex-direction:column;gap:6px;max-height:320px;padding:8px;display:flex;position:fixed;box-shadow:0 16px 40px #0000004d}.category-pop input{width:100%;font-size:13px}.category-pop-list{flex-direction:column;gap:2px;display:flex;overflow-y:auto}.category-pop .caption{margin:6px 4px}.category-pop-row{text-align:left;cursor:pointer;white-space:normal;background:0 0;border:none;border-radius:8px;padding:7px 9px;font-size:12.5px}.category-pop-row.active{background:color-mix(in srgb, var(--brass-deep) 16%, transparent)}.category-pop-row.chosen{font-weight:600}.category-pop-row.none{color:var(--text-faint)}.review-by{color:var(--text-faint);font-size:11px;display:block}.review-skip{width:1%}.review-row-unfiled .review-desc{font-weight:600}.review-row-unfiled td{background:color-mix(in srgb, var(--brass-deep) 7%, transparent)}.review-row-skipped td{opacity:.45;text-decoration:line-through}.review-foot{border-top:1px solid var(--paper-line);background:var(--paper-hi);justify-content:space-between;align-items:center;gap:16px;padding:12px 22px;display:flex}.review-foot .caption{margin:0}.import-progress{border:1px solid var(--paper-line);background:var(--paper-hi);text-align:center;border-radius:14px;width:min(420px,100% - 32px);padding:20px 22px;box-shadow:0 20px 50px #00000059}.import-progress-what{margin:0 0 4px;font-family:Fraunces,Georgia,serif;font-size:16px}.import-progress .caption{margin:0 0 12px}.import-progress-track{background:var(--seg-track);border-radius:999px;height:4px;overflow:hidden}.import-progress-fill{background:var(--brass);border-radius:999px;height:100%;transition:width .24s}.import-progress-fill.indeterminate{width:40%;animation:1.1s ease-in-out infinite import-sweep}@keyframes import-sweep{0%{transform:translate(-100%)}to{transform:translate(250%)}}.trip-offer{border-bottom:1px solid var(--paper-line);background:color-mix(in srgb, var(--brass) 10%, var(--paper-hi));flex-wrap:wrap;align-items:center;gap:10px;padding:11px 22px;font-size:13px;display:flex}.trip-offer>span{flex:240px}.trip-offer .category-select{border:1px solid var(--paper-line);background:var(--paper);border-radius:999px;width:auto;max-width:260px;padding:5px 12px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.drill-foot{border-top:1px solid var(--paper-line);background:var(--paper-hi);flex:none;padding:10px 22px 14px}.drill-foot .drill-add{border-top:none;margin-top:0;padding-top:0}.drill-foot .section-label{margin:0 0 8px}.path-card{text-align:left;border:1px solid var(--paper-line);background:var(--paper-hi);border-radius:12px;width:100%;margin-bottom:16px;padding:18px 18px 14px;display:block}.path-card:hover{border-color:var(--brass)}.path-card>strong{margin-bottom:14px;font-size:16px;display:block}.path-card .step-list{gap:10px}.path-card .step-badge{width:22px;height:22px;font-size:11px}.path-card .step-text{font-size:13px}.goal-list{gap:10px}.step-list li.goal-item{border:1px solid var(--paper-line);border-radius:12px;padding:0;display:block;overflow:hidden}.goal-item.picked{border-color:var(--brass);background:var(--paper-hi)}.goal-choice{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:11px;align-items:center;gap:14px;width:100%;padding:16px 14px;display:flex}.goal-choice .step-text{display:block}.goal-target{padding:0 14px 14px 56px}.bill-body{padding:4px 0 14px 22px}.span-line{margin:4px 0 0;font-size:14px;font-weight:600}.span-line.short,.field-hint.warn{color:var(--rust-deep)}.field-hint.error{color:var(--rust-deep);font-weight:600}.field-hint.proposed{color:var(--brass-deep);margin-bottom:18px}
