.district{stroke:#fff;stroke-width:1.6;stroke-linejoin:round;vector-effect:non-scaling-stroke;cursor:pointer;transition:filter .18s,opacity .18s;transform:none}
.district.dimmed{opacity:.12}.district.focused{stroke:#075f48;stroke-width:2.4}.district-muted .district-label{opacity:.12}.district-school{cursor:pointer}.district-school circle{r:.72px;vector-effect:non-scaling-stroke;stroke:#fff;stroke-width:1.4;transition:r .15s,filter .15s}.district-school:hover circle{r:1px;filter:drop-shadow(0 1px 2px rgba(14,57,62,.35))}.district-school text{display:none}.school-card-brand{color:#16806c}.school-card-grades{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:10px 0}.school-card-grades div{padding:6px;background:#f3f8f6;border-radius:6px}.school-card-grades span{display:block;color:#819194;font-size:7px}.school-card-grades b{font-size:9px}.map-tool.hidden{display:none}
.map-back-button{position:absolute;z-index:5;left:16px;top:16px;border:1px solid #cdded9;background:rgba(255,255,255,.96);color:#116c57;border-radius:7px;padding:8px 11px;font-size:10px;font-weight:700;cursor:pointer;box-shadow:0 3px 12px rgba(18,57,61,.13)}.map-back-button:hover{background:#edf7f4}.map-notice-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#d49a34;margin-right:3px}
.district-focused .district-label{display:none}.district-focused .campus-marker .pin{r:1.15px;stroke-width:.25px;filter:drop-shadow(0 .25px .45px rgba(17,47,53,.35))}.district-focused .campus-marker .halo{r:2.05px;stroke-width:.4px;opacity:.16}.district-focused .campus-marker text{display:none}.district-focused .district-school circle{r:.38px;stroke:none;opacity:.68}.district-focused .district-school:hover circle{r:.58px;opacity:1;filter:drop-shadow(0 .2px .3px rgba(14,57,62,.28))}
.district:hover,.district.selected{filter:drop-shadow(0 3px 3px rgba(9,73,57,.25));stroke:#075f48;stroke-width:2.2;transform:none}
.district-label{font-size:10px;fill:#21433f;text-anchor:middle;dominant-baseline:middle;pointer-events:none;font-weight:700;paint-order:stroke;stroke:rgba(255,255,255,.72);stroke-width:2.5px;stroke-linejoin:round}
.district-label.light{fill:#fff;stroke:rgba(5,85,63,.35)}
.date-filter select{background:#fff;border:1px solid #dbe4e2;border-radius:8px;padding:10px 32px 10px 13px;color:#344e54}
.map-filters{display:flex;align-items:center;gap:9px}.brand-control{display:flex;gap:3px}.brand-control button{border:1px solid #dfe7e5;background:#fff;color:#728286;border-radius:7px;padding:6px 9px;font-size:10px;cursor:pointer}.brand-control button.active{border-color:#173e44;color:#173e44;font-weight:700;background:#eff5f4}.brand-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}.brand-dot.olympiad{background:#f07a48}.brand-dot.u2m{background:#5b6ee1}.campus-marker{cursor:pointer}.campus-marker .halo{fill:none;stroke-width:7;opacity:.16}.campus-marker .pin{stroke:#fff;stroke-width:2;filter:drop-shadow(0 2px 3px rgba(17,47,53,.3))}.campus-marker text{font-size:9px;font-weight:800;fill:#17383d;paint-order:stroke;stroke:#fff;stroke-width:3px;pointer-events:none}.campus-marker:hover .pin,.campus-marker.selected .pin{stroke:#102f34;stroke-width:3}.out-of-seoul{fill:none;stroke:#8ba3a4;stroke-width:1.5;stroke-dasharray:4 4}.out-label{font-size:9px;fill:#718789}.campus-card{position:absolute;z-index:4;right:58px;top:68px;width:235px;background:#fff;border:1px solid #dfe8e6;border-radius:10px;padding:14px;box-shadow:0 8px 25px rgba(22,52,58,.15)}.campus-card .campus-brand{font-size:9px;font-weight:800}.campus-card h3{margin:4px 0 9px;font-size:15px}.campus-card p{margin:4px 0;color:#748588;font-size:10px;line-height:1.5}.campus-card .campus-stat{display:flex;justify-content:space-between;margin-top:10px;padding-top:10px;border-top:1px solid #edf1f0}.campus-card .campus-stat strong{font-size:12px}.campus-card button{position:absolute;right:9px;top:7px;border:0;background:none;color:#91a0a1;cursor:pointer}@media(max-width:760px){.map-filters{display:block}.brand-control{margin-bottom:8px}.brand-control button{flex:1}.campus-card{right:12px;top:104px}.map-header{padding-bottom:10px}}
