:root{font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;color:#11171d;background:#e8ecef;--red:#d72b2b;--black:#0a0a0a;--target:#8d969f;--outreach:#e2a318;--connected:#19815e;--scheduled:#2976d4;--completed:#8455bf;--blocked:#c73c3c}
*{box-sizing:border-box} html,body,#app{height:100%;width:100%;margin:0}#app{position:relative;overflow:hidden}#map{position:absolute;inset:0;background:#e5e9ed}.maplibregl-ctrl-bottom-right{bottom:32px}.maplibregl-ctrl-attrib{font-size:10px!important}
button,input{font:inherit}button{cursor:pointer}.masthead{position:absolute;top:max(14px,env(safe-area-inset-top));left:14px;width:min(435px,calc(100% - 28px));border:1px solid #cbd2d8;background:#fff;box-shadow:0 8px 30px #1026381c;z-index:5}.brandline{height:45px;display:flex;align-items:center;padding:0 15px;gap:11px;background:#0a0a0a;color:#fff}.wordmark{font-weight:900;letter-spacing:-.05em;font-size:21px;white-space:nowrap}.branddot{color:var(--red)}.rule{background:#454545;width:1px;height:18px}.productlabel{font-size:11px;letter-spacing:.19em;font-weight:800;white-space:nowrap}.count{margin-left:auto;color:#afbac2;font-size:10px;letter-spacing:.06em}.searchline{height:46px;display:flex;align-items:center;gap:11px;padding:0 13px}.searchline svg{width:20px;height:20px;fill:none;stroke:#6b7885;stroke-width:2;flex-shrink:0}.searchline input{border:0;outline:0;flex:1;min-width:0;font-size:13px;font-weight:500;color:#27323c;background:transparent}.searchline input::placeholder{color:#8d969f}.searchline kbd{color:#9099a4;font-size:11px;border:1px solid #e1e5e9;padding:2px 6px}
.search-results{position:absolute;top:calc(100% + 5px);left:-1px;right:-1px;background:white;border:1px solid #d5dce1;box-shadow:0 10px 24px #1026381f;max-height:320px;overflow-y:auto}.result{width:100%;border:0;text-align:left;background:white;padding:12px 14px;display:flex;gap:10px;align-items:center;border-bottom:1px solid #eef0f3;color:#17202a}.result:hover,.result:focus-visible{background:#f4f6f8}.result strong{display:block;font-size:13px}.result small{color:#717d89;font-size:11px;display:block;margin-top:3px}.nores{font-size:12px;padding:14px;color:#5c6670}
.areas{position:absolute;top:116px;left:14px;display:flex;gap:4px;z-index:4;flex-wrap:wrap;width:min(450px,calc(100% - 28px))}.areas button{background:rgba(255,255,255,.96);border:1px solid #d3d9de;padding:8px 11px;text-transform:uppercase;letter-spacing:.07em;font-size:10px;font-weight:800;color:#596570}.areas button:hover{border-color:#8e9ba6}.areas button.active{background:#0a0a0a;color:#fff;border-color:#0a0a0a}
.pin{display:flex;justify-content:center;align-items:center;border:2px solid #fff;background:var(--pin);width:18px;height:18px;border-radius:50%;box-shadow:0 1px 1px #0008,0 0 0 1px #29333d55;transition:transform .15s ease;cursor:pointer}.pin::after{content:"";position:absolute;inset:-12px}.pin:hover,.pin.selected{transform:scale(1.32);box-shadow:0 0 0 3px #ffffffaa,0 0 0 5px #1f293755;z-index:3}.pin:focus-visible{outline:4px solid #1c78d4}.pin.target{--pin:var(--target)}.pin.outreach{--pin:var(--outreach)}.pin.connected{--pin:var(--connected)}.pin.scheduled{--pin:var(--scheduled)}.pin.completed{--pin:var(--completed)}.pin.blocked{--pin:var(--blocked)}
.legend{position:absolute;z-index:3;bottom:54px;left:14px;background:#fffefdf2;border:1px solid #d7dce0;padding:10px 12px;display:flex;gap:13px;flex-wrap:wrap;max-width:min(600px,calc(100% - 28px));box-shadow:0 3px 12px #10263814}.legend span{font-size:10px;color:#4b5864;display:flex;align-items:center;gap:5px;font-weight:600;white-space:nowrap}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.dot.target{background:var(--target)}.dot.outreach{background:var(--outreach)}.dot.connected{background:var(--connected)}.dot.scheduled{background:var(--scheduled)}.dot.completed{background:var(--completed)}.dot.blocked{background:var(--blocked)}
.detail{position:absolute;z-index:6;right:16px;top:16px;width:min(348px,calc(100% - 28px));background:#fff;border:1px solid #cfd5dc;box-shadow:0 14px 40px #1524333b;padding:20px}.detailtop{display:flex;justify-content:space-between;align-items:start;gap:10px}.eyebrow{color:var(--red);font-size:10px;font-weight:800;letter-spacing:.17em}.detail h1{font-size:22px;letter-spacing:-.035em;margin:8px 0 0;line-height:1.17;font-weight:800}.close{border:0;background:#f0f2f4;color:#35404a;width:30px;height:30px;font-size:22px;flex-shrink:0;line-height:1}.address{color:#677380;font-size:12px;margin:12px 0 14px;line-height:1.5}.statusrow{display:flex;align-items:center;gap:8px}.status-pill{padding:5px 9px;font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;background:#eef0f2;color:#3b4852}.status-pill.target{background:#edf0f2;color:#56616a}.status-pill.outreach{background:#fff3d5;color:#7b5500}.status-pill.connected{background:#ddf4e9;color:#116442}.status-pill.scheduled{background:#e2efff;color:#1c5ba7}.status-pill.completed{background:#f0e8fc;color:#6139a1}.area-tag{font-size:11px;color:#65717e}.detail dl{border-top:1px solid #e1e5e9;margin:16px 0 0}.detail dl>div{padding:13px 0;border-bottom:1px solid #e7eaed}.detail dt{text-transform:uppercase;color:#8b96a0;font-size:10px;font-weight:800;letter-spacing:.1em}.detail dd{font-size:13px;font-weight:600;margin:6px 0 0;line-height:1.45}.mapfocus{width:100%;text-align:left;border:0;background:#101214;color:white;padding:12px 14px;margin-top:15px;font-weight:700;font-size:12px;display:flex;justify-content:space-between}.mapfocus:hover{background:#2c343b}.message{position:absolute;z-index:9;top:49%;left:50%;transform:translate(-50%,-50%);background:#fff;border:1px solid #bfc9d2;padding:18px;max-width:400px;font-size:13px;box-shadow:0 9px 25px #23344433}.footer{position:absolute;z-index:3;bottom:10px;left:14px;background:#ffffffb8;padding:5px 8px;color:#69737d;font-size:9px;letter-spacing:.095em;font-weight:800}.footer span{padding:0 3px;color:#a1aab3}
@media(max-width:720px){.masthead{left:12px;top:max(10px,env(safe-area-inset-top));width:calc(100% - 24px)}.areas{left:12px;top:109px}.areas button{padding:8px 9px;font-size:9px}.detail{right:10px;left:10px;bottom:max(12px,env(safe-area-inset-bottom));top:auto;width:auto;padding:17px}.detail h1{font-size:20px}.legend{bottom:60px;left:10px;padding:8px;gap:10px}.legend span{font-size:9px}.footer{left:10px;bottom:10px;font-size:8px;max-width:calc(100% - 20px)}.maplibregl-ctrl-bottom-right{bottom:31px!important}.maplibregl-ctrl-attrib{max-width:175px}}
