:root{--tj-yellow:#FED100;--tj-green:#009B3A;--tj-black:#080808;--tj-ink:#151515;--tj-soft:#f5f6f7;--tj-line:#e4e6e8;--tj-red:#b42318;--tj-blue:#175cd3}
*{box-sizing:border-box}.tjb-native-body{margin:0;background:#f4f5f6;color:var(--tj-ink);font-family:Inter,Arial,sans-serif}.tjb-shell{max-width:1240px;margin:0 auto;padding:18px}.tjb-top{display:flex;justify-content:space-between;align-items:center;background:#000;color:#fff;border-radius:18px;padding:14px 18px;margin-bottom:18px;box-shadow:0 12px 30px #0002}.tjb-brand{display:flex;align-items:center;gap:9px;color:#fff!important;text-decoration:none}.tjb-brand span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--tj-yellow);color:#000;font-weight:1000}.tjb-brand b{letter-spacing:.05em}.tjb-mode{font-size:12px;color:#ddd}.tjb-hero{display:flex;justify-content:space-between;gap:24px;align-items:center;background:linear-gradient(135deg,#0a0a0a,#242424);color:#fff;padding:28px;border-radius:22px;margin-bottom:16px}.tjb-hero h1{margin:4px 0 8px;font-size:clamp(28px,5vw,46px);line-height:1}.tjb-hero p{margin:0;color:#d8d8d8;max-width:720px}.tjb-kicker{color:var(--tj-yellow);font-weight:900;font-size:12px;letter-spacing:.13em}.tjb-hero-actions{display:flex;flex-wrap:wrap;gap:8px}.tjb-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.tjb-metrics article,.tjb-card{background:#fff;border:1px solid var(--tj-line);border-radius:18px;padding:18px;box-shadow:0 8px 24px #0000000c}.tjb-metrics b{display:block;font-size:25px;line-height:1.15}.tjb-metrics span{display:block;margin-top:6px;color:#667085;font-size:12px;font-weight:700}.tjb-grid{display:grid;gap:14px;margin:14px 0}.tjb-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.tjb-card h2{margin:0 0 14px;font-size:18px}.tjb-card label,.tjb-auth label{display:block;font-size:12px;font-weight:800;margin:10px 0;color:#344054}.tjb-card input,.tjb-card select,.tjb-card textarea,.tjb-auth input{display:block;width:100%;margin-top:6px;border:1px solid #cfd4dc;border-radius:10px;padding:11px 12px;background:#fff;color:#111;font:inherit}.tjb-check{display:flex!important;align-items:flex-start;gap:8px}.tjb-check input{width:auto;margin:2px 0 0}.tjb-btn,.tjb-mini{appearance:none;border:0;border-radius:10px;padding:11px 14px;background:var(--tj-green);color:#fff!important;font-weight:900;text-decoration:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.tjb-btn.secondary{background:#fff;color:#111!important}.tjb-btn.test{background:var(--tj-blue)}.tjb-btn.danger{background:var(--tj-red)}.tjb-mini{font-size:11px;padding:7px 9px;background:#000}.tjb-help{font-size:12px;color:#667085}.tjb-scroll{overflow:auto}.tjb-card table{width:100%;border-collapse:collapse;min-width:680px}.tjb-card th,.tjb-card td{text-align:left;padding:11px 9px;border-bottom:1px solid var(--tj-line);font-size:12px;vertical-align:top}.tjb-card th{color:#667085;text-transform:uppercase;letter-spacing:.04em;font-size:10px}.tjb-card small{display:block;color:#667085;margin-top:4px}.tjb-pill{display:inline-flex;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:900}.tjb-pill.test{background:#eff4ff;color:#1849a9}.tjb-pill.live{background:#ecfdf3;color:#027a48}.tjb-notice{border-radius:12px;padding:12px 14px;margin:0 0 14px;font-weight:700}.tjb-notice.ok{background:#ecfdf3;color:#027a48}.tjb-notice.bad{background:#fef3f2;color:#b42318}.tjb-auth{max-width:540px;margin:7vh auto;background:#fff;border:1px solid var(--tj-line);border-radius:22px;padding:28px;box-shadow:0 20px 60px #0002}.tjb-auth h1{font-size:32px;margin:6px 0}.tjb-auth .tjb-link{display:block;margin-top:14px;color:#111}.tjb-inline{display:inline}.tjb-card+.tjb-card{margin-top:14px}
@media(max-width:760px){.tjb-shell{padding:10px}.tjb-top{border-radius:14px}.tjb-hero{align-items:flex-start;flex-direction:column;padding:20px}.tjb-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.tjb-grid.two{grid-template-columns:1fr}.tjb-btn{width:100%}.tjb-hero-actions{width:100%}.tjb-hero-actions .tjb-btn{flex:1}.tjb-auth{margin:20px auto;padding:20px}}
@media print{.tjb-top,.print-hide,.tjb-btn,.tjb-notice,.tjb-operator-sidebar,.tjb-mobile-nav-toggle{display:none!important}.tjb-native-body{background:#fff}.tjb-shell,.tjb-shell-operator,.tjb-operator-app,.tjb-operator-main,.tjb-workspace{max-width:none!important;width:100%!important;margin:0!important;padding:0!important}.tjb-operator-app{display:block!important}.tjb-drawer{max-width:none!important;width:100%!important;margin:0!important;padding:0!important}.tjb-card{box-shadow:none;border:0;padding:0}.tjb-card table{min-width:0}.tjb-card th,.tjb-card td{font-size:10px;padding:6px}}

/* Customer booking / discovery */
.tjb-booking-shell{max-width:1320px}.tjb-travel-hero{position:relative;overflow:hidden;border-radius:28px;padding:44px 34px;background:radial-gradient(circle at 82% 15%,rgba(254,209,0,.34),transparent 28%),linear-gradient(135deg,#07130c 0%,#063d1d 45%,#0b0b0b 100%);color:#fff;box-shadow:0 22px 60px #0003}.tjb-travel-copy{max-width:720px}.tjb-travel-copy h1{font-size:clamp(38px,7vw,72px);line-height:.98;letter-spacing:-.04em;margin:8px 0 12px}.tjb-travel-copy p{font-size:17px;color:#e8eee9;max-width:620px}.tjb-search-box{margin-top:28px;padding:18px;background:#fff;color:#111;border-radius:20px;box-shadow:0 18px 50px #0005}.tjb-trip-toggle{display:flex;gap:10px;margin-bottom:12px}.tjb-trip-toggle label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:900;background:#f2f4f7;border-radius:999px;padding:7px 10px}.tjb-search-grid{display:grid;grid-template-columns:1.3fr 1.3fr 1fr .7fr;gap:10px}.tjb-search-box label{font-size:11px;font-weight:900;color:#475467}.tjb-search-box input{width:100%;margin-top:5px;border:1px solid #d0d5dd;border-radius:11px;padding:13px;font:inherit;color:#111;background:#fff}.tjb-search-submit{margin-top:12px;background:#000;color:var(--tj-yellow)!important;min-width:180px}.tjb-section-head{margin:34px 0 14px}.tjb-section-head h2,.tjb-results-head h2{font-size:clamp(25px,4vw,38px);margin:4px 0 6px}.tjb-section-head p,.tjb-results-head p{margin:0;color:#667085}.tjb-destination-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.tjb-destination{display:flex;align-items:center;gap:15px;background:#fff;border:1px solid var(--tj-line);border-radius:18px;padding:14px;color:#111!important;text-decoration:none;transition:.18s transform,.18s box-shadow}.tjb-destination:hover{transform:translateY(-2px);box-shadow:0 16px 35px #0001}.tjb-destination-art{display:grid;place-items:center;flex:0 0 82px;height:82px;border-radius:15px;background:linear-gradient(135deg,#FED100,#009B3A);font-size:35px;font-weight:1000;color:#000}.tjb-destination span{font-size:10px;color:#667085;font-weight:900;text-transform:uppercase}.tjb-destination h3{margin:4px 0;font-size:17px}.tjb-destination p{margin:0;color:#667085;font-size:12px}.tjb-confidence{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0}.tjb-confidence article{background:#111;color:#fff;border-radius:18px;padding:20px}.tjb-confidence b{display:grid;place-items:center;width:36px;height:36px;background:var(--tj-yellow);color:#000;border-radius:12px}.tjb-confidence h3{margin:12px 0 5px}.tjb-confidence p{margin:0;color:#ccc;font-size:13px}.tjb-results-head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin:28px 0 13px}.tjb-results-head h2 span{color:var(--tj-green)}.tjb-result-count{background:#111;color:#fff;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:900}.tjb-filter-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:#fff;border:1px solid var(--tj-line);border-radius:14px;margin-bottom:12px}.tjb-filter-bar>span{font-size:12px;font-weight:900}.tjb-filter-bar div{display:flex;flex-wrap:wrap;gap:6px}.tjb-filter-bar button{border:1px solid #d0d5dd;background:#fff;border-radius:999px;padding:6px 9px;font-weight:800;font-size:11px;cursor:pointer}.tjb-result-list{display:grid;gap:13px}.tjb-bus-card{display:grid;grid-template-columns:230px minmax(0,1fr) 190px;background:#fff;border:1px solid var(--tj-line);border-radius:20px;overflow:hidden;box-shadow:0 8px 25px #0000000c}.tjb-bus-card[hidden]{display:none}.tjb-bus-photo{position:relative;min-height:230px;background-color:#18251d;background-size:cover;background-position:center;background-image:linear-gradient(135deg,#1c3b27,#0d0d0d)}.tjb-compliance,.tjb-promo{position:absolute;left:10px;top:10px;border-radius:999px;padding:6px 8px;font-size:9px;font-weight:1000;box-shadow:0 5px 15px #0003}.tjb-compliance{background:#ecfdf3;color:#027a48}.tjb-promo{top:auto;bottom:10px;background:var(--tj-yellow);color:#000;max-width:calc(100% - 20px)}.tjb-bus-main{padding:18px}.tjb-bus-title{display:flex;justify-content:space-between;gap:12px}.tjb-operator{font-size:11px;color:#027a48;font-weight:900}.tjb-bus-title h3{font-size:21px;margin:2px 0}.tjb-type{align-self:start;background:#f2f4f7;border-radius:999px;padding:5px 7px;font-size:9px;font-weight:900}.tjb-times{display:grid;grid-template-columns:1fr 30px 1fr;align-items:center;margin:13px 0}.tjb-times div:last-child{text-align:right}.tjb-times b{display:block;font-size:18px}.tjb-times span{display:block;font-size:11px;color:#667085;margin-top:3px}.tjb-times i{text-align:center;color:#009B3A;font-style:normal;font-weight:1000}.tjb-feature-row{display:flex;flex-wrap:wrap;gap:5px}.tjb-feature-row span{background:#f7f8f9;border:1px solid #eaecf0;border-radius:8px;padding:5px 7px;font-size:9px;font-weight:800}.tjb-promo-copy{margin-top:10px;background:#fff8d6;border-left:3px solid var(--tj-yellow);padding:8px 9px;font-size:11px;font-weight:800}.tjb-card-note{font-size:11px;color:#667085}.tjb-multistop-detail{color:var(--tj-red)!important;font-weight:850}.tjb-card-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.tjb-card-meta span{font-size:10px;color:#475467}.tjb-bus-buy{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;padding:18px;border-left:1px solid var(--tj-line);background:#fcfcfd}.tjb-bus-buy>span,.tjb-bus-buy small{font-size:10px;color:#667085}.tjb-bus-buy strong{font-size:24px;margin:2px 0}.tjb-bus-buy em{font-size:10px;color:#027a48;font-style:normal;font-weight:900;margin:8px 0}.tjb-bus-buy .tjb-btn{width:100%;margin-top:10px}.tjb-policy-link{font-size:11px;font-weight:900;color:#111;margin-top:8px}.tjb-policy-panel{position:relative;background:#fff;border:2px solid var(--tj-yellow);border-radius:20px;padding:24px;margin:0 0 16px;box-shadow:0 18px 50px #0002}.tjb-policy-panel h2{margin:4px 0}.tjb-policy-panel>p{color:#667085}.tjb-policy-text{max-height:380px;overflow:auto;border-top:1px solid var(--tj-line);border-bottom:1px solid var(--tj-line);padding:15px 0}.tjb-policy-close{position:absolute;right:14px;top:12px;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#111;color:#fff!important;text-decoration:none;font-size:22px}.tjb-empty{background:#fff;border:1px dashed #bfc5ce;border-radius:18px;padding:28px;text-align:center;margin:14px 0}.tjb-empty h3{margin:0 0 6px}.tjb-empty p{margin:0;color:#667085}
@media(max-width:900px){.tjb-bus-card{grid-template-columns:180px minmax(0,1fr)}.tjb-bus-buy{grid-column:1/-1;border-left:0;border-top:1px solid var(--tj-line);align-items:stretch}.tjb-bus-buy strong{text-align:left}.tjb-search-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.tjb-travel-hero{padding:28px 16px;border-radius:20px}.tjb-search-box{padding:12px}.tjb-search-grid{grid-template-columns:1fr}.tjb-destination-grid,.tjb-confidence{grid-template-columns:1fr}.tjb-results-head{align-items:flex-start;flex-direction:column}.tjb-filter-bar{align-items:flex-start;flex-direction:column}.tjb-bus-card{grid-template-columns:1fr}.tjb-bus-photo{min-height:190px}.tjb-bus-main{padding:15px}.tjb-bus-buy{grid-column:auto}.tjb-times b{font-size:16px}}
.tjb-filter-bar button.active{background:#111;color:#FED100;border-color:#111}.tjb-choice{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--tj-line)}.tjb-choice:last-child{border-bottom:0}.tjb-choice b,.tjb-choice span{display:block}.tjb-choice span{margin-top:3px;color:#667085;font-size:11px}.tjb-choice strong{white-space:nowrap}.tjb-trip-promo{border-color:#FED100;background:#fffbea}.tjb-consent-preview{margin-top:15px!important;padding:12px;border-radius:12px;background:#f7f8f9}


/* Operator Center compact workspace v0.2.1 */
.tjb-operator-app{display:grid;grid-template-columns:248px minmax(0,1fr);gap:16px;align-items:start}.tjb-operator-sidebar{position:sticky;top:14px;max-height:calc(100vh - 28px);overflow:auto;background:#0b0d0c;color:#fff;border:1px solid #242824;border-radius:22px;padding:12px;box-shadow:0 14px 40px #0002}.tjb-side-identity{padding:10px 10px 14px;border-bottom:1px solid #262b27;margin-bottom:8px}.tjb-side-identity span{display:block;color:#FED100;font-size:9px;font-weight:1000;letter-spacing:.12em}.tjb-side-identity strong{display:block;margin-top:4px;font-size:14px;line-height:1.25}.tjb-side-nav{display:grid;gap:4px}.tjb-side-link{appearance:none;width:100%;display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:10px;border:0;background:transparent;color:#d6d8d7!important;text-decoration:none!important;border-radius:12px;padding:10px;text-align:left;font:inherit;font-size:12px;font-weight:850;cursor:pointer}.tjb-side-link:hover,.tjb-side-link.active{background:#FED100;color:#050505!important}.tjb-side-link.external{border-top:1px solid #242824;margin-top:3px}.tjb-side-link b{font-size:10px}.tjb-nav-icon{width:19px;height:19px;display:block;flex:none}.tjb-operator-main{min-width:0}.tjb-workspace{min-width:0}.tjb-drawer[hidden]{display:none!important}.tjb-drawer{background:#f7f8f7;border:1px solid #e5e8e6;border-radius:24px;padding:18px;min-height:calc(100vh - 110px);animation:tjbDrawerIn .18s ease}.tjb-drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:0 0 14px;padding:4px 2px 14px;border-bottom:1px solid #e0e4e1}.tjb-drawer-head h1,.tjb-drawer-head h2{margin:3px 0 5px;font-size:clamp(25px,3vw,38px);letter-spacing:-.03em}.tjb-drawer-head p{margin:0;max-width:760px;color:#667085;font-size:13px}.tjb-mobile-nav-toggle{display:none;width:100%;margin:0 0 10px;border:1px solid #e1e5e2;border-radius:12px;background:#fff;padding:11px 13px;font-weight:900;text-align:left}.tjb-form-card{max-width:900px}.tjb-drawer>.tjb-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.tjb-quick-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}.tjb-btn.secondary-dark{background:#111;color:#FED100!important}.tjb-fleet-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px;margin:0 0 14px}.tjb-fleet-card{display:flex;gap:11px;align-items:flex-start;background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:13px}.tjb-fleet-icon{display:grid;place-items:center;flex:0 0 44px;height:44px;border-radius:13px;background:#111;color:#FED100}.tjb-fleet-icon .tjb-nav-icon{width:23px;height:23px}.tjb-fleet-card strong{display:block;font-size:14px}.tjb-fleet-card p{margin:3px 0;color:#475467;font-size:11px}.tjb-fleet-card small{font-size:10px;color:#667085}.tjb-status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;background:#98a2b3}.tjb-status-dot.on{background:#12b76a}.tjb-status-dot.off{background:#f04438}.tjb-field-note{display:block;margin-top:5px;color:#667085;font-size:10px;line-height:1.35}.tjb-mini-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:9px;margin:0 0 14px}.tjb-mini-grid article{background:#fff;border:1px solid #e5e7eb;border-radius:13px;padding:11px}.tjb-mini-grid strong,.tjb-mini-grid span{display:block}.tjb-mini-grid span{margin-top:3px;color:#667085;font-size:10px}.tjb-embedded-card{margin-top:14px}.tjb-empty-inline{padding:18px;border:1px dashed #cbd1cc;border-radius:14px;background:#fff;color:#667085;font-size:12px}.tjb-panel-records{margin-top:14px}.tjb-drawer .tjb-card+.tjb-card{margin-top:12px}.tjb-drawer select option:disabled{color:#98a2b3;background:#f2f4f7}.tjb-drawer label{max-width:100%}@keyframes tjbDrawerIn{from{opacity:.3;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:1050px){.tjb-operator-app{grid-template-columns:220px minmax(0,1fr)}.tjb-drawer>.tjb-grid.two{grid-template-columns:1fr}}
@media(max-width:860px){.tjb-operator-app{display:block;position:relative}.tjb-mobile-nav-toggle{display:block}.tjb-operator-sidebar{display:none;position:fixed;z-index:99999;left:10px;right:10px;top:72px;max-height:calc(100vh - 90px);box-shadow:0 24px 70px #0007}.tjb-operator-sidebar.mobile-open{display:block}.tjb-drawer{border-radius:18px;padding:13px;min-height:0}.tjb-drawer-head h1,.tjb-drawer-head h2{font-size:26px}.tjb-quick-actions .tjb-btn{width:auto;flex:1 1 150px}.tjb-fleet-grid{grid-template-columns:1fr}}


/* v0.2.2 responsive full-width operator shell + vehicle Test/Live controls */
.tjb-shell-operator{max-width:none!important;width:100%;margin:0;padding:clamp(10px,1.25vw,24px)}
.tjb-shell-operator .tjb-top{width:100%}
.tjb-shell-operator .tjb-operator-app{grid-template-columns:clamp(220px,16vw,280px) minmax(0,1fr);gap:clamp(12px,1.15vw,22px);width:100%}
.tjb-shell-operator .tjb-operator-main,.tjb-shell-operator .tjb-workspace,.tjb-shell-operator .tjb-drawer{width:100%;max-width:none}
.tjb-shell-operator .tjb-form-card{max-width:none;width:100%}
.tjb-shell-operator .tjb-form-card form{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px 12px;align-items:end}
.tjb-shell-operator .tjb-form-card form>.tjb-span-all,.tjb-shell-operator .tjb-form-card form>h3,.tjb-shell-operator .tjb-form-card form>.tjb-form-mode,.tjb-shell-operator .tjb-form-card form>button{grid-column:1/-1}
.tjb-shell-operator .tjb-form-card form>button{justify-self:start;min-width:180px}
.tjb-fleet-card-main{min-width:0;flex:1}.tjb-fleet-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.tjb-fleet-title-row>div{min-width:0}
.tjb-mode-explain{margin-top:9px;padding:8px 9px;border-radius:10px;background:#eff4ff;color:#1849a9;font-size:10px;font-weight:750;line-height:1.35}.tjb-mode-explain.live{background:#ecfdf3;color:#027a48}
.tjb-active-trip-lock{margin-top:8px;padding:8px 9px;border-radius:10px;background:#fff4ed;color:#b54708;border:1px solid #ffead5;font-size:10px;font-weight:850}
.tjb-mode-toggle-form{margin-top:10px!important;display:block!important}.tjb-mode-switch{appearance:none;border:0;background:transparent;padding:0;display:inline-flex;align-items:center;gap:9px;font:inherit;font-size:11px;font-weight:900;cursor:pointer;color:#344054}.tjb-mode-switch:disabled{opacity:.45;cursor:not-allowed}.tjb-switch-track{position:relative;display:inline-block;width:44px;height:24px;border-radius:999px;background:#d0d5dd;box-shadow:inset 0 0 0 1px #0001;transition:.18s}.tjb-switch-track i{position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 2px 6px #0003;transition:.18s}.tjb-mode-switch.live .tjb-switch-track{background:#12b76a}.tjb-mode-switch.live .tjb-switch-track i{transform:translateX(20px)}.tjb-mode-switch.test .tjb-switch-track{background:#2e5aac}
.tjb-form-mode{grid-column:1/-1;display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:8px;padding:9px 11px;border-radius:11px;background:#eff4ff;border:1px solid #d1e0ff}.tjb-form-mode span{font-size:10px;color:#475467;font-weight:850}.tjb-form-mode strong{font-size:11px;color:#1849a9}.tjb-form-mode small{margin:0!important;font-size:10px!important;color:#475467!important}.tjb-form-mode.live{background:#ecfdf3;border-color:#abefc6}.tjb-form-mode.live strong{color:#027a48}
@media(min-width:1500px){.tjb-shell-operator .tjb-drawer{padding:clamp(18px,1.4vw,28px)}.tjb-shell-operator .tjb-form-card form{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.tjb-fleet-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}}
@media(max-width:1100px){.tjb-shell-operator .tjb-operator-app{grid-template-columns:210px minmax(0,1fr)}.tjb-shell-operator .tjb-form-card form{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:860px){.tjb-shell-operator{padding:8px}.tjb-shell-operator .tjb-operator-app{display:block}.tjb-mobile-nav-toggle{position:sticky;top:8px;z-index:9990;box-shadow:0 6px 18px #0001}.tjb-shell-operator .tjb-form-card form{grid-template-columns:1fr}.tjb-shell-operator .tjb-form-card form>*{grid-column:1!important}.tjb-shell-operator .tjb-form-card form>button{width:100%;justify-self:stretch}.tjb-form-mode{grid-template-columns:1fr auto}.tjb-form-mode small{grid-column:1/-1}.tjb-fleet-title-row{align-items:center}}
@media(max-width:520px){.tjb-shell-operator{padding:6px}.tjb-shell-operator .tjb-top{margin-bottom:8px;padding:10px 12px}.tjb-shell-operator .tjb-drawer{padding:10px;border-radius:14px}.tjb-fleet-card{padding:11px}.tjb-fleet-icon{flex-basis:38px;height:38px}.tjb-fleet-title-row{align-items:flex-start;flex-direction:column}.tjb-mode-switch{width:100%;justify-content:space-between;padding:7px 0}.tjb-side-link{padding:12px 10px;font-size:13px}.tjb-operator-sidebar{left:6px;right:6px;top:60px;max-height:calc(100vh - 70px)}}
.tjb-page-driver .tjb-shell{max-width:1500px;width:100%}.tjb-page-driver .tjb-form-card{max-width:none}.tjb-page-driver .tjb-form-card form{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px 12px;align-items:end}.tjb-page-driver .tjb-form-card form>.tjb-span-all,.tjb-page-driver .tjb-form-card form>.tjb-form-mode,.tjb-page-driver .tjb-form-card form>button{grid-column:1/-1}.tjb-page-driver .tjb-form-card form>button{justify-self:start;min-width:180px}.tjb-driver-mode-form{margin-top:8px}.tjb-driver-mode-form .tjb-mini:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:760px){.tjb-page-driver .tjb-form-card form{grid-template-columns:1fr}.tjb-page-driver .tjb-form-card form>*{grid-column:1!important}.tjb-page-driver .tjb-form-card form>button{width:100%;justify-self:stretch}}


/* v0.2.3 edge-to-edge native app shell */
.tjb-top-title{font-size:13px;font-weight:1000;letter-spacing:.12em;text-align:center;white-space:nowrap}
.tjb-page-operator{min-height:100dvh;overflow-x:hidden}
.tjb-shell-operator{--tjb-appbar-h:64px;padding:0!important;min-height:100dvh;background:#f4f5f6}
.tjb-shell-operator .tjb-top{position:sticky;top:0;z-index:100000;display:grid;grid-template-columns:minmax(150px,1fr) auto minmax(150px,1fr);align-items:center;width:100%;height:var(--tjb-appbar-h);min-height:var(--tjb-appbar-h);margin:0;border-radius:0;padding:10px 16px;box-shadow:0 4px 18px #0003}
.tjb-shell-operator .tjb-top .tjb-brand{justify-self:start}
.tjb-shell-operator .tjb-top .tjb-top-title{justify-self:center}
.tjb-shell-operator .tjb-top .tjb-mode{justify-self:end}
.tjb-shell-operator .tjb-operator-app{grid-template-columns:clamp(230px,16vw,290px) minmax(0,1fr);gap:0;width:100%;min-height:calc(100dvh - var(--tjb-appbar-h));align-items:stretch}
.tjb-shell-operator .tjb-operator-sidebar{position:sticky;top:var(--tjb-appbar-h);align-self:start;width:100%;height:calc(100dvh - var(--tjb-appbar-h));max-height:none;margin:0;border-radius:0;border-top:0;border-bottom:0;border-left:0;padding:12px 10px 18px;box-shadow:8px 0 24px #00000012;overflow:auto;overscroll-behavior:contain}
.tjb-shell-operator .tjb-operator-main{min-width:0;width:100%;padding:clamp(10px,1.25vw,22px)}
.tjb-shell-operator .tjb-drawer{min-height:calc(100dvh - var(--tjb-appbar-h) - clamp(20px,2.5vw,44px));margin:0}
.tjb-shell-operator .tjb-notice{margin:12px clamp(10px,1.25vw,22px) 0}

@media(max-width:860px){
  .tjb-shell-operator{--tjb-appbar-h:56px}
  .tjb-shell-operator .tjb-top{grid-template-columns:44px minmax(0,1fr) 44px;height:var(--tjb-appbar-h);min-height:var(--tjb-appbar-h);padding:8px 8px}
  .tjb-shell-operator .tjb-top .tjb-brand b{display:none}
  .tjb-shell-operator .tjb-top .tjb-brand span{width:36px;height:36px;border-radius:9px}
  .tjb-shell-operator .tjb-top .tjb-mode{font-size:0;width:36px;min-width:36px}
  .tjb-shell-operator .tjb-top-title{font-size:11px;letter-spacing:.07em;white-space:normal;line-height:1.1}
  .tjb-shell-operator .tjb-operator-main{padding:8px}
  .tjb-shell-operator .tjb-operator-sidebar{display:none;position:fixed;z-index:99999;left:0;right:0;top:var(--tjb-appbar-h);bottom:0;width:100%;height:auto;max-height:none;border:0;border-radius:0;padding:10px 10px max(18px,env(safe-area-inset-bottom));box-shadow:0 24px 70px #0009}
  .tjb-shell-operator .tjb-operator-sidebar.mobile-open{display:block}
  .tjb-shell-operator .tjb-mobile-nav-toggle{top:calc(var(--tjb-appbar-h) + 8px)}
  .tjb-shell-operator .tjb-drawer{min-height:0}
  .tjb-shell-operator .tjb-notice{margin:8px 8px 0}
}

@media(max-width:420px){
  .tjb-shell-operator .tjb-top-title{font-size:10px;letter-spacing:.04em}
}

/* v0.2.5 — Fleet vehicle sub-navigation + editable vehicle workspace */
.tjb-side-subnav{display:grid;gap:2px;margin:-1px 0 5px 31px;padding:2px 0 4px 9px;border-left:1px solid #303632}
.tjb-side-sub{display:grid;grid-template-columns:8px minmax(0,1fr);align-items:center;gap:7px;min-width:0;padding:6px 7px;border-radius:9px;color:#aeb5b0!important;text-decoration:none!important;font-size:10px;font-weight:800;line-height:1.2}
.tjb-side-sub:hover,.tjb-side-sub.active{background:#202420;color:#FED100!important}
.tjb-side-sub span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tjb-side-sub-dot{width:5px;height:5px;border-radius:999px;background:#6b746e}
.tjb-side-sub.active .tjb-side-sub-dot{background:#FED100;box-shadow:0 0 0 3px rgba(254,209,0,.12)}
.tjb-fleet-card.selected{border-color:#111;box-shadow:0 0 0 2px #FED100 inset,0 10px 28px #00000012}
.tjb-fleet-name{font-size:14px;font-weight:950;color:#101828!important;text-decoration:none!important}
.tjb-fleet-name:hover{text-decoration:underline!important;text-decoration-color:#FED100!important;text-decoration-thickness:2px!important}
.tjb-fleet-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:9px 0 7px}
.tjb-fleet-facts span{min-width:0;padding:7px 8px;border:1px solid #eaecf0;border-radius:9px;background:#f9fafb;color:#344054;font-size:10px;line-height:1.25;overflow:hidden;text-overflow:ellipsis}
.tjb-fleet-facts b{display:block;margin-bottom:2px;color:#667085;font-size:8px;text-transform:uppercase;letter-spacing:.04em}
.tjb-fleet-description{margin:7px 0!important;color:#475467!important;font-size:10px!important;line-height:1.4}
.tjb-fleet-card-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:9px}
.tjb-manage-vehicle{display:inline-flex!important;align-items:center!important;justify-content:center!important;text-decoration:none!important;background:#111!important;color:#FED100!important}
.tjb-vehicle-editor{max-width:none!important;margin:0 0 14px;border:2px solid #FED100!important}
.tjb-vehicle-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid #eaecf0}
.tjb-vehicle-editor-head h2{margin:3px 0 4px;font-size:clamp(20px,2vw,28px)}
.tjb-vehicle-editor-head p{margin:0;color:#667085;font-size:12px}
.tjb-vehicle-editor-note{padding:10px 12px;border-radius:10px;background:#f8fafc;border:1px solid #e4e7ec;color:#475467;font-size:11px}
@media(max-width:1100px){.tjb-fleet-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:860px){.tjb-side-subnav{margin-left:31px}.tjb-side-sub{padding:9px 8px;font-size:12px}.tjb-fleet-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.tjb-vehicle-editor-head{align-items:center}}
@media(max-width:520px){.tjb-fleet-facts{grid-template-columns:1fr 1fr}.tjb-fleet-card-actions{align-items:stretch}.tjb-manage-vehicle,.tjb-fleet-card-actions .tjb-mode-toggle-form{flex:1 1 100%}.tjb-vehicle-editor-head{align-items:flex-start;flex-direction:column}}

/* v0.2.6 — live tracking action is shown only when a real active tracking URL exists. */
.tjb-track-live{background:#009b3a!important;color:#fff!important;border-color:#009b3a!important}
.tjb-track-live:hover,.tjb-track-live:focus{background:#007d2f!important;color:#fff!important}

/* v0.2.7 — managed Driver / Crew records */
.tjb-driver-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:10px;margin:0 0 14px}
.tjb-driver-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:13px;min-width:0}
.tjb-driver-card.selected{border:2px solid #FED100;box-shadow:0 8px 24px rgba(0,0,0,.08)}
.tjb-driver-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.tjb-driver-name{color:#101828!important;text-decoration:none!important;font-size:14px;font-weight:950;line-height:1.25}
.tjb-driver-name:hover{text-decoration:underline!important;text-decoration-color:#FED100!important;text-decoration-thickness:2px!important}
.tjb-driver-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:10px 0}
.tjb-driver-facts span{min-width:0;padding:7px 8px;border:1px solid #eaecf0;border-radius:9px;background:#f9fafb;color:#344054;font-size:10px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;word-break:break-word}
.tjb-driver-facts b{display:block;margin-bottom:2px;color:#667085;font-size:8px;text-transform:uppercase;letter-spacing:.04em}
.tjb-driver-card-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.tjb-manage-driver{background:#111!important;color:#FED100!important;border-color:#111!important}
.tjb-driver-editor{max-width:none!important;margin:0 0 14px;border:2px solid #FED100!important}
.tjb-driver-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid #eaecf0}
.tjb-driver-editor-head h2{margin:3px 0 4px;font-size:clamp(20px,2vw,28px)}
.tjb-driver-editor-head p{margin:0;color:#667085;font-size:12px}
.tjb-driver-editor-note{padding:10px 12px;border-radius:10px;background:#f8fafc;border:1px solid #e4e7ec;color:#475467;font-size:11px}
@media(max-width:1100px){.tjb-driver-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.tjb-driver-grid{grid-template-columns:1fr}.tjb-driver-facts{grid-template-columns:1fr 1fr}.tjb-driver-editor-head{align-items:flex-start;flex-direction:column}}
@media(max-width:430px){.tjb-driver-facts{grid-template-columns:1fr}}

/* v0.2.8 — collapsed record navigation + manage-only editors */
.tjb-side-subnav[hidden]{display:none!important}
.tjb-side-link.has-children .tjb-side-chevron{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;font-size:16px;line-height:1;transition:transform .16s ease}
.tjb-side-link.has-children[aria-expanded="true"] .tjb-side-chevron{transform:rotate(180deg)}
.tjb-editor-head-actions{display:flex;align-items:flex-end;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.tjb-editor-head-actions .tjb-mini{white-space:nowrap}
@media(max-width:620px){.tjb-editor-head-actions{align-items:flex-start;justify-content:flex-start}}


/* v0.2.9 unified route setup */
.tjb-route-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:12px;margin:0 0 16px}
.tjb-route-card{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;padding:16px;border:1px solid #e5e7eb;border-radius:16px;background:#fff}
.tjb-route-card.selected{border-color:#009b3a;box-shadow:0 0 0 2px rgba(0,155,58,.12)}
.tjb-route-card h3{margin:3px 0 4px;font-size:18px}.tjb-route-card h3 a{color:#111;text-decoration:none}.tjb-route-card p{margin:0 0 10px;color:#64748b}
.tjb-route-facts{display:flex;flex-wrap:wrap;gap:7px}.tjb-route-facts span{display:inline-flex;gap:4px;padding:5px 8px;border-radius:999px;background:#f8fafc;border:1px solid #e5e7eb;font-size:11px;color:#475569}.tjb-route-facts b{color:#111}
.tjb-route-setup-card{padding:0;overflow:hidden}.tjb-route-setup-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:18px 20px;background:#111;color:#fff;border-bottom:4px solid #fed100}.tjb-route-setup-head h2{color:#fff;margin:3px 0}.tjb-route-setup-head p{margin:0;color:#e5e7eb}.tjb-route-setup-head .tjb-kicker{color:#fed100}
.tjb-route-step{padding:18px 20px;border-bottom:1px solid #e5e7eb}.tjb-route-step-title{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px}.tjb-route-step-title>b{width:34px;height:34px;border-radius:11px;background:#111;color:#fed100;display:grid;place-items:center;flex:0 0 34px}.tjb-route-step-title h3{margin:0 0 3px}.tjb-route-step-title p{margin:0;color:#64748b;font-size:13px}
.tjb-route-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.tjb-route-fields>.tjb-span-all{grid-column:1/-1}.tjb-route-fields .tjb-form-mode{grid-column:1/-1}
.tjb-fare-matrix{overflow:auto;border:1px solid #e5e7eb;border-radius:14px}.tjb-fare-matrix-head,.tjb-fare-matrix-row{display:grid;grid-template-columns:minmax(210px,1.5fr) repeat(4,minmax(120px,1fr));gap:0;min-width:760px}.tjb-fare-matrix-head{background:#111;color:#fff;font-weight:900;font-size:12px}.tjb-fare-matrix-head span{padding:10px 12px;border-right:1px solid rgba(255,255,255,.12)}.tjb-fare-matrix-row{border-top:1px solid #e5e7eb}.tjb-fare-matrix-row:first-of-type{border-top:0}.tjb-fare-matrix-row>strong{padding:12px;display:flex;align-items:center;background:#fafafa}.tjb-fare-matrix-row label{padding:8px;border-left:1px solid #e5e7eb;margin:0}.tjb-fare-matrix-row label span{display:none}.tjb-fare-matrix-row input{width:100%;margin:0!important}
.tjb-route-departures{margin-top:16px}.tjb-route-departures h4{margin:0 0 8px}.tjb-route-save{padding:16px 20px;display:flex;justify-content:flex-end;background:#fafafa}
.tjb-empty-inline{padding:16px;border:1px dashed #cbd5e1;border-radius:14px;color:#64748b;background:#fff}
@media(max-width:1100px){.tjb-route-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.tjb-route-card{display:block}.tjb-route-card>.tjb-mini{margin-top:12px}.tjb-route-fields{grid-template-columns:1fr}.tjb-route-fields>.tjb-span-all{grid-column:auto}.tjb-route-step,.tjb-route-setup-head{padding:14px}.tjb-route-setup-head{display:block}.tjb-route-setup-head .tjb-mini{margin-top:10px}.tjb-fare-matrix-head,.tjb-fare-matrix-row{min-width:680px}}

.tjb-route-live-warning{margin:16px 20px 0;padding:12px 14px;border:1px solid #f59e0b;background:#fffbeb;border-radius:12px;color:#78350f;font-size:13px}
.tjb-route-summary{margin-top:16px}.tjb-route-summary-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.tjb-route-summary-head h2{margin:3px 0}.tjb-route-summary-head p{margin:0;color:#64748b}.tjb-route-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}.tjb-route-summary-grid>div{padding:11px;border:1px solid #e5e7eb;border-radius:12px;background:#fafafa}.tjb-route-summary-grid span{display:block;color:#64748b;font-size:11px;font-weight:800;text-transform:uppercase}.tjb-route-summary-grid strong{display:block;margin-top:3px;font-size:17px}.tjb-route-stopline{padding:12px 14px;border-radius:12px;background:#111;color:#fff}.tjb-route-stopline b{color:#fed100;margin-right:8px}.tjb-route-stopline span{line-height:1.55}
@media(max-width:900px){.tjb-route-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.tjb-route-summary-head{display:block}.tjb-route-summary-head .tjb-btn{margin-top:12px}.tjb-route-summary-grid{grid-template-columns:1fr 1fr}}

/* v0.3.0 — unified route add-ons + recurring On-Day / Off-Day scheduling */
.tjb-route-addon-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}
.tjb-route-addon-option{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(170px,.8fr);gap:10px;align-items:end;padding:12px;border:1px solid #e4e7ec;border-radius:13px;background:#fff}
.tjb-route-addon-option .tjb-check{align-self:center;margin:0}
.tjb-route-addon-option .tjb-check span{display:block;min-width:0}
.tjb-route-addon-option .tjb-check b{display:block;color:#101828;font-size:13px}
.tjb-route-addon-option .tjb-check small{display:block;color:#667085;font-size:10px;line-height:1.35;margin-top:2px}
.tjb-route-addon-option label{margin:0}
.tjb-schedule-engine{background:linear-gradient(180deg,#fff 0%,#fbfcfd 100%)}
.tjb-recurring-schedule-form{display:block}
.tjb-on-days{grid-column:1/-1;padding:12px;border:1px solid #e4e7ec;border-radius:14px;background:#f8fafc}
.tjb-on-days>strong{display:block;margin-bottom:8px;font-size:12px;color:#344054}
.tjb-day-grid{display:grid;grid-template-columns:repeat(7,minmax(74px,1fr));gap:7px}
.tjb-day{display:flex!important;align-items:center;justify-content:center;gap:6px;min-height:42px;padding:8px!important;border:1px solid #d0d5dd!important;border-radius:10px;background:#fff;font-weight:850;font-size:11px;cursor:pointer}
.tjb-day input{width:auto!important;margin:0!important}
.tjb-schedule-actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.tjb-schedule-actions form{margin:0}
.tjb-route-departures table small{display:block;color:#667085}
.tjb-off-days-note{grid-column:1/-1;padding:10px 12px;border-radius:10px;background:#fff7cc;border:1px solid #fed100;color:#344054;font-size:11px;line-height:1.45}
@media(max-width:1050px){.tjb-day-grid{grid-template-columns:repeat(4,minmax(74px,1fr))}.tjb-route-addon-option{grid-template-columns:1fr}}
@media(max-width:620px){.tjb-route-addon-list{grid-template-columns:1fr}.tjb-day-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tjb-day{justify-content:flex-start}.tjb-schedule-actions{align-items:stretch}.tjb-schedule-actions .tjb-mini,.tjb-schedule-actions form,.tjb-schedule-actions form button{width:100%}}

/* v0.3.2 — unified route / daily trip builder */
.tjb-service-builder{margin:16px 0;padding:14px;border:1px solid #e5e7eb;border-radius:18px;background:#f8fafc}
.tjb-service-builder-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.tjb-service-builder-head>div{display:grid;gap:3px}.tjb-service-builder-head strong{font-size:15px}.tjb-service-builder-head span{font-size:12px;color:#64748b}
.tjb-trip-card{background:#fff;border:1px solid #dbe2ea;border-radius:16px;padding:13px;margin:0 0 12px;box-shadow:0 6px 20px rgba(15,23,42,.04)}
.tjb-trip-card:last-child{margin-bottom:0}
.tjb-trip-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid #edf1f5}
.tjb-trip-head>div:first-child{display:grid;gap:5px;min-width:0}.tjb-trip-name{font-weight:900!important;font-size:15px!important;border:0!important;border-bottom:1px dashed #cbd5e1!important;border-radius:0!important;padding:3px 0!important;min-width:220px;box-shadow:none!important}
.tjb-trip-head-actions{display:flex;align-items:center;gap:7px}.tjb-trip-head-actions select{width:auto;min-width:120px;margin:0!important}
.tjb-trip-legs{display:grid;gap:8px;margin-bottom:10px}
.tjb-leg-row{display:grid;grid-template-columns:auto minmax(130px,1fr) minmax(130px,1fr) minmax(110px,.72fr) minmax(110px,.72fr) auto;gap:8px;align-items:end;padding:10px;border-radius:13px;background:#fbfcfe;border:1px solid #edf1f5}
.tjb-leg-row label{margin:0!important}.tjb-leg-row input{margin:4px 0 0!important}.tjb-leg-number{align-self:center;font-size:11px;font-weight:950;color:#64748b;white-space:nowrap}
.tjb-leg-remove{width:34px;height:34px;border:0;border-radius:10px;background:#fee2e2;color:#991b1b;font-size:20px;font-weight:900;cursor:pointer;margin-bottom:1px}
.tjb-mini.danger{background:#fff1f2!important;color:#9f1239!important;border-color:#fecdd3!important}
.tjb-route-fields select[multiple]{min-height:112px}
@media(max-width:1100px){.tjb-leg-row{grid-template-columns:auto 1fr 1fr}.tjb-leg-row label:nth-of-type(3),.tjb-leg-row label:nth-of-type(4){grid-column:auto}.tjb-leg-remove{align-self:end}}
@media(max-width:720px){.tjb-service-builder{padding:10px}.tjb-service-builder-head,.tjb-trip-head{align-items:stretch;flex-direction:column}.tjb-service-builder-head .tjb-mini{width:100%}.tjb-trip-head-actions{display:grid;grid-template-columns:1fr auto}.tjb-trip-head-actions select{width:100%}.tjb-trip-name{min-width:0;width:100%!important}.tjb-leg-row{grid-template-columns:1fr 1fr}.tjb-leg-number{grid-column:1/-1}.tjb-leg-remove{grid-column:1/-1;width:100%}.tjb-leg-row label{min-width:0}}


/* v0.3.3 Marketplace summaries + resilient draft notice */
.tjb-marketplace-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;margin-top:14px}
.tjb-marketplace-summary{border:1px solid #e5e7eb;border-radius:18px;padding:16px;background:#fff;box-shadow:0 8px 24px rgba(15,23,42,.05)}
.tjb-marketplace-summary-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}
.tjb-marketplace-summary-head h3{margin:3px 0 0;font-size:19px}
.tjb-marketplace-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:12px 0 14px}
.tjb-marketplace-summary-grid>div{padding:10px;border-radius:12px;background:#f8fafc;border:1px solid #eef2f7;min-width:0}
.tjb-marketplace-summary-grid b{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin-bottom:3px}
.tjb-marketplace-summary-grid span{display:block;font-weight:800;color:#111827;overflow-wrap:anywhere}
.tjb-draft-note{padding:10px 12px;border-radius:12px;border:1px solid #fed100;background:#fff9d9;color:#111827;display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:12px}
@media(max-width:680px){.tjb-marketplace-card-grid{grid-template-columns:1fr}.tjb-marketplace-summary-grid{grid-template-columns:1fr}}

.tjb-required{color:#b42318;font-weight:900;margin-left:2px}


/* v0.4.0 — native vehicle seat-layout builder */
.tjb-seat-layout-card{margin-top:18px}
.tjb-seat-layout-controls{display:grid;grid-template-columns:minmax(220px,2fr) repeat(2,minmax(110px,1fr));gap:12px;align-items:end;margin:16px 0}
.tjb-seat-presets{display:flex;gap:8px;align-items:center;flex-wrap:wrap;grid-column:1/-1;padding:10px 12px;border:1px solid #e4e4e4;border-radius:12px;background:#fafafa}
.tjb-seat-presets>span{font-weight:800;margin-right:4px}
.tjb-seat-layout-workbench{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(260px,.8fr);gap:18px;align-items:start;margin:18px 0}
.tjb-seat-builder-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px;padding:10px 12px;background:#111;color:#fff;border-radius:12px}.tjb-seat-builder-toolbar span{color:#FED100}
.tjb-seat-grid{display:grid;gap:8px;padding:16px;border:2px solid #111;border-radius:18px;background:#f6f6f6;min-height:180px;overflow:auto}
.tjb-seat-cell{appearance:none;border:1px solid #d6d6d6;border-radius:10px;background:#fff;min-height:58px;padding:5px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;color:#111;box-shadow:none}.tjb-seat-cell:hover{border-color:#111}.tjb-seat-cell.selected{outline:3px solid #FED100;outline-offset:1px}.tjb-seat-cell small{font-size:9px;color:#777}.tjb-seat-cell strong{font-size:12px}.tjb-seat-cell span{font-size:9px;text-transform:capitalize;color:#555}
.tjb-seat-cell.seat{border-color:#111;background:#fff}.tjb-seat-cell.aisle{background:#ececec;border-style:dashed;color:#666}.tjb-seat-cell.blocked{background:#222;color:#fff}.tjb-seat-cell.driver{background:#FED100}.tjb-seat-cell.door{background:#e7f6ec;border-color:#009B3A}.tjb-seat-cell.luggage{background:#f3ead7}.tjb-seat-cell.empty{background:#fff;border-style:dashed;color:#aaa}
.tjb-seat-cell-editor{position:sticky;top:16px;border:1px solid #ddd;border-radius:16px;padding:16px;background:#fff}.tjb-seat-cell-editor h3{margin:4px 0 14px}.tjb-seat-cell-editor label{display:block;margin-bottom:10px}.tjb-seat-cell-editor small{display:block;margin:8px 0 14px;color:#666;line-height:1.4}
.tjb-seat-legend{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.tjb-seat-legend span{padding:5px 8px;border-radius:999px;font-size:11px;font-weight:800;border:1px solid #ddd}.tjb-seat-legend .seat{background:#fff}.tjb-seat-legend .aisle{background:#ececec}.tjb-seat-legend .blocked{background:#222;color:#fff}.tjb-seat-legend .driver{background:#FED100}.tjb-seat-legend .door{background:#e7f6ec}.tjb-seat-legend .luggage{background:#f3ead7}
@media(max-width:900px){.tjb-seat-layout-workbench{grid-template-columns:1fr}.tjb-seat-cell-editor{position:static}.tjb-seat-layout-controls{grid-template-columns:1fr 1fr}.tjb-seat-layout-controls>label:first-child{grid-column:1/-1}}
@media(max-width:560px){.tjb-seat-layout-controls{grid-template-columns:1fr}.tjb-seat-layout-controls>label:first-child{grid-column:auto}.tjb-seat-grid{padding:10px;gap:5px}.tjb-seat-cell{min-height:52px;padding:3px}.tjb-seat-builder-toolbar{align-items:flex-start;flex-direction:column}}

.tjb-seat-copy{display:flex;gap:10px;align-items:end;grid-column:1/-1;padding:10px 12px;border:1px solid #e4e4e4;border-radius:12px;background:#fff}.tjb-seat-copy label{flex:1;margin:0}.tjb-seat-copy .tjb-mini{margin-bottom:2px}@media(max-width:560px){.tjb-seat-copy{align-items:stretch;flex-direction:column}}

/* v0.4.0.1 — Seat Layout Builder workspace/responsive hotfix */
.tjb-seat-layout-card{
  container-type:inline-size;
  min-width:0;
  overflow:hidden;
}
.tjb-seat-layout-card form,
.tjb-seat-map-pane,
.tjb-seat-layout-workbench{
  min-width:0;
}
.tjb-seat-layout-workbench{
  grid-template-columns:minmax(0,1fr) minmax(280px,320px);
  gap:16px;
}
.tjb-seat-map-pane{
  width:100%;
  min-width:0;
}
.tjb-seat-grid-scroll{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-inline:contain;
  -webkit-overflow-scrolling:touch;
  padding-bottom:4px;
}
.tjb-seat-grid{
  width:max-content;
  min-width:max-content;
  min-height:180px;
  grid-auto-columns:72px;
  overflow:visible;
}
.tjb-seat-cell{
  width:72px;
  min-width:72px;
  max-width:72px;
  min-height:62px;
}
.tjb-seat-cell-editor{
  width:100%;
  min-width:0;
  max-width:320px;
  box-sizing:border-box;
}
.tjb-seat-cell-editor input,
.tjb-seat-cell-editor select{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}

/* The Operator Center has a permanent left rail, so respond to the actual
   Fleet card width rather than the browser viewport width. */
@container (max-width: 860px){
  .tjb-seat-layout-workbench{
    grid-template-columns:minmax(0,1fr);
  }
  .tjb-seat-cell-editor{
    position:static;
    max-width:none;
  }
}
@container (max-width: 620px){
  .tjb-seat-layout-controls{
    grid-template-columns:minmax(0,1fr) minmax(86px,.55fr) minmax(86px,.55fr);
  }
  .tjb-seat-presets{
    align-items:stretch;
  }
  .tjb-seat-presets .tjb-mini{
    flex:1 1 auto;
    text-align:center;
  }
}
@container (max-width: 460px){
  .tjb-seat-layout-controls{
    grid-template-columns:1fr;
  }
  .tjb-seat-layout-controls>label:first-child,
  .tjb-seat-presets,
  .tjb-seat-copy{
    grid-column:auto;
  }
  .tjb-seat-cell{
    width:64px;
    min-width:64px;
    max-width:64px;
    min-height:56px;
  }
  .tjb-seat-grid{
    grid-auto-columns:64px;
  }
  .tjb-seat-builder-toolbar{
    align-items:flex-start;
    flex-direction:column;
  }
}
@container (max-width: 460px){
  .tjb-seat-grid{--tjb-seat-track:64px}
}


/* v0.4.0.2 — Seat Layout Builder full-width map hotfix
 * The map and editor no longer compete for horizontal space. The vehicle map
 * always owns the full workspace width; Selected Cell controls sit below it.
 */
.tjb-seat-layout-card{
  overflow:visible;
}
.tjb-seat-layout-workbench{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) !important;
  gap:16px !important;
  width:100%;
  max-width:100%;
  min-width:0;
}
.tjb-seat-map-pane{
  grid-column:1/-1;
  width:100%;
  max-width:100%;
  min-width:0;
}
.tjb-seat-grid-scroll{
  display:block;
  width:100%;
  max-width:100%;
  overflow-x:auto !important;
  overflow-y:hidden;
  box-sizing:border-box;
  padding:4px 2px 10px;
}
.tjb-seat-grid{
  display:grid;
  width:max-content !important;
  min-width:max-content !important;
  max-width:none !important;
  margin:0 auto;
  box-sizing:border-box;
  overflow:visible !important;
}
.tjb-seat-cell-editor{
  grid-column:1/-1;
  position:static !important;
  width:100% !important;
  max-width:none !important;
  min-width:0;
  box-sizing:border-box;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  align-items:end;
}
.tjb-seat-cell-editor>.tjb-kicker,
.tjb-seat-cell-editor>h3,
.tjb-seat-cell-editor>small,
.tjb-seat-cell-editor>.tjb-btn{
  grid-column:1/-1;
}
.tjb-seat-cell-editor>h3{
  margin:0;
}
.tjb-seat-cell-editor>label{
  min-width:0;
  margin:0;
}
.tjb-seat-cell-editor>small{
  margin:0;
}
.tjb-seat-cell-editor>.tjb-btn{
  justify-self:start;
}
@container (max-width:760px){
  .tjb-seat-cell-editor{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@container (max-width:500px){
  .tjb-seat-cell-editor{
    grid-template-columns:1fr;
  }
  .tjb-seat-cell-editor>.tjb-kicker,
  .tjb-seat-cell-editor>h3,
  .tjb-seat-cell-editor>small,
  .tjb-seat-cell-editor>.tjb-btn{
    grid-column:auto;
  }
  .tjb-seat-grid{
    margin:0;
  }
}

/* v0.4.0.3 — Seat Layout Builder structural form-grid fix
 * IMPORTANT: the Operator Center's generic .tjb-form-card form rule turns every
 * form into a multi-column grid. A seat-layout builder is a composite workspace,
 * not a normal field form, so it must own its page flow. This override removes
 * the outer grid constraint entirely and lets the builder's internal grids work
 * at full workspace width.
 */
.tjb-shell-operator .tjb-seat-layout-card form[data-tjb-seat-layout-form]{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  margin:0 !important;
}
.tjb-shell-operator .tjb-seat-layout-card form[data-tjb-seat-layout-form] > .tjb-seat-layout-controls,
.tjb-shell-operator .tjb-seat-layout-card form[data-tjb-seat-layout-form] > .tjb-seat-layout-workbench,
.tjb-shell-operator .tjb-seat-layout-card form[data-tjb-seat-layout-form] > .tjb-help{
  display:block;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  box-sizing:border-box;
}
.tjb-shell-operator .tjb-seat-layout-card form[data-tjb-seat-layout-form] > .tjb-seat-layout-controls{
  display:grid !important;
}
.tjb-shell-operator .tjb-seat-layout-card form[data-tjb-seat-layout-form] > .tjb-seat-layout-workbench{
  display:grid !important;
  margin-top:18px;
}
.tjb-shell-operator .tjb-seat-layout-card form[data-tjb-seat-layout-form] > .tjb-help{
  margin:16px 0 12px;
}
.tjb-shell-operator .tjb-seat-layout-card form[data-tjb-seat-layout-form] > button.tjb-btn{
  display:inline-flex !important;
  width:auto !important;
  min-width:190px;
  margin-top:2px;
}

/* Keep the physical bus map compact and centered once it has the full workspace. */
.tjb-seat-map-pane{
  border:1px solid #e1e5e2;
  border-radius:18px;
  background:#fff;
  padding:14px;
  box-sizing:border-box;
}
.tjb-seat-grid-scroll{
  border-radius:16px;
  background:#f7f8f7;
}
.tjb-seat-grid{
  margin-inline:auto !important;
  border-radius:22px !important;
  box-shadow:inset 0 0 0 5px #fff;
}
.tjb-seat-cell-editor{
  margin-top:0;
  border:1px solid #e1e5e2;
  background:#fff;
  box-shadow:0 8px 24px #0000000a;
}
@container (max-width:500px){
  .tjb-shell-operator .tjb-seat-layout-card form[data-tjb-seat-layout-form] > button.tjb-btn{
    width:100% !important;
  }
  .tjb-seat-map-pane{padding:10px}
}


/* v0.4.1 — Seat Layout Builder left setup panel + driver-side orientation */
.tjb-shell-operator .tjb-seat-layout-card form[data-tjb-seat-layout-form] > .tjb-seat-builder-shell{
  display:grid !important;
  grid-template-columns:minmax(240px,300px) minmax(0,1fr);
  gap:20px;
  align-items:start;
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  margin-top:16px;
}
.tjb-seat-setup-sidebar{
  min-width:0;
  border:1px solid #e1e5e2;
  border-radius:18px;
  background:#f8f9f8;
  padding:16px;
  box-sizing:border-box;
}
.tjb-seat-setup-sidebar .tjb-seat-layout-controls{
  display:flex !important;
  flex-direction:column;
  gap:12px;
  margin:0 !important;
  width:100%;
  min-width:0;
}
.tjb-seat-setup-sidebar .tjb-seat-layout-controls > .tjb-kicker{
  margin-bottom:0;
}
.tjb-seat-setup-sidebar .tjb-seat-layout-controls label{
  width:100%;
  min-width:0;
  margin:0;
}
.tjb-seat-setup-sidebar .tjb-seat-layout-controls input,
.tjb-seat-setup-sidebar .tjb-seat-layout-controls select{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.tjb-seat-setup-sidebar .tjb-seat-presets{
  display:grid !important;
  grid-template-columns:1fr 1fr;
  gap:8px;
  width:100%;
  padding:12px;
  margin:0;
  box-sizing:border-box;
}
.tjb-seat-setup-sidebar .tjb-seat-presets > span{
  grid-column:1/-1;
  margin:0 0 2px;
}
.tjb-seat-setup-sidebar .tjb-seat-presets .tjb-mini{
  width:100%;
  text-align:center;
  justify-content:center;
}
.tjb-seat-setup-sidebar .tjb-seat-copy{
  display:flex !important;
  flex-direction:column;
  align-items:stretch;
  gap:8px;
  grid-column:auto;
  width:100%;
  padding:12px;
  margin:0;
  box-sizing:border-box;
}
.tjb-seat-setup-sidebar .tjb-seat-copy label{
  width:100%;
}
.tjb-seat-setup-sidebar .tjb-seat-copy .tjb-mini{
  width:100%;
  margin:0;
  justify-content:center;
}
.tjb-seat-builder-main{
  min-width:0;
  width:100%;
  max-width:100%;
}
.tjb-seat-builder-main .tjb-seat-layout-workbench{
  margin:0 !important;
}
.tjb-seat-driver-cab{
  display:flex;
  width:100%;
  min-height:46px;
  align-items:center;
  padding:6px 12px 10px;
  box-sizing:border-box;
}
.tjb-seat-driver-cab[data-driver-side="left"]{
  justify-content:flex-start;
}
.tjb-seat-driver-cab[data-driver-side="right"]{
  justify-content:flex-end;
}
.tjb-seat-driver-cab > span{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:8px 12px;
  border:2px solid #111;
  border-radius:12px 12px 6px 6px;
  background:#FED100;
  color:#111;
  font-size:11px;
  font-weight:900;
  letter-spacing:.04em;
  line-height:1;
}
.tjb-seat-driver-cab > span b{
  font-size:10px;
}
@container (max-width:820px){
  .tjb-shell-operator .tjb-seat-layout-card form[data-tjb-seat-layout-form] > .tjb-seat-builder-shell{
    grid-template-columns:1fr;
  }
  .tjb-seat-setup-sidebar{
    width:100%;
  }
  .tjb-seat-setup-sidebar .tjb-seat-layout-controls{
    display:grid !important;
    grid-template-columns:minmax(0,1.5fr) minmax(90px,.5fr) minmax(90px,.5fr);
    align-items:end;
  }
  .tjb-seat-setup-sidebar .tjb-seat-layout-controls > .tjb-kicker,
  .tjb-seat-setup-sidebar .tjb-seat-layout-controls > label:nth-of-type(4),
  .tjb-seat-setup-sidebar .tjb-seat-presets,
  .tjb-seat-setup-sidebar .tjb-seat-copy{
    grid-column:1/-1;
  }
}
@container (max-width:520px){
  .tjb-seat-setup-sidebar .tjb-seat-layout-controls{
    display:flex !important;
    flex-direction:column;
  }
  .tjb-seat-setup-sidebar .tjb-seat-presets{
    grid-template-columns:1fr;
  }
  .tjb-seat-setup-sidebar .tjb-seat-presets > span{
    grid-column:auto;
  }
}


/* v0.4.2 — route-specific seat pricing lives with Traveler Fares, never Fleet. */
.tjb-route-seat-pricing{margin-top:18px;padding-top:18px;border-top:1px solid #e5e5e5}
.tjb-route-seat-pricing-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:14px}
.tjb-route-seat-pricing-head h4{margin:0 0 5px;font-size:18px}
.tjb-route-seat-pricing-head p{margin:0;max-width:760px;color:#555}
.tjb-route-seat-pricing-head>span{white-space:nowrap;font-size:12px;font-weight:800;background:#f4f4f4;border-radius:999px;padding:7px 10px}
.tjb-route-seat-price-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.tjb-route-seat-price-grid label{display:flex;flex-direction:column;gap:6px;padding:14px;border:1px solid #ddd;border-radius:14px;background:#fff}
.tjb-route-seat-price-grid label>span{font-weight:900}
.tjb-route-seat-price-grid label small{font-size:12px;line-height:1.4;color:#666}
.tjb-route-seat-price-grid label[hidden]{display:none!important}
.tjb-route-seat-price-grid .tjb-seat-price-standard{background:#fafafa}
@media(max-width:1050px){.tjb-route-seat-price-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.tjb-route-seat-pricing-head{display:block}.tjb-route-seat-pricing-head>span{display:inline-block;margin-top:10px}.tjb-route-seat-price-grid{grid-template-columns:1fr}}


/* v0.4.2.5 — revert-to-v0.4.2 seat-builder behavior with one targeted UX change.
 * Normal JAMBus/Fleet page scrolling is preserved. Only the left Seat Builder
 * setup/editor column scrolls independently; the right bus map has no local
 * scrollbar and fits the width available to it.
 */
.tjb-shell-operator .tjb-seat-layout-card,
.tjb-shell-operator .tjb-seat-layout-card form[data-tjb-seat-layout-form],
.tjb-shell-operator .tjb-seat-builder-shell{
  position:static !important;
  inset:auto !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
}
.tjb-shell-operator .tjb-seat-layout-card form[data-tjb-seat-layout-form] > .tjb-seat-builder-shell{
  align-items:start !important;
}
.tjb-seat-setup-sidebar{
  position:static !important;
  align-self:start;
  max-height:clamp(420px,68vh,760px);
  overflow-y:auto !important;
  overflow-x:hidden !important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.tjb-seat-setup-sidebar .tjb-seat-cell-editor{
  position:static !important;
  display:block !important;
  width:100% !important;
  max-width:none !important;
  margin:16px 0 0 !important;
  box-sizing:border-box;
  box-shadow:none;
}
.tjb-seat-setup-sidebar .tjb-seat-cell-editor > .tjb-kicker,
.tjb-seat-setup-sidebar .tjb-seat-cell-editor > h3,
.tjb-seat-setup-sidebar .tjb-seat-cell-editor > label,
.tjb-seat-setup-sidebar .tjb-seat-cell-editor > small,
.tjb-seat-setup-sidebar .tjb-seat-cell-editor > .tjb-btn{
  display:block;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.tjb-seat-setup-sidebar .tjb-seat-cell-editor > label{
  margin:0 0 10px;
}
.tjb-seat-setup-sidebar .tjb-seat-cell-editor > .tjb-btn{
  display:inline-flex;
  width:auto;
}
.tjb-seat-builder-main,
.tjb-seat-builder-main .tjb-seat-layout-workbench,
.tjb-seat-map-pane{
  overflow:visible !important;
  max-height:none !important;
}
.tjb-seat-builder-main .tjb-seat-layout-workbench{
  display:block !important;
}
.tjb-seat-grid-scroll{
  width:100% !important;
  max-width:100% !important;
  overflow:visible !important;
  padding:4px 2px 10px !important;
  box-sizing:border-box;
}
.tjb-seat-grid{
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  grid-template-columns:repeat(var(--tjb-seat-cols),minmax(0,1fr)) !important;
  overflow:visible !important;
  box-sizing:border-box;
}
.tjb-seat-cell{
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
}
@container (max-width:820px){
  .tjb-shell-operator .tjb-seat-layout-card form[data-tjb-seat-layout-form] > .tjb-seat-builder-shell{
    grid-template-columns:1fr !important;
  }
  .tjb-seat-setup-sidebar{
    max-height:none;
    overflow:visible !important;
    scrollbar-gutter:auto;
  }
}

/* v0.4.3 — seat view zoom, whole-column reorder, single/double deck layouts. */
.tjb-seat-dimensions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  width:100%;
}
.tjb-seat-dimensions[hidden],
.tjb-seat-deck-tabs[hidden]{display:none!important}
.tjb-seat-deck-tabs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  width:100%;
}
.tjb-seat-deck-tabs .tjb-mini{
  width:100%;
  justify-content:center;
  text-align:center;
}
.tjb-seat-deck-tabs .tjb-mini.active{
  background:#111;
  color:#FED100;
  border-color:#111;
}
.tjb-seat-view-size>span{
  float:right;
  font-weight:900;
}
.tjb-seat-view-size input[type="range"]{
  width:100%;
  margin-top:8px;
  accent-color:#111;
}
.tjb-seat-column-help{
  margin:0 0 7px;
  font-size:11px;
  color:#60646c;
  text-align:center;
}
.tjb-seat-column-strip{
  --tjb-seat-view-width:100%;
  display:grid;
  grid-template-columns:repeat(var(--tjb-seat-cols),minmax(0,1fr));
  gap:8px;
  width:var(--tjb-seat-view-width) !important;
  max-width:100%;
  margin:0 auto 7px;
  padding:0 16px;
  box-sizing:border-box;
  transition:width .12s ease;
}
.tjb-seat-column-handle{
  display:grid;
  grid-template-columns:26px minmax(0,1fr) 26px;
  align-items:center;
  gap:3px;
  min-width:0;
  min-height:34px;
  border:1px solid #d7d7d7;
  border-radius:9px;
  background:#fff;
  color:#111;
  cursor:grab;
  user-select:none;
  touch-action:manipulation;
}
.tjb-seat-column-handle:active{cursor:grabbing}
.tjb-seat-column-handle.dragging{
  opacity:.45;
  outline:2px solid #FED100;
  outline-offset:1px;
}
.tjb-seat-column-handle>span{
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  text-align:center;
  font-size:10px;
  font-weight:900;
  letter-spacing:.035em;
}
.tjb-col-arrow{
  appearance:none;
  border:0;
  background:transparent;
  color:#111;
  width:26px;
  height:30px;
  padding:0;
  border-radius:7px;
  font-weight:900;
  cursor:pointer;
}
.tjb-col-arrow:hover:not(:disabled){background:#FED100}
.tjb-col-arrow:disabled{opacity:.2;cursor:default}
.tjb-seat-grid[data-tjb-seat-grid]{
  --tjb-seat-view-width:100%;
  width:var(--tjb-seat-view-width) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  transition:width .12s ease;
}
.tjb-seat-driver-cab[hidden]{display:none!important}

@container (max-width:820px){
  .tjb-seat-view-size{display:none!important}
  .tjb-seat-column-strip,
  .tjb-seat-grid[data-tjb-seat-grid]{width:100% !important}
  .tjb-seat-column-strip{padding:0 8px;gap:5px}
  .tjb-seat-column-handle{grid-template-columns:24px minmax(0,1fr) 24px}
  .tjb-seat-column-handle>span{font-size:9px}
}
@container (max-width:520px){
  .tjb-seat-dimensions{grid-template-columns:1fr}
  .tjb-seat-column-help{display:none}
  .tjb-seat-column-strip{gap:3px;padding:0 4px}
  .tjb-seat-column-handle{grid-template-columns:1fr;min-height:42px;padding:3px}
  .tjb-seat-column-handle>span{order:1}
  .tjb-seat-column-handle .tjb-col-arrow{display:inline-block;width:50%;height:22px}
  .tjb-seat-column-handle .tjb-col-arrow:first-child{order:2;justify-self:start}
  .tjb-seat-column-handle .tjb-col-arrow:last-child{order:2;justify-self:end;margin-top:-22px}
}

/* v0.4.3.2 — unified whole-layout scaling + stable left-panel workspace height. */
.tjb-seat-column-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 0 7px;
}
.tjb-seat-column-toolbar .tjb-seat-column-help{
  flex:1 1 auto;
  min-width:0;
  margin:0;
  text-align:left;
}
.tjb-seat-vertical-zoom{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap:5px;
  padding:4px 5px;
  border:1px solid #d7d7d7;
  border-radius:10px;
  background:#fff;
  white-space:nowrap;
}
.tjb-seat-zoom-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:28px;
  font-size:14px;
  line-height:1;
}
.tjb-seat-vertical-zoom .tjb-mini{
  min-width:30px;
  width:30px;
  height:30px;
  min-height:30px;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  font-weight:900;
  border-radius:8px;
}
.tjb-seat-vertical-zoom output{
  display:inline-block;
  min-width:42px;
  text-align:center;
  font-size:11px;
  font-weight:900;
  color:#111;
}
.tjb-seat-grid[data-tjb-seat-grid]{
  gap:var(--tjb-seat-vgap,8px) !important;
}
.tjb-seat-grid[data-tjb-seat-grid] .tjb-seat-cell{
  min-height:var(--tjb-seat-cell-vheight,58px) !important;
  padding-top:var(--tjb-seat-vpad,5px) !important;
  padding-bottom:var(--tjb-seat-vpad,5px) !important;
  transition:min-height .12s ease,padding .12s ease;
}
/* JS sets the desktop sidebar height to the active deck's unscaled bus workspace.
 * The visual seat-height control never shortens this left panel. */
.tjb-seat-setup-sidebar{
  overflow-y:auto !important;
  overflow-x:hidden !important;
}
@container (max-width:820px){
  .tjb-seat-column-toolbar{align-items:flex-start}
  .tjb-seat-column-toolbar .tjb-seat-column-help{text-align:left}
  .tjb-seat-vertical-zoom{margin-left:auto}
  .tjb-seat-setup-sidebar{
    height:auto !important;
    max-height:none !important;
    overflow:visible !important;
  }
  .tjb-seat-builder-main{
    min-height:0 !important;
  }
}
@container (max-width:520px){
  .tjb-seat-column-toolbar{flex-wrap:wrap}
  .tjb-seat-column-toolbar .tjb-seat-column-help{display:none}
  .tjb-seat-vertical-zoom{margin-left:auto}
}

/* At very small display scales, suppress secondary seat text so the physical map remains legible. */
.tjb-seat-grid[data-tjb-seat-zoom-level="10"] .tjb-seat-cell small,
.tjb-seat-grid[data-tjb-seat-zoom-level="10"] .tjb-seat-cell span,
.tjb-seat-grid[data-tjb-seat-zoom-level="15"] .tjb-seat-cell small,
.tjb-seat-grid[data-tjb-seat-zoom-level="15"] .tjb-seat-cell span,
.tjb-seat-grid[data-tjb-seat-zoom-level="20"] .tjb-seat-cell small,
.tjb-seat-grid[data-tjb-seat-zoom-level="20"] .tjb-seat-cell span{display:none!important;}

/* v0.5.0 — customer seat selection + segment-aware temporary holds. */
.tjb-booking-builder{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:18px;align-items:start;margin:18px 0}
.tjb-customer-booking-left{display:grid;gap:14px;position:sticky;top:14px}
.tjb-customer-fares label{display:grid;gap:6px;margin-top:10px;font-weight:800}
.tjb-customer-fares select{width:100%;min-height:44px;border:1px solid #d7d7d7;border-radius:10px;background:#fff;padding:9px 11px;font:inherit;color:#111}
.tjb-customer-seat-summary{display:grid;gap:12px}
.tjb-held-seat-list{display:flex;flex-wrap:wrap;gap:8px;color:#555}
.tjb-held-seat-list>span{display:grid;gap:1px;min-width:68px;padding:8px 10px;border:1px solid #dedede;border-radius:10px;background:#fff}
.tjb-held-seat-list b{font-size:15px;color:#111}.tjb-held-seat-list small{text-transform:capitalize;color:#666}
.tjb-hold-clock{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:10px;background:#fff8cf;border:1px solid #f0d968}
.tjb-hold-clock strong{font-size:20px;font-variant-numeric:tabular-nums}.tjb-hold-clock[hidden]{display:none!important}
.tjb-price-summary{display:flex;justify-content:space-between;gap:12px;align-items:end;padding-top:10px;border-top:1px solid #e4e4e4}.tjb-price-summary span{color:#666}.tjb-price-summary strong{font-size:20px}
.tjb-seat-message{min-height:20px;margin:0;font-weight:700;color:#333}.tjb-booking-builder.is-busy{cursor:progress}.tjb-booking-builder.is-busy .tjb-customer-seat-map{opacity:.78}
.tjb-customer-seat-map{min-width:0}
.tjb-customer-seat-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}.tjb-customer-seat-head h2{margin:2px 0 5px}.tjb-customer-seat-head p{margin:0;color:#666}
.tjb-seat-key{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;font-size:11px;font-weight:900}.tjb-seat-key span:before{content:"";display:inline-block;width:10px;height:10px;margin-right:5px;border-radius:3px;vertical-align:-1px}.tjb-seat-key .available:before{background:#fff;border:1px solid #111}.tjb-seat-key .selected:before{background:#FED100;border:1px solid #111}.tjb-seat-key .unavailable:before{background:#ddd;border:1px solid #bbb}
.tjb-customer-deck-tabs{display:flex;gap:8px;margin-bottom:12px}.tjb-customer-deck-tabs .active{background:#111;color:#fff;border-color:#111}
.tjb-customer-seat-control-row{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin:0 0 12px}.tjb-customer-seat-control-row .tjb-seat-vertical-zoom{margin-left:auto}
.tjb-customer-deck{max-width:720px;margin:0 auto}.tjb-customer-seat-grid-scroll{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;padding:0 0 5px;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}.tjb-customer-seat-zoom-stage{margin:0 auto;min-width:150px;box-sizing:border-box;transition:width .12s ease}.tjb-customer-bus-front{text-align:center;font-weight:900;font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:8px 12px;margin:0 auto 8px;max-width:240px;background:#111;color:#fff;border-radius:14px 14px 4px 4px}
.tjb-customer-seat-grid{display:grid;grid-template-columns:repeat(var(--tjb-customer-cols),minmax(0,1fr));justify-content:center;gap:8px;padding:12px;border:2px solid #222;border-radius:18px;background:#f7f7f7;overflow:hidden;width:100%;box-sizing:border-box}
.tjb-customer-driver-cab{padding-left:0;padding-right:0}.tjb-customer-driver-cab>span{box-shadow:0 5px 14px rgba(0,0,0,.12)}
.tjb-customer-cell{min-width:0;min-height:var(--tjb-customer-seat-cell-height,58px);border-radius:9px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:10px;font-weight:900}
button.tjb-customer-cell{border:2px solid #222;background:#fff;color:#111;padding:5px;cursor:pointer;display:grid;gap:1px;place-content:center;transition:transform .08s ease,background .12s ease,opacity .12s ease}
button.tjb-customer-cell:hover:not(:disabled){transform:translateY(-1px)}button.tjb-customer-cell:focus-visible{outline:3px solid #009B3A;outline-offset:2px}
button.tjb-customer-cell strong{font-size:15px;line-height:1}button.tjb-customer-cell span{text-transform:capitalize;font-size:9px;color:#666}button.tjb-customer-cell small{font-size:8px;color:#333}
button.tjb-customer-cell.selected{background:#FED100;border-color:#111}.tjb-customer-cell.unavailable{background:#dedede!important;border-color:#bbb!important;color:#888!important;cursor:not-allowed;opacity:.72}.tjb-customer-cell.unavailable span,.tjb-customer-cell.unavailable small{color:#999}
.tjb-customer-cell.premium.available{box-shadow:inset 0 0 0 2px rgba(0,155,58,.35)}.tjb-customer-cell.extra_legroom.available{box-shadow:inset 0 0 0 2px rgba(0,0,0,.18)}.tjb-customer-cell.wheelchair.available{border-style:dashed}
.tjb-customer-cell.aisle{background:transparent;border-radius:0;color:#999;writing-mode:vertical-rl;letter-spacing:.12em}.tjb-customer-cell.driver{background:#222;color:#fff}.tjb-customer-cell.door{background:#e9e9e9;color:#333}.tjb-customer-cell.luggage{background:#ece6d6;color:#4c4029}.tjb-customer-cell.blocked{background:#ddd;color:#888}.tjb-customer-cell.empty{background:transparent}
.tjb-customer-seat-types{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px;font-size:11px;font-weight:800;color:#555}.tjb-customer-seat-types span{display:inline-flex;align-items:center;gap:5px}.tjb-customer-seat-types i{width:10px;height:10px;border:1px solid #222;border-radius:3px;background:#fff}.tjb-customer-seat-types i.premium{box-shadow:inset 0 0 0 2px rgba(0,155,58,.4)}.tjb-customer-seat-types i.extra_legroom{box-shadow:inset 0 0 0 2px rgba(0,0,0,.18)}.tjb-customer-seat-types i.wheelchair{border-style:dashed}
.tjb-seat-hold-next{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 18px;align-items:center;margin:16px 0}.tjb-seat-hold-next h2,.tjb-seat-hold-next p{margin:0}.tjb-seat-hold-next .tjb-help{grid-column:1/-1}.tjb-seat-hold-next .tjb-btn:disabled{opacity:.48;cursor:not-allowed}
.tjb-after-seat-grid{margin-top:16px}.tjb-trip-promo-inline{margin-top:14px;padding:12px;border-left:4px solid #FED100;background:#fffbea}.tjb-trip-promo-inline strong{display:block;font-size:18px}.tjb-trip-promo-inline p{margin:4px 0 0}
@media(max-width:900px){.tjb-booking-builder{grid-template-columns:1fr}.tjb-customer-booking-left{position:static;grid-template-columns:1fr}.tjb-customer-seat-map{grid-row:auto}.tjb-seat-hold-next{grid-template-columns:1fr}.tjb-seat-hold-next .tjb-btn{width:100%}}
@media(max-width:620px){.tjb-customer-booking-left{grid-template-columns:1fr}.tjb-customer-seat-head{display:grid}.tjb-seat-key{justify-content:flex-start}.tjb-customer-seat-grid{gap:5px;padding:8px}.tjb-customer-cell{min-height:var(--tjb-customer-seat-cell-height,52px)}button.tjb-customer-cell strong{font-size:14px}button.tjb-customer-cell span{display:none}.tjb-customer-deck{width:100%}.tjb-seat-hold-next{margin-bottom:24px}}
.tjb-seat-availability-note b{color:#009B3A}
@media(max-width:620px){
  .tjb-customer-seat-grid{gap:4px;padding:6px}
  .tjb-customer-cell{min-height:var(--tjb-customer-seat-cell-height,46px);font-size:8px}
  button.tjb-customer-cell{padding:3px}
  button.tjb-customer-cell strong{font-size:12px}
  button.tjb-customer-cell small{display:none}
}


/* v0.5.1 — full-width customer booking hero + Jamaica travel polish */
.tjb-booking-body{
  overflow-x:hidden;
  background:
    linear-gradient(180deg,#eef3ef 0,#f7f8f7 420px,#f4f5f6 100%);
}
.tjb-booking-shell{
  max-width:none!important;
  width:100%!important;
  margin:0!important;
  padding:0 0 clamp(34px,5vw,72px)!important;
}
.tjb-booking-shell>.tjb-top{
  width:100%;
  max-width:none;
  margin:0;
  border-radius:0;
  min-height:62px;
  padding-left:clamp(16px,3vw,54px);
  padding-right:clamp(16px,3vw,54px);
  box-shadow:0 6px 24px rgba(0,0,0,.22);
}
.tjb-booking-shell>.tjb-travel-hero{
  width:100%;
  max-width:none;
  margin:0;
  border-radius:0;
}
.tjb-travel-hero{
  isolation:isolate;
  min-height:clamp(430px,53vw,650px);
  padding:clamp(46px,6vw,86px) clamp(16px,4vw,64px) clamp(34px,5vw,66px);
  background:
    radial-gradient(circle at 84% 18%,rgba(254,209,0,.42) 0 8%,rgba(254,209,0,.10) 18%,transparent 34%),
    radial-gradient(circle at 11% 84%,rgba(0,155,58,.30),transparent 30%),
    linear-gradient(132deg,#040805 0%,#063b1d 44%,#0b160e 70%,#050505 100%);
  box-shadow:none;
}
.tjb-travel-hero::before{
  content:"";
  position:absolute;
  z-index:-1;
  left:-8%;
  right:-8%;
  bottom:20%;
  height:88px;
  border:2px solid rgba(255,255,255,.13);
  border-left-color:transparent;
  border-right-color:transparent;
  border-radius:50%;
  transform:rotate(-4deg);
  pointer-events:none;
}
.tjb-travel-hero::after{
  content:"";
  position:absolute;
  z-index:-1;
  width:210px;
  height:210px;
  right:clamp(-80px,-2vw,-20px);
  top:28px;
  border:1px solid rgba(254,209,0,.34);
  border-radius:50%;
  box-shadow:0 0 0 36px rgba(254,209,0,.035),0 0 0 72px rgba(254,209,0,.025);
  pointer-events:none;
}
.tjb-travel-hero-glow{
  position:absolute;
  z-index:-1;
  inset:auto 50% 12% auto;
  width:min(820px,80vw);
  height:180px;
  transform:translateX(50%);
  background:radial-gradient(ellipse,rgba(254,209,0,.10),transparent 68%);
  pointer-events:none;
}
.tjb-travel-copy{
  max-width:980px!important;
  margin:0 auto;
  text-align:center;
}
.tjb-travel-copy>.tjb-kicker{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 13px;
  border:1px solid rgba(254,209,0,.44);
  border-radius:999px;
  background:rgba(0,0,0,.20);
  backdrop-filter:blur(6px);
}
.tjb-travel-copy h1{
  color:#fff!important;
  max-width:980px;
  margin:14px auto 14px!important;
  text-align:center;
  text-wrap:balance;
  text-shadow:0 5px 24px rgba(0,0,0,.32);
}
.tjb-travel-copy p{
  max-width:720px!important;
  margin:0 auto!important;
  color:#f3f7f4!important;
  text-align:center;
  font-size:clamp(15px,1.5vw,19px);
  line-height:1.55;
}
.tjb-journey-story{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:9px 11px;
  margin:22px auto 0;
  color:#fff;
}
.tjb-journey-story span{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 11px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  background:rgba(0,0,0,.22);
  backdrop-filter:blur(7px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}
.tjb-journey-story span b{
  display:grid;
  place-items:center;
  width:23px;
  height:23px;
  border-radius:50%;
  background:var(--tj-yellow);
  color:#000;
  font-size:11px;
}
.tjb-journey-story span strong{
  font-size:11px;
  letter-spacing:.01em;
}
.tjb-journey-story>i{
  color:var(--tj-yellow);
  font-style:normal;
  font-weight:1000;
}
.tjb-search-box{
  position:relative;
  z-index:2;
  width:min(1220px,100%);
  margin:clamp(28px,4vw,46px) auto 0!important;
  padding:clamp(16px,2vw,24px)!important;
  border:1px solid rgba(255,255,255,.55);
  border-radius:24px;
  box-shadow:0 22px 60px rgba(0,0,0,.34),0 1px 0 rgba(255,255,255,.8) inset;
}
.tjb-trip-toggle{
  justify-content:center;
  margin-bottom:17px;
}
.tjb-trip-toggle label{
  min-height:37px;
  padding:8px 13px;
  transition:transform .18s ease,background .18s ease;
}
.tjb-trip-toggle label:has(input:checked){
  background:#111;
  color:var(--tj-yellow);
}
.tjb-search-grid{gap:12px}
.tjb-search-box input{
  min-height:48px;
  border-color:#cfd6d1;
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.tjb-search-box input:focus{
  outline:none;
  border-color:#009B3A;
  box-shadow:0 0 0 4px rgba(0,155,58,.10);
}
.tjb-search-submit{
  display:flex;
  width:min(280px,100%);
  min-height:48px;
  margin:16px auto 0!important;
  border-radius:13px;
  letter-spacing:.02em;
  box-shadow:0 9px 22px rgba(0,0,0,.18);
}
.tjb-search-submit:hover{transform:translateY(-1px)}
.tjb-booking-shell>.tjb-discover,
.tjb-booking-shell>.tjb-confidence,
.tjb-booking-shell>.tjb-results-head,
.tjb-booking-shell>.tjb-filter-bar,
.tjb-booking-shell>.tjb-result-list,
.tjb-booking-shell>.tjb-policy-panel,
.tjb-booking-shell>.tjb-booking-builder,
.tjb-booking-shell>.tjb-after-seat-grid,
.tjb-booking-shell>.tjb-seat-hold-next,
.tjb-booking-shell>.tjb-passenger-details,
.tjb-booking-shell>.tjb-extras-policy,
.tjb-booking-shell>.tjb-trip-review,
.tjb-booking-shell>.tjb-customer-seat-empty,
.tjb-booking-shell>.tjb-empty{
  width:min(1480px,calc(100% - clamp(24px,5vw,80px)));
  margin-left:auto;
  margin-right:auto;
}
.tjb-discover{padding-top:clamp(18px,2.5vw,34px)}
.tjb-discover .tjb-section-head{
  text-align:center;
  max-width:850px;
  margin:24px auto 20px;
}
.tjb-discover .tjb-section-head p{max-width:650px;margin-left:auto;margin-right:auto}
.tjb-destination{
  min-height:112px;
  border-color:#dfe6e1;
  box-shadow:0 10px 28px rgba(12,25,16,.055);
}
.tjb-destination-art{
  position:relative;
  overflow:hidden;
  background:linear-gradient(145deg,#FED100 0 48%,#009B3A 48% 76%,#111 76%);
}
.tjb-destination-art::after{
  content:"";
  position:absolute;
  inset:9px;
  border:1px solid rgba(255,255,255,.42);
  border-radius:11px;
}
.tjb-confidence{margin-top:28px!important}
.tjb-confidence article{
  position:relative;
  overflow:hidden;
  min-height:150px;
  border:1px solid #262626;
}
.tjb-confidence article::after{
  content:"";
  position:absolute;
  width:92px;
  height:92px;
  right:-35px;
  bottom:-38px;
  border-radius:50%;
  background:rgba(254,209,0,.07);
}
@media(hover:hover) and (pointer:fine){
  .tjb-destination:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(12,25,16,.11)}
  .tjb-trip-toggle label:hover{transform:translateY(-1px)}
}
@media(max-width:900px){
  .tjb-travel-hero{min-height:auto;padding-top:52px}
  .tjb-search-box{width:min(760px,100%)}
}
@media(max-width:620px){
  .tjb-booking-shell>.tjb-top{min-height:56px;padding-left:12px;padding-right:12px}
  .tjb-travel-hero{padding:38px 14px 30px!important;border-radius:0!important}
  .tjb-travel-copy h1{font-size:clamp(38px,12vw,58px)!important}
  .tjb-journey-story{gap:7px}
  .tjb-journey-story>i{display:none}
  .tjb-journey-story span{flex:1 1 145px;justify-content:center}
  .tjb-search-box{border-radius:18px;padding:12px!important}
  .tjb-trip-toggle{justify-content:stretch}
  .tjb-trip-toggle label{flex:1;justify-content:center}
  .tjb-booking-shell>.tjb-discover,
  .tjb-booking-shell>.tjb-confidence,
  .tjb-booking-shell>.tjb-results-head,
  .tjb-booking-shell>.tjb-filter-bar,
  .tjb-booking-shell>.tjb-result-list,
  .tjb-booking-shell>.tjb-policy-panel,
  .tjb-booking-shell>.tjb-booking-builder,
  .tjb-booking-shell>.tjb-after-seat-grid,
  .tjb-booking-shell>.tjb-seat-hold-next,
  .tjb-booking-shell>.tjb-passenger-details,
  .tjb-booking-shell>.tjb-extras-policy,
  .tjb-booking-shell>.tjb-trip-review,
  .tjb-booking-shell>.tjb-customer-seat-empty,
  .tjb-booking-shell>.tjb-empty{
    width:calc(100% - 20px);
  }
  .tjb-destination-grid{gap:10px}
  .tjb-destination{min-height:0;padding:12px}
  .tjb-destination-art{flex-basis:68px;height:68px;font-size:29px}
}


/* v0.5.2 — live route search, round-trip return date, fare-on-seat cart interaction. */
.tjb-trip-toggle{display:flex!important;flex-wrap:nowrap!important;align-items:center;justify-content:center;gap:10px}
.tjb-trip-toggle label{display:inline-flex!important;flex-wrap:nowrap!important;align-items:center;white-space:nowrap!important;line-height:1!important}
.tjb-trip-toggle label span{display:inline!important;white-space:nowrap!important}
.tjb-trip-toggle input{flex:0 0 auto!important;margin:0!important;width:auto!important}
.tjb-search-grid{grid-template-columns:minmax(180px,1.3fr) minmax(180px,1.3fr) minmax(140px,.9fr) minmax(140px,.9fr) minmax(110px,.65fr)}
.tjb-search-grid .tjb-return-field[hidden]{display:none!important}
.tjb-search-place{position:relative}
.tjb-route-suggestions{position:absolute;z-index:30;left:0;right:0;top:100%;margin-top:5px;padding:6px;background:#fff;border:1px solid #d0d5dd;border-radius:12px;box-shadow:0 16px 40px rgba(0,0,0,.18);max-height:240px;overflow:auto}
.tjb-route-suggestions[hidden]{display:none!important}
.tjb-route-suggestions button{display:block;width:100%;min-height:38px;padding:8px 10px;border:0;border-radius:8px;background:#fff;color:#111;text-align:left;font:inherit;font-size:12px;font-weight:800;cursor:pointer}
.tjb-route-suggestions button:hover,.tjb-route-suggestions button:focus{background:#f2f8f4;outline:2px solid rgba(0,155,58,.18)}
.tjb-confidence article{text-align:center}
.tjb-confidence-title{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:8px}
.tjb-confidence-title b{flex:0 0 36px}
.tjb-confidence-title h3{margin:0!important;color:#fff!important;text-align:center!important}
.tjb-confidence p{text-align:center}
.tjb-customer-seat-map{position:relative}
.tjb-seat-fare-popover{position:absolute;z-index:40;width:min(300px,calc(100% - 20px));padding:14px;border:2px solid #111;border-radius:16px;background:#fff;box-shadow:0 18px 45px rgba(0,0,0,.28)}
.tjb-seat-fare-popover[hidden]{display:none!important}
.tjb-seat-fare-popover h3{margin:3px 30px 10px 0;font-size:16px;color:#111}
.tjb-seat-fare-close{position:absolute;right:8px;top:8px;width:28px;height:28px;padding:0!important;border:0!important;border-radius:50%!important;background:#111!important;color:#fff!important;font-size:18px!important;line-height:1!important}
.tjb-seat-fare-popover [data-tjb-seat-fare-options]{display:grid;gap:7px}
.tjb-seat-fare-option,.tjb-seat-fare-remove{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:42px;padding:9px 10px!important;border:1px solid #d8dce0!important;border-radius:10px!important;background:#fff!important;color:#111!important;font-size:12px!important;text-transform:none!important;cursor:pointer}
.tjb-seat-fare-option:hover,.tjb-seat-fare-option:focus{border-color:#009B3A!important;background:#f1fbf5!important}
.tjb-seat-fare-option strong{color:#009B3A;font-size:13px}
.tjb-seat-fare-remove{justify-content:center;border-color:#f3b4b4!important;color:#9d1c1c!important;background:#fff7f7!important}
.tjb-held-seat-list>span{min-width:100%;grid-template-columns:minmax(55px,.35fr) minmax(0,1fr);align-items:center}
.tjb-held-seat-list>span small{text-align:right}
.tjb-customer-cell.seat.available:hover{outline:3px solid rgba(254,209,0,.65);transform:translateY(-1px)}
.tjb-results-head-return{margin-top:38px!important;padding-top:18px;border-top:2px solid #dfe4e0}
@media(max-width:980px){.tjb-search-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tjb-search-grid>label:last-child{grid-column:auto}.tjb-seat-fare-popover{position:fixed;left:12px!important;right:12px!important;bottom:14px;top:auto!important;width:auto;max-width:none}}
@media(max-width:620px){.tjb-trip-toggle{gap:6px}.tjb-trip-toggle label{padding:8px 9px!important;font-size:11px!important}.tjb-search-grid{grid-template-columns:1fr}.tjb-route-suggestions{position:absolute}.tjb-confidence-title{justify-content:center}}


/* v0.5.2.1 — route-first autocomplete reliability + persistent confidence cards. */
.tjb-route-suggestions button span{display:block;font-size:12px;font-weight:900;line-height:1.25;color:#111}
.tjb-route-suggestions button small{display:block;margin-top:3px;font-size:10px;font-weight:700;line-height:1.3;color:#667085;text-transform:none}
.tjb-route-suggestion-empty{padding:10px 11px;color:#667085;font-size:11px;font-weight:800;text-align:left}
.tjb-search-place input:disabled{background:#f2f4f7!important;color:#98a2b3!important;cursor:not-allowed}
.tjb-search-place:focus-within{z-index:45}

/* v0.5.2.1 — keep live route suggestions visible outside the hero/search box. */
.tjb-travel-hero{overflow:visible!important}
.tjb-travel-hero::before{left:0!important;right:0!important}
.tjb-travel-hero::after{right:0!important}
.tjb-search-box{position:relative;z-index:20;overflow:visible!important}
.tjb-search-grid,.tjb-search-place{overflow:visible!important}
.tjb-route-suggestions{z-index:100!important}
.tjb-route-suggestions button[data-tjb-route-option] span{white-space:normal}

/* v0.6.0 — customer passenger-details step */
.tjb-passenger-details{margin-top:18px}
.tjb-passenger-details[hidden]{display:none!important}
.tjb-passenger-details .tjb-section-head.compact{text-align:left;margin-bottom:18px}
.tjb-passenger-details .tjb-section-head.compact h2{margin:4px 0 6px}
.tjb-passenger-contact,.tjb-passenger-name-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.tjb-passenger-details label{display:flex;flex-direction:column;gap:7px;font-weight:800;color:#111}
.tjb-passenger-details input,.tjb-passenger-details textarea{width:100%;box-sizing:border-box;border:1px solid #d5d9df;border-radius:12px;background:#fff;color:#111;padding:13px 14px;font:inherit;outline:none}
.tjb-passenger-details input:focus,.tjb-passenger-details textarea:focus{border-color:#009b3a;box-shadow:0 0 0 3px rgba(0,155,58,.12)}
.tjb-passenger-list{display:grid;gap:12px;margin:16px 0}
.tjb-passenger-card{border:1px solid #e3e7eb;border-radius:16px;padding:16px;background:#fafbfc}
.tjb-passenger-seat-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.tjb-passenger-seat-meta strong{font-size:14px}
.tjb-passenger-note span{font-weight:500;color:#667085}
.tjb-passenger-note textarea{min-height:92px;resize:vertical}
.tjb-passenger-actions{display:flex;justify-content:flex-end;margin-top:14px}
.tjb-passenger-form.is-saved .tjb-passenger-card{border-color:#9ed8b2;background:#f3fff7}
@media(max-width:720px){.tjb-passenger-contact,.tjb-passenger-name-grid{grid-template-columns:1fr}.tjb-passenger-seat-meta{align-items:flex-start;flex-direction:column}.tjb-passenger-actions .tjb-btn{width:100%}}


/* v0.6.1 — passenger continuation, extras/policy, and server-authoritative review */
.tjb-passenger-actions{gap:10px;align-items:center;flex-wrap:wrap}
.tjb-btn-secondary{background:#fff!important;color:#111!important;border:2px solid #111!important}
.tjb-btn-secondary:hover,.tjb-btn-secondary:focus{background:#111!important;color:#fff!important;border-color:#111!important}
.tjb-extras-policy,.tjb-trip-review{margin-top:18px}
.tjb-extras-policy[hidden],.tjb-trip-review[hidden],[data-tjb-passenger-next][hidden]{display:none!important}
.tjb-extras-policy .tjb-section-head.compact,.tjb-trip-review .tjb-section-head.compact{text-align:left;margin-bottom:18px}
.tjb-extras-policy .tjb-section-head.compact h2,.tjb-trip-review .tjb-section-head.compact h2{margin:4px 0 6px}
.tjb-extras-policy-grid{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(300px,.82fr);gap:18px;align-items:start}
.tjb-extras-policy-grid>div{min-width:0}
.tjb-extras-policy-grid h3{margin:0 0 12px;font-size:18px}
.tjb-addon-select-list{display:grid;gap:10px}
.tjb-addon-select{position:relative;border:1px solid #e1e6e3;border-radius:16px;padding:14px;background:#fafcfa}
.tjb-addon-main{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:start;margin:0;cursor:pointer}
.tjb-addon-main>input{width:19px;height:19px;margin:3px 0 0;accent-color:#009B3A}
.tjb-addon-main>span{display:grid;gap:3px;min-width:0}
.tjb-addon-main b{font-size:14px;color:#111}
.tjb-addon-main small{font-size:11px;font-weight:700;color:#667085}
.tjb-addon-main em{font-size:12px;font-style:normal;font-weight:500;color:#475467;line-height:1.45}
.tjb-addon-main strong{font-size:13px;white-space:nowrap;color:#111}
.tjb-addon-qty{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-end;gap:8px!important;margin-top:10px;font-size:12px!important}
.tjb-addon-qty input{width:82px!important;padding:8px 9px!important;border:1px solid #d5d9df!important;border-radius:10px!important;background:#fff!important}
.tjb-required-pill{position:absolute;right:13px;bottom:13px;display:inline-flex;border-radius:999px;padding:4px 8px;background:#fff4bf;color:#5d4c00;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.tjb-policy-accept-card{display:grid;gap:9px;border:1px solid #dfe5e1;border-radius:16px;padding:16px;background:#fff}
.tjb-policy-accept-card>strong{font-size:16px}
.tjb-policy-accept-card>span{font-size:12px;color:#667085;font-weight:700}
.tjb-policy-accept-card .tjb-policy-link{width:max-content;font-weight:800}
.tjb-policy-accept-card .tjb-check{display:flex;flex-direction:row;gap:9px;align-items:flex-start;margin-top:4px;font-size:13px;line-height:1.45;cursor:pointer}
.tjb-policy-accept-card .tjb-check input{width:19px;height:19px;flex:0 0 auto;margin-top:1px;accent-color:#009B3A}
.tjb-extras-policy .tjb-trip-promo-inline{margin-top:12px}
.tjb-trip-review{border-top:4px solid #009B3A}
.tjb-review-lines{display:grid;gap:8px;margin:4px 0 18px}
.tjb-review-line{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid #ecefed;font-size:13px}
.tjb-review-line span{color:#475467}
.tjb-review-line strong{text-align:right;color:#111}
.tjb-review-policy strong,.tjb-review-promo strong{font-size:12px}
.tjb-review-totals{margin-left:auto;width:min(100%,460px);display:grid;gap:8px;padding:16px;border:1px solid #e0e5e2;border-radius:16px;background:#fafcfa}
.tjb-review-totals>div{display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:13px}
.tjb-review-totals .grand{padding-top:10px;margin-top:3px;border-top:2px solid #111;font-size:18px;font-weight:900}
.tjb-review-totals .grand strong{color:#009B3A}
@media(max-width:780px){
  .tjb-extras-policy-grid{grid-template-columns:1fr}
  .tjb-addon-main{grid-template-columns:auto minmax(0,1fr)}
  .tjb-addon-main>strong{grid-column:2}
  .tjb-required-pill{position:static;width:max-content;margin-top:9px}
  .tjb-review-line{align-items:flex-start;flex-direction:column;gap:4px}
  .tjb-review-line strong{text-align:left}
}
@media(max-width:720px){.tjb-passenger-actions{flex-direction:column}.tjb-passenger-actions .tjb-btn{width:100%}}

/* v0.7.0 — WooCommerce checkout bridge + ticket presentation */
.tjb-review-checkout-actions{margin-top:22px;padding-top:18px;border-top:1px solid #e5e7eb;display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.tjb-review-checkout-actions .tjb-seat-message{margin:0;flex:1 1 280px}
.tjb-wc-journey{display:block;font-size:.84em;font-weight:600;margin-top:4px;color:#56606f}
.tjb-wc-qty{font-weight:700}
.tjb-wc-ticket-wrap{margin:28px 0;padding:22px;border:1px solid #dedede;border-radius:18px;background:#fff}
.tjb-wc-ticket-wrap>h2{margin-top:0}
.tjb-wc-ticket{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:22px;align-items:center;margin-top:18px;padding:20px;border:2px solid #111;border-radius:16px;background:#fff}
.tjb-wc-ticket-main h3{margin:6px 0 10px;font-size:1.45rem}
.tjb-wc-ticket-main p{margin:5px 0}
.tjb-wc-ticket-main code{display:block;margin:10px 0;padding:8px 10px;background:#f4f4f4;border-radius:8px;word-break:break-all}
.tjb-ticket-price{margin:16px 0;padding:13px 14px;border:1px solid #d6d9df;border-radius:12px;background:#f8f9fb}
.tjb-ticket-price>strong,.tjb-ticket-price>small{display:block}
.tjb-ticket-price>small{margin:2px 0 8px;color:#667085}
.tjb-ticket-price-row{display:flex;justify-content:space-between;gap:16px;padding:4px 0}
.tjb-ticket-price-row em{font-style:normal;font-weight:500}
.tjb-ticket-price-row.total{margin-top:5px;padding-top:8px;border-top:2px solid #111}
.tjb-ticket-policy{margin:16px 0;padding:13px 14px;border:1px solid #ded59a;border-radius:12px;background:#fffbea}
.tjb-ticket-policy>strong,.tjb-ticket-policy>small{display:block}.tjb-ticket-policy>small{margin:2px 0 8px;color:#667085}
.tjb-ticket-policy dl{margin:0}.tjb-ticket-policy dl>div{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(0,1.4fr);gap:10px;padding:5px 0;border-top:1px solid #ece3a7}
.tjb-ticket-policy dt{font-weight:800}.tjb-ticket-policy dd{margin:0;overflow-wrap:anywhere}.tjb-ticket-policy p{margin:10px 0 0;line-height:1.45}
@media(max-width:640px){.tjb-ticket-policy dl>div{grid-template-columns:1fr;gap:3px}}
.tjb-ticket-ref{display:block;margin-top:12px;font-size:1.15rem}
.tjb-wc-ticket-qr{text-align:center}
.tjb-wc-ticket-qr img{max-width:220px;width:100%;height:auto;background:#fff;padding:8px;border:1px solid #ddd;border-radius:10px}
@media(max-width:720px){.tjb-wc-ticket{grid-template-columns:1fr}.tjb-wc-ticket-qr{order:-1}.tjb-wc-ticket-qr img{max-width:190px}}
@media print{.tjb-wc-ticket-wrap{border:0;padding:0}.tjb-wc-ticket{break-inside:avoid;box-shadow:none}}

/* v0.7.1 — round-trip sequencing + purchaser booked-seat clarity */
.tjb-btn-disabled{opacity:.5;cursor:not-allowed;pointer-events:none}
.tjb-roundtrip-return-picker[hidden]{display:none!important}
.tjb-roundtrip-return-picker{margin-top:18px}
.tjb-roundtrip-progress,.tjb-roundtrip-outbound-summary{border-left:4px solid #009B3A}
.tjb-roundtrip-progress h2,.tjb-roundtrip-outbound-summary h3{margin:5px 0 7px}
.tjb-customer-cell.seat.your_booking{cursor:not-allowed;opacity:.72;background:#e5e7eb;border-color:#98a2b3;color:#344054}
.tjb-customer-cell.seat.your_booking span{font-weight:900}
.tjb-seat-key .your_booking:before{background:#98a2b3}
.tjb-passenger-seat-meta small{display:block;color:#667085;font-size:11px;font-weight:700;margin-top:3px}

/* v0.8.1 — reviewed manifest actions, undo workflow and boarding verification */
html.tjb-review-open,html.tjb-review-open body{overflow:hidden!important}
.tjb-review-overlay{position:fixed;inset:0;z-index:999999;background:rgba(0,0,0,.68);display:grid;place-items:center;padding:18px}
.tjb-review-overlay[hidden]{display:none!important}
.tjb-review-modal{position:relative;width:min(760px,100%);max-height:min(88vh,900px);overflow:auto;background:#fff;border-radius:22px;padding:24px;box-shadow:0 28px 80px rgba(0,0,0,.32);color:#111}
.tjb-review-modal h2{margin:6px 44px 8px 0;font-size:clamp(24px,4vw,34px)}
.tjb-review-modal h3{margin:0 0 7px;font-size:16px}
.tjb-review-modal p{line-height:1.55;color:#475467}
.tjb-review-x{position:absolute;right:14px;top:12px;border:0;background:#f2f4f7;width:38px;height:38px;border-radius:50%;font-size:25px;line-height:1;cursor:pointer}
.tjb-review-summary{margin:15px 0;padding:14px;border:1px solid #dfe3e8;border-radius:14px;background:#f8fafb;line-height:1.55;font-weight:700}
.tjb-review-reason{display:grid;gap:12px;margin-top:18px}
.tjb-review-reason label,.tjb-verify-grid label{display:grid;gap:6px;font-weight:800}
.tjb-review-reason select,.tjb-review-reason textarea,.tjb-verify-grid input{width:100%;border:1px solid #cfd6df;border-radius:11px;padding:11px 12px;background:#fff;color:#111;font:inherit}
.tjb-review-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid #e5e7eb}
.tjb-review-error,.tjb-verify-result{padding:11px 12px;border-radius:11px;font-weight:800}
.tjb-review-error,.tjb-verify-result.bad{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}
.tjb-verify-result.ok{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}
.tjb-verify-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
.tjb-verify-grid>section{border:1px solid #dfe3e8;border-radius:16px;padding:15px;background:#fafbfc}
.tjb-qr-video{display:block;width:100%;max-height:290px;object-fit:cover;margin-top:12px;border-radius:12px;background:#111}
.tjb-ticket-reveal{margin-top:12px;padding:12px;border:2px dashed #111;border-radius:12px;background:#fff}
.tjb-ticket-reveal span{display:block;font-size:11px;font-weight:800;color:#667085;text-transform:uppercase}
.tjb-ticket-reveal strong{display:block;margin-top:5px;font-family:monospace;font-size:16px;word-break:break-all}
.tjb-verify-check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:flex-start;gap:9px!important;margin-top:12px;font-size:12px;line-height:1.45}
.tjb-verify-check input{width:18px!important;height:18px;margin-top:1px;flex:0 0 auto}
.tjb-inline{display:inline-flex;flex-wrap:wrap;gap:6px;margin:2px 4px 2px 0}
.tjb-mini.undo{background:#fff;border-color:#667085;color:#344054}
@media(max-width:700px){.tjb-review-overlay{padding:0;align-items:end}.tjb-review-modal{width:100%;max-height:92vh;border-radius:22px 22px 0 0;padding:20px}.tjb-verify-grid{grid-template-columns:1fr}.tjb-review-actions{flex-direction:column-reverse}.tjb-review-actions .tjb-btn{width:100%}}

/* JAMBus v0.9.1 — grouped, filterable passenger manifest */
.tjb-manifest{display:grid;gap:14px}
.tjb-manifest-toolbar{position:sticky;top:12px;z-index:15;padding:16px}
.tjb-manifest-filter-grid{display:grid;grid-template-columns:minmax(220px,1.6fr) repeat(6,minmax(125px,1fr));gap:10px;align-items:end}
.tjb-manifest-filter-grid label{display:grid;gap:5px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:#475467}
.tjb-manifest-filter-grid input,.tjb-manifest-filter-grid select{width:100%;min-width:0;border:1px solid #d0d5dd;border-radius:10px;background:#fff;color:#111;padding:10px 11px;font:inherit;text-transform:none;letter-spacing:0}
.tjb-manifest-toolbar-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid #eaecf0}
.tjb-manifest-buttons{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}
.tjb-manifest-count{font-size:12px;font-weight:900;color:#344054}
.tjb-manifest-feedback{margin-top:10px;border-radius:10px;padding:9px 11px;font-size:12px;font-weight:800;background:#ecfdf3;color:#027a48}
.tjb-manifest-feedback.bad{background:#fef3f2;color:#b42318}
.tjb-manifest-group{padding:0;overflow:hidden}
.tjb-manifest-group[hidden],.tjb-manifest-row[hidden]{display:none!important}
.tjb-manifest-group-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;background:linear-gradient(135deg,#fffbea,#fff);border-bottom:1px solid #eaecf0}
.tjb-manifest-group-head h3{margin:2px 0 3px;font-size:20px}
.tjb-manifest-group-head p{margin:0;color:#667085;font-size:12px}
.tjb-manifest-group-count{flex:0 0 auto;border-radius:999px;background:#111;color:#FED100;padding:7px 10px;font-size:10px;font-weight:900}
.tjb-manifest-table{margin:0!important;width:100%}
.tjb-manifest-table td,.tjb-manifest-table th{vertical-align:top}
.tjb-manifest-table td small{display:block;margin-top:4px;color:#667085;line-height:1.45}
.tjb-leg-badge{display:inline-block;margin:0 7px 5px 0;border-radius:999px;padding:4px 7px;font-size:9px;font-weight:1000;letter-spacing:.04em}
.tjb-leg-badge.outbound{background:#ecfdf3;color:#027a48}
.tjb-leg-badge.return{background:#fff4cc;color:#7a5600}
.tjb-manifest-actions{min-width:210px}
.tjb-manifest-no-results{margin:0}
@media(max-width:1180px){.tjb-manifest-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.tjb-manifest-search{grid-column:span 3}}
@media(max-width:760px){.tjb-manifest-toolbar{position:static}.tjb-manifest-filter-grid{grid-template-columns:1fr 1fr}.tjb-manifest-search{grid-column:span 2}.tjb-manifest-toolbar-actions,.tjb-manifest-group-head{align-items:flex-start;flex-direction:column}.tjb-manifest-buttons{justify-content:flex-start}.tjb-manifest-group-count{align-self:flex-start}}
@media(max-width:520px){.tjb-manifest-filter-grid{grid-template-columns:1fr}.tjb-manifest-search{grid-column:auto}}
@media print{
 html.tjb-manifest-printing body *{visibility:hidden!important}
 html.tjb-manifest-printing [data-tjb-manifest],html.tjb-manifest-printing [data-tjb-manifest] *{visibility:visible!important}
 html.tjb-manifest-printing [data-tjb-manifest]{position:absolute!important;left:0!important;top:0!important;width:100%!important;display:block!important;background:#fff!important}
 html.tjb-manifest-printing [data-tjb-manifest-toolbar],html.tjb-manifest-printing .tjb-manifest-actions,html.tjb-manifest-printing .tjb-manifest-actions-head,html.tjb-manifest-printing [data-tjb-manifest-empty]{display:none!important}
 html.tjb-manifest-printing .tjb-manifest-group{break-inside:avoid;margin:0 0 14px!important;box-shadow:none!important;border:1px solid #bbb!important}
 html.tjb-manifest-printing .tjb-manifest-group[hidden],html.tjb-manifest-printing .tjb-manifest-row[hidden]{display:none!important}
 html.tjb-manifest-printing .tjb-scroll{overflow:visible!important}
 html.tjb-manifest-printing .tjb-manifest-table{font-size:10px!important}
 html.tjb-manifest-printing .tjb-manifest-group-head{padding:10px 12px!important;background:#fff!important}
}

/* JAMBus v0.9.2 — trip operations + shared filtered reports */
.tjb-hero h1{color:#fff!important}
.tjb-trip-ops{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:10px 0 16px;padding:13px 14px;border:1px solid #e4e7ec;border-radius:14px;background:#f8fafc}
.tjb-trip-ops-state{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.tjb-trip-ops-state small{color:#667085;font-weight:700}
.tjb-trip-ops-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.tjb-trip-action{align-items:end}.tjb-trip-delay-field{display:grid!important;gap:4px;margin:0!important;font-size:9px!important;text-transform:uppercase;letter-spacing:.04em}.tjb-trip-delay-field input{width:90px!important;margin:0!important;padding:6px 8px!important}
.tjb-report{display:grid;gap:14px}.tjb-report-toolbar{position:sticky;top:12px;z-index:14;padding:16px}.tjb-report [data-tjb-report-row][hidden],.tjb-report [data-tjb-report-group][hidden]{display:none!important}
.tjb-booking-head-status{display:grid;justify-items:end;gap:5px;text-align:right}.tjb-booking-head-status strong{font-size:16px}.tjb-booking-head-status small{color:#667085;font-weight:700}
@media(max-width:760px){.tjb-trip-ops{align-items:flex-start;flex-direction:column}.tjb-trip-ops-actions{justify-content:flex-start;width:100%}.tjb-trip-ops-actions .tjb-inline{width:auto}.tjb-report-toolbar{position:static}.tjb-booking-head-status{justify-items:start;text-align:left}}
@media print{
 html.tjb-report-printing body *{visibility:hidden!important}
 html.tjb-report-printing .tjb-report-print-target,html.tjb-report-printing .tjb-report-print-target *{visibility:visible!important}
 html.tjb-report-printing .tjb-report-print-target{position:absolute!important;left:0!important;top:0!important;width:100%!important;display:block!important;background:#fff!important}
 html.tjb-report-printing .tjb-report-print-target .tjb-report-toolbar,html.tjb-report-printing .tjb-report-print-target [data-tjb-report-empty]{display:none!important}
 html.tjb-report-printing .tjb-report-print-target [data-tjb-report-row][hidden],html.tjb-report-printing .tjb-report-print-target [data-tjb-report-group][hidden]{display:none!important}
 html.tjb-report-printing .tjb-report-print-target .tjb-card{box-shadow:none!important;break-inside:avoid;border:1px solid #bbb!important}
 html.tjb-report-printing .tjb-report-print-target .tjb-scroll{overflow:visible!important}
}
/* v0.9.4 crew operations + route-flow badges */
.tjb-leg-badge.forward{background:#ecfdf3;color:#027a48}
.tjb-leg-badge.reverse{background:#fff4cc;color:#7a5600}
.tjb-driver-ops-nav{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 20px}
.tjb-driver-ops-nav .tjb-btn{min-width:170px;text-align:center}
@media(max-width:640px){.tjb-driver-ops-nav{display:grid;grid-template-columns:1fr 1fr}.tjb-driver-ops-nav .tjb-btn{min-width:0;width:100%}}

/* JAMBus v0.9.6 — trip tabs, departure-first manifest and leg-specific reporting */
.tjb-trip-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px;padding:6px;border:1px solid #e4e7ec;border-radius:14px;background:#f9fafb}
.tjb-trip-tabs button{appearance:none;border:1px solid transparent;border-radius:10px;background:transparent;color:#344054;padding:9px 13px;font-size:12px;font-weight:900;cursor:pointer}
.tjb-trip-tabs button:hover{background:#fff;border-color:#d0d5dd}
.tjb-trip-tabs button.active{background:#111;color:#FED100;border-color:#111;box-shadow:0 2px 6px rgba(0,0,0,.12)}
.tjb-manifest-departure{padding:0;overflow:hidden}
.tjb-manifest-departure[hidden],.tjb-manifest-booking-subgroup[hidden]{display:none!important}
.tjb-manifest-departure-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 18px;background:linear-gradient(135deg,#111,#292929);color:#fff}
.tjb-manifest-departure-head h3{margin:7px 0 4px;color:#fff;font-size:20px}
.tjb-manifest-departure-head p{margin:0;color:#eaecf0;font-size:12px}
.tjb-manifest-booking-subgroup{border-top:1px solid #e4e7ec;background:#fff}
.tjb-manifest-booking-subgroup>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 16px;background:#fffbea;border-bottom:1px solid #f2f4f7}
.tjb-manifest-booking-subgroup>header b{display:block;font-size:14px;color:#101828}
.tjb-manifest-booking-subgroup>header small{display:block;margin-top:3px;color:#667085}
.tjb-booking-leg-block{margin:0;border-top:1px solid #e4e7ec;background:#fff}
.tjb-booking-leg-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:12px 16px;background:#f9fafb}
.tjb-booking-leg-head b,.tjb-booking-leg-head small{display:block}.tjb-booking-leg-head small{margin-top:4px;color:#667085}
.tjb-leg-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:7px}
.tjb-trip-priority{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;margin:0 7px 6px 0;font-size:10px;font-weight:950;letter-spacing:.05em;text-transform:uppercase;background:#f2f4f7;color:#344054}
.tjb-trip-priority.current{background:#FED100;color:#111}.tjb-trip-priority.next{background:#ecfdf3;color:#027a48}.tjb-trip-priority.later{background:#eff8ff;color:#175cd3}.tjb-trip-priority.earlier_today{background:#fff6ed;color:#b54708}.tjb-trip-priority.past{background:#f2f4f7;color:#667085}
.tjb-driver-report{display:grid;gap:14px}.tjb-driver-report>.tjb-driver-departure,.tjb-driver-report>.tjb-trip-operation-card{margin:0}
.tjb-driver-lookup{margin-bottom:14px}
@media(max-width:760px){.tjb-trip-tabs{display:grid;grid-template-columns:1fr 1fr}.tjb-manifest-departure-head,.tjb-booking-leg-head,.tjb-manifest-booking-subgroup>header{flex-direction:column;align-items:flex-start}.tjb-leg-actions{justify-content:flex-start}.tjb-manifest-departure-head .tjb-leg-actions{width:100%}}
@media(max-width:460px){.tjb-trip-tabs{grid-template-columns:1fr}.tjb-trip-tabs button{text-align:left}}

@media print{
 html.tjb-leg-printing body *{visibility:hidden!important}
 html.tjb-leg-printing .tjb-leg-print-target,html.tjb-leg-printing .tjb-leg-print-target *{visibility:visible!important}
 html.tjb-leg-printing .tjb-leg-print-target{position:absolute!important;left:0!important;top:0!important;width:100%!important;display:block!important;background:#fff!important;margin:0!important;box-shadow:none!important;border:0!important}
 html.tjb-leg-printing .tjb-leg-print-target .tjb-leg-actions,html.tjb-leg-printing .tjb-leg-print-target .tjb-manifest-actions,html.tjb-leg-printing .tjb-leg-print-target .tjb-manifest-actions-head,html.tjb-leg-printing .tjb-leg-print-target form,html.tjb-leg-printing .tjb-leg-print-target button{display:none!important}
 html.tjb-leg-printing .tjb-leg-print-target [hidden]{display:none!important}
 html.tjb-leg-printing .tjb-leg-print-target .tjb-scroll{overflow:visible!important}
 html.tjb-leg-printing .tjb-leg-print-target table{font-size:10px!important}
 html.tjb-leg-printing .tjb-leg-print-target .tjb-manifest-departure-head{background:#fff!important;color:#111!important;border-bottom:2px solid #111}
 html.tjb-leg-printing .tjb-leg-print-target .tjb-manifest-departure-head h3,html.tjb-leg-printing .tjb-leg-print-target .tjb-manifest-departure-head p{color:#111!important}
}
.tjb-sequence-notice{display:flex;gap:8px 14px;align-items:center;flex-wrap:wrap;border-left:4px solid #FED100}.tjb-sequence-notice b{font-weight:950}.tjb-sequence-notice span{color:#475467}

/* JAMBus v1.0.0 — Customer Manage My Trips */
.tjb-customer-trips-page{background:#f5f6f8;min-height:70vh;padding:28px 16px 56px}.tjb-customer-trips-shell{max-width:1180px;margin:0 auto}.tjb-customer-trips{display:grid;gap:16px}.tjb-customer-trips-hero{margin:0}.tjb-customer-trip-tabs{margin:0}.tjb-customer-trip-list{display:grid;gap:16px}.tjb-customer-trip-card{padding:0;overflow:hidden}.tjb-customer-trip-card[hidden]{display:none!important}
.tjb-customer-trip-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px;background:#fff}.tjb-customer-trip-head h3{margin:7px 0 4px;font-size:21px}.tjb-customer-trip-head p{margin:0;color:#667085}.tjb-customer-trip-head .tjb-leg-badge{margin-right:8px}.tjb-customer-trip-state{display:grid;justify-items:end;gap:6px;text-align:right}.tjb-customer-trip-state small{color:#667085;font-weight:800}
.tjb-customer-passenger-list{border-top:1px solid #e4e7ec}.tjb-customer-passenger{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 18px;border-bottom:1px solid #f2f4f7}.tjb-customer-passenger:last-child{border-bottom:0}.tjb-customer-passenger strong,.tjb-customer-passenger span,.tjb-customer-passenger small{display:block}.tjb-customer-passenger span{margin-top:3px}.tjb-customer-passenger small{margin-top:3px;color:#667085}.tjb-customer-passenger-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.tjb-mini.disabled{opacity:.55;cursor:not-allowed;pointer-events:none}
.tjb-customer-trip-policy{padding:12px 18px;background:#fffbeb;border-top:1px solid #f5df89;color:#594500}.tjb-customer-trip-actions{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;padding:15px 18px;border-top:1px solid #e4e7ec;background:#f9fafb}.tjb-cancel-details{position:relative}.tjb-cancel-details>summary{list-style:none;cursor:pointer}.tjb-cancel-details>summary::-webkit-details-marker{display:none}.tjb-cancel-form{display:grid;gap:10px;width:min(520px,calc(100vw - 48px));margin-top:10px;padding:14px;background:#fff;border:1px solid #d0d5dd;border-radius:14px;box-shadow:0 15px 35px rgba(16,24,40,.14)}.tjb-cancel-form label,.tjb-reschedule-confirm label,.tjb-reschedule-step label{display:grid;gap:5px;font-weight:800}.tjb-cancel-form textarea,.tjb-cancel-form select,.tjb-reschedule-confirm select,.tjb-reschedule-step select{width:100%}
.tjb-policy-note{margin:0;padding:14px 18px;background:#f8fafc;border-top:1px solid #e4e7ec}.tjb-policy-note.warning{background:#fff4e5;border-color:#fed7aa}.tjb-policy-note strong{display:block;margin-bottom:4px}.tjb-policy-note p{margin:0;color:#475467}.tjb-manage-message{max-width:1180px;margin:0 auto 14px;padding:12px 14px;border-radius:12px;font-weight:800}.tjb-manage-message.ok{background:#dcfce7;color:#166534}.tjb-manage-message.bad{background:#fee2e2;color:#991b1b}.bad-text{color:#b42318!important}
.tjb-reschedule-builder{display:grid;gap:14px;padding:18px}.tjb-reschedule-builder>header h2{margin:4px 0}.tjb-reschedule-step,.tjb-reschedule-confirm{display:grid;gap:13px}.tjb-reschedule-summary{display:grid;gap:4px;padding:12px 14px;border-radius:12px;background:#f2f4f7}.tjb-reschedule-summary span{font-weight:800}.tjb-reschedule-confirm .tjb-policy-note{border:1px solid #e4e7ec;border-radius:12px}.tjb-check{display:flex!important;align-items:flex-start!important;grid-template-columns:none!important;gap:8px!important}.tjb-check input{width:auto!important;margin-top:3px!important}
@media(max-width:720px){.tjb-customer-trip-head,.tjb-customer-passenger{flex-direction:column;align-items:flex-start}.tjb-customer-trip-state{justify-items:start;text-align:left}.tjb-customer-passenger-actions{justify-content:flex-start}.tjb-customer-trip-actions{display:grid;grid-template-columns:1fr}.tjb-customer-trip-actions>.tjb-btn,.tjb-customer-trip-actions details,.tjb-cancel-details>summary{width:100%;text-align:center}.tjb-cancel-form{width:100%;box-sizing:border-box}.tjb-customer-trips-page{padding:18px 10px 42px}}
.tjb-cancel-review{padding:12px 14px;border:1px solid #bbf7d0;border-radius:12px;background:#f0fdf4}.tjb-cancel-review.late{border-color:#fed7aa;background:#fff7ed}.tjb-cancel-review strong{display:block;margin:4px 0 6px}.tjb-cancel-review p{margin:4px 0;color:#475467}.tjb-cancel-buttons{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}@media(max-width:600px){.tjb-cancel-buttons{display:grid;grid-template-columns:1fr}.tjb-cancel-buttons .tjb-btn{width:100%}}
@media print{html.tjb-leg-printing .tjb-leg-print-target .tjb-customer-trip-actions,html.tjb-leg-printing .tjb-leg-print-target .tjb-cancel-details{display:none!important}}


/* ==========================================================================
   JAMBus v1.1.0 — Customer trip UI, search navigation, recent/nearby search
   ========================================================================== */

/* Manage My Trips: calmer width/spacing in both standalone and Woo My Account. */
.tjb-customer-trips-shell{max-width:1080px}
.woocommerce-MyAccount-content .tjb-customer-trips{
  width:min(100%,1030px);
  margin-left:auto;
  margin-right:auto;
  padding-left:clamp(8px,1.4vw,18px);
  padding-right:4px;
  box-sizing:border-box;
}
.tjb-customer-trip-filters{padding:18px}
.tjb-customer-trip-filter-grid{
  display:grid;
  grid-template-columns:minmax(260px,1.7fr) minmax(170px,.85fr) minmax(170px,.85fr);
  gap:18px;
  align-items:end;
}
.tjb-customer-trip-filter-grid label{display:grid;gap:7px;font-size:12px;font-weight:900;color:#344054}
.tjb-customer-trip-filter-grid input,
.tjb-customer-trip-filter-grid select{
  width:100%;
  min-height:46px;
  margin:0;
  padding:10px 12px;
  border:1px solid #cfd6d1;
  border-radius:11px;
  background:#fff;
  color:#111;
  box-sizing:border-box;
}
.tjb-customer-trip-filter-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid #eaecf0;
}
.tjb-customer-trip-feedback{
  margin-top:12px;
  padding:10px 12px;
  border-radius:10px;
  font-size:12px;
  font-weight:850;
}
.tjb-customer-trip-feedback.ok{background:#ecfdf3;color:#027a48}
.tjb-customer-trip-feedback.bad{background:#fef3f2;color:#b42318}
.tjb-customer-ticket-action{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:38px;
  padding:8px 12px!important;
  border-radius:10px;
  border:1px solid #111;
  text-decoration:none!important;
  font-size:11px;
  font-weight:950;
  line-height:1;
  box-shadow:0 5px 12px rgba(16,24,40,.08);
  transition:transform .15s ease,box-shadow .15s ease,background .15s ease;
}
.tjb-customer-ticket-action.ticket{background:#111;color:#FED100!important}
.tjb-customer-ticket-action.checkin{background:#009B3A;border-color:#009B3A;color:#fff!important}
.tjb-customer-ticket-action:hover,.tjb-customer-ticket-action:focus{
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(16,24,40,.16);
}
.tjb-customer-trip-state .tjb-leg-actions .tjb-mini{
  border:1px solid #98a2b3;
  background:#fff;
  color:#111;
  font-weight:900;
}

/* Search results are intentionally narrower than the full marketplace canvas. */
#tjb-search-results,#tjb-search-tool{scroll-margin-top:calc(var(--tj-header-height,100px) + 18px)}
.tjb-search-results-stage{
  width:min(1180px,calc(100% - clamp(30px,7vw,110px)));
  margin:24px auto 8px;
}
.tjb-search-results-stage>.tjb-journey-result-group{width:100%;margin:0 auto 28px}
.tjb-search-results-stage .tjb-results-head,
.tjb-search-results-stage .tjb-filter-bar,
.tjb-search-results-stage .tjb-result-list,
.tjb-search-results-stage .tjb-empty,
.tjb-search-results-stage .tjb-card{width:100%;box-sizing:border-box}
.tjb-search-results-nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:10px;
  padding:14px 16px;
  border:1px solid #e4e7ec;
  border-radius:15px;
  background:#fff;
  box-shadow:0 8px 22px rgba(16,24,40,.06);
}
.tjb-search-results-nav strong{display:block;margin-top:3px;color:#344054;font-size:13px}
.tjb-search-back-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  min-height:42px;
  padding:9px 15px;
  border-radius:10px;
  background:#e80000;
  color:#fff!important;
  text-decoration:none!important;
  font-size:11px;
  font-weight:950;
  letter-spacing:.03em;
}
.tjb-search-box-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:12px;
  padding-bottom:11px;
  border-bottom:1px solid #eaecf0;
}
.tjb-search-box-head>div{display:grid;gap:2px}
.tjb-search-box-eyebrow{font-size:9px;font-weight:950;letter-spacing:.12em;color:#667085}
.tjb-search-box-head strong{font-size:13px}
.tjb-return-results-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 10px;
  border-radius:9px;
  background:#111;
  color:#FED100!important;
  text-decoration:none!important;
  font-size:10px;
  font-weight:950;
  white-space:nowrap;
}
.tjb-search-utility-row{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
}
.tjb-search-utility-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:36px;
  padding:7px 11px;
  border:1px solid #d0d5dd;
  border-radius:999px;
  background:#fff;
  color:#344054;
  font-size:10px;
  font-weight:900;
  cursor:pointer;
}
.tjb-search-utility-btn.clear{border-color:#fda29b;color:#b42318;background:#fff5f4}
.tjb-nearby-panel,.tjb-recent-searches{
  margin-top:12px;
  padding:12px;
  border:1px solid #d0d5dd;
  border-radius:13px;
  background:#f9fafb;
}
.tjb-nearby-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.tjb-nearby-panel-head button{
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  padding:0;
  border:0;
  border-radius:50%;
  background:#111;
  color:#fff;
  cursor:pointer;
  font-size:18px;
}
.tjb-nearby-panel>p{margin:8px 0;color:#475467;font-size:11px}
.tjb-nearby-panel>small,.tjb-recent-searches>small{display:block;margin-top:8px;color:#667085;font-size:9px}
.tjb-nearby-stop,.tjb-recent-search-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
  margin-top:7px;
  padding:9px 10px;
  border:1px solid #e4e7ec;
  border-radius:10px;
  background:#fff;
  color:#111;
  text-align:left;
  cursor:pointer;
}
.tjb-nearby-stop strong,.tjb-recent-search-item strong{font-size:11px}
.tjb-nearby-stop span,.tjb-recent-search-item span{font-size:9px;color:#667085;text-align:right}

/* Fixed crew base location and operator-maintained route-stop map coordinates. */
.tjb-location-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tjb-location-form>label{display:grid;gap:5px}
.tjb-location-row{
  display:grid;
  grid-template-columns:minmax(160px,1fr) minmax(160px,1fr) auto;
  gap:10px;
  align-items:end;
}
.tjb-location-row label{display:grid;gap:5px;font-size:11px;font-weight:850}
.tjb-location-row input{width:100%;box-sizing:border-box}
.tjb-stop-location-card{margin-top:16px;padding:18px}
.tjb-stop-location-form{display:grid;gap:14px}
.tjb-stop-location-list{display:grid;gap:10px}
.tjb-stop-location-row{
  grid-template-columns:minmax(130px,.7fr) minmax(240px,1.5fr) minmax(150px,.8fr) minmax(150px,.8fr) auto;
  padding:12px;
  border:1px solid #e4e7ec;
  border-radius:13px;
  background:#f9fafb;
}
.tjb-stop-location-row .wide{min-width:0}
.tjb-stop-location-name{display:grid;align-content:center;gap:3px}
.tjb-stop-location-name strong{font-size:13px}
.tjb-driver-base-location{margin:14px 0}
.tjb-driver-base-location .tjb-location-form{margin-top:10px}

@media(max-width:900px){
  .tjb-customer-trip-filter-grid{grid-template-columns:1fr 1fr}
  .tjb-customer-trip-search{grid-column:1/-1}
  .tjb-stop-location-row{grid-template-columns:1fr 1fr}
  .tjb-stop-location-name,.tjb-stop-location-row .wide{grid-column:1/-1}
  .tjb-stop-location-row>[data-tjb-fill-geolocation]{justify-self:start}
}
@media(max-width:720px){
  .woocommerce-MyAccount-content .tjb-customer-trips{padding-left:0;padding-right:0}
  .tjb-customer-trip-filter-grid{grid-template-columns:1fr;gap:12px}
  .tjb-customer-trip-search{grid-column:auto}
  .tjb-customer-trip-filter-footer{align-items:flex-start;flex-direction:column}
  .tjb-customer-trip-filter-footer .tjb-btn{width:100%}
  .tjb-customer-ticket-action{width:100%;box-sizing:border-box}
  .tjb-customer-passenger-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}
  .tjb-search-results-stage{width:calc(100% - 24px);margin-top:14px}
  .tjb-search-results-nav{align-items:flex-start;flex-direction:column}
  .tjb-search-back-btn{width:100%;box-sizing:border-box}
  .tjb-search-box-head{align-items:flex-start;flex-direction:column}
  .tjb-return-results-btn{width:100%;box-sizing:border-box}
  .tjb-location-form,.tjb-location-row,.tjb-stop-location-row{grid-template-columns:1fr}
  .tjb-stop-location-name,.tjb-stop-location-row .wide{grid-column:auto}
}
@media(max-width:480px){
  .tjb-customer-passenger-actions{grid-template-columns:1fr}
  .tjb-nearby-stop,.tjb-recent-search-item{align-items:flex-start;flex-direction:column}
  .tjb-nearby-stop span,.tjb-recent-search-item span{text-align:left}
}

@media print{html.tjb-leg-printing .tjb-leg-print-target .tjb-customer-passenger-actions{display:none!important}}

.tjb-base-location-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  margin-top:12px;
}
.tjb-base-location-actions .tjb-btn,
.tjb-base-location-actions .tjb-mini{
  margin:0;
}
@media (max-width:640px){
  .tjb-base-location-actions > *{
    width:100%;
    text-align:center;
    justify-content:center;
  }
}

/* v1.1.1 — compact public search + persistent nearby-service ranking. */
.tjb-search-box{
  width:min(1160px,100%)!important;
  margin:20px auto 0!important;
  padding:13px 14px!important;
  border-radius:18px!important;
}
.tjb-search-box-head{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center!important;
  gap:12px;
  margin:0 0 8px!important;
  padding:0 0 8px!important;
}
.tjb-search-box-head>div:first-child{display:grid;gap:1px}
.tjb-search-box-eyebrow{font-size:8px!important}
.tjb-search-box-head strong{font-size:13px;line-height:1.2}
.tjb-search-head-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:7px;
}
.tjb-search-location-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-height:34px;
  padding:6px 10px;
  border:1px solid #cfd8d2;
  border-radius:999px;
  background:#f3faf5;
  color:#075e2a;
  font-size:9px;
  font-weight:950;
  line-height:1;
  cursor:pointer;
  white-space:nowrap;
}
.tjb-search-location-btn:hover,
.tjb-search-location-btn:focus{border-color:#009B3A;background:#eaf8ef;outline:none}
.tjb-search-location-btn.active{background:#08783a;border-color:#08783a;color:#fff}
.tjb-return-results-btn{min-height:34px;padding:6px 9px!important}
.tjb-location-prompt{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 0 8px;
  padding:8px 10px;
  border:1px solid #ccebd7;
  border-radius:11px;
  background:#f3fbf6;
  color:#1d2939;
}
.tjb-location-prompt[hidden]{display:none!important}
.tjb-location-prompt>div:first-child{display:grid;gap:1px;min-width:0}
.tjb-location-prompt strong{font-size:10px}
.tjb-location-prompt span{font-size:9px;color:#667085}
.tjb-location-prompt>div:last-child{display:flex;gap:6px;flex:0 0 auto}
.tjb-location-prompt .tjb-mini{min-height:30px;padding:5px 9px;font-size:9px}
.tjb-trip-toggle{
  justify-content:flex-start!important;
  gap:7px!important;
  margin:0 0 8px!important;
}
.tjb-trip-toggle label{
  min-height:32px!important;
  padding:6px 10px!important;
  font-size:10px!important;
}
.tjb-search-grid{
  gap:8px!important;
  align-items:end;
}
.tjb-search-grid.is-one-way{
  grid-template-columns:minmax(180px,1.35fr) minmax(180px,1.35fr) minmax(135px,.82fr) minmax(105px,.55fr)!important;
}
.tjb-search-grid.is-round-trip{
  grid-template-columns:minmax(175px,1.25fr) minmax(175px,1.25fr) minmax(130px,.78fr) minmax(130px,.78fr) minmax(100px,.52fr)!important;
}
.tjb-search-box label{font-size:10px;line-height:1.15}
.tjb-search-box input{
  min-height:40px!important;
  margin-top:3px!important;
  padding:8px 10px!important;
  border-radius:9px!important;
}
.tjb-search-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:9px;
}
.tjb-search-footer .tjb-search-utility-row{
  justify-content:flex-start;
  gap:6px;
  margin:0!important;
}
.tjb-search-utility-btn{
  min-height:32px!important;
  padding:5px 9px!important;
  font-size:9px!important;
}
.tjb-search-submit{
  width:auto!important;
  min-width:170px!important;
  min-height:40px!important;
  margin:0!important;
  padding:9px 18px!important;
  border-radius:10px!important;
}
.tjb-nearby-panel,.tjb-recent-searches{
  max-height:240px;
  overflow:auto;
  margin-top:8px!important;
  padding:9px!important;
}
.tjb-nearby-panel>p{margin:5px 0!important}
.tjb-nearby-stop,.tjb-recent-search-item{margin-top:5px!important;padding:7px 9px!important}
.tjb-bus-title-badges{display:flex;align-items:flex-start;justify-content:flex-end;flex-wrap:wrap;gap:5px}
.tjb-distance-badge{
  display:inline-flex;
  align-items:center;
  min-height:23px;
  padding:4px 7px;
  border-radius:999px;
  background:#ecfdf3;
  border:1px solid #abefc6;
  color:#067647;
  font-size:9px;
  font-weight:950;
  white-space:nowrap;
}
.tjb-distance-badge[hidden]{display:none!important}
.tjb-location-rank-note{
  display:block;
  margin-top:4px;
  color:#067647;
  font-size:10px;
  font-weight:850;
}
.tjb-location-rank-note[hidden]{display:none!important}

@media(max-width:980px){
  .tjb-search-grid.is-one-way,
  .tjb-search-grid.is-round-trip{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .tjb-search-footer{align-items:stretch}
}
@media(max-width:620px){
  .tjb-search-box{padding:11px!important;margin-top:14px!important}
  .tjb-search-box-head{grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:8px!important}
  .tjb-search-head-actions{gap:5px}
  .tjb-return-results-btn{width:auto!important;max-width:150px;text-align:center;white-space:normal}
  .tjb-search-location-btn{padding:6px 8px;font-size:8px}
  .tjb-location-prompt{align-items:flex-start;flex-direction:column}
  .tjb-location-prompt>div:last-child{width:100%}
  .tjb-location-prompt .tjb-mini{flex:1}
  .tjb-search-grid.is-one-way,
  .tjb-search-grid.is-round-trip{grid-template-columns:1fr!important}
  .tjb-search-footer{align-items:stretch;flex-direction:column}
  .tjb-search-footer .tjb-search-utility-row{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .tjb-search-utility-btn{width:100%}
  .tjb-search-submit{width:100%!important}
  .tjb-bus-title-badges{justify-content:flex-start}
}


/* v1.1.2 — centered journey toggle + tighter search selection flow. */
.tjb-search-box{
  width:min(1040px,100%)!important;
}
.tjb-search-box-head{
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;
  grid-template-areas:"title toggle actions";
  gap:10px!important;
  margin-bottom:7px!important;
  padding-bottom:7px!important;
}
.tjb-search-head-title{grid-area:title;min-width:0}
.tjb-trip-toggle-head{
  grid-area:toggle;
  justify-self:center;
  align-self:center;
  margin:0!important;
}
.tjb-search-head-actions{grid-area:actions;justify-self:end;min-width:0}
.tjb-trip-toggle-head label{
  min-height:30px!important;
  padding:5px 9px!important;
  font-size:9px!important;
}
.tjb-search-grid{gap:7px!important}
.tjb-search-box input{min-height:38px!important}
.tjb-search-footer{margin-top:7px!important}

@media(max-width:760px){
  .tjb-search-box-head{
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-areas:"title actions" "toggle toggle"!important;
  }
  .tjb-trip-toggle-head{justify-self:center!important;margin-top:2px!important}
}
@media(max-width:620px){
  .tjb-search-box{width:100%!important}
  .tjb-search-box-head{
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-areas:"title actions" "toggle toggle"!important;
  }
  .tjb-trip-toggle-head{width:auto!important;justify-content:center!important}
  .tjb-trip-toggle-head label{flex:0 0 auto!important}
}

/* v1.1.3 — search action order + location pin + animated journey direction. */
.tjb-search-head-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:7px!important;
}
.tjb-search-location-btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  white-space:nowrap!important;
}
.tjb-location-icon{
  width:15px;
  height:15px;
  flex:0 0 15px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.tjb-search-footer{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:7px!important;
}
.tjb-search-footer>.tjb-search-utility-btn{
  flex:0 0 auto;
}
.tjb-search-footer>.tjb-search-submit{
  flex:0 0 auto;
}
.tjb-times{
  grid-template-columns:minmax(0,1fr) 72px minmax(0,1fr)!important;
  column-gap:10px;
}
.tjb-route-motion{
  position:relative;
  width:72px;
  height:30px;
  display:block;
  align-self:center;
  justify-self:center;
  overflow:hidden;
}
.tjb-route-track{
  position:absolute;
  left:5px;
  right:11px;
  top:15px;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg,#009B3A 0 78%,#b7ddc5 78% 100%);
}
.tjb-route-track::before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#009B3A;
  transform:translateY(-50%);
}
.tjb-route-bus{
  position:absolute;
  left:6px;
  top:1px;
  z-index:2;
  font-size:18px;
  line-height:1;
  filter:drop-shadow(0 2px 2px rgba(0,0,0,.16));
  animation:tjbBusTravel 2.4s ease-in-out infinite;
}
.tjb-route-arrow{
  position:absolute;
  right:0;
  top:5px;
  z-index:3;
  color:#009B3A;
  font-size:20px;
  font-weight:1000;
  line-height:1;
}
@keyframes tjbBusTravel{
  0%,10%{transform:translateX(0)}
  48%,62%{transform:translateX(28px)}
  100%{transform:translateX(0)}
}
@media(prefers-reduced-motion:reduce){
  .tjb-route-bus{animation:none;transform:translateX(19px)}
}
@media(max-width:760px){
  .tjb-search-head-actions{justify-self:end!important}
}
@media(max-width:620px){
  .tjb-search-footer{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
  }
  .tjb-search-footer>.tjb-search-submit{
    grid-column:1/-1;
    width:100%!important;
  }
  .tjb-search-footer>.tjb-search-utility-btn{width:100%!important}
  .tjb-times{grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr)!important;column-gap:6px}
  .tjb-route-motion{width:64px}
  .tjb-route-bus{font-size:16px}
  @keyframes tjbBusTravel{
    0%,10%{transform:translateX(0)}
    48%,62%{transform:translateX(22px)}
    100%{transform:translateX(0)}
  }
}

/* v1.2.0 — departure-scoped live Google Maps tracking */
.tjb-live-tracking-panel{margin-top:12px;border:1px solid #d9dee7;border-radius:14px;background:#fbfcfe;overflow:hidden}
.tjb-live-tracking-panel>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;font-weight:800}
.tjb-live-tracking-panel>summary::-webkit-details-marker{display:none}
.tjb-live-tracking-panel>summary span:first-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.tjb-live-tracking-panel>summary small{font-weight:600;color:#667085}
.tjb-tracking-state{flex:0 0 auto;border-radius:999px;padding:6px 10px;background:#eceff3;color:#344054;font-size:11px;font-weight:900;letter-spacing:.05em}
.tjb-tracking-state.live{background:#dff7e7;color:#087333}
.tjb-live-tracking-body{border-top:1px solid #e4e7ec;padding:14px}
.tjb-tracking-link-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}
.tjb-tracking-link-form label{margin:0}
.tjb-tracking-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}
.tjb-customer-live-tracking{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:14px 0;padding:14px 16px;border:1px solid #b7e5c8;border-radius:14px;background:#f1fbf5}
.tjb-customer-live-tracking>div{display:grid;grid-template-columns:auto 1fr;column-gap:8px;align-items:center}
.tjb-customer-live-tracking strong{font-size:12px;letter-spacing:.06em;color:#087333}
.tjb-customer-live-tracking small{grid-column:2;color:#475467;margin-top:2px}
.tjb-live-dot{width:10px;height:10px;border-radius:50%;background:#0a9b48;box-shadow:0 0 0 5px rgba(10,155,72,.12)}
.tjb-customer-track-live{background:#009b3a!important;color:#fff!important;border-color:#009b3a!important;white-space:nowrap}
.tjb-customer-track-live:hover,.tjb-customer-track-live:focus{background:#087333!important;color:#fff!important}
@media(max-width:700px){.tjb-tracking-link-form{grid-template-columns:1fr}.tjb-customer-live-tracking{align-items:stretch;flex-direction:column}.tjb-customer-track-live{text-align:center;width:100%}}

/* v1.2.1 — Customer Manage My Trips leg action contrast */
.tjb-customer-trip-state .tjb-leg-actions [data-tjb-leg-print]{
  background:#000!important;
  border-color:#000!important;
  color:#fff!important;
}
.tjb-customer-trip-state .tjb-leg-actions [data-tjb-leg-share]{
  background:#e80000!important;
  border-color:#e80000!important;
  color:#fff!important;
}
.tjb-customer-trip-state .tjb-leg-actions [data-tjb-leg-print]:hover,
.tjb-customer-trip-state .tjb-leg-actions [data-tjb-leg-print]:focus,
.tjb-customer-trip-state .tjb-leg-actions [data-tjb-leg-share]:hover,
.tjb-customer-trip-state .tjb-leg-actions [data-tjb-leg-share]:focus{
  color:#fff!important;
  filter:brightness(.92);
}

/* v1.3.0 — customer protection card + passenger-level temporary authorization */
.tjb-protection-card-page{max-width:920px;margin:0 auto 28px;padding:24px}
.tjb-protection-card-page>h2{margin:5px 0 8px}
.tjb-protection-saved{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:18px 0;padding:16px 18px;border:1px solid #d9dee7;border-radius:16px;background:#f7f9fb}
.tjb-protection-saved strong{font-size:18px}.tjb-protection-saved span{font-weight:800}.tjb-protection-saved small{margin-left:auto;color:#5d6674}
.tjb-protection-card-form{margin-top:18px;padding:18px;border:1px solid #d9dee7;border-radius:16px;background:#fff}
.tjb-stripe-card-element{min-height:48px;padding:14px 12px;border:1px solid #bbc3ce;border-radius:12px;background:#fff;margin-bottom:12px}
.tjb-protection-card-form .tjb-btn{margin-top:8px}
.tjb-protection-history{margin-top:26px}.tjb-protection-history h3{margin-bottom:10px}.tjb-protection-history table small{display:block;color:#5d6674;margin-top:3px}
@media(max-width:680px){.tjb-protection-card-page{padding:18px 14px}.tjb-protection-saved{display:block}.tjb-protection-saved span,.tjb-protection-saved small{display:block;margin:5px 0 0}}
.tjb-customer-protection-state{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0;padding:11px 13px;border:1px solid #d8dde5;border-radius:12px;background:#f8fafc}
.tjb-customer-protection-state strong{font-weight:900}.tjb-customer-protection-state span{flex:1 1 320px;color:#4b5563;font-size:13px}.tjb-customer-protection-state a{font-weight:900;text-decoration:none}
.tjb-customer-protection-state.active{background:#ecfdf5;border-color:#86efac}.tjb-customer-protection-state.attention{background:#fff7ed;border-color:#fdba74}


/* v1.3.2 — single-stage booking workspace + seat/checkout clarity */
.tjb-workspace-stage[hidden]{display:none!important}
#tjb-search-results,#tjb-search-tool,#tjb-booking-stage{scroll-margin-top:calc(var(--tj-header-height,100px) + 18px)}
.tjb-booking-stage{width:min(1180px,calc(100% - clamp(30px,7vw,110px)));margin:24px auto 8px}
.tjb-booking-stage>.tjb-results-head,.tjb-booking-stage>.tjb-booking-builder,.tjb-booking-stage>.tjb-card,.tjb-booking-stage>.tjb-roundtrip-return-picker{width:100%;box-sizing:border-box}
.tjb-search-back-btn,.tjb-return-results-btn{border:0;cursor:pointer;font-family:inherit}
.tjb-review-checkout-actions .tjb-seat-message{order:1}
.tjb-review-checkout-actions [data-tjb-begin-checkout]{order:2;margin-left:auto}
.tjb-customer-cell.seat.your_booking{cursor:not-allowed;opacity:1;background:#e80000!important;border-color:#b60000!important;color:#fff!important;box-shadow:0 6px 16px rgba(232,0,0,.18)}
.tjb-customer-cell.seat.your_booking strong,.tjb-customer-cell.seat.your_booking span{color:#fff!important}
.tjb-seat-key .your_booking{display:inline-flex;align-items:center;background:#e80000;color:#fff;border-radius:999px;padding:4px 8px}
.tjb-seat-key .your_booking:before{background:#fff!important;border:1px solid rgba(255,255,255,.8)}
@media(max-width:720px){.tjb-booking-stage{width:calc(100% - 24px);margin-top:14px}.tjb-review-checkout-actions [data-tjb-begin-checkout]{width:100%;margin-left:0}.tjb-review-checkout-actions .tjb-seat-message{width:100%;flex-basis:100%}}

/* v1.7.0 — Departure Readiness & Compliance */
.tjb-readiness-box{margin-top:10px;border:1px solid #d7dde5;border-radius:14px;background:#fff;overflow:hidden;min-width:min(100%,560px)}
.tjb-readiness-box>summary{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px 14px;cursor:pointer;list-style:none;background:#f8fafc}
.tjb-readiness-box>summary::-webkit-details-marker{display:none}
.tjb-readiness-box>summary span:first-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.tjb-readiness-box>summary b{font-size:13px;letter-spacing:.02em}
.tjb-readiness-box>summary small{font-size:11px;color:#5f6b7a;line-height:1.35}
.tjb-readiness-box.ready>summary{background:#f0fbf4}.tjb-readiness-box.attention>summary{background:#fff3f3}
.tjb-readiness-state{display:inline-flex;align-items:center;justify-content:center;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.045em;white-space:nowrap;background:#eef1f5;color:#3e4a59}
.tjb-readiness-state.ready{background:#daf5e3;color:#126432}.tjb-readiness-state.attention{background:#ffe0e0;color:#a30000}.tjb-readiness-state.pending,.tjb-readiness-state.unknown{background:#eceff3;color:#4f5d6b}
.tjb-readiness-body{padding:14px;display:grid;gap:12px}
.tjb-readiness-last,.tjb-readiness-compliance{border:1px solid #e1e5ea;border-radius:10px;padding:10px 12px;display:grid;gap:3px;background:#fbfcfd}
.tjb-readiness-last b,.tjb-readiness-compliance b{font-size:12px}.tjb-readiness-last span,.tjb-readiness-compliance span{font-size:12px;font-weight:800}.tjb-readiness-last p,.tjb-readiness-compliance small{margin:0;font-size:11px;color:#5f6b7a}
.tjb-readiness-compliance.ready{border-color:#bce8ca;background:#f2fbf5}.tjb-readiness-compliance.attention{border-color:#ffc7c7;background:#fff7f7}
.tjb-readiness-form{display:grid;gap:10px;border-top:1px solid #edf0f3;padding-top:12px}
.tjb-readiness-checklist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px}
.tjb-readiness-checklist label{display:flex;align-items:flex-start;gap:7px;margin:0;padding:7px 8px;border:1px solid #e5e9ee;border-radius:9px;background:#fff;font-size:11px;line-height:1.35}
.tjb-readiness-checklist input{margin-top:2px;flex:0 0 auto}
.tjb-readiness-form textarea,.tjb-readiness-actions textarea{width:100%}
.tjb-readiness-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border-top:1px solid #edf0f3;padding-top:12px}
.tjb-readiness-actions form{display:grid;gap:7px;align-content:start;padding:10px;border:1px solid #e5e9ee;border-radius:10px;background:#fafbfc}
.tjb-readiness-actions form:last-child{grid-column:auto}
.tjb-readiness-box .tjb-btn,.tjb-readiness-box .tjb-mini{width:max-content;max-width:100%}
@media(max-width:760px){.tjb-readiness-checklist,.tjb-readiness-actions{grid-template-columns:1fr}.tjb-readiness-box>summary{align-items:flex-start;flex-direction:column}.tjb-readiness-state{white-space:normal;text-align:center}}

/* v1.8.0 — Boarding Control & Departure Closeout */
.tjb-boarding-control{margin:12px 0;border:1px solid #d9dee7;border-radius:14px;background:#fff;overflow:hidden}
.tjb-boarding-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;background:#f7f8fa;border-bottom:1px solid #e5e7eb}
.tjb-boarding-summary>span:not(.tjb-boarding-state){font-size:12px;color:#475569;background:#fff;border:1px solid #e2e8f0;border-radius:999px;padding:5px 8px}
.tjb-boarding-state{font-size:12px;font-weight:900;letter-spacing:.035em;border-radius:999px;padding:6px 9px;background:#e5e7eb;color:#111827}
.tjb-boarding-control.state-open .tjb-boarding-state{background:#dcfce7;color:#166534}
.tjb-boarding-control.state-closed .tjb-boarding-state{background:#111827;color:#fff}
.tjb-boarding-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px}
.tjb-boarding-warning{font-size:12px;font-weight:800;color:#991b1b;background:#fee2e2;border:1px solid #fecaca;border-radius:10px;padding:7px 9px}
.tjb-boarding-meta{display:block;padding:0 12px 10px;color:#64748b}
@media(max-width:700px){.tjb-boarding-summary,.tjb-boarding-actions{align-items:stretch}.tjb-boarding-actions .tjb-inline,.tjb-boarding-actions .tjb-mini{width:100%}}

/* JAMBus v1.9.0 — Ticket Scanner + manifest emphasis */
.tjb-booking-group .tjb-kicker,
.tjb-manifest-booking-subgroup .tjb-kicker{color:#d40000!important}
.tjb-manifest-seat{font-size:1.12rem;font-weight:900;line-height:1.15;color:#111}
.tjb-ticket-scanner{max-width:1120px;margin:0 auto 22px}
.tjb-scanner-workspace{padding:18px}
.tjb-scanner-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.tjb-scanner-video{display:block;width:min(100%,640px);max-height:430px;object-fit:cover;margin:12px auto;border:3px solid #111;border-radius:18px;background:#111}
.tjb-scanner-status{padding:11px 13px;border-radius:12px;background:#eef2f6;font-weight:800;margin:10px 0}
.tjb-scanner-status.ok{background:#dcfce7;color:#166534}
.tjb-scanner-status.bad{background:#fee2e2;color:#991b1b}
.tjb-scanner-manual{display:grid;grid-template-columns:auto minmax(240px,1fr) auto;gap:10px;align-items:end;margin-top:14px;padding-top:14px;border-top:1px solid #e5e7eb}
.tjb-scanner-manual>span{align-self:center;font-weight:900}
.tjb-scanner-manual label{margin:0}
.tjb-scanner-result-card{margin-top:16px;border:2px solid #111}
.tjb-scanner-result-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;border-bottom:1px solid #e5e7eb;padding-bottom:16px;margin-bottom:16px}
.tjb-scanner-result-head h2{margin:4px 0 6px}
.tjb-scanner-seat{display:inline-block;background:#111;color:#fff;border-radius:10px;padding:8px 14px;font-size:1.45rem;font-weight:950;letter-spacing:.01em}
.tjb-scanner-result-state{display:flex;gap:7px;align-items:flex-end;flex-direction:column}
.tjb-scanner-trip-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.tjb-scanner-trip-grid>div{padding:13px;border:1px solid #e5e7eb;border-radius:12px;background:#fafafa}
.tjb-scanner-trip-grid span,.tjb-scanner-trip-grid small{display:block;color:#64748b;font-size:.82rem}
.tjb-scanner-trip-grid strong{display:block;margin:3px 0;font-size:1rem}
.tjb-scanner-result-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:18px}
.tjb-scanner-board-button{background:#111!important;border-color:#111!important;color:#fff!important;font-size:.95rem!important}
.tjb-scanner-blocked{padding:12px 14px;border-radius:12px;background:#fee2e2;color:#991b1b;font-weight:900;max-width:640px}
.tjb-scanner-confirm-overlay{position:fixed;inset:0;z-index:1000000;background:#000b;display:grid;place-items:center;padding:18px}
.tjb-scanner-confirm-overlay[hidden]{display:none!important}
.tjb-scanner-confirm{width:min(560px,100%);background:#fff;border-radius:20px;padding:24px;box-shadow:0 24px 70px #0006}
.tjb-scanner-confirm h2{margin:7px 0 12px;font-size:1.6rem}
@media(max-width:820px){.tjb-scanner-trip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tjb-scanner-manual{grid-template-columns:1fr}.tjb-scanner-manual>span{margin-bottom:-3px}}
@media(max-width:560px){.tjb-scanner-result-head{flex-direction:column}.tjb-scanner-result-state{align-items:flex-start}.tjb-scanner-trip-grid{grid-template-columns:1fr}.tjb-scanner-result-actions{flex-direction:column}.tjb-scanner-result-actions .tjb-btn{width:100%}.tjb-scanner-confirm-overlay{align-items:end;padding:0}.tjb-scanner-confirm{border-radius:20px 20px 0 0}.tjb-scanner-confirm .tjb-review-actions{flex-direction:column-reverse}.tjb-scanner-confirm .tjb-review-actions .tjb-btn{width:100%}}


/* v1.9.1 — Ticket Scanner live boarding dashboard */
.tjb-scanner-board-dashboard{margin:0 0 16px}
.tjb-scanner-board-dashboard-head{display:flex;justify-content:space-between;gap:18px;align-items:end;margin-bottom:10px}
.tjb-scanner-board-dashboard-head h3{margin:3px 0 0}
.tjb-scanner-board-dashboard-head small{max-width:560px;color:#64748b;text-align:right}
.tjb-scanner-departure-summaries{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.tjb-scanner-departure-summary{padding:16px;border:1px solid #dbe2ea}
.tjb-scanner-departure-summary.complete{border-color:#86efac;background:#f0fdf4}
.tjb-scanner-departure-summary>header{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid #e5e7eb}
.tjb-scanner-departure-summary h4{font-size:1.08rem;margin:6px 0 2px}
.tjb-scanner-departure-summary p{margin:0;color:#64748b;font-size:.86rem}
.tjb-scanner-remaining{min-width:82px;text-align:center;background:#111;color:#fff;border-radius:13px;padding:9px 12px;font-size:1.75rem;line-height:1}
.tjb-scanner-remaining small{display:block;font-size:.67rem;text-transform:uppercase;letter-spacing:.06em;margin-top:5px;color:#fff}
.tjb-scanner-count-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}
.tjb-scanner-count-grid>div,.tjb-scanner-result-counts>div{border:1px solid #e5e7eb;background:#fff;border-radius:10px;padding:8px;text-align:center}
.tjb-scanner-count-grid span,.tjb-scanner-result-counts span{display:block;color:#64748b;font-size:.69rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.tjb-scanner-count-grid b,.tjb-scanner-result-counts b{display:block;font-size:1.18rem;margin-top:2px}
.tjb-scanner-count-grid .expected{border-color:#93c5fd;background:#eff6ff}
.tjb-scanner-count-grid .boarded,.tjb-scanner-result-counts .boarded{border-color:#86efac;background:#f0fdf4}
.tjb-scanner-count-grid .noshow{border-color:#fdba74;background:#fff7ed}
.tjb-scanner-count-grid .cancelled{border-color:#cbd5e1;background:#f8fafc}
.tjb-scanner-summary-foot{margin-top:10px;font-size:.86rem}
.tjb-scanner-result-counts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:-3px 0 16px}
.tjb-scanner-result-counts .remaining{border-color:#fca5a5;background:#fef2f2}
.tjb-scanner-result-counts .remaining b{color:#b91c1c}
@media(max-width:980px){.tjb-scanner-departure-summaries{grid-template-columns:1fr}.tjb-scanner-count-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:620px){.tjb-scanner-board-dashboard-head{display:block}.tjb-scanner-board-dashboard-head small{display:block;text-align:left;margin-top:6px}.tjb-scanner-count-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tjb-scanner-result-counts{grid-template-columns:repeat(3,minmax(0,1fr))}}


/* JAMBus v1.9.2 — crew heading emphasis + order-number scanner fallback */
.tjb-kicker.tjb-kicker-red{color:#d40000!important}
.tjb-scanner-order-matches{display:grid;gap:10px;margin-top:16px}
.tjb-scanner-order-match{display:flex;justify-content:space-between;gap:16px;align-items:center;border:1px solid #dbe2ea;border-radius:14px;padding:14px;background:#fff}
.tjb-scanner-order-match h3{margin:3px 0 5px;font-size:1.05rem}
.tjb-scanner-order-match p{margin:0;color:#64748b;font-size:.86rem}
.tjb-scanner-order-verify{margin:0 0 16px;padding:13px 14px;border:1px solid #fca5a5;border-radius:12px;background:#fff7f7}
.tjb-scanner-order-verify strong{display:block;margin-bottom:5px}
.tjb-scanner-order-ticket{display:inline-block;margin:5px 0 10px;padding:7px 10px;border-radius:9px;background:#111;color:#fff;font-weight:950;letter-spacing:.03em}
@media(max-width:620px){.tjb-scanner-order-match{align-items:stretch;flex-direction:column}.tjb-scanner-order-match .tjb-mini{width:100%}}


/* JAMBus v1.9.4 — scanner first, clean exit, service-card alignment */
.tjb-scanner-controls{justify-content:space-between}
.tjb-scanner-controls-primary{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.tjb-scanner-exit{margin-left:auto}
.tjb-scanner-board-dashboard{margin:16px 0 0}
.tjb-scanner-departure-summary{text-align:left}
.tjb-scanner-departure-summary>header>div{min-width:0;flex:1;text-align:left}
.tjb-scanner-departure-summary h4,
.tjb-scanner-departure-summary p,
.tjb-scanner-summary-foot{text-align:left}
.tjb-scanner-departure-summary p{line-height:1.45}
@media(max-width:620px){.tjb-scanner-controls{align-items:stretch}.tjb-scanner-controls-primary{width:100%}.tjb-scanner-controls-primary .tjb-btn{flex:1}.tjb-scanner-exit{width:100%;margin-left:0}.tjb-scanner-departure-summary>header{align-items:flex-start}.tjb-scanner-departure-summary>header>div{text-align:left}}


/* JAMBus v1.9.5 — deterministic scanner service-card text alignment */
.tjb-scanner-departure-summary>header{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:start!important;gap:14px!important;text-align:left!important}
.tjb-scanner-service-identity{min-width:0!important;width:100%!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;text-align:left!important}
.tjb-scanner-service-identity .tjb-pill{align-self:flex-start!important;text-align:left!important}
.tjb-scanner-service-identity h4{width:100%!important;margin:6px 0 3px!important;text-align:left!important;line-height:1.25!important}
.tjb-scanner-service-name{width:100%!important;margin:0!important;font-size:.9rem!important;font-weight:900!important;line-height:1.35!important;color:#111!important;text-align:left!important}
.tjb-scanner-service-meta{width:100%!important;margin-top:2px!important;color:#64748b!important;font-size:.82rem!important;line-height:1.4!important;text-align:left!important;overflow-wrap:anywhere!important}
.tjb-scanner-departure-summary .tjb-scanner-remaining{justify-self:end!important;align-self:start!important}
@media(max-width:520px){.tjb-scanner-departure-summary>header{grid-template-columns:minmax(0,1fr) auto!important;gap:10px!important}.tjb-scanner-remaining{min-width:72px!important;padding:8px 9px!important}.tjb-scanner-service-meta{font-size:.78rem!important}}


/* JAMBus v1.9.6 — full-width Live Boarding Count service cards */
.tjb-page-driver .tjb-scanner-board-dashboard{width:100%!important;max-width:none!important}
.tjb-page-driver .tjb-scanner-departure-summaries{display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:100%!important;max-width:none!important;gap:12px!important}
.tjb-page-driver .tjb-scanner-departure-summary{width:100%!important;max-width:none!important;min-width:0!important;margin-left:0!important;margin-right:0!important}
.tjb-page-driver .tjb-scanner-departure-summary>header{width:100%!important}
.tjb-page-driver .tjb-scanner-service-identity{max-width:none!important}
@media(min-width:981px){
  .tjb-page-driver .tjb-scanner-count-grid{grid-template-columns:repeat(7,minmax(0,1fr))!important}
}

/* v1.9.8 — persistent route creation + explicit leg/route controls */
.tjb-route-workspace-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;margin:0 0 16px;border:1px solid #dfe3e8;border-radius:15px;background:#f8fafc}
.tjb-route-workspace-actions>div{display:grid;gap:3px}.tjb-route-workspace-actions strong{font-size:14px}.tjb-route-workspace-actions span{font-size:12px;color:#64748b;line-height:1.45}
.tjb-side-sub-new{font-weight:900!important;color:#047a31!important}
.tjb-route-danger-zone{display:flex;align-items:center;justify-content:space-between;gap:18px;border-color:#fecaca!important;background:#fffafa!important}
.tjb-route-danger-zone h2{margin:3px 0 6px!important}.tjb-route-danger-zone p{margin:0;color:#64748b;max-width:760px;line-height:1.5}
.tjb-route-danger-zone .tjb-kicker{color:#b42318}.tjb-route-danger-zone form{flex:0 0 auto;margin:0}
.tjb-leg-remove{width:auto!important;height:auto!important;font-size:11px!important;font-weight:900!important;margin:0!important;white-space:nowrap;align-self:end}
@media(max-width:720px){.tjb-route-workspace-actions,.tjb-route-danger-zone{align-items:stretch;flex-direction:column}.tjb-route-workspace-actions .tjb-btn,.tjb-route-danger-zone .tjb-btn{width:100%}.tjb-trip-head-actions{grid-template-columns:1fr 1fr!important}.tjb-trip-head-actions select{grid-column:1/-1}.tjb-leg-remove{grid-column:1/-1;width:100%!important}}

/* v1.9.9 — mobile operator-menu reachability + ticket location actions */
.tjb-ticket-locations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}
.tjb-ticket-location{display:flex;flex-direction:column;gap:4px;min-width:0;padding:12px;border:1px solid #dde3df;border-radius:12px;background:#f8faf9}
.tjb-ticket-location>strong{font-size:10px;letter-spacing:.055em;text-transform:uppercase;color:#475467}
.tjb-ticket-location>span{font-size:13px;font-weight:950;color:#101828}
.tjb-ticket-location>small{font-size:11px;line-height:1.4;color:#667085}
.tjb-ticket-location-btn{display:inline-flex;align-items:center;justify-content:center;width:max-content;max-width:100%;margin-top:6px;padding:9px 11px;border-radius:9px;background:#009B3A;color:#fff!important;text-decoration:none!important;font-size:11px;font-weight:950;line-height:1.2}
.tjb-ticket-location-btn:hover{background:#067c33;color:#fff!important}

@media(max-width:860px){
  .tjb-shell-operator .tjb-operator-sidebar{
    display:none;
    flex-direction:column;
    min-height:0;
    height:calc(100vh - var(--tjb-appbar-h));
    max-height:calc(100vh - var(--tjb-appbar-h));
    height:calc(100dvh - var(--tjb-appbar-h));
    max-height:calc(100dvh - var(--tjb-appbar-h));
    overflow:hidden!important;
    overscroll-behavior:none;
  }
  .tjb-shell-operator .tjb-operator-sidebar.mobile-open{display:flex!important}
  .tjb-shell-operator .tjb-side-identity{flex:0 0 auto}
  .tjb-shell-operator .tjb-side-nav{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-y:contain;
    touch-action:pan-y;
    scrollbar-gutter:stable;
    padding:0 2px max(42px,env(safe-area-inset-bottom));
  }
}
@media(max-width:560px){.tjb-ticket-locations{grid-template-columns:1fr}}
.tjb-customer-live-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tjb-customer-live-actions .tjb-btn{width:auto}
@media(max-width:700px){.tjb-customer-live-actions{display:grid;grid-template-columns:1fr}.tjb-customer-live-actions .tjb-btn{width:100%}}


/* JAMBus v1.9.10 — center Choose Fare above the mobile/PWA app shell. */
@media(max-width:980px){
  .tjb-seat-fare-popover{
    position:fixed!important;
    z-index:100120!important;
    top:50%!important;
    left:50%!important;
    right:auto!important;
    bottom:auto!important;
    transform:translate(-50%,-50%)!important;
    width:min(340px,calc(100vw - 28px))!important;
    max-width:340px!important;
    max-height:calc(100vh - 160px);
    max-height:calc(100dvh - 160px);
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y;
    box-sizing:border-box;
    box-shadow:0 24px 70px rgba(0,0,0,.34)!important;
  }
}
@media(max-width:980px) and (max-height:520px){
  .tjb-seat-fare-popover{
    max-height:calc(100vh - 116px);
    max-height:calc(100dvh - 116px);
  }
}


/* v1.10.3 — Operator workspace Light / Dark mode.
 * Scope is intentionally limited to .tjb-operator-main. The left Operator
 * Tools sidebar remains permanently dark and keeps all existing scroll rules.
 */
.tjb-content-theme-bar{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:0 0 10px;padding:7px 10px;border:1px solid #e3e7e4;border-radius:13px;background:#fff;color:#475467;font-size:11px;font-weight:900;box-shadow:0 4px 14px #00000008}
.tjb-content-theme-switch{display:inline-flex;gap:3px;padding:3px;border-radius:10px;background:#eef1ef}
.tjb-content-theme-switch button{appearance:none;border:0;border-radius:8px;background:transparent;color:#344054;padding:7px 10px;font:inherit;font-size:11px;font-weight:900;cursor:pointer}
.tjb-content-theme-switch button[aria-pressed="true"]{background:#111;color:#FED100;box-shadow:0 3px 10px #0002}

.tjb-operator-main.tjb-content-theme-dark{background:#0f1310;color:#edf2ee;color-scheme:dark}
.tjb-operator-main.tjb-content-theme-dark .tjb-content-theme-bar{background:#171c18;border-color:#303832;color:#c2cbc4;box-shadow:none}
.tjb-operator-main.tjb-content-theme-dark .tjb-content-theme-switch{background:#0d100e}
.tjb-operator-main.tjb-content-theme-dark .tjb-content-theme-switch button{color:#c9d0cb}
.tjb-operator-main.tjb-content-theme-dark .tjb-content-theme-switch button[aria-pressed="true"]{background:#FED100;color:#050505}
.tjb-operator-main.tjb-content-theme-dark .tjb-mobile-nav-toggle{background:#171c18!important;border-color:#303832!important;color:#f1f5f2!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-drawer{background:#131815!important;border-color:#2b342e!important;color:#edf2ee!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-drawer-head{border-color:#303a33!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-drawer-head h1,
.tjb-operator-main.tjb-content-theme-dark .tjb-drawer-head h2,
.tjb-operator-main.tjb-content-theme-dark .tjb-card h1,
.tjb-operator-main.tjb-content-theme-dark .tjb-card h2,
.tjb-operator-main.tjb-content-theme-dark .tjb-card h3,
.tjb-operator-main.tjb-content-theme-dark .tjb-card h4{color:#f4f7f5!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-drawer-head p,
.tjb-operator-main.tjb-content-theme-dark .tjb-help,
.tjb-operator-main.tjb-content-theme-dark .tjb-card small,
.tjb-operator-main.tjb-content-theme-dark .tjb-field-note,
.tjb-operator-main.tjb-content-theme-dark .tjb-fleet-card p,
.tjb-operator-main.tjb-content-theme-dark .tjb-mini-grid span,
.tjb-operator-main.tjb-content-theme-dark .tjb-driver-editor-head p,
.tjb-operator-main.tjb-content-theme-dark .tjb-vehicle-editor-head p,
.tjb-operator-main.tjb-content-theme-dark .tjb-route-card p{color:#aeb9b1!important}
.tjb-operator-main.tjb-content-theme-dark :is(.tjb-card,.tjb-metrics article,.tjb-fleet-card,.tjb-driver-card,.tjb-route-card,.tjb-mini-grid article,.tjb-empty-inline,.tjb-marketplace-summary,.tjb-draft-note,.tjb-readiness-box,.tjb-boarding-control,.tjb-manifest-booking-subgroup,.tjb-booking-leg-block,.tjb-active-trip-lock,.tjb-route-addon-option,.tjb-day,.tjb-off-days-note,.tjb-trip-card,.tjb-route-danger-zone){background:#1a201c!important;border-color:#303a33!important;color:#edf2ee!important;box-shadow:none}
.tjb-operator-main.tjb-content-theme-dark :is(input,select,textarea){background:#0f1411!important;border-color:#3a463e!important;color:#f4f7f5!important}
.tjb-operator-main.tjb-content-theme-dark :is(input,select,textarea)::placeholder{color:#7f8a82!important}
.tjb-operator-main.tjb-content-theme-dark select option{background:#101511;color:#f4f7f5}
.tjb-operator-main.tjb-content-theme-dark label{color:#d8dfda!important}
.tjb-operator-main.tjb-content-theme-dark table{color:#e7ece8}
.tjb-operator-main.tjb-content-theme-dark th{color:#9facA3!important}
.tjb-operator-main.tjb-content-theme-dark th,
.tjb-operator-main.tjb-content-theme-dark td{border-color:#303a33!important}
.tjb-operator-main.tjb-content-theme-dark a:not(.tjb-btn):not(.tjb-mini){color:#f3d84a}
.tjb-operator-main.tjb-content-theme-dark .tjb-fleet-name,
.tjb-operator-main.tjb-content-theme-dark .tjb-driver-name{color:#f4f7f5!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-fleet-facts span,
.tjb-operator-main.tjb-content-theme-dark .tjb-driver-facts span,
.tjb-operator-main.tjb-content-theme-dark .tjb-vehicle-editor-note,
.tjb-operator-main.tjb-content-theme-dark .tjb-driver-editor-note,
.tjb-operator-main.tjb-content-theme-dark .tjb-policy-note:not(.warning){background:#111713!important;border-color:#303a33!important;color:#dce3de!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-fleet-facts b,
.tjb-operator-main.tjb-content-theme-dark .tjb-driver-facts b{color:#9faaA2!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-empty{background:#1a201c!important;border-color:#3a463e!important;color:#dce3de!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-seat-map-pane,
.tjb-operator-main.tjb-content-theme-dark .tjb-seat-cell-editor,
.tjb-operator-main.tjb-content-theme-dark .tjb-route-seat-price-grid label{background:#171d19!important;border-color:#303a33!important;color:#edf2ee!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-seat-cell{border-color:#3a463e!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-seat-cell.seat{background:#202821!important;color:#f4f7f5!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-seat-cell.empty{background:#101511!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-route-live-warning{background:#2b2410!important;border-color:#66560a!important;color:#f6e8a4!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-policy-note.warning{background:#2a2115!important;border-color:#66502b!important;color:#f4dfb2!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-mini.danger{background:#fff!important;color:#b42318!important}

@media(max-width:860px){
  .tjb-content-theme-bar{position:sticky;top:calc(var(--tjb-appbar-h) + 56px);z-index:9980;justify-content:space-between;margin-bottom:8px;padding:6px 8px}
  .tjb-content-theme-switch{flex:0 0 auto}
  .tjb-content-theme-switch button{padding:7px 9px}
}
@media(max-width:420px){
  .tjb-content-theme-bar>span{display:none}
  .tjb-content-theme-bar{justify-content:flex-end}
}
@media print{
  .tjb-operator-main.tjb-content-theme-dark{background:#fff!important;color:#111!important;color-scheme:light!important}
  .tjb-operator-main.tjb-content-theme-dark .tjb-drawer,
  .tjb-operator-main.tjb-content-theme-dark :is(.tjb-card,.tjb-metrics article,.tjb-fleet-card,.tjb-driver-card,.tjb-route-card,.tjb-mini-grid article,.tjb-empty-inline,.tjb-marketplace-summary,.tjb-draft-note,.tjb-readiness-box,.tjb-boarding-control,.tjb-manifest-booking-subgroup,.tjb-booking-leg-block,.tjb-active-trip-lock,.tjb-route-addon-option,.tjb-day,.tjb-off-days-note,.tjb-trip-card,.tjb-route-danger-zone){background:#fff!important;color:#111!important;border-color:#ddd!important}
  .tjb-operator-main.tjb-content-theme-dark :is(h1,h2,h3,h4,p,span,strong,b,label,small,th,td){color:#111!important}
}

/* v1.10.4 — Operator workspace contrast/accessibility audit.
 * This layer fixes hard-coded foreground/background pairs that could lose
 * contrast when the right-hand operator workspace changes theme. It remains
 * scoped to .tjb-operator-main; the permanently-dark left navigation and its
 * scrolling behavior are untouched.
 */
.tjb-operator-main.tjb-content-theme-light{
  --tjb-ws-text:#101828;
  --tjb-ws-text-soft:#344054;
  --tjb-ws-text-muted:#475467;
  --tjb-ws-kicker:#6a5700;
  --tjb-ws-danger:#b42318;
  color:#101828;
  color-scheme:light;
}
.tjb-operator-main.tjb-content-theme-light .tjb-drawer{color:#101828}
.tjb-operator-main.tjb-content-theme-light .tjb-kicker{color:var(--tjb-ws-kicker)!important}
.tjb-operator-main.tjb-content-theme-light .tjb-route-setup-head .tjb-kicker{color:#FED100!important}
.tjb-operator-main.tjb-content-theme-light :is(.tjb-kicker.tjb-kicker-red,.tjb-booking-group .tjb-kicker,.tjb-manifest-booking-subgroup .tjb-kicker,.tjb-route-danger-zone .tjb-kicker,.tjb-required,.bad-text){color:var(--tjb-ws-danger)!important}
.tjb-operator-main.tjb-content-theme-light :is(.tjb-drawer-head p,.tjb-help,.tjb-card small,.tjb-card th,.tjb-field-note,.tjb-fleet-card p,.tjb-fleet-card small,.tjb-mini-grid span,.tjb-fleet-description,.tjb-vehicle-editor-head p,.tjb-driver-editor-head p,.tjb-route-card p,.tjb-route-step-title p,.tjb-route-summary-head p,.tjb-service-builder-head span,.tjb-leg-number,.tjb-route-workspace-actions span,.tjb-route-danger-zone p,.tjb-boarding-meta,.tjb-scanner-board-dashboard-head small,.tjb-scanner-departure-summary p,.tjb-scanner-service-meta){color:var(--tjb-ws-text-muted)!important}
.tjb-operator-main.tjb-content-theme-light :is(.tjb-route-addon-option .tjb-check b,.tjb-marketplace-summary-grid span,.tjb-manifest-seat,.tjb-scanner-service-name,.tjb-ticket-location>span){color:var(--tjb-ws-text)!important}

.tjb-operator-main.tjb-content-theme-dark{
  --tjb-ws-text:#f4f7f5;
  --tjb-ws-text-soft:#c5d0c8;
  --tjb-ws-text-muted:#aeb9b1;
  --tjb-ws-placeholder:#98a69e;
  --tjb-ws-surface:#1a201c;
  --tjb-ws-surface-2:#202822;
  --tjb-ws-surface-3:#111713;
  --tjb-ws-border:#3d4a41;
  --tjb-ws-kicker:#FED100;
  --tjb-ws-danger:#ff8b84;
  --tjb-ws-success:#8ce7b0;
  --tjb-ws-info:#b9d4ff;
  color:var(--tjb-ws-text)!important;
}

/* Primary + muted typography that previously retained light-theme colours. */
.tjb-operator-main.tjb-content-theme-dark .tjb-kicker{color:var(--tjb-ws-kicker)!important}
.tjb-operator-main.tjb-content-theme-dark :is(.tjb-kicker.tjb-kicker-red,.tjb-booking-group .tjb-kicker,.tjb-manifest-booking-subgroup .tjb-kicker,.tjb-route-danger-zone .tjb-kicker,.tjb-required,.bad-text){color:var(--tjb-ws-danger)!important}
.tjb-operator-main.tjb-content-theme-dark :is(.tjb-drawer-head p,.tjb-help,.tjb-card small,.tjb-card th,.tjb-field-note,.tjb-fleet-card p,.tjb-fleet-card small,.tjb-mini-grid span,.tjb-fleet-description,.tjb-vehicle-editor-head p,.tjb-driver-editor-head p,.tjb-route-card p,.tjb-route-step-title p,.tjb-route-summary-head p,.tjb-route-summary-grid span,.tjb-route-addon-option .tjb-check small,.tjb-route-departures table small,.tjb-service-builder-head span,.tjb-leg-number,.tjb-marketplace-summary-grid b,.tjb-seat-cell small,.tjb-seat-cell span,.tjb-seat-cell-editor small,.tjb-route-seat-pricing-head p,.tjb-route-seat-price-grid label small,.tjb-seat-column-help,.tjb-readiness-box>summary small,.tjb-readiness-last p,.tjb-readiness-compliance small,.tjb-boarding-meta,.tjb-scanner-trip-grid span,.tjb-scanner-trip-grid small,.tjb-scanner-board-dashboard-head small,.tjb-scanner-departure-summary p,.tjb-scanner-count-grid span,.tjb-scanner-result-counts span,.tjb-scanner-order-match p,.tjb-scanner-service-meta,.tjb-route-workspace-actions span,.tjb-route-danger-zone p,.tjb-ticket-location>strong,.tjb-ticket-location>small){color:var(--tjb-ws-text-muted)!important}
.tjb-operator-main.tjb-content-theme-dark :is(.tjb-route-addon-option .tjb-check b,.tjb-marketplace-summary-grid span,.tjb-manifest-seat,.tjb-scanner-service-name,.tjb-ticket-location>span){color:var(--tjb-ws-text)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-policy-note:not(.warning) p{color:var(--tjb-ws-text-soft)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-policy-note.warning p{color:#f4dfb2!important}
.tjb-operator-main.tjb-content-theme-dark :is(input,select,textarea)::placeholder{color:var(--tjb-ws-placeholder)!important;opacity:1}
.tjb-operator-main.tjb-content-theme-dark :is(input,select,textarea):disabled{color:#b7c2ba!important;background:#171c18!important;opacity:1}

/* Nested light surfaces that otherwise left white text on white/gray backgrounds. */
.tjb-operator-main.tjb-content-theme-dark :is(.tjb-fare-matrix-row>strong,.tjb-route-save,.tjb-route-summary-grid>div,.tjb-route-facts span,.tjb-schedule-engine,.tjb-on-days,.tjb-service-builder,.tjb-leg-row,.tjb-marketplace-summary-grid>div,.tjb-seat-presets,.tjb-seat-grid,.tjb-seat-grid-scroll,.tjb-seat-setup-sidebar,.tjb-route-seat-pricing-head>span,.tjb-route-seat-price-grid .tjb-seat-price-standard,.tjb-readiness-box>summary,.tjb-readiness-last,.tjb-readiness-compliance,.tjb-readiness-checklist label,.tjb-readiness-actions form,.tjb-boarding-summary,.tjb-scanner-status,.tjb-scanner-confirm,.tjb-scanner-trip-grid>div,.tjb-scanner-count-grid>div,.tjb-scanner-result-counts>div,.tjb-scanner-order-match,.tjb-scanner-order-verify,.tjb-route-workspace-actions,.tjb-ticket-location){background:var(--tjb-ws-surface-2)!important;border-color:var(--tjb-ws-border)!important;color:var(--tjb-ws-text)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-service-builder{background:var(--tjb-ws-surface-3)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-schedule-engine{background:linear-gradient(180deg,#171d19 0%,#131815 100%)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-route-save{border-top:1px solid var(--tjb-ws-border)}
.tjb-operator-main.tjb-content-theme-dark .tjb-trip-head{border-color:var(--tjb-ws-border)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-fare-matrix,
.tjb-operator-main.tjb-content-theme-dark .tjb-fare-matrix-row,
.tjb-operator-main.tjb-content-theme-dark .tjb-fare-matrix-row label{border-color:var(--tjb-ws-border)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-on-days>strong{color:var(--tjb-ws-text-soft)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-route-facts span{color:var(--tjb-ws-text-soft)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-route-facts b{color:var(--tjb-ws-text)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-route-summary-grid strong{color:var(--tjb-ws-text)!important}

/* Seat editor: keep special seat types semantic while fixing standard dark cells. */
.tjb-operator-main.tjb-content-theme-dark .tjb-seat-cell.seat :is(strong,span,small){color:var(--tjb-ws-text)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-seat-cell.empty{color:#b9c4bc!important}
.tjb-operator-main.tjb-content-theme-dark :is(.tjb-seat-cell.driver,.tjb-seat-cell.aisle,.tjb-seat-cell.door,.tjb-seat-cell.luggage){color:#111!important}
.tjb-operator-main.tjb-content-theme-dark :is(.tjb-seat-cell.driver,.tjb-seat-cell.aisle,.tjb-seat-cell.door,.tjb-seat-cell.luggage) :is(strong,span,small){color:#111!important}

/* Readiness / boarding controls. */
.tjb-operator-main.tjb-content-theme-dark .tjb-readiness-box.ready>summary{background:#153321!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-readiness-box.attention>summary{background:#351c1c!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-readiness-compliance.ready{background:#153321!important;border-color:#286843!important;color:#d9f8e5!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-readiness-compliance.attention{background:#351c1c!important;border-color:#7a3b3b!important;color:#ffd0cc!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-boarding-summary>span:not(.tjb-boarding-state){background:#151b17!important;border-color:var(--tjb-ws-border)!important;color:var(--tjb-ws-text-soft)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-boarding-state{background:#2a332d!important;color:var(--tjb-ws-text)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-boarding-control.state-open .tjb-boarding-state{background:#153c27!important;color:#a8f0c2!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-boarding-control.state-closed .tjb-boarding-state{background:#050706!important;color:#fff!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-boarding-warning{background:#3a1c1c!important;border-color:#7a3b3b!important;color:#ffb0aa!important}

/* Scanner / manifest. */
.tjb-operator-main.tjb-content-theme-dark .tjb-scanner-status{background:#252d27!important;color:var(--tjb-ws-text-soft)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-scanner-status.ok{background:#153c27!important;color:#a8f0c2!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-scanner-status.bad,
.tjb-operator-main.tjb-content-theme-dark .tjb-scanner-blocked{background:#3a1c1c!important;color:#ffb0aa!important;border-color:#7a3b3b!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-scanner-confirm :is(h1,h2,h3,p,strong){color:var(--tjb-ws-text)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-scanner-departure-summary.complete{background:#153321!important;border-color:#286843!important;color:#d9f8e5!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-scanner-count-grid .expected{background:#162944!important;border-color:#355d8d!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-scanner-count-grid .boarded,
.tjb-operator-main.tjb-content-theme-dark .tjb-scanner-result-counts .boarded{background:#153321!important;border-color:#286843!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-scanner-count-grid .noshow{background:#3a2c14!important;border-color:#7d5d28!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-scanner-count-grid .cancelled{background:#252d27!important;border-color:#4b584f!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-scanner-result-counts .remaining{background:#3a1c1c!important;border-color:#7a3b3b!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-scanner-result-counts .remaining b{color:#ffb0aa!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-scanner-order-ticket{background:#050706!important;color:#fff!important}

/* Semantic informational panels. */
.tjb-operator-main.tjb-content-theme-dark .tjb-mode-explain,
.tjb-operator-main.tjb-content-theme-dark .tjb-form-mode{background:#162944!important;border-color:#355d8d!important;color:var(--tjb-ws-info)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-form-mode :is(span,small,strong){color:var(--tjb-ws-info)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-mode-explain.live,
.tjb-operator-main.tjb-content-theme-dark .tjb-form-mode.live{background:#153321!important;border-color:#286843!important;color:#a8f0c2!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-form-mode.live :is(span,small,strong){color:#a8f0c2!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-active-trip-lock{background:#3a2515!important;border-color:#7d532a!important;color:#ffd19a!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-route-live-warning{background:#332a10!important;border-color:#7b671c!important;color:#ffeba3!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-route-danger-zone{background:#291819!important;border-color:#7a3b3b!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-route-danger-zone :is(h1,h2,h3,strong){color:#fff1f0!important}

/* Links and secondary buttons must remain obvious without becoming glare-heavy. */
.tjb-operator-main.tjb-content-theme-dark a:not(.tjb-btn):not(.tjb-mini):not(.tjb-ticket-location-btn){color:#ffe36d!important;text-decoration-color:#8b7c32}
.tjb-operator-main.tjb-content-theme-dark a:not(.tjb-btn):not(.tjb-mini):not(.tjb-ticket-location-btn):hover{color:#fff2a8!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-btn.secondary{background:#eef3ef!important;border:1px solid #c5d0c8!important;color:#101410!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-ticket-location-btn{background:#078a3a!important;color:#fff!important}

/* Print must always return to an ink-on-white document regardless of screen theme. */
@media print{
  .tjb-operator-main.tjb-content-theme-dark :is(.tjb-fare-matrix-row>strong,.tjb-route-save,.tjb-route-summary-grid>div,.tjb-route-facts span,.tjb-schedule-engine,.tjb-on-days,.tjb-service-builder,.tjb-leg-row,.tjb-marketplace-summary-grid>div,.tjb-seat-presets,.tjb-seat-grid,.tjb-seat-grid-scroll,.tjb-seat-setup-sidebar,.tjb-route-seat-pricing-head>span,.tjb-route-seat-price-grid .tjb-seat-price-standard,.tjb-readiness-box>summary,.tjb-readiness-last,.tjb-readiness-compliance,.tjb-readiness-checklist label,.tjb-readiness-actions form,.tjb-boarding-summary,.tjb-scanner-status,.tjb-scanner-confirm,.tjb-scanner-trip-grid>div,.tjb-scanner-count-grid>div,.tjb-scanner-result-counts>div,.tjb-scanner-order-match,.tjb-scanner-order-verify,.tjb-route-workspace-actions,.tjb-ticket-location){background:#fff!important;color:#111!important;border-color:#ddd!important}
  .tjb-operator-main.tjb-content-theme-dark :is(.tjb-kicker,.tjb-drawer-head p,.tjb-help,.tjb-card small,.tjb-card th,.tjb-field-note,.tjb-fleet-card p,.tjb-fleet-card small,.tjb-mini-grid span,.tjb-fleet-description,.tjb-vehicle-editor-head p,.tjb-driver-editor-head p,.tjb-route-card p,.tjb-route-step-title p,.tjb-route-summary-head p,.tjb-route-summary-grid span,.tjb-route-addon-option .tjb-check small,.tjb-route-departures table small,.tjb-service-builder-head span,.tjb-leg-number,.tjb-marketplace-summary-grid b,.tjb-seat-cell small,.tjb-seat-cell span,.tjb-seat-cell-editor small,.tjb-route-seat-pricing-head p,.tjb-route-seat-price-grid label small,.tjb-seat-column-help,.tjb-readiness-box>summary small,.tjb-readiness-last p,.tjb-readiness-compliance small,.tjb-boarding-meta,.tjb-scanner-trip-grid span,.tjb-scanner-trip-grid small,.tjb-scanner-board-dashboard-head small,.tjb-scanner-departure-summary p,.tjb-scanner-count-grid span,.tjb-scanner-result-counts span,.tjb-scanner-order-match p,.tjb-scanner-service-meta,.tjb-route-workspace-actions span,.tjb-route-danger-zone p,.tjb-ticket-location>strong,.tjb-ticket-location>small){color:#111!important}
}

/* v1.10.5 — Targeted nested workspace contrast pass.
 * Fixes the remaining light-surface/dark-theme collisions reported in:
 * - Boarding Point Map Locations
 * - Departure Control
 * - Seat Bookings Received
 * - Fleet Seat Builder
 * Scope remains the right-hand operator workspace only. The permanent dark
 * Operator Tools sidebar and its independent scrolling are untouched.
 */

/* ---------- Light workspace: pin nested surfaces to readable ink ---------- */
.tjb-operator-main.tjb-content-theme-light .tjb-stop-location-row{
  background:#f9fafb!important;
  border-color:#d0d5dd!important;
  color:#101828!important;
}
.tjb-operator-main.tjb-content-theme-light .tjb-stop-location-row :is(label,strong){color:#101828!important}
.tjb-operator-main.tjb-content-theme-light .tjb-stop-location-row .tjb-kicker{color:#6a5700!important}

.tjb-operator-main.tjb-content-theme-light .tjb-trip-tabs{
  background:#f9fafb!important;
  border-color:#d0d5dd!important;
}
.tjb-operator-main.tjb-content-theme-light .tjb-trip-tabs button{color:#344054!important}
.tjb-operator-main.tjb-content-theme-light .tjb-trip-tabs button:hover{background:#fff!important;border-color:#b9c0ca!important;color:#101828!important}
.tjb-operator-main.tjb-content-theme-light .tjb-trip-tabs button.active{background:#111!important;border-color:#111!important;color:#FED100!important}
.tjb-operator-main.tjb-content-theme-light .tjb-trip-ops{
  background:#f8fafc!important;
  border-color:#d0d5dd!important;
  color:#101828!important;
}
.tjb-operator-main.tjb-content-theme-light .tjb-trip-ops-state small,
.tjb-operator-main.tjb-content-theme-light .tjb-trip-operation-card>div:first-child small{color:#475467!important}

.tjb-operator-main.tjb-content-theme-light .tjb-live-tracking-panel{
  background:#fbfcfe!important;
  border-color:#d0d5dd!important;
  color:#101828!important;
}
.tjb-operator-main.tjb-content-theme-light .tjb-live-tracking-panel>summary b{color:#101828!important}
.tjb-operator-main.tjb-content-theme-light .tjb-live-tracking-panel>summary small,
.tjb-operator-main.tjb-content-theme-light .tjb-live-tracking-panel .tjb-help{color:#475467!important}
.tjb-operator-main.tjb-content-theme-light .tjb-live-tracking-body{border-color:#d0d5dd!important}

.tjb-operator-main.tjb-content-theme-light .tjb-manifest-group-head{
  background:linear-gradient(135deg,#fffbea,#fff)!important;
  border-color:#dfe3e8!important;
  color:#101828!important;
}
.tjb-operator-main.tjb-content-theme-light .tjb-manifest-group-head :is(h3,strong,b){color:#101828!important}
.tjb-operator-main.tjb-content-theme-light .tjb-manifest-group-head p,
.tjb-operator-main.tjb-content-theme-light .tjb-booking-head-status small{color:#475467!important}
.tjb-operator-main.tjb-content-theme-light .tjb-booking-leg-head{
  background:#f9fafb!important;
  color:#101828!important;
}
.tjb-operator-main.tjb-content-theme-light .tjb-booking-leg-head b{color:#101828!important}
.tjb-operator-main.tjb-content-theme-light .tjb-booking-leg-head small{color:#475467!important}

.tjb-operator-main.tjb-content-theme-light .tjb-seat-column-handle,
.tjb-operator-main.tjb-content-theme-light .tjb-seat-vertical-zoom{
  background:#fff!important;
  border-color:#d0d5dd!important;
  color:#101828!important;
}
.tjb-operator-main.tjb-content-theme-light .tjb-col-arrow{color:#101828!important}
.tjb-operator-main.tjb-content-theme-light .tjb-seat-legend .seat{background:#fff!important;color:#101828!important}
.tjb-operator-main.tjb-content-theme-light .tjb-seat-legend :is(.aisle,.driver,.door,.luggage){color:#101828!important}
.tjb-operator-main.tjb-content-theme-light .tjb-seat-legend .blocked{color:#fff!important}

/* ---------- Dark workspace: convert nested light islands to dark surfaces ---------- */
.tjb-operator-main.tjb-content-theme-dark .tjb-stop-location-row{
  background:var(--tjb-ws-surface-2)!important;
  border-color:var(--tjb-ws-border)!important;
  color:var(--tjb-ws-text)!important;
}
.tjb-operator-main.tjb-content-theme-dark .tjb-stop-location-row :is(label,strong){color:var(--tjb-ws-text)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-stop-location-row .tjb-kicker{color:var(--tjb-ws-kicker)!important}

.tjb-operator-main.tjb-content-theme-dark .tjb-trip-tabs{
  background:var(--tjb-ws-surface-3)!important;
  border-color:var(--tjb-ws-border)!important;
}
.tjb-operator-main.tjb-content-theme-dark .tjb-trip-tabs button{color:var(--tjb-ws-text-soft)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-trip-tabs button:hover{
  background:var(--tjb-ws-surface-2)!important;
  border-color:#55645a!important;
  color:var(--tjb-ws-text)!important;
}
.tjb-operator-main.tjb-content-theme-dark .tjb-trip-tabs button.active{
  background:#050706!important;
  border-color:#4a564e!important;
  color:#FED100!important;
}
.tjb-operator-main.tjb-content-theme-dark .tjb-trip-ops{
  background:var(--tjb-ws-surface-2)!important;
  border-color:var(--tjb-ws-border)!important;
  color:var(--tjb-ws-text)!important;
}
.tjb-operator-main.tjb-content-theme-dark .tjb-trip-ops-state small,
.tjb-operator-main.tjb-content-theme-dark .tjb-trip-operation-card>div:first-child small{color:var(--tjb-ws-text-muted)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-trip-operation-card>div:first-child b{color:var(--tjb-ws-text)!important}

.tjb-operator-main.tjb-content-theme-dark .tjb-live-tracking-panel{
  background:var(--tjb-ws-surface-2)!important;
  border-color:var(--tjb-ws-border)!important;
  color:var(--tjb-ws-text)!important;
}
.tjb-operator-main.tjb-content-theme-dark .tjb-live-tracking-panel>summary b{color:var(--tjb-ws-text)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-live-tracking-panel>summary small,
.tjb-operator-main.tjb-content-theme-dark .tjb-live-tracking-panel .tjb-help{color:var(--tjb-ws-text-muted)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-live-tracking-body{border-color:var(--tjb-ws-border)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-tracking-state{
  background:#2a332d!important;
  color:var(--tjb-ws-text-soft)!important;
}
.tjb-operator-main.tjb-content-theme-dark .tjb-tracking-state.live{
  background:#153c27!important;
  color:#a8f0c2!important;
}

.tjb-operator-main.tjb-content-theme-dark .tjb-manifest-group-head{
  background:linear-gradient(135deg,#242a21,#171d19)!important;
  border-color:var(--tjb-ws-border)!important;
  color:var(--tjb-ws-text)!important;
}
.tjb-operator-main.tjb-content-theme-dark .tjb-manifest-group-head :is(h3,strong,b){color:var(--tjb-ws-text)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-manifest-group-head p,
.tjb-operator-main.tjb-content-theme-dark .tjb-booking-head-status small{color:var(--tjb-ws-text-muted)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-booking-head-status strong{color:var(--tjb-ws-text)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-booking-leg-head{
  background:var(--tjb-ws-surface-2)!important;
  border-color:var(--tjb-ws-border)!important;
  color:var(--tjb-ws-text)!important;
}
.tjb-operator-main.tjb-content-theme-dark .tjb-booking-leg-head b{color:var(--tjb-ws-text)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-booking-leg-head small{color:var(--tjb-ws-text-muted)!important}

.tjb-operator-main.tjb-content-theme-dark .tjb-seat-column-handle,
.tjb-operator-main.tjb-content-theme-dark .tjb-seat-vertical-zoom{
  background:var(--tjb-ws-surface-2)!important;
  border-color:var(--tjb-ws-border)!important;
  color:var(--tjb-ws-text)!important;
}
.tjb-operator-main.tjb-content-theme-dark .tjb-seat-column-handle>span,
.tjb-operator-main.tjb-content-theme-dark .tjb-seat-vertical-zoom output{color:var(--tjb-ws-text)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-col-arrow{color:var(--tjb-ws-text-soft)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-col-arrow:hover:not(:disabled){background:#FED100!important;color:#111!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-col-arrow:disabled{color:#87938b!important;opacity:.45}

/* Seat legend chips retain their semantic seat-map fills and explicit text. */
.tjb-operator-main.tjb-content-theme-dark .tjb-seat-legend span{border-color:#55645a!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-seat-legend .seat{
  background:#202821!important;
  color:var(--tjb-ws-text)!important;
}
.tjb-operator-main.tjb-content-theme-dark .tjb-seat-legend :is(.aisle,.driver,.door,.luggage){color:#111!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-seat-legend .blocked{background:#222!important;color:#fff!important}

/* Keep print output independent of the on-screen workspace theme. */
@media print{
  .tjb-operator-main.tjb-content-theme-dark :is(.tjb-stop-location-row,.tjb-trip-tabs,.tjb-trip-ops,.tjb-live-tracking-panel,.tjb-manifest-group-head,.tjb-booking-leg-head,.tjb-seat-column-handle,.tjb-seat-vertical-zoom){
    background:#fff!important;
    color:#111!important;
    border-color:#ccc!important;
  }
  .tjb-operator-main.tjb-content-theme-dark :is(.tjb-stop-location-row,.tjb-trip-tabs,.tjb-trip-ops,.tjb-live-tracking-panel,.tjb-manifest-group-head,.tjb-booking-leg-head,.tjb-seat-column-handle,.tjb-seat-vertical-zoom) :is(h1,h2,h3,h4,p,span,strong,b,label,small,output){color:#111!important}
}


/* v1.10.6 — customer seat zoom/driver orientation + account-gated seat holds. */
.tjb-booking-login-note{display:block;margin-top:8px;color:#555;font-weight:700;line-height:1.35;text-align:center}
.tjb-booking-auth-gate{max-width:760px;margin:18px auto!important;text-align:center;display:grid;justify-items:center;gap:10px}
.tjb-booking-auth-gate h2,.tjb-booking-auth-gate p{margin:0}
.tjb-booking-auth-gate p{max-width:650px;color:#555;line-height:1.6}
.tjb-booking-auth-gate small{max-width:620px;color:#666;line-height:1.45}
.tjb-booking-auth-gate .tjb-btn{margin-top:4px}
@media(max-width:620px){
  .tjb-customer-seat-control-row{justify-content:stretch}
  .tjb-customer-seat-control-row .tjb-seat-vertical-zoom{margin-left:auto}
  .tjb-customer-seat-grid-scroll{margin-inline:-2px;width:calc(100% + 4px)}
}

/* v1.10.8 — vendor Notices + TEST/LIVE customer search-result simulator. */
.tjb-notice-copy{margin-top:10px;padding:9px 10px;border:1px solid #b8d7f0;border-left:4px solid #1876b7;border-radius:9px;background:#f1f8fd;display:grid;gap:2px;color:#17324a}
.tjb-notice-copy span{font-size:9px;line-height:1.2;font-weight:1000;letter-spacing:.08em;color:#155a89}
.tjb-notice-copy strong{font-size:11px;line-height:1.35;color:#17324a}
.tjb-trip-notice{border:1px solid #b8d7f0!important;border-left:5px solid #1876b7!important;background:#f5fbff!important;color:#172b3a!important}
.tjb-trip-notice h2{margin:5px 0 8px;color:#172b3a!important}
.tjb-trip-notice .tjb-kicker{color:#155a89!important}
.tjb-trip-notice-body{color:#344a5b;line-height:1.65}
.tjb-trip-notice-body p:first-child{margin-top:0}.tjb-trip-notice-body p:last-child{margin-bottom:0}
.tjb-compliance-pending{background:#fff3cd!important;color:#6b4e00!important}

.tjb-search-preview-controls{display:grid;gap:14px}
.tjb-search-preview-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:end}
.tjb-search-preview-form label{display:grid;gap:6px;font-size:11px;font-weight:900}
.tjb-search-preview-form select{width:100%}
.tjb-search-preview-submit{display:flex;align-items:end}
.tjb-search-preview-submit .tjb-btn{width:100%;min-height:44px}
.tjb-search-preview-status{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:14px 0}
.tjb-search-preview-status>div{padding:11px 12px;border:1px solid #d7ddd9;border-radius:12px;background:#fff;display:grid;gap:3px;min-width:0}
.tjb-search-preview-status span{font-size:9px;font-weight:1000;letter-spacing:.07em;text-transform:uppercase;color:#667085}
.tjb-search-preview-status strong{font-size:12px;line-height:1.3;color:#18211b;overflow-wrap:anywhere}
.tjb-search-preview-status strong.ok{color:#027a48}.tjb-search-preview-status strong.warn{color:#9a6700}
.tjb-search-preview-switch{display:inline-flex;gap:5px;padding:5px;margin:2px 0 12px;border:1px solid #d0d5dd;border-radius:13px;background:#f2f4f7}
.tjb-search-preview-switch button{border:0;border-radius:9px;background:transparent;padding:9px 12px;font:inherit;font-size:11px;font-weight:900;color:#475467;cursor:pointer}
.tjb-search-preview-switch button.active{background:#111;color:#FED100;box-shadow:0 3px 10px #0002}
.tjb-customer-preview-frame{position:relative;padding:18px;border:1px solid #d0d5dd;border-radius:18px;background:#f5f6f7;color:#111;color-scheme:light;overflow:hidden}
.tjb-customer-preview-frame [data-tjb-preview-pane][hidden]{display:none!important}
.tjb-preview-selected-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;background:#111;color:#fff;margin-bottom:8px}
.tjb-preview-selected-nav .tjb-kicker{color:#FED100!important}.tjb-preview-selected-nav strong{color:#fff!important;font-size:12px}
.tjb-preview-static{position:relative;pointer-events:none;user-select:none}
.tjb-preview-static:before{content:"PREVIEW ONLY · CUSTOMER ACTIONS DISABLED";display:block;width:max-content;max-width:100%;margin:0 0 8px auto;padding:5px 8px;border-radius:999px;background:#111;color:#FED100;font-size:9px;font-weight:1000;letter-spacing:.05em}
.tjb-preview-static [data-tjb-preview-seat-selector="1"]{margin-top:0}
.tjb-search-preview-footnote{margin-top:10px!important}

/* The simulator deliberately renders the public customer surface in light mode,
 * even when the vendor has selected a dark operator workspace. This prevents
 * workspace theme rules from changing the card the customer is being shown. */
.tjb-operator-main.tjb-content-theme-dark .tjb-search-preview-status>div{background:var(--tjb-ws-surface-2)!important;border-color:var(--tjb-ws-border)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-search-preview-status span{color:var(--tjb-ws-text-muted)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-search-preview-status strong{color:var(--tjb-ws-text)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-search-preview-status strong.ok{color:#a8f0c2!important}.tjb-operator-main.tjb-content-theme-dark .tjb-search-preview-status strong.warn{color:#ffdb7b!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-search-preview-switch{background:#111713!important;border-color:var(--tjb-ws-border)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-search-preview-switch button{color:var(--tjb-ws-text-soft)!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-search-preview-switch button.active{background:#FED100!important;color:#111!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame{background:#f5f6f7!important;border-color:#d0d5dd!important;color:#111!important;color-scheme:light!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame :is(h1,h2,h3,h4,strong,b,label,output){color:#111!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame :is(p,small,.tjb-help){color:#667085!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-kicker{color:#6a5700!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame :is(.tjb-card,.tjb-bus-card,.tjb-customer-seat-summary,.tjb-customer-seat-map,.tjb-seat-hold-next,.tjb-passenger-details,.tjb-extras-policy,.tjb-trip-review){background:#fff!important;border-color:#e1e5e9!important;color:#111!important;box-shadow:0 8px 25px #0000000c!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-bus-main{background:#fff!important;color:#111!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-bus-buy{background:#fcfcfd!important;border-color:#e1e5e9!important;color:#111!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-bus-buy :is(span,small){color:#667085!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-operator{color:#027a48!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-type{background:#f2f4f7!important;color:#111!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-times span,
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-card-meta span,
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-card-note{color:#667085!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-feature-row span{background:#f7f8f9!important;border-color:#eaecf0!important;color:#111!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-promo-copy{background:#fff8d6!important;color:#111!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-notice-copy{background:#f1f8fd!important;border-color:#b8d7f0!important;color:#17324a!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-notice-copy span{color:#155a89!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-notice-copy strong{color:#17324a!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-trip-notice{background:#f5fbff!important;border-color:#b8d7f0!important;color:#172b3a!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-trip-notice :is(h2,strong){color:#172b3a!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-trip-notice .tjb-kicker{color:#155a89!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-trip-notice-body,
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-trip-notice-body p{color:#344a5b!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-seat-vertical-zoom{background:#fff!important;border-color:#d0d5dd!important;color:#111!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-seat-vertical-zoom output{color:#111!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-customer-seat-grid-scroll{background:transparent!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-customer-seat-grid{background:#f8faf9!important;border-color:#d8dfda!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-customer-cell.seat.available{background:#fff!important;color:#111!important;border-color:#bfc8c1!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-customer-cell.seat.available :is(strong,span,small){color:#111!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-customer-cell.aisle{color:#475467!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-seat-driver-cab{color:#111!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-seat-driver-cab b{color:#111!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-seat-key span,
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-customer-seat-types span{color:#344054!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-preview-selected-nav{background:#111!important;color:#fff!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-preview-selected-nav strong{color:#fff!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-preview-selected-nav .tjb-kicker{color:#FED100!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-btn{color:#fff!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-btn.tjb-btn-disabled{background:#667085!important;color:#fff!important}

@media(max-width:1000px){.tjb-search-preview-status{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.tjb-search-preview-form{grid-template-columns:1fr}.tjb-search-preview-status{grid-template-columns:repeat(2,minmax(0,1fr))}.tjb-customer-preview-frame{padding:10px}.tjb-search-preview-switch{display:flex;width:100%}.tjb-search-preview-switch button{flex:1}.tjb-preview-selected-nav{align-items:flex-start;flex-direction:column}}
@media(max-width:420px){.tjb-search-preview-status{grid-template-columns:1fr}}

@media print{
  .tjb-search-preview-controls,.tjb-search-preview-switch,.tjb-search-preview-footnote{display:none!important}
  .tjb-customer-preview-frame{background:#fff!important;border:0!important;padding:0!important}
}
.tjb-notice-copy strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.tjb-operator-main.tjb-content-theme-dark .tjb-customer-preview-frame .tjb-policy-link{color:#111!important;text-decoration-color:#111!important}


/* v1.10.9 — travel notice megaphone label */
.tjb-notice-label{display:inline-flex!important;align-items:center;gap:5px}
.tjb-notice-label svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}


/* v1.10.10 — customer booking CTA sizing guard.
 * Keep the seat-flow continuation CTA compact even when the PWA/narrow workspace
 * falls below the older global button breakpoints. Other workflow buttons receive
 * explicit context sizing so they cannot regress through generic .tjb-btn rules.
 */
.tjb-booking-stage .tjb-seat-hold-next > .tjb-btn{
  width:max-content!important;
  min-width:190px;
  max-width:100%;
  min-height:42px;
  padding:10px 16px;
  justify-self:end;
  text-align:center;
  white-space:normal;
}
.tjb-booking-stage .tjb-passenger-actions .tjb-btn,
.tjb-booking-stage .tjb-review-checkout-actions [data-tjb-begin-checkout]{
  width:auto;
  min-width:180px;
  max-width:100%;
  min-height:42px;
}
.tjb-booking-stage .tjb-booking-auth-gate .tjb-btn{
  width:auto;
  min-width:180px;
  max-width:100%;
}
/* Result-card CTAs deliberately fill the dedicated buy column. */
.tjb-search-results-stage .tjb-bus-buy .tjb-btn,
.tjb-customer-preview-frame .tjb-bus-buy .tjb-btn{
  width:100%;
}
@media(max-width:620px){
  .tjb-booking-stage .tjb-seat-hold-next > .tjb-btn{
    width:max-content!important;
    min-width:180px;
    max-width:100%;
    justify-self:end;
  }
  .tjb-booking-stage .tjb-passenger-actions .tjb-btn,
  .tjb-booking-stage .tjb-review-checkout-actions [data-tjb-begin-checkout]{
    width:100%!important;
  }
  .tjb-booking-stage .tjb-booking-auth-gate .tjb-btn{
    width:100%;
  }
}


/* v1.10.12 — restore the seat-flow action card beneath the seat selector.
 * Keep the workflow CTA on the right side of the card while preserving the
 * compact sizing guard from v1.10.10. On small phones the CTA gets its own
 * row but remains right-aligned rather than expanding to full width.
 */
.tjb-booking-stage .tjb-seat-hold-next{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:
    "title action"
    "copy action"
    "help help";
  gap:6px 18px;
  align-items:center;
}
.tjb-booking-stage .tjb-seat-hold-next > h2{grid-area:title}
.tjb-booking-stage .tjb-seat-hold-next > p:not(.tjb-help){grid-area:copy}
.tjb-booking-stage .tjb-seat-hold-next > .tjb-btn{
  grid-area:action;
  justify-self:end!important;
  align-self:center;
}
.tjb-booking-stage .tjb-seat-hold-next > .tjb-help{grid-area:help}
@media(max-width:620px){
  .tjb-booking-stage .tjb-seat-hold-next{
    grid-template-columns:1fr;
    grid-template-areas:
      "title"
      "copy"
      "action"
      "help";
  }
  .tjb-booking-stage .tjb-seat-hold-next > .tjb-btn{
    width:max-content!important;
    min-width:180px;
    max-width:100%;
    justify-self:end!important;
  }
}


/* v1.10.13 — iPhone/mobile booking-search stability.
 * iOS zooms focused form controls when their computed text is below 16px.
 * Keep the native page zoom available to the user, but prevent Safari's
 * automatic input-focus zoom and stop date controls from overflowing the
 * one-column mobile search grid. */
@media(max-width:760px){
  .tjb-booking-shell .tjb-search-grid,
  .tjb-booking-shell .tjb-search-grid > label,
  .tjb-booking-shell .tjb-search-place{
    min-width:0!important;
    max-width:100%!important;
  }
  .tjb-booking-shell .tjb-search-box input:not([type="radio"]):not([type="checkbox"]),
  .tjb-booking-shell .tjb-search-box select,
  .tjb-booking-shell .tjb-search-box textarea{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
    font-size:16px!important;
    line-height:1.25!important;
  }
  .tjb-booking-shell .tjb-search-box input[type="date"]{
    text-align:left!important;
  }
  .tjb-booking-shell .tjb-search-box input[type="date"]::-webkit-date-and-time-value{
    text-align:left!important;
  }
  .tjb-booking-shell,
  .tjb-booking-body{
    max-width:100%!important;
    overflow-x:hidden!important;
    -webkit-text-size-adjust:100%;
    text-size-adjust:100%;
  }
  .tjb-booking-shell .tjb-search-box{
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  body.tjbapp-enabled .tjb-booking-shell .tjb-workspace-stage,
  body.tjbapp-enabled .tjb-booking-shell .tjb-search-box{
    scroll-margin-top:calc(var(--tjbapp-top-height,64px) + env(safe-area-inset-top,0px) + 10px);
  }
}


/* v1.10.14 — compact mobile One Way / Round Trip toggle.
 * v1.10.13 intentionally raised mobile search-field text to 16px to stop
 * Safari focus zoom, but radio inputs must not inherit the full-width field
 * geometry. Keep the journey toggle compact, evenly aligned and readable.
 */
@media(max-width:760px){
  .tjb-booking-shell .tjb-trip-toggle-head{
    display:flex!important;
    width:auto!important;
    max-width:100%!important;
    justify-content:center!important;
    align-items:center!important;
    gap:8px!important;
  }
  .tjb-booking-shell .tjb-trip-toggle-head label{
    display:inline-flex!important;
    flex:0 0 auto!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    min-width:94px!important;
    min-height:32px!important;
    padding:6px 11px!important;
    margin:0!important;
    border-radius:999px!important;
    font-size:11px!important;
    line-height:1.1!important;
    white-space:nowrap!important;
    box-sizing:border-box!important;
  }
  .tjb-booking-shell .tjb-trip-toggle-head label span{
    display:block!important;
    margin:0!important;
    line-height:1.1!important;
    white-space:nowrap!important;
  }
  .tjb-booking-shell .tjb-trip-toggle-head input[type="radio"]{
    appearance:auto!important;
    -webkit-appearance:radio!important;
    display:block!important;
    flex:0 0 14px!important;
    width:14px!important;
    min-width:14px!important;
    max-width:14px!important;
    height:14px!important;
    min-height:14px!important;
    max-height:14px!important;
    padding:0!important;
    margin:0!important;
    border-radius:50%!important;
    box-sizing:border-box!important;
    accent-color:#FED100;
  }
}
@media(max-width:380px){
  .tjb-booking-shell .tjb-trip-toggle-head{gap:6px!important}
  .tjb-booking-shell .tjb-trip-toggle-head label{
    min-width:88px!important;
    padding-left:9px!important;
    padding-right:9px!important;
    font-size:10px!important;
  }
}


/* v1.10.15 — operator commission deadline watch */
.tjb-side-finance-countdown{appearance:none;width:calc(100% - 31px);margin:-1px 0 5px 31px;padding:9px 10px;border:1px solid #3b433d;border-radius:11px;background:#151915;color:#d9ddd9;text-align:left;cursor:pointer;display:grid;gap:3px;font:inherit}
.tjb-side-finance-countdown:hover,.tjb-side-finance-countdown.active{border-color:#FED100;background:#1c211d;color:#fff}
.tjb-side-finance-countdown>span{font-size:8px;font-weight:1000;letter-spacing:.1em;color:#FED100}.tjb-side-finance-countdown>b{font-size:9px}.tjb-side-finance-countdown>strong{font-size:12px;line-height:1.2;color:#fff}.tjb-side-finance-countdown>small{font-size:8px;line-height:1.35;color:#aeb5b0}.tjb-side-finance-countdown>em{font-size:8px;font-style:normal;font-weight:900;color:#FED100}.tjb-side-finance-countdown.overdue{border-color:#f04438}.tjb-side-finance-countdown.overdue>strong{color:#ff8b82}.tjb-side-finance-countdown.exempt{border-color:#12b76a}.tjb-side-finance-countdown.exempt>em{color:#75e0a7}
.tjb-commission-deadline-card{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;border-left:5px solid #FED100}.tjb-commission-deadline-card.overdue{border-left-color:#f04438}.tjb-commission-deadline-card.exempt{border-left-color:#12b76a}.tjb-commission-deadline-card h3{margin:3px 0 6px}.tjb-commission-deadline-card p{margin:5px 0}.tjb-finance-live-countdown{display:block;margin-top:4px;font-weight:1000;color:#087a35}.tjb-finance-live-countdown.overdue{color:#b42318}.tjb-finance-live-countdown.large{font-size:clamp(22px,3vw,34px);letter-spacing:-.02em}.tjb-finance-due-meta{display:block;margin-top:4px;color:#667085;font-size:10px}.tjb-finance-state-note{padding:9px 11px;border-radius:10px;background:#ecfdf3;color:#05603a;font-size:11px}.tjb-finance-state-note.danger{background:#fff1f0;color:#b42318}
@media(max-width:860px){.tjb-side-finance-countdown{width:calc(100% - 31px);padding:11px 10px}.tjb-side-finance-countdown>strong{font-size:14px}}

/* v1.10.19 — stronger seat-type visual key + quantity-first eligible extras */
/* Seat-type patterns intentionally combine colour + pattern so the distinction does not depend on colour alone. */
.tjb-seat-type-legend,
.tjb-customer-seat-types{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 12px;
}
.tjb-seat-type-legend{margin-top:10px;padding:9px 10px;border:1px solid #d8ded9;border-radius:12px;background:#fff}
.tjb-seat-type-legend>strong{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#475467;margin-right:2px}
.tjb-seat-type-legend span,
.tjb-customer-seat-types span{display:inline-flex;align-items:center;gap:6px;font-weight:900}
/* v1.10.22 — keep the vendor Seat Manager key readable on light cards in either workspace theme. */
.tjb-seat-type-legend span{color:#101828!important}
.tjb-seat-type-legend>strong{color:#344054!important;font-weight:1000}
.tjb-seat-type-legend i,
.tjb-customer-seat-types i{
  display:inline-block;
  flex:0 0 18px;
  width:18px;
  height:18px;
  border-radius:5px;
  box-sizing:border-box;
}
.tjb-seat-type-legend i.standard,
.tjb-customer-seat-types i.standard{background:#fff;border:2px solid #222}
.tjb-seat-type-legend i.premium,
.tjb-customer-seat-types i.premium{
  border:2px solid #087a35;
  background-color:#dff6e7;
  background-image:repeating-linear-gradient(135deg,rgba(0,122,46,.34) 0 3px,transparent 3px 7px);
  box-shadow:none;
}
.tjb-seat-type-legend i.extra_legroom,
.tjb-customer-seat-types i.extra_legroom{
  border:2px solid #175cd3;
  background-color:#e4efff;
  background-image:repeating-linear-gradient(0deg,rgba(23,92,211,.28) 0 3px,transparent 3px 7px);
  box-shadow:none;
}
.tjb-seat-type-legend i.wheelchair,
.tjb-customer-seat-types i.wheelchair{
  border:2px dashed #7a2bbd;
  background-color:#f2e8ff;
  background-image:radial-gradient(circle at 3px 3px,rgba(122,43,189,.45) 0 1.5px,transparent 1.7px);
  background-size:6px 6px;
}

/* Vendor Fleet seat builder. operator.js adds the saved seat type as a class. */
.tjb-seat-grid .tjb-seat-cell.seat.standard{
  background:#fff!important;
  border:2px solid #222!important;
  color:#111!important;
}
.tjb-seat-grid .tjb-seat-cell.seat.premium{
  background-color:#dff6e7!important;
  background-image:repeating-linear-gradient(135deg,rgba(0,122,46,.26) 0 6px,transparent 6px 12px)!important;
  border:2px solid #087a35!important;
  color:#064e2d!important;
}
.tjb-seat-grid .tjb-seat-cell.seat.extra_legroom{
  background-color:#e4efff!important;
  background-image:repeating-linear-gradient(0deg,rgba(23,92,211,.20) 0 5px,transparent 5px 11px)!important;
  border:2px solid #175cd3!important;
  color:#123b73!important;
}
.tjb-seat-grid .tjb-seat-cell.seat.wheelchair{
  background-color:#f2e8ff!important;
  background-image:radial-gradient(circle at 5px 5px,rgba(122,43,189,.35) 0 2px,transparent 2.2px)!important;
  background-size:10px 10px!important;
  border:2px dashed #7a2bbd!important;
  color:#4a1768!important;
}
.tjb-seat-grid .tjb-seat-cell.seat:is(.standard,.premium,.extra_legroom,.wheelchair) :is(strong,span,small){color:currentColor!important}
.tjb-seat-grid .tjb-seat-cell.selected{outline:4px solid #FED100!important;outline-offset:2px!important}

/* Customer seat selector + operator Search Results Preview use the same customer cell classes. */
button.tjb-customer-cell.seat.standard.available{background:#fff!important;border:2px solid #222!important;box-shadow:none!important}
button.tjb-customer-cell.seat.premium.available{
  background-color:#dff6e7!important;
  background-image:repeating-linear-gradient(135deg,rgba(0,122,46,.28) 0 6px,transparent 6px 12px)!important;
  border:2px solid #087a35!important;
  box-shadow:none!important;
  color:#064e2d!important;
}
button.tjb-customer-cell.seat.extra_legroom.available{
  background-color:#e4efff!important;
  background-image:repeating-linear-gradient(0deg,rgba(23,92,211,.22) 0 5px,transparent 5px 11px)!important;
  border:2px solid #175cd3!important;
  box-shadow:none!important;
  color:#123b73!important;
}
button.tjb-customer-cell.seat.wheelchair.available{
  background-color:#f2e8ff!important;
  background-image:radial-gradient(circle at 5px 5px,rgba(122,43,189,.38) 0 2px,transparent 2.2px)!important;
  background-size:10px 10px!important;
  border:2px dashed #7a2bbd!important;
  box-shadow:none!important;
  color:#4a1768!important;
}
button.tjb-customer-cell.seat:is(.premium,.extra_legroom,.wheelchair).available :is(strong,span,small){color:currentColor!important}
/* Keep the yellow held/in-cart state obvious while retaining a type-colour edge/pattern. */
button.tjb-customer-cell.seat.standard.selected{background:#FED100!important;border-color:#222!important}
button.tjb-customer-cell.seat.premium.selected{
  background-color:#FED100!important;
  background-image:repeating-linear-gradient(135deg,rgba(0,122,46,.24) 0 5px,transparent 5px 11px)!important;
  border-color:#087a35!important;
}
button.tjb-customer-cell.seat.extra_legroom.selected{
  background-color:#FED100!important;
  background-image:repeating-linear-gradient(0deg,rgba(23,92,211,.20) 0 4px,transparent 4px 10px)!important;
  border-color:#175cd3!important;
}
button.tjb-customer-cell.seat.wheelchair.selected{
  background-color:#FED100!important;
  background-image:radial-gradient(circle at 5px 5px,rgba(122,43,189,.34) 0 2px,transparent 2.2px)!important;
  background-size:10px 10px!important;
  border-color:#7a2bbd!important;
  border-style:dashed!important;
}

/* Quantity is the selection control for optional extras: 0 = not selected. */
.tjb-addon-select{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px 16px;
  align-items:center;
  padding:14px 16px;
}
.tjb-addon-main{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:10px!important;
  align-items:center!important;
  margin:0!important;
  min-width:0;
  cursor:default!important;
}
.tjb-addon-main>span{display:grid;gap:3px;min-width:0}
.tjb-addon-main>strong{align-self:center;font-size:13px;white-space:nowrap;color:#111}
.tjb-addon-qty{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:8px!important;
  margin:0!important;
  font-size:12px!important;
  font-weight:900!important;
  white-space:nowrap;
}
.tjb-addon-qty>span{color:#475467;font-size:11px;font-weight:900}
.tjb-addon-qty input{
  width:76px!important;
  min-height:40px!important;
  padding:7px 9px!important;
  text-align:center;
  font-size:16px!important;
  font-weight:900!important;
}
.tjb-addon-select .tjb-required-pill{position:static!important;grid-column:1/-1;justify-self:start;margin-top:-2px}
.tjb-addon-select:focus-within{border-color:#98a2b3;box-shadow:0 0 0 2px rgba(152,162,179,.12)}
@media(max-width:620px){
  .tjb-addon-select{grid-template-columns:minmax(0,1fr) auto;gap:10px 12px;padding:13px}
  .tjb-addon-main{grid-template-columns:1fr!important;gap:5px!important}
  .tjb-addon-main>strong{justify-self:start}
  .tjb-addon-qty{align-self:center}
}
@media(max-width:390px){
  .tjb-addon-select{grid-template-columns:1fr}
  .tjb-addon-qty{justify-content:flex-start!important}
}
.tjb-addon-quantity-help{margin:-6px 0 10px!important;font-size:12px!important}


/* v1.10.20 — high-contrast seat text tiles + defensive quantity-only extras */
/* Keep the type colour/pattern on the seat itself, but place every seat label on
   a white mini tile so the number/type/surcharge remains immediately readable. */
.tjb-seat-grid .tjb-seat-cell.seat:is(.standard,.premium,.extra_legroom,.wheelchair) :is(small,strong,span),
button.tjb-customer-cell.seat:is(.standard,.premium,.extra_legroom,.wheelchair) :is(strong,span,small){
  display:inline-block!important;
  width:auto!important;
  max-width:calc(100% - 4px)!important;
  padding:1px 4px!important;
  border:1px solid rgba(17,17,17,.14)!important;
  border-radius:5px!important;
  background:rgba(255,255,255,.96)!important;
  color:#111!important;
  box-shadow:0 1px 2px rgba(0,0,0,.06)!important;
  line-height:1.15!important;
  overflow:hidden;
  text-overflow:ellipsis;
}
.tjb-seat-grid .tjb-seat-cell.seat:is(.standard,.premium,.extra_legroom,.wheelchair) strong,
button.tjb-customer-cell.seat:is(.standard,.premium,.extra_legroom,.wheelchair) strong{
  font-weight:1000!important;
}
/* Defensive fallback for any stale/cached legacy extras HTML. booking.js removes
   the old checkbox as well, but hiding it here prevents even a flash of the old UI. */
.tjb-extras-policy-form [data-tjb-addon-check]{display:none!important}
.tjb-extras-policy-form .tjb-addon-main{grid-template-columns:minmax(0,1fr) auto!important}
.tjb-extras-policy-form .tjb-addon-main>input[data-tjb-addon-check]+span{grid-column:1!important}


/* v1.10.21 — uniform full seat-label tiles */
/* Keep the colour/pattern visible around the white label tiles, while making the
   seat number, FULL seat type and any +JMD surcharge behave consistently on
   every vendor/customer seat card. */
.tjb-seat-grid .tjb-seat-cell.seat:is(.standard,.premium,.extra_legroom,.wheelchair),
button.tjb-customer-cell.seat:is(.standard,.premium,.extra_legroom,.wheelchair){
  overflow:hidden!important;
}
.tjb-seat-grid .tjb-seat-cell.seat:is(.standard,.premium,.extra_legroom,.wheelchair) :is(small,strong,span),
button.tjb-customer-cell.seat:is(.standard,.premium,.extra_legroom,.wheelchair) :is(strong,span,small){
  box-sizing:border-box!important;
  display:block!important;
  width:max-content!important;
  max-width:calc(100% - 4px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding:2px 4px!important;
  white-space:nowrap!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  hyphens:none!important;
  overflow:visible!important;
  text-overflow:clip!important;
  line-height:1.05!important;
}
/* Customer cards: keep every type name and surcharge on one line, including on
   narrow/mobile seat cards. The full "Standard" label is never abbreviated. */
button.tjb-customer-cell.seat:is(.standard,.premium,.extra_legroom,.wheelchair) span{
  display:block!important;
  font-size:clamp(6.5px,2.15vw,9px)!important;
  letter-spacing:-.01em!important;
  text-transform:none!important;
}
button.tjb-customer-cell.seat:is(.standard,.premium,.extra_legroom,.wheelchair) small{
  display:block!important;
  font-size:clamp(6px,1.95vw,8px)!important;
  letter-spacing:-.015em!important;
}
button.tjb-customer-cell.seat:is(.standard,.premium,.extra_legroom,.wheelchair) strong{
  font-size:clamp(12px,3.5vw,15px)!important;
}
/* Vendor Fleet cards use the same no-wrap label contract. */
.tjb-seat-grid .tjb-seat-cell.seat:is(.standard,.premium,.extra_legroom,.wheelchair) span{
  font-size:clamp(6.5px,1vw,9px)!important;
  text-transform:none!important;
  letter-spacing:-.01em!important;
}
.tjb-seat-grid .tjb-seat-cell.seat:is(.standard,.premium,.extra_legroom,.wheelchair) small{
  font-size:clamp(6px,.9vw,8px)!important;
}


/* v1.10.24 / v1.10.53 — iPhone Safari date-control containment.
 * The earlier v1.10.24 block was stored with escaped line breaks on some builds,
 * so Safari never received the intended containment rules. Keep the native
 * date picker functional while forcing Depart / Return to the same card width
 * as From / To / Passengers. */
@media(max-width:760px){
  .tjb-booking-shell .tjb-search-grid,
  .tjb-booking-shell .tjb-search-grid > label{
    min-width:0!important;
    width:100%!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  .tjb-booking-shell .tjb-search-date{
    position:relative!important;
    display:block!important;
    min-width:0!important;
    width:100%!important;
    max-width:100%!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }
  .tjb-booking-shell .tjb-search-date input[type="date"]{
    display:block!important;
    appearance:none!important;
    -webkit-appearance:none!important;
    inline-size:100%!important;
    min-inline-size:0!important;
    max-inline-size:100%!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
    margin-inline:0!important;
    padding-right:38px!important;
    overflow:hidden!important;
  }
  .tjb-booking-shell .tjb-search-date input[type="date"]::-webkit-date-and-time-value,
  .tjb-booking-shell .tjb-search-date input[type="date"]::-webkit-datetime-edit{
    min-width:0!important;
    max-width:100%!important;
    width:100%!important;
    padding:0!important;
    text-align:left!important;
  }
  .tjb-booking-shell .tjb-search-date input[type="date"]::-webkit-calendar-picker-indicator{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    margin:0!important;
    padding:0!important;
    opacity:0!important;
    cursor:pointer!important;
  }
  .tjb-booking-shell .tjb-search-date::after{
    content:"";
    position:absolute;
    right:14px;
    bottom:15px;
    width:8px;
    height:8px;
    border-right:2px solid #475467;
    border-bottom:2px solid #475467;
    transform:rotate(45deg);
    pointer-events:none;
    z-index:2;
  }
}

/* v1.10.25 — route setup convenience actions */
.tjb-service-builder-actions{display:flex!important;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.tjb-route-step-title>[data-tjb-copy-first-fares]{margin-left:auto;align-self:center;white-space:nowrap}
@media(max-width:720px){.tjb-service-builder-actions{width:100%;display:grid!important;grid-template-columns:1fr}.tjb-route-step-title>[data-tjb-copy-first-fares]{width:100%;margin-left:0}.tjb-route-step-title:has(>[data-tjb-copy-first-fares]){flex-wrap:wrap}.tjb-route-step-title:has(>[data-tjb-copy-first-fares])>div{flex:1 1 calc(100% - 46px)}}

/* v1.10.27 — reverse turnaround control lives between outbound and return trip blocks. */
.tjb-reverse-gap-control{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,220px) auto;gap:16px;align-items:end;margin:18px 0;padding:18px;border:2px solid currentColor;border-radius:16px;background:rgba(127,127,127,.06)}
.tjb-reverse-gap-control strong{display:block;font-size:1.05rem;margin:3px 0 5px}.tjb-reverse-gap-control p{margin:0;max-width:720px}.tjb-reverse-gap-control label{display:grid;gap:6px;font-weight:700}.tjb-reverse-gap-control input{width:100%;min-width:0;box-sizing:border-box}
@media(max-width:760px){.tjb-reverse-gap-control{grid-template-columns:1fr}.tjb-reverse-gap-control .tjb-btn{width:100%}}


/* JAMBus v1.10.31 — explicit SAME DAY / NEXT DAY / +N DAYS passenger notices */
.tjb-leg-row{grid-template-columns:auto minmax(120px,1fr) minmax(120px,1fr) minmax(105px,.72fr) minmax(105px,.72fr) minmax(105px,.72fr) minmax(105px,.72fr) auto}
.tjb-leg-day-field select{width:100%;margin-top:4px!important}
.tjb-arrival-day-note{display:block!important;margin-top:4px!important;color:var(--tj-red,#d40000)!important;font-size:10px!important;font-weight:950!important;letter-spacing:.025em}
.tjb-ticket-next-day{color:var(--tj-red,#d40000)!important;font-weight:950!important}
.tjb-ticket-travel-time{line-height:1.55}
@media(max-width:1250px){.tjb-leg-row{grid-template-columns:auto repeat(2,minmax(125px,1fr)) repeat(2,minmax(110px,.72fr))}.tjb-leg-day-field{min-width:0}.tjb-leg-remove{align-self:end}}
@media(max-width:720px){.tjb-leg-row{grid-template-columns:1fr 1fr}.tjb-leg-number{grid-column:1/-1}.tjb-leg-remove{grid-column:1/-1;width:100%}}


/* v1.10.33 — linked cross-operator round-trip presentation. */
.tjb-linked-operator-choices{display:grid;gap:18px}
.tjb-linked-leg-choice{border:1px solid var(--tj-line);border-radius:16px;padding:16px;background:rgba(127,127,127,.04)}
.tjb-linked-leg-choice-head{margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--tj-line)}
.tjb-linked-leg-choice-head h3{margin:3px 0 0}
.tjb-linked-extras-policy .tjb-help{max-width:760px}
.tjb-linked-ticket-wrap>.tjb-wc-ticket{margin-top:14px}
.tjb-linked-ticket-wrap>.tjb-wc-ticket+.tjb-wc-ticket{margin-top:18px}

.tjb-review-linked-total{margin-top:4px;padding-top:9px;border-top:1px solid var(--tj-line);font-weight:850}

/* v1.10.35 — conservative same-stop self-transfer connected journeys. */
.tjb-connected-list{display:grid;gap:18px}
.tjb-connected-card{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(170px,220px);gap:0;overflow:hidden}
.tjb-connected-card-head{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;border-bottom:1px solid var(--tj-line)}
.tjb-connected-card-head strong{font-weight:900;text-align:right}
.tjb-connected-leg{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;align-items:center;padding:16px 18px}
.tjb-connected-leg>div:first-child span{display:block;font-size:10px;font-weight:950;letter-spacing:.08em;margin-bottom:5px}
.tjb-connected-leg b,.tjb-connected-leg small{display:block}.tjb-connected-leg small{margin-top:4px}
.tjb-connected-arrow{font-size:22px;font-weight:900;text-align:center}
.tjb-transfer-band{grid-column:1/2;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 18px;padding:11px 13px;border:1px solid var(--tj-line);border-radius:12px;background:rgba(254,209,0,.14)}
.tjb-transfer-band b{font-weight:950}.tjb-transfer-band span{font-size:12px;font-weight:800;text-align:right}.tjb-transfer-band small.tjb-transfer-warning{display:block;margin-top:3px;color:#c40000;font-size:11px;font-weight:900;letter-spacing:.01em}
.tjb-connected-buy{grid-column:2;grid-row:2/6;display:flex;flex-direction:column;justify-content:center;gap:7px;padding:18px;border-left:1px solid var(--tj-line);background:rgba(127,127,127,.04)}
.tjb-connected-buy>span,.tjb-connected-buy>small{font-size:11px}.tjb-connected-buy>strong{font-size:1.25rem;font-weight:950}.tjb-connected-buy .tjb-btn{text-align:center;margin-top:5px}
.tjb-connection-picker .tjb-roundtrip-progress b{font-weight:950}
@media(max-width:820px){.tjb-connected-card{grid-template-columns:1fr}.tjb-connected-card-head{align-items:flex-start;flex-direction:column}.tjb-connected-card-head strong{text-align:left}.tjb-connected-buy{grid-column:1;grid-row:auto;border-left:0;border-top:1px solid var(--tj-line)}.tjb-transfer-band{grid-column:1}.tjb-connected-leg{grid-template-columns:1fr auto 1fr}.tjb-connected-buy .tjb-btn{width:100%}}
@media(max-width:520px){.tjb-connected-leg{grid-template-columns:1fr;gap:6px}.tjb-connected-arrow{text-align:left;transform:rotate(90deg);width:max-content}.tjb-transfer-band{align-items:flex-start;flex-direction:column}.tjb-transfer-band span{text-align:left}}

.tjb-self-transfer-ticket-warning{margin:10px 0;padding:10px 12px;border:1px solid rgba(196,0,0,.35);border-radius:10px;background:rgba(196,0,0,.06);color:#b00000;font-size:12px;line-height:1.4}

/* v1.10.38 — simple 30-minute connected-journey exclusion window. */
.tjb-connected-skip-note{grid-column:1/2;margin:10px 18px 0;padding:10px 12px;border:1px solid rgba(196,0,0,.28);border-radius:10px;background:rgba(196,0,0,.05);color:inherit;font-size:11px;line-height:1.5}
.tjb-connected-skip-note b{color:#c40000;font-weight:950}
@media(max-width:820px){.tjb-connected-skip-note{grid-column:1;margin:10px 18px 0}}

/* v1.10.39 — cleaner result hierarchy + explicit transfer status. */
.tjb-search-results-stage .tjb-kicker{color:#d00000!important}
.tjb-no-transfer-band{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 0 0;padding:9px 11px;border:1px solid rgba(208,0,0,.22);border-radius:10px;background:rgba(208,0,0,.045)}
.tjb-no-transfer-band b{color:#d00000;font-size:10px;font-weight:1000;letter-spacing:.08em}
.tjb-no-transfer-band small{margin:0!important;color:#475467!important;font-size:10px!important;font-weight:750}
.tjb-connected-seat-count{color:#027a48!important;font-weight:850}
@media(max-width:520px){.tjb-no-transfer-band{align-items:flex-start;flex-direction:column}}



/* v1.10.40 — bus thumbnails on each connected-journey leg. */
.tjb-connected-leg{grid-template-columns:96px minmax(0,1fr) auto minmax(0,1fr)}
.tjb-connected-leg-photo{position:relative;align-self:stretch;min-height:86px;border-radius:12px;overflow:hidden;background-color:#18251d;background-image:linear-gradient(135deg,#1c3b27,#0d0d0d);background-size:cover;background-position:center;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.tjb-connected-photo-badge{position:absolute!important;left:7px;top:7px;display:grid!important;place-items:center;width:22px;height:22px;margin:0!important;border-radius:999px;background:#ecfdf3;color:#027a48;font-size:12px!important;font-weight:1000!important;line-height:1;box-shadow:0 3px 10px #0003}
.tjb-connected-leg-start span{display:block;font-size:10px;font-weight:950;letter-spacing:.08em;margin-bottom:5px}
.tjb-connected-leg-end{text-align:right}
@media(max-width:820px){.tjb-connected-leg{grid-template-columns:82px minmax(0,1fr) auto minmax(0,1fr)}.tjb-connected-leg-photo{min-height:78px}}
@media(max-width:600px){.tjb-connected-leg{grid-template-columns:76px minmax(0,1fr);grid-template-areas:"photo start" "photo end";gap:6px 10px;align-items:start}.tjb-connected-leg-photo{grid-area:photo;min-height:84px}.tjb-connected-leg-start{grid-area:start}.tjb-connected-leg-end{grid-area:end;text-align:left;padding-top:5px;border-top:1px solid var(--tj-line)}.tjb-connected-arrow{display:none}.tjb-connected-photo-badge{width:20px;height:20px;left:6px;top:6px}}

/* v1.10.41 — preserve segment-aware Multi-Stop context inside connected journey cards. */
.tjb-connected-card .tjb-connected-multistop-context{margin:8px 14px 10px;padding:8px 10px;border:1px solid #eceff2;border-radius:10px;background:#fff;font-size:11px;line-height:1.45}
.tjb-connected-card .tjb-connected-multistop-context b{color:#111}
@media(max-width:640px){.tjb-connected-card .tjb-connected-multistop-context{margin:7px 10px 9px}}

/* v1.10.42 — vehicle-focused workspaces + save continuity controls. */
.tjb-vehicle-context{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 0 14px;padding:14px 16px;border-left:4px solid #009B3A!important}
.tjb-vehicle-context>div{min-width:0;display:grid;gap:3px}
.tjb-vehicle-context>div>strong{font-size:16px;font-weight:950}
.tjb-vehicle-context>div>small{max-width:720px;line-height:1.45}
.tjb-vehicle-context label{display:grid;gap:6px;flex:0 1 340px;min-width:min(340px,100%);margin:0;font-size:11px;font-weight:900}
.tjb-vehicle-context select{width:100%;min-width:0}
.tjb-side-sub-new{font-weight:950!important;color:#FED100!important}
.tjb-side-sub-new .tjb-side-sub-dot{background:#FED100!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-vehicle-context{border-left-color:#FED100!important}
@media(max-width:700px){.tjb-vehicle-context{align-items:stretch;flex-direction:column}.tjb-vehicle-context label{min-width:0;flex-basis:auto}}

/* JAMBus v1.10.45 — Operator Center master search + filtered printable reports */
.tjb-master-search{display:grid;gap:16px}
.tjb-master-search-controls{display:grid;grid-template-columns:minmax(280px,2fr) repeat(4,minmax(150px,1fr));gap:12px;align-items:end}
.tjb-master-search-controls label{display:grid;gap:6px;font-weight:800}
.tjb-master-search-controls input,.tjb-master-search-controls select{width:100%}
.tjb-master-search-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tjb-master-search-meta{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px 14px;border:1px solid rgba(15,23,42,.12);border-radius:12px;background:rgba(15,23,42,.035)}
.tjb-master-search-meta strong{font-size:14px}.tjb-master-search-meta small{max-width:760px}
.tjb-master-results{display:grid;gap:12px}
.tjb-master-result{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:16px;border:1px solid rgba(15,23,42,.13);border-radius:14px;background:#fff;box-shadow:0 7px 22px rgba(15,23,42,.05)}
.tjb-master-result-main{min-width:0}.tjb-master-result h3{margin:5px 0 2px}.tjb-master-result strong{display:block;font-size:12px;color:#475569}.tjb-master-result p{margin:7px 0 0;line-height:1.5;color:#334155;word-break:break-word}
.tjb-master-result-chips{display:flex;gap:6px;flex-wrap:wrap}.tjb-master-result-chips span{display:inline-flex;padding:4px 8px;border-radius:999px;background:#f1f5f9;color:#334155;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.03em}
.tjb-master-hit{outline:3px solid #e80000!important;outline-offset:4px;box-shadow:0 0 0 8px rgba(232,0,0,.08)!important;transition:box-shadow .2s ease,outline-color .2s ease}
.tjb-content-theme-dark .tjb-master-search-meta{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.13)}
.tjb-content-theme-dark .tjb-master-result{background:#111827;border-color:rgba(255,255,255,.13);box-shadow:none}.tjb-content-theme-dark .tjb-master-result strong,.tjb-content-theme-dark .tjb-master-result p{color:#dbe4ef}.tjb-content-theme-dark .tjb-master-result-chips span{background:#263244;color:#eef4fb}
@media(max-width:1200px){.tjb-master-search-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.tjb-master-query{grid-column:1/-1}}
@media(max-width:700px){.tjb-master-search-controls{grid-template-columns:1fr}.tjb-master-query{grid-column:auto}.tjb-master-search-meta{align-items:flex-start;flex-direction:column}.tjb-master-result{grid-template-columns:1fr}.tjb-master-result .tjb-btn{width:100%}}
@media print{
  html.tjb-master-printing body *{visibility:hidden!important}
  html.tjb-master-printing .tjb-master-print-target,html.tjb-master-printing .tjb-master-print-target *{visibility:visible!important}
  html.tjb-master-printing .tjb-master-print-target{position:absolute!important;left:0!important;top:0!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;box-shadow:none!important;border:0!important;background:#fff!important;color:#000!important}
  html.tjb-master-printing .tjb-master-search-controls,html.tjb-master-printing .tjb-master-search-actions{display:none!important}
  html.tjb-master-printing .tjb-master-result{break-inside:avoid;page-break-inside:avoid;box-shadow:none!important;border:1px solid #ccc!important;background:#fff!important;color:#000!important}
  html.tjb-master-printing .tjb-master-result .tjb-btn{display:none!important}
  html.tjb-master-printing .tjb-master-result p,html.tjb-master-printing .tjb-master-result strong{color:#000!important}
}
.tjb-panel-report-shortcut{display:flex;justify-content:flex-end;margin:10px 0 14px}


/* JAMBus v1.10.46 — scalable report pagination */
.tjb-pagination{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap;margin:12px 0 16px;padding:10px 12px;border:1px solid rgba(15,23,42,.12);border-radius:12px;background:#fff}
.tjb-pagination>span{font-size:11px;font-weight:900;color:#475467}
.tjb-pagination label{display:flex!important;align-items:center;gap:7px;margin:0!important;font-size:10px!important;color:#667085!important}
.tjb-pagination select{display:inline-block!important;width:auto!important;min-width:68px;margin:0!important;padding:6px 8px!important;border-radius:8px!important}
.tjb-pagination .tjb-mini:disabled{opacity:.4;cursor:not-allowed}
.tjb-content-theme-dark .tjb-pagination{background:#111827;border-color:rgba(255,255,255,.13)}
.tjb-content-theme-dark .tjb-pagination>span,.tjb-content-theme-dark .tjb-pagination label{color:#dbe4ef!important}
.tjb-static-page-hidden{display:none!important}
@media print{.tjb-static-page-hidden:not([hidden]){display:table-row!important}}

/* JAMBus v1.10.47 — Search Panel returned to Operator Tools. */
.tjb-side-link.search-panel{background:#d40000!important;color:#fff!important;border:1px solid #ff4d4d;box-shadow:0 5px 14px rgba(212,0,0,.22)}
.tjb-side-link.search-panel:hover,.tjb-side-link.search-panel.active{background:#b00000!important;color:#fff!important;border-color:#ff7777}
.tjb-side-link.search-panel .tjb-nav-icon{color:#fff!important}
@media(max-width:520px){
  .tjb-pagination{justify-content:center}
  .tjb-pagination>span{flex:1 1 100%;text-align:center;order:-1}
}


/* JAMBus v1.10.49 — Search Panel report heading + action icons/share. */
.tjb-icon-action{display:inline-flex!important;align-items:center;gap:7px}
.tjb-icon-action svg{width:16px;height:16px;flex:0 0 16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.tjb-master-print-heading{display:none;max-width:760px;font-size:13px;font-weight:950;letter-spacing:.02em;text-align:right}
@media print{html.tjb-master-printing .tjb-master-print-heading{display:block!important;color:#000!important}}


/* JAMBus v1.10.50 — keep customer result filter/sort button labels readable on hover/focus. */
.tjb-filter-bar button:hover,.tjb-filter-bar button:focus,.tjb-filter-bar button:focus-visible{background:#FED100!important;color:#000!important;border-color:#FED100!important;box-shadow:none!important;text-shadow:none!important}
.tjb-filter-bar button:hover *, .tjb-filter-bar button:focus *, .tjb-filter-bar button:focus-visible *{color:#000!important}

/* v1.10.52 — administrator Panel Direct vendor switcher inside the native Operator Center. */
.tjb-admin-direct-switcher{display:grid;grid-template-columns:minmax(210px,.8fr) minmax(0,2.2fr);gap:14px;align-items:end;background:#111;color:#fff;border-bottom:3px solid var(--tj-yellow);padding:12px 16px;box-shadow:0 7px 18px #0002}
.tjb-admin-direct-heading{min-width:0}.tjb-admin-direct-heading .tjb-kicker{display:block;color:var(--tj-yellow);font-size:10px}.tjb-admin-direct-heading strong{display:block;margin-top:3px;font-size:15px}.tjb-admin-direct-heading small{display:block;margin-top:3px;color:#c9cecb;font-size:10px;line-height:1.35}
.tjb-admin-direct-form{display:grid;grid-template-columns:minmax(220px,1.15fr) minmax(260px,1.4fr) auto auto;gap:8px;align-items:end;min-width:0}.tjb-admin-direct-form label{display:block;margin:0;color:#fff;font-size:10px;font-weight:900;letter-spacing:.02em}.tjb-admin-direct-form input,.tjb-admin-direct-form select{display:block;width:100%;height:40px;margin-top:5px;border:1px solid #4a504c;border-radius:10px;padding:8px 10px;background:#fff;color:#111;font:inherit;font-size:12px}.tjb-admin-direct-query small{display:block;min-height:14px;margin-top:3px;color:#b9c0bb;font-size:9px;font-weight:700}.tjb-admin-direct-load,.tjb-admin-direct-clear{height:40px;white-space:nowrap}.tjb-admin-direct-load{background:var(--tj-yellow)!important;color:#050505!important}.tjb-admin-direct-clear{background:#fff!important;color:#111!important}
.tjb-admin-direct-empty{max-width:760px;margin:34px auto;background:#fff;border:1px solid var(--tj-line);border-radius:22px;padding:28px;box-shadow:0 14px 38px #0001}.tjb-admin-direct-empty h1{margin:5px 0 8px;font-size:clamp(26px,4vw,40px)}.tjb-admin-direct-empty p{margin:0;color:#667085}
@media(max-width:1050px){.tjb-admin-direct-switcher{grid-template-columns:1fr}.tjb-admin-direct-form{grid-template-columns:minmax(190px,1fr) minmax(230px,1.25fr) auto auto}}
@media(max-width:760px){.tjb-admin-direct-switcher{padding:10px}.tjb-admin-direct-form{grid-template-columns:1fr 1fr}.tjb-admin-direct-form .tjb-btn,.tjb-admin-direct-form .tjb-mini{width:100%}}
@media(max-width:520px){.tjb-admin-direct-form{grid-template-columns:1fr}.tjb-admin-direct-heading small{display:none}}


/* v1.10.53 — type-first From/To search and compact suggestion dropdown behavior. */
.tjb-search-place{min-width:0}
.tjb-route-suggestions{overscroll-behavior:contain}
@media(max-width:760px){
  .tjb-booking-shell .tjb-search-place,
  .tjb-booking-shell .tjb-search-place input,
  .tjb-booking-shell .tjb-search-grid > label:last-child,
  .tjb-booking-shell .tjb-search-grid > label:last-child input{
    min-width:0!important;
    width:100%!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
}


/* v1.10.55 — iPhone autocomplete selection + stacking normalization.
 * Visibility is controlled by the explicit [hidden] state in booking.js rather
 * than :focus-within. Mobile Safari can briefly drop input focus before it
 * dispatches the suggestion button click; hiding on that transient blur removed
 * the button before its value could be committed. JS now closes the opposite
 * list explicitly and commits touch selections on pointerup. */
@media(max-width:760px){
  .tjb-booking-shell .tjb-search-place{
    isolation:isolate;
  }
  .tjb-booking-shell .tjb-search-place:focus-within{
    z-index:120!important;
  }
  .tjb-booking-shell .tjb-route-suggestions{
    top:calc(100% + 5px)!important;
    margin-top:0!important;
  }
}

/* v1.10.56 — HivePress Verified Trip Reviews */
.tjb-bus-review-summary{display:flex;align-items:center;min-height:28px;margin:5px 0 2px}
.tjb-review-summary-button{appearance:none;display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;padding:3px 0;color:#344054;font:inherit;font-size:11px;font-weight:800;cursor:pointer;text-decoration:none}
.tjb-review-summary-button:hover,.tjb-review-summary-button:focus-visible{color:#111;text-decoration:underline;text-underline-offset:3px}
.tjb-review-summary-button strong{font-size:12px;color:#111}.tjb-review-star{color:#e4ad00;font-size:15px;line-height:1}.tjb-bus-review-summary.is-new{gap:6px;color:#667085;font-size:11px;font-weight:800}
html.tjb-review-drawer-open{overflow:hidden}
.tjb-review-drawer[hidden]{display:none!important}.tjb-review-drawer{position:fixed;inset:0;z-index:1000000;display:flex;justify-content:flex-end;align-items:stretch}
.tjb-review-drawer-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(0,0,0,.58);cursor:pointer}
.tjb-review-drawer-panel{position:relative;z-index:1;width:min(500px,94vw);height:100%;overflow:auto;background:#fff;color:#111;padding:22px;box-shadow:-18px 0 60px rgba(0,0,0,.28);animation:tjbReviewDrawerIn .18s ease}
@keyframes tjbReviewDrawerIn{from{transform:translateX(24px);opacity:.7}to{transform:none;opacity:1}}
.tjb-review-drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:15px;border-bottom:1px solid #eaecf0}.tjb-review-drawer-head h3{margin:4px 0 0;font-size:22px;line-height:1.15}.tjb-review-drawer-head h3 span{color:#e4ad00}.tjb-review-drawer-x{appearance:none;display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border:1px solid #d0d5dd;border-radius:50%;background:#fff;color:#111;font-size:24px;line-height:1;cursor:pointer}
.tjb-review-drawer-list{display:grid;gap:10px;padding:14px 0}.tjb-review-drawer-item{border:1px solid #eaecf0;border-radius:14px;padding:14px;background:#fff}.tjb-review-item-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.tjb-review-item-stars{color:#e4ad00;letter-spacing:.04em;font-size:15px}.tjb-review-item-top time{color:#667085;font-size:10px;font-weight:800}.tjb-review-item-text{margin-top:8px;color:#344054;font-size:12px;line-height:1.55}.tjb-review-item-text p{margin:0}.tjb-review-item-text p+p{margin-top:7px}.tjb-verified-trip-review{display:inline-flex;align-items:center;margin-top:8px;padding:4px 7px;border-radius:999px;background:#ecfdf3;color:#027a48;font-size:9px;font-weight:900;letter-spacing:.02em}
.tjb-review-drawer-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:14px;border-top:1px solid #eaecf0}.tjb-review-drawer-footer>span{color:#667085;font-size:10px;font-weight:700}.tjb-review-drawer-footer .tjb-btn{width:auto;background:#111!important;color:#fff!important}
.tjb-trip-review-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:13px;align-items:center;margin-top:14px;padding:14px;border:1px solid #f2d36b;border-radius:16px;background:linear-gradient(135deg,#fffbea,#fff)}
.tjb-trip-review-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#FED100;color:#111;font-size:22px;font-weight:1000}.tjb-trip-review-icon.approved{background:#ecfdf3;color:#027a48}.tjb-trip-review-icon.pending{background:#f2f4f7;color:#344054}.tjb-trip-review-copy{min-width:0}.tjb-trip-review-copy .tjb-kicker{display:block;color:#9a6700;font-size:9px}.tjb-trip-review-copy strong{display:block;margin-top:2px;font-size:14px}.tjb-trip-review-copy p{margin:4px 0 0;color:#667085;font-size:11px;line-height:1.45}.tjb-trip-review-button{width:auto!important;white-space:nowrap;background:#111!important;color:#FED100!important}.tjb-trip-review-button.secondary{background:#fff!important;color:#111!important;border:1px solid #d0d5dd}
.tjb-hp-verified-trip-note{display:grid;gap:3px;margin:0 0 15px;padding:11px 12px;border:1px solid #abefc6;border-radius:11px;background:#ecfdf3;color:#05603a}.tjb-hp-verified-trip-note strong{font-size:12px}.tjb-hp-verified-trip-note span{font-size:10px;line-height:1.4;color:#027a48}
@media(max-width:700px){.tjb-trip-review-card{grid-template-columns:auto minmax(0,1fr)}.tjb-trip-review-button{grid-column:1/-1;width:100%!important}.tjb-review-drawer-panel{width:100%;max-width:none;padding:18px}.tjb-review-drawer-footer{align-items:stretch;flex-direction:column}.tjb-review-drawer-footer .tjb-btn{width:100%}}
@media print{.tjb-bus-review-summary,.tjb-review-drawer,.tjb-trip-review-card{display:none!important}}


/* v1.10.60 — native companion-panel mobile width and scroll ownership */
@media(max-width:860px){
  .tjb-shell-operator .tjb-operator-main,
  .tjb-shell-operator .tjb-workspace,
  .tjb-shell-operator .tjb-drawer{min-width:0!important;max-width:100%!important;width:100%!important}
  .tjb-shell-operator .tjb-workspace,
  .tjb-shell-operator .tjb-drawer{overflow-x:hidden}
  .tjb-shell-operator .tjb-drawer .tjb-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x pan-y}
}

/* v1.10.62 — reusable JAMBus search-form shortcode.
 * [jambus_search_form] renders the native live search only, while retaining
 * the booking-shell scope required by the existing responsive/iPhone rules. */
.tjb-embedded-search-shell{
  width:100%!important;
  max-width:100%!important;
  margin:0 auto!important;
  padding:0!important;
  overflow:visible!important;
  background:transparent!important;
}
.tjb-embedded-search-shell .tjb-search-box{
  width:min(1040px,100%)!important;
  max-width:100%!important;
  margin:0 auto!important;
  box-sizing:border-box!important;
}
@media(max-width:760px){
  .tjb-embedded-search-shell{overflow-x:hidden!important;}
}


/* v1.10.68 — crew session workload continuity + permanent job archive. */
.tjb-session-jobs{margin-top:18px}.tjb-session-detail-head{display:flex;justify-content:flex-end;margin:10px 0}.tjb-session-archive-detail .tjb-metrics{margin:10px 0 16px}

/* v1.10.69 — source-aware finance and vendor admin policy UI. */
.tjb-count-red{color:#d40000!important}.tjb-source-toggle{display:inline-flex;gap:6px;flex-wrap:wrap}.tjb-source-toggle .tjb-btn.active{background:#111;color:#FED100!important}.tjb-admin-policy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tjb-admin-policy-grid .tjb-card{margin-top:0!important}.tjb-policy-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tjb-policy-facts div{border:1px solid #e5e7eb;border-radius:10px;background:#fff;padding:10px}.tjb-policy-facts b,.tjb-policy-facts span{display:block}.tjb-policy-facts b{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#667085}.tjb-policy-facts span{margin-top:4px;font-weight:800}@media(max-width:760px){.tjb-admin-policy-grid,.tjb-policy-facts{grid-template-columns:1fr}}


/* v1.10.70 — Admin Settings light/dark parity + timed crew break control. */
.tjb-admin-policy-card .tjb-policy-facts div{transition:background-color .15s ease,border-color .15s ease,color .15s ease}
.tjb-operator-main.tjb-content-theme-light .tjb-admin-policy-card .tjb-policy-facts div{background:#fff!important;border-color:#e5e7eb!important;color:#101828!important}
.tjb-operator-main.tjb-content-theme-light .tjb-admin-policy-card .tjb-policy-facts b{color:#667085!important}
.tjb-operator-main.tjb-content-theme-light .tjb-admin-policy-card .tjb-policy-facts span{color:#101828!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-admin-policy-card .tjb-policy-facts div{background:#111713!important;border-color:#303a33!important;color:#edf2ee!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-admin-policy-card .tjb-policy-facts b{color:#9faaa2!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-admin-policy-card .tjb-policy-facts span{color:#f4f7f5!important}
.tjb-operator-main.tjb-content-theme-dark .tjb-admin-policy-card :is(p,.tjb-route-setup-head p){color:#aeb9b1!important}
.tjb-driver-break-card{margin:14px 0 16px;border-left:4px solid #FED100!important}
.tjb-driver-break-card.is-active{border-left-color:#009B3A!important}
.tjb-driver-break-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px}
.tjb-driver-break-head h2{margin:3px 0 4px}.tjb-driver-break-head p{margin:0;color:#667085}
.tjb-break-status{display:inline-flex;align-items:center;justify-content:center;padding:7px 10px;border-radius:999px;background:#e9f8ee;color:#067a35;font-size:10px;font-weight:1000;letter-spacing:.06em;white-space:nowrap}
.tjb-break-start-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:end}
.tjb-break-start-form label{display:grid;gap:5px;font-size:11px;font-weight:900;color:#344054}
.tjb-break-start-form input,.tjb-break-start-form select{width:100%}
.tjb-break-active{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0 12px}
.tjb-break-active>div{padding:12px;border:1px solid #e5e7eb;border-radius:12px;background:#f8faf9}
.tjb-break-active span{display:block;color:#667085;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.tjb-break-active strong{display:block;margin-top:4px;font-size:24px;line-height:1.05;color:#101828}.tjb-break-active strong span{display:inline;font-size:inherit;color:inherit;text-transform:none;letter-spacing:0}
.tjb-break-active small{display:block;margin-top:5px;color:#667085}
.tjb-break-end-form{margin:0}.tjb-break-end-form .tjb-btn{width:auto}
@media(max-width:620px){.tjb-driver-break-head{display:block}.tjb-break-status{margin-top:10px}.tjb-break-start-form,.tjb-break-active{grid-template-columns:1fr}.tjb-break-end-form .tjb-btn{width:100%}}
