
:root{
  --navy:#062a55; --navy2:#001f42; --blue:#0b63b6; --sky:#cfe9ff;
  --red:#d9251d; --orange:#f4711f; --yellow:#ffd447; --green:#0b7f3a;
  --ink:#0a1628; --muted:#5b6980; --line:#d8e2ef; --panel:#f7fbff; --cream:#fff9e8;
  --max:1180px;
}
*{box-sizing:border-box} body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#f4f7fb;line-height:1.45}
a{color:#064f9e;text-decoration:none} a:hover{text-decoration:underline}
.topbar{background:linear-gradient(90deg,var(--navy2),var(--navy));color:#fff;padding:.65rem 1rem;font-weight:800;text-align:center;letter-spacing:.02em}
header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5;box-shadow:0 1px 8px rgba(0,0,0,.05)}
.navwrap{max-width:var(--max);margin:auto;display:flex;align-items:center;gap:1rem;padding:.8rem 1rem;flex-wrap:wrap}
.logo{font-weight:900;color:var(--navy);font-size:1.1rem;margin-right:auto;letter-spacing:.02em}.logo span{color:var(--red)}
nav{display:flex;gap:.25rem;flex-wrap:wrap} nav a{padding:.45rem .6rem;border-radius:999px;color:var(--navy);font-weight:700;font-size:.9rem} nav a:hover{background:#eaf3ff;text-decoration:none}
.hero{background:linear-gradient(135deg,var(--navy),#083c7d 60%,#0a5cab);color:#fff;padding:3rem 1rem 2.4rem;border-bottom:6px solid var(--red)}
.hero .inner{max-width:var(--max);margin:auto}.eyebrow{font-weight:900;color:#aee2ff;letter-spacing:.08em;text-transform:uppercase}.hero h1{font-size:clamp(2rem,5vw,4.5rem);line-height:.98;margin:.3rem 0 1rem;letter-spacing:-.04em}.hero p{font-size:1.25rem;max-width:850px}.hero .actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.2rem}
.btn{display:inline-block;background:var(--red);color:#fff!important;font-weight:900;padding:.8rem 1rem;border-radius:.55rem;text-decoration:none!important}.btn.secondary{background:#fff;color:var(--navy)!important}.btn.outline{background:transparent;border:2px solid #fff;color:#fff!important}
main{max-width:var(--max);margin:auto;padding:1.5rem 1rem 3rem}.section{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.25rem;margin:1rem 0;box-shadow:0 1px 8px rgba(0,0,0,.04)}
h2{color:var(--navy);font-size:clamp(1.5rem,3vw,2.3rem);line-height:1.05;margin:.2rem 0 1rem} h3{color:var(--navy);margin:1rem 0 .45rem;font-size:1.2rem}.lead{font-size:1.12rem;font-weight:700}.muted{color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem}.card{grid-column:span 4;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1rem}.card.full{grid-column:1/-1}.card.half{grid-column:span 6}.card.third{grid-column:span 4}.card.quarter{grid-column:span 3}.card h3{margin-top:0}.num{display:inline-grid;place-items:center;background:var(--red);color:#fff;border-radius:50%;width:2rem;height:2rem;font-weight:900;margin-right:.35rem}.tag{display:inline-block;background:#eaf3ff;color:var(--navy);border:1px solid #bcd6f0;border-radius:999px;padding:.2rem .5rem;font-weight:700;font-size:.82rem;margin:.1rem .15rem .1rem 0}.tag.red{background:#fff0ef;color:#a51610;border-color:#f4bab6}.tag.green{background:#e9f8ef;color:#0a7135;border-color:#bce4c9}.tag.yellow{background:#fff4ca;color:#6d4c00;border-color:#f1d671}
.callout{border-left:8px solid var(--red);background:#fff3f1;padding:1rem;border-radius:12px;margin:1rem 0}.ordinance{counter-reset:item}.ordinance li{margin:.65rem 0;padding:.9rem 1rem;background:#f7fbff;border:1px solid var(--line);border-radius:10px;font-weight:800}.ordinance li::marker{font-weight:900;color:var(--red)}
.infographic{width:100%;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 1px 8px rgba(0,0,0,.08)}
.table{width:100%;border-collapse:collapse;background:#fff}.table th,.table td{border:1px solid var(--line);padding:.75rem;text-align:left;vertical-align:top}.table th{background:#eaf3ff;color:var(--navy)}
.issue-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.issue-list a{display:block;background:#fff;border:1px solid var(--line);border-radius:12px;padding:1rem;font-weight:900}.issue-list a small{display:block;color:var(--muted);font-weight:500;margin-top:.25rem}.seat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:1rem}.seat h3{margin-top:0}.seat .empty{border:1px dashed #b5c5d8;background:#f8fbff;border-radius:10px;padding:.7rem;color:#526171;font-weight:700}
footer{background:var(--navy2);color:#dcecff;padding:2rem 1rem;margin-top:2rem}.footwrap{max-width:var(--max);margin:auto;display:grid;grid-template-columns:2fr 1fr 1fr;gap:1rem}.footwrap a{color:#fff}.source-list li{margin:.4rem 0;word-break:break-word}.kicker{font-size:.9rem;text-transform:uppercase;letter-spacing:.08em;color:#5b8fc5;font-weight:900}.print-note{display:none}
@media(max-width:800px){.card,.card.half,.card.third,.card.quarter{grid-column:1/-1}.issue-list{grid-template-columns:1fr}.footwrap{grid-template-columns:1fr}.hero{padding:2rem 1rem} header{position:static}}
@media print{header,.topbar,.actions,footer{display:none}.section,.card{box-shadow:none}.print-note{display:block}.hero{color:#000;background:#fff;border-bottom:2px solid #000} main{max-width:none}}
/* Tax calculator */
.preset-row{display:flex;gap:.75rem;flex-wrap:wrap}.preset{border:0;background:var(--navy);color:#fff;font-weight:900;border-radius:999px;padding:.85rem 1rem;cursor:pointer}.preset:hover{background:#0a4b91}.calc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.calc-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1rem}.calc-card label{display:block;font-weight:800;margin:.8rem 0;color:var(--navy)}.calc-card input{display:block;width:100%;font-size:1.1rem;margin-top:.3rem;padding:.7rem;border:1px solid #b9c7d8;border-radius:10px;background:#fff}.result-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1rem 0}.result-cards div{background:linear-gradient(135deg,var(--navy),#0b63b6);color:#fff;border-radius:14px;padding:1rem}.result-cards span{display:block;text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:#cfe9ff;font-size:.82rem}.result-cards strong{display:block;font-size:2rem;line-height:1.1;margin-top:.25rem}.calc-table th:nth-child(n+2),.calc-table td:nth-child(n+2){text-align:right}@media(max-width:800px){.calc-grid,.result-cards{grid-template-columns:1fr}}
/* Revenue slider */
.rate-lab{border-top:6px solid var(--green)}
.slider-label{display:block;font-weight:900;color:var(--navy);margin:1rem 0}.slider-label input[type=range]{display:block;width:100%;margin-top:.75rem;accent-color:var(--red)}
.rate-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:1rem 0}.rate-metrics div{background:#f8fbff;border:1px solid var(--line);border-radius:14px;padding:1rem}.rate-metrics span{display:block;text-transform:uppercase;font-size:.78rem;font-weight:900;color:var(--muted);letter-spacing:.05em}.rate-metrics strong{display:block;font-size:1.65rem;color:var(--navy);margin-top:.25rem}.impact-banner{background:linear-gradient(135deg,#fff2cc,#fff7df);border:2px solid #ffd447;border-radius:14px;padding:1rem;font-size:1.05rem;font-weight:800;color:#4a3300}.impact-banner strong{color:#a51610}.impact-banner span{display:block;margin-top:.35rem;color:#0a1628}.milestone-shelf{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin:1rem 0}.milestone{border:1px solid var(--line);background:#f7f7f7;color:#667388;border-radius:12px;padding:.75rem;opacity:.6}.milestone.active{background:#eaf8ef;border-color:#7fc99e;color:#063d1e;opacity:1;box-shadow:0 2px 8px rgba(11,127,58,.12)}.milestone strong{display:block;color:inherit}.milestone span{display:block;font-size:.86rem;margin-top:.25rem}@media(max-width:900px){.rate-metrics,.milestone-shelf{grid-template-columns:1fr 1fr}}@media(max-width:600px){.rate-metrics,.milestone-shelf{grid-template-columns:1fr}}
.backlog-panel{border-top:6px solid var(--navy)}
.backlog-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:1rem 0}
.backlog-grid div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1rem}
.backlog-grid span{display:block;text-transform:uppercase;font-size:.76rem;font-weight:900;color:var(--muted);letter-spacing:.04em}
.backlog-grid strong{display:block;font-size:1.75rem;color:var(--navy);margin:.3rem 0}.backlog-grid p{margin:0;color:#334155;font-size:.93rem}
.paydown-box{background:linear-gradient(135deg,#eaf8ef,#eef6ff);border:2px solid #7fc99e;border-radius:14px;padding:1rem;margin-top:1rem}.paydown-box h3{margin:.2rem 0;color:var(--navy)}.paydown-box p{margin:.3rem 0 0;font-size:1.05rem}
@media(max-width:900px){.backlog-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.backlog-grid{grid-template-columns:1fr}}
