@import '../ui-kit/styles.css';
.stam-ui.expo-map{box-sizing:border-box;padding:20px;min-height:100%;color:#202435;background:#f6f7fb}.stam-ui.expo-map[data-ui-theme=dark]{color:#f0f2fa;background:#111624}.expo-map *{box-sizing:border-box}.expo-heading,.expo-actions,.expo-map-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.expo-heading{justify-content:space-between}.expo-heading h1{font-size:24px;margin:0 0 12px}.expo-notice{padding:12px;background:#fff0c9;color:#533c0c;border-radius:12px;font-size:14px;line-height:1.5}.expo-layout{display:grid;grid-template-columns:minmax(230px,320px) minmax(0,1fr);gap:16px;margin-top:12px}.expo-panel{min-width:0}.expo-field{position:relative;margin-bottom:12px}.expo-field label{display:block;font-weight:600;margin-bottom:6px}.expo-search{font:inherit;min-height:44px;width:100%;padding:10px 12px;border:1px solid #9aa3b8;border-radius:12px;color:inherit;background:#fff}.expo-map[data-ui-theme=dark] .expo-search{background:#212b40}.expo-results{position:absolute;z-index:4;left:0;right:0;top:100%;max-height:240px;overflow:auto;margin:4px 0 0;padding:4px;list-style:none;background:#fff;color:#202435;border:1px solid #9aa3b8;border-radius:12px;box-shadow:0 6px 20px #0002}.expo-map[data-ui-theme=dark] .expo-results{background:#212b40;color:#f0f2fa}.expo-option,.expo-empty{padding:12px;overflow-wrap:anywhere}.expo-option{cursor:pointer}.expo-option[aria-selected=true],.expo-option:hover{background:#6869ee25;border-radius:8px}.expo-status{line-height:1.5;font-size:14px;overflow-wrap:anywhere}.expo-canvas{position:relative;min-width:0}.expo-canvas>svg{display:block;width:100%;height:clamp(320px,65vh,720px);border:1px solid #9aa3b8;border-radius:16px;touch-action:none;user-select:none}.expo-floor{fill:#e8edf4}.expo-walkable{fill:#fff}.expo-obstacle{fill:#626b7a}.expo-booth polygon{fill:#d4ccff;stroke:#7166a7;stroke-width:.3}.expo-booth text{font-size:2.4px;fill:#302955;pointer-events:none}.expo-booth{cursor:pointer}.expo-booth:focus polygon{stroke:#ef9800;stroke-width:1}.expo-route{fill:none;stroke:#d34036;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.expo-marker{fill:#223896;stroke:#fff;stroke-width:.3;pointer-events:none}.expo-marker-label{fill:white;font-weight:bold;font-size:2px;pointer-events:none}.expo-map-controls{margin-top:8px}.expo-detail{position:absolute;z-index:3;bottom:60px;left:12px;right:12px;background:#fff;padding:14px;border-radius:12px;box-shadow:0 3px 15px #0003;display:flex;flex-wrap:wrap;gap:8px}.expo-detail h2{width:100%;margin:0;font-size:16px;overflow-wrap:anywhere}.expo-map[data-ui-theme=dark] .expo-detail{background:#212b40}.expo-map [hidden]{display:none!important}.expo-map input:focus-visible,.expo-canvas>svg:focus-visible{outline:3px solid #8a6fff;outline-offset:2px}@media(max-width:650px){.stam-ui.expo-map{padding:12px}.expo-layout{grid-template-columns:1fr}.expo-canvas>svg{height:390px}.expo-actions{gap:6px}.expo-heading h1{font-size:22px}}@media(max-height:500px){.expo-canvas>svg{height:300px}}
.expo-route{stroke-width:4px}.expo-has-floorplan .expo-walkable,.expo-has-floorplan .expo-obstacle{fill:transparent}.expo-has-floorplan .expo-booth polygon{fill:transparent;stroke:transparent}.expo-has-floorplan .expo-booth text{display:none}.expo-has-floorplan .expo-booth:focus polygon{stroke:#ef9800;stroke-width:3;vector-effect:non-scaling-stroke}
.expo-route-halo{fill:none;stroke:white;stroke-width:8px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.expo-marker{stroke-width:1px;vector-effect:non-scaling-stroke}
/* Review contract: owner checks one visibly fitted proposal through chat. */
.stam-ui.expo-map .expo-review{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:12px;background:#e8edf4;border-radius:12px;margin-top:12px}.expo-map[data-ui-theme=dark] .expo-review{background:#212b40}.expo-review-title{flex-basis:100%;margin:0;font-weight:600;overflow-wrap:anywhere}.expo-route-approved{stroke:#168b53}.expo-status{padding:8px 0;margin:4px 0}
.expo-selection-summary{font-size:14px;font-weight:600;overflow-wrap:anywhere;margin:8px 0}.expo-pending{font-size:14px;margin:12px 0}.expo-pending li{margin:6px 0;overflow-wrap:anywhere}
/* Visitor route contract: one route, selected place contours and full endpoint names. */
.expo-endpoint-legend{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:14px;line-height:1.4;margin:8px 0;overflow-wrap:anywhere}.expo-endpoint-legend p{margin:0;flex:1 1 220px}.expo-has-floorplan .expo-booth.expo-selected-a polygon,.expo-booth.expo-selected-a polygon{fill:#3355aa33;stroke:#3355aa;stroke-width:3px;vector-effect:non-scaling-stroke}.expo-has-floorplan .expo-booth.expo-selected-b polygon,.expo-booth.expo-selected-b polygon{fill:#d3403633;stroke:#d34036;stroke-width:3px;vector-effect:non-scaling-stroke}.expo-marker-b{fill:#d34036}
/* Building-question contract: uncertain context is visually distinct from routes. */
.stam-ui.expo-map .expo-building-review{display:flex;flex-wrap:wrap;gap:8px;padding:12px;margin-top:12px;border:1px solid #b96912;border-radius:12px}.expo-building-question{flex-basis:100%;font-size:16px;line-height:1.5;margin:4px 0;overflow-wrap:anywhere}.expo-question-region{fill:#e78b1920;stroke:#f0a02f;stroke-width:3px;stroke-dasharray:8 6;pointer-events:none}.expo-question-marker{fill:#8c4708;stroke:#ffbe55;stroke-width:3px;stroke-dasharray:5 3;pointer-events:none}.expo-question-label{fill:white;font-weight:700;pointer-events:none}
.expo-question-caption{fill:#fff;stroke:#442407;stroke-width:3px;paint-order:stroke;font-weight:600;pointer-events:none}
/* Visitor integration contract: map-first layout, kit actions, host-owned embedded height. */
.stam-ui.expo-visitor{padding:16px;height:100dvh;min-height:520px;display:flex;flex-direction:column;overflow:auto;padding-bottom:max(16px,env(safe-area-inset-bottom));padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
.stam-ui.expo-visitor[data-embedded=true]{height:var(--expo-map-height,100%);min-height:0}
.expo-visitor .expo-heading{flex:none;gap:12px;margin-bottom:12px;justify-content:flex-start}.expo-visitor .expo-heading h1{margin:0;font-size:22px;flex:1;min-width:0}.expo-draft-label{font-size:12px;color:inherit;opacity:.7}.expo-visitor .expo-layout{flex:1;min-height:0;margin:0;grid-template-columns:300px minmax(0,1fr);gap:16px}.expo-visitor .expo-panel{overflow:visible;padding:16px;border:1px solid #d4d9e4;border-radius:16px;background:#fff;align-self:start}.expo-visitor[data-ui-theme=dark] .expo-panel{background:#212b40;border-color:#46526c}.expo-panel-title{font-size:18px;margin:0 0 6px}.expo-panel-hint{font-size:14px;line-height:1.45;margin:0 0 16px;opacity:.75}.expo-visitor .expo-field label{font-size:14px}.expo-visitor .expo-search{font-size:16px;min-height:48px}.expo-visitor .expo-canvas{min-height:0;display:flex;flex-direction:column}.expo-visitor .expo-canvas>svg{flex:1;min-height:240px;height:100%;max-height:none}.expo-visitor .expo-map-controls{flex:none;gap:8px}.expo-visitor .expo-endpoint-legend{flex:none;font-size:13px}.expo-visitor .expo-selection-summary{font-weight:400;font-size:13px;margin-top:16px}.expo-visitor .expo-results{max-height:min(280px,45vh)}.expo-visitor .expo-status{font-size:14px;margin-bottom:0}.expo-visitor .expo-detail{bottom:72px;max-height:60%;overflow:auto}.expo-visitor .expo-actions{align-items:stretch;gap:8px}.expo-visitor .expo-actions>button:first-child{flex-basis:100%}
@media(max-width:650px){.stam-ui.expo-visitor{padding:12px;min-height:650px;padding-bottom:max(12px,env(safe-area-inset-bottom))}.stam-ui.expo-visitor[data-embedded=true]{min-height:0}.expo-visitor .expo-heading{margin-bottom:10px}.expo-visitor .expo-heading h1{font-size:18px}.expo-visitor .expo-layout{display:flex;flex-direction:column;gap:12px}.expo-visitor .expo-panel{flex:none;padding:12px;align-self:stretch}.expo-visitor .expo-panel-title{display:none}.expo-visitor .expo-panel-hint{font-size:13px;margin-bottom:10px}.expo-visitor .expo-fields{display:grid;grid-template-columns:1fr;gap:0}.expo-visitor .expo-field{margin-bottom:8px}.expo-visitor .expo-selection-summary{display:none}.expo-visitor .expo-status{margin:8px 0 0;padding:0}.expo-visitor .expo-canvas{flex:1;min-height:340px}.expo-visitor .expo-canvas>svg{min-height:280px}.expo-visitor .expo-endpoint-legend{display:none}.expo-visitor .expo-actions>button:first-child{flex:1 1 100%}}
@media(max-height:500px) and (min-width:651px){.stam-ui.expo-visitor{min-height:380px}.expo-visitor .expo-canvas>svg{min-height:180px}}

.expo-visitor .expo-route-disclosure{margin-top:12px}.expo-visitor .expo-panel:has(.expo-fields[hidden]) .expo-panel-title{display:none}
/* Collapsed mobile route retains both company endpoints for orientation. */
@media(max-width:650px){.expo-visitor .expo-panel:has(.expo-fields[hidden]) .expo-selection-summary{display:block;font-size:14px;line-height:1.5;margin:10px 0 0;overflow-wrap:anywhere}}
/* Metro reference contract: persistent A/B bar over the map, dedicated search sheet. */
.stam-ui.expo-visitor{position:relative;min-height:400px;padding:0;overflow:hidden}.expo-visitor .expo-heading{position:absolute;z-index:5;left:12px;right:12px;top:12px;pointer-events:none;margin:0;padding:8px 12px;border-radius:12px;background:#ffffffed}.expo-visitor[data-ui-theme=dark] .expo-heading{background:#212b40ed}.expo-visitor .expo-heading>button{pointer-events:auto}.expo-visitor .expo-layout{display:block;height:100%;width:100%;min-height:0}.expo-visitor .expo-canvas{height:100%;min-height:0}.expo-visitor .expo-canvas>svg{height:100%;min-height:0;border-radius:0;border:0}.expo-visitor .expo-endpoint-legend{display:none}.expo-visitor .expo-map-controls{position:absolute;right:12px;top:82px;max-width:calc(100% - 24px);margin:0;padding:8px;border-radius:12px;background:#ffffffed}.expo-visitor[data-ui-theme=dark] .expo-map-controls{background:#212b40ed}.expo-visitor .expo-map-controls>button:last-child{display:none}.expo-endpoint-bar{position:absolute;z-index:5;bottom:max(12px,env(safe-area-inset-bottom));left:12px;right:12px;max-width:700px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr);gap:8px;padding:10px;background:#ffffffed;border-radius:16px;box-shadow:0 4px 24px #0002}.expo-visitor[data-ui-theme=dark] .expo-endpoint-bar{background:#212b40ed}.expo-endpoint-control{min-width:0;text-align:left;max-width:100%;overflow-wrap:anywhere}.expo-endpoint-control>span{display:block;white-space:normal;line-height:1.35}.expo-endpoint-swap{align-self:center}.expo-visitor-status{position:absolute;bottom:115px;left:16px;right:16px;max-width:680px;margin:auto;pointer-events:none;text-align:center}.expo-visitor .expo-visitor-status .expo-status{display:inline-block;padding:6px 10px;border-radius:8px;background:#ffffffed;font-size:12px}.expo-visitor[data-ui-theme=dark] .expo-visitor-status .expo-status{background:#212b40ed}.expo-visitor .expo-search-overlay{position:absolute;z-index:20;inset:0;padding:20px;overflow:auto;align-self:auto;border:0;border-radius:0;background:#f6f7fb}.expo-visitor[data-ui-theme=dark] .expo-search-overlay{background:#111624}.expo-visitor .expo-search-cancel{margin:0 0 16px}.expo-visitor .expo-search-overlay .expo-fields{display:block;max-width:680px;margin:0 auto}.expo-visitor .expo-search-overlay .expo-results{position:static;max-height:none;box-shadow:none;margin-top:12px}.expo-visitor .expo-search-overlay .expo-search{font-size:16px;min-height:48px}.expo-visitor .expo-search-overlay>button:last-child{margin-top:12px}.expo-visitor .expo-detail{bottom:135px}.expo-visitor .expo-selection-summary{display:none!important}
@media(max-width:650px){.stam-ui.expo-visitor{min-height:400px}.stam-ui.expo-visitor[data-embedded=true]{min-height:0}.expo-visitor .expo-heading h1{font-size:16px}.expo-visitor .expo-heading{gap:6px;left:8px;right:8px;top:8px;padding:8px}.expo-visitor .expo-map-controls{top:76px;right:8px;padding:6px;gap:6px}.expo-endpoint-bar{left:8px;right:8px;padding:8px;gap:6px;grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr)}.expo-visitor .expo-search-overlay{padding:16px;padding-top:max(16px,env(safe-area-inset-top))}.expo-visitor .expo-detail{bottom:155px}}
.expo-endpoint-control>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}.expo-endpoint-control{height:48px}
.stam-ui.expo-visitor.expo-map-unavailable{padding:16px;overflow:auto}.expo-visitor.expo-map-unavailable .expo-heading{position:static;pointer-events:auto}.expo-visitor.expo-map-unavailable .expo-notice{margin-top:16px}
