/* Adunel map look (Google Maps style). Loaded last; colours come from theme.css tokens. */
.cat-food{--cat-fill:var(--cat-food-fill);--cat-stroke:var(--cat-food-stroke);--cat-icon:var(--cat-food-icon);--cat-ink:var(--cat-food-ink)}
.cat-fashion{--cat-fill:var(--cat-fashion-fill);--cat-stroke:var(--cat-fashion-stroke);--cat-icon:var(--cat-fashion-icon);--cat-ink:var(--cat-fashion-ink)}
.cat-beauty{--cat-fill:var(--cat-beauty-fill);--cat-stroke:var(--cat-beauty-stroke);--cat-icon:var(--cat-beauty-icon);--cat-ink:var(--cat-beauty-ink)}
.cat-tech{--cat-fill:var(--cat-tech-fill);--cat-stroke:var(--cat-tech-stroke);--cat-icon:var(--cat-tech-icon);--cat-ink:var(--cat-tech-ink)}
.cat-home{--cat-fill:var(--cat-home-fill);--cat-stroke:var(--cat-home-stroke);--cat-icon:var(--cat-home-icon);--cat-ink:var(--cat-home-ink)}
.cat-kids{--cat-fill:var(--cat-kids-fill);--cat-stroke:var(--cat-kids-stroke);--cat-icon:var(--cat-kids-icon);--cat-ink:var(--cat-kids-ink)}
.cat-neutral,.cat-service{--cat-fill:var(--cat-neutral-fill);--cat-stroke:var(--cat-neutral-stroke);--cat-icon:var(--cat-neutral-icon);--cat-ink:var(--cat-neutral-ink)}

