.intro h1{font-size:clamp(29px,3vw,42px)}
.top-layout{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:stretch}
.map-panel{padding:20px 18px 16px;overflow:hidden;min-width:0;align-self:start}
.province-map{width:100%;height:auto;aspect-ratio:900/650;overflow:hidden;touch-action:none;user-select:none;display:block}
.province-map text{font-size:17px}.compass text{font-size:12px}
.leader{stroke:#657e83;stroke-width:1.15;stroke-dasharray:3 3}.leader-end{fill:#657e83;pointer-events:none}
.label-bg{fill:#fffefa;fill-opacity:1;stroke:#d2ded4;stroke-width:1}
.map-label:hover .label-bg{fill:#e3ede7}.map-label:focus-visible .label-bg{stroke:#193b4e;stroke-width:3}.map-label.selected .label-bg{fill:#193b4e}.map-label.selected text{fill:#fff}
.hero{height:auto;min-height:0;align-self:stretch}.hero img{object-position:48% center}.hero-content{left:28px;right:28px;bottom:28px}.hero h2{font-size:38px}.hero-content p{font-size:14px}
.map-layers{border:0;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px}
.map-layers legend{font-size:11px;font-weight:600;margin-bottom:7px}.map-layers label{display:flex;gap:7px;align-items:center;font-size:11px;cursor:pointer;line-height:1.5}
.map-layers input{accent-color:#285b72;width:16px;height:16px;margin:0;flex-shrink:0}
.swatch{display:inline-block;width:12px;height:12px;border-radius:50%;border:2px solid #72ceff;background:#175bd5;flex-shrink:0}.swatch.tourism{background:#ed4298;border-color:#ffdb4e}.swatch.hospital{background:#fff;border-color:#72ceff}.swatch.pho{background:#ffe351;border-color:#225cc5}
.map-stage{position:relative;margin-top:4px;background:radial-gradient(ellipse at center,#fffefa80,transparent 65%);border-radius:16px;overflow:hidden}
.map-tools{display:flex;gap:5px;align-items:center;justify-content:flex-end;flex-wrap:wrap;margin:10px 0 0}
.map-tools button{border:1px solid #c7d5ce;background:#fffefa;border-radius:8px;padding:4px 11px;font-size:12px;line-height:1.5}.map-tools button:hover{background:#dce9e2}.map-tools .zoom-value{font-size:10px;color:#61747c;min-width:30px;text-align:center}.map-tools button:disabled{opacity:.4;cursor:default}
.place-marker{cursor:pointer;outline:none;--point-fill:#175bd5;--point-edge:#72ceff}.marker-tourism{--point-fill:#ed4298;--point-edge:#ffdb4e}.marker-hospital{--point-fill:#fff;--point-edge:#72ceff}.marker-pho{--point-fill:#ffe351;--point-edge:#225cc5}
.marker-hit{fill:transparent;stroke:none}.marker-core{fill:var(--point-fill);stroke:var(--point-edge);stroke-width:2;vector-effect:non-scaling-stroke}.marker-pulse{fill:none;stroke:var(--point-edge);stroke-width:2;animation:place-blink 1.65s ease-in-out infinite;vector-effect:non-scaling-stroke}.marker-pho .marker-pulse{animation:none}.place-marker.active .marker-hit,.place-marker:focus-visible .marker-hit{stroke:#193b4e;stroke-width:1;stroke-dasharray:2 2;vector-effect:non-scaling-stroke}.place-marker[hidden]{display:none}
@keyframes place-blink{0%,100%{opacity:1}50%{opacity:.15}}
.map-tooltip{position:absolute;z-index:5;width:max-content;max-width:min(270px,calc(100% - 16px));padding:11px 14px;border:1px solid #c4d5ce;border-radius:12px;background:#fffefa;box-shadow:0 8px 24px #193b4e29;color:#193b4e;font-size:11px;line-height:1.7;overflow-wrap:anywhere}.map-tooltip[hidden]{display:none}.map-tooltip strong{display:block;font-size:13px;line-height:1.6;margin-bottom:3px}.map-tooltip span{display:block;color:#61747c}.map-tooltip .tooltip-note{color:#886737;font-size:10px;margin-top:5px}
.map-count{font-size:10px;color:#61747c}.map-chips{margin-top:12px}.map-footer{flex-wrap:wrap}.map-source-note{font-size:9px;color:#61747c;margin:8px 0;line-height:1.6}
.basic-data-disclosure>summary{cursor:pointer;list-style:none;border:1px solid var(--line);border-radius:18px;background:var(--paper);padding:20px 24px;margin:0}.basic-data-disclosure>summary::-webkit-details-marker{display:none}.basic-data-disclosure>summary:hover{border-color:#a9bdb6}.basic-data-disclosure>summary:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.data-toggle{display:flex;align-items:center;gap:10px;font-size:12px;white-space:nowrap;color:var(--green);flex-shrink:0;padding:7px 8px 7px 16px;border:1px solid var(--line);border-radius:999px;background:linear-gradient(135deg,#faf5ff,#ecfdf5);box-shadow:0 3px 10px #6d28d90a;transition:box-shadow .2s,border-color .2s}.basic-data-disclosure>summary:hover .data-toggle{border-color:#c4b5fd;box-shadow:0 5px 14px #6d28d914}.toggle-symbol{width:32px;height:32px;flex-shrink:0;display:grid;place-items:center;border:1px solid #ddd6fe;border-radius:50%;color:#6d28d9;background:#ede9fe;transition:transform .2s}.toggle-symbol svg{display:block;width:18px;height:18px}.hide-data{display:none}.basic-data-disclosure[open] .show-data{display:none}.basic-data-disclosure[open] .hide-data{display:inline}.basic-data-disclosure[open] .toggle-symbol{transform:rotate(180deg)}.data-content{padding-top:18px}.data-pending{margin:0 0 14px}
.footer-bottom{flex-wrap:wrap;font-size:10px}.footer-bottom span{min-width:0;overflow-wrap:anywhere}.footer-bottom span:last-child{letter-spacing:0}
@media(min-width:1500px){.province-map{height:auto}.hero{height:auto;min-height:0}}
@media(max-width:1100px){.top-layout{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}.hero{height:auto;min-height:0}.hero h2{font-size:32px}.hero-content{left:23px;right:23px}.map-layers label{font-size:10px}.map-panel{padding:18px 14px}}
@media(max-width:800px){.top-layout{grid-template-columns:1fr}.province-map{height:auto}.hero{height:390px;min-height:0}.hero img{object-position:center 42%}.hero-content{left:25px;right:25px}.hero h2{font-size:34px}.hero-content p{max-width:430px}.map-layers label{font-size:12px}.map-panel{padding:20px 14px}.map-source-note{font-size:10px}.basic-data-disclosure>summary{padding:18px}.basic-data-disclosure .section-heading{align-items:center}}
@media(max-width:430px){.province-map{height:auto}.hero{height:355px}.intro h1{font-size:29px}.map-layers{gap:8px}.map-layers label{font-size:10px}.map-tools button{font-size:11px;padding:5px 10px}.map-tools{justify-content:center}.basic-data-disclosure>summary{flex-wrap:wrap;gap:12px}.data-toggle{font-size:11px}.footer-bottom{gap:8px}}
@media(prefers-reduced-motion:reduce){.marker-pulse{animation:none}.toggle-symbol,.data-toggle{transition:none}}
