:root {
    --navy: #0b2d4f;
    --navy-2: #123f6a;
    --blue: #1e72b8;
    --cyan: #20b7d8;
    --gold: #e7ad3b;
    --green: #16815d;
    --red: #b42318;
    --amber: #9a6700;
    --ink: #142033;
    --muted: #637083;
    --line: #dfe7f0;
    --soft: #f3f7fb;
    --white: #fff;
    --shadow: 0 22px 55px rgba(11, 45, 79, .10);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    min-height: 100vh;
    color: var(--ink);
    background: linear-gradient(180deg, #f7fafc 0%, #eef4f8 100%);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
button, input, select, textarea { font: inherit; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline: 3px solid rgba(32, 183, 216, .32);
    outline-offset: 2px;
}

.test-ribbon {
    position: sticky;
    top: 0;
    z-index: 1000;
    padding: 9px 16px;
    color: #fff;
    background: #9a6700;
    text-align: center;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: .06em;
}

.page-shell { width: min(1260px, calc(100% - 32px)); margin: 0 auto; padding: 34px 0 80px; }
.hero-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 28px;
    margin-bottom: 26px;
}
.hero-header > div:first-child { max-width: 780px; }
.eyebrow {
    display: inline-flex;
    margin-bottom: 14px;
    padding: 8px 12px;
    border: 1px solid #b9d8ed;
    border-radius: 999px;
    color: var(--navy-2);
    background: #e9f5fb;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: .03em;
}
h1 { margin: 0 0 14px; font-size: clamp(38px, 6vw, 68px); line-height: 1.02; letter-spacing: -.045em; color: var(--navy); }
.hero-header p { margin: 0; color: var(--muted); font-size: 18px; line-height: 1.7; }
.security-note {
    min-width: 280px;
    display: grid;
    gap: 5px;
    padding: 18px;
    border: 1px solid #bddfd4;
    border-radius: 18px;
    background: #edfbf6;
    color: #125f46;
}
.security-note strong { font-size: 15px; }
.security-note span { font-size: 13px; line-height: 1.5; }

.booking-layout { display: grid; grid-template-columns: minmax(0, 1fr) 430px; gap: 24px; align-items: start; }
.booking-card, .info-card {
    border: 1px solid rgba(255,255,255,.8);
    border-radius: 26px;
    background: rgba(255,255,255,.98);
    box-shadow: var(--shadow);
}
.booking-card { padding: 28px; }
.map-column { position: sticky; top: 62px; display: grid; gap: 18px; }
.map {
    min-height: 550px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 26px;
    background: #dceaf3;
    box-shadow: var(--shadow);
}
.map-placeholder { min-height: 550px; display: grid; place-items: center; padding: 30px; color: var(--muted); text-align: center; }
.info-card { padding: 22px; }
.info-card h3 { margin: 0 0 12px; color: var(--navy); }
.info-card ul { margin: 0; padding-left: 20px; color: var(--muted); line-height: 1.8; }

.section-title { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 20px; }
.section-title > span {
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    color: #fff;
    background: var(--navy);
    font-weight: 900;
}
.section-title h2 { margin: 0 0 4px; color: var(--navy); font-size: 24px; letter-spacing: -.02em; }
.section-title p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.section-title.compact { margin-top: 30px; }

.service-tabs { display: flex; gap: 10px; margin-bottom: 18px; }
.service-tab {
    min-height: 46px;
    padding: 0 16px;
    border: 1px solid var(--line);
    border-radius: 13px;
    color: var(--ink);
    background: #fff;
    cursor: pointer;
    font-weight: 800;
}
.service-tab.active { color: #fff; border-color: var(--navy); background: var(--navy); }

.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.field { display: grid; gap: 7px; }
.field.full { grid-column: 1 / -1; }
.field > span, .field-row-title > span { color: #24364d; font-size: 14px; font-weight: 800; }
.field input, .field select, .field textarea {
    width: 100%;
    min-height: 52px;
    padding: 0 14px;
    border: 1px solid var(--line);
    border-radius: 13px;
    color: var(--ink);
    background: #f7f9fc;
}
.field textarea { min-height: 110px; padding: 14px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: #79bdd7; background: #fff; }
.field small, .field > small { color: var(--muted); }
.field-row-title { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.small-button {
    padding: 8px 11px;
    border: 1px solid #b9d8ed;
    border-radius: 10px;
    color: var(--navy);
    background: #eff8fc;
    cursor: pointer;
    font-size: 13px;
    font-weight: 900;
}
.stops { display: grid; gap: 10px; }
.stop-row { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.remove-stop { width: 46px; border: 1px solid #f1c3be; border-radius: 12px; color: var(--red); background: #fff4f2; cursor: pointer; font-weight: 900; }

.roundtrip-panel { margin: 16px 0; padding: 15px; border: 1px solid var(--line); border-radius: 15px; background: var(--soft); }
.checkbox-line, .policy-box { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
.checkbox-line input, .policy-box input { width: 19px; height: 19px; margin-top: 2px; }
.checkbox-line span { font-weight: 800; }
#returnFields { margin-top: 14px; }

.primary-button {
    width: 100%;
    min-height: 56px;
    margin-top: 16px;
    padding: 12px 20px;
    border: 0;
    border-radius: 14px;
    color: #fff;
    background: linear-gradient(135deg, var(--navy), var(--navy-2));
    cursor: pointer;
    font-weight: 900;
    box-shadow: 0 14px 28px rgba(11,45,79,.18);
}
.primary-button:hover:not(:disabled) { transform: translateY(-1px); }
.primary-button:disabled { cursor: not-allowed; opacity: .55; }

.alert { margin: 14px 0 0; padding: 14px 16px; border-radius: 13px; font-size: 14px; line-height: 1.55; }
.alert.error { color: #8d1d14; border: 1px solid #f0bbb6; background: #fff2f0; }
.alert.success { color: #126246; border: 1px solid #bce0d3; background: #edfbf6; }
.alert.warning { margin: 0 0 20px; color: #775100; border: 1px solid #ead18f; background: #fff9df; }
.alert code { font-weight: 800; }
.hidden { display: none !important; }

.quote-result { margin-top: 20px; padding: 22px; border: 1px solid #b8d9e9; border-radius: 18px; background: linear-gradient(145deg, #f6fcff, #eef8fc); }
.quote-topline { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.quote-label { color: var(--green); font-size: 12px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.quote-topline h2 { margin: 5px 0 0; color: var(--navy); }
.quote-topline > strong { color: var(--navy); font-size: 36px; line-height: 1; letter-spacing: -.04em; }
.quote-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 18px 0; }
.quote-metrics div { padding: 12px; border: 1px solid #d5e8f1; border-radius: 12px; background: #fff; }
.quote-metrics span { display: block; margin-bottom: 4px; color: var(--muted); font-size: 11px; text-transform: uppercase; }
.quote-metrics strong { color: var(--navy); }
.quote-result p { margin: 0; color: var(--muted); line-height: 1.65; }
.customer-section { border-top: 1px solid var(--line); margin-top: 26px; padding-top: 4px; }
.policy-box { margin-top: 17px; padding: 15px; border: 1px solid #d7e2ec; border-radius: 14px; background: #f7f9fc; color: var(--muted); font-size: 13px; line-height: 1.55; }

@media (max-width: 1000px) {
    .hero-header { display: grid; }
    .security-note { min-width: 0; }
    .booking-layout { grid-template-columns: 1fr; }
    .map-column { position: static; }
    .map, .map-placeholder { min-height: 360px; }
}

@media (max-width: 640px) {
    .page-shell { width: min(100% - 20px, 1260px); padding-top: 22px; }
    .booking-card { padding: 18px; border-radius: 20px; }
    .form-grid { grid-template-columns: 1fr; }
    .field.full { grid-column: auto; }
    .service-tabs { display: grid; grid-template-columns: 1fr; }
    .quote-topline { display: grid; }
    .quote-metrics { grid-template-columns: 1fr; }
    h1 { font-size: 39px; }
}


/* v0.2.0 secure payment section */
.payment-heading {
    margin-top: 30px;
    padding-top: 26px;
    border-top: 1px solid #dfe6ef;
}

.payment-security-copy {
    color: #475467;
    font-size: 14px;
}

.primary-button[disabled] {
    cursor: not-allowed;
    opacity: .62;
}

/* v0.3.6 passenger account access after payment */
.account-actions{margin-top:12px;padding:14px 16px;border:1px solid #c8d9e8;border-radius:13px;background:#f4f9fd;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.account-action-button{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:10px;background:#0b5da8;color:#fff;text-decoration:none;font-weight:800}.account-actions span{color:#475467;font-size:13px}


/* v0.4.0 customer booking catalog */
.booking-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:24px;
    margin-bottom:22px;
}
.booking-header>div:first-child{max-width:760px}
.booking-header h1{
    margin:0 0 10px;
    color:var(--navy);
    font-size:clamp(34px,4.6vw,52px);
    line-height:1.02;
    letter-spacing:-.035em;
}
.booking-header p{margin:0;color:var(--muted);font-size:16px;line-height:1.65}
.booking-layout{grid-template-columns:minmax(0,1fr) minmax(390px,44%);gap:18px}
.booking-card{padding:22px;border-radius:22px}
.booking-service-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:16px}
.booking-service-tabs .service-tab{
    display:flex;
    gap:8px;
    align-items:center;
    justify-content:center;
    min-height:44px;
    border-radius:9px;
    padding:0 12px;
}
.service-tab.disabled{opacity:.48;cursor:not-allowed}
.tab-icon{font-size:16px}
.booking-section{padding:16px 0;border-top:1px solid var(--line)}
.booking-section.route-section{padding-top:0;border-top:0}
.booking-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.booking-section-head h2{margin:0;color:var(--navy);font-size:17px}
.booking-section-head p{margin:3px 0 0;color:var(--muted);font-size:12px;line-height:1.45}
.route-field-stack{display:grid;gap:8px}
.route-field{
    display:grid;
    grid-template-columns:36px minmax(0,1fr);
    align-items:center;
    gap:8px;
    min-height:62px;
    padding:7px 10px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fff;
}
.route-dot{
    width:28px;height:28px;display:grid;place-items:center;border-radius:999px;
    color:#fff;background:#0b2d4f;font-size:11px;font-weight:950
}
.destination-dot{background:#111827}
.route-copy{display:grid;gap:1px}
.route-copy small{color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.route-copy input{
    width:100%;
    min-height:32px;
    padding:0;
    border:0;
    outline:0;
    color:var(--ink);
    background:transparent;
    font-weight:750;
}
.additional-stops{margin-top:11px}
.inline-trip-fields{
    display:grid;
    grid-template-columns:1.2fr 1fr 1fr;
    gap:9px;
}
.compact-field{display:grid;gap:5px}
.compact-field span{color:#24364d;font-size:11px;font-weight:850}
.compact-field input,.compact-field select{
    width:100%;min-height:44px;padding:0 10px;border:1px solid var(--line);
    border-radius:10px;background:#f8fafc;color:var(--ink)
}
.vehicle-choice-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
}
.vehicle-choice-card{
    display:grid;
    grid-template-rows:58px auto auto auto;
    gap:3px;
    min-width:0;
    padding:10px;
    border:1px solid var(--line);
    border-radius:11px;
    background:#fff;
    color:var(--ink);
    text-align:left;
    cursor:pointer;
    transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;
}
.vehicle-choice-card:hover:not(:disabled){transform:translateY(-1px);border-color:#8fbcd8}
.vehicle-choice-card.selected{border:2px solid #f16a32;padding:9px;box-shadow:0 6px 18px rgba(241,106,50,.12)}
.vehicle-choice-card:disabled{opacity:.42;cursor:not-allowed}
.vehicle-choice-media{display:grid;place-items:center;overflow:hidden}
.vehicle-choice-media img{width:100%;height:54px;object-fit:contain}
.vehicle-choice-fallback{font-size:38px;filter:grayscale(1)}
.vehicle-choice-name{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vehicle-choice-capacity{color:var(--muted);font-size:10px;line-height:1.3}
.vehicle-choice-price{color:#16815d;font-size:10px;font-weight:850}
.extras-choice-grid{display:grid;gap:8px}
.extra-choice-card{
    display:flex;align-items:center;justify-content:space-between;gap:14px;
    padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:#fff
}
.extra-choice-card.selected{border-color:#7bc7a8;background:#f3fbf7}
.extra-choice-copy{display:grid;gap:2px;min-width:0}
.extra-choice-copy strong{font-size:13px}
.extra-choice-copy span{color:var(--muted);font-size:11px;line-height:1.35}
.extra-choice-copy small{color:#16815d;font-size:10px;font-weight:800}
.extra-stepper{display:grid;grid-template-columns:30px 30px 30px;align-items:center}
.extra-stepper button{
    width:30px;height:30px;border:1px solid var(--line);background:#f8fafc;color:var(--navy);
    cursor:pointer;font-size:18px;font-weight:900
}
.extra-stepper button:first-child{border-radius:999px 0 0 999px}
.extra-stepper button:last-child{border-radius:0 999px 999px 0}
.extra-stepper strong{height:30px;display:grid;place-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px}
.extras-empty{margin:0;color:var(--muted);font-size:12px}
.quote-button{margin-top:10px}
.map-column{top:18px}
.map,.map-placeholder{min-height:610px;border-radius:18px}
.booking-protection{border-radius:16px;box-shadow:none}
.visually-hidden{
    position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;
    overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important
}

@media(max-width:1050px){
    .booking-header{display:grid}
    .booking-layout{grid-template-columns:1fr}
    .map-column{position:static}
    .map,.map-placeholder{min-height:390px}
}
@media(max-width:720px){
    .booking-header h1{font-size:36px}
    .booking-service-tabs{grid-template-columns:repeat(3,1fr)}
    .inline-trip-fields{grid-template-columns:1fr 1fr}
    .vehicle-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:460px){
    .page-shell{width:min(100% - 14px,1260px)}
    .booking-card{padding:14px}
    .booking-service-tabs{gap:5px}
    .booking-service-tabs .service-tab{font-size:11px;padding:0 6px}
    .vehicle-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .vehicle-choice-card{padding:8px}
    .vehicle-choice-card.selected{padding:7px}
}

/* v0.4.1 luggage-aware vehicle selection */
.luggage-choice-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
}
.luggage-choice-card{
    display:grid;
    gap:10px;
    padding:12px;
    border:1px solid var(--line);
    border-radius:11px;
    background:#fff;
}
.luggage-choice-copy{display:grid;gap:3px}
.luggage-choice-copy strong{font-size:13px;color:var(--ink)}
.luggage-choice-copy span{font-size:10px;line-height:1.4;color:var(--muted)}
.luggage-stepper{
    display:grid;
    grid-template-columns:34px minmax(42px,1fr) 34px;
    align-items:center;
}
.luggage-stepper button{
    width:34px;
    height:34px;
    border:1px solid var(--line);
    background:#f8fafc;
    color:var(--navy);
    cursor:pointer;
    font-size:19px;
    font-weight:900;
}
.luggage-stepper button:first-child{border-radius:999px 0 0 999px}
.luggage-stepper button:last-child{border-radius:0 999px 999px 0}
.luggage-stepper input{
    width:100%;
    height:34px;
    padding:0 4px;
    border:1px solid var(--line);
    border-left:0;
    border-right:0;
    border-radius:0;
    background:#fff;
    color:var(--ink);
    text-align:center;
    font-weight:850;
    appearance:textfield;
    -moz-appearance:textfield;
}
.luggage-stepper input::-webkit-outer-spin-button,
.luggage-stepper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}
.luggage-guidance{
    margin-top:9px;
    padding:10px 12px;
    border:1px solid #c8d9e8;
    border-radius:10px;
    background:#f4f9fd;
    color:#36536d;
    font-size:11px;
    line-height:1.45;
    font-weight:700;
}
.luggage-guidance.warning{
    border-color:#ead18f;
    background:#fff9df;
    color:#775100;
}
.vehicle-choice-card{position:relative;grid-template-rows:58px auto auto auto auto auto}
.vehicle-choice-card.recommended:not(.selected){border-color:#7bc7a8;background:#f8fdfb}
.vehicle-choice-badge{
    justify-self:start;
    margin-top:2px;
    padding:3px 6px;
    border-radius:999px;
    background:#e7f7ef;
    color:#126246;
    font-size:8px;
    line-height:1;
    font-weight:950;
    letter-spacing:.04em;
    text-transform:uppercase;
}
.vehicle-choice-status{
    min-height:11px;
    color:#8d1d14;
    font-size:9px;
    line-height:1.25;
    font-weight:800;
}
.vehicle-choice-card:disabled{opacity:.58}
.vehicle-choice-card:disabled .vehicle-choice-status{opacity:1}
.vehicle-choice-capacity{white-space:normal}

@media(max-width:720px){
    .luggage-choice-grid{grid-template-columns:1fr}
    .luggage-choice-card{grid-template-columns:minmax(0,1fr) 126px;align-items:center}
    .luggage-choice-copy{min-width:0}
}
@media(max-width:390px){
    .luggage-choice-card{grid-template-columns:1fr;gap:8px}
    .luggage-stepper{max-width:150px}
}

/* v0.4.2 multi-trip itinerary */
.itinerary-panel{
    margin:14px 0 10px;
    padding:13px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#f8fafc;
}
.itinerary-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    margin-bottom:9px;
}
.itinerary-head h2{margin:0 0 3px;font-size:16px;color:var(--ink)}
.itinerary-head p{margin:0;max-width:680px;color:var(--muted);font-size:11px;line-height:1.45}
.draft-status{
    flex:0 0 auto;
    padding:5px 8px;
    border-radius:999px;
    background:#fff;
    border:1px solid var(--line);
    color:var(--muted);
    font-size:9px;
    font-weight:850;
    white-space:nowrap;
}
.itinerary-list{display:grid;gap:6px}
.itinerary-trip-card{
    display:grid;
    grid-template-columns:28px minmax(0,1fr) auto auto;
    align-items:center;
    gap:9px;
    min-width:0;
    padding:9px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#fff;
}
.itinerary-trip-card.active{border-color:#8fbcd8;box-shadow:0 0 0 1px rgba(11,45,79,.05)}
.itinerary-trip-card.quoted{background:#fbfefd}
.itinerary-trip-number{
    width:26px;height:26px;display:grid;place-items:center;border-radius:999px;
    background:#0b2d4f;color:#fff;font-size:10px;font-weight:950
}
.itinerary-trip-copy{display:grid;gap:2px;min-width:0}
.itinerary-trip-copy strong{
    font-size:11px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)
}
.itinerary-trip-copy span{
    font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.itinerary-trip-price{display:grid;gap:1px;text-align:right;white-space:nowrap}
.itinerary-trip-price strong{font-size:11px;color:var(--ink)}
.itinerary-trip-price span{font-size:8px;color:var(--muted);font-weight:800;text-transform:uppercase}
.itinerary-trip-actions{display:flex;gap:4px}
.itinerary-card-button{
    min-height:29px;padding:0 8px;border:1px solid var(--line);border-radius:8px;
    background:#f8fafc;color:var(--navy);font-size:9px;font-weight:850;cursor:pointer
}
.itinerary-card-button:disabled{opacity:.55;cursor:default}
.itinerary-card-button.danger{color:#8d1d14}
.itinerary-total-row{
    display:flex;align-items:center;justify-content:space-between;gap:10px;
    padding:6px 3px 0;color:var(--muted);font-size:10px
}
.itinerary-total-row strong{color:var(--ink);font-size:11px}
.itinerary-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.itinerary-actions .small-button:disabled{opacity:.45;cursor:not-allowed}
.active-trip-heading{
    display:flex;align-items:center;justify-content:space-between;
    padding:5px 2px 8px
}
.active-trip-heading>div{display:grid;gap:2px}
.active-trip-heading strong{font-size:12px;color:#24364d}
.trip-operational-section textarea{min-height:78px}

@media(max-width:720px){
    .itinerary-head{display:grid;gap:8px}
    .draft-status{justify-self:start}
    .itinerary-trip-card{
        grid-template-columns:26px minmax(0,1fr) auto;
        gap:7px;
    }
    .itinerary-trip-price{grid-column:3;grid-row:1;text-align:right}
    .itinerary-trip-actions{grid-column:2 / 4;justify-content:flex-end}
    .itinerary-trip-copy strong,.itinerary-trip-copy span{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
}
@media(max-width:460px){
    .itinerary-panel{padding:10px}
    .itinerary-trip-card{padding:8px}
    .itinerary-actions{display:grid;grid-template-columns:1fr 1fr}
    .itinerary-actions .small-button{width:100%}
    .itinerary-actions .itinerary-refresh{grid-column:1/-1}
    .itinerary-total-row{align-items:flex-start}
    .itinerary-total-row strong{text-align:right}
}


/* v0.4.2.2 — compact sticky itinerary + resilient draft status */
.itinerary-list{
    scrollbar-width:thin;
    overscroll-behavior:contain;
}
.draft-status{
    max-width:190px;
    overflow:hidden;
    text-overflow:ellipsis;
}
@media (min-width: 861px){
    .itinerary-panel{
        position:sticky;
        top:12px;
        z-index:35;
        box-shadow:0 10px 28px rgba(11,45,79,.10);
        backdrop-filter:blur(8px);
    }
    body.has-test-ribbon .itinerary-panel{top:52px}
    .itinerary-list{
        max-height:190px;
        overflow-y:auto;
        padding-right:2px;
    }
    .itinerary-head p{
        max-width:560px;
    }
}
@media (max-width: 860px){
    .itinerary-list{
        max-height:260px;
        overflow-y:auto;
    }
}


/* v0.4.2.5 — immutable post-payment confirmation */
.payment-success-screen{
    max-width:900px;
    margin:38px auto 70px;
}
.payment-success-card{
    padding:48px 42px;
    border:1px solid #b9ddcf;
    border-radius:28px;
    background:linear-gradient(145deg,#ffffff,#f3fbf7);
    box-shadow:0 24px 60px rgba(11,45,79,.12);
    text-align:center;
}
.payment-success-icon{
    display:grid;
    place-items:center;
    width:82px;
    height:82px;
    margin:0 auto 20px;
    border-radius:50%;
    background:#e7f8ef;
    color:#13734f;
    font-size:46px;
    font-weight:900;
    line-height:1;
    border:1px solid #b8e0ce;
}
.payment-success-eyebrow{
    color:#13734f;
    font-size:13px;
    font-weight:900;
    letter-spacing:.10em;
}
.payment-success-card h1{
    margin:10px 0 12px;
    color:var(--navy);
    font-size:clamp(30px,5vw,48px);
    letter-spacing:-.035em;
}
.payment-success-lead{
    max-width:640px;
    margin:0 auto;
    color:var(--muted);
    font-size:18px;
    line-height:1.65;
}
.payment-success-summary{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
    margin:30px 0 20px;
    text-align:left;
}
.payment-success-summary>div{
    min-width:0;
    padding:16px;
    border:1px solid #d6e6df;
    border-radius:15px;
    background:#fff;
}
.payment-success-summary span{
    display:block;
    margin-bottom:6px;
    color:var(--muted);
    font-size:11px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.payment-success-summary strong{
    display:block;
    overflow-wrap:anywhere;
    color:var(--navy);
    font-size:17px;
}
.payment-paid-badge{
    color:#13734f !important;
}
.payment-success-reservations{
    margin:0 0 18px;
    padding:16px;
    border:1px solid #d6e6df;
    border-radius:15px;
    background:#fff;
    text-align:left;
}
.payment-success-reservations>span{
    display:block;
    margin-bottom:9px;
    color:var(--muted);
    font-size:11px;
    font-weight:900;
    text-transform:uppercase;
}
.payment-success-reservations>div{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}
.payment-success-reservations code{
    padding:7px 9px;
    border-radius:8px;
    background:#f2f6fa;
    color:var(--navy);
    font-size:12px;
}
.payment-success-actions{
    justify-content:center;
    margin-top:18px;
    background:#fff;
}
.secondary-success-button{
    margin-top:18px;
    padding:12px 18px;
    border:1px solid #b9d8ed;
    border-radius:12px;
    background:#fff;
    color:var(--navy);
    cursor:pointer;
    font-weight:900;
}
.payment-success-note{
    margin:22px auto 0;
    max-width:680px;
    color:var(--muted);
    font-size:12px;
    line-height:1.6;
}
body.payment-complete .page-shell{
    max-width:1100px;
}
@media(max-width:760px){
    .payment-success-screen{margin:20px auto 40px}
    .payment-success-card{padding:30px 18px;border-radius:22px}
    .payment-success-summary{grid-template-columns:1fr 1fr}
    .payment-success-lead{font-size:16px}
}
@media(max-width:430px){
    .payment-success-summary{grid-template-columns:1fr}
    .payment-success-actions{display:grid}
    .payment-success-actions .account-action-button{width:100%}
}


/* v0.4.2.7 — stop waiting time */
.waiting-stop-row{display:grid;grid-template-columns:1fr;gap:8px;padding:10px;border:1px solid #d6e2ee;border-radius:14px;background:#fbfdff}
.stop-location-line{display:grid;grid-template-columns:1fr auto;gap:8px}
.stop-waiting-controls{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:8px;border-top:1px solid #e4edf5}
.stop-waiting-copy{display:grid;gap:2px;color:var(--navy)}
.stop-waiting-copy strong{font-size:13px}
.stop-waiting-copy span{font-size:11px;color:var(--muted)}
.stop-waiting-selects{display:flex;gap:8px;flex:0 0 auto}
.stop-waiting-selects select{min-width:108px;padding:9px 10px;border:1px solid #cddbe8;border-radius:10px;background:#fff;color:var(--navy);font:inherit;font-size:13px}
@media(max-width:620px){.stop-waiting-controls{align-items:stretch;flex-direction:column}.stop-waiting-selects{display:grid;grid-template-columns:1fr 1fr}.stop-waiting-selects select{width:100%;min-width:0}}


/* v0.4.2.8 — 30-minute minimum pickup lead */
.pickup-lead-notice{
    margin-top:10px;
    padding:10px 12px;
    border:1px solid #cbdbe8;
    border-radius:10px;
    background:#f7fbff;
    color:#38536c;
    font-size:12px;
    font-weight:700;
    line-height:1.45;
}
.pickup-lead-notice::before{
    content:"◷";
    margin-right:7px;
    font-weight:900;
}
.pickup-lead-notice.is-valid{
    border-color:#c7dfd3;
    background:#f6fbf8;
    color:#285b46;
}
.pickup-lead-notice.is-error{
    border-color:#f0a0a0;
    background:#fff5f5;
    color:#c22525;
}
#pickupDate:invalid,
#pickupTime:invalid{
    border-color:#e06262;
}


/* v0.4.2.9 — vehicle exact price + prominent itinerary total */
.vehicle-choice-price{
    transition:transform .18s ease, color .18s ease;
}
.vehicle-choice-card.selected .vehicle-choice-price{
    font-size:15px;
    font-weight:900;
}
.vehicle-choice-price.verified-price{
    color:#0b6f47;
    transform:scale(1.03);
    transform-origin:left center;
}
.vehicle-choice-price.price-updating{
    color:#66788a;
    font-style:italic;
}
.vehicle-choice-card.selected{
    box-shadow:0 8px 24px rgba(11,45,79,.09);
}
.vehicle-choice-card.selected .vehicle-choice-name{
    color:var(--navy);
}

.itinerary-total-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-top:12px;
    padding:14px 16px;
    border:1px solid #c8d9e8;
    border-radius:14px;
    background:#f7fbff;
}
.itinerary-total-row.ready{
    border-color:#9fc9b5;
    background:linear-gradient(135deg,#f4fbf7,#eef8ff);
}
.itinerary-total-label{
    display:grid;
    gap:3px;
}
.itinerary-total-label>span{
    color:var(--muted);
    font-size:11px;
}
.itinerary-total-label>strong{
    color:var(--navy);
    font-size:12px;
    letter-spacing:.06em;
}
.itinerary-total-amount{
    display:grid;
    justify-items:end;
    gap:2px;
    text-align:right;
}
.itinerary-total-amount>strong{
    color:var(--navy);
    font-size:28px;
    line-height:1;
    letter-spacing:-.035em;
}
.itinerary-total-row.ready .itinerary-total-amount>strong{
    color:#0b6f47;
}
.itinerary-total-amount>span{
    color:var(--muted);
    font-size:10px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.itinerary-total-row.pending .itinerary-total-amount>strong{
    font-size:17px;
    color:#66788a;
}

@media(max-width:600px){
    .itinerary-total-row{
        padding:13px 14px;
    }
    .itinerary-total-amount>strong{
        font-size:24px;
    }
}


/* v0.4.2.10 — exact server route price on every eligible vehicle card */
.vehicle-choice-price.route-price{
    color:#0b6f47;
    font-size:14px;
    font-weight:900;
}
.vehicle-choice-card.selected .vehicle-choice-price.route-price{
    font-size:16px;
}


/* v0.4.2.17 — Admin-managed public Tours */
.tour-catalog-section{
    margin:12px 0 16px;
    padding:16px;
    border:1px solid #d5e3ee;
    border-radius:16px;
    background:linear-gradient(180deg,#f8fcff,#f4f9fc);
}
.tour-catalog-head h2{margin:3px 0 4px;color:var(--navy)}
.tour-catalog-head p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
.tour-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
.tour-card{
    display:grid;gap:8px;width:100%;text-align:left;padding:14px;
    border:1px solid #cfdeea;border-radius:14px;background:#fff;color:inherit;
    cursor:pointer;box-shadow:0 4px 14px rgba(15,47,76,.035)
}
.tour-card:hover{border-color:#8db9da}
.tour-card.selected{border:2px solid var(--navy);background:#f5faff}
.tour-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.tour-card-top strong{color:var(--navy);font-size:15px}
.tour-card-badge{
    flex:0 0 auto;padding:4px 7px;border-radius:999px;background:#e8f3fb;color:#174a73;
    font-size:10px;font-weight:900;text-transform:uppercase
}
.tour-card.selected .tour-card-badge{background:#0b2d4f;color:#fff}
.tour-card-description{color:#566d82;font-size:12px;line-height:1.45}
.tour-card-stops{color:#163b5d;font-size:12px;font-weight:800;line-height:1.45}
.tour-card-wait{color:#0b6f47;font-size:11px;font-weight:900}
.tour-empty{margin-top:12px;padding:12px;border:1px dashed #cbd9e5;border-radius:10px;color:var(--muted)}
.tour-required-stop{
    flex:0 0 auto;padding:4px 7px;border-radius:999px;background:#e7f4ec;color:#17633f;
    font-size:10px;font-weight:900;text-transform:uppercase
}
.stop-location-line input.tour-stop-locked{background:#f7fafc;color:#263c51}
.remove-stop.tour-stop-remove-locked{opacity:.35;cursor:not-allowed}
@media(max-width:720px){.tour-cards{grid-template-columns:1fr}.tour-catalog-section{padding:13px}}

.tour-card-discount{
    color:#0b6f47;
    font-size:12px;
    font-weight:950;
    letter-spacing:.01em;
}

.agency-booking-banner{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    margin:0 0 18px;
    padding:14px 16px;
    border:1px solid #b9dfc7;
    border-radius:14px;
    background:#f1fbf5;
    color:#173853;
}
.agency-booking-banner div{display:grid;gap:2px}
.agency-booking-banner span{font-size:10px;font-weight:950;letter-spacing:.11em;color:#167048}
.agency-booking-banner strong{font-size:16px}
.agency-booking-banner small{color:#667d8f}
.agency-booking-banner a{
    white-space:nowrap;
    text-decoration:none;
    background:#0b3158;
    color:#fff;
    font-size:12px;
    font-weight:900;
    padding:9px 12px;
    border-radius:9px;
}
.agency-reference-field small{font-weight:600;color:#748698}
.account-action-button.secondary-action{background:#eef4f8;color:#173853}
@media(max-width:680px){
    .agency-booking-banner{align-items:flex-start;flex-direction:column}
    .agency-booking-banner a{width:100%;text-align:center}
}


/* v0.4.3.1 — Passenger PWA promotion on public booking page */
.passenger-app-promo{display:none}
@media(max-width:900px){
  .passenger-app-promo{display:grid;grid-template-columns:auto minmax(0,1fr);gap:11px 12px;align-items:center;margin:0 0 18px;padding:14px 15px;background:#fff;border:1px solid #cfe0ee;border-radius:16px;box-shadow:0 8px 24px rgba(16,36,62,.07)}
  .passenger-app-promo-icon{width:46px;height:46px;border-radius:13px;background:#23b2cf;color:#0b2d4f;border:5px solid #0b2d4f;display:grid;place-items:center;font-size:.82rem;font-weight:950;line-height:1}
  .passenger-app-promo-copy{display:grid;gap:3px;min-width:0}
  .passenger-app-promo-copy strong{color:#12395f;font-size:.95rem}
  .passenger-app-promo-copy span{color:#61768a;font-size:.8rem;line-height:1.35}
  .passenger-app-promo-button{grid-column:1/-1;display:flex;align-items:center;justify-content:center;min-height:44px;border-radius:11px;background:#0b5da8;color:#fff;text-decoration:none;font-weight:900;font-size:.88rem}
}
