:root{font-family:system-ui,sans-serif;color:#193c39;background:#f2f5ef;font-size:16px}*{box-sizing:border-box}body{margin:0}header,main,footer{max-width:1080px;margin:auto;padding:24px}header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #cad7ca}small{letter-spacing:.12em;font-size:.7rem;font-weight:700}h1{font-size:2rem;margin:8px 0}h1 span{font-size:1rem;font-weight:400}h2{font-size:1.35rem}section,article{background:#fff;border:1px solid #dae1d8;border-radius:16px;padding:24px;margin:18px 0}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.summary article{background:#e0edde}form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;align-items:end}label{display:flex;flex-direction:column;gap:8px;font-size:.9rem}input,select,button{font:inherit;min-height:46px;border:1px solid #aebeb3;border-radius:8px;padding:10px;width:100%}button{background:#235d50;color:white;cursor:pointer;width:auto}button.secondary{background:#eef3ed;color:#193c39}button:disabled{opacity:.5;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #d39c46;outline-offset:3px}.muted,footer{color:#526860;font-size:.85rem;line-height:1.6}.row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid #e0e8df}.row p{margin:5px 0}.row button{flex-shrink:0}progress{width:100%;accent-color:#235d50}#status{padding:12px;background:#e6eee2;border-radius:8px;overflow-wrap:anywhere}details{margin-top:20px}summary{cursor:pointer;padding:12px 0}#auth{max-width:640px;margin:40px auto}#auth form{grid-template-columns:1fr}#history{max-height:420px;overflow:auto}[hidden]{display:none!important}footer{text-align:center}@media(max-width:600px){header,main,footer{padding:16px}.summary{grid-template-columns:1fr;gap:0}.summary article{margin:6px 0}h1 span{display:block}section{padding:18px}form{grid-template-columns:1fr}.row{align-items:flex-start}.row p{font-size:.85rem}}
.bank-section{border-color:#9bb8a4}.bank-summary{display:flex;flex-wrap:wrap;gap:24px 60px}.bank-summary p{margin:12px 0 6px;font-size:.85rem}.bank-summary strong{font-size:1.75rem}.check{flex-direction:row;align-items:center;grid-column:1 / -1;line-height:1.5}.check input{width:22px;min-height:22px;flex-shrink:0}.bank-section form{margin-top:20px}
.payoff-section{border:2px solid #a2bda6}.method-tag{font-weight:650;color:#235d50}.payoff-focus{background:#e0edde;border-radius:12px;padding:22px;margin:20px 0}.payoff-focus h3{font-size:1.75rem;margin:10px 0}.payoff-focus p{line-height:1.5}.payoff-list{padding-left:28px;counter-reset:payoff}.payoff-item{padding:16px 0;border-bottom:1px solid #e0e8df}.payoff-item div{display:inline-block;vertical-align:middle;max-width:78%;padding-right:16px}.payoff-item p{font-size:.9rem;margin:8px 0;line-height:1.5}.payoff-item button{display:block;margin:8px 0}.payoff-unknown:not(:empty){background:#fff5df;border-radius:10px;padding:16px;margin:20px 0}.payoff-unknown p,.payoff-paid p{font-size:.9rem;line-height:1.6}.payoff-paid:not(:empty){padding:16px;background:#eef5ed;border-radius:10px;margin-top:18px}@media(max-width:600px){.payoff-focus{padding:16px}.payoff-focus h3{font-size:1.4rem}.payoff-item div{max-width:100%}}
.credit-summary{background:#eef4ec;border-radius:12px;padding:20px;margin:18px 0}.credit-summary h3{font-size:1.8rem;margin:12px 0}.debt-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,1fr) auto;align-items:start;gap:20px;padding:24px 0}.debt-row>div{overflow-wrap:anywhere}.credit-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;min-width:0}.credit-form label:first-child,.credit-form p,.credit-form button{grid-column:1 / -1}.credit-form label{font-size:.8rem}.credit-form p{margin:0}.credit-form select,.credit-form input{min-width:0;font-size:.9rem}.util-value{font-weight:700;color:#235d50}@media(max-width:720px){.debt-row{grid-template-columns:1fr}.debt-row>button{justify-self:start}.credit-form{width:100%}}
.bill-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,1fr);gap:24px;padding:20px;background:#f8faf6;border-radius:12px}.bill-row p{line-height:1.5}.bill-actions{display:flex;gap:8px;flex-wrap:wrap}.bill-pay{display:grid;grid-template-columns:1fr 1fr;gap:12px}.bill-pay .check,.bill-pay button,.bill-pay p{grid-column:1 / -1}.bill-pay input{min-width:0}.bill-pay p{margin:0}@media(max-width:700px){.bill-row{grid-template-columns:1fr}.bill-pay{grid-template-columns:1fr}}
.calendar-nav{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.calendar-nav h3{flex:1;text-align:center}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-weekday{text-align:center;font-size:.75rem;padding:10px 0}.calendar-date{min-width:0;min-height:90px;padding:8px 3px;background:#f6f8f3;color:#193c39;display:flex;flex-direction:column;align-items:center;gap:4px}.calendar-date.selected{outline:3px solid #235d50;outline-offset:-3px;background:#e0edde}.calendar-date.today>span:first-child{text-decoration:underline;font-weight:800}.calendar-due{color:#80520d;font-size:.75rem}.calendar-recorded{color:#235d50;font-size:.75rem}.calendar-event{border-left:4px solid #ab792b;background:#fff6e5;padding:14px;margin:10px 0;border-radius:6px;overflow-wrap:anywhere}.calendar-event.recorded{border-color:#235d50;background:#eaf3e7}.calendar-event p{margin:6px 0 0;font-size:.85rem}@media(max-width:600px){.calendar-grid{gap:3px}.calendar-date{min-height:78px;font-size:.85rem}.calendar-nav{gap:8px}.calendar-nav h3{font-size:1rem}.calendar-nav button{padding:8px}.calendar-weekday{font-size:.65rem}}
