:root{
  --navy:#13294B; --navy-2:#1E3A66; --gold:#B8892B; --gold-soft:#F4EAD3;
  --page:#F2F3F5; --paper:#FFFFFF; --ink:#1B2430; --muted:#566070; --rule:#D3D7DE; --rule-2:#AEB5C0;
  --done:#2E6B3F; --prog:#C99A2E; --none:#E3E6EB; --none-b:#B9C0CA; --out:#8A94A6;
  --c-noncult:#B7BEC7; --c-p1:#A8CFA0; --c-p2:#5E9E62; --c-p3:#2F6B3A; --c-nr:#8A9690; --c-cnf:#3D8DA6; --c-chem:#C27C2C;
  --sans:"Source Sans 3","Segoe UI",Roboto,Arial,sans-serif; --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:var(--sans);font-size:15px;line-height:1.5;color:var(--ink);background:var(--page);font-variant-numeric:tabular-nums lining-nums}
button,select{font:inherit}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.wrap{max-width:1380px;margin:0 auto;padding:0 28px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-999px;top:0;background:var(--gold);color:#000;padding:8px 12px;z-index:9}
.skip:focus{left:8px}

/* masthead */
.masthead{background:var(--navy);color:#fff;border-bottom:4px solid var(--gold)}
.mast-in{display:flex;align-items:center;gap:18px;padding-top:16px;padding-bottom:16px}
.logo{width:64px;height:64px;border-radius:50%;background:#fff;padding:2px;flex:none}
.org{margin:0;font-size:14px;letter-spacing:.01em;color:#D8DFEA}
.masthead h1{margin:2px 0 0;font-family:var(--serif);font-weight:700;font-size:clamp(21px,2.4vw,28px);line-height:1.2}
.study{margin:2px 0 0;font-size:14px;color:var(--gold-soft)}

/* info bar */
.infobar{background:var(--paper);border-bottom:1px solid var(--rule)}
.info-in{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center;justify-content:space-between;padding-top:12px;padding-bottom:12px}
.meta{display:flex;flex-wrap:wrap;gap:6px 28px;margin:0}
.meta div{min-width:120px}
.meta dt{font-size:12px;color:var(--muted)}
.meta dd{margin:0;font-weight:600}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--rule-2);margin-right:6px;vertical-align:0}
.dot.live{background:#2E8B4E}.dot.stale{background:#B3541E}
.controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.controls select{padding:7px 10px;border:1px solid var(--rule-2);border-radius:3px;background:#fff;min-width:230px;color:var(--ink)}
.btn{padding:7px 14px;border:1px solid var(--navy);border-radius:3px;background:#fff;color:var(--navy);font-weight:600;font-size:14px;cursor:pointer}
.btn:hover{background:#EEF1F6}
.btn-primary{background:var(--navy);color:#fff}
.btn-primary:hover{background:var(--navy-2)}
.btn[disabled]{opacity:.55;cursor:wait}

main{padding-top:8px;padding-bottom:28px}
.alert{margin:16px 0 0;padding:12px 16px;border-left:4px solid #B3541E;background:#FBEEE6;color:#5C2A0E}
.notice{margin:16px 0 0;padding:10px 16px;border-left:4px solid var(--gold);background:var(--gold-soft);color:#4A3A12;font-size:14px}

/* sections */
.sec{background:var(--paper);border:1px solid var(--rule);margin-top:18px;padding:20px 24px 24px}
.sec h2{margin:0 0 12px;font-family:var(--serif);font-size:20px;font-weight:700;color:var(--navy);display:flex;align-items:baseline;gap:10px}
.sec h2 .num{font-family:var(--sans);font-size:13px;font-weight:700;color:#fff;background:var(--navy);min-width:24px;height:24px;border-radius:2px;display:inline-flex;align-items:center;justify-content:center;transform:translateY(-2px)}
.sec h3{margin:20px 0 8px;font-size:15px;font-weight:700}
.lead{margin:-4px 0 14px;color:var(--muted);font-size:14px;max-width:90ch}

/* KPIs */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--rule);border-left:1px solid var(--rule)}
.kpi{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:14px 16px 12px}
.kpi .v{font-size:30px;font-weight:700;line-height:1.1;color:var(--navy)}
.kpi .v small{font-size:16px;font-weight:600;color:var(--muted);margin-left:4px}
.kpi .l{font-weight:600;margin-top:2px}
.kpi .s{font-size:13px;color:var(--muted)}
.kpi.lead-kpi{background:#F7F9FC;border-top:3px solid var(--gold)}
@media (max-width:1000px){.kpis{grid-template-columns:repeat(2,1fr)}}

/* VO status bar */
.vobar{display:flex;height:34px;border:1px solid var(--rule-2);background:var(--none)}
.vobar div{display:flex;align-items:center;padding-left:8px;font-size:13px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;min-width:0}
.vobar .s-done{background:var(--done)}
.vobar .s-prog{background:var(--prog);color:#2B2006}
.vobar .s-none{background:var(--none);color:var(--muted)}
.key{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 22px;font-size:13px}
.key li{display:flex;align-items:center;gap:7px}
.key i{width:12px;height:12px;display:inline-block;border:1px solid rgba(0,0,0,.15)}
.key b{font-weight:700}
.key .pct{color:var(--muted)}

/* district completion table */
table{border-collapse:collapse;width:100%;font-size:13.5px}
caption{caption-side:top;text-align:left;font-weight:700;font-size:15px;padding:0 0 4px}
th,td{border:1px solid var(--rule-2);padding:5px 8px;vertical-align:middle}
thead th{background:#E8ECF2;color:var(--ink);font-weight:700;text-align:center;line-height:1.25}
thead th.pm{background:#E1EEDD} thead th.ch{background:#F6E7D6}
td.n{text-align:right} td.c{text-align:center} td.b{font-weight:700}
td.zero{color:#9AA2AE}
tr.tot td{background:#E8ECF2;font-weight:700}
tbody tr:hover td{background:#F6F8FB}
.tw{overflow-x:auto}
table.dist td.sq{width:55%;min-width:260px}
.sqs{display:flex;flex-wrap:wrap;gap:3px}
.sqs span{width:14px;height:14px;display:inline-block;border:1px solid transparent}
.sqs .s-done{background:var(--done)}
.sqs .s-prog{background:var(--prog)}
.sqs .s-none{background:var(--none);border-color:var(--none-b)}
.sqs .add{border-radius:50%}
.pbar{height:8px;background:var(--none);margin-top:4px}
.pbar i{display:block;height:100%;background:var(--done)}
.st{display:inline-block;padding:1px 8px;border-radius:2px;font-size:12px;font-weight:700;white-space:nowrap}
.st.s-done{background:#DCEBDF;color:#1F4D2C}
.st.s-prog{background:#F6EACB;color:#5A4410}
.st.s-none{background:#ECEEF2;color:#4D5563}
.st.s-out{background:#E5E8EF;color:#3F4756}

/* household strip */
.strip{display:flex;height:40px;border:1px solid var(--rule-2)}
.strip div{display:flex;align-items:center;padding-left:7px;font-size:12.5px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;min-width:0}
.strip div.dk{color:var(--ink)}
.strip div + div{border-left:1px solid #fff}

/* tabs */
.tabs{display:flex;gap:0;border-bottom:2px solid var(--navy);overflow-x:auto}
.tabs button{border:1px solid transparent;border-bottom:0;background:transparent;padding:9px 15px;cursor:pointer;color:var(--muted);font-weight:600;font-size:14px;white-space:nowrap}
.tabs button[aria-selected="true"]{background:var(--navy);color:#fff}
.tabs button:hover:not([aria-selected="true"]){background:#EEF1F6;color:var(--ink)}
.panel{padding:18px 0 0}
.panel h3{margin:0 0 4px;font-family:var(--serif);font-size:17px;color:var(--navy)}
.panel .cap{margin:0 0 12px;color:var(--muted);font-size:13.5px;max-width:100ch}
.panel .src{margin:8px 0 0;color:var(--muted);font-size:12.5px}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 10px}
.filters button{border:1px solid var(--rule-2);background:#fff;padding:4px 10px;font-size:13px;cursor:pointer;border-radius:2px}
.filters button[aria-pressed="true"]{background:var(--navy);color:#fff;border-color:var(--navy)}
.empty{color:var(--muted);padding:16px 0}
.chart svg{width:100%;height:auto;display:block}

.notes ol{margin:0;padding-left:20px;font-size:14px;max-width:110ch}
.notes li{margin-bottom:4px}
.foot{background:var(--navy);color:#D8DFEA;margin-top:24px;font-size:13px}
.foot-in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;padding-top:16px;padding-bottom:18px}
.foot p{margin:0}
.foot b{color:#fff}
.print-head{display:none}

@media (max-width:760px){
  .wrap{padding:0 14px}
  .sec{padding:16px 14px 18px}
  .controls select{min-width:0;flex:1 1 100%}
  .kpi .v{font-size:24px}
  .logo{width:48px;height:48px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

@media print{
  @page{size:A4 landscape;margin:10mm}
  body{background:#fff;font-size:10px}
  .masthead,.infobar,.foot,.tabs,#secSummary,#secDistrict,#secHH,.alert,.notice,.no-print,#tv,#inv,#daily,#checks,.filters{display:none!important}
  .wrap{max-width:none;padding:0}
  .sec{border:0;padding:0;margin:0}
  #secTables>h2{display:none}
  .print-head{display:block;text-align:center;margin:0 0 6px}
  .print-head h1{font-family:var(--serif);font-size:14px;margin:0}
  .print-head p{font-size:10.5px;margin:2px 0 0}
  .panel.report{display:block!important;padding:0;margin:0 0 4mm;page-break-after:always}
  .panel.report:last-of-type{page-break-after:auto}
  .panel .cap{display:none}
  .panel h3{font-size:11.5px;margin:0 0 3px}
  table{font-size:8.3px}
  th,td{padding:2px 4px;border-color:#000}
  thead{display:table-header-group}
  tr{page-break-inside:avoid}
  thead th,tr.tot td{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .notes{display:block!important;page-break-before:always}
  .notes h2 .num{display:none}
  .notes ol{font-size:9px}
}
