:root{
  --orange:#ff5a1f;
  --orange-dark:#e94a12;
  --orange-soft:#fff0e8;
  --ink:#151515;
  --ink-2:#343434;
  --muted:#707070;
  --line:#e9e6e2;
  --panel:#ffffff;
  --warm:#faf8f5;
  --warm-2:#f4f1ed;
  --green:#138a4b;
  --green-soft:#eaf7ef;
  --red:#cc3a3a;
  --red-soft:#fff0f0;
  --yellow:#ad7800;
  --yellow-soft:#fff8dd;
  --shadow:0 18px 50px rgba(25,19,13,.08);
  --shadow-sm:0 8px 24px rgba(25,19,13,.07);
  --radius:24px;
  --radius-sm:16px;
  --header-h:76px;
  --mobile-nav-h:78px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:var(--warm);color:var(--ink);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;overflow-x:hidden}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
a{color:inherit}
img{display:block;max-width:100%}
svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.is-hidden{display:none!important}
.page-width{width:min(1180px,calc(100% - 40px));margin-inline:auto}
.eyebrow{display:block;color:var(--orange);font-size:12px;font-weight:900;letter-spacing:.13em;text-transform:uppercase;margin-bottom:10px}
.eyebrow.danger{color:var(--red)}
.app-header{position:sticky;top:0;z-index:50;height:var(--header-h);background:rgba(255,255,255,.94);backdrop-filter:blur(18px);border-bottom:1px solid rgba(225,220,214,.85)}
.header-inner{height:100%;width:min(1220px,calc(100% - 36px));margin:auto;display:flex;align-items:center;gap:28px}
.brand{border:0;background:transparent;padding:0;display:flex;align-items:center}
.brand img{height:48px;width:auto}
.desktop-nav{display:flex;align-items:center;gap:4px;margin-left:auto}
.nav-item{border:0;background:transparent;color:#515151;font-weight:800;padding:12px 15px;border-radius:12px;position:relative}
.nav-item:hover{background:#f7f5f2;color:var(--ink)}
.nav-item.is-active{color:var(--orange);background:var(--orange-soft)}
.unread-dot{display:inline-flex;min-width:20px;height:20px;align-items:center;justify-content:center;margin-left:4px;background:var(--orange);color:#fff;border-radius:999px;font-size:11px;padding:0 6px}
.header-account{border:1px solid var(--line);background:#fff;border-radius:999px;min-height:46px;padding:5px 9px 5px 6px;display:flex;align-items:center;gap:9px;font-weight:800;box-shadow:0 2px 10px rgba(25,19,13,.03)}
.header-account svg{width:17px;height:17px;color:#787878}
.avatar{display:grid;place-items:center;background:var(--ink);color:#fff;border-radius:50%;font-weight:900}
.avatar-small{width:34px;height:34px;font-size:12px}
.prelaunch{padding:11px 20px;background:#1b1b1b;color:#fff;display:flex;justify-content:center;gap:10px;font-size:14px}
.prelaunch strong{color:#ffb48f}
.app-main{min-height:calc(100vh - var(--header-h))}
.app-view{display:none}
.app-view.is-active{display:block}
.booking-layout{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(330px,.72fr);gap:54px;padding:48px 0 72px;align-items:start}
.booking-column{max-width:690px}
.page-intro{margin-bottom:24px}
.page-intro h1,.section-header h1{margin:0;color:var(--ink);font-size:clamp(34px,4vw,50px);letter-spacing:-.04em;line-height:1.03}
.page-intro p,.section-header p{margin:12px 0 0;color:var(--muted);font-size:17px;max-width:620px}
.booking-card{background:var(--panel);border:1px solid var(--line);border-radius:30px;padding:18px;box-shadow:var(--shadow)}
.journey-toggle{display:grid;grid-template-columns:1fr 1fr;background:var(--warm-2);padding:4px;border-radius:14px;margin-bottom:16px}
.toggle-option{border:0;background:transparent;min-height:48px;border-radius:11px;font-weight:900;color:#747474}
.toggle-option.is-active{background:#fff;color:var(--ink);box-shadow:0 4px 14px rgba(28,21,16,.08)}
.route-editor{position:relative;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff}
.route-field{width:100%;min-height:92px;border:0;background:#fff;display:grid;grid-template-columns:26px 1fr 34px;align-items:center;gap:12px;text-align:left;padding:18px 18px;color:inherit}
.route-field:hover{background:#fffdfb}
.route-field:first-child{border-bottom:1px solid var(--line)}
.route-symbol{width:22px;height:22px;display:grid;place-items:center;position:relative;z-index:2}
.pickup-symbol{border:2px solid var(--orange);border-radius:50%}
.pickup-symbol span{width:7px;height:7px;background:var(--orange);border-radius:50%}
.destination-symbol{width:18px;height:18px;border-radius:5px;background:var(--ink)}
.route-line{position:absolute;left:28px;top:55px;height:72px;border-left:2px dotted #d8d1ca;z-index:1}
.route-copy{min-width:0;display:flex;flex-direction:column}
.route-copy small{font-size:11px;font-weight:900;letter-spacing:.12em;color:#8a837d;margin-bottom:4px}
.route-copy strong{font-size:18px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.route-copy em{font-size:14px;color:var(--muted);font-style:normal;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.field-action{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--warm-2);color:#5e5a56}
.field-action svg{width:18px;height:18px}
.swap-route{position:absolute;right:16px;top:50%;transform:translateY(-50%);z-index:4;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:#fff;display:grid;place-items:center;box-shadow:var(--shadow-sm);color:var(--orange)}
.swap-route svg{width:18px;height:18px}
.booking-grid{display:grid;grid-template-columns:1fr 1.18fr;gap:12px;margin-top:12px}
.select-card,.stepper-card{min-height:74px;border:1px solid var(--line);border-radius:17px;padding:12px 14px;display:flex;align-items:center;gap:11px;background:#fff}
.select-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:var(--orange-soft);color:var(--orange);flex:0 0 auto}
.select-icon svg{width:19px;height:19px}
.select-card label,.stepper-card>div:nth-child(2){display:flex;flex-direction:column;min-width:0;flex:1}
.select-card small,.stepper-card small{font-size:11px;font-weight:900;letter-spacing:.08em;color:#8b837d;text-transform:uppercase}
.select-card select{appearance:none;border:0;background:transparent;font-size:16px;font-weight:900;outline:0;color:var(--ink);padding:2px 0;min-width:0;width:100%}
.stepper-card strong{font-size:15px;white-space:nowrap}
.stepper{display:flex;align-items:center;gap:4px}
.stepper button{width:36px;height:36px;border-radius:11px;border:1px solid var(--line);background:var(--warm);font-size:20px;line-height:1;color:#444}
.stepper button:hover{border-color:#d8d2cb;background:#fff}
.schedule-block,.return-block{border:1px solid #f0d4c7;background:#fff8f4;border-radius:17px;padding:15px;margin-top:12px}
.schedule-block label,.return-block label,.options-body label,.field-label{display:flex;flex-direction:column;gap:7px}
.schedule-block label>span,.return-block label>span,.options-body label>span,.field-label>span{font-size:13px;font-weight:800;color:#5b5652}
input,select,textarea{border:1px solid #ddd8d2;border-radius:13px;background:#fff;color:var(--ink);min-height:48px;padding:11px 13px;outline:none;font-size:16px}
textarea{resize:vertical;min-height:92px}
input:focus,select:focus,textarea:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(255,90,31,.12)}
.return-head{display:flex;align-items:center;gap:11px;margin-bottom:13px}
.return-icon{width:38px;height:38px;border-radius:12px;background:#fff0e8;color:var(--orange);display:grid;place-items:center}
.return-icon svg{width:19px;height:19px}
.return-head div{display:flex;flex-direction:column}
.return-head strong{font-size:15px}
.return-head small{color:var(--muted);font-size:13px}
.journey-options{margin-top:12px;border:1px solid var(--line);border-radius:17px;overflow:hidden;background:#fff}
.journey-options summary{list-style:none;min-height:70px;padding:12px 14px;display:grid;grid-template-columns:40px 1fr 24px;gap:10px;align-items:center;cursor:pointer}
.journey-options summary::-webkit-details-marker{display:none}
.summary-icon{width:38px;height:38px;border-radius:12px;background:var(--warm-2);display:grid;place-items:center;color:#615c57}
.summary-icon svg{width:19px;height:19px}
.journey-options summary span:nth-child(2){display:flex;flex-direction:column}
.journey-options summary strong{font-size:15px}
.journey-options summary small{font-size:13px;color:var(--muted);margin-top:2px}
.summary-chevron{width:18px;height:18px;color:#8a837d;transition:.2s transform}
.journey-options[open] .summary-chevron{transform:rotate(90deg)}
.options-body{padding:0 14px 14px;display:grid;gap:12px}
.availability-card{margin-top:12px;border-radius:15px;min-height:62px;padding:12px 14px;display:flex;align-items:center;gap:12px;border:1px solid var(--line)}
.availability-card>div{display:flex;flex-direction:column;min-width:0}
.availability-card strong{font-size:14px}
.availability-card small{font-size:12.5px;color:var(--muted);margin-top:2px}
.availability-pulse{width:11px;height:11px;border-radius:50%;background:#b6b1ac;box-shadow:0 0 0 5px rgba(182,177,172,.12);flex:0 0 auto}
.availability-card.is-good{background:var(--green-soft);border-color:#cde8d6}.availability-card.is-good .availability-pulse{background:var(--green);box-shadow:0 0 0 5px rgba(19,138,75,.12)}
.availability-card.is-warn{background:var(--yellow-soft);border-color:#f1e0a6}.availability-card.is-warn .availability-pulse{background:#c38a00;box-shadow:0 0 0 5px rgba(195,138,0,.12)}
.primary-button,.secondary-button,.danger-button{border:0;border-radius:14px;min-height:52px;padding:0 18px;font-weight:900;display:inline-flex;align-items:center;justify-content:center;gap:10px;text-decoration:none}
.primary-button{background:var(--orange);color:#fff;box-shadow:0 10px 22px rgba(255,90,31,.22)}
.primary-button:hover{background:var(--orange-dark)}
.primary-button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}
.primary-button svg{width:20px;height:20px}
.secondary-button{background:#fff;border:1px solid var(--line);color:var(--ink)}
.secondary-button:hover{background:#faf8f5}
.secondary-button.full{width:100%}
.danger-button{background:var(--red);color:#fff;width:100%}
.quote-button{width:100%;min-height:58px;margin-top:14px;font-size:17px}
.booking-disclaimer{text-align:center;color:#88817a;font-size:12.5px;margin:10px 0 1px}
.booking-aside{position:sticky;top:calc(var(--header-h) + 26px);display:grid;gap:16px}
.aside-hero{border-radius:30px;padding:30px;background:linear-gradient(145deg,#1a1918,#292520);color:#fff;overflow:hidden;position:relative;box-shadow:var(--shadow)}
.aside-hero:after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;background:rgba(255,90,31,.18);right:-80px;top:-60px;filter:blur(2px)}
.aside-kicker{font-size:11px;letter-spacing:.14em;font-weight:900;color:#ffb79a;position:relative;z-index:1}
.aside-hero h2{font-size:34px;line-height:1.03;letter-spacing:-.035em;margin:14px 0 12px;position:relative;z-index:1}
.aside-hero p{color:#d6d1cc;font-size:15px;max-width:390px;position:relative;z-index:1}
.trust-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;position:relative;z-index:1}
.trust-row span{font-size:11.5px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);padding:7px 9px;border-radius:999px}
.nearby-card,.how-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:var(--shadow-sm)}
.nearby-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.nearby-head div{display:flex;flex-direction:column}
.nearby-head small{font-size:10.5px;letter-spacing:.1em;font-weight:900;color:#8a837d}
.nearby-head strong{font-size:17px;margin-top:2px}
.nearby-head>span{width:44px;height:44px;border-radius:14px;background:var(--orange-soft);color:var(--orange);display:grid;place-items:center;font-size:17px;font-weight:900}
.nearby-list{display:grid;gap:8px}
.nearby-list>p{color:var(--muted);font-size:13px;margin:4px 0}
.driver-mini{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;padding:9px;border-radius:14px;background:var(--warm)}
.driver-mini .avatar{width:38px;height:38px;background:#272421;font-size:11px}
.driver-mini div:nth-child(2){display:flex;flex-direction:column;min-width:0}
.driver-mini strong{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.driver-mini small{font-size:11.5px;color:var(--muted)}
.driver-mini b{font-size:11px;color:var(--green);background:var(--green-soft);padding:5px 7px;border-radius:999px}
.how-card{display:grid;gap:13px}
.how-card>div{display:grid;grid-template-columns:32px 1fr;gap:10px;align-items:center}
.how-card>div>span{width:32px;height:32px;border-radius:10px;background:var(--orange-soft);color:var(--orange);display:grid;place-items:center;font-weight:900;font-size:12px}
.how-card div div{display:flex;flex-direction:column}
.how-card strong{font-size:13px}.how-card small{font-size:12px;color:var(--muted)}
.content-page,.menu-page,.ride-shell{padding:42px 0 72px}
.section-header{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:24px}
.section-header h1{font-size:40px}.section-header p{font-size:15px}
.tab-bar{display:flex;gap:7px;overflow:auto;padding-bottom:3px;margin-bottom:20px;scrollbar-width:none}
.tab-bar::-webkit-scrollbar{display:none}
.tab-bar button{border:1px solid var(--line);background:#fff;min-height:44px;padding:0 14px;border-radius:999px;white-space:nowrap;font-weight:800;color:#69645f}
.tab-bar button span{font-size:11px;margin-left:4px;background:var(--warm-2);padding:3px 7px;border-radius:999px}
.tab-bar button.is-active{background:var(--ink);color:#fff;border-color:var(--ink)}
.tab-bar button.is-active span{background:rgba(255,255,255,.13)}
.rides-list{display:grid;gap:12px}
.ride-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px;display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;box-shadow:0 3px 13px rgba(25,19,13,.035)}
.ride-main{display:grid;grid-template-columns:48px 1fr;gap:14px;align-items:start}
.ride-icon{width:48px;height:48px;border-radius:16px;background:var(--orange-soft);display:grid;place-items:center;color:var(--orange)}
.ride-icon svg{width:23px;height:23px}
.ride-copy{min-width:0}.ride-copy>small{font-size:12px;color:var(--muted);font-weight:800}.ride-copy h3{margin:4px 0 7px;font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ride-route{display:flex;align-items:center;gap:7px;color:#69645f;font-size:13px}.mini-dot{width:7px;height:7px;border:2px solid var(--orange);border-radius:50%}
.ride-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.pill{display:inline-flex;align-items:center;gap:4px;min-height:26px;padding:0 8px;border-radius:999px;background:var(--warm-2);font-size:11.5px;font-weight:850;color:#55514d}
.pill.orange{background:var(--orange-soft);color:var(--orange-dark)}.pill.green{background:var(--green-soft);color:var(--green)}.pill.red{background:var(--red-soft);color:var(--red)}.pill.dark{background:#ecebea;color:#242424}
.ride-actions{display:flex;gap:8px;align-items:center}
.small-button{border:1px solid var(--line);background:#fff;border-radius:12px;min-height:42px;padding:0 13px;font-weight:850}
.small-button.primary{background:var(--orange);border-color:var(--orange);color:#fff}
.empty-state{background:#fff;border:1px dashed #ddd7d0;border-radius:22px;min-height:250px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;color:var(--muted)}
.empty-state.compact{min-height:180px}.empty-state strong{color:var(--ink);font-size:17px}.empty-state p{max-width:360px;margin:7px 0 0;font-size:13px}.empty-icon{width:44px;height:44px;border-radius:14px;background:var(--orange-soft);color:var(--orange);display:grid;place-items:center;margin-bottom:12px;font-weight:900}
.back-button{border:0;background:transparent;font-weight:850;color:#6d6761;display:flex;align-items:center;gap:7px;padding:5px 0;margin-bottom:16px}.back-button svg{width:18px;height:18px}
.ride-detail{display:grid;gap:16px}
.loading-card{min-height:220px;border:1px solid var(--line);border-radius:24px;background:#fff;display:flex;align-items:center;justify-content:center;gap:12px}.loading-card span{width:18px;height:18px;border:2px solid #ddd;border-top-color:var(--orange);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.ride-status-hero{border-radius:28px;background:#171615;color:#fff;padding:26px;display:grid;gap:20px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.ride-status-hero:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;background:rgba(255,90,31,.18);right:-110px;top:-100px}
.ride-status-top{display:flex;justify-content:space-between;gap:20px;position:relative;z-index:1}
.ride-status-top h1{font-size:34px;line-height:1.04;margin:3px 0 7px;letter-spacing:-.035em}.ride-status-top p{margin:0;color:#cfc9c3;font-size:14px}.ride-ref{font-size:10.5px;letter-spacing:.12em;color:#ffb494;font-weight:900}
.status-badge{align-self:flex-start;padding:7px 10px;border-radius:999px;font-size:11.5px;font-weight:900;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.12);white-space:nowrap}
.ride-route-summary{display:grid;grid-template-columns:1fr 28px 1fr;align-items:center;gap:10px;background:rgba(255,255,255,.065);border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:15px;position:relative;z-index:1}.ride-route-summary>span{text-align:center;color:#ff9e74}.ride-route-summary div{display:flex;flex-direction:column;min-width:0}.ride-route-summary small{font-size:10px;letter-spacing:.12em;color:#aaa39c;font-weight:900}.ride-route-summary strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}.ride-route-summary em{font-size:11px;color:#a9a39e;font-style:normal;margin-top:2px}
.detail-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,.72fr);gap:16px;align-items:start}
.detail-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:0 4px 18px rgba(25,19,13,.035)}
.detail-card h2,.detail-card h3{margin:0 0 5px}.detail-card>p{margin:0;color:var(--muted);font-size:14px}
.waiting-panel{text-align:center;padding:32px 20px}.waiting-animation{width:64px;height:64px;position:relative;margin:0 auto 20px}.waiting-animation span{position:absolute;inset:0;border:2px solid var(--orange);border-radius:50%;animation:ripple 1.6s infinite}.waiting-animation span:nth-child(2){animation-delay:.5s}.waiting-animation span:nth-child(3){animation-delay:1s}@keyframes ripple{0%{transform:scale(.35);opacity:1}100%{transform:scale(1.1);opacity:0}}
.quote-list{display:grid;gap:11px;margin-top:16px}.quote-card{border:1px solid var(--line);border-radius:18px;padding:15px;display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center}.quote-card.best{border-color:#ffc2a8;box-shadow:0 0 0 3px rgba(255,90,31,.07)}.quote-avatar{width:48px;height:48px;border-radius:15px;background:#22201e;color:#fff;display:grid;place-items:center;font-weight:900;overflow:hidden}.quote-avatar img{width:100%;height:100%;object-fit:cover}.quote-info{min-width:0}.quote-info strong{display:block;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quote-info small{display:block;color:var(--muted);font-size:12px;margin-top:3px}.quote-price{text-align:right}.quote-price strong{font-size:23px;letter-spacing:-.03em}.quote-price small{display:block;color:var(--muted);font-size:11px}.quote-actions{grid-column:2/4;display:flex;justify-content:flex-end;gap:7px}.quote-actions button{min-height:39px;border-radius:11px;padding:0 11px;font-size:12.5px;font-weight:850}.quote-actions .counter{border:1px solid var(--line);background:#fff}.quote-actions .choose{border:0;background:var(--orange);color:#fff}
.driver-card{display:grid;gap:14px}.driver-profile{display:grid;grid-template-columns:58px 1fr;gap:13px;align-items:center}.driver-profile .avatar{width:58px;height:58px;font-size:18px;overflow:hidden}.driver-profile .avatar img{width:100%;height:100%;object-fit:cover}.driver-profile div{display:flex;flex-direction:column}.driver-profile strong{font-size:18px}.driver-profile small{color:var(--muted);font-size:12.5px;margin-top:2px}.vehicle-box{background:var(--warm);border-radius:15px;padding:12px 13px;display:flex;align-items:center;justify-content:space-between;gap:10px}.vehicle-box div{display:flex;flex-direction:column}.vehicle-box small{font-size:11px;color:var(--muted)}.vehicle-box strong{font-size:13.5px}.reg-plate{background:#ffdf31;color:#111;padding:6px 10px;border-radius:7px;font-weight:900;letter-spacing:.06em;font-size:13px}.contact-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.contact-actions a,.contact-actions button{min-height:45px;border-radius:13px;border:1px solid var(--line);background:#fff;text-decoration:none;display:flex;align-items:center;justify-content:center;gap:7px;font-weight:850}.contact-actions svg{width:18px;height:18px}.payment-gate{border-radius:16px;padding:13px;background:var(--yellow-soft);border:1px solid #f0df9e;display:flex;gap:10px;align-items:flex-start}.payment-gate svg{width:21px;height:21px;color:#a06f00;flex:0 0 auto}.payment-gate div{display:flex;flex-direction:column}.payment-gate strong{font-size:13px}.payment-gate small{font-size:12px;color:#776019;margin-top:2px}.payment-gate button{margin-top:8px;border:0;background:#171615;color:#fff;border-radius:10px;min-height:36px;padding:0 10px;font-weight:850;font-size:12px}
.live-card{padding:0;overflow:hidden}.live-map-wrap{height:430px;background:#eae7e2;position:relative;overflow:hidden}.live-map{position:absolute;inset:0;width:100%;height:100%;background:#eae7e2}.map-waiting{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;color:#6d6761;background:#eae7e2;transition:opacity .18s ease,visibility .18s ease;pointer-events:none}.map-waiting.is-hidden{opacity:0;visibility:hidden}.map-waiting strong{color:var(--ink)}.map-waiting small{margin-top:4px}.map-overlay{position:absolute;left:14px;right:14px;top:14px;z-index:4;display:grid;grid-template-columns:repeat(3,1fr);gap:7px;pointer-events:none}.map-metric{background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-radius:13px;padding:10px 11px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column}.map-metric small{font-size:9.5px;letter-spacing:.1em;color:#837c75;font-weight:900}.map-metric strong{font-size:17px;line-height:1.1;margin-top:2px}.map-status-row{padding:11px 15px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;align-items:center}.map-status-row small{color:var(--muted)}.map-follow{border:1px solid var(--line);background:#fff;min-height:36px;border-radius:10px;padding:0 9px;font-weight:800;font-size:11.5px}.driver-map-marker{width:50px;height:50px;border-radius:50%;background:#fff;border:3px solid #ff5a00;box-shadow:0 8px 24px rgba(0,0,0,.28);display:grid;place-items:center}.driver-map-marker span{display:block;width:42px;height:42px;background:url('logo-mark-new.png') center/contain no-repeat;transform-origin:center}.target-map-marker{position:relative;width:36px;height:46px;display:grid;place-items:start center}.target-map-marker:before{content:'';position:absolute;top:0;width:30px;height:30px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#ff5a00;box-shadow:0 6px 16px rgba(0,0,0,.22)}.target-map-marker.dropoff:before{background:#111}.target-map-marker i{position:relative;z-index:1;width:10px;height:10px;margin-top:10px;border-radius:50%;background:#fff}.customer-map-marker{width:22px;height:22px;border-radius:50%;background:#2274ff;border:4px solid #fff;box-shadow:0 3px 10px rgba(0,0,0,.2)}
.share-location-card{display:grid;grid-template-columns:40px 1fr auto;gap:11px;align-items:center;border:1px solid #cfe0ff;background:#f1f6ff;border-radius:16px;padding:12px}.share-location-card>span{width:40px;height:40px;border-radius:12px;background:#dce9ff;color:#246de5;display:grid;place-items:center}.share-location-card>span svg{width:20px;height:20px}.share-location-card div{display:flex;flex-direction:column}.share-location-card strong{font-size:13.5px}.share-location-card small{font-size:11.5px;color:#5e7295;margin-top:2px}.share-location-card button{min-height:38px;border:0;background:#246de5;color:#fff;border-radius:10px;padding:0 10px;font-size:11.5px;font-weight:850}.share-location-card.is-sharing{background:#eefaf3;border-color:#cce9d7}.share-location-card.is-sharing>span{background:#daf1e3;color:var(--green)}.share-location-card.is-sharing button{background:#fff;color:var(--green);border:1px solid #bfe0cb}
.detail-list{display:grid;gap:10px;margin-top:14px}.detail-row{display:flex;justify-content:space-between;gap:18px;border-bottom:1px solid #f0ede9;padding-bottom:9px}.detail-row:last-child{border-bottom:0;padding-bottom:0}.detail-row span{color:var(--muted);font-size:12.5px}.detail-row strong{text-align:right;font-size:12.5px;max-width:64%}.ride-side-actions{display:grid;gap:8px;margin-top:14px}.ride-side-actions button,.ride-side-actions a{min-height:44px;border:1px solid var(--line);background:#fff;border-radius:12px;padding:0 12px;display:flex;align-items:center;justify-content:center;text-decoration:none;font-weight:850;font-size:13px}.ride-side-actions .danger-link{color:var(--red)}
.post-ride-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.post-ride-actions button{min-height:42px;border-radius:12px;border:1px solid var(--line);background:#fff;padding:0 12px;font-weight:850}.post-ride-actions .primary{background:var(--orange);color:#fff;border-color:var(--orange)}
.messages-title{align-items:center}.soft-badge{background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 11px;font-size:12px;font-weight:850;color:#6c665f}
.messages-layout{height:min(690px,calc(100vh - 215px));min-height:540px;display:grid;grid-template-columns:330px 1fr;background:#fff;border:1px solid var(--line);border-radius:24px;overflow:hidden;box-shadow:var(--shadow-sm)}
.thread-pane{border-right:1px solid var(--line);background:#fcfbfa;overflow:auto}.thread-list{padding:8px}.thread-button{width:100%;border:0;background:transparent;border-radius:15px;padding:12px;display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center;text-align:left}.thread-button:hover{background:#f4f1ed}.thread-button.is-active{background:var(--orange-soft)}.thread-avatar{width:44px;height:44px;border-radius:14px;background:#25221f;color:#fff;display:grid;place-items:center;font-size:12px;font-weight:900}.thread-copy{min-width:0}.thread-copy strong{display:block;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thread-copy small{display:block;color:var(--muted);font-size:11.5px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thread-meta{display:flex;flex-direction:column;align-items:flex-end;gap:5px}.thread-meta time{font-size:10px;color:#999}.thread-meta b{min-width:19px;height:19px;border-radius:999px;background:var(--orange);color:#fff;display:grid;place-items:center;font-size:10px;padding:0 5px}
.chat-pane{display:grid;grid-template-rows:auto 1fr auto;min-width:0;min-height:0}.chat-header{min-height:72px;border-bottom:1px solid var(--line);padding:13px 16px;display:flex;align-items:center;gap:10px}.chat-header .back-chat{display:none}.chat-header>div{display:flex;flex-direction:column}.chat-header strong{font-size:14px}.chat-header small{font-size:11.5px;color:var(--muted);margin-top:2px}.chat-messages{overflow:auto;padding:18px;background:#fbfaf8;display:flex;flex-direction:column;gap:9px}.message-bubble{align-self:flex-start;max-width:min(74%,520px);background:#fff;border:1px solid var(--line);border-radius:17px 17px 17px 6px;padding:10px 12px}.message-bubble.mine{align-self:flex-end;background:#1d1b19;color:#fff;border-color:#1d1b19;border-radius:17px 17px 6px 17px}.message-bubble p{margin:0;font-size:13.5px;white-space:pre-wrap}.message-bubble small{display:block;font-size:9.5px;color:#9b958f;margin-top:5px}.message-bubble.mine small{color:#bfbab5}.chat-composer{padding:10px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 46px;gap:8px;background:#fff}.chat-composer textarea{min-height:46px;max-height:120px;resize:none;border-radius:14px;padding:12px}.chat-composer button{width:46px;height:46px;border-radius:14px;border:0;background:var(--orange);color:#fff;display:grid;place-items:center}.chat-composer button:disabled{background:#d8d3cd}.chat-composer svg{width:20px;height:20px}
.menu-layout{display:grid;grid-template-columns:360px 1fr;gap:18px;align-items:start}.profile-card{background:#171615;color:#fff;border-radius:25px;padding:24px;box-shadow:var(--shadow);position:sticky;top:calc(var(--header-h) + 24px)}.profile-head{display:flex;align-items:center;gap:13px}.profile-head .avatar{width:58px;height:58px;background:var(--orange);font-size:19px}.profile-head div{display:flex;flex-direction:column}.profile-head strong{font-size:20px}.profile-head small{color:#bcb7b2;font-size:12px;margin-top:2px}.profile-edit{width:100%;margin-top:16px;min-height:44px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.08);color:#fff;font-weight:850}.loyalty-tile{margin-top:14px;border-radius:16px;background:rgba(255,90,31,.15);border:1px solid rgba(255,147,105,.18);padding:14px;display:flex;align-items:center;justify-content:space-between}.loyalty-tile span{display:flex;flex-direction:column}.loyalty-tile small{color:#ffbda1;font-size:10.5px;letter-spacing:.1em;font-weight:900}.loyalty-tile strong{font-size:17px;margin-top:2px}.profile-signout{width:100%;margin-top:14px;border:0;background:transparent;color:#f3a4a4;font-weight:850;min-height:40px}
.menu-groups{display:grid;gap:13px}.menu-group{background:#fff;border:1px solid var(--line);border-radius:21px;padding:7px;box-shadow:0 3px 14px rgba(25,19,13,.025)}.menu-group-title{padding:10px 11px 5px;font-size:10.5px;letter-spacing:.11em;font-weight:900;color:#958d86}.menu-row{width:100%;min-height:58px;border:0;background:transparent;border-radius:14px;padding:8px 10px;display:grid;grid-template-columns:38px 1fr 20px;gap:10px;align-items:center;text-align:left;text-decoration:none}.menu-row:hover{background:#faf8f5}.menu-icon{width:38px;height:38px;border-radius:12px;background:var(--warm-2);color:#5d5751;display:grid;place-items:center}.menu-icon svg{width:18px;height:18px}.menu-row>span:nth-child(2){display:flex;flex-direction:column}.menu-row strong{font-size:13.5px}.menu-row small{font-size:11px;color:var(--muted);margin-top:2px}.menu-row>.chev{width:16px;height:16px;color:#a09a94}.saved-place-list{display:grid;gap:7px;padding:2px 8px 10px}.saved-place{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;background:var(--warm);border-radius:12px;padding:9px 10px}.saved-place div{display:flex;flex-direction:column}.saved-place strong{font-size:12.5px}.saved-place small{font-size:10.5px;color:var(--muted)}.saved-place button{border:0;background:transparent;color:var(--red);font-size:11px;font-weight:850}
.app-footer{border-top:1px solid var(--line);background:#fff}.footer-inner{min-height:110px;display:flex;align-items:center;gap:22px}.footer-inner img{height:38px}.footer-inner nav{display:flex;flex-wrap:wrap;gap:14px;margin-left:auto}.footer-inner a{font-size:12px;color:#6f6963;text-decoration:none}.footer-inner small{font-size:11px;color:#999}
.mobile-nav{display:none}
.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,18px);z-index:200;max-width:min(520px,calc(100% - 30px));background:#1c1b19;color:#fff;border-radius:14px;padding:11px 14px;font-size:13px;font-weight:750;box-shadow:0 12px 35px rgba(0,0,0,.22);opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}
/* dialogs */
dialog{border:0;padding:0;background:transparent;color:inherit}dialog::backdrop{background:rgba(18,16,14,.5);backdrop-filter:blur(4px)}
.sheet-dialog{width:min(620px,calc(100% - 26px));max-width:none}.modal-dialog{width:min(620px,calc(100% - 26px));max-width:none}.sheet-card,.modal-card{position:relative;background:#fff;border-radius:24px;padding:22px;box-shadow:0 26px 80px rgba(0,0,0,.25);max-height:min(88vh,820px);overflow:auto}.sheet-handle{display:none}.sheet-close{position:absolute;right:15px;top:15px;width:38px;height:38px;border:0;border-radius:12px;background:var(--warm-2);display:grid;place-items:center;color:#5f5953;z-index:2}.sheet-close svg{width:18px;height:18px}.sheet-title{padding-right:44px;margin-bottom:18px}.sheet-title h2{font-size:27px;line-height:1.05;letter-spacing:-.035em;margin:0}.sheet-title p{color:var(--muted);margin:8px 0 0;font-size:13.5px}.sheet-title.centered{text-align:center;padding-right:0}.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:15px}.quick-action{border:1px solid var(--line);background:#fff;border-radius:14px;min-height:56px;padding:9px 11px;display:flex;align-items:center;gap:9px;text-align:left}.quick-action:hover{background:#faf8f5}.quick-action .qa-icon{width:36px;height:36px;border-radius:11px;background:var(--orange-soft);display:grid;place-items:center;color:var(--orange);flex:0 0 auto}.quick-action .qa-icon svg{width:18px;height:18px}.quick-action span:last-child{display:flex;flex-direction:column}.quick-action strong{font-size:12.5px}.quick-action small{font-size:10.5px;color:var(--muted)}.postcode-lookup>label{font-size:13px;font-weight:800;color:#5b5652}.postcode-lookup>div{display:grid;grid-template-columns:1fr 90px;gap:8px;margin-top:7px}.postcode-lookup button,.inline-field button{border:0;background:#1e1c1a;color:#fff;border-radius:12px;font-weight:850}.form-status{min-height:18px;font-size:12px;color:#666;margin:8px 0}.address-results{max-height:210px;overflow:auto;display:grid;gap:5px;margin-bottom:10px}.address-choice{border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 11px;text-align:left;font-size:12.5px}.address-choice:hover,.address-choice.is-selected{border-color:#ffb18e;background:#fff7f2}.save-place-check,.remember-row{display:flex;align-items:center;gap:8px;font-size:12.5px;color:#5f5954;margin:10px 0}.save-place-check input,.remember-row input{width:18px;height:18px;min-height:0;padding:0;accent-color:var(--orange)}.save-place-check+input{width:100%;margin-bottom:12px}.sheet-card>.primary-button,.modal-card>.primary-button{width:100%;margin-top:13px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;background:var(--warm-2);padding:4px;border-radius:13px;margin:0 46px 18px 0}.auth-tabs button{min-height:42px;border:0;background:transparent;border-radius:10px;font-weight:850;color:#777}.auth-tabs button.is-active{background:#fff;color:var(--ink);box-shadow:0 3px 10px rgba(0,0,0,.06)}.auth-form{display:grid;gap:12px}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.inline-field{display:grid;grid-template-columns:1fr 104px;gap:7px}.field-label select+input{margin-top:7px}.form-error{min-height:17px;color:var(--red);font-size:12px;margin:0}.text-button{border:0;background:transparent;color:var(--orange-dark);font-weight:850;min-height:36px}.payment-sheet{overflow:visible}.fare-breakdown{background:var(--warm);border-radius:16px;padding:13px;margin-bottom:12px}.fare-line{display:flex;justify-content:space-between;gap:15px;font-size:13px;padding:6px 0}.fare-line.total{border-top:1px solid #ded9d3;margin-top:4px;padding-top:10px;font-weight:900}.payment-options{display:grid;gap:8px}.payment-options button{width:100%;border:1px solid var(--line);background:#fff;border-radius:16px;min-height:68px;padding:10px;display:grid;grid-template-columns:42px 1fr 22px;gap:10px;align-items:center;text-align:left}.payment-options button:hover{background:#faf8f5}.payment-icon{width:42px;height:42px;border-radius:13px;background:var(--orange-soft);color:var(--orange);display:grid;place-items:center}.payment-icon svg{width:20px;height:20px}.payment-options button>span:nth-child(2){display:flex;flex-direction:column}.payment-options strong{font-size:13.5px}.payment-options small{font-size:11.5px;color:var(--muted);margin-top:2px}.payment-options .chevron{width:17px;height:17px;color:#928b84}.compact-modal{width:100%}.money-input{display:grid;grid-template-columns:44px 1fr;border:1px solid #ddd8d2;border-radius:14px;overflow:hidden}.money-input span{display:grid;place-items:center;background:var(--warm-2);font-size:20px;font-weight:900}.money-input input{border:0;border-radius:0;font-size:20px;font-weight:900;box-shadow:none!important}.policy-link{display:block;text-align:center;color:#7e7770;font-size:11.5px;margin-top:10px}.rating-stars{display:flex;justify-content:center;gap:5px;margin:18px 0}.rating-stars button{border:0;background:transparent;font-size:38px;line-height:1;color:#d5d0cb;padding:0 2px}.rating-stars button.is-active{color:#ffb000}.tip-presets{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:10px 0}.tip-presets button{min-height:46px;border:1px solid var(--line);background:#fff;border-radius:12px;font-weight:900}.tip-presets button.is-active{border-color:var(--orange);background:var(--orange-soft);color:var(--orange-dark)}.profile-find-wrap{display:flex;align-items:flex-end}.profile-find-wrap button{min-height:48px}.danger-button+.policy-link{margin-top:12px}
@media (max-width:980px){
  .booking-layout{grid-template-columns:1fr;gap:24px}.booking-column{max-width:none}.booking-aside{position:static;display:grid;grid-template-columns:1fr 1fr}.aside-hero{grid-column:1/-1}.how-card{display:none}.detail-grid{grid-template-columns:1fr}.menu-layout{grid-template-columns:320px 1fr}.footer-inner{flex-wrap:wrap;padding:20px 0}.footer-inner nav{order:3;width:100%;margin-left:0}.footer-inner small{margin-left:auto}
}
@media (max-width:760px){
  :root{--header-h:64px}
  body{padding-bottom:var(--mobile-nav-h)}
  .page-width{width:min(100% - 24px,680px)}
  .app-header{height:var(--header-h)}.header-inner{width:calc(100% - 22px);gap:12px}.brand img{height:42px}.desktop-nav{display:none}.header-account{margin-left:auto;min-height:40px}.header-account #headerAccountLabel{display:none}.header-account svg{display:none}
  .booking-layout{padding:27px 0 32px}.page-intro{margin-bottom:17px}.page-intro h1,.section-header h1{font-size:30px}.page-intro p{font-size:15px;line-height:1.5;margin-top:8px}.eyebrow{font-size:10.5px;margin-bottom:8px}
  .booking-card{padding:12px;border-radius:23px;box-shadow:0 10px 28px rgba(25,19,13,.065)}.journey-toggle{margin-bottom:10px}.toggle-option{min-height:45px}.route-field{min-height:84px;padding:14px 13px;grid-template-columns:24px 1fr 32px;gap:10px}.route-copy strong{font-size:16.5px}.route-copy em{font-size:12.5px}.route-line{left:24px;top:50px;height:66px}.swap-route{right:11px;width:37px;height:37px}.booking-grid{grid-template-columns:1fr;gap:8px;margin-top:8px}.select-card,.stepper-card{min-height:68px}.schedule-block,.return-block,.journey-options,.availability-card{margin-top:8px}.journey-options summary{min-height:66px}.quote-button{position:sticky;bottom:calc(var(--mobile-nav-h) + 8px);z-index:14;margin-top:10px;box-shadow:0 10px 30px rgba(255,90,31,.34)}
  .booking-aside{display:none}.content-page,.menu-page,.ride-shell{padding:26px 0 34px}.section-header{align-items:flex-start;margin-bottom:18px}.section-header p{font-size:13.5px}.desktop-only{display:none!important}.tab-bar{margin-left:-1px;margin-right:-1px}
  .ride-card{grid-template-columns:1fr;padding:14px;gap:11px}.ride-main{grid-template-columns:42px 1fr;gap:11px}.ride-icon{width:42px;height:42px;border-radius:13px}.ride-copy h3{font-size:16px}.ride-actions{justify-content:flex-end}.small-button{min-height:40px}.ride-status-hero{padding:20px;border-radius:22px}.ride-status-top h1{font-size:28px}.ride-status-top{flex-direction:column;gap:10px}.status-badge{align-self:flex-start}.ride-route-summary{grid-template-columns:1fr 20px 1fr;padding:12px}.ride-route-summary strong{font-size:12.5px}.detail-card{padding:15px;border-radius:18px}.quote-card{grid-template-columns:42px 1fr auto;padding:12px}.quote-avatar{width:42px;height:42px}.quote-price strong{font-size:20px}.quote-actions{grid-column:1/-1;justify-content:stretch}.quote-actions button{flex:1}.live-map-wrap{height:410px}.map-overlay{left:9px;right:9px;top:9px}.map-metric{padding:8px}.map-metric strong{font-size:14px}.share-location-card{grid-template-columns:38px 1fr}.share-location-card>span{width:38px;height:38px}.share-location-card button{grid-column:1/-1;width:100%}
  .messages-page{padding-bottom:0}.messages-title{margin-bottom:14px}.messages-title p{display:none}.soft-badge{font-size:10.5px;padding:6px 9px}.messages-layout{height:calc(100dvh - var(--header-h) - var(--mobile-nav-h) - 126px);min-height:500px;display:block;position:relative;border-radius:20px}.thread-pane{height:100%;border-right:0}.chat-pane{position:absolute;inset:0;background:#fff;transform:translateX(102%);transition:.22s transform}.messages-layout.conversation-open .chat-pane{transform:translateX(0)}.chat-header .back-chat{display:grid;place-items:center;border:0;background:var(--warm-2);width:38px;height:38px;border-radius:12px;flex:0 0 auto}.chat-messages{padding:13px}.message-bubble{max-width:84%}.chat-composer{padding:8px}.chat-composer textarea{font-size:16px}
  .menu-layout{grid-template-columns:1fr}.profile-card{position:static;border-radius:21px;padding:18px}.profile-head .avatar{width:52px;height:52px}.profile-head strong{font-size:18px}.menu-group{border-radius:18px}.menu-row{min-height:56px}
  .app-footer{display:none}.mobile-nav{position:fixed;z-index:80;left:0;right:0;bottom:0;height:var(--mobile-nav-h);padding:7px max(8px,env(safe-area-inset-right)) max(7px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));display:grid;grid-template-columns:repeat(4,1fr);background:rgba(255,255,255,.97);backdrop-filter:blur(18px);border-top:1px solid var(--line)}.mobile-nav button{border:0;background:transparent;border-radius:13px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#777;position:relative;min-width:0}.mobile-nav button svg{width:22px;height:22px}.mobile-nav button span{font-size:10.5px;font-weight:850}.mobile-nav button.is-active{color:var(--orange);background:var(--orange-soft)}.mobile-unread{position:absolute;top:2px;right:20%;min-width:18px;height:18px;border-radius:999px;background:var(--orange);color:#fff;display:grid;place-items:center;font-size:9px;padding:0 4px}.toast{bottom:calc(var(--mobile-nav-h) + 14px)}
  .sheet-dialog,.modal-dialog{width:100%;max-width:none;margin:auto 0 0}.sheet-card,.modal-card{border-radius:24px 24px 0 0;max-height:90dvh;padding:18px 16px calc(18px + env(safe-area-inset-bottom))}.sheet-handle{display:block;width:42px;height:4px;border-radius:999px;background:#d9d4ce;margin:-5px auto 14px}.sheet-title h2{font-size:25px}.quick-actions{grid-template-columns:1fr}.two-fields{grid-template-columns:1fr}.auth-tabs{margin-right:44px}.postcode-lookup>div{grid-template-columns:1fr 80px}.address-results{max-height:170px}.tip-presets{grid-template-columns:repeat(4,1fr)}
}
@media (max-width:380px){
  .page-width{width:calc(100% - 18px)}.booking-card{padding:10px}.route-field{padding-inline:10px}.route-copy strong{font-size:15.5px}.route-copy em{font-size:12px}.ride-route-summary{grid-template-columns:1fr 14px 1fr}.map-metric strong{font-size:13px}.map-metric small{font-size:8.5px}.mobile-nav button span{font-size:9.8px}.header-inner{width:calc(100% - 16px)}
}

.booking-lock-note{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px;padding:12px 14px;border:1px solid #ffd7c8;background:#fff7f3;border-radius:16px;color:#5c3a2c}.booking-lock-note strong{font-size:13px;color:#d9470c}.booking-lock-note span{font-size:12.5px;line-height:1.4;color:#76584c;text-align:right}@media(max-width:700px){.booking-lock-note{align-items:flex-start;flex-direction:column;gap:3px}.booking-lock-note span{text-align:left}}

/* v34.7 live-map follow state */
.map-follow.is-following{background:#fff3ed;border-color:#ffc7ad;color:#d94b10}

/* v34.9 booking availability, airport transfer and mandatory-payment flow */
.purpose-picker{margin:0 0 14px}.purpose-label{display:block;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#77706a;margin:0 0 7px}.purpose-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.purpose-option{min-height:52px;border:1px solid var(--line);background:#fff;border-radius:14px;padding:9px 11px;display:flex;align-items:center;justify-content:center;gap:8px;color:#5f5954;font-size:13px}.purpose-option span{font-size:19px}.purpose-option strong{font-size:13px}.purpose-option.is-active{border-color:#ffb18e;background:var(--orange-soft);color:var(--orange-dark);box-shadow:inset 0 0 0 1px rgba(255,90,31,.06)}
.airport-booking{margin:0 0 14px;border:1px solid #ffd4c1;background:linear-gradient(180deg,#fffaf7,#fff);border-radius:18px;padding:14px}.airport-booking-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px}.airport-icon{width:38px;height:38px;border-radius:12px;background:var(--orange-soft);display:grid;place-items:center;font-size:19px;flex:0 0 auto}.airport-booking-head>div{display:flex;flex-direction:column;min-width:0}.airport-booking-head strong{font-size:15px}.airport-booking-head small{font-size:12px;line-height:1.45;color:var(--muted);margin-top:2px}.airport-fields{display:grid;grid-template-columns:1fr 1.25fr auto;gap:8px;align-items:end}.airport-fields label{display:flex;flex-direction:column;gap:6px}.airport-fields label span{font-size:11.5px;font-weight:850;color:#615b55}.airport-fields input{min-height:46px;font-size:16px}.flight-search-button{min-height:46px;padding-inline:14px;white-space:nowrap}.flight-status{font-size:11.5px;color:var(--muted);margin:10px 1px 0}.flight-results{display:grid;gap:7px;margin-top:9px}.flight-result{width:100%;border:1px solid var(--line);background:#fff;border-radius:14px;padding:10px 11px;display:grid;grid-template-columns:1fr auto;gap:10px;text-align:left;align-items:center}.flight-result:hover{border-color:#ffb18e;background:#fff8f4}.flight-result-main{display:flex;flex-direction:column;min-width:0}.flight-result-main strong{font-size:13.5px}.flight-result-main small{font-size:11.5px;color:var(--muted);margin-top:2px;white-space:normal}.flight-result-time{text-align:right}.flight-result-time strong{display:block;font-size:12.5px}.flight-result-time small{display:block;font-size:10.5px;color:var(--muted);margin-top:2px}.selected-flight{margin-top:10px;padding:11px 12px;border-radius:14px;background:#f1fbf5;border:1px solid #cde8d6;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.selected-flight>div{display:flex;flex-direction:column}.selected-flight strong{font-size:13.5px}.selected-flight small{font-size:11.5px;color:#5f7166;margin-top:2px}.selected-flight button{border:0;background:transparent;color:var(--orange-dark);font-size:11.5px;font-weight:900;padding:4px}
.availability-card small .availability-refresh-age{font-weight:800;color:#817970}.availability-summary-note{font-size:10.5px;color:var(--muted);margin-top:5px}.driver-mini .review-count{font-weight:750;color:#766e67}.nearby-more{padding:8px 3px 0;font-size:11px;color:var(--muted);text-align:center}
.payment-lock-note{margin:-3px 0 13px;padding:10px 12px;border-radius:13px;background:#fff4ee;border:1px solid #ffd2bf;display:flex;flex-direction:column;gap:2px}.payment-lock-note strong{font-size:12.5px;color:#c7430b}.payment-lock-note span{font-size:11.5px;color:#76584c;line-height:1.4}.payment-sheet.is-mandatory .sheet-close{display:none}.payment-sheet.is-mandatory .sheet-handle{background:#f3a17e}.payment-sheet.is-mandatory{border:2px solid #ffd2bf}body.payment-gated .mobile-nav,body.payment-gated .desktop-nav,body.payment-gated .header-account{pointer-events:none;opacity:.45}
.airport-flight-summary{margin-top:12px;border:1px solid rgba(255,151,102,.34);background:rgba(255,255,255,.08);border-radius:15px;padding:12px 13px;display:flex;align-items:flex-start;gap:10px;color:#fff;backdrop-filter:blur(8px)}.airport-flight-summary>span{font-size:19px;color:#ff915c}.airport-flight-summary>div{display:flex;flex-direction:column;gap:3px;min-width:0}.airport-flight-summary small{font-size:11.5px;color:#ffb38f;font-weight:850;letter-spacing:.06em}.airport-flight-summary strong{font-size:13px;color:#fff}.airport-flight-summary p{margin:0;color:#f4efec;font-size:13px;line-height:1.45}.airport-flight-summary em{color:#d8cfca;font-size:12px;font-style:normal;line-height:1.4}
@media(max-width:760px){.purpose-picker{margin-bottom:10px}.purpose-option{min-height:48px;padding:7px 8px}.airport-booking{padding:12px;margin-bottom:10px}.airport-fields{grid-template-columns:1fr 1fr}.flight-search-button{grid-column:1/-1;width:100%}.flight-result{padding:10px}.selected-flight{flex-direction:column}.selected-flight button{align-self:flex-start;padding-left:0}}
@media(max-width:380px){.purpose-option strong{font-size:12px}.purpose-option span{font-size:17px}.airport-fields{grid-template-columns:1fr}.flight-search-button{grid-column:auto}.flight-result{grid-template-columns:1fr}.flight-result-time{text-align:left}}

/* v34.9 payment-first confirmed ride stage */
.payment-required-stage .payment-first-card{text-align:center}.payment-first-icon{width:52px;height:52px;margin:0 auto 10px;border-radius:16px;background:#fff1e9;display:grid;place-items:center;font-size:24px}.payment-first-card h2{margin:0 0 7px}.payment-first-card>p{max-width:560px;margin:0 auto 16px;color:var(--muted);line-height:1.55}.payment-first-card .fare-breakdown{max-width:460px;margin:0 auto 14px;text-align:left}.payment-first-card .primary-button{max-width:460px;margin:0 auto}

/* v35.0 progressive airport-transfer flow */
.airport-mode #standardRouteEditor,.airport-mode #journeyTypeToggle{display:none!important}
.airport-mode .booking-grid{grid-template-columns:1fr}
.airport-mode .booking-grid>.select-card{display:none!important}
.airport-mode #scheduleBlock,.airport-mode #returnBlock{display:none!important}
.airport-mode .booking-tail{margin-top:12px}
.airport-booking{padding:16px}
.airport-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:2px 0 16px}
.airport-progress span{min-width:0;display:flex;align-items:center;justify-content:center;gap:6px;padding:7px 6px;border-radius:10px;background:#f5f2ef;color:#8a837c;font-size:10.5px;font-weight:850;white-space:nowrap}
.airport-progress span b{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#e7e2dd;color:#7d756e;font-size:10px;flex:0 0 auto}
.airport-progress span.is-active{background:#fff0e9;color:var(--orange-dark)}
.airport-progress span.is-active b{background:var(--orange);color:#fff}
.airport-progress span.is-complete{background:#eef8f1;color:#38754c}
.airport-progress span.is-complete b{background:#2f8c55;color:#fff}
.airport-step{border:1px solid #eee7e1;background:#fff;border-radius:16px;padding:15px;position:relative}
.airport-step-label{display:inline-flex;font-size:9.5px;font-weight:950;letter-spacing:.12em;color:var(--orange-dark);margin-bottom:5px}
.airport-step h3{margin:0;font-size:20px;letter-spacing:-.02em}
.airport-step>p{margin:5px 0 13px;color:var(--muted);font-size:12.5px;line-height:1.5}
.airport-step-back{border:0;background:transparent;color:#6f6862;padding:0;margin:0 0 10px;font-size:11.5px;font-weight:850}
.airport-direction-options{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.airport-direction-option{min-height:118px;border:1px solid var(--line);background:#fff;border-radius:15px;padding:14px;display:grid;grid-template-columns:36px 1fr auto;grid-template-rows:auto auto;column-gap:10px;row-gap:2px;text-align:left;align-items:center}
.airport-direction-option>span{grid-row:1/3;width:36px;height:36px;border-radius:11px;background:var(--warm-2);display:grid;place-items:center;font-size:18px}
.airport-direction-option>b{font-size:13.5px;color:var(--ink)}
.airport-direction-option>small{font-size:11px;color:var(--muted);line-height:1.35}
.airport-direction-option>em{grid-column:3;grid-row:1/3;font-style:normal;font-size:17px;color:var(--orange)}
.airport-direction-option:hover,.airport-direction-option.is-active{border-color:#ffb18e;background:#fff7f2;box-shadow:inset 0 0 0 1px rgba(255,90,31,.05)}
.airport-one-leg-note{display:block;margin-top:10px;color:#8a8179;font-size:10.5px;line-height:1.45}
.airport-flight-fields{grid-template-columns:1.1fr .9fr auto}
.airport-detected{display:flex;align-items:center;gap:10px;margin:0 0 10px;padding:11px 12px;background:#f4f8f5;border:1px solid #dce9df;border-radius:14px}
.airport-detected>span{width:34px;height:34px;border-radius:10px;background:#e3f1e7;display:grid;place-items:center;flex:0 0 auto}
.airport-detected>div{display:flex;flex-direction:column;min-width:0}
.airport-detected small{font-size:9.5px;letter-spacing:.08em;font-weight:900;color:#5c7b65}
.airport-detected strong{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.airport-detected em{font-style:normal;font-size:11px;color:#667168;margin-top:2px}
.airport-address-button{width:100%;min-height:72px;border:1px solid var(--line);background:#fff;border-radius:14px;padding:10px 12px;display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;text-align:left}
.airport-address-button+.airport-address-button{margin-top:8px}
.airport-address-button:hover{border-color:#ffb18e;background:#fff9f6}
.airport-address-icon{width:38px;height:38px;border-radius:11px;background:var(--orange-soft);color:var(--orange-dark);display:grid;place-items:center;font-size:18px}
.airport-address-button>span:nth-child(2){display:flex;flex-direction:column;min-width:0}
.airport-address-button small{font-size:9.5px;letter-spacing:.09em;font-weight:900;color:#8a817a}
.airport-address-button strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.airport-address-button em{font-style:normal;font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.airport-address-button>b{font-size:23px;color:#a39a92}
.airport-manual-airport{border-style:dashed;background:#fffdfb}
.airport-timing-fields{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.airport-timing-fields label{display:flex;flex-direction:column;gap:6px}
.airport-timing-fields label span{font-size:11px;font-weight:850;color:#625d58}
.airport-timing-fields input,.airport-timing-fields select{min-height:48px;font-size:16px}
.airport-timing-hint{grid-column:1/-1;margin:0!important;padding:9px 10px;border-radius:11px;background:#f8f6f3;color:#706860!important;font-size:11px!important;line-height:1.45!important}
.airport-continue{margin-top:12px;width:100%}
.airport-review{border:1px solid #cde8d6;background:#f6fcf8;border-radius:16px;padding:13px}
.airport-review-head{display:flex;gap:9px;align-items:center;margin-bottom:10px}
.airport-review-head>span{width:32px;height:32px;border-radius:10px;background:#2f8c55;color:#fff;display:grid;place-items:center;font-weight:900}
.airport-review-head>div{display:flex;flex-direction:column}
.airport-review-head strong{font-size:14px}
.airport-review-head small{font-size:11px;color:#647269;margin-top:1px}
.airport-review-summary{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.airport-review-summary>div{border:1px solid #e0ebe3;background:#fff;border-radius:11px;padding:9px 10px;display:flex;flex-direction:column;min-width:0}
.airport-review-summary small{font-size:9.5px;text-transform:uppercase;letter-spacing:.07em;font-weight:900;color:#7d887f}
.airport-review-summary strong{font-size:11.5px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.airport-review-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}
.airport-review-actions button{border:1px solid #d9e5dc;background:#fff;min-height:34px;border-radius:9px;padding:0 9px;font-size:10.5px;font-weight:850;color:#53665a}
.airport-mode .booking-disclaimer{text-align:center}
.airport-mode #availabilityCard{margin-top:12px}
.airport-mode #journeyOptions{margin-top:10px}

@media(max-width:760px){
  .airport-booking{padding:11px}
  .airport-booking-head{margin-bottom:10px}
  .airport-progress{gap:4px;margin-bottom:10px}
  .airport-progress span{font-size:0;padding:6px 3px}
  .airport-progress span b{font-size:10px}
  .airport-step{padding:12px}
  .airport-step h3{font-size:18px}
  .airport-direction-options{grid-template-columns:1fr}
  .airport-direction-option{min-height:82px;padding:11px}
  .airport-flight-fields{grid-template-columns:1fr 1fr}
  .airport-flight-fields .flight-search-button{grid-column:1/-1}
  .airport-timing-fields{grid-template-columns:1fr}
  .airport-timing-hint{grid-column:1}
  .airport-review-summary{grid-template-columns:1fr}
  .airport-review-actions{display:grid;grid-template-columns:repeat(3,1fr)}
  .airport-review-actions button{padding:0 5px}
}
@media(max-width:380px){
  .airport-flight-fields{grid-template-columns:1fr}
  .airport-flight-fields .flight-search-button{grid-column:auto}
}

/* v35.1 confirmed rides deliberately do not initialise Mapbox until the operator sets off. */
.confirmed-waiting-card{text-align:left}.confirmed-waiting-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#e9f7ef;color:#16824a;font-size:22px;font-weight:900;margin-bottom:12px}.confirmed-map-placeholder{display:flex;gap:12px;align-items:center;margin:18px 0;padding:16px;border:1px dashed #d9d0ca;border-radius:16px;background:#faf8f6}.confirmed-map-placeholder>span{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#fff0e8;color:var(--orange);font-size:21px}.confirmed-map-placeholder strong,.confirmed-map-placeholder small{display:block}.confirmed-map-placeholder small{margin-top:3px;color:var(--muted);line-height:1.4}

/* ============================================================
   Ask4Ride v35.2 — responsive + persistent attention hardening
   ============================================================ */
html,body{max-width:100%;overflow-x:hidden}
.field-hint{display:block;margin-top:5px;color:#817a73;font-size:11.5px;line-height:1.4}
.portal-attention-dock{position:fixed;right:20px;bottom:20px;z-index:72;width:min(430px,calc(100vw - 32px));min-height:62px;padding:10px 10px 10px 12px;border:1px solid #ffd0bc;border-radius:18px;background:rgba(255,255,255,.97);backdrop-filter:blur(18px);box-shadow:0 16px 42px rgba(38,25,16,.16);display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:10px;align-items:center;transition:.18s opacity,.18s transform}
.portal-attention-dock.is-hidden{opacity:0;transform:translateY(12px);pointer-events:none;visibility:hidden}
.portal-attention-dock .attention-dot{width:10px;height:10px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 5px var(--orange-soft)}
.portal-attention-dock .attention-copy{min-width:0;display:flex;flex-direction:column;gap:2px}.portal-attention-dock .attention-copy small{font-size:9.5px;letter-spacing:.11em;font-weight:950;color:#9a4a24}.portal-attention-dock .attention-copy strong{font-size:13px;line-height:1.3;white-space:normal}
.portal-attention-dock button{min-height:40px;padding:0 12px;border:0;border-radius:12px;background:#171615;color:#fff;font-weight:900;white-space:nowrap}
.portal-attention-dock[data-tone="urgent"]{border-color:#ffb18c;background:#fff8f3}.portal-attention-dock[data-tone="urgent"] .attention-dot{background:#e94b16;box-shadow:0 0 0 5px #ffe7dc}.portal-attention-dock[data-tone="urgent"] button{background:var(--orange)}
.portal-attention-dock[data-tone="live"]{border-color:#a9ddbc;background:#f8fffa}.portal-attention-dock[data-tone="live"] .attention-dot{background:#16a456;box-shadow:0 0 0 5px #e6f8ed}.portal-attention-dock[data-tone="live"] .attention-copy small{color:#167846}
body:has(dialog[open]) .customer-attention-dock{opacity:0;pointer-events:none}

/* Important ride state remains visually dominant without making the whole page huge. */
.ride-status-hero{border:1px solid rgba(255,255,255,.05)}
.ride-status-hero:has(.booking-lock-note){box-shadow:0 14px 36px rgba(25,19,13,.12)}
.payment-required-stage .payment-first-card{border-color:#ffc6a9;box-shadow:0 10px 30px rgba(244,93,5,.09)}
.form-error:not(:empty){padding:8px 10px;border:1px solid #f1b6ad;border-radius:10px;background:#fff4f2;font-weight:800}

/* Desktop/tablet sizing */
@media (max-width:1180px){
  .page-width{width:min(100% - 28px,1040px)}
  .detail-grid{grid-template-columns:minmax(0,1.15fr) minmax(290px,.85fr)}
}
@media (max-width:900px){
  .detail-grid,.menu-layout{grid-template-columns:1fr}
  .profile-card{position:static}
  .ride-status-hero{padding:22px}
  .live-map-wrap{height:clamp(360px,52dvh,520px)}
  .footer-inner{gap:14px}
}
@media (max-width:760px){
  body{padding-bottom:calc(var(--mobile-nav-h) + env(safe-area-inset-bottom))}
  .customer-attention-dock{left:10px;right:10px;bottom:calc(var(--mobile-nav-h) + 9px);width:auto;min-height:58px;border-radius:16px;padding:8px 8px 8px 10px;grid-template-columns:10px minmax(0,1fr) auto;gap:8px}
  .customer-attention-dock .attention-copy small{font-size:8.5px}.customer-attention-dock .attention-copy strong{font-size:11.5px}.customer-attention-dock button{min-height:38px;padding:0 10px;font-size:11px}
  .ride-status-hero{padding:17px;border-radius:20px}.ride-status-top h1{font-size:26px}.ride-status-top p{font-size:13px;line-height:1.45}
  .ride-route-summary{grid-template-columns:minmax(0,1fr) 16px minmax(0,1fr);gap:7px}.ride-route-summary strong{white-space:normal;overflow:visible;line-height:1.25}.ride-route-summary em{overflow-wrap:anywhere}
  .detail-card{min-width:0}.detail-row{gap:10px}.detail-row strong{max-width:58%;overflow-wrap:anywhere}
  .quote-card{grid-template-columns:40px minmax(0,1fr) auto;gap:9px}.quote-info strong,.quote-info small{white-space:normal}.quote-price strong{font-size:18px}.quote-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.quote-actions button{width:100%;min-height:44px}
  .live-map-wrap{height:clamp(330px,48dvh,480px)}.map-status-row{align-items:flex-start}.map-status-row small{line-height:1.35}
  .modal-dialog,.sheet-dialog{max-height:100dvh}.modal-card,.sheet-card{max-height:calc(100dvh - env(safe-area-inset-top));overscroll-behavior:contain}
  #cancelDialog .danger-button{position:sticky;bottom:0;z-index:4;box-shadow:0 -10px 20px rgba(255,255,255,.96);margin-top:10px}
  input,select,textarea,button{max-width:100%}
}
@media (max-width:520px){
  .page-width{width:calc(100% - 16px)}
  .ride-actions,.contact-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.ride-actions>*{min-width:0}
  .quote-card{grid-template-columns:40px minmax(0,1fr)}.quote-price{grid-column:1/-1;text-align:left;display:flex;align-items:baseline;gap:6px}.quote-price small{display:inline}.quote-actions{grid-column:1/-1}
  .map-overlay{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.map-metric{min-width:0;padding:7px}.map-metric small{font-size:8px}.map-metric strong{font-size:12.5px;overflow:hidden;text-overflow:ellipsis}
  .airport-progress{overflow-x:auto;scrollbar-width:none}.airport-progress::-webkit-scrollbar{display:none}.airport-progress span{flex:0 0 auto}
}
@media (max-width:360px){
  .customer-attention-dock{grid-template-columns:9px minmax(0,1fr)}.customer-attention-dock button{grid-column:2;width:100%;min-height:36px}.customer-attention-dock .attention-copy strong{font-size:11px}
  .ride-status-top h1{font-size:24px}.detail-card{padding:13px}.quote-actions{grid-template-columns:1fr}
  .map-overlay{left:6px;right:6px;top:6px}
}
/* v35.4 transient attention toast: visible for 3 seconds, with explicit 15-minute acknowledgement. */
.portal-attention-dock{overflow:hidden}.portal-attention-dock .attention-actions{display:flex;align-items:center;gap:7px}.portal-attention-dock .attention-actions>button{min-height:40px;padding:0 12px;border:0;border-radius:12px;font-weight:900;white-space:nowrap}.portal-attention-dock .attention-actions>.attention-ack{background:#f2eee9;color:#4b433d;border:1px solid #e5ddd6}.portal-attention-dock .attention-actions>#customerAttentionAction{background:#171615;color:#fff}.portal-attention-dock[data-tone="urgent"] .attention-actions>#customerAttentionAction{background:var(--orange)}.portal-attention-dock .attention-progress{position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--orange);transform-origin:left center}.portal-attention-dock[data-tone="live"] .attention-progress{background:#16a456}.portal-attention-dock.is-attention-running .attention-progress{animation:afrAttentionCountdown 3s linear forwards}@keyframes afrAttentionCountdown{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@media(max-width:760px){.customer-attention-dock .attention-actions{grid-column:3;flex-direction:column;gap:4px}.customer-attention-dock .attention-actions>button{min-height:30px;padding:0 8px;font-size:10px}.customer-attention-dock .attention-actions>.attention-ack{order:2}}@media(max-width:390px){.customer-attention-dock{grid-template-columns:9px minmax(0,1fr) auto}.customer-attention-dock .attention-actions{grid-column:3}.customer-attention-dock .attention-actions>button{width:auto;min-width:62px}}

/* v35.8 customer/operator navigation parity */
.map-follow.is-following{color:#126c36;border-color:#bfe4cb;background:#f5fff8}.map-status-row small{font-weight:700}.live-map .mapboxgl-canvas{outline:none}@media(max-width:700px){.driver-map-marker{width:44px;height:44px}.driver-map-marker span{width:36px;height:36px}.target-map-marker{transform:scale(.9);transform-origin:bottom center}}

/* v36.2 return-leg customer clarity */
.ride-route-summary.return-leg-summary{border-color:rgba(255,126,54,.42);background:rgba(255,115,35,.09)}
.return-leg-waiting .confirmed-waiting-card{border-color:#ffc3a1;background:#fffaf7}
.return-leg-waiting .confirmed-waiting-icon{background:#fff0e8;color:var(--orange)}

/* v36.5 live cockpit — keep the journey, map and driver essentials in the first view */
.live-ride-summary{background:#171615;color:#fff;border-radius:22px;padding:14px 16px;display:grid;gap:10px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.live-ride-summary:after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;background:rgba(255,90,31,.14);right:-76px;top:-88px;pointer-events:none}
.live-summary-status{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:10px;align-items:center;position:relative;z-index:1}
.live-pulse{width:10px;height:10px;border-radius:50%;background:#25c66b;box-shadow:0 0 0 0 rgba(37,198,107,.5);animation:livePulse 1.8s infinite}
@keyframes livePulse{0%{box-shadow:0 0 0 0 rgba(37,198,107,.5)}70%{box-shadow:0 0 0 8px rgba(37,198,107,0)}100%{box-shadow:0 0 0 0 rgba(37,198,107,0)}}
.live-summary-copy{min-width:0}.live-summary-copy .ride-ref{display:block;margin-bottom:1px}.live-summary-copy h1{font-size:22px;line-height:1.05;letter-spacing:-.03em;margin:0}.live-summary-copy p{margin:4px 0 0;color:#cfc9c3;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.live-ride-summary .status-badge{position:relative;z-index:1}
.live-ride-summary .ride-route-summary{padding:10px 12px;border-radius:14px;gap:8px;grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr)}
.live-ride-summary .ride-route-summary strong{font-size:12.5px}.live-ride-summary .ride-route-summary small{font-size:9px}.live-ride-summary .ride-route-summary em{font-size:10px}
.live-flight-inline{position:relative;z-index:1}.live-flight-inline .airport-flight-summary{margin-top:0;padding:8px 10px;border-radius:12px;align-items:center}.live-flight-inline .airport-flight-summary>span{font-size:16px}.live-flight-inline .airport-flight-summary small{font-size:10px}.live-flight-inline .airport-flight-summary strong{font-size:12px}.live-flight-inline .airport-flight-summary p{font-size:11px}.live-flight-inline .airport-flight-summary em{font-size:10.5px}
.live-detail-grid{align-items:start}.live-essentials-card{position:sticky;top:calc(var(--header-h) + 14px)}
.map-driver-quick{display:none}.map-status-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%}.map-status-meta>small{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.live-more-details{border-top:1px solid var(--line);padding-top:2px}.live-more-details>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:42px;font-size:13px;font-weight:900;cursor:pointer}.live-more-details>summary::-webkit-details-marker{display:none}.live-more-chevron{font-size:18px;color:#8b847d;transition:transform .18s ease}.live-more-details[open] .live-more-chevron{transform:rotate(180deg)}

@media(max-width:760px){
  .ride-detail{gap:10px}
  .live-ride-summary{border-radius:18px;padding:11px 12px;gap:8px}
  .live-summary-status{grid-template-columns:10px minmax(0,1fr);gap:8px}.live-summary-status .status-badge{grid-column:2;justify-self:start;padding:5px 8px;font-size:10px;margin-top:1px}
  .live-summary-copy h1{font-size:19px}.live-summary-copy p{font-size:11.5px;margin-top:2px}.live-summary-copy .ride-ref{font-size:9px}
  .live-ride-summary .ride-route-summary{padding:8px 9px;border-radius:12px;grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr);gap:5px}
  .live-ride-summary .ride-route-summary strong{font-size:11.5px}.live-ride-summary .ride-route-summary em{font-size:9.5px}.live-ride-summary .ride-route-summary small{font-size:8.5px}
  .live-flight-inline .airport-flight-summary p,.live-flight-inline .airport-flight-summary em{display:none}
  .live-map-wrap{height:clamp(315px,42dvh,390px)}
  .map-status-row{display:grid;padding:9px 10px;gap:8px}
  .map-driver-quick{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:8px;align-items:center}
  .quick-driver-avatar{width:38px;height:38px;font-size:11px;overflow:hidden}.quick-driver-avatar img{width:100%;height:100%;object-fit:cover}
  .quick-driver-copy{display:flex;flex-direction:column;min-width:0}.quick-driver-copy strong{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quick-driver-copy small{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
  .quick-driver-actions{display:flex;gap:5px}.quick-contact{width:39px;height:36px;border:1px solid var(--line);background:#fff;border-radius:10px;display:grid;place-items:center;text-decoration:none;color:var(--ink);padding:0}.quick-contact svg{width:16px;height:16px}.quick-contact span{display:none}.quick-contact:disabled{opacity:.4}
  .map-status-meta{gap:8px}.map-status-meta>small{font-size:10px}.map-follow{min-height:32px;padding:0 8px;font-size:10.5px;flex:0 0 auto}
  .live-essentials-card{position:static;padding:11px;border-radius:16px;gap:9px}
  .live-essentials-card>.driver-profile,.live-essentials-card>.vehicle-box,.live-essentials-card>.contact-actions{display:none}
  .live-essentials-card>[data-payment-slot] .pill{font-size:10.5px;padding:6px 9px}
  .live-essentials-card .share-location-card{grid-template-columns:34px 1fr auto;padding:9px;border-radius:13px;gap:8px}.live-essentials-card .share-location-card>span{width:34px;height:34px}.live-essentials-card .share-location-card strong{font-size:11.5px}.live-essentials-card .share-location-card small{font-size:10px}.live-essentials-card .share-location-card button{min-height:34px;font-size:10px}
  .live-more-details{margin-top:1px;padding-top:0}.live-more-details>summary{min-height:38px;font-size:11.5px}.live-more-details .detail-list{margin-top:8px;gap:7px}.live-more-details .detail-row{padding-bottom:7px}.live-more-details .detail-row span,.live-more-details .detail-row strong{font-size:11px}.live-more-details .ride-side-actions{margin-top:10px}.live-more-details .ride-side-actions button,.live-more-details .ride-side-actions a{min-height:40px;font-size:11.5px}
}

@media(max-width:520px){
  .live-summary-copy p{max-width:250px}.live-map-wrap{height:clamp(300px,39dvh,360px)}
  .map-overlay{left:8px;right:8px;top:8px;gap:5px}.map-metric{padding:7px 8px;border-radius:11px}.map-metric small{font-size:8px}.map-metric strong{font-size:13px}
}


/* Ask4Ride v36.10 — customer Reports & Complaints case tracker */
.case-center-dialog{width:min(760px,calc(100% - 26px));max-width:none}
.case-center-modal{width:100%;max-height:min(90dvh,900px);padding:0;overflow:hidden;display:flex;flex-direction:column;background:#fbfaf9;border:1px solid rgba(80,62,48,.10)}
.case-center-modal>.sheet-close{top:18px;right:18px;background:#f3f0ed;border:1px solid #e8e2dc}
.case-center-head{padding:22px 22px 0;background:#fff;border-bottom:1px solid #eee8e3;flex:0 0 auto}
.case-center-head .sheet-title{margin-bottom:14px;padding-right:52px}
.case-center-head .sheet-title h2{font-size:28px}
.case-center-head .sheet-title p{max-width:610px;line-height:1.45}
.case-center-actions{display:flex;gap:9px;align-items:center;margin:0 0 14px}
.case-center-actions button{min-height:44px;padding:0 16px}
.case-refresh-button{display:inline-flex;align-items:center;gap:7px}
.case-refresh-button span{font-size:18px;line-height:1}
.case-center-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:13px}
.case-summary-chip{border:1px solid #ebe5df;background:#faf9f8;border-radius:13px;padding:10px 12px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.case-summary-chip span{font-size:11px;font-weight:850;color:#756e68;text-transform:uppercase;letter-spacing:.045em}
.case-summary-chip strong{font-size:18px;line-height:1;color:#211e1b}
.case-summary-chip.active{background:#fff7f0;border-color:#ffd9c4}
.case-summary-chip.active strong{color:#d64d09}
.case-summary-chip.closed{background:#f5f8f6;border-color:#dfe9e2}
.case-summary-chip.closed strong{color:#2f6944}
.case-filter-wrap{margin:0 -22px;padding:0 22px 12px;overflow:hidden}
.case-center-filters{display:flex;gap:7px;overflow-x:auto;padding:1px 0 2px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.case-center-filters::-webkit-scrollbar{display:none}
.case-center-filters button{flex:0 0 auto;border:1px solid #e6dfd9;background:#fff;color:#554e49;border-radius:999px;min-height:35px;padding:0 11px;font-size:11.5px;font-weight:850;display:inline-flex;align-items:center;gap:6px}
.case-center-filters button span{min-width:19px;height:19px;border-radius:999px;background:#f2efec;display:grid;place-items:center;font-size:9.5px;color:#766e68;padding:0 4px}
.case-center-filters button.is-active{background:#201d1a;border-color:#201d1a;color:#fff}
.case-center-filters button.is-active span{background:rgba(255,255,255,.15);color:#fff}
.case-center-list{padding:15px 22px 22px;display:grid;gap:12px;overflow:auto;overscroll-behavior:contain;min-height:180px}
.case-track-card{border:1px solid #e7e1dc;border-radius:18px;background:#fff;padding:16px;box-shadow:0 5px 18px rgba(35,26,20,.035)}
.case-track-card.is-active{border-color:#f2cdb8;box-shadow:0 7px 24px rgba(244,93,5,.06)}
.case-card-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.case-type-badge,.case-status-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;font-weight:900;white-space:nowrap}
.case-type-badge{padding:6px 9px;font-size:10px;letter-spacing:.04em;text-transform:uppercase;background:#fff4ea;color:#a8430a}
.case-type-badge.safety{background:#fff0ef;color:#ae2721}
.case-type-badge span{font-size:9px}
.case-status-badge{padding:6px 9px;font-size:10.5px;background:#f3f4f3;color:#5e625f}
.case-status-dot{width:7px;height:7px;border-radius:50%;background:#939893;box-shadow:0 0 0 3px rgba(147,152,147,.12)}
.case-status-badge.open,.case-status-badge.received{background:#fff2e9;color:#b3490d}.case-status-badge.open .case-status-dot,.case-status-badge.received .case-status-dot{background:#f45d05;box-shadow:0 0 0 3px rgba(244,93,5,.13)}
.case-status-badge.reviewing{background:#eef5ff;color:#285d9d}.case-status-badge.reviewing .case-status-dot{background:#4487d5;box-shadow:0 0 0 3px rgba(68,135,213,.13)}
.case-status-badge.responded{background:#eff8f2;color:#31704a}.case-status-badge.responded .case-status-dot{background:#3d915e;box-shadow:0 0 0 3px rgba(61,145,94,.13)}
.case-status-badge.closed{background:#f1f3f1;color:#5b625d}.case-status-badge.closed .case-status-dot{background:#7a817b;box-shadow:0 0 0 3px rgba(122,129,123,.12)}
.case-card-title-row h3{margin:0;font-size:18px;line-height:1.25;letter-spacing:-.02em;color:#201d1a}
.case-reference{margin:4px 0 0!important;font-size:11.5px!important;color:#827971!important;line-height:1.35!important}
.case-status-message{margin:12px 0;padding:11px 12px;border-radius:12px;background:#faf8f6;border:1px solid #eee8e3;display:grid;grid-template-columns:auto 1fr auto;gap:5px 10px;align-items:center}
.case-status-message strong{font-size:12px;color:#28231f}
.case-status-message span{font-size:11.5px;color:#655e58;line-height:1.4}
.case-status-message small{font-size:10.5px;color:#958c85;white-space:nowrap}
.case-track-card.is-active .case-status-message{background:#fff8f3;border-color:#ffe0cf}
.case-linked-ride{margin-top:10px;border:1px solid #ebe5df;background:#faf9f7;border-radius:14px;padding:11px 12px;display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center}
.case-ride-label{display:flex;align-items:center;gap:8px;padding-right:12px;border-right:1px solid #e9e2dc}
.case-ride-icon{width:30px;height:30px;border-radius:10px;background:#fff0e7;color:#dc530d;display:grid;place-items:center;font-weight:900}
.case-ride-label>span:last-child{display:grid;gap:1px}.case-ride-label small,.case-route small{font-size:8.5px;font-weight:900;letter-spacing:.055em;color:#958b83}.case-ride-label strong{font-size:11.5px;color:#39332e}
.case-route{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;min-width:0}.case-route span{display:grid;min-width:0}.case-route strong{font-size:12px;color:#2c2824;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.case-route i{font-style:normal;color:#c5bbb3;font-size:15px}
.case-response{margin-top:10px;padding:13px;border-radius:14px;background:#fff7f1;border:1px solid #ffdac5}
.case-response-label{display:flex;align-items:center;gap:7px;color:#b94a10}.case-response-label span{width:20px;height:20px;border-radius:50%;background:#ffeadf;display:grid;place-items:center;font-size:11px;font-weight:900}.case-response-label strong{font-size:11px;text-transform:uppercase;letter-spacing:.045em}
.case-response>p{margin:8px 0 0!important;font-size:13px!important;line-height:1.5!important;color:#312a25!important}
.case-action-taken{margin-top:10px;padding-top:9px;border-top:1px solid #f3cfbb;display:grid;gap:3px}.case-action-taken small{font-size:8.5px;font-weight:900;letter-spacing:.055em;color:#9b705a}.case-action-taken strong{font-size:12px;color:#4a3428}
.case-awaiting{margin-top:10px;padding:12px;border-radius:14px;background:#f7f8f7;border:1px solid #e6e9e6;display:flex;gap:10px;align-items:flex-start;color:#4f5751}
.case-awaiting-dot{width:9px;height:9px;border-radius:50%;background:#94a098;margin-top:4px;box-shadow:0 0 0 4px rgba(148,160,152,.12);flex:0 0 auto}.case-track-card.is-active .case-awaiting-dot{background:#f45d05;box-shadow:0 0 0 4px rgba(244,93,5,.12)}
.case-awaiting strong{font-size:12px}.case-awaiting p{margin:3px 0 0!important;font-size:11.5px!important;line-height:1.45!important;color:#6f766f!important}
.case-more{margin-top:11px;border-top:1px solid #eee9e5;padding-top:9px}.case-more summary{list-style:none;cursor:pointer;min-height:34px;display:flex;justify-content:space-between;align-items:center;gap:10px;color:#5f5751;font-size:11.5px;font-weight:850}.case-more summary::-webkit-details-marker{display:none}.case-more-chevron{transition:transform .18s ease;font-size:16px;color:#9d938b}.case-more[open] .case-more-chevron{transform:rotate(180deg)}
.case-more-body{padding-top:8px}.case-detail-block{padding:11px 12px;border-radius:12px;background:#f8f7f5}.case-detail-block small{font-size:8.5px;font-weight:900;letter-spacing:.06em;color:#8b8179}.case-detail-block p{margin:5px 0 0!important;font-size:12px!important;line-height:1.5!important;color:#413a35!important}
.case-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:9px 0 0}.case-detail-grid>div{padding:9px 10px;border:1px solid #eee8e3;border-radius:11px}.case-detail-grid dt{font-size:8.5px;text-transform:uppercase;letter-spacing:.05em;font-weight:900;color:#958b83}.case-detail-grid dd{margin:3px 0 0;font-size:11.5px;font-weight:800;color:#39332e;word-break:break-word}
.case-loading{min-height:150px;border:1px dashed #e3dcd6;border-radius:16px;display:flex;justify-content:center;align-items:center;gap:12px;color:#625a54}.case-loading>span{width:24px;height:24px;border:3px solid #eee7e1;border-top-color:#f45d05;border-radius:50%;animation:caseSpin .8s linear infinite}.case-loading>div{display:grid;gap:2px}.case-loading strong{font-size:13px}.case-loading small{font-size:11px;color:#8c837c}@keyframes caseSpin{to{transform:rotate(360deg)}}
.case-empty-state{min-height:190px;border:1px dashed #ddd6d0;border-radius:17px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px;color:#625a54}.case-empty-state.compact{min-height:140px}.case-empty-state.error{border-color:#efcbc3;background:#fff9f7}.case-empty-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#eef7f1;color:#39764f;font-weight:900;margin-bottom:10px}.case-empty-state h3{margin:0;font-size:15px;color:#302b27}.case-empty-state p{margin:6px 0 0!important;max-width:360px;font-size:11.5px!important;line-height:1.5!important;color:#817871!important}.case-empty-state button{margin-top:12px}

@media(max-width:600px){
  .case-center-dialog{width:100%;height:100dvh;max-height:100dvh;margin:0;padding:0}
  .case-center-modal{height:100dvh;max-height:100dvh;border-radius:0;padding:0;border:0}
  .case-center-modal>.sheet-close{position:fixed;top:calc(12px + env(safe-area-inset-top));right:12px;width:40px;height:40px;z-index:5}
  .case-center-head{padding:calc(15px + env(safe-area-inset-top)) 14px 0}
  .case-center-head .sheet-title{padding-right:48px;margin-bottom:11px}
  .case-center-head .sheet-title h2{font-size:24px}
  .case-center-head .sheet-title p{font-size:12px;margin-top:6px;line-height:1.4}
  .case-center-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin-bottom:10px}
  .case-center-actions button{min-height:42px;padding:0 13px}
  .case-refresh-button span{font-size:17px}
  .case-center-summary{gap:6px;margin-bottom:10px}
  .case-summary-chip{padding:8px 9px;border-radius:11px;display:grid;gap:4px;justify-items:start}
  .case-summary-chip span{font-size:8.5px}.case-summary-chip strong{font-size:17px}
  .case-filter-wrap{margin:0 -14px;padding:0 14px 10px}
  .case-center-filters{gap:6px}
  .case-center-filters button{min-height:33px;font-size:10.5px;padding:0 10px}
  .case-center-list{padding:11px 12px calc(18px + env(safe-area-inset-bottom));gap:10px;flex:1;min-height:0}
  .case-track-card{padding:13px;border-radius:16px}
  .case-card-top{margin-bottom:8px}
  .case-type-badge,.case-status-badge{font-size:9.5px;padding:5px 8px}
  .case-card-title-row h3{font-size:16px}.case-reference{font-size:10.5px!important}
  .case-status-message{grid-template-columns:1fr auto;padding:10px;margin:10px 0}.case-status-message span{grid-column:1/-1;font-size:11px}.case-status-message small{grid-row:1;grid-column:2;font-size:9.5px}
  .case-linked-ride{grid-template-columns:1fr;padding:10px;gap:8px}.case-ride-label{border-right:0;border-bottom:1px solid #e9e2dc;padding:0 0 8px}.case-route strong{font-size:11.5px}
  .case-response{padding:11px}.case-response>p{font-size:12px!important}.case-awaiting{padding:10px}
  .case-detail-grid{grid-template-columns:1fr 1fr}
}

@media(max-width:380px){
  .case-center-actions{grid-template-columns:1fr 44px}.case-refresh-button{font-size:0;justify-content:center;padding:0}.case-refresh-button span{font-size:20px}
  .case-card-top{align-items:flex-start;flex-wrap:wrap}.case-detail-grid{grid-template-columns:1fr}
}

/* v36.12 — fare-regime disclosure before quote acceptance */
.quote-fare-notice{grid-column:1/-1;display:grid;gap:2px;padding:9px 11px;border-radius:11px;font-size:11px;line-height:1.4}
.quote-fare-notice strong{font-size:11px}.quote-fare-notice span{color:#625a55}
.quote-fare-notice.private-hire{background:#f3faf5;border:1px solid #c5e3ce}.quote-fare-notice.private-hire strong{color:#166b39}
.quote-fare-notice.regulated{background:#fff7f1;border:1px solid #f2c8ad}.quote-fare-notice.regulated strong{color:#a7460d}
@media(max-width:640px){.quote-fare-notice{font-size:10px;padding:8px 9px}.quote-fare-notice strong{font-size:10px}}
