/* X CONNECT Essencial. Approved assets are used intact; all sizing is in CSS pixels. */
#shuttleEssentialHeader,#shuttleEssentialStatus,#shuttleEssentialPanel,#shuttleEssentialFit{display:none}
body.shuttle-essential-active{--essential-bottom:calc(72px + var(--safe-bottom))}
body.shuttle-essential-active .topbar,body.shuttle-essential-active #shuttleMapSearch,body.shuttle-essential-active #shuttleMapBar,body.shuttle-essential-active #markerLayer,body.shuttle-essential-active .alfred-chat-fab{display:none!important}
body.shuttle-essential-active #shuttleEssentialHeader{position:fixed;inset:0 0 auto;z-index:65;display:flex;align-items:center;gap:6px;height:calc(62px + var(--safe-top));padding:var(--safe-top) 16px 0 8px;border-bottom:1px solid #e7e5e0;background:#fff;color:#123746}
#shuttleEssentialHeader h1{flex:1;min-width:0;margin:0;font:500 22px/1.15 Georgia,serif}
#shuttleEssentialHeader img{flex:none;display:block;width:58px;height:44px;object-fit:contain}
#shuttleEssentialHeader button{width:44px;height:44px;flex:none;padding:9px;border:0;background:transparent;color:#0d1b2a}
#shuttleEssentialHeader svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
html[dir="rtl"] #shuttleEssentialHeader button svg{transform:scaleX(-1)}
body.shuttle-essential-active #mapViewport{inset:calc(62px + var(--safe-top)) 0 var(--essential-bottom)!important;background:#f5f2eb}
body.shuttle-essential-active #zoomControls{top:calc(76px + var(--safe-top));right:12px;gap:0;border:1px solid #dfdfd9;border-radius:13px;background:#fff;box-shadow:0 2px 8px #0d1b2a14}
body.shuttle-essential-active #zoomControls button{width:44px;height:44px;font-weight:400;border-bottom:1px solid #e7e5e0}
body.shuttle-essential-active #zoomReset{display:none}
body.shuttle-essential-active #shuttleEssentialFit{display:grid;place-items:center;border:0!important}
#shuttleEssentialFit svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
body.shuttle-essential-active #shuttleEssentialStatus{position:fixed;z-index:43;top:calc(76px + var(--safe-top));left:12px;display:flex;align-items:center;gap:6px;max-width:calc(100% - 82px);min-height:29px;padding:6px 10px;border:1px solid #e3e1da;border-radius:10px;background:#fff;color:#17323d;box-shadow:0 2px 8px #0d1b2a10;font-size:11px;line-height:1.2}
#shuttleEssentialStatus i{flex:none;width:7px;height:7px;border-radius:50%;background:#929b9b}
#shuttleEssentialStatus.is-live i{background:#318064}
body.shuttle-essential-active #shuttleEssentialPanel{display:block;position:fixed;z-index:64;left:12px;right:12px;bottom:calc(var(--essential-bottom) + 10px);max-width:480px;margin:auto;padding:0 12px 4px;border:1px solid #dcdcd6;border-radius:17px;background:#fff;box-shadow:0 3px 14px #0d1b2a17;color:#123746}
.essential-controls{display:flex;gap:8px;align-items:stretch;border-bottom:1px solid #e4e4dd;min-height:44px}
#shuttleEssentialLines{display:flex;flex:1;gap:8px;min-width:0;overflow-x:auto;scrollbar-width:none}
#shuttleEssentialLines::-webkit-scrollbar{display:none}
#shuttleEssentialLines button{display:flex;align-items:center;justify-content:center;gap:5px;flex:1 0 auto;max-width:190px;min-height:44px;padding:5px 2px;border:0;border-bottom:2px solid transparent;background:#fff;color:#687880;font-size:12px;white-space:nowrap}
#shuttleEssentialLines button[aria-pressed="true"]{border-bottom-color:#123746;color:#123746;font-weight:650}
#shuttleEssentialLines button span{overflow:hidden;text-overflow:ellipsis;max-width:130px}
#shuttleEssentialLines i{display:block;flex:none;width:8px;height:8px;border-radius:50%}
#shuttleEssentialLines small{font-size:10px;font-variant-numeric:tabular-nums;color:#687880}
#shuttleEssentialStops{display:flex;align-items:center;justify-content:center;flex:none;gap:5px;min-height:44px;min-width:54px;max-width:112px;padding:5px 0 5px 6px;border:0;background:#fff;color:#526872;font-size:12px}
#shuttleEssentialStops[aria-expanded="true"]{color:#123746;font-weight:650}
#shuttleEssentialStops svg{width:17px;height:17px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
#shuttleEssentialSummary{position:relative;display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:61px;padding:9px 0}
.essential-summary-icon svg{display:block;width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.essential-summary-copy{min-width:0}
.essential-summary-copy b{display:block;font-size:13px;line-height:1.25;font-weight:650}
.essential-summary-copy span{display:block;margin-top:3px;font-size:11px;line-height:1.3;color:#687880;overflow-wrap:anywhere}
.essential-eta{text-align:end;white-space:nowrap}
.essential-eta strong{display:block;font-size:20px;line-height:1.15;font-weight:600;font-variant-numeric:tabular-nums}
.essential-eta small{display:block;font-size:9px;color:#718087;margin-top:2px}
.essential-cycle{display:flex;align-items:center;gap:2px;grid-column:1/-1;justify-content:center;height:30px;margin:-3px 0 -6px}
.essential-cycle button{display:grid;place-items:center;min-width:44px;min-height:30px;border:0;border-radius:8px;background:transparent;color:#123746;font-size:23px;position:relative}
.essential-cycle button:after{content:"";position:absolute;inset:-7px 0}
.essential-cycle small{font-size:10px;min-width:25px;text-align:center;color:#6d7d84;font-variant-numeric:tabular-nums}
#shuttleEssentialStopList{max-height:min(32dvh,260px);overflow:auto;overscroll-behavior:contain;border-top:1px solid #e4e4dd;padding:2px 0}
#shuttleEssentialStopList button{display:flex;align-items:center;gap:8px;min-height:44px;width:100%;padding:7px 0;border:0;border-bottom:1px solid #f0efeb;background:#fff;color:#17323d;text-align:start}
#shuttleEssentialStopList button:last-child{border-bottom:0}
#shuttleEssentialStopList button[aria-pressed="true"]{color:#123746;font-weight:650}
#shuttleEssentialStopList i{display:grid;place-items:center;flex:none;width:22px;height:22px;border-radius:50%;background:#f1eee5;color:#7a663e;font-size:10px;font-style:normal}
#shuttleEssentialStopList span{flex:1;font-size:12px}
#shuttleEssentialStopList small{font-size:11px;white-space:nowrap;color:#657b86}
#shuttleEssentialStopList p{font-size:12px;color:#657b86}
#shuttleEssentialWalk,#shuttleEssentialPlan{min-height:44px;display:block;width:100%;padding:7px;border:0;border-top:1px solid #e4e4dd;background:#fff;color:#806837;font-size:12px;font-weight:600}
body.shuttle-essential-active .shuttle-v20-bus{grid-template-columns:16px auto;gap:3px;min-width:44px;height:28px;padding:3px 6px;border:2px solid #fff;border-radius:10px;box-shadow:0 2px 5px #0d1b2a38;transition:left 1s linear,top 1s linear,opacity .2s;isolation:isolate}
body.shuttle-essential-active .shuttle-v20-bus svg{width:16px;height:18px}
body.shuttle-essential-active .shuttle-v20-bus b{font-size:11px;line-height:1;font-variant-numeric:tabular-nums}
body.shuttle-essential-active .shuttle-v20-bus:before{content:"";position:absolute;inset:-8px -2px;z-index:-1}
body.shuttle-essential-active .shuttle-v20-bus.essential-selected{z-index:20;outline:1px solid #123746;outline-offset:1px}
body.shuttle-essential-active .shuttle-v20-stop{width:12px;height:12px;border:2px solid #fff;border-radius:50%;box-shadow:0 1px 3px #0d1b2a66}
body.shuttle-essential-active .shuttle-v20-stop span,body.shuttle-essential-active .shuttle-v20-stop:after{display:none}
body.shuttle-essential-active .shuttle-v20-stop:before{content:"";position:absolute;inset:-16px;pointer-events:auto}
body.shuttle-essential-active .shuttle-v20-stop.essential-selected,body.shuttle-essential-active .shuttle-v20-stop.is-nearest{width:16px;height:16px;outline:1px solid #123746;outline-offset:2px;box-shadow:0 1px 4px #0d1b2a44}
body.shuttle-essential-active #shuttleRouteLayer .essential-muted{opacity:.4}
body.shuttle-essential-active .shuttle-v20-bus.essential-muted{opacity:.85}
body.shuttle-essential-active #shuttleSheet:not(.planner-open),body.shuttle-essential-active #shuttleBackdrop.hidden{display:none!important}
body.shuttle-essential-active #shuttleSheet.planner-open{max-height:calc(78dvh - var(--essential-bottom))!important;padding:18px!important;border-radius:20px!important;background:#fff!important}
body.shuttle-essential-active #shuttleSheet.planner-open #shuttleActiveLines,body.shuttle-essential-active #shuttleSheet.planner-open .shuttle-live-heading,body.shuttle-essential-active #shuttleSheet.planner-open #shuttleStatus,body.shuttle-essential-active #shuttleSheet.planner-open .shuttle-updated{display:none}
body.shuttle-essential-active .mobile-dock{background:#fff;border-top:1px solid #e4e4dd;box-shadow:none}
body.shuttle-essential-active:not(.club-prive-access) .mobile-dock button{color:#657782}
body.shuttle-essential-active:not(.club-prive-access) .mobile-dock button.active{color:#123746}
body.shuttle-essential-active:not(.club-prive-access) .mobile-dock button.active>span{color:#C9A35B}
body.shuttle-essential-active .mobile-dock button.active:after{display:none}
body.shuttle-essential-active #shuttleEssentialHeader button:focus-visible,#shuttleEssentialPanel button:focus-visible{outline:2px solid #a7834d;outline-offset:-2px}
body.routing-unavailable #shuttleEssentialWalk,body.routing-unavailable #shuttleEssentialPlan{display:none!important}
@media(min-width:720px){body.shuttle-essential-active #shuttleEssentialPanel{left:auto;right:24px;bottom:calc(var(--essential-bottom) + 18px);width:390px}body.shuttle-essential-active #zoomControls{right:24px}body.shuttle-essential-active #shuttleEssentialStatus{left:24px}}
@media(max-width:359px){#shuttleEssentialHeader h1{font-size:20px}#shuttleEssentialPanel{padding-inline:9px!important}.essential-controls{gap:5px}#shuttleEssentialLines{gap:6px}#shuttleEssentialLines button span{max-width:95px}#shuttleEssentialStops{font-size:11px;max-width:94px}.essential-eta strong{font-size:18px}}
@media(prefers-reduced-motion:reduce){body.shuttle-essential-active .shuttle-v20-bus{transition:none}}
