.pwyamap { --pwyamap-border: #ddd; --pwyamap-ink: #111; width: 100%; min-width: 0; color: var(--pwyamap-ink); }
.pwyamap *, .pwyamap *::before, .pwyamap *::after { box-sizing: border-box; }
.pwyamap__toolbar { position: relative; display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-bottom: 20px; }
.pwyamap [hidden] { display: none !important; }
.pwyamap__city-label { font-weight: 600; white-space: nowrap; }
.pwyamap__city-picker { max-width: 100%; min-width: 0; }
.pwyamap .pwyamap__city-toggle { display: inline-flex; align-items: center; width: auto; max-width: 100%; height: auto; margin: 0; padding: 4px 0; border: 0; border-radius: 0; background: none; color: inherit; font: inherit; line-height: 1.4; white-space: normal; text-align: left; box-shadow: none; cursor: pointer; }
.pwyamap__city-name { border-bottom: 1px dashed currentColor; overflow-wrap: anywhere; }
.pwyamap__city-popup { position: absolute; top: calc(100% + 10px); left: 0; z-index: 100; width: 360px; max-width: 100%; padding: 14px; border: 1px solid var(--pwyamap-border); border-radius: 6px; background: #fff; box-shadow: 0 8px 24px rgba(0, 0, 0, .15); }
.pwyamap__search-label { display: block; margin-bottom: 8px; font-size: .9em; }
.pwyamap .pwyamap__city-search { display: block; width: 100%; min-width: 0; max-width: 100%; height: auto; margin: 0 0 10px; padding: 10px 12px; border: 1px solid var(--pwyamap-border); border-radius: 4px; background: #fff; color: inherit; font: inherit; box-shadow: none; }
.pwyamap .pwyamap__city-options { max-height: 240px; overflow-y: auto; overscroll-behavior: contain; list-style: none; margin: 0; padding: 0; }
.pwyamap .pwyamap__city-options > li { list-style: none; margin: 0; padding: 0; }
.pwyamap .pwyamap__city-option { display: block; width: 100%; height: auto; margin: 0; padding: 10px 12px; border: 0; border-radius: 3px; background: #fff; color: inherit; font: inherit; line-height: 1.4; text-align: left; white-space: normal; overflow-wrap: anywhere; box-shadow: none; cursor: pointer; }
.pwyamap .pwyamap__city-option:hover, .pwyamap .pwyamap__city-option[aria-current="true"] { background: #eef7ea; }
.pwyamap__city-empty { margin: 12px 0 4px; color: #666; }
.pwyamap__status { color: #666; font-size: .9em; overflow-wrap: anywhere; }
.pwyamap__layout { display: grid; grid-template-columns: minmax(0, 38%) minmax(0, 1fr); gap: 20px; }
.pwyamap__shops { min-width: 0; }
.pwyamap__count { margin: 0 0 12px; }
.pwyamap .pwyamap__list { list-style: none; margin: 0; padding: 0; max-height: 560px; overflow-y: auto; overscroll-behavior: contain; }
.pwyamap .pwyamap__list > li { list-style: none; margin: 0 0 12px; padding: 0; }
/* Темы могут рисовать маркеры через псевдоэлементы независимо от list-style. */
.pwyamap .pwyamap__list > li::before, .pwyamap .pwyamap__list > li::after,
.pwyamap .pwyamap__city-options > li::before, .pwyamap .pwyamap__city-options > li::after { content: none !important; display: none !important; }
.pwyamap .pwyamap__list > li::marker, .pwyamap .pwyamap__city-options > li::marker { content: ''; }
.pwyamap .pwyamap__store { display: block; width: 100%; height: auto; margin: 0; padding: 18px; border: 1px solid var(--pwyamap-border); border-radius: 5px; background: #fff; color: inherit; font: inherit; line-height: 1.5; text-align: left; white-space: normal; overflow-wrap: anywhere; cursor: pointer; box-shadow: none; }
.pwyamap__store strong { display: block; margin-bottom: 8px; font-size: 1.1em; }
.pwyamap__store span { display: block; margin-top: 6px; white-space: pre-line; }
.pwyamap__store[aria-pressed="true"] { border-color: var(--pwyamap-ink); box-shadow: inset 0 0 0 1px var(--pwyamap-ink); }
.pwyamap__store:focus-visible, .pwyamap__city-toggle:focus-visible, .pwyamap__city-search:focus-visible, .pwyamap__city-option:focus-visible { outline: 2px solid var(--pwyamap-ink); outline-offset: 2px; }
.pwyamap__brands { color: #666; font-size: .85em; }
.pwyamap__canvas { min-width: 0; height: 600px; max-width: 100%; background: #f5f5f5; border: 1px solid var(--pwyamap-border); }
.pwyamap__canvas--scrollable { touch-action: pan-y pinch-zoom; }
@media (max-width: 700px) {
    .pwyamap__layout { grid-template-columns: minmax(0, 1fr); }
    .pwyamap__canvas { grid-row: 1; height: 350px; }
    .pwyamap .pwyamap__list { max-height: none; overflow-y: visible; overscroll-behavior: auto; }
}
