/* ISP state dots on the area-request map (Leaflet divIcons). */
.isp-dot{display:inline-block;width:10px;height:10px;border-radius:50%;box-sizing:border-box;background:var(--c);border:1.5px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.75)}
.isp-dot--o{background:#fff;border:3px solid var(--c);box-shadow:0 0 0 1px rgba(0,0,0,.55)}
.isp-mk{background:none;border:0}
.isp-mk .isp-dot{display:block;cursor:pointer;transition:transform .12s}
.isp-mk:hover .isp-dot,.isp-mk:focus .isp-dot{transform:scale(1.5)}
.isp-mk:focus{outline:none}
.isp-mk:focus-visible .isp-dot{box-shadow:0 0 0 2px var(--ink),0 0 0 4px #fff}
.zoom-far .isp-mk .isp-dot{width:7px;height:7px;border-width:1px}
.zoom-far .isp-mk .isp-dot--o{border-width:2px}
.isp-abbr{font:800 10px/12px var(--body);letter-spacing:.06em;color:var(--ink);background:rgba(255,255,255,.85);padding:0 2px;white-space:nowrap;pointer-events:none;text-align:right}
.isp-lead{pointer-events:none}
.leaflet-tooltip.isp-tip{font:700 12px/1.3 var(--body);border:2px solid var(--ink);border-radius:0;box-shadow:3px 3px 0 rgba(0,0,0,.3);padding:4px 8px}
.isp-pop{font:500 13px/1.4 var(--body)}
.isp-pop strong{font-weight:900}
.isp-pop .src{display:block;margin-top:6px;font-size:12px}
.leaflet-popup-content-wrapper{border-radius:0;border:2px solid var(--ink)}
.isp-key{display:flex;flex-wrap:wrap;gap:6px 16px;margin:12px 0 0;font-size:12.5px;font-weight:700;color:var(--gray-3)}
.isp-key span{display:inline-flex;align-items:center;gap:6px}
.isp-key .isp-dot{box-shadow:none;border-color:var(--ink)}
.isp-key .isp-dot--f{background:var(--ink)}
.isp-key .isp-dot--o{background:#fff;border:3px solid var(--ink)}
.isp-summary{margin:4px 0 6px;font-size:13px;line-height:1.45}
.isp-summary:empty{display:none}
.legend button{line-height:1.2}
#map{scroll-margin-top:110px}
/* 15-provider legend: keep names inside their column */
.legend ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 6px}
.legend li{min-width:0}
.legend button{font-size:13px;gap:7px;padding:6px 4px;min-width:0;overflow-wrap:break-word}
@media (max-width:980px){.legend ul{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:520px){.legend ul{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Address autocomplete (combobox + listbox) */
.map-tools{position:relative}
.ac-wrap{position:relative;flex:1;min-width:0;display:flex}
.ac-wrap .input{width:100%}
.ac-list{position:absolute;left:0;right:0;top:100%;z-index:1200;margin:0;padding:0;list-style:none;background:#fff;border:var(--line) solid var(--ink);border-top:0;box-shadow:8px 8px 0 rgba(0,0,0,.18);max-height:320px;overflow-y:auto}
.ac-list[hidden]{display:none}
.ac-list li{padding:10px 14px;cursor:pointer;border-top:1px solid #e4e4df;font-size:15px;line-height:1.3}
.ac-list li:first-child{border-top:0}
.ac-list li .ac-main{display:block;font-weight:800;color:var(--ink)}
.ac-list li .ac-sub{display:block;font-size:12.5px;color:var(--gray-3)}
.ac-list li[aria-selected="true"],.ac-list li:hover{background:var(--ink);color:#fff}
.ac-list li[aria-selected="true"] .ac-main,.ac-list li:hover .ac-main{color:var(--green)}
.ac-list li[aria-selected="true"] .ac-sub,.ac-list li:hover .ac-sub{color:#ccc}
.ac-list .ac-empty{cursor:default;color:var(--gray-3);font-size:14px}
.ac-list .ac-empty:hover{background:#fff;color:var(--gray-3)}
.ac-credit{padding:6px 14px!important;font-size:11px!important;color:var(--gray-3);cursor:default!important;background:var(--paper)!important}
/* On-site address results card (the FCC map can't be framed: X-Frame-Options DENY) */
.res-card{margin-top:14px;border:var(--line) solid var(--ink);border-left:8px solid var(--green);background:#fff;box-shadow:8px 8px 0 var(--ink);padding:18px 20px 16px}
.res-card[hidden]{display:none}
.res-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.res-eyebrow{font-weight:900;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--green)}
.res-close{all:unset;cursor:pointer;font-size:26px;line-height:1;font-weight:700;padding:0 4px;color:var(--ink)}
.res-close:focus-visible{outline:3px solid var(--green)}
.res-addr{font-family:var(--body);font-weight:900;font-size:clamp(19px,2vw,24px);line-height:1.2;margin:6px 0 2px;letter-spacing:-.01em;overflow-wrap:anywhere}
.res-state{margin:0 0 6px;font-size:14px;color:var(--gray-3)}
.res-state strong{color:var(--ink)}
.res-group{display:flex;align-items:center;gap:8px;margin:14px 0 6px;font-family:var(--body);font-weight:900;font-size:12px;letter-spacing:.16em;text-transform:uppercase}
.res-group span:last-child{color:var(--gray-3);letter-spacing:.06em}
.res-group .isp-dot{box-shadow:none;border-color:var(--ink)}
.res-group .isp-dot--f{background:var(--ink)}
.res-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid #dcdcd6}
.res-row{display:grid;grid-template-columns:14px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 10px 9px 2px;border-bottom:1px solid #dcdcd6}
.res-list .res-row:nth-child(odd){border-right:1px solid #dcdcd6}
.res-list .res-row:nth-child(even){padding-left:12px}
.res-row .isp-dot{width:12px;height:12px}
.res-name{min-width:0;line-height:1.2}
.res-name strong{display:block;font-size:15px;font-weight:900}
.res-name small{display:block;font-size:12px;color:var(--gray-3);margin-top:2px}
.res-req{all:unset;box-sizing:border-box;cursor:pointer;white-space:nowrap;font-weight:900;font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:7px 10px;border:2px solid var(--ink);background:#fff;transition:background .15s,color .15s}
.res-req:hover,.res-req:focus-visible{background:var(--ink);color:var(--green)}
.res-req:focus-visible{outline:3px solid var(--green);outline-offset:2px}
.res-note{margin:14px 0 0;font-size:13px;line-height:1.45;color:var(--gray-3)}
.res-note strong{color:var(--ink)}
.res-verify{margin:10px 0 0;font-size:11.5px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.res-verify a{color:var(--gray-3)}
.res-verify a:hover{color:var(--ink)}
@media (max-width:640px){
  .res-card{padding:16px 14px 14px;box-shadow:5px 5px 0 var(--ink)}
  .res-list{grid-template-columns:1fr}
  .res-list .res-row:nth-child(odd){border-right:0}
  .res-list .res-row:nth-child(even){padding-left:2px}
  .res-row{grid-template-columns:14px minmax(0,1fr) auto;gap:8px 10px}
  .res-name strong{font-size:15px}
  .res-req{padding:6px 8px;font-size:10.5px;letter-spacing:.06em}
  .res-group{letter-spacing:.1em;font-size:11.5px;flex-wrap:wrap}
}
@media (max-width:400px){
  .res-row{grid-template-columns:14px minmax(0,1fr)}
  .res-req{grid-column:2;justify-self:start;margin-top:2px}
}
/* Drop pins (fiber: white dot, coax: white disc with a C) */
.isp-pin{background:none;border:0}
.isp-pin__svg{display:block;overflow:visible;filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.45));transition:transform .12s}
.isp-pin:hover .isp-pin__svg{transform:translateY(-2px) scale(1.08)}
.isp-key svg{display:inline-block;vertical-align:-3px;margin-right:6px}
.res-pin{display:inline-flex;align-items:center;justify-content:center;width:14px}
.res-pin svg{display:block}
.res-group .res-pin{width:11px;margin-right:2px}
.res-row.is-near{background:#eef8ef}
.res-badge{display:inline-block;font-style:normal;font-size:9.5px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;background:var(--green);color:#fff;padding:2px 6px;margin-left:6px;vertical-align:2px}
/* Legend: All clears the provider filter */
.swatch--all{background:conic-gradient(#EE0000 0 25%,#FFC400 0 50%,#009FDB 0 75%,#2E9E48 0)}
.res-loading{color:#555;font-variant-numeric:tabular-nums}
.res-card .res-addr{overflow-wrap:anywhere}
