:root{--navy:#00205c;--ink:#18344e;--muted:#607589;--line:#d8e2e9;--header:76px;--rail:164px;--shadow:0 4px 20px #15334b17;--body:'Noto Sans',Arial,sans-serif;--heading:'Oswald','Arial Narrow',sans-serif}
*{box-sizing:border-box}body{margin:0;font:13px/1.45 var(--body);color:var(--ink);overflow:hidden}button,input,select{font:inherit}button{cursor:pointer;color:inherit;background:none;border:0}button:focus-visible,input:focus-visible,summary:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #527cae;outline-offset:2px}button:disabled{opacity:.5;cursor:default}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip{position:fixed;top:-100px;left:10px;z-index:100;background:white;padding:8px}.skip:focus{top:8px}
#app-header{position:fixed;inset:0 0 auto;height:var(--header);display:flex;align-items:center;gap:24px;padding:10px 20px;background:#fff;border-bottom:1px solid var(--line);z-index:30}
#campaign-header{display:flex;align-items:center;gap:12px;flex:none;color:var(--navy)}#campaign-header span{display:block;font:400 10px/1.1 var(--heading);letter-spacing:2px;margin-bottom:3px}#campaign-header strong{display:block;font:500 29px/1.05 var(--heading);white-space:nowrap}.campaign-mark{display:grid;grid-template-columns:repeat(2,16px);gap:3px}.campaign-mark i{width:16px;height:16px;border-radius:2px;background:#00205c}.campaign-mark i:nth-child(2){background:#ffb600}.campaign-mark i:nth-child(3){background:#57b7e7}.campaign-mark i:nth-child(4){background:#9dd07c}
#map{position:fixed;inset:var(--header) 0 0;background:#e6ebed}#map-search{position:relative;flex:0 1 440px;min-width:0}.search-field{display:flex;align-items:center;border:1px solid var(--line);border-radius:7px;background:#f5f8fa;padding:3px;height:39px}.search-field input{width:100%;min-width:0;padding:7px;border:0;outline:0;background:transparent;font-size:12px;color:var(--ink)}.search-field button{flex:none;width:29px;height:29px;border-radius:4px}.search-field button:hover{background:#e2ebf3}.search-field svg{width:17px;height:17px}#search-clear{font-size:21px;color:var(--muted)}#search-results,#search-status:not(:empty){position:absolute;top:44px;left:0;right:0;background:white;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);max-height:55dvh;overflow:auto;padding:5px}#search-results button{display:block;width:100%;text-align:left;padding:10px;border-radius:5px}#search-results button:hover,#search-results button[aria-selected=true]{background:#eaf2fa}#search-results b{display:block;font-size:12px}#search-results small{display:block;margin-top:3px;font-size:10px;color:var(--muted)}#search-status:not(:empty){padding:12px;font-size:12px}#search-results:not([hidden])~#search-status{display:none}
#layers-menu{position:relative;margin-left:auto;flex:none}#layers-menu>summary{display:flex;align-items:center;gap:18px;list-style:none;cursor:pointer;padding:9px 12px;border:1px solid var(--line);border-radius:7px;background:#f5f8fa;font-size:12px;font-weight:600}summary::-webkit-details-marker{display:none}.boundary-popover{position:absolute;top:46px;right:0;width:260px;max-height:75dvh;overflow:auto;background:white;border:1px solid var(--line);border-radius:9px;padding:12px 14px;box-shadow:var(--shadow)}.boundary-popover label{display:flex;align-items:center;gap:8px;margin:12px 0;font-size:12px}.boundary-popover input{accent-color:var(--navy)}.menu-heading{font:500 14px var(--heading);letter-spacing:1px;margin:0 0 8px}.menu-note{font-size:10px;color:var(--muted);margin:12px 0}.menu-actions{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:8px}.menu-actions button{font-size:11px;color:var(--navy);text-decoration:underline;padding:5px 0}
#control-rail{position:fixed;top:calc(var(--header) + 12px);left:0;width:var(--rail);z-index:12;transition:transform .18s ease}#control-rail.collapsed{transform:translateX(-100%)}#rail-menus{box-shadow:var(--shadow);border:1px solid #cddbe5;border-left:0;border-radius:0 8px 8px 0;overflow:auto;max-height:calc(100dvh - var(--header) - 82px);scrollbar-width:thin}.rail-section{padding:7px 7px 8px 9px}.metric-menu{background:#fff6df}.level-menu{background:#e8f1fa;border-top:1px solid #cddbe5}.rail-section h2{font:500 14px/1.1 var(--heading);letter-spacing:1.2px;margin:3px 5px 6px;color:var(--navy)}.rail-section button{display:block;width:100%;text-align:left;font-size:12px;line-height:1.2;padding:6px 7px;min-height:27px;border-radius:5px}.rail-section button:hover{background:#00205c0d}.rail-section button[aria-pressed=true]{background:var(--navy);color:white;font-weight:600}#rail-toggle{position:absolute;right:-25px;top:0;width:25px;height:34px;background:#fff;border:1px solid #cddbe5;border-left:0;border-radius:0 6px 6px 0;display:grid;place-items:center;box-shadow:3px 2px 8px #15334b12}#rail-toggle svg{width:14px;height:14px}.collapsed #rail-toggle svg{transform:rotate(180deg)}
.floating-card{position:fixed;z-index:10;background:#fffffff5;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);backdrop-filter:blur(10px)}.summary-panel{right:16px;bottom:50px;width:284px;max-height:calc(100dvh - var(--header) - 195px);overflow:auto}.summary-panel>summary{position:relative;cursor:pointer;list-style:none;padding:15px 19px 13px}.district-eyebrow{display:block;font-size:8px;font-weight:600;letter-spacing:1.6px;color:var(--muted);margin-bottom:9px}#summary-title{display:block;font:500 23px/1.2 var(--heading);color:var(--navy);margin-bottom:6px}#summary-value{display:block;font:600 50px/1.1 var(--heading);color:var(--navy)}#summary-caption{display:block;font:500 22px/1.2 var(--heading);color:var(--navy);margin-top:6px}.district-collapse{position:absolute;right:12px;top:12px;font-size:18px;color:var(--muted)}.summary-panel:not([open]) .district-collapse{transform:rotate(180deg)}#baseline-comparisons{padding:0 19px}.baseline-row{padding:11px 0;border-top:1px solid var(--line)}.baseline-title{display:block;font-size:10px;color:var(--muted);margin-bottom:5px}.baseline-reading{display:flex;gap:12px;align-items:center}.baseline-reading>b{font:500 25px/1 var(--heading);min-width:42px;color:var(--navy)}.baseline-change{padding-left:12px;border-left:1px solid var(--line);font-size:10px;color:var(--navy)}.baseline-change small{display:block;font-size:8px;color:var(--muted);line-height:1.4;margin-top:3px}.baseline-note{font-size:8px;color:var(--muted);margin:3px 0 8px}.card-content{padding:0 19px 14px}.card-content .caption{font-size:9px;color:var(--muted);line-height:1.45;margin:3px 0 7px}.export-button{font-size:10px;color:var(--navy);text-decoration:underline;padding:0}
.legend-panel{left:12px;bottom:27px;max-width:calc(100vw - 24px)}.legend-panel>summary{display:flex;align-items:center;gap:8px;list-style:none;cursor:pointer;font-size:11px;padding:9px 11px}.key-icon{width:25px;height:9px;border-radius:2px;background:linear-gradient(90deg,#e5c46a,#a8c7e0,#00205c)}.legend-panel[open]{width:274px}.legend-panel .card-content{max-height:40dvh;overflow:auto;padding:3px 13px 12px}.legend-row{display:flex;align-items:center;gap:8px;font-size:11px;padding:4px 0}.swatch{display:inline-block;width:13px;height:13px;border:1px solid var(--outline,#00205c22);border-radius:3px;background:var(--swatch,#ADB5BC);flex:none}.legend-note{font-size:9px;line-height:1.45;color:var(--muted);border-top:1px solid var(--line);padding-top:8px;margin-bottom:0}
.mapboxgl-ctrl-top-right{top:12px;right:16px}.mapboxgl-ctrl-top-right .mapboxgl-ctrl{margin:0 0 8px}.mapboxgl-ctrl-group{border:1px solid var(--line);box-shadow:var(--shadow)!important}.mapboxgl-ctrl-group button{width:30px;height:30px}.mapboxgl-ctrl-scale{font-size:9px;background:#ffffffc9}.mapboxgl-ctrl-attrib{font-size:9px}#north-up svg{width:20px;height:20px}#tilt-map{font-size:10px;font-weight:700}#tilt-map[aria-pressed=true]{background:var(--navy);color:white}
.mapboxgl-popup{z-index:20}.mapboxgl-popup-content{font-family:var(--body);color:var(--ink);border:1px solid #cfdae5;border-radius:9px;box-shadow:0 4px 22px #15334b2a;padding:15px 17px;max-height:min(440px,calc(100dvh - var(--header) - 35px));overflow:auto}.mapboxgl-popup-close-button{font-size:22px;width:29px;height:29px;right:2px;top:2px;color:var(--muted)}.callout-head{font-size:10px;color:var(--muted);padding-right:13px;margin:0 0 4px}.callout-topic{font:500 22px/1.2 var(--heading);color:var(--navy);margin:0 0 9px}.callout-value{font:600 37px/1.1 var(--heading);color:var(--navy)}.callout-metric{font-size:13px;font-weight:600;line-height:1.35;margin:5px 0 9px}.callout-fact{font-size:11px;margin:4px 0;color:#486077}.callout-people{font-size:10px;color:var(--muted);margin:0 0 6px}.resident-row{display:grid;grid-template-columns:13px 55px minmax(0,1fr);gap:7px;align-items:start;border-top:1px solid #e2e9ef;padding:8px 0;font-size:11px;line-height:1.35}.resident-row .swatch{margin-top:2px;border-radius:50%}.resident-name{color:var(--muted);font-size:10px;padding-top:1px}.resident-status{font-weight:500}.resident-status small{display:block;color:var(--muted);font-size:9px;font-weight:400;margin-top:3px}.callout-note{font-size:9px;line-height:1.45;color:var(--muted);margin:6px 0}.data-tag{display:block;font-size:8px;letter-spacing:.35px;color:var(--muted);margin-top:9px}.popup-edit{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}.popup-edit summary{font-size:10px;cursor:pointer}.popup-edit label{display:block;font-size:10px;margin-top:7px}.popup-edit select{display:block;width:100%;border:1px solid var(--line);border-radius:4px;background:white;padding:5px;font-size:11px;margin-top:4px}.action{font-size:11px;background:#f4f8fb;border:1px solid var(--line);border-radius:5px;padding:7px 9px;margin-top:8px}.popup-head{font:500 20px var(--heading);padding-right:15px}.popup-caption,.caption{color:var(--muted);font-size:11px}.source-link{font-size:11px;color:var(--navy)}
#load-status{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);background:white;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:14px 18px;z-index:40;font-size:13px}dialog{color:var(--ink);font:13px/1.6 var(--body);max-width:480px;width:calc(100vw - 28px);max-height:82dvh;overflow:auto;padding:24px;border:1px solid var(--line);border-radius:10px}dialog::backdrop{background:#12304766}.dialog-close{position:absolute;right:8px;top:4px;font-size:24px}dialog h1{font:500 27px/1.2 var(--heading);color:var(--navy)}.eyebrow{font-size:9px;letter-spacing:1px;color:var(--muted)}
@media(max-width:700px){:root{--header:64px;--rail:143px}#app-header{gap:10px;padding:8px 10px}#campaign-header{gap:7px}#campaign-header strong{font-size:23px}#campaign-header span{font-size:8px;letter-spacing:1.5px}.campaign-mark{grid-template-columns:repeat(2,12px);gap:2px}.campaign-mark i{width:12px;height:12px}#map-search{flex:1}.search-field{height:35px}.search-field input{font-size:11px;padding:5px 2px 5px 5px}.search-field button{width:22px}#search-clear{display:none}#layers-menu>summary{padding:8px;gap:8px;font-size:11px}.rail-section{padding:6px}.rail-section h2{font-size:13px;margin:3px 5px 5px}.rail-section button{font-size:11px;min-height:25px;padding:5px 6px}#control-rail{top:calc(var(--header) + 9px)}.summary-panel{width:230px;right:10px;bottom:56px;max-height:calc(100dvh - var(--header) - 220px)}.summary-panel>summary{padding:12px 15px}#summary-title{font-size:20px}#summary-value{font-size:39px}#summary-caption{font-size:20px}#baseline-comparisons{padding:0 15px}.summary-panel .card-content{padding:0 15px 12px}.legend-panel{bottom:27px;left:10px;z-index:13}.legend-panel[open]{max-height:50dvh;overflow:auto}.mapboxgl-ctrl-top-right{right:10px;top:9px}.boundary-popover{width:250px}#search-results,#search-status:not(:empty){position:fixed;top:calc(var(--header) - 4px);left:10px;right:10px;max-height:50dvh}.mapboxgl-popup-content{max-height:calc(100dvh - var(--header) - 45px)}}
@media(max-width:420px){#app-header{gap:7px;padding:7px 8px}#campaign-header strong{font-size:20px}#campaign-header span{font-size:7px;letter-spacing:1.2px}#campaign-header{gap:6px}.campaign-mark{grid-template-columns:repeat(2,10px)}.campaign-mark i{width:10px;height:10px}#layers-menu>summary{padding:8px 6px;gap:4px}#search-submit{width:22px}.search-field svg{width:14px}.search-field input{font-size:10px}.summary-panel{width:215px;right:10px}.mapboxgl-popup{max-width:calc(100vw - 24px)!important}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
