*{box-sizing:border-box}html{background:#f8faf8;color:#112c22;font-family:var(--font-sans)}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}[hidden]{display:none!important}button:disabled{cursor:wait;opacity:.55}input{min-width:0}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #77c994;outline-offset:3px}.booking-app{max-width:1440px;margin:auto}.booking-header{height:calc(80px + env(safe-area-inset-top,0px));padding:calc(14px + env(safe-area-inset-top,0px)) max(20px,env(safe-area-inset-right,0px)) 14px max(20px,env(safe-area-inset-left,0px));display:flex;align-items:center;gap:14px;background:#fff;position:relative;z-index:1100;border-bottom:1px solid #e8eee9}.wordmark{font-size:24px;font-weight:800;letter-spacing:-1.5px;margin-right:auto}.wordmark span{color:#2c885e}.icon-button{display:grid;place-items:center;border:0;background:#fff;color:#132d23;min-width:44px;height:44px;border-radius:50%;font-size:31px;line-height:1;flex-shrink:0}.mode-badge{padding:7px 9px;background:#edf7ed;border:1px solid #d5e9d9;border-radius:20px;font-size:10px;font-weight:bold;text-transform:uppercase;letter-spacing:.7px}.panel{max-width:520px;padding:42px 24px 30px;margin:auto}.step-kicker{font-size:10px;font-weight:700;letter-spacing:1.8px;color:#438267}h1,h2,p{margin-top:0}h1{font-family:var(--font-sans);font-size:clamp(30px,8vw,40px);line-height:1.08;letter-spacing:-1.5px;margin:14px 0 18px;font-weight:800}h1 span{color:#2c885e}.subtle{font-size:15px;line-height:1.6;color:#65746b;margin-bottom:24px}.route-fields{position:relative;padding:8px 12px 8px 42px;border:1.5px solid #2e8b61;border-radius:18px;background:#fff}.route-dots{position:absolute;top:28px;bottom:28px;left:19px;width:8px;display:flex;align-items:center;flex-direction:column}.route-dots i{width:10px;height:10px;flex-shrink:0;background:#2e8b61;border:3px solid #2e8b61;border-radius:50%}.route-dots i:last-child{background:#fff;border-color:#15382b}.route-dots b{flex:1;width:1px;background:#90b6a1;margin:5px 0}.field-wrap{position:relative}.field-wrap label{font-size:9px;letter-spacing:1.5px;color:#739080;font-weight:700;display:block;padding-top:10px}.input-row{display:flex;align-items:center}.field-wrap input{width:100%;height:45px;border:0;background:none;font-size:16px;color:#143c2b;outline-offset:0}.field-wrap input::placeholder{color:#7f8c85;opacity:1}.destination-field{border-top:1px solid #e7ede9}.locate{font-size:29px;color:#2e8b61;min-width:40px;height:40px}.feedback{font-size:12px;line-height:1.6;color:#66816f;margin:12px 0 22px}.suggestions{position:absolute;top:100%;left:-42px;right:-12px;border-radius:12px;background:#fff;box-shadow:0 12px 36px #183e2926;z-index:1200;overflow:hidden;border:1px solid #dae7df;max-height:300px;overflow-y:auto}.suggestions button{padding:15px 18px;text-align:left;display:block;width:100%;border:0;border-bottom:1px solid #edf1ee;background:#fff;color:#14372a;font-size:14px;line-height:1.5}.suggestions button:hover,.suggestions button:focus{background:#eff8f1}.suggestions p{font-size:12px;padding:14px;margin:0;color:#67786c}.schedule-toggle{display:flex;align-items:center;gap:9px;font-size:14px;margin-bottom:20px;min-height:44px}.schedule-toggle>span:last-child{margin-left:auto;font-size:25px;color:#417a5b}input[type=checkbox]{width:19px;height:19px;accent-color:#2c885e;flex-shrink:0}.schedule-fields{padding:0 0 22px}.schedule-fields label{display:block;font-size:13px;margin-bottom:8px}.schedule-fields label span{color:#738175}.schedule-fields input{width:100%;min-height:48px;border:1px solid #cfded3;border-radius:12px;padding:10px;background:#fff}.cta{width:100%;min-height:58px;display:flex;align-items:center;justify-content:center;gap:18px;padding:17px 18px;border:0;border-radius:16px;background:#26845a;color:#fff;font-size:16px;font-weight:700;line-height:1.4;text-align:center;transition:background .2s}.cta:hover{background:#176e46}.cta>span{font-size:22px;margin-left:auto}.cta>span:first-child{margin-left:0}.suggested-section{margin-top:32px}.small-label{font-size:10px;font-weight:700;letter-spacing:1.6px;color:#819084;margin-bottom:12px}.suggested-place{border:0;padding:14px 0;background:none;display:flex;align-items:center;gap:14px;text-align:left;width:100%;color:#15382a}.place-icon{width:42px;height:42px;border-radius:50%;background:#e7f0e9;display:grid;place-items:center;font-size:22px;flex-shrink:0}.suggested-place strong{font-size:13px;display:block}.suggested-place small{font-size:12px;color:#7c8980;display:block;margin-top:6px}.suggested-place>span:last-child{margin-left:auto}.poc-note{padding:16px 18px;background:#ecf4ee;border-radius:14px;color:#52735d;font-size:12px;line-height:1.65;margin-top:22px}.privacy-note{font-size:10px;color:#8b998e;line-height:1.7;margin:20px 0 0}.privacy-note a{text-decoration:underline}.map-shell{height:38svh;min-height:250px;position:relative;background:#e4ece5}.map-shell #trip-map{width:100%;height:100%;z-index:0}.map-back{position:absolute;top:18px;left:16px;z-index:500;box-shadow:0 2px 12px #183e291f;font-size:25px}.map-route{position:absolute;left:72px;right:16px;top:18px;min-height:44px;padding:12px 15px;border-radius:14px;display:flex;align-items:center;gap:10px;background:#fffffff5;box-shadow:0 2px 12px #183e2910;font-size:12px;z-index:500}.map-route span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;min-width:0;flex:1}.map-route span:first-child{color:#2e8b61}.map-route b{color:#91a197}.map-locate{position:absolute;bottom:40px;right:16px;box-shadow:0 2px 12px #183e291f;z-index:500}.map-status{position:absolute;left:12px;bottom:36px;z-index:500;background:#ffffffdc;border-radius:8px;padding:4px 7px;max-width:70%;font-size:10px;color:#597263}.map-status:empty{display:none}.trip-sheet{position:relative;padding:12px 24px calc(26px + env(safe-area-inset-bottom,0px));background:#fff;border-radius:26px 26px 0 0;margin-top:-20px;z-index:600}.sheet-handle{height:4px;width:42px;background:#e5eae6;border-radius:10px;margin:0 auto 22px}.sheet-heading{display:flex;gap:12px;justify-content:space-between}.sheet-heading h2{font-size:22px;letter-spacing:-.7px;margin:10px 0 12px;line-height:1.2}.route-time{font-size:11px;background:#eff6ef;color:#4c7b59;white-space:nowrap;align-self:center;border-radius:9px;padding:7px 9px}h2{font-size:25px;line-height:1.2;letter-spacing:-.8px;margin:12px 0 18px}.route-metrics{display:flex;flex-wrap:wrap;align-items:center;gap:9px;font-size:12px;color:#76887a;margin-bottom:22px}.route-metrics i{width:3px;height:3px;border-radius:50%;background:#b7c6bc}.vehicle-card{width:100%;display:grid;grid-template-columns:82px 1fr auto;gap:10px;padding:16px 10px;border:1.8px solid #2e8b61;border-radius:16px;background:#f8fcf8;text-align:left;color:#173c2b;align-items:center}.vehicle-card img{width:82px;height:auto}.vehicle-details{display:flex;flex-direction:column;min-width:0;gap:6px}.vehicle-details strong{font-size:18px;letter-spacing:-.6px}.vehicle-details strong small{display:block;font-size:10px;letter-spacing:0;font-weight:400;color:#6b8072;margin-top:4px}.vehicle-details>span{font-size:12px;color:#627c6b}.vehicle-tag{font-size:8px;background:#e2f2e5;padding:4px 5px;color:#298054;align-self:flex-start;letter-spacing:.7px}.vehicle-price{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.vehicle-price strong{font-size:21px;white-space:nowrap;letter-spacing:-.8px}.vehicle-price small{font-size:9px;color:#748a7a}.driver-eta{font-size:12px;line-height:1.5;color:#6f8376;padding:12px 2px;margin-bottom:0}.price-details{font-size:12px;margin:4px 0 22px;border-top:1px solid #e9eeea}.price-details summary{cursor:pointer;min-height:44px;display:flex;align-items:center;justify-content:space-between;color:#4d6a58}.price-details summary::-webkit-details-marker{display:none}.price-line{display:flex;gap:15px;justify-content:space-between;padding:6px 0;color:#5f7967}.price-details p{font-size:10px;line-height:1.6;color:#89978c;margin:10px 0}.pickup-pin{position:absolute;top:50%;left:50%;transform:translate(-50%,-100%);z-index:500;pointer-events:none;display:flex;align-items:center;flex-direction:column}.pickup-pin span{display:block;width:34px;height:34px;background:#25825a;border:5px solid white;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 2px 8px #193d2940}.pickup-pin small{position:absolute;bottom:45px;white-space:nowrap;color:#fff;background:#1a6445;padding:8px 10px;border-radius:10px;font-size:11px;font-weight:bold}.pickup-address{font-size:15px;line-height:1.5;background:#f0f5f0;border-radius:12px;padding:15px;margin:18px 0 10px}.text-button{min-height:44px;padding:14px 0;display:block;text-align:center;width:100%;background:none;border:0;color:#5d7b67;text-decoration:underline;text-underline-offset:3px;font-size:12px}.payment-summary{padding:17px 0;border-block:1px solid #e8efe9;display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:20px;font-size:13px}.payment-summary strong{font-size:27px;white-space:nowrap}.payment-method{background:#edf5ee;border-radius:12px;padding:15px;font-size:13px;color:#577761;line-height:1.6;margin:20px 0}.consent{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.6;margin-bottom:22px}.consent input{margin:2px 0 0}.payment-fineprint{font-size:10px;line-height:1.7;color:#8b998c;text-align:center;margin:14px 0 0}#live-contact label{font-size:12px;display:block;margin:12px 0}#live-contact input{display:block;margin-top:7px;min-height:48px;border:1px solid #cddbd0;background:#fff;border-radius:10px;width:100%;padding:12px}.global-error{position:fixed;z-index:2000;bottom:calc(20px + env(safe-area-inset-bottom,0px));left:16px;right:16px;max-width:530px;margin:0 auto;background:#773d31;color:white;border-radius:14px;padding:16px 20px;font-size:13px;line-height:1.6;box-shadow:0 5px 25px #261d1d38}.leaflet-control-attribution{font-size:9px!important}.route-point{background:none!important;border:0!important}.route-point span{display:block;width:22px;height:22px;border:5px solid #fff;background:#20845a;border-radius:50%;box-shadow:0 2px 7px #16482e50}.route-point.destination span{background:#12392b}.status-panel{text-align:center;padding-top:52px}.status-panel h1{font-size:32px;margin-top:16px}.status-orbit{height:80px;width:80px;display:grid;place-items:center;border-radius:50%;background:#e3f4e8;color:#26845a;font-size:40px;margin:0 auto 26px}.status-summary{padding:20px;background:#fff;border:1px solid #e3ece5;border-radius:18px;text-align:left;margin:26px 0;font-size:13px;line-height:1.7}.status-summary strong{font-size:28px;display:block;margin-top:12px}.driver-actions{display:flex;flex-direction:column;gap:12px}.cta.refuse{background:#f4e9e6;color:#9a5140}.driver-mode-note{font-size:12px;line-height:1.7;background:#edf5ee;border-radius:12px;padding:16px;color:#607e6a;margin:20px 0}.driver-dashboard{max-width:600px}.driver-dashboard h1{font-size:34px}.driver-dashboard .status-summary{margin-top:12px}.driver-dashboard h2{font-size:20px}.driver-status{padding:16px;color:#286541;background:#e5f2e8;border-radius:12px;line-height:1.6;font-size:14px}.driver-dashboard label{font-size:13px;display:block;margin:18px 0}.legal h1{font-size:30px}.legal h2{font-size:21px;margin-top:28px}.legal p{font-size:14px;line-height:1.8;color:#5e7465}.legal a{text-decoration:underline}
@media(max-width:359px){.booking-header{gap:8px;padding-inline:12px}.wordmark{font-size:21px}.mode-badge{font-size:8px;padding:6px}.panel{padding-inline:20px}.trip-sheet{padding-inline:16px}.vehicle-card{grid-template-columns:65px 1fr auto;gap:6px}.vehicle-card img{width:65px}.vehicle-price strong{font-size:18px}.vehicle-details strong{font-size:16px}.sheet-heading h2{font-size:20px}.sheet-heading{gap:6px}.route-time{font-size:10px;padding:6px}.consent{font-size:11px}}
@media(min-width:800px){.booking-header{padding-inline:40px;height:88px}.panel{padding-top:60px}.itinerary{margin-top:15px}.trip-layout{display:grid;grid-template-columns:minmax(0,1fr) 440px;min-height:calc(100svh - 88px)}.map-shell{height:calc(100svh - 88px);min-height:550px;position:sticky;top:0}.trip-sheet{margin:0;border-radius:0;padding:38px 28px;min-width:0}.sheet-handle{display:none}.map-route{max-width:500px}.map-back{top:24px}.map-route{top:24px}.map-locate{bottom:36px}.status-panel{padding-top:65px}.mode-badge{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* Keep map credits and controls above the overlapping mobile sheet. */
.leaflet-bottom .leaflet-control-attribution{margin-bottom:26px;max-width:calc(100vw - 20px);line-height:1.4}
.map-status{top:74px;bottom:auto;left:16px;max-width:calc(100% - 32px)}
