:root{color:#11110f;background:#f4f4f2;font-family:Plus Jakarta Sans,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #11110f;--muted: #65655f;--paper: #ffffff;--canvas: #f4f4f2;--soft: #efefec;--line: #d8d8d2;--success: #08744f;--error: #b42318;--font-display: "Outfit", "Plus Jakarta Sans", sans-serif;--font-mono: "DM Mono", monospace}*{box-sizing:border-box}html{min-width:320px;background:var(--canvas)}body{min-width:320px;min-height:100vh;margin:0;background:var(--canvas)}button,input,select{color:inherit;font:inherit}button,select{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.page-shell{display:grid;min-height:100vh;place-items:start center}.booking-panel{width:min(100%,620px);min-height:100vh;padding:28px 20px calc(28px + env(safe-area-inset-bottom));background:var(--paper)}.wordmark{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-size:18px;font-weight:700;letter-spacing:-.02em}.wordmark-divider{color:#9a9a93;font-weight:400}.booking-heading{margin:54px 0 30px}.eyebrow{margin:0 0 8px;color:var(--muted);font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase}h1,h2,p{margin-top:0}h1,h2{font-family:var(--font-display);letter-spacing:-.035em}.booking-heading h1{max-width:420px;margin-bottom:0;font-size:clamp(32px,9vw,44px);font-weight:600;line-height:1.02}.notice{margin:-10px 0 22px;padding:12px 14px;border:1px solid #b6b6b0;border-radius:10px;background:var(--soft);font-size:14px;line-height:1.45}.route-fields{position:relative;z-index:3;display:grid;gap:12px}.route-line{position:absolute;z-index:-1;top:57px;left:17px;width:1px;height:60px;background:var(--line)}.place-field{position:relative}.place-field>label,.date-row label>span{display:block;margin:0 0 7px;color:var(--muted);font-size:12px;font-weight:600}.place-input-wrap{position:relative}.place-input-wrap:before{position:absolute;top:50%;left:13px;width:9px;height:9px;border:2px solid var(--ink);border-radius:50%;content:"";transform:translateY(-50%)}.place-field:nth-of-type(2) .place-input-wrap:before{border-radius:2px;background:var(--ink)}.place-input-wrap input{width:100%;height:58px;padding:0 48px 0 39px;border:1px solid var(--line);border-radius:12px;background:var(--paper);font-size:16px;font-weight:500;transition:border-color .12s ease,box-shadow .12s ease}.place-input-wrap input::placeholder{color:#95958e;font-weight:400}.place-input-wrap input:focus{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink);outline:none}.field-spinner,.spinner{display:inline-block;width:18px;height:18px;border:2px solid var(--line);border-top-color:var(--ink);border-radius:50%;animation:spin .7s linear infinite}.field-spinner{position:absolute;top:20px;right:15px}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.field-spinner,.spinner{animation-duration:1.8s}}.place-results{position:absolute;z-index:10;top:calc(100% + 6px);right:0;left:0;overflow:hidden;margin:0;padding:5px;border:1px solid var(--line);border-radius:12px;background:var(--paper);box-shadow:0 12px 30px #11110f1f;list-style:none}.place-results button{width:100%;min-height:48px;padding:10px 11px;border:0;border-radius:8px;background:transparent;text-align:left}.place-results button:hover,.place-results button:focus-visible{background:var(--soft)}.google-attribution{display:flex;justify-content:flex-end;padding:8px 10px 6px;border-top:1px solid var(--line)}.google-attribution img{display:block}.field-error,.error-message{margin:8px 0 0;color:var(--error);font-size:13px;line-height:1.45}.time-section{margin:34px 0 0;padding:0;border:0}.time-section legend{margin-bottom:14px;padding:0;font-family:var(--font-display);font-size:19px;font-weight:600}.segmented-control{display:grid;grid-template-columns:1fr 1fr;padding:4px;border-radius:12px;background:var(--soft)}.segmented-control button{min-height:46px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-size:14px;font-weight:600}.segmented-control button.selected{background:var(--ink);color:var(--paper)}.date-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-top:16px}.date-row select,.date-row input{width:100%;height:52px;padding:0 13px;border:1px solid var(--line);border-radius:10px;background:var(--paper);font-size:15px;font-weight:500}.quote-area{min-height:126px;margin-top:30px}.quote-loading{display:flex;align-items:center;gap:10px;min-height:90px;color:var(--muted);font-size:14px}.quote-card{padding:20px 0 8px;border-top:1px solid var(--line)}.quote-route{display:flex;align-items:baseline;gap:8px;font-family:var(--font-display);font-size:17px}.quote-route strong{overflow:hidden;min-width:0;text-overflow:ellipsis;white-space:nowrap}.quote-route span{flex:0 0 auto;color:var(--muted)}.quote-card>p{margin:12px 0 18px;color:var(--muted);font-size:14px;line-height:1.55}.quote-fare{font-family:var(--font-display);font-size:42px;font-weight:600;letter-spacing:-.04em;line-height:1}.checkout-block{margin-top:10px}.checkout-block .error-message{margin-bottom:10px}.primary-button{width:100%;min-height:58px;padding:0 20px;border:1px solid var(--ink);border-radius:12px;background:var(--ink);color:var(--paper);font-family:var(--font-display);font-size:17px;font-weight:600}.primary-button:hover:not(:disabled){background:#2c2c28}.primary-button:disabled{border-color:#cfcfc9;background:#cfcfc9;color:#777771;cursor:not-allowed}.payment-note{max-width:470px;margin:12px auto 0;color:var(--muted);font-size:11px;line-height:1.55;text-align:center}.ride-page{padding:16px;place-items:center}.ride-card{width:min(100%,520px);padding:30px 24px;border:1px solid var(--line);border-radius:20px;background:var(--paper);box-shadow:0 16px 50px #11110f14}.ride-status{display:flex;align-items:center;gap:14px}.status-check{display:grid;width:44px;height:44px;flex:0 0 auto;border-radius:50%;background:var(--success);color:#fff;font-size:24px;place-items:center}.ride-status .eyebrow{margin-bottom:3px}.ride-status h1{margin:0;font-size:34px;font-weight:600;line-height:1}.ride-time{margin:32px 0 24px;font-family:var(--font-display);font-size:20px;font-weight:600}.ride-time span{padding:0 5px;color:#999992}.ride-route{display:grid;grid-template-columns:14px 1fr;column-gap:12px;align-items:start;margin-bottom:30px}.ride-route>div:not(.route-marker,.ride-route-line){padding-bottom:21px}.ride-route>div:last-child{padding-bottom:0}.ride-route>.route-marker.start{grid-column:1;grid-row:1}.ride-route>div:nth-child(2){grid-column:2;grid-row:1}.ride-route>.ride-route-line{grid-column:1;grid-row:2}.ride-route>.route-marker.end{grid-column:1;grid-row:3}.ride-route>div:nth-child(5){grid-column:2;grid-row:3}.route-marker{z-index:1;width:11px;height:11px;margin-top:5px;border:2px solid var(--ink);border-radius:50%;background:var(--paper)}.route-marker.end{border-radius:2px;background:var(--ink)}.ride-route-line{width:1px;height:30px;margin:-14px 0 -8px 5px;background:var(--line)}.ride-route span{display:block;margin-bottom:3px;color:var(--muted);font-size:11px;font-weight:600;text-transform:uppercase}.ride-route strong{display:block;font-size:15px;line-height:1.45}.fare-breakdown{margin:0;padding:19px 0 0;border-top:1px solid var(--line)}.fare-breakdown>div{display:flex;justify-content:space-between;gap:18px;margin-bottom:12px;color:var(--muted);font-size:14px}.fare-breakdown dd{margin:0;color:var(--ink);font-family:var(--font-mono)}.fare-breakdown .remaining-row{margin:18px 0 0;padding-top:16px;border-top:1px solid var(--line);color:var(--ink);font-weight:600}.arranging-message{margin-top:28px;padding:20px;border-radius:14px;background:var(--soft)}.arranging-message h2{margin-bottom:6px;font-size:19px;font-weight:600}.arranging-message p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.support-link{display:block;min-height:48px;margin-top:18px;padding:15px 0 6px;color:var(--muted);font-size:13px;text-align:center;text-decoration:none}.support-link strong{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.loading-page{place-items:center}.spinner.large{width:28px;height:28px}.invalid-card{margin:16px}.invalid-card h1{margin-bottom:12px;font-size:32px}.invalid-card>p:not(.eyebrow){color:var(--muted);line-height:1.6}.secondary-link{display:inline-flex;min-height:48px;align-items:center;margin-top:10px;color:var(--ink);font-weight:600;text-underline-offset:4px}@media(min-width:700px){.page-shell{padding:36px 20px}.booking-panel{min-height:auto;padding:36px 54px 44px;border:1px solid var(--line);border-radius:20px;box-shadow:0 18px 60px #11110f12}.booking-heading{margin-top:62px}.ride-page{padding:36px 20px}.ride-card{padding:36px 38px}}
