@import url("/css/design-tokens.css?v=261016.b113");
@import url("/css/shared-controls.css?v=261016.b114");
/* B112: one palette for all workspaces. Platinum is structural; controls use slate. */
/* Bridge legacy admin/report variables without changing layout or business rules. */
html[data-booking-theme] body:is(.light,.admin-trip-page,.insights-page,.staff-signin,.calendar-page),html[data-booking-theme] body:has(.admin-dashboard) {
 --admin-bg:var(--ui-page);--admin-surface:var(--ui-card);--admin-surface-2:var(--ui-soft);--admin-text:var(--ui-text);--admin-muted:var(--ui-muted);--admin-line:var(--ui-line);
 --admin-accent:var(--ui-accent);--admin-accent-strong:var(--ui-accent);--admin-accent-text:var(--ui-on-accent);--admin-accent-hover:var(--ui-accent);
 --admin-control-bg:var(--ui-card);--admin-control-text:var(--ui-text);--admin-title-bg:var(--ui-soft);--admin-title-text:var(--ui-text);
 --admin-danger:var(--ui-error);--admin-success:var(--ui-success);--admin-info:var(--ui-info);
 --report-bg:var(--ui-page);--report-card:var(--ui-card);--report-text:var(--ui-text);--report-muted:var(--ui-muted);--report-line:var(--ui-line);--report-accent:var(--ui-accent);--report-fill:var(--ui-accent);--report-fill-text:var(--ui-on-accent);
 --insights-soft:var(--ui-soft);--insights-hover:var(--ui-soft);--insights-focus:var(--ui-focus);
 background:var(--ui-page)!important;color:var(--ui-text)!important;
}
html[data-booking-theme] body:is(.customer-portal-page,.driver-portal-page) {background:var(--ui-page);color:var(--ui-text)}
/* Text stays readable on cards; links are underlined rather than colour alone. */
html[data-booking-theme] :is(.customer-view,.driver-main,.public-rate-widget) :is(h1,h2,h3,h4,label,legend,dt,dd,strong,p){color:var(--ui-text)}
html[data-booking-theme] :is(.customer-view,.driver-main,.public-rate-widget) :is(small,.driver-muted,.driver-eyebrow,.driver-range,.profile-help-text,.customer-eyebrow){color:var(--ui-muted)}
html[data-booking-theme] :is(.customer-view,.driver-main) a:not([class]){color:var(--ui-text);text-decoration:underline;text-underline-offset:3px}
html[data-booking-theme] :is(.customer-portal-page,#rate-check,.driver-portal-page,.admin-trip-page,.staff-signin,.admin-dashboard) :is(input:not([type=button]):not([type=submit]):not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea) {
 background:var(--ui-card)!important;color:var(--ui-text)!important;border:1px solid var(--ui-control)!important;color-scheme:light;
}
html[data-booking-theme="dark"] :is(.customer-portal-page,#rate-check,.driver-portal-page,.admin-trip-page,.staff-signin,.admin-dashboard) :is(input,select,textarea){color-scheme:dark}
html[data-booking-theme] :is(.customer-portal-page,#rate-check,.driver-portal-page,.admin-trip-page,.staff-signin,.admin-dashboard) ::placeholder{color:var(--ui-muted);opacity:1}
html[data-booking-theme] :is(.customer-portal-page,#rate-check,.driver-portal-page,.admin-trip-page,.staff-signin,.admin-dashboard) :is(input[type=checkbox],input[type=radio]){accent-color:var(--ui-accent)}
html[data-booking-theme] :is(.customer-portal-page,#rate-check,.driver-portal-page,.admin-trip-page,.staff-signin,.admin-dashboard) :focus-visible{outline:3px solid var(--ui-focus)!important;outline-offset:3px}
html[data-booking-theme] :is(.portal-workspace,.app-host,.customer-action-card,.profile-settings-card,.customer-confirmation-card,.account-confirmation-card,.trip-card,.trip-card-header,.booking-panel,.booking-stage,.booking-review-card,.quote-panel,.quote-vehicle-card,.booking-vehicle-card,.driver-card,.driver-empty,.driver-stat-grid>div,.partner-settings,.pay-card,.market-card,.market-panel,.restriction-card,.people-card,.operations-card){background:var(--ui-card)!important;color:var(--ui-text);border-color:var(--ui-line)}
html[data-booking-theme] .driver-main.app-host{background:transparent!important}
html[data-booking-theme] :is(.driver-message,.driver-instructions,.partner-terms,.pay-feedback,.driver-countdown,.guest-checkout-assurance,.customer-security-note span,.customer-alert,.profile-legacy-payment){background:var(--ui-soft);color:var(--ui-text);border-color:var(--ui-control)}
html[data-booking-theme] :is(.driver-message,.driver-instructions,.partner-terms,.pay-feedback) :is(p,strong,small){color:inherit}
html[data-booking-theme] :is(.driver-live-bar){background:var(--ui-success-bg);color:var(--ui-success);border-color:var(--ui-success)}
html[data-booking-theme] :is(.driver-live-bar a,.driver-live-bar button){color:var(--ui-text);background:var(--ui-card);border-color:var(--ui-control)}
html[data-booking-theme] :is(.driver-messages-dialog,.driver-activity-drawer){background:var(--ui-card);color:var(--ui-text)}
html[data-booking-theme] :is(.portal-header,.driver-header,.trip-page-topbar,.admin-global-nav,.admin-topbar){background:var(--ui-header)!important;color:var(--ui-header-text)!important}
html[data-booking-theme] :is(.portal-header,.driver-header,.trip-page-topbar,.admin-global-nav,.admin-topbar) :is(a,strong,span,small){color:var(--ui-header-text)}
html[data-booking-theme] .admin-global-links{background:var(--ui-card);border-color:var(--ui-control)}
html[data-booking-theme] .admin-global-links a{color:var(--ui-text)!important}
html[data-booking-theme] .admin-global-links a:is(:hover,[aria-current=page]){background:var(--ui-soft)!important;color:var(--ui-text)!important}
html[data-booking-theme] .admin-global-group:is([open],[data-current=true])>summary{background:#59616D}
html[data-booking-theme] .admin-global-nav :is(button,.admin-global-tools>a){background:var(--ui-header)!important;color:#FFFFFF!important;border-color:#B7BEC7!important}
html[data-booking-theme] :is(.driver-nav a,.driver-nav button,.driver-tabs a,.booking-change-trip,.booking-back-button,.customer-secondary-action,.profile-secondary-button,.profile-text-button,.driver-secondary,.people-secondary,.pay-secondary,.booking-change-vehicle,.booking-secondary-action,.booking-text-button,.booking-vehicle-details,.customer-guest-action){background:var(--ui-card)!important;color:var(--ui-text)!important;border:1px solid var(--ui-control)!important}
html[data-booking-theme] :is(.driver-primary,.people-primary,.pay-primary,.customer-primary-action,.booking-submit-button,.booking-primary-button,.booking-primary-action,.quote-primary-button,.rate-search-button,.booking-select-vehicle,.customer-action-card-primary,.driver-nav a[aria-current=page],.driver-tabs a[aria-current=page],.market-rate-tabs button[aria-pressed=true]){background:var(--ui-accent)!important;color:var(--ui-on-accent)!important;border-color:var(--ui-accent)!important}
html[data-booking-theme] :is(.customer-primary-action,.booking-submit-button,.customer-action-card-primary) :is(span,small,strong){color:var(--ui-on-accent)!important}
html[data-booking-theme] :is(.booking-estimated-total){background:var(--ui-header);color:#FFFFFF}
html[data-booking-theme] .booking-estimated-total :is(span,strong,small){color:#FFFFFF!important}
html[data-booking-theme] :is(.driver-decline,.people-danger,.cancel-trip){background:var(--ui-card)!important;color:var(--ui-error)!important;border-color:var(--ui-error)!important}
html[data-booking-theme] :is(.trip-status-upcoming,.status-cnf,.state-cnf,.trip-state.state-cnf){background:var(--ui-success-bg);color:var(--ui-success)!important}
html[data-booking-theme] :is(.status-pnd,.state-pnd,.trip-state.state-pnd){background:var(--ui-info-bg);color:var(--ui-info)!important}
html[data-booking-theme] :is(.portal-footer,.driver-footer,.driver-footer a,.driver-card-top,.driver-route dt,.driver-stat-grid span,.driver-earning-details dt,.market-fields small,.market-panel p){color:var(--ui-muted)}
/* Appearance control fits the header without adding a second banner. */
.driver-header .booking-appearance,.trip-page-topbar .booking-appearance,.admin-global-tools .booking-appearance{padding:0;border:0;margin-left:auto;gap:8px;background:transparent;color:#FFFFFF;font-size:13px}
.driver-header .booking-appearance select,.trip-page-topbar .booking-appearance select,.admin-global-tools .booking-appearance select{min-width:118px;min-height:40px;font-size:13px}
body>.booking-appearance{border-radius:0;justify-content:flex-end}
/* Full-width review actions; all options visible and keyboard-operable. */
.booking-review-actions{grid-column:1/-1;background:var(--ui-card);border:2px solid var(--ui-control);border-radius:16px;padding:clamp(18px,3vw,30px)}
.booking-review-actions h3{margin:0 0 8px;font-size:1.4rem;color:var(--ui-text)}
.booking-required-note{margin:0 0 20px;color:var(--ui-muted);font-size:1rem;line-height:1.5}
.booking-choice-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.booking-choice-group{min-width:0;margin:0;padding:0;border:0;color:var(--ui-text)}
.booking-choice-group legend{display:block;margin:0 0 10px;padding:0;font-size:1.1rem;font-weight:750;color:var(--ui-text)}
.booking-required{display:inline-block;margin-left:6px;font-size:.8rem;font-weight:700;color:var(--ui-muted)}
.booking-choice-hint{margin:0 0 14px;line-height:1.55;color:var(--ui-muted);font-size:.95rem}
label.booking-choice{display:flex!important;grid-template-columns:none;align-items:flex-start;gap:12px;margin:0 0 10px!important;padding:15px;border:1px solid var(--ui-control);border-radius:10px;background:var(--ui-card);color:var(--ui-text);cursor:pointer}
.booking-choice input[type=radio]{flex:0 0 22px;width:22px;height:22px;min-height:22px;margin:2px 0 0;padding:0}
.booking-choice>span{display:block;min-width:0;font-size:1rem;font-weight:700;line-height:1.5}
.booking-choice small{display:block;margin-top:4px;font-size:.9rem;line-height:1.5;font-weight:400;color:var(--ui-muted)}
.booking-choice:has(input:checked){border:2px solid var(--ui-accent);padding:14px;background:var(--ui-soft)}
.booking-choice:has(input:focus-visible){outline:3px solid var(--ui-focus);outline-offset:3px}
.booking-choice-group:has([aria-invalid=true]){border-left:4px solid var(--ui-error);padding-left:12px}
.booking-review-actions>.booking-checkout-field{display:block;margin:22px 0}
.booking-review-actions>.booking-checkout-field>span{display:block;font-size:1rem;font-weight:700;margin-bottom:8px;color:var(--ui-text)}
.booking-review-actions textarea{width:100%;box-sizing:border-box;min-height:90px;padding:12px;border-radius:8px;font:inherit}
.booking-review-actions .booking-submit-button{min-height:56px;width:100%;max-width:440px;margin:20px 0 12px}
.booking-review-actions .booking-submit-button>span{font-size:1.05rem}
.booking-review-actions .booking-submit-button>small{font-size:.85rem}
.booking-review-actions .booking-back-button{min-height:44px;font-size:.95rem}
.booking-review-actions .booking-security-mark :is(strong,small){font-size:.9rem;color:var(--ui-muted)}
html[data-booking-theme] [aria-invalid=true],html[data-booking-theme] .booking-input-invalid{border-color:var(--ui-error)!important;outline-color:var(--ui-error)!important}
html[data-booking-theme] :is(.booking-field-error,.booking-error-summary){color:var(--ui-error)!important}
html[data-booking-theme] .booking-error-summary{background:var(--ui-error-bg);border-color:var(--ui-error)}
@media(max-width:760px){.booking-choice-columns{grid-template-columns:1fr}.booking-review-actions{padding:18px}.driver-header{flex-wrap:wrap}.driver-header .booking-appearance{flex-basis:100%;justify-content:flex-end}.admin-global-tools .booking-appearance>span{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}.booking-review-actions .booking-submit-button{max-width:none}}
@media print{.booking-appearance{display:none!important}}

html[data-booking-theme] :is(.operations-page,.operations-heading h1,.operations-panel,.pay-card,.people-form,.booking-route-summary){color:var(--ui-text)}
html[data-booking-theme] :is(.operations-links a,.operations-panel,.booking-route-summary,.booking-trip-note,.booking-vehicle-summary){background:var(--ui-card);color:var(--ui-text);border-color:var(--ui-line)}
html[data-booking-theme] :is(.operations-links span,.operations-panel p,.operations-switch small,.operations-mode-list span,.operations-policy-form small,.pay-card small,.pay-note){color:var(--ui-muted)}
html[data-booking-theme] .operations-actions button{background:var(--ui-accent);color:var(--ui-on-accent);border-color:var(--ui-accent)}
html[data-booking-theme] .booking-progress-active{background:var(--ui-accent);color:var(--ui-on-accent)}
html[data-booking-theme] .booking-progress-active b{color:var(--ui-on-accent)}
html[data-booking-theme] .portal-nav button{color:var(--ui-text);background:var(--ui-card);border-color:var(--ui-control)}
html[data-booking-theme] :is(.profile-summary-card,.customer-profile-summary,.booking-review-meta,.booking-trip-meta,.booking-route-leg,.booking-location,.booking-summary-item){background:var(--ui-soft);color:var(--ui-text)}
html[data-booking-theme] :is(.driver-form,.partner-form,.partner-review-grid) input[type=radio]{min-height:22px;width:22px;height:22px;padding:0}
html[data-booking-theme] .partner-review-grid .booking-choice-group{margin-top:22px}

html[data-booking-theme] :is(.booking-field>span,.quote-field>span,.customer-field>label,.booking-field>label,.booking-stop-heading,.booking-route-metrics,.booking-vehicle-summary,.profile-settings-heading p,.customer-profile-summary p,.booking-review-card-heading p){color:var(--ui-text)}
html[data-booking-theme] :is(.trip-page-topbar .trip-back,.driver-header .driver-support,.portal-header .portal-support){background:transparent;color:#FFFFFF;border-color:#B7BEC7}
html[data-booking-theme] :is(.booking-primary-action,.booking-primary-action span,.rate-search-button,.rate-search-button span){background:var(--ui-accent)!important;color:var(--ui-on-accent)!important}
html[data-booking-theme] :is(.booking-review-card-heading,.booking-section-heading){border-color:var(--ui-line)}
html[data-booking-theme] [hidden]:not([hidden="until-found"]){display:none!important}
html[data-booking-theme] button:disabled,html[data-booking-theme] input[type=button]:disabled{opacity:.65;cursor:not-allowed}

html[data-booking-theme] :is(.rate-submit,.public-rate-widget button[type=submit],.portal-nav button.is-current){background:var(--ui-accent)!important;color:var(--ui-on-accent)!important;border-color:var(--ui-accent)!important}
html[data-booking-theme] :is(.rate-submit,.public-rate-widget button[type=submit]) span{color:var(--ui-on-accent)!important}
html[data-booking-theme] .trip-status[data-trip-state=ORD]{background:var(--ui-info-bg);color:var(--ui-info)!important}
html[data-booking-theme] .trip-status[data-trip-state=CFM]{background:var(--ui-success-bg);color:var(--ui-success)!important}
html[data-booking-theme] .trip-status-cancelled{background:var(--ui-error-bg);color:var(--ui-error)!important}
html[data-booking-theme] .operations-eyebrow{color:var(--ui-muted)}
/* Passenger greeting signs remain a readable white sign in either appearance. */
html[data-booking-theme] #driver-greeting-sign,html[data-booking-theme] #driver-greeting-sign :is(p,h1){background:#FFFFFF;color:#202226}

html[data-booking-theme] .calendar-page :is(.title,td.btm,table ._t td){color:var(--ui-text)}
html[data-booking-theme] .calendar-page td.btm a{color:var(--ui-text);text-decoration:underline}
html[data-booking-theme] .calendar-page>.booking-appearance>span{all:unset;color:var(--ui-text);font:600 .875rem/1.5 system-ui,sans-serif}

/* Existing accent controls use the shared foreground/background pair. */
html[data-booking-theme] .app-host input.customer-primary-action[type="button"],html[data-booking-theme] .app-host button.customer-primary-action,html[data-booking-theme] .app-host .customer-inline-field input[type="button"]{color:var(--ui-on-accent)!important}
html[data-booking-theme] .account-confirmation-card .customer-primary-action{color:var(--ui-on-accent)!important}
html[data-booking-theme] .customer-action-card-primary .customer-action-icon{color:var(--ui-on-accent)!important}
html[data-booking-theme] .customer-account-access-icon{color:var(--ui-on-accent)!important}
html[data-booking-theme] .trip-route-dot{color:var(--ui-on-accent)!important}
html[data-booking-theme] .trip-action{color:var(--ui-on-accent)!important}
html[data-booking-theme] .booking-progress-active b,html[data-booking-theme] .booking-progress-complete b{color:var(--ui-on-accent)!important}
html[data-booking-theme] .booking-change-trip:hover,html[data-booking-theme] .booking-change-trip:focus-visible,html[data-booking-theme] .booking-back-button:hover,html[data-booking-theme] .booking-back-button:focus-visible{color:var(--ui-on-accent)!important}
html[data-booking-theme] .booking-workflow .frm input[type="button"]#B1,html[data-booking-theme] .booking-workflow .frm input[type="button"]#B2,html[data-booking-theme] .booking-workflow .frm a.btn{color:var(--ui-on-accent)!important}
html[data-booking-theme] .trip-tab-active strong{color:var(--ui-on-accent)!important}
html[data-booking-theme] .trip-range-button.is-active,html[data-booking-theme] .trip-range-button:hover{color:var(--ui-on-accent)!important}
html[data-booking-theme] .booking-primary-action{color:var(--ui-on-accent)!important}
html[data-booking-theme] .booking-submit-button{color:var(--ui-on-accent)!important}
html[data-booking-theme] .portal-nav button:hover,html[data-booking-theme] .portal-nav button:focus-visible,html[data-booking-theme] .portal-nav button.is-current{color:var(--ui-on-accent)!important}
html[data-booking-theme] .quote-account-bar .customer-secondary-action{color:var(--ui-on-accent)!important}
html[data-booking-theme] .customer-account-access{background:var(--ui-soft);color:var(--ui-text);border-color:var(--ui-control);box-shadow:none}
html[data-booking-theme] .customer-account-access :is(strong,.customer-eyebrow,.customer-account-access-message){color:var(--ui-text)}
html[data-booking-theme] :is(.customer-account-access-icon,.customer-action-icon){background:var(--ui-accent);color:var(--ui-on-accent)}
html[data-booking-theme] .customer-avatar{background:#D8DCE1;color:#202226;border-color:#B7BEC7}
html[data-booking-theme] :is(.trip-card-footer,.booking-review-note,.booking-return-summary,.booking-pending-notice,.booking-payment-reminder,.booking-next-card,.booking-for-fieldset,.booking-for-toggle,.booking-for-option,.booking-decision-card){background:var(--ui-soft);color:var(--ui-text);border-color:var(--ui-line)}
html[data-booking-theme] :is(.booking-next-card-primary,.trip-action,.customer-inline-field input[type=button]){background:var(--ui-accent)!important;color:var(--ui-on-accent)!important}
html[data-booking-theme] .booking-next-card-primary :is(strong,small,span){color:var(--ui-on-accent)!important}
html[data-booking-theme] :is(.trip-card-meta strong,.trip-date-row,.trip-guidance,.booking-review-note p,.booking-for-option small,.booking-for-option strong){color:var(--ui-text)}
html[data-booking-theme] :is(.booking-policy-warning,.booking-decision-summary){background:var(--ui-soft)!important;color:var(--ui-text)!important;border-color:var(--ui-control)!important}
html[data-booking-theme] :is(.booking-danger-action,.trip-action-cancel){background:var(--ui-card)!important;color:var(--ui-error)!important;border-color:var(--ui-error)!important}
/* Older dark customer rules declared portal variables on body; bridge them here too. */
:root[data-booking-theme] body.customer-portal-page,:root[data-booking-theme] body.driver-portal-page,:root[data-booking-theme] #rate-check{
 --portal-ink:var(--ui-text);--portal-ink-soft:var(--ui-text);--portal-paper:var(--ui-page);--portal-card:var(--ui-card);--portal-muted:var(--ui-muted);--portal-line:var(--ui-line);--portal-gold:var(--ui-accent);--portal-gold-dark:var(--ui-accent);--portal-danger:var(--ui-error);--portal-success:var(--ui-success)
}
:root[data-booking-theme] body.customer-portal-page,:root[data-booking-theme] body.driver-portal-page{background:var(--ui-page)!important;color:var(--ui-text)}
html[data-booking-theme] :is(.admin-trip-page,.staff-signin,.admin-dashboard) :is(input[type=submit],input[type=button]),html[data-booking-theme] body.light .frm td a.btn:hover{background:var(--ui-accent)!important;color:var(--ui-on-accent)!important}
:root[data-booking-theme] body.partner-portal-page .booking-field>span,:root[data-booking-theme] body.partner-portal-page .admin-booking-flow{color:var(--ui-text)}
