/* Full-height map with compact floating controls. */
html,body{height:100%;overflow:hidden}
body{height:100dvh;display:flex;flex-direction:column}
[hidden]{display:none!important}
main{width:100%;height:100%;max-width:none;min-height:0;flex:1;margin:0;padding:0;display:flex;flex-direction:column}
.workspace{position:relative;flex:1;min-height:0;grid-template-columns:210px minmax(0,1fr);grid-template-rows:minmax(0,1fr);border:0;border-radius:0;box-shadow:none}
.sidebar{min-height:0;max-height:none;overflow:hidden;background:#fff;z-index:1100}
.sidebar-brand{padding:12px 10px 13px;border-bottom:1px solid var(--line);flex-shrink:0}
.brand{flex-direction:column;align-items:center;gap:7px;text-align:center;letter-spacing:0}
.brand-mark{display:block;width:190px;height:auto;max-width:100%;flex-shrink:0;object-fit:contain}
.brand-name{display:block;font-family:Manrope,Arial,sans-serif;font-size:25px;font-weight:800;letter-spacing:-.8px;line-height:1.15}.brand-name>span{font-weight:500;color:#367268}
.sidebar-brand h1{text-align:center;font-family:Manrope,Arial,sans-serif;font-size:14px;line-height:1.45;letter-spacing:-.2px;margin:12px 0 6px;font-weight:600}
.sidebar-brand>small{display:block;text-align:center;font-size:9px;color:#7c9187}
.side-head{padding:14px 14px 4px}.side-head>.eyebrow,.side-head p{display:none}
.tabs{margin-top:0}.tabs button{font-size:11px;padding:9px 5px}
.filters{padding:10px 14px 12px}.filters label{font-size:10px}
.filters select{padding:8px}
.territory-head{padding:13px 14px 9px}.search-wrap{margin:0 14px 8px;padding:5px 8px}
.territory-list{min-height:0;overflow:auto;padding:0 7px 8px;overscroll-behavior:contain}
.territory-row{padding:10px 7px;gap:7px}.territory-row .row-main{font-size:11px}.territory-row .order{width:15px}
.map-column{position:relative;min-height:0;overflow:hidden;display:block}
.map-stage{position:absolute;inset:0;min-height:0;max-height:none;z-index:0}
#map{min-height:0;max-height:none;height:100%;position:absolute;inset:0}
.map-toolbar{position:absolute;z-index:1000;top:12px;left:14px;right:14px;min-height:0;padding:0;border:0;gap:9px;flex-wrap:nowrap;pointer-events:none}
.map-toolbar>*{pointer-events:auto}
#breadcrumbs{min-width:0;overflow:auto;white-space:nowrap;background:#ffffffed;padding:9px 12px;border:1px solid #dce5dd;border-radius:9px;box-shadow:0 2px 12px #173f3b12}
.map-actions{display:flex;align-items:center;gap:7px;flex-shrink:0}
.map-actions .outline,.map-actions .quiet,.eess-button{font-size:10px;padding:9px 10px;white-space:nowrap;background:#fffffff5;border:1px solid #d5e2d9;border-radius:8px;box-shadow:0 2px 12px #173f3b12;min-height:35px}
.map-actions .export-button{font-size:17px;line-height:15px;width:32px;padding:8px}
#territories-toggle{display:none}
.map-heading{position:absolute;z-index:950;top:63px;left:14px;right:14px;padding:0;gap:10px;align-items:flex-start;pointer-events:none}
.map-heading>div{background:#fffffff0;border:1px solid #dce5dd;border-radius:9px;padding:10px 12px;box-shadow:0 2px 12px #173f3b12;pointer-events:auto}
.map-heading h2{font-size:22px;margin:0;line-height:1.2}.map-heading p{font-size:9px;margin:4px 0 0}
.map-heading .eyebrow{display:none}
.map-stats{gap:14px}.stat{padding-left:12px}.stat:first-child{border-left:0;padding-left:0}.stat strong{font-size:23px;line-height:1.2}.stat small{font-size:9px;margin-top:4px}
.legend{position:absolute;z-index:900;left:14px;bottom:32px;max-width:calc(100% - 80px);gap:7px 12px;padding:9px 12px;font-size:11px;color:#35544c;max-height:78px;overflow:auto;background:#fffffff0;border:1px solid #dce5dd;border-radius:8px;box-shadow:0 2px 12px #173f3b12}
.legend>span{display:inline-flex;align-items:center;gap:8px}
.legend i.aedes-territory-swatch{width:20px;height:14px;flex-shrink:0;margin:0}
.legend-health-symbol{font-size:17px;line-height:1;color:#286f7e;width:20px;text-align:center}
.basemap-picker{width:208px;top:141px;left:14px;padding:9px 10px}
.basemap-options{gap:4px}.basemap-options button{width:59px}.map-thumb{width:45px;height:34px}
.basemap-picker>strong{font-size:10px;margin-bottom:7px}.basemap-picker small{font-size:9px;margin-top:7px}
.map-help{display:none}
.map-controls{bottom:90px;right:14px}.map-controls button{width:32px;height:32px}
.map-north{right:14px;top:141px;font-size:8px;padding:4px 7px}.map-north b{font-size:21px}
.leaflet-control-scale{margin-bottom:7px!important;margin-left:14px!important}.leaflet-control-attribution{max-width:85%;font-size:8px!important}
.leaflet-popup-pane{z-index:1050}.leaflet-popup{pointer-events:auto}
#base-load-status{bottom:105px}
dialog{max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain}
#detail-dialog{width:min(760px,calc(100% - 32px));padding:22px;background:var(--paper)}
#detail-dialog .dialog-top{position:sticky;top:-22px;z-index:2;background:var(--paper);padding:8px 0 6px;gap:15px}
#detail-dialog .dialog-top h2{font-size:20px;margin:3px 0 12px}
#detail-dialog .localities-grid,#detail-dialog .facility-list{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:800px){
 .workspace{display:flex;flex-direction:column}.map-column{flex:1}.sidebar{display:none}
 .workspace.territories-open .sidebar{display:flex;position:absolute;z-index:1400;top:55px;left:8px;bottom:10px;width:245px;max-width:calc(100% - 16px);background:white;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px #153e3a30}
 .sidebar-brand{padding:12px 13px}.brand-mark{width:190px}.brand-name{font-size:24px}.sidebar-brand h1{margin-top:8px;font-size:12px}.sidebar-brand>small{font-size:8px}
 .sidebar .side-head{padding:12px 13px 4px}.sidebar .tabs{max-width:none}
 .sidebar .filters{padding:9px 13px 11px;border-bottom:1px solid var(--line)}
 .sidebar .filters>label,.sidebar .territory-head{display:flex}
 .sidebar .search-wrap{margin:0 13px 8px}.sidebar .territory-head{padding:11px 13px 8px}
 .sidebar .territory-list{display:block;flex:1;min-height:0;max-height:none;padding:0 7px 8px}
 .sidebar .territory-row{min-width:0;max-width:none;border:0;padding:10px 7px}.sidebar .territory-row .order{display:block}
 #territories-toggle{display:block;font-size:10px;padding:9px 10px;white-space:nowrap;background:#fffffff5}
 .map-toolbar{top:10px;left:10px;right:10px;gap:6px;flex-wrap:wrap}
 #breadcrumbs{font-size:10px;flex:1;padding:9px}#breadcrumbs button{font-size:10px}
 .map-actions{gap:5px}.map-actions .outline,.map-actions .quiet,.eess-button{font-size:9px;padding:8px;min-height:32px}
 .eess-button{width:auto;justify-content:center}.eess-button .cross{font-size:14px}
 .map-heading{top:98px;left:10px;right:10px;gap:8px}.map-heading>div{padding:8px 10px}.map-heading h2{font-size:20px}
 .map-stats{gap:9px}.stat{padding-left:9px}.stat strong{font-size:20px}.stat small{font-size:8px;max-width:65px;line-height:1.25}
 .map-stage,#map{min-height:0;max-height:none}
 .legend{left:10px;bottom:40px;padding:8px 10px;font-size:10px;gap:6px 10px;max-height:76px;max-width:calc(100% - 64px)}.legend .legend-title{width:auto}
 .basemap-picker{width:185px;padding:8px;top:173px;left:10px}.basemap-options button{width:53px;font-size:8px}.map-thumb{width:40px;height:29px}
 .basemap-picker small{font-size:8px}.map-controls{bottom:112px;right:10px}.map-north{display:none}
}
@media(max-width:540px){
 .map-actions{width:100%;justify-content:flex-end}.map-actions .quiet{margin-right:auto}.map-actions .export-button{width:26px;font-size:15px;padding:6px}
 #breadcrumbs{max-width:none}.map-heading>div{padding:8px}.map-heading h2{font-size:18px}.map-heading p{font-size:8px;max-width:125px}
 .map-stats{gap:5px}.stat{padding-left:6px}.stat strong{font-size:18px}.stat small{font-size:7px;max-width:50px}
 .leaflet-control-attribution{font-size:7px!important;max-width:83%}
 #detail-dialog .localities-grid,#detail-dialog .facility-list{grid-template-columns:1fr}
}
@media(max-height:650px){
 .map-heading p{display:none}.map-heading>div{padding-top:7px;padding-bottom:7px}
 .basemap-picker{top:126px}.basemap-picker>strong{display:none}.basemap-picker small{margin-top:5px}.map-thumb{height:25px}
 .legend{max-height:50px;padding-top:6px;padding-bottom:6px}.map-controls button{width:29px;height:29px}
}

#data-updated{font-size:9px;line-height:1.5;padding:0 2px}#data-updated[data-state=live]{color:#367268}#data-updated[data-state=stale]{color:#946620}#refresh-data{font-size:19px;line-height:15px;padding:8px 10px}#refresh-data:disabled{opacity:.5;cursor:wait}
