:root{--brand:#175fab;--brand-ink:#fff;--accent:#46b72f;--accent-ink:#2a7a1c;--accent-soft:#edf7ea;--ink:#1b1f24;--muted:#5b6470;--line:#d9dee4;--surface:#fff;--page:#f5f7f9;--notice:#fff8e6;--notice-line:#f0d9a0;--radius:10px;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--page);color:var(--ink);font-family:var(--font-sans);-webkit-text-size-adjust:100%;font-size:16px;line-height:1.5}a{color:var(--brand)}.page{max-width:960px;margin:0 auto;padding:20px 16px 24px}.logo{width:200px;max-width:60%;height:auto;margin:0 0 16px;display:block}.header{border-bottom:4px solid var(--accent);margin-bottom:16px;padding-bottom:4px}.header h1{color:var(--brand);margin:0 0 6px;font-size:1.5rem;line-height:1.2}.eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 4px;font-size:.8rem;font-weight:600}.lede{color:var(--muted);margin:0 0 16px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.form{gap:14px;margin-bottom:20px;display:grid}.field label{margin-bottom:6px;font-weight:600;display:block}.field select,.field input{width:100%;min-height:46px;font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:1rem}.field select:focus,.field input:focus,.check input:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.field input[aria-invalid=true]{border-color:#b3261e}.help{color:var(--muted);margin:6px 0 0;font-size:.85rem}.rate-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;display:grid}.rate-list div{background:var(--page);border-radius:8px;padding:8px 10px}.rate-list dt{color:var(--muted);font-size:.75rem}.rate-list dd{font-variant-numeric:tabular-nums;margin:0;font-weight:600}.check{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.check input{width:20px;height:20px;accent-color:var(--brand);flex:none;margin:2px 0 0}.override{grid-template-columns:1fr 1fr;gap:12px;display:grid}.override .full{grid-column:1/-1;margin-top:0}.notice{background:var(--notice);border:1px solid var(--notice-line);border-radius:8px;margin:0;padding:12px;font-size:.9rem}.empty{text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:var(--radius);margin:0 0 20px;padding:24px 12px}.basis{color:var(--muted);margin:0 0 10px;font-size:.9rem}.results{gap:12px;margin-bottom:16px;display:grid}.scenario h2{margin:0 0 4px;font-size:1.05rem}.scenario-detail{color:var(--muted);margin:0 0 12px;font-size:.85rem}.scenario.is-current{border-top:4px solid var(--muted)}.scenario:not(.is-current){border-top:4px solid var(--accent)}.amounts{flex-wrap:wrap;gap:16px;display:flex}.label{color:var(--muted);margin:0;font-size:.8rem}.amount{font-variant-numeric:tabular-nums;margin:0;font-size:1.6rem;font-weight:700}.amount.small{padding-top:.4rem;font-size:1.15rem}.savings{background:var(--accent-soft);border-radius:8px;margin-top:12px;padding:10px 12px}.savings p:last-child{font-variant-numeric:tabular-nums;margin:2px 0 0}.savings strong{color:var(--accent-ink)}.breakdown summary{cursor:pointer;font-weight:600}.table-wrap{margin-top:12px;overflow-x:auto}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.85rem}th,td{border-bottom:1px solid var(--line);text-align:right;white-space:nowrap;padding:6px 8px}th[scope=row]{text-align:left;white-space:normal;font-weight:500}thead th{color:var(--muted);font-weight:600}tr.total th,tr.total td{border-bottom:none;font-weight:700}.footer{border-top:1px solid var(--line);color:var(--muted);margin-top:24px;padding-top:16px;font-size:.8rem}.disclaimer{margin:0 0 10px}.company{color:var(--brand);margin:0;font-weight:600}@media (min-width:720px){.page{padding:28px 24px}.header h1{font-size:1.9rem}.logo{width:240px}.form{grid-template-columns:1fr 1fr;column-gap:16px}.form>.rates,.form>.check,.form>.override,.form>.notice{grid-column:1/-1}.results.count-3{grid-template-columns:repeat(3,minmax(0,1fr))}}
