.map-shell{border:1px solid var(--color-line);box-shadow:var(--shadow-map);background:#c6d6db;border-radius:18px;position:relative;overflow:hidden}.map-shell:fullscreen{border:0;border-radius:0}.map-toolbar{z-index:7;pointer-events:none;flex-wrap:wrap;gap:.5rem;padding:.6rem;display:flex;position:absolute;inset:0 0 auto}.map-toolbar>*{pointer-events:auto}.map-search{flex:220px;max-width:360px;position:relative}.map-search input{width:100%;height:40px;font:inherit;color:var(--color-ink);background:#f4eee2f2;border:1px solid #2f261d2e;border-radius:999px;padding:0 .9rem 0 2.3rem;font-size:.92rem;box-shadow:0 2px 8px #2f261d1f}.map-search input:focus{outline:2px solid var(--color-gold);outline-offset:1px}.map-search-icon{color:var(--color-ink-3);pointer-events:none;position:absolute;top:11px;left:.8rem}.map-results{z-index:8;z-index:6;background:#f4eee2;border:1px solid #2f261d2e;border-radius:12px;max-height:320px;margin:0;padding:.3rem;list-style:none;position:absolute;top:44px;left:0;right:0;overflow:auto;box-shadow:0 12px 30px -10px #2f261d59}.map-results li{cursor:pointer;border-radius:8px;justify-content:space-between;gap:.75rem;padding:.45rem .7rem;font-size:.92rem;display:flex}.map-results li:hover,.map-results li[aria-selected=true]{background:#2f261d14}.map-results li small{color:var(--color-ink-4);white-space:nowrap;font-size:.78rem}.map-results .empty{color:var(--color-ink-4);cursor:default}.map-actions{flex-wrap:wrap;justify-content:flex-end;gap:.35rem;margin-left:auto;display:flex}.map-btn{min-width:40px;height:40px;color:var(--color-ink-2);font:inherit;cursor:pointer;user-select:none;background:#f4eee2f2;border:1px solid #2f261d2e;border-radius:999px;align-items:center;gap:.4rem;padding:0 .7rem;font-size:.84rem;font-weight:600;list-style:none;display:inline-flex;box-shadow:0 2px 8px #2f261d1f}.map-btn:hover{background:#fff}.map-btn[aria-pressed=true]{background:var(--color-ink);color:var(--color-parchment)}.map-btn::-webkit-details-marker{display:none}.map-btn-label{display:none}@media (width>=900px){.map-btn-label{display:inline}}.map-layers{position:relative}.map-layers-menu{z-index:6;background:#f4eee2;border:1px solid #2f261d2e;border-radius:12px;gap:.1rem;min-width:200px;padding:.5rem;display:grid;position:absolute;top:46px;right:0;box-shadow:0 12px 30px -10px #2f261d59}.map-layers-menu label{cursor:pointer;border-radius:8px;align-items:center;gap:.55rem;padding:.35rem .5rem;font-size:.9rem;display:flex}.map-layers-menu label:hover{background:#2f261d0f}.map-layers-menu input{accent-color:var(--color-ink)}.map-stage{height:min(82vh,900px);min-height:420px;position:relative}.is-compact .map-stage{height:min(60vh,620px);min-height:360px}.map-shell:fullscreen .map-stage{height:100vh}.map-stage svg{width:100%;height:100%;position:absolute;inset:0}.map-panel{z-index:5;background:#f4eee2f7;border:1px solid #2f261d2e;border-radius:14px;width:min(360px,100% - 1.2rem);max-height:60%;padding:1rem 1.1rem 1.1rem;position:absolute;bottom:.6rem;left:.6rem;overflow:auto;box-shadow:0 16px 40px -14px #2f261d73}@media (width>=900px){.map-panel{max-height:calc(100% - 5rem);inset:4rem .6rem auto auto}}.map-panel-close{width:32px;height:32px;color:var(--color-ink-3);cursor:pointer;background:0 0;border:0;border-radius:999px;font-size:1.4rem;line-height:1;position:absolute;top:.35rem;right:.5rem}.map-panel-close:hover{background:#2f261d14}.map-panel h3{margin:0 1.5rem .25rem 0;font-size:1.25rem}.map-panel .kicker{font-family:var(--font-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--color-gold);font-size:.72rem;font-weight:700}.map-panel p{color:var(--color-ink-2);margin:.5rem 0 0;font-size:.95rem}.map-panel dl{font-size:.88rem;font-family:var(--font-ui);grid-template-columns:auto 1fr;gap:.2rem .8rem;margin:.7rem 0 0;display:grid}.map-panel dt{color:var(--color-ink-4)}.map-panel dd{color:var(--color-ink);margin:0}.map-panel .btn{margin-top:.8rem}.map-panel .measure-result{font-family:var(--font-ui);font-size:.9rem}.map-panel .measure-result strong{font-size:1.4rem;font-family:var(--font-display);display:block}.map-panel .measure-result ul{color:var(--color-ink-2);gap:.2rem;margin:.5rem 0 0;padding:0;list-style:none;display:grid}.map-hint{z-index:4;color:var(--color-ink-3);pointer-events:none;background:#f4eee2d9;border-radius:999px;margin:0;padding:.3rem .6rem;font-size:.74rem;transition:opacity .4s;position:absolute;bottom:.6rem;right:.7rem}.map-hint.is-hidden{opacity:0}.map-toast{z-index:7;background:var(--color-ink);color:var(--color-parchment);border-radius:999px;padding:.45rem .9rem;font-size:.85rem;position:absolute;top:4rem;left:50%;transform:translate(-50%)}.wmap .measure line{stroke:#8a1c1c;stroke-width:1.6px;stroke-dasharray:4 3}.wmap .measure circle{fill:#8a1c1c;stroke:#f4eee2;stroke-width:1.2px}.wmap .measure text{fill:#8a1c1c;font-size:10px;font-weight:700}.wmap .loc.is-picked use{color:#8a1c1c}@media (width<=640px){.map-stage{height:70vh}.map-search{flex-basis:100%;max-width:none}.map-actions{margin-left:0}}
