:root{color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#17231f;background:#f2eee5;font-synthesis:none;--canvas: #f2eee5;--sheet: #fffcf5;--paper-deep: #f8f4eb;--ink: #17231f;--forest: #173f35;--forest-dark: #102f28;--eucalyptus: #496c61;--clay: #c96f45;--clay-dark: #994c2d;--ochre: #d7a345;--rule: #d8d2c5;--rule-dark: #bcb5a8;--muted: #626c67;--positive: #1f6a50;--positive-soft: #dcefe5;--danger: #a34245;--danger-soft: #f4dddc;--warning-soft: #f4e7ce;--focus: #2c6e5c;--shadow: 0 18px 50px rgb(32 45 39 / 10%)}*{box-sizing:border-box}html{min-width:320px;scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:var(--canvas);line-height:1.5;transition:color .18s cubic-bezier(.2,.8,.2,1),background-color .18s cubic-bezier(.2,.8,.2,1)}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{min-height:44px;border:1px solid var(--forest);border-radius:8px;padding:.68rem 1rem;background:var(--forest);color:#fffdf8;font-weight:720;letter-spacing:.005em;cursor:pointer;transition:background-color .18s cubic-bezier(.2,.8,.2,1),color .18s cubic-bezier(.2,.8,.2,1),border-color .18s cubic-bezier(.2,.8,.2,1),transform .18s cubic-bezier(.2,.8,.2,1)}button:hover:not(:disabled){background:var(--forest-dark);border-color:var(--forest-dark)}button:active:not(:disabled){transform:translateY(1px)}button:disabled,input:disabled,select:disabled{cursor:not-allowed;opacity:.62}button.secondary{background:transparent;color:var(--forest);border-color:var(--rule-dark)}button.secondary:hover:not(:disabled){background:#ede8de;border-color:var(--forest)}button.compact{min-height:38px;padding:.45rem .8rem;font-size:.86rem}.quiet-button{background:transparent;color:#dbe5df;border-color:#4b6b62;font-weight:650}.quiet-button:hover:not(:disabled){background:#244b40;border-color:#67837a}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex="-1"]:focus-visible{outline:3px solid var(--ochre);outline-offset:3px}input:focus-visible,select:focus-visible{outline-color:var(--focus);outline-offset:1px}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--ink)}h1,.page-header h1,.login h1,.login h2,.section-intro h2,.not-found h1{font-family:ui-serif,Iowan Old Style,Palatino Linotype,Georgia,serif;font-weight:600;letter-spacing:-.035em}h1{font-size:clamp(2.7rem,6vw,4.6rem);line-height:.98}h2{font-size:1.55rem;line-height:1.15}h3{line-height:1.25}small{display:block;color:var(--muted);font-size:.8rem}.muted{color:var(--muted)}.eyebrow{margin:0 0 .6rem;color:var(--eucalyptus);font-size:.68rem;line-height:1.2;font-weight:800;letter-spacing:.17em;text-transform:uppercase}.eyebrow.light{color:#cfddd7}.skip-link{position:fixed;z-index:100;top:.5rem;left:.5rem;transform:translateY(-150%);padding:.65rem 1rem;border-radius:6px;background:var(--sheet);color:var(--forest);font-weight:700}.skip-link:focus{transform:translateY(0)}.masthead{position:sticky;z-index:30;top:0;display:flex;align-items:stretch;min-height:72px;padding:0 max(1rem,calc((100% - 1220px)/2));background:var(--forest-dark);color:#fff;border-bottom:1px solid #31574c}.brand{display:flex;align-items:center;gap:.7rem;margin-right:3rem;color:#fffdf8;text-decoration:none;font-family:ui-serif,Iowan Old Style,Georgia,serif;font-size:1.3rem;font-weight:700;letter-spacing:-.02em}.brand-mark{display:inline-grid;grid-template-columns:repeat(2,7px);gap:3px;width:17px;height:24px;transform:skewY(-6deg)}.brand-mark span{display:block;border-radius:1px}.brand-mark span:first-child{background:var(--clay)}.brand-mark span:last-child{background:#f1e6cd}.masthead nav{display:flex;flex:1;align-items:stretch;gap:1.5rem}.masthead nav a{position:relative;display:flex;align-items:center;gap:.4rem;min-height:44px;color:#bacbc5;font-size:.9rem;font-weight:680;text-decoration:none}.masthead nav a:after{content:"";position:absolute;right:0;bottom:0;left:0;height:3px;background:var(--clay);transform:scaleX(0);transform-origin:left;transition:transform .2s cubic-bezier(.2,.8,.2,1)}.masthead nav a:hover{color:#fffdf8}.masthead nav a.active{color:#fffdf8}.masthead nav a.active:after{transform:scaleX(1)}.nav-number{color:#6f9187;font-size:.6rem;letter-spacing:.08em}.desktop-logout{align-self:center;margin-left:1rem}.menu-toggle,.mobile-logout{display:none}.theme-toggle{align-self:center;display:inline-flex;align-items:center;gap:.42rem;min-height:38px;margin-left:1rem;padding:.4rem .7rem;background:transparent;border-color:#4b6b62;color:#dbe5df;font-size:.82rem}.theme-toggle:hover:not(:disabled){background:#244b40;border-color:#67837a}.theme-icon{width:1rem;font-size:1rem;line-height:1;text-align:center}.page{width:min(1220px,calc(100% - 2rem));min-height:calc(100vh - 72px);margin:0 auto;padding:4.5rem 0 6rem}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:3rem}.page-header>div:first-child{max-width:790px}.page-header h1{max-width:820px;margin:0 0 1rem}.page-header>div>p:last-child{max-width:660px;margin:0;color:var(--muted);font-size:1.03rem}.page-action{flex:none;padding-bottom:.2rem}.button-link{display:inline-flex;align-items:center;min-height:44px;margin-top:1.2rem;padding:.68rem 1rem;border:1px solid var(--forest);border-radius:8px;background:var(--forest);color:#fff;font-weight:720;text-decoration:none}.sheet{background:var(--sheet);border:1px solid var(--rule);border-radius:10px}.raised-sheet{box-shadow:var(--shadow)}.notice{margin:1rem 0;padding:.85rem 1rem;border:1px solid var(--rule);border-radius:8px;font-weight:600}.notice.loading{color:#43554f;background:#e8edea;border-color:#ccd8d2}.notice.success{color:var(--positive);background:var(--positive-soft);border-color:#bbddcb}.notice.error{color:#862f33;background:var(--danger-soft);border-color:#e5bcbb}.empty-state{display:flex;align-items:center;gap:1rem;min-height:110px;padding:1.4rem;border:1px dashed var(--rule-dark);border-radius:8px;background:#fffcf599;color:var(--muted)}.empty-state strong{display:block;margin-bottom:.15rem;color:var(--ink)}.empty-state p{margin:0}.empty-mark{display:grid;flex:0 0 38px;width:38px;height:38px;place-items:center;border:1px solid #b9d8c7;border-radius:50%;background:var(--positive-soft);color:var(--positive);font-weight:800}.coverage-hero{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr);min-height:410px;margin-bottom:2rem;border-radius:12px;background:var(--forest);color:#fffdf8}.coverage-hero:before,.coverage-hero:after{content:"";position:absolute;z-index:-1;border:1px solid rgb(255 255 255 / 12%);border-radius:50%}.coverage-hero:before{right:-190px;bottom:-250px;width:520px;height:520px}.coverage-hero:after{right:-85px;bottom:-145px;width:320px;height:320px}.coverage-hero.shortfall{background:#4d2e2a}.hero-main{display:flex;flex-direction:column;justify-content:center;padding:clamp(2rem,5vw,4.5rem)}.hero-status-line{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:3rem}.status-stamp{display:inline-flex;align-items:center;min-height:30px;padding:.25rem .65rem;border:1px solid #99c6ae;border-radius:999px;color:#e9f8f0;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.status-stamp:before{content:"";width:7px;height:7px;margin-right:.45rem;border-radius:50%;background:#8fd3ad}.status-stamp.shortfall{border-color:#efb5a3;color:#ffe6dc}.status-stamp.shortfall:before{background:#ef977c}.sync-note{color:#b9ccc5;font-size:.78rem}.hero-amount{display:block;margin:.15rem 0 .7rem;font-size:clamp(3.6rem,8vw,6.7rem);line-height:.92;font-weight:720;letter-spacing:-.065em;font-variant-numeric:tabular-nums lining-nums}.hero-verdict{max-width:600px;margin:0;color:#d7e2dd;font-family:ui-serif,Iowan Old Style,Georgia,serif;font-size:1.2rem}.hero-stats{align-self:stretch;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:1.2rem;padding:0;border:1px solid rgb(255 255 255 / 17%);border-radius:8px;background:#08231d6b}.hero-stats div{display:flex;flex-direction:column;justify-content:flex-end;min-height:130px;padding:1.5rem;border-bottom:1px solid rgb(255 255 255 / 13%)}.hero-stats div:nth-child(odd){border-right:1px solid rgb(255 255 255 / 13%)}.hero-stats div:nth-last-child(-n+2){border-bottom:0}.hero-stats dt{color:#aebfb9;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.hero-stats dd{margin:.35rem 0 0;color:#fffdf8;font-size:1.25rem;font-weight:750;font-variant-numeric:tabular-nums}.overdue-banner{display:flex;align-items:center;gap:.75rem;margin:-1rem 1.5rem 3rem;padding:.8rem 1rem;border:1px solid #e3bab9;border-radius:7px;background:var(--danger-soft);color:#7e3032}.overdue-banner span{color:#845456}.plan-section{margin-top:4.5rem}.section-intro{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:1.3rem}.section-intro h2{margin:0;font-size:clamp(2rem,4vw,3rem)}.section-intro>p{max-width:440px;margin:0;color:var(--muted);font-size:.9rem}.periods{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;border:1px solid var(--rule);border-radius:10px;background:var(--rule)}.periods:before{content:"PAYDAY";position:absolute;z-index:4;top:46px;left:50%;display:grid;width:58px;height:58px;place-items:center;border:5px solid var(--canvas);border-radius:50%;background:var(--clay-dark);color:#fff;font-size:.57rem;font-weight:850;letter-spacing:.08em;transform:translate(-50%) rotate(-5deg)}.period-card{display:flex;min-width:0;overflow:hidden;flex-direction:column;padding:0;background:var(--sheet)}.period-card:first-child{border-radius:9px 0 0 9px}.period-card:last-child{border-radius:0 9px 9px 0}.period-card:before{content:"";display:block;height:5px;background:var(--forest)}.period-card:last-child:before{background:var(--clay)}.period-heading{display:flex;align-items:flex-start;gap:1rem;min-height:116px;padding:1.6rem 1.6rem 1rem;border-bottom:1px solid var(--rule)}.period-index{color:#b1aba0;font-family:ui-serif,Iowan Old Style,Georgia,serif;font-size:1.4rem;font-style:italic}.period-heading h3{margin:0;font-family:ui-serif,Iowan Old Style,Georgia,serif;font-size:1.25rem;font-weight:600}.opening-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:82px;padding:1rem 1.6rem;background:var(--paper-deep);border-bottom:1px solid var(--rule)}.opening-row>span{font-size:.82rem;font-weight:700}.opening-row>strong{text-align:right;font-variant-numeric:tabular-nums}.commitment-list,.transaction-list,.candidate-list{list-style:none;margin:0;padding:0}.commitment-list li{position:relative;display:grid;grid-template-columns:80px minmax(0,1fr) auto;align-items:start;gap:1rem;min-height:112px;padding:1.2rem 1.6rem;border-bottom:1px solid #e6e0d5}.commitment-list li.overdue:before{content:"";position:absolute;top:0;bottom:0;left:0;width:4px;background:var(--danger)}.date-ticket{display:grid;gap:.35rem;color:var(--eucalyptus);font-size:.78rem;font-weight:720}.date-ticket em{color:var(--danger);font-size:.62rem;font-style:normal;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.commitment-detail{display:grid;gap:.15rem;min-width:0}.commitment-detail>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.running-balance{margin-top:.3rem;color:var(--eucalyptus);font-weight:650}.line-amount{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.period-card>.empty-state{min-height:160px;margin:1.2rem}.closing-row{display:grid;grid-template-columns:repeat(2,1fr);margin-top:auto;background:var(--ink);color:#fff}.closing-row span{padding:1.15rem 1.6rem}.closing-row span+span{border-left:1px solid #3e4945}.closing-row small{color:#adb7b2;text-transform:uppercase;letter-spacing:.06em}.closing-row strong{display:block;margin-top:.25rem;color:#fff;font-size:1.1rem;font-variant-numeric:tabular-nums}label{display:grid;gap:.42rem;color:#32443e;font-size:.86rem;font-weight:720}input,select{width:100%;min-height:46px;border:1px solid #c6c0b5;border-radius:7px;padding:.7rem .8rem;background:#fffefb;color:var(--ink);box-shadow:0 1px #17231f08}input::placeholder{color:#8b918e}label small{font-weight:450}.optional{color:#65706b;font-size:.78rem;font-weight:500}.form-sheet{margin:-1rem 0 4rem;padding:clamp(1.3rem,4vw,2.5rem);animation:reveal-sheet .22s cubic-bezier(.2,.8,.2,1)}@keyframes reveal-sheet{0%{opacity:0;transform:translateY(6px)}}.form-sheet-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--rule)}.form-sheet-heading h2{margin:0;font-family:ui-serif,Iowan Old Style,Georgia,serif;font-size:2rem;font-weight:600}.form-sheet-heading>p{max-width:450px;margin:0;color:var(--muted)}.expense-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem 1.4rem;max-width:860px;padding-top:1.5rem}.expense-form fieldset{min-width:0;margin:0;padding:0;border:0}.expense-form legend{margin-bottom:.42rem;color:#32443e;font-size:.86rem;font-weight:720}.field-wide{grid-column:1 / -1}.repeat-fields{display:grid;grid-template-columns:5rem 1fr;gap:.5rem}.form-group-heading{display:flex;gap:.9rem;margin-top:1rem;padding:1.4rem 0 .4rem;border-top:1px solid var(--rule)}.form-group-heading:first-child{margin-top:0;padding-top:0;border-top:0}.form-group-heading>span{color:var(--clay);font-family:ui-serif,Iowan Old Style,Georgia,serif;font-size:1.2rem;font-style:italic}.form-group-heading h3{margin:0 0 .2rem}.form-group-heading p{margin:0;color:var(--muted);font-size:.85rem}.form-actions{display:flex;gap:.7rem;margin-top:.5rem}.ledger-list{margin-top:2rem}.list-heading{display:flex;align-items:end;gap:.8rem;margin-bottom:1rem}.list-heading h2{margin:0;font-family:ui-serif,Iowan Old Style,Georgia,serif;font-size:2.25rem;font-weight:600}.count-badge,.archive summary span{display:inline-grid;min-width:28px;min-height:28px;place-items:center;border-radius:999px;background:#dfe7e2;color:var(--forest);font-size:.78rem;font-weight:800}.expense-list{overflow:hidden}.expense-row{position:relative;display:grid;grid-template-columns:minmax(220px,1.5fr) .75fr .75fr 1fr auto;align-items:center;gap:1.2rem;min-height:92px;padding:1rem 1.2rem;border-bottom:1px solid var(--rule)}.expense-row:last-child{border-bottom:0}.expense-list.read-only .expense-row{grid-template-columns:minmax(220px,1.5fr) .75fr .75fr 1fr}.expense-row.archived{background:#f4f1ea;color:#5d6762}.expense-row.archived:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--rule-dark)}.expense-primary{display:flex;align-items:center;gap:.8rem;min-width:0}.expense-monogram,.transaction-monogram{display:grid;flex:0 0 40px;width:40px;height:40px;place-items:center;border:1px solid #c3d6cd;border-radius:50%;background:#e6eee9;color:var(--forest);font-family:ui-serif,Iowan Old Style,Georgia,serif;font-weight:700}.expense-primary h3{overflow:hidden;margin:0 0 .15rem;text-overflow:ellipsis;white-space:nowrap;font-size:.98rem}.expense-primary small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.expense-meta,.expense-amount{display:grid;gap:.15rem}.expense-meta strong{font-size:.84rem}.expense-amount{text-align:right}.expense-amount strong{white-space:nowrap;font-variant-numeric:tabular-nums}.archive{margin-top:2rem}.archive summary{display:inline-flex;align-items:center;gap:.65rem;min-height:44px;color:var(--forest);font-weight:720;cursor:pointer}.archive[open] summary{margin-bottom:.8rem}.transaction-register{overflow:hidden}.search-bar{display:grid;grid-template-columns:180px minmax(0,1fr);align-items:center;gap:1rem;padding:1.2rem;background:var(--paper-deep);border-bottom:1px solid var(--rule)}.search-control{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.5rem}.clear-search{background:transparent;color:var(--forest);border-color:transparent}.clear-search:hover:not(:disabled){background:#eae4da;border-color:#eae4da}.register-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;padding:1.5rem 1.4rem .8rem}.register-heading h2{margin:0;font-family:ui-serif,Iowan Old Style,Georgia,serif;font-size:2rem;font-weight:600}.register-heading>span{color:var(--muted);font-size:.8rem}.transaction-list li{display:flex;align-items:center;gap:1rem;min-height:78px;padding:.85rem 1.4rem;border-top:1px solid var(--rule)}.transaction-copy{flex:1;min-width:0}.transaction-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transaction-amount{padding-left:1rem;font-variant-numeric:tabular-nums;white-space:nowrap}.transaction-amount.debit{color:var(--ink)}.transaction-amount.credit{color:var(--positive)}.inline-loading,.no-candidates{margin:0;padding:1.5rem;color:var(--muted)}.transaction-register>.empty-state{margin:1rem 1.4rem 1.5rem}.load-more{display:flex;justify-content:center;padding:1rem;border-top:1px solid var(--rule)}.review-summary{display:flex;align-items:baseline;gap:.75rem;margin:-1rem 0 1.5rem;color:var(--muted)}.review-summary strong{color:var(--clay);font-family:ui-serif,Iowan Old Style,Georgia,serif;font-size:3rem;font-style:italic;font-weight:600}.match-list{display:grid;gap:1.25rem}.match-card{position:relative;overflow:hidden;padding-left:10px}.match-card:before{content:"";position:absolute;inset:0 auto 0 0;width:10px;background:var(--clay)}.match-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:2rem;padding:1.5rem 1.5rem 1.2rem}.match-heading h2{margin:.65rem 0 .25rem;font-family:ui-serif,Iowan Old Style,Georgia,serif;font-size:2rem;font-weight:600}.match-heading p{margin:0;color:var(--muted)}.due-stamp{display:inline-flex;padding:.25rem .55rem;border:1px solid #d2a277;border-radius:4px;color:var(--clay-dark);font-size:.64rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase;transform:rotate(-2deg)}.due-stamp.overdue{border-color:#d49a9b;color:var(--danger)}.match-amount{display:grid;justify-items:end;gap:.2rem;text-align:right}.match-amount>strong{color:var(--forest);font-size:1.35rem;font-variant-numeric:tabular-nums;white-space:nowrap}.match-meta{display:flex;flex-wrap:wrap;gap:.5rem;padding:0 1.5rem 1.3rem}.match-meta span{padding:.35rem .6rem;border:1px solid var(--rule);border-radius:999px;color:#54615c;font-size:.75rem}.candidate-heading{display:flex;align-items:center;gap:.6rem;padding:.9rem 1.5rem;background:var(--paper-deep);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.candidate-heading h3{margin:0;font-size:.9rem}.candidate-heading span{color:var(--muted);font-size:.75rem}.candidate-list li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:1.25rem;padding:1rem 1.5rem;border-bottom:1px solid var(--rule)}.candidate-list li:last-child{border-bottom:0}.candidate-list.read-only li{grid-template-columns:minmax(0,1fr) auto}.candidate-copy{display:grid;gap:.2rem;min-width:0}.candidate-copy>div{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.recommended{padding:.15rem .4rem;border-radius:4px;background:var(--positive-soft);color:var(--positive);font-size:.62rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.confidence-bar{position:relative;display:block;width:180px;height:3px;margin-top:.35rem;overflow:hidden;background:#ded9cf}.confidence-bar:after{content:"";display:block;width:var(--confidence);height:100%;background:var(--eucalyptus)}.candidate-amount{font-variant-numeric:tabular-nums}.candidate-actions{display:flex;gap:.45rem}.settings-page{max-width:980px}.settings-form{overflow:hidden}.settings-section{display:grid;grid-template-columns:70px minmax(0,1fr);gap:1.5rem;padding:2rem;border-bottom:1px solid var(--rule)}.settings-number{color:var(--clay);font-family:ui-serif,Iowan Old Style,Georgia,serif;font-size:1.8rem;font-style:italic}.settings-fields>div:first-child{max-width:630px}.settings-fields h2{margin:0 0 .4rem;font-family:ui-serif,Iowan Old Style,Georgia,serif;font-size:1.8rem;font-weight:600}.settings-fields>div:first-child>p:last-child{margin-bottom:1.4rem;color:var(--muted)}.settings-fields>label{max-width:620px}.settings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.field-note{margin:.6rem 0 0;font-size:.78rem}.field-note.warning{color:#8a5b23}.connection-status{display:flex;align-items:flex-start;gap:.8rem;max-width:620px;padding:1rem;border:1px solid #b9d8c7;border-radius:8px;background:var(--positive-soft);color:var(--positive)}.connection-status.warning{border-color:#dfc797;background:var(--warning-soft);color:#79501d}.status-dot{flex:0 0 9px;width:9px;height:9px;margin-top:.42rem;border-radius:50%;background:var(--positive)}.connection-status.warning .status-dot{background:var(--ochre)}.connection-status p{margin:.15rem 0 0;color:inherit;font-size:.82rem}.settings-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.2rem 2rem;background:var(--paper-deep)}.settings-footer>div{flex:1}.settings-footer .notice{margin:0}.login{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(440px,1.1fr);min-height:100vh;padding:clamp(1rem,3vw,2rem);background:var(--canvas)}.login{position:relative}.login>.theme-toggle{position:absolute;z-index:4;top:clamp(1.7rem,4vw,3rem);right:clamp(1.7rem,4vw,3rem);margin:0;background:var(--sheet);border-color:var(--rule-dark);color:var(--forest)}.login>.theme-toggle:hover:not(:disabled){background:var(--paper-deep);border-color:var(--forest)}.login-cover{display:flex;flex-direction:column;justify-content:space-between;min-height:calc(100vh - clamp(2rem,6vw,4rem));overflow:hidden;padding:clamp(2rem,5vw,5rem);border-radius:14px 0 0 14px;background:var(--forest);color:#fff;box-shadow:var(--shadow)}.login-brand{display:flex;align-items:center;gap:.7rem;font-family:ui-serif,Iowan Old Style,Georgia,serif;font-size:1.35rem;font-weight:700}.login-cover h1{margin-bottom:1.2rem;color:#fffdf8;font-size:clamp(3.1rem,6vw,6.6rem)}.login-cover>div:nth-child(2)>p:last-child{max-width:530px;margin:0;color:#c8d7d1;font-size:1.05rem}.cover-note{margin:0;color:#9fb4ac;font-size:.78rem}.login-panel{display:grid;place-items:center;border:1px solid var(--rule);border-left:0;border-radius:0 14px 14px 0;background:var(--sheet);box-shadow:var(--shadow)}.login-panel form{width:min(420px,calc(100% - 3rem))}.login-panel h2{margin:0 0 .55rem;font-size:2.7rem}.login-panel form>.muted{margin-bottom:2rem}.login-panel label{margin:1rem 0}.login-button{width:100%;margin-top:1rem}.loading-page{display:grid;min-height:100vh;place-content:center;justify-items:center;color:var(--muted)}.loading-mark{display:grid;width:58px;height:58px;margin-bottom:1rem;place-items:center;border:1px solid var(--rule);border-radius:50%;background:var(--sheet);animation:loading-pulse 1.4s ease-in-out infinite}@keyframes loading-pulse{50%{transform:scale(.94);opacity:.65}}.not-found{display:grid;place-content:center;max-width:760px;text-align:center}.not-found h1{margin-bottom:1rem}.not-found>p:not(.eyebrow){color:var(--muted)}.not-found .button-link{justify-self:center}:root[data-theme=dark]{color-scheme:dark;color:#edf2ee;background:#0f1715;--canvas: #0f1715;--sheet: #17211e;--paper-deep: #121c19;--ink: #edf2ee;--forest: #1f5144;--forest-dark: #0d322a;--eucalyptus: #91b7aa;--clay: #e58d63;--clay-dark: #a85032;--ochre: #e8b85d;--rule: #34423d;--rule-dark: #51645d;--muted: #9eaaa4;--positive: #76c6a2;--positive-soft: #183a2f;--danger: #f19a9c;--danger-soft: #3d2226;--warning-soft: #3a3020;--focus: #7ccdb0;--shadow: 0 22px 60px rgb(0 0 0 / 38%)}:root[data-theme=dark] .masthead{border-bottom-color:#285045}:root[data-theme=dark] .masthead nav a{color:#aac1b9}:root[data-theme=dark] .masthead nav a:hover,:root[data-theme=dark] .masthead nav a.active{color:#fffdf8}:root[data-theme=dark] .theme-toggle{border-color:#58796f;color:#e1ece7}:root[data-theme=dark] .theme-toggle:hover:not(:disabled){background:#1e4a3f;border-color:#78998f}:root[data-theme=dark] .login>.theme-toggle{color:#b9d7cd;background:#17211ee0;border-color:var(--rule-dark)}:root[data-theme=dark] .login>.theme-toggle:hover:not(:disabled){background:#22302c;border-color:#6f837b}:root[data-theme=dark] button.secondary,:root[data-theme=dark] .skip-link,:root[data-theme=dark] .count-badge,:root[data-theme=dark] .archive summary,:root[data-theme=dark] .archive summary span,:root[data-theme=dark] .expense-monogram,:root[data-theme=dark] .transaction-monogram,:root[data-theme=dark] .clear-search,:root[data-theme=dark] .match-amount>strong{color:#b9d7cd}:root[data-theme=dark] button.secondary:hover:not(:disabled),:root[data-theme=dark] .clear-search:hover:not(:disabled){background:#22302c;border-color:var(--rule-dark)}:root[data-theme=dark] .notice.loading{color:#c7d4ce;background:#1e2b27;border-color:#3a4d45}:root[data-theme=dark] .notice.success{color:#8cd6b5;border-color:#326c56}:root[data-theme=dark] .notice.error{color:#ffb0b1;border-color:#704045}:root[data-theme=dark] .empty-state{background:#17211eb8}:root[data-theme=dark] .empty-mark,:root[data-theme=dark] .connection-status{border-color:#326c56}:root[data-theme=dark] .coverage-hero{background:#103b31}:root[data-theme=dark] .coverage-hero.shortfall{background:#432726}:root[data-theme=dark] .hero-stats{background:#0415117a}:root[data-theme=dark] .overdue-banner{color:#ffb0b1;border-color:#704045}:root[data-theme=dark] .overdue-banner span{color:#d79a9d}:root[data-theme=dark] .period-index{color:#7f8c86}:root[data-theme=dark] .commitment-list li{border-bottom-color:var(--rule)}:root[data-theme=dark] .closing-row{background:#0b1411}:root[data-theme=dark] .closing-row span+span{border-left-color:#34423d}:root[data-theme=dark] .closing-row small{color:#96a59e}:root[data-theme=dark] label,:root[data-theme=dark] .expense-form legend{color:#d2ddd8}:root[data-theme=dark] input,:root[data-theme=dark] select{background:#101815;border-color:#52615b;color:var(--ink);box-shadow:0 1px #0000004d}:root[data-theme=dark] input::placeholder{color:#77857f}:root[data-theme=dark] .optional{color:var(--muted)}:root[data-theme=dark] .count-badge,:root[data-theme=dark] .archive summary span{background:#263631}:root[data-theme=dark] .expense-row.archived{color:#a4afa9;background:#141d1a}:root[data-theme=dark] .expense-monogram,:root[data-theme=dark] .transaction-monogram{background:#20312b;border-color:#40594f}:root[data-theme=dark] .clear-search{border-color:transparent}:root[data-theme=dark] .due-stamp{border-color:#795640;color:#f0a17c}:root[data-theme=dark] .due-stamp.overdue{border-color:#77484b;color:var(--danger)}:root[data-theme=dark] .match-meta span{color:#b2bdb7}:root[data-theme=dark] .confidence-bar{background:#394640}:root[data-theme=dark] .field-note.warning{color:#e8b85d}:root[data-theme=dark] .connection-status.warning{color:#e8c77f;border-color:#745d32}:root[data-theme=dark] .loading-mark{box-shadow:0 0 0 8px #91b7aa0d}@media(max-width:980px){.brand{margin-right:1.5rem}.masthead nav{gap:.9rem}.nav-number{display:none}.coverage-hero{grid-template-columns:minmax(0,1.15fr) minmax(290px,.85fr)}.hero-main{padding:2.4rem}.expense-row{grid-template-columns:minmax(220px,1.5fr) .8fr 1fr auto}.expense-list.read-only .expense-row{grid-template-columns:minmax(220px,1.5fr) .8fr 1fr}.expense-row .expense-meta:first-of-type{display:none}.candidate-list li{grid-template-columns:minmax(0,1fr) auto}.candidate-actions{grid-column:1 / -1;justify-content:flex-end}}@media(max-width:820px){html{scroll-behavior:auto}.masthead{min-height:64px;flex-wrap:wrap;justify-content:space-between;padding:0 1rem}.brand{min-height:64px;margin:0}.desktop-logout{display:none}.masthead>.theme-toggle{order:2;width:44px;height:44px;margin-left:auto;padding:0;justify-content:center}.masthead>.theme-toggle .theme-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.menu-toggle{order:3;display:grid;align-self:center;width:44px;height:44px;margin-left:.5rem;padding:11px;align-content:space-between;background:transparent;border-color:#54736a}.menu-toggle span{display:block;height:2px;border-radius:2px;background:#fff;transition:transform .18s ease,opacity .18s ease}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(9px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-9px) rotate(-45deg)}.masthead nav{display:none;order:4;width:100%;flex:none;flex-direction:column;align-items:stretch;gap:0;padding:.5rem 0 1rem;border-top:1px solid #31574c}.masthead nav.open{display:flex}.masthead nav a{min-height:48px;padding:0 .8rem}.masthead nav a:after{top:8px;right:auto;bottom:8px;width:3px;height:auto;transform:scaleY(0)}.masthead nav a.active:after{transform:scaleY(1)}.masthead nav .mobile-logout{display:block;width:100%;margin-top:.5rem;background:transparent;border-color:#45655c;text-align:left}.page{width:min(100% - 1.5rem,720px);min-height:calc(100vh - 64px);padding:3rem 0 4rem}.page-header{align-items:flex-start;margin-bottom:2rem}.page-header h1{font-size:clamp(2.8rem,11vw,4rem)}.coverage-hero{display:block;min-height:0}.hero-main{padding:2.3rem}.hero-status-line{margin-bottom:2.2rem}.hero-stats{margin:0;border-right:0;border-bottom:0;border-left:0;border-radius:0}.hero-stats div{min-height:100px}.periods{display:grid;grid-template-columns:1fr;gap:2rem;border:0;background:transparent}.periods:before{display:none}.period-card{border:1px solid var(--rule);border-radius:9px!important}.period-card:last-child{position:relative}.section-intro{align-items:start}.expense-row{grid-template-columns:minmax(0,1.6fr) .8fr auto}.expense-list.read-only .expense-row{grid-template-columns:minmax(0,1.6fr) 1fr}.expense-row .expense-meta{display:none}.form-sheet-heading{align-items:flex-start;flex-direction:column;gap:.5rem}.login{grid-template-columns:1fr;padding:0}.login>.theme-toggle{top:1rem;right:1rem;width:44px;height:44px;padding:0;justify-content:center;background:#fffcf5eb}.login>.theme-toggle .theme-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}:root[data-theme=dark] .login>.theme-toggle{background:#0f3129eb}.login-cover{min-height:42vh;padding:2rem;border-radius:0;box-shadow:none}.login-cover h1{margin-top:4rem;font-size:clamp(3rem,12vw,5rem)}.cover-note{display:none}.login-panel{min-height:58vh;padding:3rem 0;border:0;border-radius:0;box-shadow:none}}@media(max-width:620px){.page{width:min(100% - 1.1rem,560px);padding-top:2rem}.page-header{display:block}.page-header>div>p:last-child{font-size:.94rem}.page-action{margin-top:1.25rem}.page-action button{width:100%}.hero-main{padding:1.5rem}.hero-status-line{align-items:flex-start;flex-direction:column;gap:.7rem;margin-bottom:2rem}.hero-amount{font-size:clamp(3rem,15vw,4.5rem)}.hero-verdict{font-size:1rem}.hero-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-stats div{min-height:92px;padding:1rem}.hero-stats dd{font-size:1rem}.overdue-banner{align-items:flex-start;flex-direction:column;gap:.2rem;margin:-1rem 0 2.5rem}.plan-section{margin-top:3rem}.section-intro{display:block}.section-intro>p{margin-top:.7rem}.period-heading{min-height:105px;padding:1.3rem 1rem .9rem}.opening-row{align-items:flex-start;padding:1rem}.opening-row>strong{max-width:52%}.commitment-list li{grid-template-columns:68px minmax(0,1fr);gap:.75rem;padding:1rem}.line-amount{grid-column:2;margin-top:-.1rem;text-align:left;color:var(--forest)}:root[data-theme=dark] .line-amount{color:#b9d7cd}.closing-row span{padding:1rem}.closing-row strong{font-size:.95rem}.expense-form{grid-template-columns:1fr}.field-wide{grid-column:auto}.form-actions{display:grid;grid-template-columns:1fr 1fr}.list-heading h2{font-size:1.9rem}.expense-row{grid-template-columns:minmax(0,1fr) auto;gap:.8rem}.expense-list.read-only .expense-row{grid-template-columns:1fr}.expense-row .expense-amount{grid-column:1;padding-left:52px;text-align:left}.expense-list.read-only .expense-amount{padding-left:52px}.expense-row>button{grid-column:2;grid-row:1 / span 2}.expense-primary small{white-space:normal}.search-bar{grid-template-columns:1fr;gap:.5rem}.search-control{grid-template-columns:minmax(0,1fr) auto}.clear-search{grid-column:1 / -1;justify-self:start;min-height:36px;padding:.35rem 0}.transaction-list li{align-items:flex-start;gap:.7rem;padding:.85rem 1rem}.transaction-monogram{display:none}.transaction-amount{padding-left:.4rem;font-size:.9rem}.match-heading{flex-direction:column;gap:1rem;padding:1.2rem 1rem}.match-amount{justify-items:start;text-align:left}.match-meta{padding:0 1rem 1rem}.candidate-heading{padding:.9rem 1rem}.candidate-list li{grid-template-columns:minmax(0,1fr) auto;gap:.8rem;padding:1rem}.confidence-bar{width:130px}.candidate-actions{display:grid;grid-template-columns:repeat(2,1fr)}.candidate-actions button{width:100%}.settings-section{grid-template-columns:42px minmax(0,1fr);gap:.75rem;padding:1.4rem 1rem}.settings-grid{grid-template-columns:1fr}.settings-footer{align-items:stretch;flex-direction:column;padding:1rem}.settings-footer button{width:100%}.login-cover{min-height:38vh}.login-cover h1{margin:3rem 0 .8rem}.login-cover>div:nth-child(2)>p:last-child{font-size:.92rem}.login-panel{min-height:62vh;padding:2.3rem 0}.login-panel form{width:min(100% - 2rem,420px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}button:active:not(:disabled){transform:none}}
