/* Viewport chrome is independent of map camera transforms. */
body{overflow:hidden;overscroll-behavior:none}#route-overlay{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}header,.context,.controls,footer{z-index:5}section{z-index:6}#desktop-rail{position:fixed;inset:0 auto 0 0;width:76px;background:#fff;border-right:1px solid #e5e8ef;display:flex;align-items:center;flex-direction:column;padding:16px 6px;gap:16px;z-index:8}#desktop-rail button{width:64px;color:#525f75;font-size:24px;border-radius:14px}#desktop-rail button:hover{background:#eef1f8;color:#22245d}#desktop-rail small{display:block;font-size:11px;margin-top:6px}#rail-settings{margin-top:auto}header{left:92px;right:auto;width:360px;max-width:calc(100% - 110px);border-radius:28px;padding:4px 10px;gap:4px}header input{min-height:44px;padding:8px;font-size:14px}#menu-open{display:none}.context{left:92px;top:84px;max-width:360px}.controls,body:has(section:not([hidden])) .controls{bottom:32px;transition:none}section{top:152px;bottom:auto;left:92px;width:360px;max-height:calc(100dvh - 174px);border-radius:20px;padding:20px}dialog{position:fixed;inset:0 auto 0 76px;margin:0;width:390px;max-width:calc(100% - 76px);height:100dvh;max-height:100dvh;border-radius:0;padding:28px 24px;overscroll-behavior:contain}dialog::backdrop{background:#10122922}#floor-tray{inset:0 auto 0 76px;margin:0;width:360px}.sheet-handle{display:none}dialog h2{font-size:27px;letter-spacing:-.7px;margin:10px 0 6px}dialog h3{font-size:16px}.eyebrow{font-size:11px;color:#727d94;letter-spacing:1.5px;font-weight:700}.map-menu-links{gap:6px}.map-menu-links a,.map-menu-links button{padding:14px 16px;border-radius:12px}.map-menu-links a:hover,.map-menu-links button:hover{background:#e7ebf6}.close{font-size:26px;background:#f0f2f6;width:44px;padding:4px}.menu-item{display:flex;justify-content:space-between;align-items:center;padding:20px 0;border-bottom:1px solid #e6eaf1;gap:16px}.menu-item small{display:block;color:#6b7790;margin-top:6px;font-size:13px}.menu-item b{font-size:14px;white-space:nowrap}.settings-group{margin:24px 0;padding-top:16px;border-top:1px solid #e7eaf0}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 0}.setting-row small{display:block;font-size:12px;line-height:1.5;color:#6a7890;margin-top:6px}.setting-row input{width:22px;height:22px;accent-color:#22245d;flex-shrink:0}.setting-note{font-size:12px;background:#f3f5fa;padding:14px;border-radius:12px}#guidance-banner{display:flex;gap:14px;align-items:center;background:#22245d;color:white;border-radius:16px;padding:16px;margin-bottom:14px}#guidance-arrow{font-size:38px;line-height:1;min-width:38px}#guidance-banner small{display:block;font-size:10px;letter-spacing:1px;color:#ced2f7;margin-bottom:6px}#guidance-title{font-size:18px}#nav-title{display:block;font-size:22px;padding-right:52px;letter-spacing:-.5px}#nav-text{font-size:14px}#start,#next,#directions{min-width:132px;border-radius:24px;font-weight:650}#route-endpoints{margin:14px 0}#origin-select,#destination-label{font-size:14px}#place-meta .demo-facts{padding:14px}#status{left:92px;right:76px}
@media(max-width:700px){#desktop-rail{display:none}#menu-open{display:block}header{left:12px;right:12px;width:auto;max-width:none;top:max(12px,env(safe-area-inset-top));padding:4px 8px}header input{font-size:16px}.context{display:none}section{top:auto;left:0;bottom:var(--viewport-bottom,0px);width:100%;border-radius:26px 26px 0 0;padding:10px 20px max(20px,env(safe-area-inset-bottom));max-height:55dvh;overscroll-behavior:contain;touch-action:pan-y;box-shadow:0 -8px 36px #18264b22}.sheet-handle{display:block;width:42px;height:5px;border-radius:5px;background:#c6cad3;margin:0 auto 14px}dialog,#floor-tray{inset:auto 0 var(--viewport-bottom,0px);margin:0;width:100%;max-width:none;height:auto;max-height:85dvh;border-radius:26px 26px 0 0;padding:26px 22px max(26px,env(safe-area-inset-bottom));touch-action:pan-y}dialog::before{content:'';display:block;width:42px;height:5px;background:#c6cad3;border-radius:5px;margin:-14px auto 22px}dialog::backdrop{background:#11162b66}.controls,body:has(section:not([hidden])) .controls{right:12px;bottom:calc(20px + env(safe-area-inset-bottom) + var(--sheet-height,0px) + var(--viewport-bottom,0px));gap:8px}.controls button{width:44px;height:44px}body:has(section:not([hidden])) #status{display:none}#status{left:16px}#nav-title{font-size:21px}#route-endpoints{margin:10px 0}#nav-text{margin:10px 0;line-height:1.4}.route-option{margin-top:10px}#guidance-banner{padding:12px}#guidance-title{font-size:17px}#route-floors{margin:8px 0}}
/* Search results own the foreground; map controls never obscure the list. */
header{z-index:12}#results{max-height:min(48dvh,480px);box-shadow:0 14px 36px #1b27462b;overscroll-behavior:contain}body:has(#results:not([hidden])) .controls{visibility:hidden;pointer-events:none}body:has(#results:not([hidden])) section{visibility:hidden;pointer-events:none}#route-choices{display:grid;gap:8px;margin-top:14px}#route-choices button{text-align:left;border:1px solid #dce1ed;background:#f6f7fb;padding:13px 14px;border-radius:14px}#route-choices button[aria-pressed=true]{border-color:#343ea1;box-shadow:inset 0 0 0 1px #343ea1;background:#f0f1fd}#route-choices strong,#route-choices small{display:block}#route-choices small{font-size:11px;color:#6d7890;margin-top:6px;line-height:1.5}.place-tabs{display:flex;gap:16px;overflow-x:auto;border-bottom:1px solid #e4e8f0;margin:14px -20px 20px;padding:0 20px;scrollbar-width:none}.place-tabs button{border-radius:0;padding:12px 0;font-size:13px;color:#748096;white-space:nowrap;border-bottom:3px solid transparent}.place-tabs button[aria-selected=true]{color:#343e9b;border-color:#343e9b;font-weight:700}.gate-overview{display:flex;gap:14px;align-items:center;background:#f1f3fa;border-radius:16px;padding:16px}.gate-symbol{font-size:28px;color:#343e9b}.gate-overview-copy strong,.gate-overview-copy small{display:block}.gate-overview-copy small{margin-top:6px;font-size:12px;color:#727d92}.gate-tab-content h3{font-size:14px;margin-top:20px}.flight-card{display:block;text-align:left;width:100%;border:1px solid #e1e6ef;border-radius:18px;margin:12px 0;padding:16px;background:#fff;color:#243247}.flight-card:hover{background:#f8f9fe}.flight-top{display:flex;align-items:center;gap:10px}.airline-chip{display:grid;place-items:center;width:38px;height:38px;background:#f6edf2;color:#86274e;border-radius:12px;font-size:13px;font-weight:800}.flight-status{color:#387e44;background:#eef7ee;padding:6px 8px;border-radius:8px;font-size:11px;font-weight:650}.flight-top .flight-status{margin-left:auto}.flight-route{display:flex;align-items:center;justify-content:space-between;margin:18px 0 6px;gap:12px}.flight-route strong{font-size:29px;font-weight:550;letter-spacing:-1px}.flight-route>span{color:#62885d;font-size:22px;flex:1;text-align:center;border-bottom:2px solid #dbe7dc;padding-bottom:4px}.flight-cities{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:#6c7891}.flight-card>small{display:block;font-size:11px;color:#8490a5;border-top:1px solid #edf0f5;padding-top:12px;margin-top:16px}.demo-note{font-size:11px;color:#7a6883;background:#f5f0f7;border-radius:10px;padding:10px 12px;line-height:1.5}.nearby-status{font-size:12px!important}.nearby-card{display:flex;align-items:center;gap:12px;text-align:left;width:100%;border-bottom:1px solid #e8ecf3;border-radius:0;padding:16px 0}.nearby-card>div{flex:1}.nearby-card strong,.nearby-card small{display:block}.nearby-card small{font-size:11px;color:#778299;margin-top:6px;line-height:1.5}.flight-detail-heading{display:flex;gap:14px;align-items:center;margin-top:22px}.flight-detail-heading h2{margin:0}.flight-date{font-size:12px;margin:16px 0 32px}.flight-detail-route strong{font-size:46px}.flight-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px 16px;margin:34px 0}.flight-info-grid small,.flight-info-grid strong{display:block}.flight-info-grid small{font-size:12px;color:#8090a5;margin-bottom:8px}.flight-info-grid strong{font-size:14px;font-weight:550}@media(max-width:700px){#results{max-height:calc(100dvh - 106px - var(--viewport-bottom,0px))}#details:has(.place-tabs){max-height:65dvh}.place-tabs{position:sticky;top:-10px;background:white;z-index:1;margin-bottom:16px}.flight-detail-route strong{font-size:42px}#flight-dialog{max-height:80dvh}}
/* Compact desktop chrome. The floor button is the only floor-selector entry. */
@media(min-width:701px){#desktop-rail{width:60px;padding:12px 3px;gap:10px}#desktop-rail button{width:52px;font-size:20px;padding:8px 4px}#desktop-rail small{font-size:10px;margin-top:5px}header{left:74px;width:332px}.context{display:none!important}section{left:74px;top:86px;width:332px;max-height:calc(100dvh - 110px);padding:18px}dialog{left:60px;width:340px;max-width:calc(100% - 60px);padding:22px 20px}dialog h2{font-size:23px}.map-menu-links a,.map-menu-links button{padding:12px 14px}.controls button{width:42px;height:42px;min-height:42px;font-size:19px;border-radius:12px}.controls{gap:7px;right:14px}#status{left:74px}}
.map-menu-links a strong,.map-menu-links a small{display:block}.map-menu-links a small{font-size:11px;color:#7b869b;line-height:1.45;margin-top:5px}
#floor-tray{position:fixed;inset:auto 68px 186px auto;margin:0;width:210px;height:auto;max-height:calc(100dvh - 150px);border-radius:18px;padding:18px;box-shadow:0 12px 40px #141f4833}#floor-tray h2{font-size:18px;margin:4px 0 16px}#floor-tray .close{width:30px;min-height:30px;font-size:22px}#floor-options{gap:5px}#floor-options button{min-height:42px;border-radius:10px;font-size:13px;padding:10px 12px}#floor-open{font-size:15px!important;font-weight:750;letter-spacing:-.3px}#floor-tray::backdrop{background:transparent}#floor-tray::before{display:none}
@media(max-width:700px){#floor-tray{inset:auto 66px calc(166px + env(safe-area-inset-bottom) + var(--sheet-height,0px) + var(--viewport-bottom,0px)) auto;width:190px;max-width:calc(100% - 80px);height:auto;max-height:50dvh;padding:16px;border-radius:18px}#floor-tray h2{font-size:18px}}
/* Keep the current floor button available during route previews. */
body:has(#nav:not([hidden])) #floor-open{display:block}
/* One centered SVG icon system for all utility controls. */
.ui-icon{width:20px;height:20px;flex:none;display:block}.controls button,#menu-open,#search-clear,.close,#close{display:grid;place-items:center;padding:0;line-height:1}.controls button{width:44px;height:44px;min-height:44px;border-radius:12px;font-size:14px;box-shadow:0 3px 14px #14223c12}.controls{width:44px;gap:8px}.controls #view{font-size:13px;font-weight:700;letter-spacing:-.2px}#desktop-rail button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:10px 0}#desktop-rail small{margin:0}#desktop-rail .ui-icon{width:19px;height:19px}#menu-open,#search-clear{width:40px;min-width:40px;height:44px}.close,#close{width:34px;height:34px;min-height:34px;border-radius:50%;background:#f2f4f8}.close .ui-icon,#close .ui-icon{width:18px;height:18px}
#floor-control{position:relative;width:44px}#floor-tray{position:absolute!important;inset:auto 0 calc(100% + 8px) auto!important;margin:0!important;padding:0!important;width:44px!important;min-width:44px;max-width:none!important;max-height:none!important;height:auto!important;background:transparent!important;box-shadow:none!important;border:0!important;overflow:visible!important}#floor-options{display:flex;flex-direction:column;gap:7px}#floor-options button{width:44px;height:44px;min-height:44px;display:grid;place-items:center;padding:0;background:white;border-radius:12px;box-shadow:0 3px 14px #14223c18;font-size:14px;font-weight:650;animation:floor-rise .16s ease-out both}#floor-options button[aria-current=true]{display:none}#floor-open[aria-expanded=true]{background:#22245d;color:white}#floor-options button:hover{background:#edf0fb}#floor-open[aria-busy=true]{opacity:.5}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@keyframes floor-rise{from{transform:translateY(7px);opacity:0}to{transform:translateY(0);opacity:1}}@media(prefers-reduced-motion:reduce){#floor-options button{animation:none}}
#map-menu{padding:26px 22px}#map-menu h2{font-size:22px;letter-spacing:-.6px;margin:6px 0 10px}#map-menu>p{font-size:12px;line-height:1.6;margin-bottom:20px;max-width:250px}.map-menu-links{gap:4px;margin:20px -8px}.map-menu-links a,.map-menu-links button{display:flex;align-items:center;gap:13px;padding:13px 10px;border-radius:12px;background:transparent;width:100%;text-align:left;color:#344467}.map-menu-links .ui-icon{color:#71809a;width:19px;height:19px}.menu-row-copy{flex:1}.menu-row-copy strong{font-size:13px;font-weight:650}.menu-row-copy small{font-size:11px!important;line-height:1.4;margin-top:4px!important}.menu-row-chevron .ui-icon{width:15px;height:15px;color:#a2adbe}.map-menu-links button{font-size:13px}.map-menu-links #admin{border-top:1px solid #e9edf4;border-radius:0;padding-top:20px;margin-top:8px}.menu-update-card{margin-top:20px;padding:16px;border:1px solid #e7ebf3;background:#fafbfe;border-radius:16px}.menu-update-card h3{font-size:12px;margin:0 0 12px;display:flex;align-items:center;justify-content:space-between}.menu-update-card [data-app-version]{font-size:10px;background:#eceff8;padding:4px 7px;border-radius:12px;color:#6b7995}.menu-update-card button{min-height:36px;font-size:11px;padding:9px 11px;border-radius:10px}.menu-update-card #reload-app{background:transparent;color:#7d899c}.menu-update-card p{font-size:10px;line-height:1.5;margin:10px 0 0;color:#8a96aa}.menu-update-card p:last-child{border-top:1px solid #edf0f6;padding-top:12px}@media(min-width:701px){.map-menu-links .mobile-settings{display:none}}
#floor-options{max-height:var(--floor-space,260px);overflow-y:auto;scrollbar-width:none}#floor-options button{flex-shrink:0}
/* Passenger cards show the name, level and walking estimate. */
#details{padding-top:22px}#details #title{font-size:25px;letter-spacing:-.6px;margin:2px 42px 7px 0;line-height:1.2}#details #kind{display:block;font-size:13px;color:#8490a4}#details #close{position:absolute;right:18px;top:22px}#details .place-walking{font-size:16px;color:#65738b;margin:14px 0 20px}#place-actions:empty{display:none}#details #directions{margin:0;min-height:44px;padding:12px 23px}#place-actions{margin:0 8px 0 0}#description[hidden]{display:none!important}
/* Route preview: only relevant travel choices, endpoints and a Start action. */
#nav .route-option,#route-floors{display:none}#nav #end{position:absolute;right:18px;top:20px;float:none;display:grid;place-items:center;width:38px;height:38px;min-height:38px;padding:0;border-radius:50%;background:#fff0f2;color:#c9384a}#nav #nav-title{font-size:24px;margin:0 0 14px}#route-choices{display:flex;gap:12px;margin:0 -18px 12px;padding:0 18px;border-bottom:1px solid #e5eaf1}#route-choices button{flex:1;text-align:center;border:0;box-shadow:none!important;background:transparent;border-radius:0;padding:14px 6px;border-bottom:3px solid transparent}#route-choices button[aria-pressed=true]{border-color:#343ea1;color:#343ea1;background:transparent}#route-choices strong{font-size:14px}#route-choices small{font-size:12px}#route-endpoints{background:#f7f8fb;padding:0;border-radius:12px;margin:10px 0}#origin-select{padding:10px 12px;font-size:12px;min-height:38px}#destination-label{padding:10px 12px;font-size:13px}#nav-text{font-size:20px;color:#344467;font-weight:550;margin:14px 0}#nav #start{min-height:44px;padding:12px 24px;margin-top:0}
/* Active guidance keeps only the direction, remaining estimate and exit. */
#nav:is([data-mode=active],[data-mode=complete]){padding:18px 64px 18px 18px;max-height:unset}#nav:is([data-mode=active],[data-mode=complete]) :is(#nav-title,.route-option,#route-choices,#route-floors,#route-endpoints,#nav-text,#start,.sheet-handle){display:none!important}#nav:is([data-mode=active],[data-mode=complete]) #guidance-banner{background:transparent;color:#22245d;border-radius:0;margin:0;padding:0;gap:16px}#nav:is([data-mode=active],[data-mode=complete]) #guidance-progress{font-size:14px;color:#7c8a9f;letter-spacing:0;text-transform:none;margin-bottom:6px}#nav:is([data-mode=active],[data-mode=complete]) #guidance-title{font-size:19px;line-height:1.3}#nav:is([data-mode=active],[data-mode=complete]) #guidance-arrow{font-size:36px;min-width:34px}#nav:is([data-mode=active],[data-mode=complete]) #end{right:16px;top:18px;background:#d63c4e;color:#fff}#nav #next{position:absolute;right:16px;bottom:16px;width:38px;height:30px;min-height:30px;min-width:0;padding:0;font-size:18px;background:#f1f3f8;color:#75829a;border-radius:10px}.navigation-active header{display:none}.navigation-active #status{display:none}.navigation-active #locate{display:none}.navigation-active #markers{pointer-events:none}.navigation-active #markers button{pointer-events:none}
@media(max-width:700px){#details{padding:10px 20px max(22px,env(safe-area-inset-bottom))}#details #close{top:26px}#details #title{font-size:25px}#route-choices{margin-left:-20px;margin-right:-20px;padding-left:20px;padding-right:20px}#nav:is([data-mode=active],[data-mode=complete]){padding-bottom:max(20px,env(safe-area-inset-bottom))}#nav #next{bottom:8px}.navigation-active .controls{bottom:calc(16px + var(--sheet-height,0px) + env(safe-area-inset-bottom))}}
#nav:is([data-mode=active],[data-mode=complete]){min-height:104px}
.place-walking{display:flex;align-items:center;gap:8px}.place-walking .ui-icon{width:19px;height:19px}#route-choices button>.ui-icon{display:inline-block;vertical-align:middle;margin-bottom:4px}#nav:is([data-mode=active],[data-mode=complete]){padding:22px 66px 18px 20px;min-height:160px}#nav #next{position:static;width:100%;height:46px;min-height:46px;border-radius:14px;margin-top:18px;font-size:15px;font-weight:650;background:#22245d;color:#fff}#nav:is([data-mode=active],[data-mode=complete]) #next{width:calc(100% + 46px)}#transfer-ribbons{position:fixed;inset:0;z-index:3;pointer-events:none;overflow:hidden}.transfer-ribbon{position:absolute;left:0;top:0;padding:10px 16px;background:#343ea1;color:#fff;font-size:12px;font-weight:650;border-radius:4px 12px 12px 0;box-shadow:0 4px 12px #15214933;white-space:nowrap;border-left:4px solid #717cdb}.transfer-ribbon::before{content:'';position:absolute;left:-4px;top:100%;width:0;height:0;border-top:18px solid #21286e;border-left:18px solid transparent;transform:skewY(-12deg)}@media(max-width:700px){#nav #next{height:48px;min-height:48px;margin-top:16px}#nav:is([data-mode=active],[data-mode=complete]){padding-bottom:max(20px,env(safe-area-inset-bottom))}}

/* Gate redesign: bounded content, three tabs and a persistent primary action. */
#details:not(:has(#editor:not([hidden]))){padding:0;overflow:hidden;display:flex;flex-direction:column;max-height:calc(100dvh - 110px)}
#details .details-scroll{padding:24px 20px 0;overflow-y:auto;overflow-x:hidden;min-height:0;overscroll-behavior:contain;flex:1}
#details .sheet-handle{flex:none;margin-top:10px;margin-bottom:0}
#details .details-footer{flex:none;padding:16px 20px 20px;border-top:1px solid #edf0f5;background:white}
#details:has(#directions[hidden]) .details-footer{display:none}
#details #directions{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;border-radius:14px;font-size:15px}
#details #title{font-size:28px;font-weight:720;color:#22245d;letter-spacing:-.7px;margin-bottom:8px}
#details #kind{color:#6e7a90;font-size:13px}
#details .place-walking{display:flex;align-items:center;gap:8px;font-size:15px;margin:18px 0 20px;color:#4d5b74}
#details .place-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;overflow:visible;margin:0 -20px 18px;padding:0 20px;position:static}
#details .place-tabs button{text-align:center;font-size:13px;min-width:0;padding:13px 0}
#details .gate-tab-content{min-width:0;padding-bottom:20px}
.gate-section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
#details .gate-tab-content h3{font-size:13px;font-weight:650;margin:0 0 12px;color:#4e5c73}
.gate-section-heading h3{margin:0!important}.sample-badge{font-size:10px;color:#7b6881;background:#f5eff7;padding:4px 7px;border-radius:6px;white-space:nowrap}
.flight-card.flight-summary{display:flex;align-items:center;gap:10px;min-height:78px;padding:13px 12px;margin:0 0 20px;border-radius:13px;background:#fafbfd;border-color:#e9edf3}
.flight-summary .airline-chip{width:32px;height:32px;border-radius:9px;font-size:11px;flex:none}
.flight-summary-copy{flex:1;min-width:0}.flight-summary-copy strong,.flight-summary-copy small,.flight-summary-time strong{display:block}
.flight-summary-copy strong{font-size:13px;font-weight:700}.flight-summary-copy small{font-size:11px;margin-top:5px;color:#6d7990;line-height:1.4;overflow-wrap:anywhere}
.flight-summary-time{text-align:right;flex:none}.flight-summary-time strong{font-size:13px;margin-bottom:5px}.flight-summary .flight-status{font-size:9px;padding:3px 5px;border-radius:5px;display:inline-block}
.flight-summary-chevron .ui-icon{width:14px;height:14px;color:#9aa5b7}
.nearby-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.nearby-shortcut{display:flex;align-items:center;flex-direction:column;justify-content:center;gap:10px;background:#f4f6fa;min-height:82px;padding:12px 5px;border-radius:12px;color:#586782}
.nearby-shortcut span{font-size:10px;line-height:1.4;text-align:center}.nearby-shortcut .ui-icon{color:#343e85;width:22px;height:22px}
.nearby-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-bottom:12px}.nearby-filters button{font-size:10px;background:#f3f5fa;border-radius:9px;padding:8px 4px}.nearby-filters button[aria-pressed=true]{background:#22245d;color:white}
.nearby-card>div{min-width:0}.nearby-card strong{overflow-wrap:anywhere;font-size:13px}
#details button:focus-visible{outline:2px solid #397cdb;outline-offset:2px}
@media(min-width:701px){#details{width:360px}header{width:360px}}
@media(max-width:700px){#details:not(:has(#editor:not([hidden]))),#details:has(.place-tabs){max-height:min(65dvh,620px);padding:0;width:100%;left:0;top:auto;bottom:var(--viewport-bottom,0px)}#details .details-scroll{padding-top:20px}#details #close{top:30px}#details .details-footer{padding-bottom:max(18px,env(safe-area-inset-bottom))}#details #title{font-size:27px}}

/* Search surface and route modes share consistent visual rhythm. */
header input:focus,header input:focus-visible{outline:none!important;box-shadow:none!important;border:0!important;background:transparent}
header:focus-within{box-shadow:0 3px 16px #1c28451c,0 0 0 2px #aeb9dc}
#results{margin-top:10px;padding:4px 12px;border:1px solid #e7ebf2;border-radius:18px;max-height:min(58dvh,520px);overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#cbd3df transparent}
#results::-webkit-scrollbar,section::-webkit-scrollbar,.details-scroll::-webkit-scrollbar,dialog::-webkit-scrollbar{width:5px;height:5px}
#results::-webkit-scrollbar-thumb,section::-webkit-scrollbar-thumb,.details-scroll::-webkit-scrollbar-thumb,dialog::-webkit-scrollbar-thumb{background:#cbd3df;border-radius:10px}
#results::-webkit-scrollbar-button,section::-webkit-scrollbar-button,dialog::-webkit-scrollbar-button{display:none;width:0;height:0}
section,.details-scroll,dialog{scrollbar-width:thin;scrollbar-color:#cbd3df transparent}
#results .search-result{display:flex;align-items:center;gap:12px;padding:14px 8px;min-height:74px;border-bottom:1px solid #edf0f5}
#results .search-result:last-child{border-bottom:0}#results .search-result:hover,#results .search-result:focus-visible{background:#f3f5fa;border-radius:10px;outline:none}
#results .result-icon{width:36px;height:36px;background:#f0f3f8;color:#697a94}
#results .result-icon .ui-icon{width:19px;height:19px}#results .search-result>span:last-child{flex:1;min-width:0}
#results strong{font-size:14px;font-weight:650;line-height:1.35;overflow-wrap:anywhere}#results small{font-size:11px;line-height:1.5;color:#77849a;margin-top:4px}
@media(min-width:701px){header #menu-open{display:none!important}header::before{content:'';width:20px;height:20px;margin:0 8px;flex:none;background:currentColor;mask:url('assets/material-icons/search.svg') center/contain no-repeat;color:#75839b}header{padding:5px 8px;border-radius:24px}header input{font-size:13px}#results{left:0;right:0}}
@media(max-width:700px){header #menu-open{display:grid}#results{max-height:calc(100dvh - 106px - var(--viewport-bottom,0px));padding:4px 10px}#results .search-result{min-height:74px}#results strong{font-size:15px}#results small{font-size:12px}}
#route-choices button{display:grid;grid-template-columns:24px auto;grid-template-rows:auto auto;justify-content:center;align-items:center;column-gap:8px;row-gap:6px;padding:16px 6px}
#route-choices button>.ui-icon{grid-column:1;grid-row:1;width:21px;height:21px;margin:0;display:block}
#route-choices button>strong{grid-column:2;grid-row:1;line-height:1.3;font-size:13px;white-space:nowrap}
#route-choices button>small{grid-column:1 / -1;grid-row:2;margin:0}
#nav-text:empty{display:none}#guidance-arrow>.ui-icon{width:34px;height:34px}
/* Non-modal calibration keeps the map available for pan and zoom. */
.appearance-group>p{font-size:12px;line-height:1.5}.appearance-group>button{display:block;width:100%;margin-top:10px;border-radius:12px;font-size:13px}.directory-launch{background:#f2f5fa;color:#3b4b68}.appearance-calibrator{position:fixed;left:74px;bottom:20px;width:340px;max-height:calc(100dvh - 100px);overflow:auto;background:#fff;z-index:15;border:1px solid #e3e8f0;border-radius:20px;padding:16px;box-shadow:0 10px 40px #1d29432b;scrollbar-width:thin}.calibrator-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.calibrator-header strong{font-size:15px}.calibrator-close{display:grid;place-items:center;background:#f2f4f8;border-radius:50%;padding:0;width:30px;height:30px;min-height:30px;font-size:21px}.profile-tabs{display:flex;gap:6px;padding:3px;background:#f1f4f9;border-radius:11px;margin-bottom:10px}.profile-tabs button{flex:1;min-height:34px;font-size:12px;padding:6px;border-radius:8px;background:transparent}.profile-tabs button[aria-pressed=true]{background:#fff;box-shadow:0 2px 6px #20355412;font-weight:700}.appearance-calibrator select{width:100%;border:1px solid #dce3ef;border-radius:10px;padding:8px;font-size:13px;background:white;color:#243247;min-height:36px}.calibration-fields{margin-top:12px;display:grid;gap:10px}.calibration-field>span{display:block;font-size:11px;color:#65748d;margin-bottom:5px}.calibration-inputs{display:flex;gap:8px;align-items:center}.calibration-inputs input[type=range]{min-width:0;flex:1;accent-color:#343e9b}.calibration-inputs input[type=number]{width:63px;min-height:34px;border:1px solid #dce3ef;border-radius:8px;padding:5px;font-size:13px}.calibration-inputs small{font-size:11px;color:#8490a4}.calibration-note,.calibration-status{font-size:11px;line-height:1.45;color:#748199;margin:10px 0}.calibration-status{color:#526885}.calibration-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.calibration-actions button{padding:8px 4px;min-height:36px;border-radius:9px;font-size:11px;line-height:1.3;background:#f3f5fa}.calibration-actions .primary{background:#22245d}.appearance-calibrator :is(button,input,select):focus-visible{outline:2px solid #4285d7;outline-offset:2px}
.poi-directory-dialog{width:420px;padding:24px 20px}.poi-directory-dialog>p{font-size:12px;line-height:1.5}.directory-filters{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:20px 0 12px}.directory-filters>input{grid-column:1/-1}.directory-filters :is(select,input[type=search]){min-width:0;width:100%;border:1px solid #dce3ef;padding:10px;border-radius:10px;background:#fff;color:#344467;font-size:12px}.directory-filters>label{grid-column:1/-1;display:flex;align-items:center;gap:8px;font-size:12px;padding:5px 0}.directory-filters input[type=checkbox]{accent-color:#343e9b}.directory-count,.directory-status{font-size:11px!important;color:#76839a}.directory-rows{display:grid;gap:10px}.directory-row{padding:14px 12px;border:1px solid #e6ebf2;border-left:3px solid var(--poi-color);border-radius:12px;background:#fafbfe}.directory-row strong,.directory-row small{display:block}.directory-row strong{font-size:13px;line-height:1.4}.directory-row small{font-size:10px;color:#74819a;margin-top:5px;line-height:1.4}.directory-row-controls{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}.directory-row-controls select{width:100%;min-width:0;font-size:11px;border:1px solid #dce3ef;background:#fff;border-radius:8px;padding:8px;color:#344467}.poi-directory-dialog>button:not(.close){min-height:38px;font-size:12px;margin-top:14px;background:#f1f4fa}body:has(.appearance-calibrator:not([hidden])) .controls{bottom:calc(20px + var(--calibration-height,360px) + var(--viewport-bottom,0px))}
@media(max-width:700px){.appearance-calibrator{left:0;bottom:var(--viewport-bottom,0px);width:100%;border-radius:22px 22px 0 0;max-height:48dvh;padding:14px 20px max(14px,env(safe-area-inset-bottom))}.poi-directory-dialog{width:100%;max-height:85dvh}.calibration-actions button{min-height:40px}.appearance-calibrator .calibration-note{margin:8px 0}.calibration-status{margin:8px 0}body:has(.appearance-calibrator:not([hidden])) .controls{bottom:calc(12px + var(--calibration-height,360px) + var(--viewport-bottom,0px))}}

/* Safari focus zoom prevention, including phones in landscape. Preserve native page pinch. */
@media(max-width:700px),(hover:none) and (pointer:coarse){
 input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),textarea,select{font-size:16px!important}
 section,dialog,.appearance-calibrator{touch-action:pan-y pinch-zoom}
}

.admin-category-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.admin-category-fields select{display:block;width:100%;min-width:0;min-height:44px;border:1px solid #dce3ef;border-radius:10px;padding:8px;margin-top:5px;background:white;color:#243247}

/* The tuning workspace is loaded only by its unlisted link. */
.zoom-level-control{position:relative}.zoom-level-tray{position:absolute;right:calc(100% + 10px);bottom:0;width:160px;padding:6px;background:#fff;border:1px solid #e2e7ef;border-radius:15px;box-shadow:0 6px 28px #18264b22;display:grid;gap:3px}.controls .zoom-level-tray button{width:100%;height:auto;min-height:40px;box-shadow:none;text-align:left;font-size:13px;padding:10px;border-radius:9px}.zoom-level-tray button:hover{background:#eef1fa}.calibration-levels{display:flex;gap:6px;margin:10px 0}.calibration-levels button{flex:1;min-height:34px;border-radius:9px;background:#f1f4f9;padding:6px;font-size:13px}.calibration-levels button[aria-pressed=true]{background:#22245d;color:#fff}.calibration-mode .appearance-calibrator{border-top:3px solid #4c61b6}.controls #calibration-zoom{font-size:14px;font-weight:650}

#desktop-rail .workspace-shortcut{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:64px;padding:10px 2px;color:#596581;text-decoration:none}#desktop-rail .workspace-shortcut .ui-icon{width:20px;height:20px}#desktop-rail .workspace-shortcut small{font-size:9px}#desktop-rail .workspace-shortcut:hover{background:#f0f3fa;border-radius:10px}.location-status{font-size:12px;color:#65748b}

#desktop-rail .workspace-shortcut[href*="simulation"]{margin-top:auto}#desktop-rail #rail-settings{margin-top:0}
.passenger-media{position:relative;margin:14px 0}.place-banner{display:block;width:100%;height:120px;object-fit:cover;border-radius:12px}.place-logo{display:block;width:58px;height:58px;object-fit:contain;padding:5px;background:white;border:1px solid #e1e6ef;border-radius:12px;margin:10px 0}.place-banner+.place-logo{margin-top:-23px;position:relative;margin-left:12px}.place-gallery{display:flex;gap:8px;overflow-x:auto;scrollbar-width:thin;margin:12px 0;padding-bottom:4px}.place-gallery img{width:140px;height:94px;object-fit:cover;border-radius:10px;flex-shrink:0}
.restaurant-menu-section{font-size:16px;margin-top:22px}.restaurant-menu-item{padding:14px 0;border-bottom:1px solid #e5e9f0}.restaurant-menu-item>div:first-child{display:flex;justify-content:space-between;gap:16px;font-size:14px}.restaurant-menu-item p{font-size:12px;margin:7px 0}.menu-allergens{display:grid;gap:5px;color:#65748b;font-size:11px;line-height:1.5}.passenger-branches{border-top:1px solid #e5e9f0;margin:12px 0;padding-top:12px;font-size:12px}.passenger-branches summary{cursor:pointer;color:#4a5d7a}.passenger-branches button{display:block;font-size:12px;margin-top:7px}
#desktop-rail #rail-settings{margin-top:auto}
.app-launcher{position:fixed;right:20px;top:20px;z-index:110}.app-launcher-button{width:44px;height:44px;display:grid;place-items:center;background:white;border:1px solid #e2e7ef;border-radius:14px;box-shadow:0 3px 14px #20355415;color:#364460}.app-launcher-tray{position:absolute;right:0;top:54px;width:300px;padding:12px;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:white;border:1px solid #e2e7ef;border-radius:18px;box-shadow:0 12px 40px #20355424}.app-launcher-tray a{display:flex;flex-direction:column;align-items:center;gap:10px;text-decoration:none;color:#344467;text-align:center;padding:14px 6px;border-radius:12px;font-size:12px}.app-launcher-tray a:hover{background:#f0f3fa}.app-launcher-tray a span{font-size:25px;color:#434c95}.app-launcher-tray .app-launcher-docs{grid-column:1/-1;border-top:1px solid #edf0f5;border-radius:0;padding:14px 8px 6px}.app-launcher-tray[hidden]{display:none}
.appearance-calibrator textarea{width:100%;font-size:12px;padding:8px;border:1px solid #dce3ef;border-radius:9px;resize:vertical}.calibration-qr svg{display:block;width:100%;height:auto;background:white}.calibration-qr p{font-size:12px}.appearance-calibrator input[type=number],.appearance-calibrator select{font-size:16px}.calibration-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.appearance-calibrator{max-height:70dvh;overflow:auto}.controls #calibration-zoom{width:44px;height:44px}
@media(max-width:700px){.app-launcher{display:none}.appearance-calibrator{max-height:48dvh}.appearance-calibrator textarea{font-size:16px}}

.calibration-levels{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.calibration-style-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.calibration-style-fields label{font-size:12px;color:#65748d}.calibration-style-fields select{margin-top:6px}.calibration-style-fields[hidden]{display:none}.calibration-colors{margin:12px 0;border:1px solid #e0e5ef;border-radius:10px;padding:12px}.calibration-colors summary{cursor:pointer;font-size:13px;font-weight:600}.calibration-colors label{display:grid;grid-template-columns:55px 1fr 36px;gap:8px;align-items:center;font-size:12px;margin-top:12px}.calibration-colors input{min-width:0;width:100%;accent-color:#343e9b}.calibration-colors small{display:block;color:#758299;font-size:11px;line-height:1.5;margin-top:12px}.calibration-colors span{font-size:11px;text-align:right}

.calibration-qr-dialog{width:min(640px,90vw);max-height:94dvh;padding:24px;background:white}.calibration-qr-dialog svg{width:100%;height:auto;max-height:72dvh}.calibration-qr-dialog h2{font-size:20px}
.admin-map-embedded .passenger-rail,.admin-map-embedded .app-launcher,.admin-map-embedded #map-menu,.admin-map-embedded #details,.admin-map-embedded #nav{display:none!important}.admin-map-embedded header{left:16px!important;max-width:380px}.admin-map-embedded #status{left:16px!important}.admin-map-embedded .controls{z-index:120}#route-choices button:disabled{opacity:.45;cursor:not-allowed}#route-choices{display:flex!important}
.admin-map-embedded #desktop-rail,.admin-map-embedded #floor-context,.admin-map-embedded #menu-open{display:none!important}
.maintenance-editor section{position:static!important;inset:auto!important;width:auto!important;max-height:none!important;padding:0!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;visibility:visible!important}.maintenance-editor .media-item{display:flex;gap:10px;margin:12px 0}.maintenance-editor .media-item img{width:70px;height:70px;object-fit:cover;border-radius:8px}.maintenance-editor .media-item>div{min-width:0}.maintenance-editor input[type=file]{font-size:12px}.maintenance-editor .media-item-actions{display:flex;gap:5px;flex-wrap:wrap}.maintenance-editor [hidden]{display:none!important}

.calibration-style-fields label:has(select[aria-label="Font family"]){grid-column:1 / -1}
.passenger-maintenance-notice{margin:12px 0 16px;padding:14px 16px;border:1px solid #ef9c4b;border-left:4px solid #e87919;border-radius:10px;background:#fff1e1;color:#914009;font-size:13px;line-height:1.45}.maintenance-notice-title{display:flex;align-items:center;gap:9px}.maintenance-notice-title svg{width:26px;height:26px;flex:none}.maintenance-notice-title strong{font-size:15px;font-weight:650}.passenger-maintenance-notice small{display:block;margin-top:8px;color:#9b592c}.passenger-maintenance-notice dl{display:grid;grid-template-columns:44px 1fr;gap:5px 12px;margin:10px 0 0;font-size:12px}.passenger-maintenance-notice dt{font-weight:600}.passenger-maintenance-notice dd{margin:0}.branding-details .place-banner{object-fit:contain;background:#f3f5f8;max-height:240px}
/* The Precision admin shell owns search and workspace navigation. */
.precision-map-shell>header,.precision-map-shell #desktop-rail,.precision-map-shell>.app-launcher{display:none!important}
.precision-map-shell .design-inspector{top:0!important}
.precision-map-shell .appearance-calibrator{inset:0 0 0 auto;bottom:auto;width:360px;height:100dvh;max-height:100dvh;border-radius:0;padding:16px;z-index:160;box-sizing:border-box;font:12px Roboto,system-ui,sans-serif}
.precision-map-shell .appearance-calibrator .calibrator-header strong{font-size:15px}
.precision-map-shell .appearance-calibrator :is(input,select,button){font-size:12px;border-radius:5px;min-height:30px}
.precision-map-shell .zoom-level-control[hidden]{display:none!important}

.precision-map-shell .appearance-calibrator{inset:0 auto 0 0;border-right:1px solid #dfe4ed;border-left:0;box-shadow:6px 0 20px #17203314}
.precision-map-shell:has(.appearance-calibrator:not([hidden])) .controls{bottom:24px;right:20px}
.map-selection-pin{position:fixed;width:36px;height:44px;z-index:105;pointer-events:none;transform:translate(-50%,-100%);filter:drop-shadow(0 2px 3px #17203366)}
.map-selection-pin .ui-icon{width:100%;height:100%;color:#d93025}
.map-selection-pin[hidden]{display:none}
#map canvas[data-drawing=true],#map canvas[data-drawing=true]:active{cursor:crosshair!important}
.matar-menu-brand{display:flex;align-items:center;gap:10px;color:#1e245e;font-size:18px;font-weight:650;margin-bottom:14px}
.matar-menu-brand img{width:32px;height:32px;object-fit:contain}
@media(max-width:700px){.precision-map-shell .appearance-calibrator{width:min(340px,calc(100vw - 76px));max-height:100dvh}.precision-map-shell:has(.appearance-calibrator:not([hidden])) .controls{right:12px;bottom:16px}}
