/* 8.9 R1: app shell, identity dock and metro itinerary. Loaded after legacy map styling. */
.uv-app89{--canvas:#f5f6f0;--line:#dfe3d7;--brand-soft:#f6e7ed;--dock-h:82px;background:var(--canvas)}
.uv-app89 .app{grid-template-rows:auto auto minmax(0,1fr) auto;padding-bottom:0}
.uv-app89 .site-header{height:64px;padding:8px 24px}.uv-app89 .brand{font-size:25px}.uv-app89 .app-heading{padding:12px 24px}.uv-app89 .app-heading h1{font-size:24px}.uv-app89 .map-wrap{margin:0 14px;--uv-toolbar-h:0px}.uv-app89 #map{inset:0}
.uv-app89 .toolbar{position:absolute;top:12px;left:12px;right:auto;display:flex;width:auto;min-height:0;padding:0;background:transparent;border:0;backdrop-filter:none;z-index:900;max-width:calc(100% - 80px)}
.uv-app89 .toolbar #linesBtn{background:#fff;color:var(--ink);border-color:var(--line);border-radius:16px 16px 16px 5px}
.uv-app89 .toolbar .count{background:var(--brand-soft);color:var(--brand);border-radius:6px;min-width:22px}
.uv-app89 .toolbar #moreBtn{background:#fff}.uv-app89 .map-tools{top:124px;bottom:auto;right:12px;display:grid}
.uv-app89 .leaflet-top.leaflet-right{top:4px;right:2px}
.uv-app89 .app-dock{grid-row:4;display:flex;align-items:center;justify-content:center;gap:8px;width:min(460px,calc(100% - 24px));margin:10px auto max(10px,env(safe-area-inset-bottom));padding:6px 8px;background:#25291c;border:1px solid #343b29;border-radius:24px 24px 16px 16px;box-shadow:0 7px 20px #25291c20;z-index:1300;min-height:66px}
.uv-app89 .app-dock .dock-item{flex:1;min-width:0;min-height:52px;border:0;background:transparent;color:#e9ecdf;box-shadow:none;padding:5px 3px;gap:5px;flex-direction:column;font-size:12px;line-height:1.2;font-weight:500;border-radius:17px 17px 11px 11px;position:relative;transition:background .18s,color .18s}
.uv-app89 .dock-icon{display:flex;align-items:center;justify-content:center;position:relative}.uv-app89 .dock-icon svg{width:21px;height:21px}
.uv-app89 .app-dock .dock-item[aria-current=page]{background:var(--brand);color:#fff;box-shadow:0 2px 0 #750d2e}
.uv-app89 .app-dock .dock-item[aria-current=page]:before{content:'';position:absolute;top:9px;right:9px;width:5px;height:5px;background:#fff;border-radius:50%}
.uv-app89 .app-dock button:hover{background:#414837}.uv-app89 .app-dock :focus-visible{outline-color:#fff;outline-offset:2px}
.uv-app89 .locate-hero{position:absolute;right:12px;bottom:32px;z-index:950;background:#fff;border-radius:18px 18px 5px 18px;box-shadow:0 4px 16px #25291c18;padding:8px 12px 8px 8px;text-align:left;justify-content:flex-start;gap:10px}
.uv-app89 .locate-hero strong{display:block;font-size:15px}.uv-app89 .locate-hero small{display:block;font-size:12px;font-weight:400;color:var(--muted)}
.uv-app89 .person-disc{width:36px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--brand-soft);color:var(--brand);border-radius:12px}.uv-app89 .person-disc svg{height:26px;width:26px}
.uv-app89 .locate-hero[data-state=loading] .person-disc{animation:uv-scout .6s ease 3}.uv-app89 .locate-hero[data-state=active] .person-disc{animation:uv-scout .45s ease 2}
@keyframes uv-scout{50%{transform:translateY(-3px) rotate(7deg)}}
.uv-app89 .user-person{width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:var(--brand);color:#fff;border:3px solid #fff;border-radius:16px 16px 16px 5px;box-shadow:0 0 0 7px #b6174b20,0 3px 8px #25291c40}.uv-app89 .user-person svg{width:25px;height:25px}
.uv-app89 .destination-shortcut{position:absolute;z-index:900;bottom:20px;left:50%;transform:translateX(-50%);width:min(400px,calc(100% - 24px));padding:15px 18px;justify-content:flex-start;border-radius:18px;background:#fff;box-shadow:0 5px 24px #25291c20;font-family:'Bricolage Grotesque',sans-serif;font-size:19px}.uv-app89 .destination-shortcut svg:last-child{margin-left:auto;color:var(--brand)}
.uv-app89 .drawer{top:76px;bottom:18px;left:12px;width:410px;max-width:calc(100% - 90px);border-radius:24px;background:var(--canvas)}
.uv-app89 .drawer-head{background:#fff;padding:10px 10px 10px 20px}.uv-app89 .drawer-head h2{font-size:22px;flex:1;min-width:0}.uv-app89 .drawer-head .icon-button{border:0;background:transparent;width:44px;min-width:44px;min-height:44px}
.uv-app89 .drawer-body{padding:12px 20px 22px;scroll-padding-top:16px}.uv-app89 .drawer-view{min-width:0}.uv-app89 #panelBack{padding:6px;margin-left:-10px}
.uv-app89 .journey-intro .eyebrow{font-size:11px;letter-spacing:1px;margin:0 0 6px}.uv-app89 .journey-intro h3{font-size:30px;margin:0 0 8px}.uv-app89 .journey-intro p{margin-bottom:12px}
.uv-app89 .journey-place{margin-top:12px;padding:10px 12px;background:#fff;border:1px solid var(--line);border-radius:16px;position:relative}
.uv-app89 .journey-place .field{margin:0 0 3px!important;color:var(--muted);font-size:12px}
.uv-app89 .journey-place input{border:0;border-radius:6px;padding:10px 0;background:#fff}
.uv-app89 #originAddress,.uv-app89 #destinationAddress{min-height:44px;margin:0;background:transparent;border:0;color:var(--brand);font-size:13px;padding:6px 0}
.uv-app89 #journeyGPS{margin-top:8px;border:0;background:#e9eddf;color:#35482a;font-size:14px}.uv-app89 #journeySwap{margin:8px 0;padding:6px 12px;background:transparent;border:0;color:var(--muted);font-size:14px}
.uv-app89 .journey-time{border:1px solid var(--line);border-radius:12px;background:#fff;padding:0 12px;margin:0 0 14px}.uv-app89 .journey-time summary{min-height:48px;display:flex;align-items:center;font-size:14px}.uv-app89 .journey-time summary:after{content:'＋';margin-left:auto}.uv-app89 .journey-time[open] summary:after{content:'−'}
.uv-app89 .journey-time input{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff}.uv-app89 #journeyFind{margin:0;border-radius:14px 14px 14px 5px;justify-content:space-between}.uv-app89 #journeyDepartures{background:transparent;border:0;margin-top:6px;font-size:14px;color:var(--muted)}
.uv-app89 .journey-data{margin:12px 0;font-size:13px}.uv-app89 .journey-data summary{min-height:44px;padding:10px 0;font-size:13px;color:var(--muted)}
.uv-app89 .journey-suggestions{max-height:none;overflow:visible}.uv-app89 .journey-suggestions button{border:0;border-top:1px solid var(--line);border-radius:0;padding:12px 0;background:#fff;display:block;width:100%;font-size:15px}.uv-app89 .journey-suggestions small{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.uv-app89 .journey-card{border:1px solid var(--line);padding:16px;margin-top:14px;border-radius:18px;background:#fff;box-shadow:none}.uv-app89 .journey-card h3{color:var(--ink);margin:0;font-size:23px}.uv-app89 .journey-card strong{border:0;padding:0}.uv-app89 .journey-card p{font-size:14px}.uv-app89 .journey-card button{width:100%;border:0;background:var(--brand-soft);color:var(--brand);border-radius:11px;justify-content:space-between;margin-top:10px}
.uv-app89 .journey-badges{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:12px 0}.uv-app89 .journey-badge{display:inline-flex;padding:4px 9px;min-width:30px;min-height:28px;border-radius:7px;align-items:center;justify-content:center;background:var(--brand);color:#fff;font-size:14px;font-weight:700}
.uv-app89 .itinerary-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.uv-app89 .itinerary-top h3{font-size:28px;margin:0}.uv-app89 .itinerary-top p{font-size:13px;margin:6px 0}.uv-app89 .itinerary-mode{display:flex;gap:4px;padding:4px;background:#e5eadc;border-radius:12px;margin:16px 0}.uv-app89 .itinerary-mode button{flex:1;font-size:14px;min-height:44px;padding:8px 10px;border:0}.uv-app89 .itinerary-mode button:first-child{background:#fff;color:var(--ink)}
.uv-app89 .metro-timeline{background:#fff;border-radius:18px;padding:18px 14px;margin:12px 0}.uv-app89 .metro-step{display:grid;grid-template-columns:46px 16px minmax(0,1fr);gap:10px;position:relative;min-height:70px}.uv-app89 .metro-step time{font-size:13px;font-weight:600;padding-top:2px;font-variant-numeric:tabular-nums}.uv-app89 .metro-step .metro-rail{position:relative;display:flex;justify-content:center}.uv-app89 .metro-rail:before{content:'';width:12px;height:12px;border:3px solid var(--brand);border-radius:50%;background:#fff;position:relative;z-index:1;margin-top:4px}.uv-app89 .metro-rail:after{content:'';position:absolute;top:10px;bottom:-4px;width:4px;background:var(--brand)}
.uv-app89 .metro-step.walk .metro-rail:after{width:0;border-left:2px dashed #87917d;background:transparent}.uv-app89 .metro-step.walk .metro-rail:before{border-color:#87917d;width:9px;height:9px}.uv-app89 .metro-step.transfer .metro-rail:before{box-shadow:0 0 0 3px #fff,0 0 0 5px var(--brand)}.uv-app89 .metro-step:last-child .metro-rail:after{display:none}.uv-app89 .metro-step:last-child{min-height:48px}.uv-app89 .metro-step strong{font-size:16px;display:block;overflow-wrap:anywhere}.uv-app89 .metro-step p{font-size:13px;color:var(--muted);margin:5px 0 16px}.uv-app89 .metro-step details{margin-bottom:16px;font-size:13px}.uv-app89 .metro-step summary{min-height:44px;padding:10px 0}.uv-app89 .metro-stops{margin:0;padding-left:16px}.uv-app89 .metro-stops li{padding:6px 0}.uv-app89 .metro-line-title{margin:12px 0 0;font-size:14px;line-height:1.5}
.uv-app89 .itinerary-actions{display:flex;gap:8px;flex-wrap:wrap}.uv-app89 .itinerary-actions button{flex:1;font-size:14px;min-width:110px}.uv-app89 .route-footnote{font-size:13px;color:var(--muted);margin:12px 0}
.uv-app89 .reopen-journey{position:absolute;left:12px;bottom:24px;z-index:950;background:#fff;border-radius:16px;box-shadow:0 3px 14px #25291c20;max-width:calc(100% - 24px)}
.uv-app89 .journey-live{top:12px;left:12px;right:auto;max-width:calc(100% - 88px);width:auto;font-size:14px;border-radius:14px;background:#fff!important;color:var(--ink)!important;z-index:950}
.uv-app89.uv-itinerary .locate-hero{display:flex!important}.uv-app89.uv-itinerary .map-tools{display:none!important}.uv-app89.uv-itinerary .destination-shortcut{display:none}
.uv-app89[data-panel]:not([data-panel=""]) .reopen-journey{display:none}.uv-app89[data-panel]:not([data-panel=""]) .locate-hero{bottom:18px}
.uv-app89 .profile-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;margin:20px 0}.uv-app89 .profile-card>svg{width:32px;height:32px;color:var(--brand)}.uv-app89 .profile-card h3{margin-top:12px}.uv-app89 .profile-link{display:flex;align-items:center;justify-content:space-between;padding:20px 0;min-height:48px;text-decoration:none;color:var(--brand);font-weight:600}
.uv-app89 .saved-journey{background:#fff;border:1px solid var(--line);border-radius:16px;padding:8px 12px;margin:12px 0}.uv-app89 .saved-open{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;border:0;text-align:left;width:100%;padding:10px 0;background:#fff}.uv-app89 .saved-open span{font-size:12px;color:var(--muted);font-weight:400}.uv-app89 .saved-remove{border:0;background:transparent;font-size:13px;padding:6px 0;color:var(--brand)}
.uv-app89 .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.uv-app89 .service-banner{top:72px}.uv-app89 .map-wrap.has-alert .drawer{top:155px}
@media(max-width:760px){
 .uv-app89 .site-header{height:54px;padding:4px 16px}.uv-app89 .brand{font-size:23px}.uv-app89 .site-header nav{top:54px}.uv-app89 .app-heading{padding:6px 12px 8px;display:grid!important;grid-template-columns:minmax(0,1fr);gap:0}.uv-app89 .app-heading>div:first-child{display:none}.uv-app89 .app-heading .network-switch{width:100%;padding:3px;border:0;background:#e9ecdf;border-radius:12px;order:0}.uv-app89 .network-switch button{min-height:44px;font-size:14px}.uv-app89 .app-heading .live-status{max-width:100%;font-size:12px;padding:5px 2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;order:1}
 .uv-app89 .map-wrap{margin:0 6px;border-radius:18px;--uv-toolbar-h:0px}.uv-app89 #map{inset:0}.uv-app89 .toolbar{left:10px;top:10px;max-width:calc(100% - 76px);gap:6px}.uv-app89 .toolbar button{width:auto;padding:9px 12px;min-height:44px;font-size:14px}.uv-app89 .toolbar .icon-button{width:44px;min-width:44px}.uv-app89 #linesBtn svg{display:block}.uv-app89 .map-tools{top:116px;right:10px;gap:5px}.uv-app89 .map-tools button{width:44px;min-width:44px;min-height:44px}.uv-app89 .leaflet-control-zoom a{width:42px;height:42px;line-height:42px}
 .uv-app89 .app-dock{margin:8px auto max(8px,env(safe-area-inset-bottom));width:calc(100% - 24px);gap:4px;padding:6px;min-height:64px}.uv-app89 .app-dock .dock-item{min-height:50px}
 .uv-app89 .drawer{left:0;right:0;bottom:0;top:auto!important;width:auto;max-width:none;height:76%;max-height:calc(100% - 66px);min-height:0;border-radius:24px 24px 0 0;border-bottom:0;box-shadow:0 -5px 25px #25291c18}.uv-app89 .drawer-head{padding:8px 8px 8px 16px}.uv-app89 .drawer-head h2{font-size:21px}.uv-app89 .drawer-body{padding:12px 16px 22px}.uv-app89 .drawer.compact{bottom:0}.uv-app89 .map-wrap.has-alert .drawer{max-height:calc(100% - 140px)}
 .uv-app89 .locate-hero{bottom:28px;right:10px;padding:6px 10px 6px 6px;min-height:48px}.uv-app89[data-panel]:not([data-panel=""]) .locate-hero{top:10px;bottom:auto;right:64px;min-height:44px;padding:4px 8px;z-index:960}.uv-app89[data-panel]:not([data-panel=""]) .locate-hero small{display:none}.uv-app89[data-panel]:not([data-panel=""]) .locate-hero .person-disc{width:28px;height:32px}.uv-app89[data-panel]:not([data-panel=""]) .toolbar{display:none}.uv-app89 .service-banner{top:62px;font-size:13px;max-height:92px}
}
@media(max-width:900px) and (max-height:520px) and (orientation:landscape){
 .uv-app89 .site-header{height:46px;padding:2px 12px}.uv-app89 .app-heading{display:none!important}.uv-app89 .app{grid-template-rows:auto minmax(0,1fr) auto}.uv-app89 .map-wrap{grid-row:2;margin:0 6px}.uv-app89 .app-dock{grid-row:3;margin:5px auto max(5px,env(safe-area-inset-bottom));min-height:52px;padding:3px 6px}.uv-app89 .app-dock .dock-item{min-height:44px;flex-direction:row;gap:8px;padding:6px}.uv-app89 .drawer{top:6px!important;bottom:6px;left:6px;right:auto;width:min(420px,55%);height:auto;max-height:none!important;border-radius:18px}.uv-app89 .drawer-head h2{font-size:20px}.uv-app89 .drawer-body{padding:10px 14px}.uv-app89 .map-tools{top:auto;bottom:10px;right:10px;display:flex}.uv-app89 .locate-hero,.uv-app89[data-panel]:not([data-panel=""]) .locate-hero{top:auto;bottom:22px;right:10px}.uv-app89 .locate-hero small{display:none}.uv-app89 .destination-shortcut{left:12px;transform:none;width:320px;max-width:55%;bottom:14px}.uv-app89 .toolbar{top:10px;left:10px}.uv-app89 .reopen-journey{left:auto;right:10px;bottom:124px;font-size:13px}.uv-app89 .journey-live{left:auto;right:65px;top:10px;max-width:35%;min-height:44px}.uv-app89 .service-banner{top:65px;right:10px;left:auto;width:38%}
}
@media(max-width:360px){.uv-app89 .drawer-body{padding-left:12px;padding-right:12px}.uv-app89 .metro-step{grid-template-columns:39px 14px minmax(0,1fr);gap:7px}.uv-app89 .metro-timeline{padding:16px 10px}.uv-app89 .drawer-head h2{font-size:19px}.uv-app89 .dock-item{font-size:11px}}
@media(prefers-reduced-motion:reduce){.uv-app89 .person-disc,.uv-app89 .dock-item{animation:none!important;transition:none!important}}

.uv-app89.uv-has-journey .destination-shortcut{display:none}
.uv-app89 .line-search{background:var(--canvas)}
.uv-app89 .drawer.compact{height:auto!important;max-height:none!important}

