/* Shared passenger visibility fixes: original colours with accessible text tones. */
body[data-mode] { color:#1e293b }
body[data-mode] button,body[data-mode] a { -webkit-tap-highlight-color:transparent }
body[data-mode] button:focus-visible,body[data-mode] a:focus-visible,body[data-mode] summary:focus-visible {outline:3px solid #047857;outline-offset:3px}
body[data-mode] :is(.bg-white,.bg-slate-50,.bg-slate-100) :is(.text-slate-400,.text-slate-500) {color:#475569}
body[data-mode] :is(.bg-sabi-navy,.bg-brand-dark,.bg-slate-900,nav) :is(.text-slate-400,.text-slate-500) {color:#cbd5e1}
body[data-mode] :is(.text-sabi-emerald,.text-emerald-600) {color:#047857}
body[data-mode] .text-amber-600 {color:#92400e}
body[data-mode] button:is(.bg-sabi-emerald,.bg-sabi-green) {background:#047857;color:#fff}
body[data-mode] button:is(.bg-sabi-emerald,.bg-sabi-green):hover {background:#065f46;color:#fff}
body[data-mode] .travel-date-tabs {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;max-width:38rem}
body[data-mode] .travel-date-tabs button {min-width:0;min-height:54px;height:auto;white-space:normal;line-height:1.45;font-size:13px;font-weight:500;letter-spacing:normal;padding:10px 12px}
body[data-mode] .travel-date-tabs button span {display:block;min-width:0;white-space:normal;overflow-wrap:normal}
body[data-mode] .travel-date-tabs i {flex:none}
body[data-mode] .service-filter-group {display:flex;flex-wrap:wrap;align-items:center;gap:10px;min-width:0}
body[data-mode] .service-filter {min-height:44px;max-width:100%;width:auto;white-space:normal;line-height:1.45;font-size:13px;font-weight:500;padding:10px 14px;display:inline-flex;gap:8px;align-items:center;justify-content:center}
body[data-mode] .service-filter >span:first-child:not(.filter-label) {flex:none}
body[data-mode] .filter-label {display:block;min-width:0;white-space:normal;overflow-wrap:normal}
body[data-mode] :is(.travel-date-tab,.service-filter)[aria-pressed=false] {color:#334155;background:#f1f5f9}
body[data-mode] :is(.travel-date-tab,.service-filter)[aria-pressed=false]:hover {color:#0f172a;background:#e2e8f0}
body[data-mode] :is(.travel-date-tab,.service-filter)[aria-pressed=true],
body[data-mode] :is(.travel-date-tab,.service-filter)[aria-pressed=true]:hover,
body[data-mode] :is(.travel-date-tab,.service-filter)[aria-pressed=true]:focus {color:#fff;background:#0f172a}
body[data-mode] .travel-date-tab[aria-pressed=true] i {color:#a7f3d0}
body[data-mode] .travel-date-tab[aria-pressed=false] i {color:#475569}
body[data-mode] .book-seat-action {width:auto;min-height:44px;padding:11px 18px;white-space:nowrap;flex:0 0 auto;font-size:14px;line-height:1.4}
body[data-mode] .passenger-ticket-modal {padding:12px}
body[data-mode] #ticket-paper {width:min(100%,30rem);max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain;color:#1e293b;font-weight:400}
body[data-mode] #ticket-paper :is(.font-black,.font-extrabold,.font-bold) {font-weight:500}
body[data-mode] #ticket-paper :is(h2,h3) {font-weight:600}
body[data-mode] #ticket-paper .text-xs {font-size:14px;line-height:1.5}
body[data-mode] #ticket-paper :is(.text-slate-400,.text-slate-500,.text-slate-600) {color:#475569}
body[data-mode] #ticket-paper [class~="text-[10px]"] {font-size:12px;line-height:1.45;font-weight:500}
body[data-mode] #ticket-paper [class~="text-[11px]"] {font-size:13px;line-height:1.5;font-weight:400}
body[data-mode="marketplace"] #ticket-paper .ticket-heading {background:linear-gradient(135deg,#065f46,#047857);color:#fff}
body[data-mode="fleet"] #ticket-paper .ticket-heading {background:linear-gradient(135deg,#1e40af,#1d4ed8);color:#fff}
body[data-mode] #ticket-paper .ticket-heading :is(p,span,h2,h3) {color:#fff}
body[data-mode] #ticket-paper .ticket-qr-row {display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}
body[data-mode] #live-ticket-qr {width:240px;height:240px;max-width:100%;aspect-ratio:1;flex:none;padding:0;background:#fff;border:1px solid #cbd5e1;border-radius:12px;overflow:hidden}
body[data-mode] #live-ticket-qr img {width:100%;height:100%;object-fit:contain;display:block}
body[data-mode] #ticket-paper button,body[data-mode] #ticket-paper a {min-height:44px}
body[data-mode] .ticket-journey-action {display:block;width:100%;padding:12px 16px;border:1px solid #94a3b8;border-radius:12px;background:#fff;color:#065f46;font-size:14px;font-weight:500}
body[data-mode] .ticket-action-dialog {position:fixed;inset:0;margin:auto;width:min(calc(100% - 24px),28rem);max-height:calc(100dvh - 24px);padding:24px;border:1px solid #cbd5e1;border-radius:20px;background:#fff;color:#1e293b;overflow:auto;font:400 14px/1.55 Inter,sans-serif}
body[data-mode] .ticket-action-dialog::backdrop {background:rgb(15 23 42/.65)}
body[data-mode] .ticket-action-dialog h2 {font-size:20px;font-weight:600;margin:0 70px 20px 0}
body[data-mode] .ticket-action-dialog p {margin:12px 0}
body[data-mode] .dialog-close {position:absolute;right:16px;top:14px;min-height:44px;padding:8px 12px;border-radius:10px;background:#f1f5f9;color:#334155;font-weight:500}
body[data-mode] .ticket-dialog-button {display:block;width:100%;min-height:44px;margin-top:12px;padding:12px 16px;background:#047857;color:#fff;border-radius:12px;font-weight:500;text-align:center}
body[data-mode] .ticket-action-dialog input {display:block;width:100%;margin-top:8px;padding:12px;border:1px solid #94a3b8;border-radius:10px;background:#f8fafc;color:#1e293b;font-size:16px}
@media(max-width:639px) {
 body[data-mode] nav >div {gap:8px;padding-left:12px;padding-right:12px}
 body[data-mode] nav a {min-width:0}
 body[data-mode] nav button {min-height:44px;flex:none}
 body[data-mode] .book-seat-action {width:auto!important;max-width:100%;padding:10px 16px;min-width:112px;min-height:44px}
 body[data-mode] .service-filter-group {display:grid;grid-template-columns:1fr;width:100%;gap:10px}
 body[data-mode] .service-filter {width:100%;justify-content:flex-start}
 body[data-mode] #ticket-paper >div {padding-left:20px;padding-right:20px}
 body[data-mode] #ticket-paper .ticket-heading {padding-top:24px;padding-bottom:24px}
}
@media(max-width:359px){
 body[data-mode] nav button {padding-left:8px;padding-right:8px;font-size:12px}
 body[data-mode] nav .gap-4 {gap:8px}
 body[data-mode] .travel-date-tabs button {padding:10px 8px;font-size:12px}
 body[data-mode] .book-seat-action {min-width:104px}
}
@media print {
 body[data-mode] #ticket-paper {max-height:none!important;height:auto!important;overflow:visible!important;width:100%!important;color:#111!important}
 body[data-mode] #ticket-paper .ticket-heading,body[data-mode] #ticket-paper .ticket-heading * {background:#fff!important;color:#111!important;border-color:#64748b!important}
 body[data-mode] #ticket-paper .ticket-qr-row {break-inside:avoid}
 body[data-mode] dialog {display:none!important}
}

body[data-mode] #booking-count-badge[hidden] {display:none!important}
body[data-mode] nav #nav-tab-search,body[data-mode] nav #nav-tab-bookings {min-height:44px}
body[data-mode] nav [id^="nav-tab-"][aria-pressed="true"],body[data-mode] nav [id^="nav-tab-"][aria-pressed="true"]:hover {background:#047857;color:#fff}
body[data-mode] nav [id^="nav-tab-"][aria-pressed="false"] {background:transparent;color:#cbd5e1;box-shadow:none}
body[data-mode] nav [id^="nav-tab-"][aria-pressed="false"]:hover {background:#1e293b;color:#fff}

body[data-mode] .reservation-countdown {position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;background:#fff1f2;color:#9f1239;border:1px solid #fda4af;border-radius:12px;font-size:14px;font-weight:500}
body[data-mode] #payment-timer {font-size:22px;font-weight:600;font-variant-numeric:tabular-nums;color:#9f1239}
body[data-mode] :is(#checkout-modal,#payment-modal,#ticket-modal,#success-modal)>div {max-height:calc(100dvh - 24px);overflow-y:auto;min-height:0;margin-block:auto;overscroll-behavior:contain}
@media(max-width:639px){body[data-mode],body[data-mode] :is(#checkout-modal,#payment-modal,#ticket-modal,#success-modal),body[data-mode] :is(#checkout-modal,#payment-modal,#ticket-modal,#success-modal) * {scrollbar-width:none;-ms-overflow-style:none}body[data-mode]::-webkit-scrollbar,body[data-mode] :is(#checkout-modal,#payment-modal,#ticket-modal,#success-modal)::-webkit-scrollbar,body[data-mode] :is(#checkout-modal,#payment-modal,#ticket-modal,#success-modal) *::-webkit-scrollbar {display:none;width:0;height:0}}

@media(max-width:639px){html:has(body[data-mode]){scrollbar-width:none}html:has(body[data-mode])::-webkit-scrollbar{display:none;width:0;height:0}}

body[data-mode] [hidden]{display:none!important}

/* Utility workflows are content inside the original passenger template shell. */
body[data-mode] #passenger-customer-content{width:min(100%,72rem);margin:0 auto;padding:24px 16px 48px;box-sizing:border-box}
body[data-mode] #passenger-customer-content :is(.market-header,.company-market-header,.customer-template-header,.company-market-footer){display:none!important}
body[data-mode] #passenger-customer-content :is(.market-shell,.company-storefront){min-height:0;background:transparent}
body[data-mode] #passenger-customer-content :is(main,.market-page,.company-market-main){width:100%;max-width:42rem;padding:0;margin:0 auto}
body[data-mode] #passenger-customer-content :is(.market-card,.card){margin-block:18px;padding:24px;background:white;border:1px solid #e2e8f0;border-radius:24px;box-shadow:0 8px 24px #0f172a07}
body[data-mode] #passenger-customer-content .market-brand{display:none}
body[data-mode] #passenger-customer-content .journey-page h1{font-size:28px}
body[data-mode] #passenger-customer-content .journey-actions{display:flex;flex-wrap:wrap;gap:10px;margin-block:16px}
body[data-mode] #passenger-customer-content :is(p,label,small,dt,dd){line-height:1.6}
body[data-mode] #passenger-customer-content :is(h2,h3){margin-block:18px 10px}
body[data-mode] #passenger-customer-content input[type=checkbox]{width:20px;min-height:20px;margin-right:8px;vertical-align:middle}
@media(max-width:639px){body[data-mode] #passenger-customer-content .journey-actions>*{width:100%}body[data-mode] #passenger-customer-content .market-card{padding:20px}body[data-mode] #passenger-customer-content,body[data-mode] #passenger-customer-content *{scrollbar-width:none}body[data-mode] #passenger-customer-content *::-webkit-scrollbar{display:none}}
body[data-mode] #passenger-customer-content .journey-checkbox{display:flex;align-items:flex-start;gap:8px;margin-block:16px}
body[data-mode] #passenger-customer-content .journey-checkbox input{flex:none;margin:3px 0 0}
body[data-mode] #passenger-customer-content .journey-card>button{display:block;width:100%;margin-block:12px}

@media(max-width:639px){body[data-mode] #future-date-banner{display:flex;flex-direction:column;align-items:stretch;text-align:left;gap:12px;width:100%;box-sizing:border-box}body[data-mode] #future-date-banner.hidden{display:none}body[data-mode] #future-date-banner>i{align-self:flex-start}body[data-mode] #future-date-banner>div{width:100%;min-width:0;flex:none;text-align:left}body[data-mode] #future-date-banner p{width:100%;text-align:left;white-space:normal;overflow-wrap:break-word}body[data-mode] #future-date-banner>button{align-self:flex-start;min-height:44px;max-width:100%}}
body[data-mode] #passenger-customer-content .journey-departure{display:flex;flex-direction:column;gap:6px;margin:16px 0;padding:16px;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:16px;color:#065f46}
body[data-mode] #passenger-customer-content .journey-departure span{font-size:13px;color:#065f46}
body[data-mode] #passenger-customer-content .journey-departure time{font-size:18px;font-weight:500;color:#064e3b}
body[data-mode] #passenger-customer-content .journey-departure small{font-size:13px;color:#475569}
@media(max-width:639px){
 body[data-mode] #future-date-banner{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px}
 body[data-mode] #future-date-banner>i{grid-column:1;grid-row:1;align-self:center}
 body[data-mode] #future-date-banner>button{grid-column:2;grid-row:1;justify-self:end;align-self:start}
 body[data-mode] #future-date-banner>div{grid-column:1/-1;grid-row:2;width:100%}
}

body[data-mode="fleet"] .fleet-header-brand{min-width:0;flex:1}
body[data-mode="fleet"] .fleet-header-brand>div:last-child{min-width:0}
body[data-mode="fleet"] .fleet-header-brand [data-company="name"]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body[data-mode="fleet"] .fleet-header-actions{flex-shrink:0}
body[data-mode="fleet"] #fleet-retrieve-booking{min-height:44px;min-width:44px;justify-content:center}
@media(max-width:639px){
body[data-mode="fleet"] .fleet-header-brand{gap:8px}
body[data-mode="fleet"] .fleet-header-brand .fleet-logo{width:36px;height:36px;flex-shrink:0}
body[data-mode="fleet"] .fleet-header-brand [data-company="name"]{max-width:20vw;font-size:14px}
body[data-mode="fleet"] .fleet-header-brand .uppercase{font-size:8px;letter-spacing:0}
body[data-mode="fleet"] .fleet-header-actions{gap:4px}
body[data-mode="fleet"] #nav-tab-bookings{padding:8px;gap:5px;white-space:nowrap}
body[data-mode="fleet"] #fleet-retrieve-booking{padding:8px}
}

body[data-mode="fleet"] #booking-count-badge{background:#fef3c7;color:#0f172a;padding:2px 6px;border-radius:999px;font-size:10px;font-weight:800}
