/* Component-only styles; host owns layer ordering and safe/control rectangles. */
.ui-world-hotspots { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.ui-world-hotspots__button { position: absolute; margin: 0; box-sizing: border-box; min-height: 44px; border: 1px solid #fff7d9b8; border-radius: 18px; padding: 10px 12px; color: #fff9e9; background: #483927e6; box-shadow: 0 3px 14px #21170935; font: inherit; font-size: .875rem; line-height: 1.35; overflow-wrap: anywhere; text-align: center; pointer-events: auto; touch-action: pan-x pan-y pinch-zoom; cursor: pointer; }
.ui-world-hotspots__button:focus-visible { outline: 3px solid #fff4b8; outline-offset: 3px; }
.ui-world-hotspots__button[data-compact="true"] { min-width: 44px; padding: 8px; }
.ui-world-hotspots__button[data-compact="true"] .ui-world-hotspots__caption { font-size: 1.5em; line-height: 1; }
.ui-world-hotspots__button[data-kind="object"] { padding: 0; min-height: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.ui-world-hotspots__button[data-kind="object"]:is(:hover,:focus-visible) { background: #ffefd32b; }
.ui-world-hotspots__button[data-kind="object"] .ui-world-hotspots__caption { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.ui-world-hotspots__dot { display: none; position: absolute; transform: translate(-50%,-50%); width: 28px; height: 28px; border: 1px solid #fff6d4d9; border-radius: 50%; color: #fff9e9; background: #483927d9; box-shadow: 0 2px 8px #21170955; line-height: 26px; font-size: 18px; text-align: center; pointer-events: none; }
.ui-world-hotspots__button[data-kind="object"] .ui-world-hotspots__dot { display: block; }
.ui-world-hotspots [hidden], .ui-world-map-picker [hidden] { display: none !important; }
.ui-world-map-picker { position: relative; width: 100%; height: 100%; isolation: isolate; overflow: hidden; color: #423823; }
.ui-world-map-picker__image { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: contain; object-position: 50% 50%; user-select: none; pointer-events: none; }
.ui-world-map-picker__entry, .ui-world-map-picker__choice, .ui-world-map-picker__secondary { box-sizing: border-box; min-height: 44px; border: 1px solid #f6edceba; border-radius: 14px; padding: 9px 12px; font: inherit; font-size: .875rem; line-height: 1.35; overflow-wrap: anywhere; color: #423823; background: #fff8e9f0; touch-action: pan-x pan-y pinch-zoom; cursor: pointer; }
.ui-world-map-picker__entry { position: absolute; box-shadow: 0 3px 18px #2117094d; }
.ui-world-map-picker__sheet { position: absolute; display: grid; gap: 8px; box-sizing: border-box; padding: 14px; border: 1px solid #fff1d1c9; border-radius: 22px; background: #f9f2e3ed; box-shadow: 0 8px 32px #21170950; overflow: auto; overscroll-behavior: contain; touch-action: pan-y pinch-zoom; }
.ui-world-map-picker__heading { margin: 0 0 4px; font: inherit; font-weight: 650; }
.ui-world-map-picker__choice { display: grid; gap: 3px; text-align: start; background: #ffffffb8; border-color: #6e664933; }
.ui-world-map-picker__choice[aria-current="location"] { border-color: #6c7e50; }
.ui-world-map-picker__choice[data-queued="true"] { border-style: dashed; }
.ui-world-map-picker__markers { font-size: .75rem; line-height: 1.4; color: #665f47; }
.ui-world-map-picker__markers:empty { display: none; }
.ui-world-map-picker__secondary { background: transparent; border-color: #6e664933; }
.ui-world-map-picker button:focus-visible { outline: 3px solid #587441; outline-offset: 2px; }
.ui-world-map-picker button:disabled { cursor: default; opacity: .7; }
@media (prefers-reduced-motion: reduce) { .ui-world-hotspots *, .ui-world-map-picker * { scroll-behavior: auto; } }
.ui-world-map-picker { touch-action: pan-y; cursor: grab; }
.ui-world-map-picker__ring { position: absolute; box-sizing: border-box; padding: 0; border: 3px solid #fff7dcf2; border-radius: 50%; background: #2f5d3a2e; box-shadow: 0 0 0 4px #2f5d3a55, 0 4px 14px #1d150a66; cursor: pointer; transition: transform .15s ease, box-shadow .15s ease; }
.ui-world-map-picker__ring:hover, .ui-world-map-picker__ring:focus-visible { transform: scale(1.08); }
.ui-world-map-picker__ring[aria-current="location"] { background: #6c7e5099; border-color: #fff; }
.ui-world-map-picker__ring[data-accepted="true"] { box-shadow: 0 0 0 4px #d9a441cc, 0 4px 14px #1d150a66; }
.ui-world-map-picker__ring[data-queued="true"] { border-style: dashed; }
.ui-world-map-picker__ring-label { position: absolute; left: 50%; top: calc(100% + 6px); transform: translateX(-50%); white-space: nowrap; padding: 2px 8px; border-radius: 999px; background: #fffaf0e6; color: #2f4a2f; font-size: .8rem; font-weight: 650; pointer-events: none; }
.ui-world-map-picker__hint { position: absolute; left: 50%; bottom: 10px; transform: translateX(-50%); margin: 0; padding: 6px 12px; border-radius: 999px; background: #1d150a99; color: #fff; font-size: .8rem; pointer-events: none; }
