/* The patient app owns its header, navigation and scrolling. */
#appShell{height:100dvh}
#appShell .phone{height:100dvh;max-width:620px;padding:0 12px;display:flex;flex-direction:column}
.topBar{position:relative;flex:none;display:flex;flex-direction:column;height:auto;padding-top:env(safe-area-inset-top)}
.topBarInner{grid-template-columns:1fr auto auto;gap:12px;border-radius:0 0 18px 18px;padding:12px 14px}
button.brandLockup{border:0;padding:0;background:none;cursor:pointer;text-align:left}
.topLogo{width:124px;max-width:100%;height:32px}
.topTitle{font-size:16px}
.patientIdentity{display:flex;align-items:center;gap:10px;width:100%;min-height:62px;flex:none;padding:12px 4px;background:none;border:0;text-align:left;color:var(--ink);cursor:pointer}
.patientAvatar{flex:none;display:grid;place-items:center;width:38px;height:38px;background:#e2edf5;color:#0b4565;border-radius:50%;font:800 13px Sora,sans-serif}
.patientIdentityText{display:grid;gap:2px;min-width:0;flex:1}
.patientIdentityText strong{font:700 14px/1.3 Sora,sans-serif;overflow-wrap:anywhere}
.patientIdentityText small{color:var(--muted);font-size:12px}
#appShell .viewportStack{min-height:0;flex:1;max-height:none;grid-auto-rows:max-content;overflow-x:hidden;overflow-y:auto;align-content:start;padding:0 0 16px;overscroll-behavior:contain;scrollbar-width:thin}
.hero{margin:0 0 4px;padding:16px}
.hero h1{font-size:25px;line-height:1.2}
.hero>p{font-size:14px}
.heroActions{margin:12px 0}
.homeFeatureGrid{margin-top:14px;grid-template-columns:1fr}
.homeFeatureCard:has(#helpBotTitle){display:none}
.homeCountdown{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-top:0}
.homeCountdown strong{font-size:26px;order:-1}
.homeCountdown p{width:100%;margin:0}
#homePage>.insightGrid{display:none}
.card{flex:none;min-width:0;padding:0}
.cardHead h2{font-size:16px}
.cardHead .button,.cardHead .compactToggle{flex:none}
#nextTrip h3{font-size:16px;line-height:1.4;margin:8px 0;overflow-wrap:anywhere}
.routeMapRail,.routeMiniShell .routeMapRail{height:auto;min-height:94px;display:grid;gap:8px;padding:4px 0}
.routeStop,.routeMiniShell .routeStop{position:static;display:block;font-size:12px;font-weight:600;letter-spacing:0;text-transform:none;overflow-wrap:anywhere;line-height:1.4;padding-left:18px}
.routeStop::before{content:'';position:absolute;left:0;margin-top:4px;width:9px;height:9px;border-radius:50%;background:#0a6b99}
.routeStop.destination::before{background:#d61f1f}
.routeTrackBase,.routeTrackFill,.routeVehiclePin{display:none}
.bottomNav{position:relative!important;bottom:auto!important;left:auto!important;transform:none!important;width:100%!important;max-width:none!important;flex:none;padding-bottom:max(10px,env(safe-area-inset-bottom));border-radius:16px 16px 0 0;margin-top:4px}
.historySplit{grid-template-columns:1fr 1fr}
.detailList dd{overflow-wrap:anywhere}
.patientScreenHead{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 0 12px}
.patientScreenHead h2{font:800 18px/1.3 Sora,sans-serif;margin:0}
.patientMapToolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.patientMapToolbar p{margin:0;color:var(--muted);font-size:12px;font-weight:700}
.patientMap{height:clamp(280px,45dvh,460px);border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#edf3f8}
.patientMapStatus{font-size:13px;color:var(--muted);margin:10px 0}
.patientMapAddresses{display:grid;gap:8px;margin:12px 0}
.patientMapAddress{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.patientMapAddress small{display:block;color:var(--muted);font-weight:800;font-size:10px;text-transform:uppercase;margin-bottom:3px}
.patientMapAddress p{margin:0;overflow-wrap:anywhere;font-size:14px}
#bookingPage{overflow:hidden!important;display:flex;flex-direction:column}
#bookingFrame{width:100%;flex:1;min-height:300px;border:0;background:#f4f7fb;border-radius:12px}
.shareLink{width:100%;padding:10px;border:1px solid var(--line);border-radius:10px;font-size:14px;margin:8px 0 12px}
.shareStatus{min-height:20px;color:var(--muted);font-size:13px}
.sharedAccess{padding-top:16px}
.sharedAccess label{display:grid;gap:6px;font-size:14px;font-weight:700}
.sharedAccess input{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;margin-bottom:12px;font-size:16px}
#appShell[data-shared='true'] [data-footer-action='profile'],#appShell[data-shared='true'] [data-footer-action='history'],#appShell[data-shared='true'] [data-patient-book],#appShell[data-shared='true'] [data-patient-history]{display:none}
#appShell[data-shared='true'] #homePage>.hero,#appShell[data-shared='true'] #homePage>.kpiGrid{display:none}
.portalDialog{max-height:85dvh;overflow:auto}
@media(max-width:380px){.topLogo{width:100px}.topBarInner{gap:8px;padding:10px}.topAction{padding:0 10px;font-size:11px}.heroActions{flex-direction:row}.historySplit{grid-template-columns:1fr}.patientScreenHead h2{font-size:16px}}
