:root{font-family:Segoe UI,Arial,sans-serif;color:#182b44;background:#f3f6fa;font-size:16px}*{box-sizing:border-box}body{margin:0}header{background:#122642;color:white;padding:22px 4%;display:flex;justify-content:space-between;align-items:center;border-bottom:4px solid #31b8a5}.brand{font-size:21px;letter-spacing:.03em}.brand b{font-weight:400;margin-left:10px}.badge{font-size:12px;letter-spacing:.12em;color:#bde9e5}main{max-width:1530px;margin:auto;padding:32px 4%}.heading{display:flex;align-items:center;justify-content:space-between;gap:20px}h1{font-size:36px;letter-spacing:-.035em;margin:6px 0 26px;font-weight:650}h2{font-size:21px;margin:0 0 14px}h3{font-size:18px;margin:0 0 12px}p{line-height:1.55}.eyebrow{font-size:12px;letter-spacing:.13em;font-weight:700;color:#377a83;margin:0}.controls{display:flex;align-items:end;gap:14px;flex-wrap:wrap}label{font-size:14px;font-weight:600;display:flex;flex-direction:column;gap:7px;flex:1}select,button,input{font:inherit;min-height:44px;border:1px solid #c8d2df;border-radius:5px;padding:10px 14px;background:white;color:#182b44}button{cursor:pointer;font-weight:600}button:hover{background:#e6f1f3}button:focus-visible,select:focus-visible{outline:3px solid #178879;outline-offset:3px}.meta{font-size:13px;color:#5c6e82;line-height:1.55}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:22px 0}.card{background:white;border:1px solid #dce4ee;border-top:3px solid #238d91;padding:21px;border-radius:5px}.card p{margin:0 0 8px;font-size:14px}.card strong{display:block;font-size:32px;letter-spacing:-.025em}.card small{display:block;margin-top:8px;color:#617287;font-size:12px}.workspace{display:grid;grid-template-columns:2.2fr 1fr;gap:20px}.mapPanel,aside,#detail{background:white;border:1px solid #dce4ee;border-radius:7px;padding:24px}.mapPanel{min-width:0}.sectionHead{display:flex;justify-content:space-between;gap:16px}.sectionHead span{font-size:13px;color:#617287}.sectionHead h2{font-size:18px}#map{width:100%;display:block;background:#f7fafd}#map path{stroke:white;stroke-width:.55;cursor:pointer}#map path:hover,#map path:focus{stroke:#102440;stroke-width:2}#map path.selected{stroke:#d37a17;stroke-width:2.5}#legend{display:flex;align-items:center;gap:10px;font-size:12px;margin-top:14px}#legend i{height:10px;width:180px;background:linear-gradient(90deg,#e0f1ef,#187d88,#132d52)}aside{background:#132b47;color:white}aside .eyebrow{color:#76d6ca}aside h2{font-size:27px;margin-top:12px}aside p{font-size:15px;color:#d9e5f1}aside a{color:#83dfd4}.briefRow{border-top:1px solid #37516a;padding:13px 0;display:flex;justify-content:space-between;gap:20px;font-size:14px}.briefRow b{white-space:nowrap}.tabs{display:flex;gap:4px;margin:28px 0 0;overflow:auto}.tabs button{border:0;border-radius:5px 5px 0 0;background:transparent;white-space:nowrap}.tabs button[aria-pressed=true]{background:white;border-top:3px solid #238d91}#detail{border-radius:0 7px 7px;min-height:260px}.columns{display:grid;grid-template-columns:1fr 1fr;gap:30px}.note{padding:14px 18px;background:#eef5fa;border-left:3px solid #5c92b6;line-height:1.55;font-size:14px}.warning{background:#fff7e9;border-color:#c39136}.pill{display:inline-block;font-size:12px;background:#eaf4f3;color:#246b63;padding:4px 8px;border-radius:3px;margin:0 5px 5px 0}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:12px 8px;border-bottom:1px solid #e5ebf2}th{color:#586c82;font-weight:600}td:last-child,th:last-child{text-align:right}.tableWrap{overflow-x:auto}a{color:#166b8e}footer{font-size:12px;color:#617287;margin:26px 0;line-height:1.7}.barRow{margin:17px 0}.barRow div{display:flex;justify-content:space-between;font-size:14px;margin-bottom:7px}.bar{height:9px;background:#eaf0f7;border-radius:2px;overflow:hidden}.bar i{display:block;height:100%;background:#277f90}.error{padding:30px;color:#943b1b}.officeList{max-height:450px;overflow:auto}.subcontrols{display:flex;gap:18px;margin:15px 0}.small{font-size:14px}@media(max-width:900px){.workspace,.columns{grid-template-columns:1fr}.cards{grid-template-columns:repeat(2,1fr)}h1{font-size:30px}.badge{display:none}.heading{align-items:start}main{padding:24px 4%}}@media(max-width:520px){.controls{display:grid;grid-template-columns:1fr 1fr}.cards{gap:8px}.card{padding:14px}.card strong{font-size:25px}.heading{display:block}.heading button{margin-bottom:18px}.mapPanel,aside,#detail{padding:16px}.brand{font-size:17px}}@media print{header{background:white;color:#122642}.controls,.tabs,button,#mapHint{display:none}.workspace{grid-template-columns:1.5fr 1fr}.cards{grid-template-columns:repeat(4,1fr)}body{background:white}main{padding:0}.card strong{font-size:23px}aside{background:white;color:#122642}aside p{color:#122642}a{color:inherit}#detail{break-inside:avoid}.mapPanel{padding:10px}footer{margin:10px 0}}

/* Responsive refinements: preserve desktop layout, fit real phone widths. */
main,.controls>label,.workspace>*,.columns>*{min-width:0}
select,input{max-width:100%;min-width:0}
input:focus-visible,summary:focus-visible,.tableWrap:focus-visible{outline:3px solid #178879;outline-offset:3px}
.phoneFilters,.briefToggle,.tableHint{display:none}
.sectionHead{flex-wrap:wrap;align-items:flex-start}
#legend{flex-wrap:wrap}
#legend i{flex:0 1 140px;min-width:60px}
#legend span:last-child{flex-basis:100%;line-height:1.5}
.tableWrap{max-width:100%;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.briefRow>span{min-width:0;overflow-wrap:anywhere}
.card strong{font-variant-numeric:tabular-nums}
@media screen and (max-width:600px){
 header{padding:16px max(16px,env(safe-area-inset-left))}
 .brand{font-size:18px;letter-spacing:0;line-height:1.4}.brand b{margin-left:5px}
 main{padding:22px max(14px,env(safe-area-inset-left)) 32px}
 .heading{display:block}.heading h1{font-size:28px;line-height:1.15;margin:8px 0 16px;max-width:340px}
 .heading button{margin-bottom:18px;min-height:44px;font-size:14px;padding:8px 12px}
 .controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
 .controls>label{justify-content:flex-end;font-size:14px}
 select,input{width:100%;font-size:16px;min-height:48px;padding:10px 9px}
 button{min-height:48px;touch-action:manipulation}
 #reset{grid-column:1/-1;grid-row:2;font-size:14px;min-height:44px}
 .phoneFilters{display:block;grid-column:1/-1;border:1px solid #c8d2df;border-radius:6px;background:#fff}
 .phoneFilters summary{padding:14px;font-size:15px;font-weight:600;cursor:pointer;min-height:48px}
 .phoneFilterFields{display:grid;gap:14px;padding:0 14px 16px}
 .meta{font-size:13px;overflow-wrap:anywhere}
 .cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}
 .card{padding:14px 11px}.card p{font-size:14px;line-height:1.4;overflow-wrap:anywhere}
 .card strong{font-size:clamp(18px,5.2vw,29px);line-height:1.25;overflow-wrap:anywhere}
 .card small{font-size:12px;line-height:1.45}
 #detail .cards{grid-template-columns:1fr}.card small:empty{display:none}
 #detail .card strong{font-size:26px}
 .workspace,.columns{grid-template-columns:minmax(0,1fr);gap:18px}
 .mapPanel,aside,#detail{padding:16px 12px}
 .sectionHead{gap:6px}.sectionHead h2{line-height:1.4;margin-bottom:4px}
 .sectionHead span{font-size:13px;line-height:1.4}
 #map{margin-top:10px;aspect-ratio:12/7;height:auto;touch-action:pan-y pinch-zoom}
 #legend{gap:8px;font-size:13px}.mapPanel>p.meta{margin-bottom:0}
 aside h2{font-size:23px;margin-bottom:10px}
 .briefToggle{display:block;width:100%;background:#203f5b;border-color:#52738e;color:white;text-align:left}
 .briefToggle:hover{background:#2b506f}
 .briefToggle[aria-expanded=false]+#brief{display:none}
 .tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:22px;overflow:visible;margin-bottom:12px}
 .tabs button{border:1px solid #c8d2df;border-radius:6px;background:white;white-space:normal;padding:10px 8px;font-size:14px;line-height:1.35;min-height:48px}
 .tabs button[aria-pressed=true]{border:2px solid #238d91;background:#e5f5f2;color:#115e59}
 #detail{border-radius:7px}#detail h2{font-size:21px;line-height:1.35;overflow-wrap:anywhere}
 .note{font-size:14px;padding:12px;overflow-wrap:anywhere}
 .columns{gap:24px}th,td{padding:12px 8px;line-height:1.4}
 .wideTable table{min-width:620px}.wideTable .tableHint{display:block;position:sticky;left:0;width:calc(100vw - 82px);font-size:13px;color:#48657f;margin:10px 0}
 .officeList{max-height:520px;margin-top:12px}.officeList .tableWrap{overflow:visible}.officeList .tableHint{position:sticky;left:0}
 .barRow>div:first-child{gap:10px}.barRow b{white-space:nowrap}
 .subcontrols{flex-direction:column}.pill{max-width:100%}
 footer{font-size:12px;overflow-wrap:anywhere}
}
@media print{.phoneFilters,.briefToggle,.tableHint{display:none!important}#brief{display:block!important}}
