:root{--navy:#16336b;--navy-2:#1e4488;--ink:#14274e;--accent:#2b6cb0;--teal:#2a9d8f;--bad:#c0563a;--bg:#f4f2ec;--card:#fff;--line:#e7e3d9;--muted:#6b7280;--serif:"Iowan Old Style",Palatino,"Palatino Linotype",Georgia,serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}*{margin:0;padding:0;box-sizing:border-box}body,html{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}.wrap{max-width:1180px;margin:0 auto;padding:0 24px}.masthead{background:linear-gradient(180deg,var(--navy-2),var(--navy));color:#fff}.masthead .wrap{padding-top:26px;padding-bottom:26px}.brandrow{gap:20px;flex-wrap:wrap}.brandrow,.logo{display:flex;align-items:center}.logo{gap:12px}.logo .mark{width:38px;height:38px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#4f83d1,#1b3f86 70%);box-shadow:inset 0 0 0 4px hsla(0,0%,100%,.12);position:relative;flex:none}.logo .mark:after{content:"";position:absolute;inset:11px;border-radius:50%;background:#2a9d8f;opacity:.9}.logo .name{font-weight:700;font-size:19px;letter-spacing:.2px}.divider{width:1px;height:42px;background:hsla(0,0%,100%,.28)}.title .eyebrow{font-size:12px;letter-spacing:2.5px;opacity:.8;font-weight:600}.title h1{font-family:var(--serif);font-size:34px;font-weight:700;line-height:1.05}.spacer{flex:1 1 auto}.actions{display:flex;gap:12px}.btn{border:1.5px solid hsla(0,0%,100%,.6);color:#fff;background:transparent;padding:11px 22px;border-radius:999px;font-weight:700;font-size:13px;letter-spacing:.5px;cursor:pointer;text-transform:uppercase}.btn:hover{background:hsla(0,0%,100%,.12)}.btn.solid{background:#fff;color:var(--navy);border-color:#fff}a.btn{text-decoration:none;display:inline-flex;align-items:center}.clientbar{background:#ece7db;border-bottom:1px solid #dcd4c2}.clientbar .wrap{display:flex;align-items:center;gap:9px;padding:8px 24px;font-size:12.5px;letter-spacing:.02em;color:#5a5443}.clientbar strong{color:var(--ink);font-weight:700}.clientbar .cb-dot{width:7px;height:7px;border-radius:50%;background:var(--teal);flex:none}@media print{.clientbar{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.tabs{display:flex;gap:6px;background:hsla(0,0%,100%,.12);padding:5px;border-radius:999px;margin-top:22px;width:-moz-fit-content;width:fit-content}.tab{border:0;background:transparent;color:hsla(0,0%,100%,.75);font-weight:700;font-size:14px;padding:10px 26px;border-radius:999px;cursor:pointer}.tab.active{background:#fff;color:var(--navy)}.metabar{background:#12294f;color:hsla(0,0%,100%,.82);font-size:13.5px}.metabar .wrap{padding:12px 24px}main{padding:30px 0 60px}.section-eyebrow{font-size:12px;letter-spacing:2px;font-weight:700;color:var(--teal);text-transform:uppercase}.section-title{font-family:var(--serif);font-size:27px;font-weight:700;margin:4px 0 18px;color:var(--ink)}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:26px}.block+.block,.card+.card{margin-top:22px}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(120% 130% at 80% -10%,#24559e,#16336b 45%,#0e2247);padding:24px}.login-card{width:100%;max-width:400px;background:#fff;border-radius:16px;padding:34px 32px;box-shadow:0 18px 50px rgba(0,0,0,.32);display:flex;flex-direction:column}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:24px}.login-mark{width:36px;height:36px;border-radius:50%;position:relative;flex:none;background:radial-gradient(circle at 34% 30%,#5b86d6,#16336b 72%)}.login-mark:after{content:"";position:absolute;inset:10px;border-radius:50%;background:#2a9d8f}.login-name{font-weight:700;font-size:15px;color:#14274e}.login-sub{font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:#6b7280;margin-top:1px}.login-h{font-family:var(--serif);font-size:25px;font-weight:700;color:#14274e;margin:0 0 6px}.login-p{font-size:13.5px;color:#6b7280;line-height:1.5;margin:0 0 20px}.login-input{padding:12px 14px;border:1px solid #d8d3c6;border-radius:9px;font-size:15px;font-family:inherit;color:#14274e;margin-bottom:12px}.login-input:focus{outline:none;border-color:#2b6cb0;box-shadow:0 0 0 3px rgba(43,108,176,.18)}.login-err{font-size:13px;color:#c0392b;margin-bottom:12px}.login-btn{background:#16336b;color:#fff;border:0;border-radius:999px;padding:13px;font-size:15px;font-weight:700;cursor:pointer}.login-btn:hover{background:#1e4488}.periodbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.periodbar .pb-label{font-size:12px;letter-spacing:1px;text-transform:uppercase;font-weight:700;color:var(--muted)}.pb-opts{display:flex;flex-wrap:wrap;gap:8px}.pb-pill{border:1px solid var(--line);background:#fff;color:var(--ink);font-weight:600;font-size:13px;padding:8px 15px;border-radius:999px;cursor:pointer}.pb-pill:hover{border-color:var(--accent);color:var(--accent)}.pb-pill.active{background:var(--navy);border-color:var(--navy);color:#fff}.kpis{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:18px;gap:18px}.kpi{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px 24px}.kpi .label{font-size:12.5px;letter-spacing:.6px;font-weight:700;color:var(--muted);text-transform:uppercase;line-height:1.3;min-height:2.6em}.kpi .value{font-family:var(--serif);font-size:42px;font-weight:700;color:var(--ink);margin:6px 0 8px}.delta{font-size:13px;font-weight:600;display:flex;align-items:center;gap:6px}.delta .tri{font-size:11px}.delta.up{color:var(--bad)}.delta.down{color:var(--teal)}.delta .vs{color:var(--muted);font-weight:500}.grid2{display:grid;grid-template-columns:1.6fr 1fr;grid-gap:22px;gap:22px;align-items:start}.legend{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted);margin-bottom:16px}.legend .scale{height:8px;width:130px;border-radius:4px;background:linear-gradient(90deg,#dbe6f7,#16336b)}.bar-row{display:grid;grid-template-columns:150px 1fr 70px;align-items:center;grid-gap:12px;gap:12px;margin-bottom:11px}.bar-row .nm{font-size:13.5px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track{background:#eef1f6;border-radius:6px;height:16px;overflow:hidden}.bar-fill{height:100%;border-radius:6px;background:linear-gradient(90deg,#5b86d6,#16336b)}.bar-row .num{font-size:13px;font-weight:700;text-align:right;color:var(--ink)}.rank{display:flex;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid var(--line)}.rank:last-child{border-bottom:0}.rank .badge{width:30px;height:30px;border-radius:50%;background:var(--navy);color:#fff;font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center;flex:none}.rank .rname{font-weight:700;font-size:15px;flex:1 1}.rank .rsub{font-size:12px;color:var(--muted)}.rank .rval{font-weight:800;color:var(--accent);font-size:15px}table.data{width:100%;border-collapse:collapse;font-size:13.5px}table.data th{text-align:left;font-size:11.5px;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);font-weight:700;padding:10px;border-bottom:2px solid var(--line)}table.data td{padding:11px 10px;border-bottom:1px solid var(--line)}table.data td.num,table.data th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}table.data tr:hover td{background:#faf9f5}.pill{display:inline-block;font-size:11px;font-weight:700;color:var(--navy);background:#e8eefb;border-radius:999px;padding:2px 9px}.map-wrap{margin-top:4px}.map-controls{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:12px}.map-toggle{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;color:var(--ink);cursor:pointer}.map-toggle input{width:16px;height:16px;cursor:pointer}.map-toggle .mt-note{font-weight:500}.cmv-legend,.map-toggle .mt-note{color:var(--muted);font-size:12.5px}.cmv-legend{display:inline-flex;align-items:center;gap:6px}.cmv-dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-left:6px}.cmv-dot.k{background:#c0392b}.cmv-dot.a{background:#e08a1e}.map-canvas{position:relative;background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:10px 12px}.ncmap{width:100%;height:auto;display:block}.map-info{position:absolute;top:14px;right:16px;background:hsla(0,0%,100%,.95);border:1px solid var(--line);border-radius:10px;padding:12px 16px;min-width:190px;box-shadow:0 2px 10px rgba(20,39,78,.08);pointer-events:none}.map-info .mi-name{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.map-info .mi-big{font-family:var(--serif);font-size:30px;font-weight:700;color:var(--ink);line-height:1.1;margin:2px 0}.map-info .mi-sub{font-size:12px;color:var(--muted)}.map-info .mi-hint{font-size:13px;color:var(--muted)}.map-legend{display:flex;align-items:center;gap:4px;margin-top:12px;font-size:12px;color:var(--muted)}.map-legend .ml-swatch{width:26px;height:12px;display:inline-block}.map-legend .ml-swatch:first-of-type{border-radius:3px 0 0 3px}.map-legend .ml-swatch:last-of-type{border-radius:0 3px 3px 0}.map-legend .ml-label{margin:0 6px}.map-legend .ml-note{margin-left:auto}@media (max-width:620px){.map-info{position:static;margin-top:10px;min-width:0}}.fx-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px;margin-bottom:18px}.fx-field{display:flex;flex-direction:column;gap:6px}.fx-field label{font-size:11.5px;letter-spacing:.5px;text-transform:uppercase;font-weight:700;color:var(--muted)}.fx-field input,.fx-field select{padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-size:14px;background:#fff;color:var(--ink);font-family:inherit}.fx-facets{display:flex;flex-direction:column;gap:14px;margin-bottom:20px}.fx-facet-label{font-size:11.5px;letter-spacing:.5px;text-transform:uppercase;font-weight:700;color:var(--muted);margin-bottom:8px}.fx-chips{display:flex;flex-wrap:wrap;gap:8px}.fx-chip{border:1px solid var(--line);background:#fff;color:var(--ink);font-weight:600;font-size:13px;padding:7px 14px;border-radius:999px;cursor:pointer}.fx-chip:hover{border-color:var(--accent)}.fx-chip.on{background:var(--navy);border-color:var(--navy);color:#fff}.fx-actions{display:flex;gap:12px}.fx-apply{background:var(--accent);color:#fff;border:0;font-weight:700;font-size:14px;padding:12px 28px;border-radius:999px;cursor:pointer}.fx-apply:disabled{opacity:.6;cursor:default}.fx-reset{background:transparent;color:var(--muted);border:1px solid var(--line);font-weight:600;font-size:14px;padding:12px 22px;border-radius:999px;cursor:pointer}@media (max-width:640px){.fx-grid{grid-template-columns:1fr}}.zt-note{font-size:13px;color:var(--muted);line-height:1.55;margin-bottom:18px;max-width:760px}.zt-city{border:1px solid var(--line);border-radius:12px;margin-bottom:12px;overflow:hidden}.zt-head{display:flex;align-items:center;gap:14px;padding:14px 16px;cursor:pointer;background:#fbfaf7}.zt-head:hover{background:#f4f2ec}.zt-rank{width:28px;height:28px;border-radius:50%;background:var(--navy);color:#fff;font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;flex:none}.zt-name{font-weight:700;font-size:15px;flex:1 1}.zt-name .zt-county{color:var(--muted);font-weight:500;font-size:13px}.zt-stats{font-size:13px;color:var(--ink)}.zt-stats .zt-per{color:var(--muted)}.zt-toggle{width:24px;text-align:center;font-size:20px;color:var(--accent);font-weight:700}.zt-zips{display:flex;flex-wrap:wrap;gap:7px;padding:14px 16px}.zt-chip{font-size:12.5px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--navy);background:#e8eefb;border-radius:6px;padding:4px 9px}.zt-chip.zt-more{background:var(--navy);color:#fff;cursor:pointer}@media (max-width:640px){.zt-head{flex-wrap:wrap}.zt-stats{width:100%;padding-left:42px}}.trend svg{width:100%;height:auto;display:block}.fac-row{display:grid;grid-template-columns:160px 1fr 90px;align-items:center;grid-gap:12px;gap:12px;margin-bottom:10px}.fac-row .fn{font-size:13.5px;font-weight:600}.fac-track{background:#eef1f6;height:14px;border-radius:6px;overflow:hidden}.fac-fill{height:100%;background:linear-gradient(90deg,#7aa0dd,#26406f);border-radius:6px}.fac-row .fv{text-align:right;font-weight:700;font-size:13px}.foot{color:var(--muted);font-size:12.5px;text-align:center;padding:26px 0 0;line-height:1.6}@media (max-width:860px){.kpis{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}.title h1{font-size:27px}.bar-row{grid-template-columns:110px 1fr 60px}}