/* Base plan */
body.map-view,body.map-view #route-view,body.map-view .map-panel,body.map-view .map-container,body.map-view #map-container,body.map-view #map-svg,body.map-view .map-container>svg{background:var(--map-outside)}
body.map-view #map-svg>rect:first-of-type{fill:var(--map-outside)}
body.map-view .map-building-outline{fill:var(--map-floor);stroke:var(--map-edge);stroke-width:1;vector-effect:non-scaling-stroke;filter:none}
body.map-view .map-zone{fill:var(--map-floor);stroke:var(--map-walk-edge);stroke-width:1;vector-effect:non-scaling-stroke}
body.map-view .zone-store-block{fill:var(--map-floor);stroke:var(--map-walk-edge)}
/* Closed / staff-only areas: darker and hatched */
body.map-view .zone-restricted,body.map-view .zone-closed,body.map-view .zone-staff{fill:url(#map-hatch);stroke:var(--map-walk-edge)}
body.map-view .zone-logical-transfer{fill:var(--map-floor);stroke:var(--map-walk-edge)}
body.map-view .zone-atrium,body.map-view .zone-open-space,body.map-view .zone-seating,body.map-view .zone-terrace{fill:var(--map-walk);stroke:var(--map-walk-edge)}
body.map-view .zone-amenity,body.map-view .zone-reference-amenity,body.map-view .zone-service,body.map-view .zone-lobby,body.map-view .zone-kiosk,body.map-view .zone-reference-kiosk{fill:var(--cat-neutral-fill);stroke:var(--cat-neutral-stroke)}
body.map-view .zone-cinema,body.map-view .zone-restaurant-area,body.map-view .zone-foodcourt{fill:var(--cat-neutral-fill);stroke:var(--cat-neutral-stroke)}
body.map-view .map-zone-label{fill:var(--cat-neutral-ink);font-weight:600;paint-order:stroke;stroke:var(--map-walk);stroke-width:3px;stroke-linejoin:round}
body.map-view .map-source-corridor{stroke:var(--map-walk-edge);stroke-linecap:round;stroke-linejoin:round}
body.map-view .map-source-corridor-inner{stroke:var(--map-walk);stroke-linecap:round;stroke-linejoin:round}
body.map-view .map-shop-area{fill:var(--cat-fill,var(--cat-neutral-fill));stroke:var(--cat-stroke,var(--cat-neutral-stroke));stroke-width:1;stroke-dasharray:none;vector-effect:non-scaling-stroke}
body.map-view .map-shop-area.unconfirmed{stroke-dasharray:4 3;opacity:.75}
body.map-view .map-shop-area.target-area,body.map-view .preview-selected .map-shop-area{stroke:var(--map-target);stroke-width:2.2}

/* Route, start, destination */
body.map-view .map-refined-route-back{stroke:var(--map-route-halo);stroke-width:11}
body.map-view .map-refined-route-line{stroke:var(--map-route);stroke-width:7}
body.map-view .map-refined-route-active{stroke:var(--map-route-active);stroke-width:7}
body.map-view .map-refined-route-arrow{stroke:var(--map-route-halo);stroke-width:2}
body.map-view .map-route-line{stroke:var(--map-route)}
body.map-view .map-refined-origin-halo{fill:var(--map-origin-halo);opacity:1;stroke:none}
body.map-view .map-refined-origin{fill:var(--map-origin);stroke:var(--map-route-halo);stroke-width:3;vector-effect:non-scaling-stroke;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}
body.map-view .map-refined-step{fill:var(--map-route-active);stroke:var(--map-route-halo)}
body.map-view .map-refined-target{fill:var(--map-target);stroke:var(--map-route-halo);stroke-width:1.5;vector-effect:non-scaling-stroke;filter:drop-shadow(0 2px 2px rgba(0,0,0,.28))}
body.map-view .map-refined-target-dot{fill:var(--map-route-halo)}
body.map-view .map-refined-target-shadow{fill:rgba(0,0,0,.22)}

/* Labels: name in the category's dark tone with a white halo, no boxes */
body.map-view .map-poi-label,body.map-view .map-poi-label.align-left,body.map-view .map-poi-label.align-right{
  display:inline-flex;align-items:center;gap:4px;transform:none;min-height:24px;max-width:140px;padding:2px 3px;border:0;border-radius:6px;background:transparent;box-shadow:none;
  font-size:12px;line-height:1.15;font-weight:650;text-align:left;color:var(--cat-ink,var(--text-primary));
  text-shadow:0 0 2px #fff,0 0 2px #fff,0 0 3px #fff,0 0 4px #fff,0 0 5px #fff}
body.map-view .map-poi-label .map-poi-name{max-width:116px;white-space:normal;overflow-wrap:anywhere}
body.map-view .map-poi-label.store-name>.map-poi-symbol{display:grid}
body.map-view .map-poi-label .map-poi-symbol{place-items:center;flex:0 0 20px;width:20px;height:20px;border-radius:50%;border:1.5px solid #fff;background:#fff;color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);font-size:11px;font-weight:750;text-shadow:none;overflow:hidden}
body.map-view .map-poi-label .map-poi-symbol.initial{background:var(--cat-ink)}
body.map-view .map-poi-label .map-poi-symbol.has-logo{background:#fff;border-color:var(--cat-icon,#fff)}
body.map-view .map-poi-label .map-poi-symbol.has-logo img{max-width:16px;max-height:16px}
body.map-view .map-poi-label.pending{opacity:.85}
body.map-view .map-poi-label.pending .map-poi-symbol{border-style:dashed}
body.map-view .map-poi-label.compact{gap:0;padding:2px;min-height:0}
body.map-view .map-poi-label.compact .map-poi-name{display:none}
body.map-view .map-poi-label.compact .map-poi-symbol{flex-basis:16px;width:16px;height:16px;font-size:9px;border-width:1.5px}
body.map-view .map-poi-label.compact .map-poi-symbol.has-logo img{max-width:12px;max-height:12px}
/* Services (WC etc.): grey square with white symbol */
body.map-view .map-poi-label.service{font-size:11.5px;font-weight:650;color:var(--cat-neutral-ink)}
body.map-view .map-poi-label.service .map-poi-symbol{display:grid;flex:0 0 22px;width:22px;height:22px;border-radius:6px;border:1.5px solid #fff;background:var(--map-amenity);color:#fff;font-size:9.5px;font-weight:800}
body.map-view .map-poi-label.service .map-poi-symbol svg{width:15px;height:15px;stroke:#fff;fill:none;stroke-width:2.2}
/* Floor transitions: always on, white chip so they read above store names */
body.map-view .map-poi-label.connector{background:#fff;border:1px solid var(--map-walk-edge);box-shadow:0 1px 2px rgba(0,0,0,.1);padding:2px 6px 2px 2px;color:#1F2933;font-size:11px;font-weight:700;text-shadow:none;z-index:3;max-width:170px}
body.map-view .map-poi-label.connector .map-poi-name{max-width:140px}
body.map-view .map-poi-label.connector .map-poi-symbol{background:#3C4652;flex-basis:20px;width:20px;height:20px}
body.map-view .map-poi-label.connector.compact{padding:2px}
body.map-view .map-poi-label.connector.compact .map-poi-symbol{flex-basis:20px;width:20px;height:20px}
/* Selected destination */
body.map-view .map-poi-label.target{background:#fff;border:1.5px solid var(--map-target);box-shadow:0 2px 6px rgba(0,0,0,.18);padding:3px 9px 3px 3px;color:var(--accent-ink);font-size:13px;font-weight:750;text-shadow:none;z-index:4;max-width:180px}
body.map-view .map-poi-label.target .map-poi-name{max-width:148px}
body.map-view .map-poi-label.target .map-poi-symbol{border-color:var(--map-target)}
body.map-view .map-poi-label.origin-caption{background:#fff;border:1.5px solid var(--map-origin);color:#1D4ED8;text-shadow:none;padding:4px 9px;font-size:11.5px;font-weight:700;box-shadow:0 2px 5px rgba(0,0,0,.15)}
body.map-view .map-poi-label:focus-visible{outline:3px solid var(--map-route);outline-offset:2px;background:#fff}

/* "Renkler" legend */
body.map-view #map-legend-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:52px;min-height:52px;padding:6px 4px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text-secondary);font-size:11px;font-weight:600;line-height:1.1;box-shadow:0 3px 11px var(--shadow-color);cursor:pointer;margin-top:8px}
body.map-view #map-legend-toggle svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8}
body.map-view #map-legend-toggle[aria-expanded="true"]{color:var(--brand);border-color:var(--brand)}
body.map-view.planner-open #map-legend-panel{display:none}
.map-legend-panel{position:absolute;z-index:14;right:84px;top:var(--map-tools-top,88px);width:220px;max-width:calc(100% - 110px);max-height:calc(100% - 120px);overflow:auto;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow);color:var(--text-primary);font-size:12.5px}
.map-legend-panel[hidden]{display:none}
.map-legend-panel strong{display:block;margin-bottom:8px;font-size:13px;color:var(--brand)}
.map-legend-panel ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.map-legend-panel li{display:flex;align-items:center;gap:9px}
.map-legend-swatch{flex:0 0 18px;width:18px;height:14px;border-radius:3px;background:var(--cat-fill);border:1.5px solid var(--cat-icon)}
.map-legend-icon{display:grid;place-items:center;flex:0 0 18px;width:18px;height:18px;border-radius:5px;background:#3C4652;color:#fff}
.map-legend-icon svg{width:13px;height:13px;stroke:#fff;fill:none;stroke-width:2.2}
.map-legend-route{flex:0 0 18px;width:18px;height:5px;border-radius:3px;background:var(--map-route)}
@media (max-width:720px){
  body.map-view #map-legend-toggle{width:52px;min-height:48px}
  .map-legend-panel{right:76px;width:200px}
  /* The visible logo stays small; layoutMobileLabels reserves this entire touch target. */
  body.map-view button.map-poi-label::before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(var(--hit-w,44px),100%);height:max(var(--hit-h,44px),100%);background:transparent}
  body.map-view .map-poi-label{z-index:1}
  .map-poi-leader{position:absolute;z-index:0;height:0;border-top:1px dotted var(--text-secondary);opacity:.6;transform-origin:left center;pointer-events:none}
  body.map-view .map-poi-label.connector{font-size:11px;font-weight:600}
}

/* Area names (atrium, terrace, cinema) are HTML captions that give way to store and floor labels. */
body.map-view .map-zone-label{display:none}
body.map-view .map-poi-label.zone-caption{color:var(--cat-neutral-ink);font-size:11px;font-weight:600;font-style:italic;min-height:0;padding:1px 3px}
/* Asma kat access card: map controls do not apply there. */
body.map-view.mezzanine-guide-view .map-control-stack,body.map-view.mezzanine-guide-view #map-legend-panel{display:none}

/* iOS Safari: a pinch that starts on a label, the map margin or a control must zoom the map, not the page. */
html:has(body.map-view){overflow:hidden;overscroll-behavior:none;height:100%}
body.map-view{overscroll-behavior:none}
body.map-view #map-container,body.map-view #map-container *{touch-action:none}
body.map-view .topbar,body.map-view .map-search-dock,body.map-view .map-control-stack,body.map-view .map-control-stack *,
body.map-view #floor-switcher,body.map-view #floor-tabs,body.map-view #map-legend-toggle,body.map-view .mobile-nav{touch-action:pan-x pan-y}

/* AVM seçici: başlıktaki AVM adı bir düğmedir. */
button.mall-select{background:none;font:inherit;color:inherit;text-align:left;cursor:pointer;border-radius:10px}
button.mall-select:hover .mall-location{color:var(--brand)}
@media(max-width:680px){button.mall-select .mall-location::after{content:" ▾";color:var(--text-secondary)}}
.mall-picker-list{display:grid;gap:8px;margin-top:14px}
.mall-picker-item{display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%;min-height:56px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);color:var(--text-primary);text-align:left;cursor:pointer}
.mall-picker-item strong{font-size:16px;color:var(--brand)}.mall-picker-item small{font-size:12px;color:var(--text-secondary)}
.mall-picker-item.active{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-soft)}
.mall-picker-item:disabled{opacity:.55;cursor:default}

/* Telefon: harita ekranı kaplar. Üst şerit kalkar, arama tek satır; başlangıç ve kat seçici haritanın üstünde küçük hap düğmeler olur. */
@media (max-width:720px){
  body.map-view{--map-topbar:0px}
  body.map-view .topbar{display:none}
  body.map-view .map-search-dock{top:max(10px,env(safe-area-inset-top,0px));left:10px;right:10px;padding:5px 8px;overflow:visible}
  body.map-view .map-search-dock .intent-form{min-height:46px}
  body.map-view .map-origin-strip{position:absolute;left:0;top:calc(100% + 8px);display:inline-flex;align-items:center;gap:6px;max-width:calc(100vw - 150px);padding:0 4px 0 10px;min-height:36px;border:1px solid var(--line);border-radius:999px;background:var(--surface-alpha-969,#fff);box-shadow:0 2px 8px var(--brand-alpha-078,rgba(0,0,0,.12));font-size:12px;white-space:nowrap}
  body.map-view .map-origin-strip strong{font-weight:650;overflow:hidden;text-overflow:ellipsis;max-width:42vw;display:block}
  body.map-view .map-origin-strip>span[aria-hidden]:nth-of-type(2){display:none}
  body.map-view .map-origin-strip .text-button{min-height:36px;padding:0 10px;font-size:12px}
  body.map-view #floor-switcher{top:calc(max(10px,env(safe-area-inset-top,0px)) + 54px);right:10px;min-height:36px;min-width:0;max-width:none;padding:0 12px;border-radius:999px;font-size:13px}
  body.map-view .map-control-stack{top:calc(max(10px,env(safe-area-inset-top,0px)) + 104px)}
  body.map-view.search-suggestions-open .map-origin-strip,body.map-view.where-open .map-origin-strip{display:none}
}

/* Mağaza adı: kutunun içine sığan büyük yazı, logo yok (Inmapper tarzı) */
body.map-view .map-poi-label.boxed{display:flex;align-items:center;justify-content:center;max-width:none;min-height:0;padding:0;gap:0;background:none;border:0;box-shadow:none;border-radius:0;text-align:center;line-height:1.05;font-weight:600;letter-spacing:-.1px;color:#1F2933;text-shadow:0 0 2px rgba(255,255,255,.9),0 0 3px rgba(255,255,255,.9)}
body.map-view .map-poi-label.boxed .map-poi-symbol{display:none}
body.map-view .map-poi-label.boxed .map-poi-name{max-width:none;overflow-wrap:normal;word-break:normal;display:block;width:100%}

body.map-view .map-origin-strip .text-button.origin-needed{min-height:44px;padding:0 14px;border-radius:999px;background:var(--brand);color:#fff;font-weight:700}
body.map-view .map-origin-strip:has(.origin-needed)>span:nth-child(n+2){display:none}body.map-view .map-origin-strip:has(.origin-needed){padding-right:0}

/* Taurus zemin kat: mevcut bölmeler, açık cepheler ve okunur yer adları. Diğer katlara uygulanmaz. */
body.map-view .taurus-ground-plan .map-building-outline{stroke:var(--map-wall);stroke-width:1.5;fill:var(--map-floor)}
body.map-view .taurus-ground-plan .map-shop-area{stroke:var(--map-wall);stroke-width:1.25}
body.map-view .taurus-ground-plan .map-frontage-opening{fill:none;stroke:var(--map-walk);stroke-linecap:butt;stroke-linejoin:round}
body.map-view .taurus-ground-plan .map-poi-label.boxed{font-weight:600;color:var(--brand);text-shadow:none;line-height:1.2;padding:2px}
body.map-view .taurus-ground-plan .map-poi-label.boxed .map-poi-name{overflow-wrap:normal;word-break:normal;white-space:pre-line}
body.map-view .taurus-ground-plan .map-poi-label.zone-caption{font-style:normal;color:var(--text-secondary);text-shadow:none}
body.map-view .taurus-ground-plan .zone-closed{stroke:var(--map-closed-line)}

/* Inmapper tarzı mağaza adları: logo/balon yok, sade koyu yazı (tam ad görünen mağazalar) */
body.map-view .map-poi-label.store-name:not(.compact):not(.service):not(.target):not(.boxed){background:none;border:0;box-shadow:none;padding:0;min-height:0;color:#1F2933;font-weight:600;text-shadow:0 0 2px rgba(255,255,255,.9),0 0 3px rgba(255,255,255,.9);gap:0;max-width:110px}
body.map-view .map-poi-label.store-name:not(.compact):not(.service):not(.target):not(.boxed) .map-poi-symbol{display:none}
/* Dar, uzun bölmelerde ad dikey yazılır (yemek katı tezgâhları gibi). */
body.map-view .map-poi-label.boxed.vertical{transform:rotate(-90deg);transform-origin:50% 50%;white-space:nowrap}
body.map-view .map-poi-label.boxed.vertical .map-poi-name{white-space:nowrap}
