.v5-map-root{position:absolute;inset:0;overflow:hidden;background:#f4f5f6;border-radius:inherit;isolation:isolate}.v5-canvas-host{position:absolute;inset:0}.v5-canvas-host canvas{width:100%;height:100%;display:block;touch-action:none;outline:none}.v5-label-layer{position:absolute;inset:0;z-index:12;pointer-events:none;overflow:hidden}
.v5-map-label{position:absolute;left:0;top:0;display:flex;align-items:center;justify-content:center;max-width:none;color:#272c31;white-space:nowrap;will-change:transform;transition:opacity .14s ease,filter .14s ease;transform-origin:center}.v5-map-label[hidden]{display:none!important}
.v5-map-label.is-text{padding:1px 4px;background:transparent;border:0;box-shadow:none;font:680 15.3px/1.04 Inter,Arial,sans-serif;letter-spacing:-.012em;color:#272c31;-webkit-text-stroke:.55px rgba(255,255,255,.98);paint-order:stroke fill;text-shadow:0 1px 2px rgba(255,255,255,.72);white-space:normal}.v5-map-label.is-text span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;white-space:normal;text-align:center;line-height:1.06;max-width:var(--label-max-width,120px);overflow-wrap:anywhere}.v5-map-label.is-text.is-long{font-size:13.1px;letter-spacing:-.008em}
.v5-map-label.has-logo{padding:2px 3px;background:rgba(255,255,255,.72);border:0;border-radius:6px;box-shadow:0 2px 8px rgba(31,40,49,.08);backdrop-filter:blur(1px)}.v5-map-label img{display:block;max-width:86px;max-height:28px;object-fit:contain}.v5-map-label.has-logo span{display:none}.v5-map-label.is-important.is-text{font-size:15.3px;font-weight:700;color:#272c31}.v5-map-label.is-important.is-text.is-long{font-size:13.1px}
.v5-map-label.is-selected{padding:5px 9px;border-radius:9px;background:#fff;border:1.5px solid #e50070;box-shadow:0 7px 20px rgba(229,0,112,.20);z-index:20}.v5-map-label.is-selected.is-text{font-size:15.3px;font-weight:700;-webkit-text-stroke:0;text-shadow:none}.v5-map-label.is-selected.is-text.is-long{font-size:13.7px}
.v5-poi{position:absolute;left:0;top:0;display:flex;align-items:center;gap:5px;color:#28343d;font:800 9px/1 Inter,Arial,sans-serif;white-space:nowrap;filter:drop-shadow(0 2px 3px rgba(20,30,38,.12));will-change:transform}.v5-poi[hidden]{display:none!important}.v5-poi-icon{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid rgba(45,58,68,.18);box-shadow:0 3px 10px rgba(30,42,51,.12);font:900 9px/1 Inter,Arial,sans-serif}.v5-poi-entrance .v5-poi-icon{background:#27323b;color:#fff;font-size:15px;border-color:#27323b}.v5-poi-wc .v5-poi-icon{color:#2f78d3}.v5-poi span{padding:3px 5px;border-radius:5px;background:rgba(255,255,255,.84)}
.v5-map-status{position:absolute;left:12px;bottom:12px;z-index:18;padding:6px 9px;border-radius:8px;background:rgba(255,255,255,.88);border:1px solid rgba(73,87,98,.11);box-shadow:0 4px 14px rgba(25,39,50,.06);font:700 9px/1.2 Inter,Arial,sans-serif;color:#717c83;pointer-events:none;transition:opacity .25s ease}.v5-map-status.is-ready{opacity:0}.v5-map-status.is-ready:before{content:'●';color:#2fb673;margin-right:6px}
.v5-store-card{position:absolute;left:18px;top:18px;width:min(370px,calc(100% - 36px));padding:0;background:rgba(255,255,255,.99);border:1px solid rgba(71,84,95,.12);border-radius:18px;box-shadow:0 20px 56px rgba(25,39,50,.17);z-index:30;overflow:hidden}.v5-store-card[hidden]{display:none}.v5-store-close{position:absolute;right:10px;top:10px;width:30px;height:30px;border:0;border-radius:50%;background:rgba(255,255,255,.92);box-shadow:0 3px 12px rgba(24,33,40,.12);font-size:20px;line-height:1;color:#606b73;cursor:pointer;z-index:3}.v5-store-hero{position:relative;height:138px;background:linear-gradient(135deg,#f1f3f5,#e5e9ec);overflow:hidden}.v5-store-hero>img{width:100%;height:100%;object-fit:cover;display:block}.v5-store-hero.is-fallback>img{display:none}.v5-store-hero-fallback{position:absolute;inset:0;display:none;place-items:center;background:linear-gradient(135deg,#f8f3f5,#edf0f2);color:#25313a;font:900 24px/1 Inter,Arial,sans-serif;letter-spacing:-.04em}.v5-store-hero.is-fallback .v5-store-hero-fallback{display:grid}.v5-store-body{padding:15px 17px 16px}.v5-store-kicker{font:800 9px/1 Inter,Arial,sans-serif;letter-spacing:.14em;color:#e30076}.v5-store-title-row{display:flex;align-items:center;gap:10px;margin:7px 0 3px}.v5-store-title-row h3{flex:1;min-width:0;margin:0;font:800 21px/1.08 Inter,Arial,sans-serif;color:#192630;letter-spacing:-.025em}.v5-store-logo{max-width:72px;max-height:30px;object-fit:contain}.v5-store-meta{margin:0 0 8px;color:#67737c;font:650 11px/1.35 Inter,Arial,sans-serif}.v5-store-features{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 9px}.v5-store-features span{padding:4px 7px;border-radius:999px;background:#f7eef3;color:#9e1557;font:750 9.5px/1 Inter,Arial,sans-serif}.v5-store-description{margin:0 0 11px;color:#4d5961;font:500 11.5px/1.45 Inter,Arial,sans-serif;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.v5-store-description.is-placeholder{color:#89939a;font-style:italic}.v5-store-section-title{margin-bottom:6px;color:#7a858d;font:800 8.5px/1 Inter,Arial,sans-serif;letter-spacing:.12em}.v5-store-hours{padding:9px 10px;border:1px solid #e5e9ec;border-radius:10px;background:#fafbfb;margin-bottom:10px}.v5-hours-row{display:flex;justify-content:space-between;gap:12px;padding:2px 0;color:#647078;font:600 10.5px/1.35 Inter,Arial,sans-serif}.v5-hours-row strong{color:#25313a;font-weight:800;text-align:right}.v5-hours-note{display:block;margin-top:5px;color:#8a949a;font:500 9px/1.35 Inter,Arial,sans-serif}.v5-store-contact{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:9px}.v5-store-contact a{padding:5px 8px;border:1px solid #dfe5e8;border-radius:8px;background:#fff;color:#3b4851;text-decoration:none;font:750 10px/1 Inter,Arial,sans-serif}.v5-store-contact a:hover{border-color:#c9d1d6}.v5-store-note{margin:0;color:#7b858d;font:600 10px/1.35 Inter,Arial,sans-serif}.v5-navigate{width:100%;margin-top:9px;border:0;border-radius:10px;background:#e30076;color:#fff;padding:11px 14px;font:800 11.5px Inter,Arial,sans-serif;cursor:pointer}.v5-navigate:hover{filter:brightness(.97)}
.v5-fatal{position:absolute;inset:0;display:grid;place-content:center;gap:8px;text-align:center;padding:30px;color:#a51634;background:#fff}.v5-fatal span{font-size:12px;color:#6d747b}.v5-floor-message{position:absolute;inset:0;z-index:25;display:grid;place-content:center;text-align:center;gap:7px;background:rgba(242,244,245,.94);color:#26343e;pointer-events:none}.v5-floor-message[hidden]{display:none}.v5-floor-message strong{font:800 18px Inter,Arial,sans-serif}.v5-floor-message span{font:600 12px Inter,Arial,sans-serif;color:#6b7780}
.v5-boot-gate{position:absolute;left:50%;top:16px;z-index:9999;max-width:min(520px,calc(100% - 28px));padding:9px 13px;border:1px solid rgba(40,52,62,.08);border-radius:999px;background:rgba(255,255,255,.94);color:#25313a;font:850 10px/1.3 Inter,Arial,sans-serif;box-shadow:0 8px 26px rgba(22,32,41,.10);backdrop-filter:blur(14px);pointer-events:none;opacity:0;transform:translate(-50%,-5px);transition:opacity .18s ease,transform .18s ease}.v5-boot-gate[data-visible="1"]{opacity:1;transform:translate(-50%,0)}.v5-boot-gate[data-state="loading"]:before{content:'●';display:inline-block;margin-right:7px;color:#ff35a1;animation:v5BootPulse 1.05s ease-in-out infinite}.v5-boot-gate[data-state="error"]{border-radius:14px;background:#9c1836;color:#fff;max-width:min(560px,calc(100% - 28px));padding:10px 13px}.v5-boot-gate[data-state="error"]:before{content:'✕';color:#fff;animation:none}.v5-boot-gate small{display:block;margin:3px 0 0 16px;font-weight:650;opacity:.78;white-space:normal;word-break:break-word}.v5-fallback-mark{position:absolute;right:14px;top:14px;z-index:9998;padding:7px 10px;border-radius:10px;background:rgba(255,255,255,.94);border:1px solid rgba(156,24,54,.22);color:#9c1836;font:800 10px/1 Inter,Arial,sans-serif;pointer-events:none}.v5-fallback-mark[hidden]{display:none!important}@keyframes v5BootPulse{0%,100%{opacity:.35}50%{opacity:1}}

/* CORE 5 semantic-space polish: an unmapped Unit remains a retail volume, never a corridor/hole. */
.v5-map-label.is-unit-code{padding:2px 5px;border-radius:5px;background:rgba(247,248,249,.78);border:1px solid rgba(112,124,134,.20);color:#68747d;font:800 8.5px/1 Inter,Arial,sans-serif;letter-spacing:.025em;text-shadow:none;box-shadow:none}
.v5-poi span[hidden]{display:none!important}

@media(max-width:700px){.v5-store-card{left:10px;top:132px;width:min(320px,calc(100% - 20px))}.v5-store-hero{height:112px}.v5-store-body{padding:13px 14px 14px}.v5-map-label.is-text{font-size:9px;max-width:108px}.v5-map-label.is-text.is-long{font-size:8px}.v5-map-label.has-logo{padding:2px}.v5-map-label img{max-width:50px;max-height:18px}.v5-poi span{display:none}.v5-poi-icon{width:24px;height:24px}.v5-map-status{display:none}}

#floorNav.is-switching{pointer-events:none;opacity:.72}

/* Semantic POI/access layer: one compact icon family; safety color only for validated emergency exits. */
.v5-poi{z-index:14;gap:5px;color:#27343d;font:750 9.5px/1 Inter,Arial,sans-serif}
.v5-poi-icon{width:28px;height:28px;border-radius:8px;background:rgba(255,255,255,.96);border:1px solid rgba(55,68,78,.16);box-shadow:0 4px 12px rgba(30,42,51,.11);color:#34434d}
.v5-poi-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.v5-poi-wc .v5-poi-icon{color:#2f78d3}.v5-poi-wc .v5-poi-icon svg{fill:currentColor;stroke:none}
.v5-poi-elevator .v5-poi-icon{color:#375f8d}.v5-poi-parking .v5-poi-icon{color:#2d69b3}
.v5-poi-escalator .v5-poi-icon,.v5-poi-stairs .v5-poi-icon{color:#4a5964}
.v5-poi-entrance .v5-poi-icon{background:#27323b;color:#fff;border-color:#27323b}
.v5-poi-emergency_exit .v5-poi-icon{background:#138a4b;color:#fff;border-color:#138a4b}
.v5-poi span{padding:4px 6px;border:1px solid rgba(55,68,78,.10);border-radius:6px;background:rgba(255,255,255,.92);box-shadow:0 2px 8px rgba(30,42,51,.07)}
@media(max-width:700px){.v5-poi-icon{width:26px;height:26px}.v5-poi-icon svg{width:16px;height:16px}}

/* =========================================================
   TOWER MASTER MAP & ROUTING UX v1 — LOCKED
   POI = one compact icon+label component, ~30% smaller than
   the initial visual proposal. Motion is intentionally subtle.
   ========================================================= */
.v5-poi{z-index:14;display:block;color:#26343d;font:700 8px/1.05 Inter,Arial,sans-serif;white-space:normal;filter:none;will-change:transform;pointer-events:none}
.v5-poi[hidden]{display:none!important}
.v5-poi-component{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:2px;min-width:26px;max-width:58px;text-align:center;animation:v5PoiIn .28s cubic-bezier(.2,.72,.2,1) both}
.v5-poi-icon{width:21px;height:21px;border:0;border-radius:6px;display:grid;place-items:center;background:#2f6fdb;box-shadow:0 3px 8px rgba(24,42,62,.14);padding:0}
.v5-poi-icon img{display:block;width:13px;height:13px;object-fit:contain}
.v5-poi-component>span{padding:0 2px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#36444e;font:700 8px/1.05 Inter,Arial,sans-serif;text-shadow:0 1px 2px rgba(255,255,255,.95);max-width:58px}
.v5-poi-parking .v5-poi-icon{background:#2457c5}.v5-poi-emergency_exit .v5-poi-icon{background:#2ead62}.v5-poi-info_kiosk .v5-poi-icon{background:#e5007d}.v5-poi-info .v5-poi-icon{background:#172235}
.v5-poi-entrance .v5-poi-icon,.v5-poi-elevator .v5-poi-icon,.v5-poi-escalator .v5-poi-icon,.v5-poi-stairs .v5-poi-icon,.v5-poi-wc .v5-poi-icon,.v5-poi-accessible .v5-poi-icon{background:#2f6fdb;color:#fff}
@keyframes v5PoiIn{from{opacity:0;transform:scale(.86) translateY(2px)}to{opacity:1;transform:scale(1) translateY(0)}}
.v5-store-card:not([hidden]){animation:v5StoreCardIn .34s cubic-bezier(.2,.72,.2,1) both}@keyframes v5StoreCardIn{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}

.v5-route-progress{display:flex;align-items:center;gap:5px;min-height:20px;margin:-1px 0 9px;overflow:hidden;color:#8a9299;font:700 8px/1 Inter,Arial,sans-serif;white-space:nowrap}
.v5-route-phase{display:inline-flex;align-items:center;min-width:0;padding:4px 6px;border-radius:999px;background:#f2f4f5;color:#7b858d;max-width:82px;overflow:hidden;text-overflow:ellipsis}
.v5-route-phase.is-active{background:#fff0f7;color:#e5007d}.v5-route-phase.is-done{background:#f6f0f3;color:#a85b7d}.v5-route-progress>i{font-style:normal;color:#b5bcc1;font-weight:600}.v5-route-error{white-space:normal;color:#a51e3b;line-height:1.3}
.route-option.is-disabled,.route-option:disabled{opacity:.46;cursor:not-allowed;filter:saturate(.5)}

.v5-floor-stack-transition{position:absolute;inset:0;z-index:80;display:grid;place-items:center;pointer-events:none;perspective:1300px;background:rgba(244,245,246,0);overflow:hidden}
.v5-stack-card{position:absolute;width:88%;height:80%;border:1px solid rgba(65,78,88,.12);border-radius:18px;background:#f4f5f6;box-shadow:0 18px 48px rgba(20,32,42,.14);overflow:hidden;transform-origin:center;backface-visibility:hidden}
.v5-stack-frame,.v5-stack-snapshot{width:100%;height:100%;display:block}.v5-stack-snapshot{object-fit:cover}.v5-stack-frame{background:linear-gradient(145deg,#f7f8f9,#eceff1)}
.v5-stack-card span{position:absolute;left:14px;top:12px;padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.94);color:#27343d;font:800 9px/1 Inter,Arial,sans-serif;box-shadow:0 3px 10px rgba(20,30,40,.08)}
.v5-stack-from{z-index:2}.v5-stack-to{z-index:3}.v5-stack-card.is-fallback .v5-stack-frame:after{content:'TOWER';position:absolute;inset:0;display:grid;place-items:center;color:#c4cbd0;font:800 26px Inter,Arial,sans-serif;letter-spacing:.12em}
.v5-stack-arrow{position:absolute;left:50%;top:50%;z-index:6;display:flex;align-items:center;gap:8px;transform:translate(-50%,-50%);padding:7px 11px;border-radius:999px;background:rgba(255,255,255,.96);border:1px solid rgba(49,62,72,.10);box-shadow:0 8px 22px rgba(24,37,47,.12);white-space:nowrap}
.v5-stack-arrow b,.v5-stack-arrow em{font:800 8.5px/1 Inter,Arial,sans-serif;color:#4f5d67;font-style:normal}.v5-stack-arrow i{font:900 14px/1 Inter,Arial,sans-serif;color:#e5007d;font-style:normal}
.v5-map-root.is-floor-transitioning .v5-map-label{opacity:0!important;transition:none!important}.v5-map-root.is-floor-transitioning .v5-store-card{opacity:0!important;pointer-events:none}

@media(max-width:700px){.v5-poi-icon{width:19px;height:19px;border-radius:5px}.v5-poi-icon img{width:12px;height:12px}.v5-poi-component>span{font-size:7px;max-width:48px}.v5-route-progress{display:none}.v5-stack-card{width:92%;height:74%}}

@media (prefers-reduced-motion:reduce){.v5-poi-component,.v5-store-card:not([hidden]){animation-duration:.01ms!important;animation-iteration-count:1!important}}

/* Approved premium floor-drop transition. */
.v5-floor-change-chip{position:absolute;left:50%;top:18px;z-index:88;transform:translateX(-50%);display:flex;align-items:center;gap:9px;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.97);border:1px solid rgba(54,68,78,.10);box-shadow:0 8px 24px rgba(25,38,48,.12);white-space:nowrap;pointer-events:none}
.v5-floor-change-chip span,.v5-floor-change-chip strong{font:800 9px/1 Inter,Arial,sans-serif;color:#46545e}.v5-floor-change-chip strong{color:#1f2c35}.v5-floor-change-chip i{font:900 14px/1 Inter,Arial,sans-serif;color:#e5007d;font-style:normal}

/* Move the actual rendered map stage as one object. LabelLayer already owns a single
   wrapper, so labels travel with the WebGL map instead of fighting their inline transforms. */
.v5-map-root.is-floor-drop-transition{--v5-floor-exit-y:60px;--v5-floor-enter-y:-44px}
.v5-map-root.is-floor-drop-transition.is-floor-drop-up{--v5-floor-exit-y:-60px;--v5-floor-enter-y:44px}
.v5-map-root.is-floor-drop-transition .v5-canvas-host,
.v5-map-root.is-floor-drop-transition .v5-label-layer{will-change:transform,opacity;backface-visibility:hidden;transform:translate3d(0,0,0);opacity:1}

/* Current floor: visibly drops away. */
.v5-map-root.is-floor-drop-transition.is-floor-drop-out .v5-canvas-host,
.v5-map-root.is-floor-drop-transition.is-floor-drop-out .v5-label-layer{
  transform:translate3d(0,var(--v5-floor-exit-y),0);
  opacity:0;
  transition:transform .31s cubic-bezier(.32,0,.20,1),opacity .22s cubic-bezier(.4,0,.8,.2)!important
}

/* Scene is replaced only while fully transparent, already positioned on the entry side. */
.v5-map-root.is-floor-drop-transition.is-floor-drop-in-start .v5-canvas-host,
.v5-map-root.is-floor-drop-transition.is-floor-drop-in-start .v5-label-layer{
  transform:translate3d(0,var(--v5-floor-enter-y),0);
  opacity:0;
  transition:none!important
}

/* New floor drops gently into the exact same resting position. */
.v5-map-root.is-floor-drop-transition.is-floor-drop-in-start.is-floor-drop-in .v5-canvas-host,
.v5-map-root.is-floor-drop-transition.is-floor-drop-in-start.is-floor-drop-in .v5-label-layer{
  transform:translate3d(0,0,0);
  opacity:1;
  transition:transform .39s cubic-bezier(.22,.61,.36,1),opacity .31s cubic-bezier(.15,.7,.2,1)!important
}

.v5-map-root.is-floor-drop-transition .v5-store-card{opacity:0!important;pointer-events:none!important;transition:opacity .12s ease!important}
@media (prefers-reduced-motion:reduce){
  .v5-map-root.is-floor-drop-transition .v5-canvas-host,
  .v5-map-root.is-floor-drop-transition .v5-label-layer{transition-duration:.01ms!important;transform:none!important}
}

/* =========================================================
   ROUTE EXPERIENCE V1 — kiosk → route summary → mobile handoff
   ========================================================= */
.route-card.v5-has-route{width:286px;padding:14px 13px 13px;border-radius:20px;background:rgba(255,255,255,.965);box-shadow:0 18px 48px rgba(25,35,45,.14)}
.v5-route-summary{margin:0 4px 10px;padding:11px 11px 10px;border:1px solid rgba(45,57,66,.09);border-radius:14px;background:linear-gradient(180deg,#fff,#fafbfc)}
.v5-route-summary[hidden]{display:none!important}
.v5-route-summary-head{display:grid;gap:3px;margin-bottom:7px}.v5-route-summary-head>span{font:900 8px/1 Inter,Arial,sans-serif;letter-spacing:.12em;color:#e5007d}.v5-route-summary-head>strong{font:850 16px/1.05 Inter,Arial,sans-serif;letter-spacing:-.025em;color:#1f2b34;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v5-route-summary-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}.v5-route-summary-meta>span{font:750 9px/1 Inter,Arial,sans-serif;color:#56636d}.v5-route-summary-meta>b{padding:4px 6px;border-radius:999px;background:#fff0f7;color:#c81970;font:800 7.5px/1 Inter,Arial,sans-serif;white-space:nowrap}
.v5-route-steps{display:grid;grid-template-columns:1fr;gap:0}.v5-route-step{display:grid;grid-template-columns:24px 1fr;align-items:center;gap:8px;min-height:31px;position:relative}.v5-route-step-icon{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#eef1f3;color:#7a858d;border:1px solid rgba(50,63,72,.08);font:900 11px/1 Inter,Arial,sans-serif;z-index:1}.v5-route-step-copy{display:grid;gap:2px;min-width:0}.v5-route-step-copy strong{font:800 9px/1.08 Inter,Arial,sans-serif;color:#45525c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v5-route-step-copy small{font:650 7.5px/1.1 Inter,Arial,sans-serif;color:#90999f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v5-route-step.is-active .v5-route-step-icon{background:#ff35a1;color:#fff;border-color:#ff35a1;box-shadow:0 4px 12px rgba(255,53,161,.22)}.v5-route-step.is-active .v5-route-step-copy strong{color:#c71870}.v5-route-step.is-done .v5-route-step-icon{background:#2d3841;color:#fff;border-color:#2d3841}.v5-route-step-rail{display:block;width:1.5px;height:9px;margin-left:10px;background:#dce1e4;border-radius:2px}.v5-route-step-rail.is-done{background:#7d8991}
.v5-route-summary-error{padding:9px;border-radius:9px;background:#fff0f2;color:#9f1734;font:750 9px/1.35 Inter,Arial,sans-serif}
.route-card.v5-has-route .route-option{height:46px;border:1px solid transparent;padding:0 6px;grid-template-columns:24px 1fr 10px}.route-card.v5-has-route .route-option.active{border-color:rgba(255,53,161,.13);background:#fff2f8}.route-card.v5-has-route .route-option strong{font-size:9px}.route-card.v5-has-route .route-option small{font-size:8px}.route-card.v5-has-route .route-option .route-icon{font-size:17px}

/* The kiosk marker is the route origin. It is intentionally stronger than ordinary POIs,
   so the route can begin directly from "Vi ste ovdje" without adding a second dot. */
.v5-poi-info_kiosk{z-index:28!important}.v5-poi-info_kiosk .v5-poi-component{gap:3px}.v5-poi-info_kiosk .v5-poi-icon{width:27px;height:27px;border-radius:50%;background:#ff35a1!important;border:2px solid #fff;box-shadow:0 6px 16px rgba(255,53,161,.28),0 1px 0 rgba(30,38,45,.10)}.v5-poi-info_kiosk .v5-poi-icon img{width:15px;height:15px}.v5-poi-info_kiosk .v5-poi-component>span{max-width:none!important;padding:4px 7px!important;border-radius:999px!important;background:rgba(255,255,255,.97)!important;border:1px solid rgba(255,53,161,.18)!important;box-shadow:0 4px 12px rgba(27,35,42,.09)!important;color:#b91867!important;font:900 7.5px/1 Inter,Arial,sans-serif!important;letter-spacing:.025em;text-shadow:none!important;white-space:nowrap}

.v5-handoff-route{max-width:145px;margin-top:-3px;color:rgba(255,255,255,.72);font:700 8px/1.35 Inter,Arial,sans-serif}.handoff-qr img{background:#fff}

/* Mobile deep-link view. Same Three.js map and same route data; only the shell changes. */
.v5-mobile-route-bar{position:fixed;left:10px;right:10px;top:max(10px,env(safe-area-inset-top));z-index:140;height:54px;display:grid;grid-template-columns:72px 1fr 34px;align-items:center;gap:9px;padding:0 10px;border:1px solid rgba(50,62,72,.10);border-radius:17px;background:rgba(255,255,255,.94);box-shadow:0 10px 30px rgba(23,33,42,.13);backdrop-filter:blur(16px)}.v5-mobile-route-bar>img{display:block;max-width:68px;max-height:32px;object-fit:contain}.v5-mobile-route-bar>div{display:grid;gap:3px;min-width:0}.v5-mobile-route-bar small{font:850 7px/1 Inter,Arial,sans-serif;letter-spacing:.09em;color:#e5007d}.v5-mobile-route-bar strong{font:850 13px/1.05 Inter,Arial,sans-serif;color:#202c35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v5-mobile-route-bar button{width:32px;height:32px;border:0;border-radius:50%;background:#f2f4f5;color:#69757e;font:500 22px/1 Inter,Arial,sans-serif}

body.v5-mobile-route-mode{overflow:hidden!important;background:#f4f5f6!important}
.v5-mobile-route-mode .app{display:block!important;width:100%!important;height:100dvh!important;min-height:100dvh!important;overflow:hidden!important;background:#f4f5f6!important}
.v5-mobile-route-mode .topbar,.v5-mobile-route-mode .sidebar,.v5-mobile-route-mode .info-strip,.v5-mobile-route-mode .category-bar,.v5-mobile-route-mode .promo-card{display:none!important}
.v5-mobile-route-mode .workspace{position:fixed!important;inset:0!important;display:block!important;padding:0!important;margin:0!important;min-width:0!important;min-height:0!important}
.v5-mobile-route-mode .map-stage{position:absolute!important;inset:0!important;min-height:0!important;height:100%!important;overflow:hidden!important}
.v5-mobile-route-mode .map-slot{position:absolute!important;inset:0!important;border:0!important;border-radius:0!important;background:#f4f5f6!important}
.v5-mobile-route-mode .v5-store-card{display:none!important}
.v5-mobile-route-mode .route-card{position:absolute!important;left:10px!important;right:10px!important;top:auto!important;bottom:max(10px,env(safe-area-inset-bottom))!important;width:auto!important;max-width:none!important;z-index:120!important;padding:10px 10px 9px!important;border-radius:18px!important;background:rgba(255,255,255,.965)!important;box-shadow:0 14px 42px rgba(21,31,40,.17)!important;backdrop-filter:blur(18px)!important}
.v5-mobile-route-mode .route-card .overlay-title{margin:0 4px 6px;font-size:7.5px;color:#7a848b}.v5-mobile-route-mode .v5-route-summary{margin:0 0 7px;padding:8px 9px}.v5-mobile-route-mode .v5-route-summary-head{grid-template-columns:auto 1fr;align-items:baseline;gap:7px;margin-bottom:5px}.v5-mobile-route-mode .v5-route-summary-head>span{font-size:7px}.v5-mobile-route-mode .v5-route-summary-head>strong{font-size:15px}.v5-mobile-route-mode .v5-route-summary-meta{margin-bottom:6px}.v5-mobile-route-mode .v5-route-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.v5-mobile-route-mode .v5-route-step{display:flex;flex-direction:column;align-items:center;gap:3px;min-height:42px;text-align:center}.v5-mobile-route-mode .v5-route-step-icon{width:21px;height:21px}.v5-mobile-route-mode .v5-route-step-copy strong{font-size:7.4px;max-width:72px}.v5-mobile-route-mode .v5-route-step-copy small{display:none}.v5-mobile-route-mode .v5-route-step-rail{display:none}.v5-mobile-route-mode .route-card.v5-has-route{display:grid!important;grid-template-columns:1fr 1fr;gap:5px}.v5-mobile-route-mode .route-card.v5-has-route .overlay-title,.v5-mobile-route-mode .route-card.v5-has-route .v5-route-summary{grid-column:1/3}.v5-mobile-route-mode .route-card .route-option{height:42px!important;margin:0!important}.v5-mobile-route-mode .route-card .route-option strong{font-size:8px!important}.v5-mobile-route-mode .route-card .route-option small{font-size:7px!important}.v5-mobile-route-mode .map-tools{right:10px!important;top:82px!important;transform:none!important;gap:7px!important;z-index:115!important}.v5-mobile-route-mode .map-tools button{width:40px!important;height:40px!important;border-radius:12px!important;font-size:20px!important}.v5-mobile-route-mode .v5-floor-change-chip{top:74px!important}

@media(max-width:700px){.v5-poi-info_kiosk .v5-poi-icon{width:25px;height:25px}.v5-poi-info_kiosk .v5-poi-component>span{font-size:7px!important}.v5-mobile-route-mode .v5-map-label.is-text{font-size:8.8px}.v5-mobile-route-mode .v5-map-label.is-text.is-long{font-size:7.9px}}

/* =========================================================
   PREMIUM DISCOVERY V1 — autocomplete + Explore categories
   ========================================================= */
.search.v5-search-ready{position:relative;overflow:visible;z-index:34;transition:border-color .18s ease,box-shadow .18s ease}
.search.v5-search-ready:focus-within{border-color:rgba(255,53,161,.28);box-shadow:0 14px 38px rgba(31,42,53,.11),0 0 0 3px rgba(255,53,161,.055)}
.v5-search-popover[hidden],.v5-explore-panel[hidden]{display:none!important}
.v5-search-popover{position:absolute;left:0;right:0;top:calc(100% + 10px);z-index:150;padding:10px;border:1px solid rgba(40,52,62,.10);border-radius:20px;background:rgba(255,255,255,.975);box-shadow:0 24px 64px rgba(25,35,45,.17);backdrop-filter:blur(22px);animation:v5DiscoveryIn .18s cubic-bezier(.22,.61,.36,1) both}
.v5-search-popover-head{height:26px;display:flex;align-items:center;justify-content:space-between;padding:0 8px 5px}.v5-search-popover-head span{font:900 8px/1 Inter,Arial,sans-serif;letter-spacing:.12em;color:#d71a79}.v5-search-popover-head b{font:750 8px/1 Inter,Arial,sans-serif;color:#8a949c}
.v5-search-results{display:grid;gap:4px;max-height:374px;overflow:auto;overscroll-behavior:contain}.v5-search-result{appearance:none;width:100%;min-height:58px;border:1px solid transparent;border-radius:14px;background:transparent;padding:7px 9px;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;text-align:left;color:#27323b;cursor:pointer;transition:background .14s ease,border-color .14s ease,transform .14s ease}.v5-search-result:hover,.v5-search-result.is-active{background:linear-gradient(135deg,#fff4f9,#fff);border-color:rgba(255,53,161,.12);transform:translateY(-1px)}
.v5-discovery-brand{display:grid;place-items:center;overflow:hidden;background:#fff;border:1px solid rgba(40,52,62,.09);box-shadow:0 5px 14px rgba(28,38,47,.07);color:#c91872;font:900 16px/1 Inter,Arial,sans-serif}.v5-discovery-brand-search{width:40px;height:40px;border-radius:11px}.v5-discovery-brand-explore{width:46px;height:46px;border-radius:13px}.v5-discovery-brand img{max-width:82%;max-height:72%;object-fit:contain}.v5-discovery-brand.is-fallback{background:linear-gradient(145deg,#fff1f8,#fff);border-color:rgba(255,53,161,.10)}
.v5-discovery-copy{display:grid;gap:4px;min-width:0}.v5-discovery-copy strong{font:850 12px/1.08 Inter,Arial,sans-serif;color:#25313a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v5-discovery-copy small{font:650 8.5px/1 Inter,Arial,sans-serif;color:#89939a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v5-discovery-floor{padding:6px 8px;border-radius:999px;background:#f1f3f5;color:#5f6b73;font:850 8px/1 Inter,Arial,sans-serif;white-space:nowrap}.v5-search-result.is-active .v5-discovery-floor{background:#ffe9f4;color:#c91872}
.v5-search-hint{padding:8px 8px 1px;color:#9ba3aa;font:650 7.5px/1 Inter,Arial,sans-serif;text-align:right}.v5-search-empty{display:grid;gap:5px;padding:18px 14px;border-radius:13px;background:#f8f9fa}.v5-search-empty strong{font:850 11px/1 Inter,Arial,sans-serif;color:#46525b}.v5-search-empty span{font:650 9px/1.35 Inter,Arial,sans-serif;color:#8a949b}

.category-bar button{position:relative;transition:background .15s ease,color .15s ease,transform .15s ease}.category-bar button.is-active{background:#fff1f8;color:#c91872}.category-bar button.is-active:after{content:"";position:absolute;left:26%;right:26%;bottom:4px;height:2px;border-radius:999px;background:#ff35a1}.category-bar button:active{transform:translateY(1px)}
.v5-explore-panel{position:absolute;left:72px;right:330px;bottom:164px;z-index:38;max-height:345px;padding:15px;border:1px solid rgba(42,54,64,.10);border-radius:22px;background:rgba(255,255,255,.975);box-shadow:0 26px 70px rgba(24,34,44,.17);backdrop-filter:blur(24px);animation:v5ExploreIn .22s cubic-bezier(.22,.61,.36,1) both;overflow:hidden}
.v5-explore-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 2px 12px}.v5-explore-head>div{display:grid;grid-template-columns:auto 1fr;align-items:end;gap:4px 8px;min-width:0}.v5-explore-head span{grid-column:1/3;font:900 7.5px/1 Inter,Arial,sans-serif;letter-spacing:.12em;color:#d71a79}.v5-explore-head strong{font:900 18px/1 Inter,Arial,sans-serif;letter-spacing:-.02em;color:#202c35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v5-explore-head small{font:700 8px/1 Inter,Arial,sans-serif;color:#929ba2;padding-bottom:2px}.v5-explore-close{width:34px;height:34px;border:0;border-radius:50%;background:#f2f4f5;color:#6b767e;font:500 24px/1 Inter,Arial,sans-serif;cursor:pointer;flex:0 0 auto}
.v5-explore-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;max-height:267px;overflow:auto;padding:1px;overscroll-behavior:contain}.v5-explore-result{appearance:none;min-width:0;min-height:76px;border:1px solid rgba(45,57,66,.08);border-radius:15px;background:#fff;padding:9px;display:grid;grid-template-columns:46px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;gap:0 10px;text-align:left;box-shadow:0 6px 18px rgba(29,39,48,.045);cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.v5-explore-result:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(28,38,47,.09);border-color:rgba(255,53,161,.17)}.v5-explore-result .v5-discovery-brand{grid-row:1/3}.v5-explore-result .v5-discovery-copy{align-self:end}.v5-explore-result .v5-discovery-copy strong{font-size:10.5px}.v5-explore-result .v5-discovery-copy small{font-size:7.5px}.v5-explore-result .v5-discovery-floor{justify-self:start;align-self:start;margin-top:5px;padding:4px 6px;font-size:7px}.v5-explore-empty{grid-column:1/-1;padding:26px;border-radius:15px;background:#f7f8f9;color:#77828a;font:750 10px/1.4 Inter,Arial,sans-serif;text-align:center}
@keyframes v5DiscoveryIn{from{opacity:0;transform:translateY(-5px) scale(.992)}to{opacity:1;transform:none}}@keyframes v5ExploreIn{from{opacity:0;transform:translateY(8px) scale(.992)}to{opacity:1;transform:none}}

@media(max-width:1300px){.v5-explore-panel{left:18px;right:220px;bottom:150px}.v5-explore-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:980px){.v5-search-popover{left:-90px;right:-70px}.v5-explore-panel{left:14px;right:14px;bottom:220px}.v5-explore-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.v5-search-popover{position:fixed;left:10px;right:10px;top:68px;width:auto;max-height:70vh}.v5-search-results{max-height:54vh}.v5-explore-panel{left:10px;right:10px;bottom:200px;max-height:350px}.v5-explore-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:272px}.v5-explore-head strong{font-size:16px}.v5-search-hint{display:none}}
.v5-mobile-route-mode .v5-search-popover,.v5-mobile-route-mode .v5-explore-panel{display:none!important}


/* =========================================================
   DEMO POLISH V1 — premium kiosk attract / idle experience
   ========================================================= */
.v5-attract-mode[hidden]{display:none!important}
.v5-attract-mode{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;overflow:hidden;background:rgba(244,246,247,.80);backdrop-filter:blur(13px) saturate(.92);opacity:0;transition:opacity .24s ease;user-select:none;touch-action:manipulation}
.v5-attract-mode.is-visible{opacity:1}
.v5-attract-ambient{position:absolute;inset:-12%;background:radial-gradient(circle at 74% 33%,rgba(255,53,161,.12),transparent 24%),radial-gradient(circle at 22% 72%,rgba(24,117,184,.08),transparent 25%),linear-gradient(125deg,rgba(255,255,255,.94),rgba(246,247,248,.73));transform:scale(1.03)}
.v5-attract-shell{position:relative;width:min(1500px,88vw);min-height:min(720px,78vh);display:grid;grid-template-columns:minmax(430px,.92fr) minmax(430px,1.08fr);grid-template-rows:auto 1fr auto;gap:24px 54px;padding:48px 58px 40px;border:1px solid rgba(28,39,48,.09);border-radius:34px;background:rgba(255,255,255,.88);box-shadow:0 34px 100px rgba(20,31,40,.16),inset 0 1px 0 rgba(255,255,255,.86);backdrop-filter:blur(24px)}
.v5-attract-brand{grid-column:1/-1;display:flex;align-items:center;gap:13px;color:#1c2730}.v5-attract-brandmark{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#ff35a1;color:#fff;font:950 22px/1 Inter,Arial,sans-serif;box-shadow:0 9px 25px rgba(255,53,161,.23)}.v5-attract-brand>span:last-child{display:grid;gap:4px}.v5-attract-brand strong{font:900 11px/1 Inter,Arial,sans-serif;letter-spacing:.06em}.v5-attract-brand small{font:800 7px/1 Inter,Arial,sans-serif;letter-spacing:.22em;color:#9a667f}
.v5-attract-copy{align-self:center;max-width:620px;padding:12px 0 28px}.v5-attract-eyebrow{display:inline-flex;align-items:center;gap:8px;margin-bottom:18px;color:#d61d7a;font:900 9px/1 Inter,Arial,sans-serif;letter-spacing:.17em}.v5-attract-eyebrow:before{content:"";width:28px;height:2px;border-radius:999px;background:#ff35a1}.v5-attract-copy h1{margin:0;color:#17232c;font:950 clamp(42px,4.2vw,74px)/.98 Inter,Arial,sans-serif;letter-spacing:-.055em}.v5-attract-copy p{max-width:570px;margin:24px 0 27px;color:#69757e;font:650 17px/1.55 Inter,Arial,sans-serif;letter-spacing:-.012em}
.v5-attract-features{display:flex;align-items:center;flex-wrap:wrap;gap:10px;color:#55616a;font:750 10px/1 Inter,Arial,sans-serif}.v5-attract-features span{display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border:1px solid rgba(36,48,58,.08);border-radius:999px;background:rgba(249,250,250,.84)}.v5-attract-features b{font-weight:850;color:#303b44}.v5-attract-features i{width:3px;height:3px;border-radius:50%;background:#c5ccd1}
.v5-attract-cta{display:flex;align-items:center;gap:14px;margin-top:34px;color:#27333c}.v5-attract-cta strong{font:850 14px/1 Inter,Arial,sans-serif}.v5-attract-touch{position:relative;display:grid;place-items:center;width:39px;height:39px;border-radius:50%;background:#ff35a1;box-shadow:0 9px 25px rgba(255,53,161,.23)}.v5-attract-touch:before,.v5-attract-touch:after{content:"";position:absolute;border:1px solid rgba(255,53,161,.22);border-radius:50%;inset:-7px;animation:v5AttractPulse 2.4s ease-out infinite}.v5-attract-touch:after{animation-delay:1.2s}.v5-attract-touch i{width:9px;height:9px;border-radius:50%;background:#fff}
.v5-attract-route{position:relative;align-self:center;min-height:430px;border-radius:28px;background:linear-gradient(145deg,rgba(245,247,248,.92),rgba(255,255,255,.70));border:1px solid rgba(36,48,58,.065);overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}.v5-attract-route:before,.v5-attract-route:after{content:"";position:absolute;border:1px solid rgba(35,48,58,.055);border-radius:24px;transform:rotate(-8deg)}.v5-attract-route:before{width:240px;height:120px;left:40px;top:72px}.v5-attract-route:after{width:195px;height:98px;right:42px;bottom:55px}.v5-attract-route svg{position:absolute;left:5%;right:5%;bottom:6%;width:90%;height:auto;filter:drop-shadow(0 9px 16px rgba(255,53,161,.08))}.v5-attract-route-line,.v5-attract-route-shadow{fill:none;stroke-linecap:round;stroke-linejoin:round}.v5-attract-route-shadow{stroke:#fff;stroke-width:17}.v5-attract-route-line{stroke:#ff35a1;stroke-width:9}.v5-attract-route-start{fill:#fff;stroke:#ff35a1;stroke-width:5}.v5-attract-route-start-core{fill:#ff35a1}.v5-attract-route-pin path{fill:#ff35a1}.v5-attract-route-pin circle{fill:#fff}.v5-attract-route-pin .v5-attract-route-pin-core{fill:#ff35a1}.v5-attract-route-card{position:absolute;left:34px;top:30px;z-index:2;display:grid;gap:7px;padding:16px 18px 15px;border-radius:18px;background:rgba(255,255,255,.91);border:1px solid rgba(40,52,62,.07);box-shadow:0 16px 40px rgba(24,35,44,.09)}.v5-attract-route-card span{font:900 7px/1 Inter,Arial,sans-serif;letter-spacing:.14em;color:#d71a79}.v5-attract-route-card strong{font:900 17px/1.1 Inter,Arial,sans-serif;color:#26323b}.v5-attract-route-card small{font:650 8px/1 Inter,Arial,sans-serif;color:#8a949b}
.v5-attract-foot{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;padding-top:8px;color:#929ba2;font:750 8px/1 Inter,Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.v5-attract-active{overflow:hidden!important}.v5-attract-active .v5-boot-gate{visibility:hidden}
@keyframes v5AttractPulse{0%{opacity:.55;transform:scale(.72)}70%,100%{opacity:0;transform:scale(1.45)}}
@media(max-width:1050px){.v5-attract-shell{grid-template-columns:1fr;min-height:82vh;padding:38px;gap:18px}.v5-attract-route{min-height:250px}.v5-attract-copy{padding-bottom:0}.v5-attract-route-card{top:18px;left:20px}.v5-attract-copy h1{font-size:48px}}
@media(max-width:650px){.v5-attract-shell{width:calc(100vw - 24px);min-height:calc(100vh - 24px);padding:26px 22px;border-radius:25px}.v5-attract-copy h1{font-size:41px}.v5-attract-copy p{font-size:14px;margin:18px 0}.v5-attract-route{min-height:220px}.v5-attract-features i{display:none}.v5-attract-features{gap:6px}.v5-attract-foot{font-size:7px}}
@media(prefers-reduced-motion:reduce){.v5-attract-mode,.v5-attract-touch:before,.v5-attract-touch:after{animation:none!important;transition:none!important}}

/* Keep route mode switches deliberate while the route is recalculated. */
.route-card.v5-route-recalculating .route-option{pointer-events:none}.route-card.v5-route-recalculating .v5-route-summary{opacity:.72;transition:opacity .16s ease}



/* ---------- Final kiosk readability ---------- */
@media (min-width:701px){
  .v5-store-card{width:min(395px,calc(100% - 36px))}.v5-store-body{padding:17px 19px 18px}.v5-store-kicker{font-size:10.5px}.v5-store-title-row h3{font-size:23px}.v5-store-meta{font-size:12.5px;line-height:1.42}.v5-store-features span{font-size:10.5px}.v5-store-description{font-size:13px;line-height:1.48}.v5-store-section-title{font-size:10px}.v5-hours-row{font-size:12px;line-height:1.42}.v5-hours-note{font-size:10.5px}.v5-store-contact a,.v5-store-note{font-size:11px}.v5-navigate{font-size:13px;padding:12px 14px}
  .route-card.v5-has-route{width:340px!important;padding:18px 16px 16px!important;border-radius:22px}.route-card.v5-has-route .overlay-title{font-size:11px!important;letter-spacing:.08em}.v5-route-summary{margin:0 3px 12px!important;padding:16px 14px 14px!important;border-radius:19px}.v5-route-summary-head{gap:5px!important;margin-bottom:9px!important}.v5-route-summary-head>span{font-size:10px!important}.v5-route-summary-head>strong{font-size:21px!important;line-height:1.06!important}.v5-route-summary-meta{margin-bottom:12px!important}.v5-route-summary-meta>span{font-size:12px!important}.v5-route-summary-meta>b{font-size:9.5px!important;padding:6px 8px!important}.v5-route-step{grid-template-columns:31px 1fr!important;gap:10px!important;min-height:44px!important}.v5-route-step-icon{width:29px!important;height:29px!important;font-size:13px!important}.v5-route-step-copy{gap:3px!important}.v5-route-step-copy strong{font-size:12.5px!important;line-height:1.14!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important}.v5-route-step-copy small{font-size:10.5px!important;line-height:1.18!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important}.v5-route-step-rail{height:12px!important;margin-left:14px!important}.v5-route-summary-error{font-size:11.5px!important}.route-card.v5-has-route .route-option{height:56px!important;padding:0 10px!important;grid-template-columns:29px 1fr 12px!important}.route-card.v5-has-route .route-option .route-icon{font-size:19px!important}.route-card.v5-has-route .route-option strong{font-size:12px!important}.route-card.v5-has-route .route-option small{font-size:10.5px!important}
  .map-tools.v5-route-safe-tools{transition:top .18s ease}
}

/* ---------- Final map-label hierarchy ---------- */
.v5-map-label.is-unit-code{font-size:9.8px}
@media (min-width:701px){
  .v5-map-label.is-anchor{z-index:17;filter:drop-shadow(0 4px 10px rgba(30,40,48,.10))}.v5-map-label.is-anchor.is-text{padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.97);border:1px solid rgba(64,78,88,.12);box-shadow:0 6px 18px rgba(26,37,45,.10);color:#26323b;font-weight:800;-webkit-text-stroke:0;text-shadow:none}.v5-map-label.is-anchor.is-text span{max-width:var(--label-max-width,152px);-webkit-line-clamp:2;line-height:1.08}.v5-map-label.is-anchor.is-text.is-long{font-size:13.6px}.v5-map-label.is-anchor.has-logo{padding:4px 6px;background:rgba(255,255,255,.98);border:1px solid rgba(64,78,88,.10);border-radius:10px;box-shadow:0 6px 18px rgba(26,37,45,.10)}.v5-map-label.is-anchor img{max-width:96px;max-height:30px}
  .map-tools{overflow:visible}.v5-zoom-hint{position:absolute;right:calc(100% + 12px);top:2px;display:grid;gap:2px;min-width:154px;max-width:174px;padding:9px 11px;border-radius:14px;background:rgba(255,255,255,.96);border:1px solid rgba(64,78,88,.10);box-shadow:0 12px 30px rgba(23,35,45,.12);color:#33414b;pointer-events:none;opacity:0;transform:translate3d(8px,0,0) scale(.985);transition:opacity .22s ease,transform .22s ease;z-index:2}.v5-zoom-hint strong{font:800 11px/1.05 Inter,Arial,sans-serif;color:#e5007d}.v5-zoom-hint span{font:700 10px/1.18 Inter,Arial,sans-serif;color:#5d6972}.v5-zoom-hint.is-visible{opacity:1;transform:none}.v5-zoom-pulse{animation:v5ZoomPulse 1.12s ease-in-out 4}
}
@media (max-width:700px){.v5-zoom-hint{display:none!important}}
@keyframes v5ZoomPulse{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(229,0,125,0)}50%{transform:scale(1.07);box-shadow:0 0 0 10px rgba(229,0,125,.10)}}


/* =========================================================
   LABEL SYSTEM BEST PRACTICE V1
   Based on indoor-wayfinding best practice: overview hierarchy,
   zoom-based reveal, collision control, and selected-only callout.
   ========================================================= */
.v5-map-label.is-text{padding:1px 3px;background:transparent!important;border:0!important;box-shadow:none!important;font:670 14.4px/1.04 Inter,Arial,sans-serif;letter-spacing:-.012em;color:#27323a;-webkit-text-stroke:.62px rgba(255,255,255,.98);paint-order:stroke fill;text-shadow:0 1px 2px rgba(255,255,255,.78);white-space:normal}
.v5-map-label.is-text span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;white-space:normal;text-align:center;line-height:1.06;max-width:var(--label-max-width,120px);overflow-wrap:anywhere}
.v5-map-label.is-text.is-long{font-size:12.8px;letter-spacing:-.009em}
.v5-map-label.is-landmark{z-index:16}
.v5-map-label.is-landmark.is-text{font-size:16.2px;font-weight:820;color:#263039;-webkit-text-stroke:.78px rgba(255,255,255,.985);text-shadow:0 1px 2px rgba(255,255,255,.86),0 0 8px rgba(255,255,255,.52)}
.v5-map-label.is-landmark.is-text.is-long{font-size:14.4px}
.v5-map-label.is-primary.is-text{font-weight:710;color:#2a343c}
.v5-map-label.is-primary.is-text.is-long{font-size:12.9px}
.v5-map-label.is-detail.is-text{font-weight:660;color:#2d3840;opacity:.98}
.v5-map-label.is-detail.is-text.is-long{font-size:12.4px}
.v5-map-label.is-selected{padding:5px 9px!important;border-radius:9px!important;background:#fff!important;border:1.5px solid #e50070!important;box-shadow:0 7px 20px rgba(229,0,112,.20)!important;z-index:20!important;-webkit-text-stroke:0!important;text-shadow:none!important}
.v5-map-label.is-selected.is-text{font-size:15.3px!important;font-weight:760!important}
.v5-map-label.is-selected.is-text.is-long{font-size:13.8px!important}

@media (min-width:701px){
  .v5-map-label.is-anchor,.v5-map-label.has-logo{background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;filter:none!important}
  .v5-map-label.is-anchor img{max-width:86px!important;max-height:28px!important}
}
@media (max-width:700px){
  .v5-map-label.is-text{font-size:8.9px}
  .v5-map-label.is-text.is-long{font-size:8px}
  .v5-map-label.is-landmark.is-text{font-size:9.9px}
  .v5-map-label.is-landmark.is-text.is-long{font-size:8.8px}
}


/* =========================================================
   LABEL BALANCE V3 — calmer overview, progressive reveal
   ========================================================= */
.v5-map-label.is-text{font-size:13.7px!important;font-weight:660!important}
.v5-map-label.is-text.is-long{font-size:12.2px!important}
.v5-map-label.is-landmark.is-text{font-size:15.2px!important;font-weight:800!important;color:#263039!important}
.v5-map-label.is-landmark.is-text.is-long{font-size:13.6px!important}
.v5-map-label.is-primary.is-text{font-size:13.5px!important;font-weight:700!important;color:#2a343c!important}
.v5-map-label.is-primary.is-text.is-long{font-size:12.2px!important}
.v5-map-label.is-detail.is-text{font-size:12.8px!important;font-weight:640!important;color:#344049!important}
.v5-map-label.is-detail.is-text.is-long{font-size:11.6px!important}
.v5-map-label.is-selected.is-text{font-size:15.3px!important;font-weight:760!important}
