.banner-section{position:relative;width:100%;height:400px;overflow:hidden}.map-section{padding:40px 0;background-color:#f8f8f8}.map-container{max-width:1530px;margin:0 auto;padding:0 20px}.map-search-container{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;background-color:#fff;padding:15px;border-radius:8px;box-shadow:0 2px 10px #0000001a}.map-search-bar{flex:1;position:relative;margin-right:20px}.map-search-bar input{width:100%;padding:12px 15px;border:1px solid #e0e0e0;font-size:16px}.map-search-bar button{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer}.map-search-bar button img{width:20px;height:20px}.map-floor-selector{position:relative;width:200px}.map-floor-selector select{width:100%;padding:12px 15px;border:1px solid #e0e0e0;font-size:16px;appearance:none;background:url(../../icons/dropdown.svg) no-repeat right 15px center;background-size:12px}.map-terminal-selector{display:flex;margin-left:20px}.map-terminal-option{margin-right:15px}.map-terminal-option input[type=radio]{display:none}.map-terminal-option label{display:flex;align-items:center;cursor:pointer}.map-terminal-option label span{display:inline-block;width:18px;height:18px;border:2px solid #007DC9;border-radius:50%;margin-right:8px;position:relative}.map-terminal-option input[type=radio]:checked+label span:after{content:"";position:absolute;top:3px;left:3px;width:8px;height:8px;background:#007dc9;border-radius:50%}.map-search-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);pointer-events:none}.map-search-icon img{width:20px;height:20px}.map-search-bar input[type=search]{-webkit-appearance:none;appearance:none;padding-right:44px}.map-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:20px;align-items:start}.map-sidebar{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:14px;display:flex;flex-direction:column;gap:12px;align-self:stretch;contain:size;min-height:420px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.map-sidebar>*{min-width:0}.map-sidebar>.map-planner,.map-sidebar>.map-journey,.map-sidebar>.map-route-panel,.map-sidebar>.map-category-select{flex-shrink:0}.map-journey{flex:0 0 auto;border:1px solid #bfdbfe;background:#f0f7fd;border-radius:8px;padding:10px}.map-journey[hidden]{display:none}.map-journey-title{margin:0 0 8px;font-size:14px;font-weight:700;color:#0f3b66}.map-journey-steps{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:8px}.map-journey-step{display:block;width:100%;text-align:left;background:#fff;border:1px solid #dbeafe;border-radius:6px;padding:10px 12px;cursor:pointer}.map-journey-step:hover{border-color:#2563eb}.map-journey-step:focus-visible{border-color:#2563eb;outline:2px solid #2563eb;outline-offset:1px}.map-journey-kind{display:block;font-size:13px;font-weight:700;line-height:1.4;color:#0f172a}.map-journey-name{display:block;margin-top:2px;font-size:12px;line-height:1.4;color:#64748b;overflow-wrap:anywhere}.map-journey-note{margin:0;font-size:12px;line-height:1.5;color:#475569}.map-route-accessible{display:flex;align-items:center;gap:6px;margin:0 0 8px;font-size:13px;color:#475569}.map-route-panel{flex:0 0 auto;border:1px solid #bfdbfe;background:#f0f7fd;border-radius:8px;padding:10px}.map-route-panel[hidden]{display:none}.map-route-summary{margin:0 0 8px;font-size:13px;font-weight:600;color:#0f3b66}.map-route-error{margin:0 0 8px;padding:8px 10px;border-radius:6px;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;font-size:13px}.map-route-error[hidden]{display:none}.map-route-warning{margin:0 0 8px;padding:8px 10px;border-radius:6px;background:#fffbeb;border:1px solid #fde68a;color:#92400e;font-size:13px}.map-route-warning[hidden]{display:none}.map-route-steps{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:4px;max-height:240px;overflow-y:auto}.map-route-steps li{font-size:13px;color:#334155;padding:2px 0}.map-route-step{display:block;width:100%;text-align:left;background:#fff;border:1px solid #dbeafe;border-radius:6px;padding:6px 8px;cursor:pointer;font-size:13px;color:#334155}.map-route-step:hover,.map-route-step:focus-visible{border-color:#2563eb;outline:none}.map-route-actions{display:flex;gap:8px}.map-route-retry,.map-route-clear{flex:1 1 auto;padding:8px 10px;border-radius:6px;font-size:13px;cursor:pointer}.map-route-retry{border:1px solid #2563eb;background:#2563eb;color:#fff}.map-route-retry[hidden]{display:none}.map-route-clear{border:1px solid #94a3b8;background:#fff;color:#475569}.map-popup-route-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.map-popup-route-btn{flex:1 1 auto;padding:6px 8px;border:1px solid #2563eb;border-radius:6px;background:#fff;color:#2563eb;font-size:12px;cursor:pointer}.map-popup-route-btn:hover{background:#eff6ff}.map-popup-route-btn[data-selected=true]{background:#1d4ed8;color:#fff;cursor:default}.map-category-select{flex:0 0 auto;width:100%;padding:10px 36px 10px 12px;border:1px solid #e0e0e0;border-radius:6px;font-size:14px;appearance:none;background:#fff url(../../icons/dropdown.svg) no-repeat right 12px center;background-size:12px}.map-place-chips{display:flex;gap:8px;overflow-x:auto;padding:4px 0 8px;flex:0 0 auto}.map-place-chips[hidden]{display:none}.map-place-chip{flex:0 0 auto;padding:6px 12px;border:1px solid #fcd34d;border-radius:999px;background:#fffbeb;font-size:13px;cursor:pointer;white-space:nowrap}.map-place-chip:hover,.map-place-chip:focus-visible{background:#fef3c7;outline:2px solid #f59e0b;outline-offset:1px}.map-poi-list{list-style:none;margin:0;padding:0;position:relative;overflow-y:auto;flex:1 1 auto;min-height:180px}.map-poi-item{display:block;width:100%;text-align:left;padding:10px 8px;border:0;border-bottom:1px solid #eef1f4;background:transparent;font-size:15px;cursor:pointer}.map-poi-item:hover,.map-poi-item:focus-visible{background:#f0f7fd}.map-poi-item.is-selected{background:#e0f2fe;box-shadow:inset 3px 0 #007dc9}.map-poi-item.is-selected .map-poi-name{font-weight:600}.map-poi-name{display:block}.map-poi-meta{display:block;margin-top:2px;font-size:12px;color:#64748b}.map-poi-empty{padding:12px 8px;color:#64748b}.map-stage{position:relative;background:#eef1f4;border-radius:8px;box-shadow:0 2px 10px #0000001a;overflow:hidden}#map{width:100%;height:70vh;min-height:420px}.map-facade{position:absolute;left:0;top:0;width:100%;height:100%;z-index:1;cursor:grab;background:#eef1f4;touch-action:pan-y}.map-facade.map-facade-pois{background:transparent;cursor:inherit}.map-status{position:absolute;z-index:2;left:50%;bottom:16px;transform:translate(-50%);margin:0;max-width:calc(100% - 32px);padding:8px 14px;background:#fffffff2;border-radius:6px;box-shadow:0 2px 10px #00000026;font-size:14px;text-align:center}.map-status[hidden]{display:none}.map-popup a{color:#007dc9;font-weight:600}.mapboxgl-popup .mapboxgl-popup-close-button{width:28px;height:28px;padding:0;font-size:20px;line-height:28px;color:#333}.map-popup>strong{display:inline-block;max-width:100%;box-sizing:border-box;padding-right:20px}@media(pointer:coarse){.mapboxgl-popup .mapboxgl-popup-close-button{width:44px;height:44px;font-size:24px;line-height:44px}.map-popup>strong{padding-right:36px}}@media(max-width:1024px){.map-layout{grid-template-columns:1fr}.map-sidebar{align-self:auto;contain:none;height:auto;min-height:0;order:2}.map-poi-list{flex:none;max-height:320px}.map-search-container{flex-wrap:wrap;gap:12px}.map-search-bar{flex:1 1 100%;margin-right:0}.map-terminal-selector{margin-left:0}}@media(max-width:768px){.banner-section{height:120px}.map-section{padding:12px 0 24px}.map-search-container{padding:10px;margin-bottom:10px;gap:8px}#map{height:calc(100vh - 230px);height:calc(100svh - 230px);height:min(calc(100svh - 230px),62svh);min-height:360px}.map-route-panel{max-height:40vh;overflow-y:auto}.map-route-steps{max-height:none}}@media(max-width:576px){.map-container{padding:0 12px}.map-floor-selector{flex:1;width:auto}}.map-route-debug-gps{position:fixed;bottom:8px;left:8px;z-index:50;display:flex;gap:4px;align-items:center;padding:6px;background:#fef3c7;border:1px solid #f59e0b;border-radius:6px;font-size:12px}.map-route-debug-gps[hidden]{display:none}.map-route-debug-gps input{width:90px;font-size:12px}.map-planner{margin:0 0 12px;padding:12px;border:1px solid #e0e0e0;border-radius:10px;background:#fff}.map-planner-title{margin:0 0 8px;font-size:15px;font-weight:600;color:#1f2937}.map-planner-rows{list-style:none;margin:0;padding:0;min-height:227px}@media(max-width:1024px){.map-planner-rows{min-height:243px}}.map-planner-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:4px 0}.map-planner-dot{flex:0 0 20px;width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#fff}.map-planner-role{flex:1 0 calc(100% - 28px);margin:0 0 0 28px;font-size:12px;font-weight:600;color:#475569}.map-planner-row-start .map-planner-dot{background:#16a34a}.map-planner-row-dest .map-planner-dot{background:#1d4ed8}.map-planner-input{flex:1 1 0;min-width:0;padding:8px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:14px}.map-planner-input:focus{outline:2px solid #93c5fd;border-color:#2563eb}.map-planner-clear{flex:0 0 32px;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:50%;background:transparent;font-size:20px;line-height:1;color:#4b5563;cursor:pointer}.map-planner-clear:hover,.map-planner-clear:focus-visible{background:#f3f4f6;color:#111827;outline:none}.map-planner-start-hint{flex:1 0 calc(100% - 28px);margin:0 0 0 28px;font-size:12px;color:#6b7280;line-height:1.4}.map-planner-clear[hidden],.map-planner-suggestions[hidden],.map-planner-add[hidden],.map-planner-clear-all[hidden],.map-planner-hint[hidden]{display:none}.map-planner-suggestions{flex:1 0 calc(100% - 28px);list-style:none;margin:2px 0 0 28px;padding:0;max-height:220px;overflow-y:auto;border:1px solid #e5e7eb;border-radius:6px;background:#fff}.map-planner-suggestions button{display:block;width:100%;padding:8px 10px;border:none;background:transparent;text-align:left;font-size:13px;cursor:pointer}.map-planner-suggestions button:hover,.map-planner-suggestions button:focus-visible{background:#eff6ff}.map-planner-add{margin:4px 0 0 28px;padding:4px 0;border:none;background:transparent;color:#1d4ed8;font-size:13px;cursor:pointer}.map-planner-add:disabled{color:#9ca3af;cursor:not-allowed}.map-planner-hint{margin:4px 0 0;font-size:12px;color:#6b7280}.map-planner-clear-all{display:block;width:100%;min-height:36px;margin-top:4px;padding:6px 12px;border:1px solid #94a3b8;border-radius:6px;background:#fff;color:#475569;font-size:13px;cursor:pointer}.map-planner-go{width:100%;margin-top:8px;padding:9px 12px;border:none;border-radius:6px;background:#2563eb;color:#fff;font-size:14px;font-weight:600;cursor:pointer}.map-planner-go:disabled{background:#cbd5e1;cursor:not-allowed}.map-route-legs{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 0}.map-route-legs[hidden]{display:none}.map-route-leg-btn{padding:6px 10px;border:1px solid #bfdbfe;border-radius:6px;background:#eff6ff;color:#1d4ed8;font-size:13px;cursor:pointer}.map-route-leg-btn:disabled{border-color:#e5e7eb;background:#f3f4f6;color:#9ca3af;cursor:not-allowed}.map-route-leg-indicator{font-size:13px;font-weight:600;color:#1f2937;white-space:nowrap}.map-route-step-dim{opacity:.45}#route-steps li[aria-current=step]{border-left:3px solid #2563eb;padding-left:6px}.map-main{display:flex;flex-direction:column;gap:12px;min-width:0}.map-legend{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:14px 16px;position:relative}.map-legend[hidden]{display:none}.map-legend-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:10px;padding-right:40px}.map-legend-title{margin:0;font-size:14px;font-weight:700;text-transform:uppercase;color:#0f3b66}.map-legend-hint{margin:0;font-size:12px;color:#64748b}.map-legend-items{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 12px}.map-legend-item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border:1px solid transparent;border-radius:6px;background:transparent;text-align:left;font-size:14px;color:#1f2937;cursor:pointer}.map-legend-item:hover,.map-legend-item:focus-visible{background:#f0f7fd;outline:none}.map-legend-item[aria-pressed=true]{border-color:#007dc9;background:#e0f2fe;font-weight:600}.map-legend-dot{flex:0 0 28px;width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px #fff,0 0 0 3px #00000014}.map-legend-name{min-width:0;overflow-wrap:anywhere}.map-legend-count{margin-left:auto;font-size:12px;color:#64748b}@media(max-width:1280px){.map-legend-items{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1024px){.map-legend-items{grid-template-columns:repeat(2,minmax(0,1fr))}}.map-legend-items>li{display:flex}.map-legend-toggle{position:absolute;top:2px;right:4px;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;border-radius:6px;background:transparent;color:#0f3b66;cursor:pointer}@media(hover:hover){.map-legend-toggle:hover{background:#f0f7fd}}.map-legend-toggle:focus-visible{background:#f0f7fd;outline:2px solid transparent;box-shadow:0 0 0 2px #007dc9}.map-legend-chevron{transition:transform .2s ease}@media(prefers-reduced-motion:reduce){.map-legend-chevron{transition:none}}.map-legend.is-collapsed .map-legend-items,.map-legend.is-collapsed .map-legend-hint{display:none}.map-legend.is-collapsed .map-legend-head{margin-bottom:0}.map-legend.is-collapsed .map-legend-chevron{transform:rotate(-90deg)}@supports selector(:has(*)){.map-legend.is-collapsed .map-legend-items{display:flex}.map-legend.is-collapsed .map-legend-items>li{flex:0 1 320px}.map-legend.is-collapsed .map-legend-items>li:not(:has(>[aria-pressed=true])){display:none}.map-legend.is-collapsed:has([aria-pressed=true]) .map-legend-head{margin-bottom:10px}}@media(max-width:480px){.map-legend{padding:12px}.map-legend-item{font-size:13px;padding:6px;min-height:44px}.map-legend-items{grid-template-columns:minmax(0,1fr)}.map-legend-toggle{top:0;right:0}}.map-planner-row-meta{flex:1 0 calc(100% - 28px);margin:-2px 0 2px 28px;font-size:12px;color:#64748b;overflow-wrap:anywhere}.map-planner-row-meta[hidden]{display:none}.map-route-start-hint{margin:0 0 8px;font-size:12px;line-height:1.4;color:#475569}.map-route-start-hint[hidden],.map-route-viewmap,.map-route-jump{display:none}@media(max-width:1024px){.map-main{display:contents}.map-stage{order:1}.map-sidebar{order:2}.map-legend{order:3}.map-route-panel,.map-route-steps{max-height:none;overflow:visible}.map-route-viewmap{display:block;width:100%;min-height:44px;margin:0 0 8px;padding:8px 10px;border:1px solid #2563eb;border-radius:6px;background:#fff;color:#2563eb;font-size:14px;font-weight:600;cursor:pointer}.map-route-jump{position:absolute;z-index:3;left:12px;right:12px;bottom:36px;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;padding:8px 14px;border:0;border-radius:22px;background:#1d4ed8;color:#fff;font-size:13px;text-align:left;box-shadow:0 2px 10px #0000004d;cursor:pointer}.map-route-jump[hidden]{display:none}.map-route-jump-summary{min-width:0;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-route-jump-action{flex:0 0 auto;font-weight:700;white-space:nowrap}}@media(max-width:1024px){.map-sidebar{overscroll-behavior:auto}}@media(max-width:1024px),(pointer:coarse){.map-planner-input,.map-category-select{font-size:16px}}@media(max-width:1024px){.map-planner-input,.map-category-select{min-height:44px}.map-planner-add{min-height:44px;padding:10px 0}.map-planner-go,.map-planner-clear-all,.map-route-leg-btn,.map-route-accessible,.map-planner-suggestions button{min-height:44px}.map-planner-clear{flex:0 0 44px;width:44px;height:44px}}.map-stage>.map-route-legs{position:absolute;z-index:3;left:50%;transform:translate(-50%);width:min(420px,calc(100% - 24px));bottom:36px;margin:0;padding:4px;gap:6px;border:1px solid #d1d5db;border-radius:999px;background:#fffffff5;box-shadow:0 2px 10px #00000040}.map-stage>.map-route-legs .map-route-leg-btn{flex:0 0 44px;min-width:44px;min-height:44px;padding:0;border-radius:999px;font-size:24px;line-height:1}.map-stage>.map-route-legs .map-route-leg-indicator{flex:1 1 auto;min-width:0;text-align:center;white-space:normal;line-height:1.25;word-break:break-word;overflow-wrap:anywhere}.map-stage>.map-route-legs .map-route-leg-btn:focus-visible{outline:3px solid #1d4ed8;outline-offset:1px}@media(max-width:1024px){.map-stage>.map-route-legs{bottom:88px}}.map-stage:fullscreen{border-radius:0}.map-stage:fullscreen #map{height:100%;min-height:0}.map-stage:-webkit-full-screen{border-radius:0}.map-stage:-webkit-full-screen #map{height:100%;min-height:0}@media(max-width:1024px)and (max-height:500px)and (orientation:landscape){#map{height:62vh;height:62svh;min-height:200px}}.mapboxgl-ctrl-group .map-locate-btn{width:36px;height:36px;padding:6px;background:#fff;border:0;cursor:pointer}.mapboxgl-ctrl-group .map-locate-btn svg{width:100%;height:100%;display:block}@media(pointer:coarse){.mapboxgl-ctrl-group .map-locate-btn{width:44px;height:44px}}@media(max-width:1024px){.map-stage:has(.map-route-jump:not([hidden])) .mapboxgl-ctrl-bottom-right{bottom:96px}}.map-pick-box{flex:1 0 calc(100% - 28px);margin:0 0 0 28px;display:flex;flex-direction:column;align-items:flex-start;gap:4px}.map-planner-pick{padding:4px 0;border:none;background:transparent;color:#1d4ed8;font-size:14px;font-weight:600;text-align:left;cursor:pointer}.map-planner-pick[hidden],.map-pick-banner[hidden]{display:none}.map-planner-pick[aria-pressed=true]{background:#e6efff;color:#1e3a8a;padding:4px 10px;border-radius:6px}.map-planner-pick:focus-visible{outline:2px solid #1d4ed8;outline-offset:2px;border-radius:4px}.map-pick-banner{margin:0;padding:8px 10px;max-width:100%;font-size:13px;line-height:1.45;background:#eef4fb;border-radius:8px;overflow-wrap:anywhere}@media(pointer:coarse){.map-planner-pick{min-height:44px;display:inline-flex;align-items:center}}.map-sheet-toggle{display:none}@media(max-width:1024px){.map-sheet-toggle{display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;margin:0;padding:0;background:transparent;border:0;cursor:pointer}.map-sheet-grip{width:40px;height:5px;border-radius:3px;background:#8a97a8}.map-sheet-toggle:focus-visible{outline:2px solid #1F5FA8;outline-offset:-2px;border-radius:8px}.map-layout[data-sheet=collapsed] .map-sidebar>:not(.map-sheet-toggle):not(.sr-only){display:none}.map-layout[data-sheet=collapsed] #map{height:min(calc(100vh - 130px),80vh);height:min(calc(100svh - 130px),80svh)}.map-layout[data-sheet=tall] .map-sidebar{min-height:72svh}.map-layout[data-sheet] .map-stage:fullscreen #map{height:100%}}@media(max-width:1024px){.map-layout[data-sheet] .map-stage:-webkit-full-screen #map{height:100%}}.map-stage.is-expanded{position:fixed;inset:0;z-index:10000;height:100vh;height:100dvh;min-height:0;margin:0;border-radius:0;background:#fff}.map-stage.is-expanded #map{height:100%;min-height:0}html.map-expanded-lock{overflow:hidden;overscroll-behavior:none}.mapboxgl-ctrl-group .map-expand-btn{width:36px;height:36px;padding:6px;background:#fff;border:0;cursor:pointer}.mapboxgl-ctrl-group .map-expand-btn svg{width:100%;height:100%;display:block}@media(pointer:coarse){.mapboxgl-ctrl-group .map-expand-btn{width:44px;height:44px}}
