@font-face{font-family:Manrope;src:url('../v3/assets/manrope-latin.woff2') format('woff2');font-display:swap;font-weight:100 900}
:root{font-family:Manrope,Arial,sans-serif;color:#202a31;background:#f7f7f5;font-synthesis:none;--paper:#f7f7f5;--ink:#202a31;--muted:#53616b;--line:#cbd1d3;--focus:#1769a7}
*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none;text-underline-offset:3px}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--focus);outline-offset:3px}::selection{background:#cfe4ee;color:var(--ink)}.skip{position:fixed;z-index:10;top:8px;left:8px;padding:12px;background:#fff;transform:translateY(-150%)}.skip:focus{transform:none}[hidden]{display:none!important}.site-head{height:96px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 clamp(24px,5vw,88px);border-bottom:1px solid var(--line)}.brand img{display:block;width:189px;max-width:100%;height:48px;object-fit:contain;object-position:left}.head-right{display:flex;gap:22px;align-items:center;font-size:12px}.head-right a{font-size:13px;font-weight:700;border-bottom:1px solid var(--ink);padding:10px 3px}.demo-badge{color:var(--muted)}.opening{padding:clamp(42px,6vw,84px) clamp(24px,5vw,88px) 48px;display:flex;justify-content:space-between;gap:30px;align-items:end}.opening h1{margin:0;font-size:clamp(34px,4vw,59px);font-weight:500;letter-spacing:-.037em;line-height:1.12;max-width:740px}.opening p{font-size:15px;line-height:1.7;color:var(--muted);max-width:600px;margin:20px 0 0}.opening-line{display:block;height:1px;width:22%;background:var(--ink);margin-bottom:9px}.workspace{padding:0 clamp(24px,5vw,88px) 110px}.steps{display:flex;overflow-x:auto;gap:28px;border-bottom:1px solid var(--line);scrollbar-color:var(--muted) transparent}.step{flex:none;display:flex;gap:10px;align-items:center;min-height:58px;font-size:12px;color:var(--muted);white-space:nowrap;border-bottom:2px solid transparent}.step b{font-size:12px;font-weight:700}.step.active{color:var(--ink);border-color:var(--ink)}.step.done{color:var(--ink)}.workgrid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.78fr);gap:clamp(42px,7vw,130px);padding-top:48px}.workmain{min-width:0}.section-heading{margin-bottom:32px}.section-heading h2{font-weight:550;font-size:clamp(27px,2.7vw,38px);line-height:1.2;letter-spacing:-.03em;margin:0}.section-heading p{color:var(--muted);font-size:14px;line-height:1.6;margin:9px 0 0}.field{display:flex;flex-direction:column;gap:10px;min-width:0;font-size:13px;font-weight:650}.field input,.field textarea{width:100%;border:1px solid #a9b4b9;border-radius:3px;background:#fff;color:var(--ink);min-height:51px;padding:12px 14px;font-weight:450}.field textarea{min-height:96px;resize:vertical}.field input::placeholder{color:#66757d}.field input:focus,.field textarea:focus{border-color:var(--ink)}fieldset{border:0;padding:0;margin:0}legend{font-size:13px;font-weight:650;padding:0;margin-bottom:12px}.segmented{margin:0 0 31px}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.segmented label{position:relative;display:block}.segmented input{position:absolute;opacity:0;left:0;top:0;width:100%;height:100%;cursor:pointer}.segmented span{display:flex;align-items:center;min-height:48px;padding:10px 15px;border:1px solid var(--line);border-radius:3px;background:transparent;font-size:12px;line-height:1.3}.segmented input:checked+span{background:var(--ink);color:#fff;border-color:var(--ink)}.segmented input:focus-visible+span{outline:2px solid var(--focus);outline-offset:3px}.segmented label:hover span{border-color:var(--ink)}.route-fields{display:grid;grid-template-columns:1fr;gap:10px}.geo{justify-self:start;appearance:none;background:none;border:0;border-bottom:1px solid var(--ink);border-radius:0;box-shadow:none;padding:5px 0;font-size:12px;font-weight:650;min-height:36px;text-align:left}.geo:disabled{opacity:.5;cursor:wait}.geo-result{margin:0;font-size:12px;line-height:1.5}.map-link{justify-self:start;display:inline-block;margin-top:2px;border-bottom:1px solid var(--line);font-size:12px;min-height:32px}.time-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:28px 0}.trip{margin:26px 0}.trip-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.capacity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:29px 0 12px}.field-hint{font-size:12px;line-height:1.6;color:var(--muted);margin:5px 0 0}.route-fields .field-hint{margin:0}.actions{display:flex;justify-content:space-between;gap:12px;margin-top:38px;flex-wrap:wrap}.button{min-height:51px;padding:13px 20px;border-radius:3px;font-size:13px;font-weight:650;display:inline-flex;gap:24px;align-items:center;justify-content:center}.primary{color:#fff;background:var(--ink);border:1px solid var(--ink)}.primary:hover{background:#344750}.secondary{border:1px solid var(--line);background:transparent}.secondary:hover{border-color:var(--ink)}.message{border:1px solid #aebdc5;background:#eaf1f3;padding:14px 17px;font-size:13px;line-height:1.5;margin-bottom:24px}.message.error{background:#f9e9e4;border-color:#a45644;color:#793b2d}.summary{align-self:start;position:sticky;top:24px;border-top:2px solid var(--ink);background:#f0f1ee;padding:25px 28px 26px}.summary-top{display:flex;justify-content:space-between;align-items:center;gap:15px}.summary-top h2{font-size:17px;font-weight:650;margin:0}.summary-top span{font-size:12px;color:var(--muted)}.summary-content{padding:25px 0 20px}.summary-content dl,.detail-list{margin:0}.summary-content dl div,.detail-list div{display:flex;gap:20px;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.5}.summary-content dt,.detail-list dt{color:var(--muted);flex:0 0 36%}.summary-content dd,.detail-list dd{margin:0;text-align:right;overflow-wrap:anywhere}.summary-content .money dd{font-size:21px;font-weight:700;white-space:nowrap}.summary-bottom{border-top:1px solid var(--line);padding-top:16px;font-size:12px;line-height:1.6;color:var(--muted)}.summary-bottom p{margin:0}.vehicle-list{display:grid;gap:0;border-top:1px solid var(--line)}.vehicle{display:grid;grid-template-columns:175px 1fr;gap:20px;padding:22px 0;border-bottom:1px solid var(--line)}.vehicle img{width:100%;height:115px;object-fit:cover;background:#e9eceb}.vehicle h3{font-size:18px;font-weight:650;margin:0 0 7px}.vehicle p{font-size:12px;line-height:1.55;color:var(--muted);margin:0 0 13px}.vehicle button{appearance:none;background:none;border:0;border-bottom:1px solid var(--ink);border-radius:0;color:var(--ink);box-shadow:none;padding:4px 0;font-size:12px;font-weight:700;min-height:36px;cursor:pointer}.vehicle button:disabled{cursor:not-allowed;opacity:.6}.vehicle.selected{background:#eef2f1}.vehicle.disabled{opacity:.56}.fare-box{padding:22px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.6}.fare-box strong{display:block;font-size:23px;letter-spacing:-.02em;margin-bottom:7px}.fare-box p{margin:4px 0;color:var(--muted)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:24px}.contact-grid .field:first-child{grid-column:1/-1}.check{display:flex;gap:12px;margin-top:22px;font-size:12px;line-height:1.6}.check input{width:18px;height:18px;flex:none;margin:2px 0;accent-color:var(--ink)}.check a{text-decoration:underline}.simulation{margin:30px 0;border-top:1px solid var(--ink);padding:20px 0}.simulation strong{font-size:15px}.simulation p{font-size:13px;color:var(--muted);line-height:1.6;margin:9px 0 0}.detail-list{margin:20px 0}footer{padding:24px clamp(24px,5vw,88px);border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:12px;color:var(--muted)}
@media(max-width:900px){.workgrid{grid-template-columns:1fr;gap:34px}.summary{position:static;grid-row:1;padding:19px 22px}.summary-content{padding:12px 0}.summary-bottom{padding-top:12px}.opening-line{display:none}}
@media(max-width:600px){.site-head{height:74px}.brand img{width:152px;height:42px}.head-right{gap:10px}.demo-badge{max-width:122px;font-size:12px;line-height:1.25;text-align:right}.opening{padding-top:38px;padding-bottom:26px}.opening h1{font-size:37px}.opening p{font-size:13px;margin-top:15px}.workspace{padding-bottom:70px}.steps{gap:19px}.step{font-size:12px;min-height:48px}.workgrid{padding-top:28px}.section-heading{margin-bottom:25px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.time-grid{gap:9px}.capacity-grid{gap:8px}.field{font-size:12px}.field input,.field textarea{padding:10px 9px}.vehicle{grid-template-columns:110px 1fr;gap:13px}.vehicle img{height:98px}.actions{margin-top:27px}.actions .primary{flex:1}footer{flex-direction:column;gap:7px}}
@media(max-width:380px){.demo-badge{display:none}.time-grid{grid-template-columns:1fr}.capacity-grid{grid-template-columns:1fr 1fr}.capacity-grid .field:last-child{grid-column:1/-1}}
.summary-compact,.summary-return-note,.summary-toggle{display:none}
@media(max-width:900px){.summary-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;align-items:start}.summary-compact{display:block;font-size:16px;white-space:nowrap;text-align:right}.summary-return-note{display:block;grid-column:2;grid-row:2;text-align:right;font-size:12px;color:var(--muted);line-height:1.4}.summary-toggle{display:inline-flex;grid-column:1/-1;align-items:center;min-height:44px;justify-self:start;appearance:none;border:0;background:none;color:var(--ink);padding:8px 0;font-size:12px;font-weight:700;text-decoration:underline;text-underline-offset:4px}.summary #summary-details{display:none}.summary.expanded #summary-details{display:block;border-top:1px solid var(--line);margin-top:8px}}
@media(max-width:380px){.summary-top{grid-template-columns:1fr}.summary-compact{text-align:left}.summary-return-note{grid-column:1;grid-row:auto;text-align:left}}
.place-field{position:relative;min-width:0}.place-field .field{margin-bottom:10px}.place-field>input{display:block;width:100%;min-height:51px;background:#fff;border:1px solid #a9b4b9;border-radius:2px;color:var(--ink);padding:12px 14px;font:inherit;font-size:14px}.place-field>input::placeholder{color:#66757d}.place-caption{min-height:0;margin:7px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.place-caption:empty{display:none}.place-suggestions{position:absolute;z-index:25;top:100%;left:0;right:0;max-height:min(335px,48vh);overflow:auto;background:#fff;border:1px solid var(--ink);box-shadow:0 14px 26px #202a3120}.place-suggestions button{display:block;width:100%;min-height:52px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:#fff;color:var(--ink);padding:10px 14px;text-align:left;cursor:pointer}.place-suggestions button:hover,.place-suggestions button[aria-selected=true]{background:#ecf0ef}.place-suggestions button span{display:block;font-size:13px;font-weight:650}.place-suggestions button small{display:block;margin-top:3px;font-size:11px;color:var(--muted)}.suggest-empty{margin:0;padding:14px;font-size:12px;line-height:1.5}.map-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.map-preview{background:#fff;border:1px solid var(--line);padding:10px}.map-preview iframe{display:block;width:100%;height:260px;border:0}.map-preview p{margin:10px 4px 2px}
.button,.geo,.map-preview-button,.vehicle button,.summary-toggle{appearance:none;background:#101010;color:#fff;border:1px solid #101010;border-radius:2px;min-height:48px;padding:14px 22px;font:inherit;font-size:13px;font-weight:500;letter-spacing:.02em;text-align:center;text-decoration:none;transition:background-color 180ms ease,color 180ms ease;cursor:pointer}.button:hover,.geo:hover,.map-preview-button:hover,.vehicle button:hover,.summary-toggle:hover{background:#fff;color:#101010;text-decoration:none}.button:focus-visible,.geo:focus-visible,.map-preview-button:focus-visible,.vehicle button:focus-visible,.summary-toggle:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.button:disabled,.geo:disabled,.map-preview-button:disabled,.vehicle button:disabled,.summary-toggle:disabled{opacity:.5;cursor:not-allowed}.map-preview-button{display:inline-flex;align-items:center;justify-content:center}.geo{justify-self:start}.summary-toggle{display:none}
@media(max-width:900px){.summary-toggle{display:inline-flex;justify-content:center;min-height:48px;padding:14px 22px}}
@media(prefers-reduced-motion:reduce){.button,.geo,.map-preview-button,.vehicle button,.summary-toggle{transition:none}}
.map-legend{margin:3px 4px 10px;font-size:13px;font-weight:650;line-height:1.5}
.server-actions{display:grid;justify-items:start;gap:12px;margin:18px 0 24px}.server-actions .check{margin:8px 0 0}.server-actions .button{max-width:100%}.server-actions .field-hint{margin:0}.api-error{color:#793b2d;border-left:2px solid #a45644;padding:8px 12px;margin-top:18px}.api-error[hidden]{display:none}
@media(max-width:600px){.server-actions{justify-items:stretch}.server-actions .button{width:100%}}
/* R13: task first, quieter selection, secondary location/map tools. */
.site-head{height:72px}.brand img{height:44px;width:176px}
.opening{padding:24px clamp(24px,5vw,88px) 18px;display:block}.opening h1{font-size:32px;line-height:1.15;letter-spacing:-.025em;max-width:none}.opening p{font-size:14px;line-height:1.5;margin:8px 0 0;max-width:70ch}.opening-line{display:none}
.workspace{padding-bottom:40px}.steps{gap:24px}.step{min-height:44px;padding:10px 0}.workgrid{padding-top:20px;gap:32px;grid-template-columns:minmax(0,1fr) 320px}.section-heading{margin-bottom:16px}.section-heading h2{font-size:23px;line-height:1.2}.section-heading p{font-size:13px;margin-top:6px}
.segmented{margin-bottom:16px}legend{margin-bottom:8px}.segmented span{min-height:44px;padding:10px 32px 10px 12px;background:transparent}.segmented input:checked+span{background:#e6eaeb;color:var(--ink);border-color:#7e8a91}.segmented input:checked+span:after{content:"";position:absolute;right:13px;width:6px;height:11px;border:solid #344650;border-width:0 2px 2px 0;transform:rotate(45deg)}
.route-fields{grid-template-columns:1fr 1fr;gap:16px}.place-field .field{margin-bottom:7px}.place-field>input{min-height:48px;padding:10px 12px}.field input{min-height:48px;padding:10px 12px}
.route-tools{margin-top:12px}.route-tools>summary{font-size:12px;min-height:36px;display:list-item;cursor:pointer;width:max-content;max-width:100%;color:var(--muted);padding:8px 0}.route-tools-content{display:grid;gap:12px;padding:12px 0 4px}.route-tools-content .geo,.route-tools-content .map-preview-button{min-height:44px;padding:10px 16px}.route-tools-content .field-hint{margin:0}.time-grid{margin:16px 0;gap:12px}.trip{margin:16px 0}.capacity-grid{margin:16px 0 8px;gap:12px}.actions{margin-top:20px}.field-hint{line-height:1.5}.summary{padding:20px}.summary-content{padding:16px 0}.summary-content dl div,.detail-list div{padding:9px 0}.summary-bottom{font-size:11px}
.inline-error{font-size:12px;line-height:1.5;color:#8a3229;margin:0 0 12px}.field input[aria-invalid=true]{border-color:#a54539}.review-total{padding:18px 0;border-bottom:1px solid var(--line)}.review-total>span{display:block;font-size:12px;color:var(--muted)}.review-total strong{display:block;font-size:32px;letter-spacing:-.025em;margin:6px 0}.review-total p{font-size:12px;line-height:1.5;color:var(--muted);max-width:60ch;margin:0}.simulation{margin:20px 0}
.city-shortcuts{margin:0 0 16px;min-width:0}.city-shortcuts>p{font-size:11px;color:var(--muted);margin:0 0 8px}.city-buttons{display:flex;gap:8px;overflow:auto;padding:1px 1px 5px}.city-buttons button{flex:none;border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:2px;min-height:36px;padding:7px 12px;font-size:12px}.city-buttons button:hover{background:#e6eaeb;border-color:#7e8a91}.city-buttons button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
@media(max-width:900px){.workgrid{grid-template-columns:1fr;gap:24px}.summary{grid-row:auto;position:static}.summary-toggle{min-height:44px;padding:10px 16px}.summary-top{grid-template-columns:minmax(0,1fr) auto}.summary-top h2{font-size:15px}}
@media(max-width:600px){.site-head{height:64px;padding:0 20px}.brand img{width:144px;height:40px}.opening{padding:20px 20px 16px}.opening h1{font-size:25px}.opening p{font-size:12px;line-height:1.5;margin-top:7px}.workspace{padding:0 20px 32px}.steps{gap:16px}.step{font-size:11px;min-height:44px;white-space:nowrap}.workgrid{padding-top:16px}.section-heading h2{font-size:21px}.section-heading p{font-size:12px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.route-fields{grid-template-columns:1fr;gap:12px}.place-field>input,.field input{min-height:48px}.capacity-grid{gap:8px}.time-grid{grid-template-columns:1fr 1fr;gap:10px}.field{font-size:12px}.city-shortcuts{margin-bottom:12px}.city-buttons button{min-height:40px}.review-total strong{font-size:29px}.demo-badge{font-size:10px;max-width:110px}.actions{margin-top:20px}}

/* R15 sandbox: same approved booking layout, explicit server-owned payment state. */
.sandbox-payment,.sandbox-status{display:grid;gap:12px}.sandbox-payment p,.sandbox-status p{margin:0;overflow-wrap:anywhere}.sandbox-payment .button,.sandbox-status .button{justify-self:start;max-width:100%;white-space:normal}.sandbox-payment .check{align-items:start}.sandbox-payment input[type=checkbox]{margin-top:3px;flex:none}.sandbox-amount{font-size:30px;line-height:1.15;color:var(--ink,#19303b)}.sandbox-message.error{color:#a33131}.sandbox-payment button:disabled{opacity:.55;cursor:wait}.sandbox-status strong{font-size:20px;line-height:1.35}.sandbox-status .button{margin-top:4px}

/* R20 review only: start with the review heading, keeping prior steps intact. */
body.review-phase .opening,body.review-phase #steps{display:none}
body.review-phase .workgrid{padding-top:20px}
body.review-phase .summary{grid-row:auto}

/* R20 booking UX: current progress fits mobile, without a clipped steps rail. */
@media(max-width:900px){.steps{display:block;overflow:visible}.steps .step:not(.active){display:none}.steps .step.active{display:flex;gap:12px;width:100%;white-space:normal;font-size:13px}.steps .step b{flex:none;min-width:36px}.check{font-size:13px;line-height:1.6}}

/* R23: vehicle selection only; preserve every other approved booking step. */
body:has(#offer-step:not([hidden])) .opening{padding-top:6px;padding-bottom:6px}
body:has(#offer-step:not([hidden])) .workgrid{padding-top:12px}
#offer-step .section-heading{margin-bottom:6px}
#offer-step .vehicle{padding-top:8px;padding-bottom:8px}
#offer-step .vehicle img{height:96px}
#offer-step .vehicle p{margin-bottom:8px}
#offer-step .fare-box{padding-top:8px;padding-bottom:8px}
#offer-step .fare-box strong{margin-bottom:4px}
#offer-step .actions{margin-top:10px}
/* Authenticated e-mail follow-up: show the actual journey, not an empty new-booking sidebar. */
body.tracking-phase .opening,body.tracking-phase #steps,body.tracking-phase .summary{display:none}
body.tracking-phase .workgrid{grid-template-columns:minmax(0,880px);padding-top:24px}
body.tracking-phase #sandbox-status{margin-top:16px}
.trip-recap h3{font-size:20px;line-height:1.3;font-weight:650;margin:4px 0 0}
.trip-recap .detail-list{margin:12px 0}
.trip-recap .detail-list div{gap:16px}
.trip-recap-total{display:flex;align-items:baseline;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding:16px 0}
.trip-recap-total span{font-size:13px;color:var(--muted)}
.trip-recap-total strong{font-size:26px;line-height:1.2}
@media(max-width:600px){#offer-step .vehicle{grid-template-columns:110px minmax(0,1fr)}#offer-step .vehicle img{height:92px}.trip-recap .detail-list div{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr)}.trip-recap .detail-list dd{overflow-wrap:anywhere}body.tracking-phase .workgrid{padding-top:20px}}
