
.stb-driver-portal{box-sizing:border-box;max-width:1200px;margin:0 auto;color:#172b43;font:inherit}.stb-driver-portal *{box-sizing:border-box}.stb-driver-head{display:flex;justify-content:space-between;gap:20px;align-items:center;flex-wrap:wrap;margin-bottom:24px}.stb-driver-head h2{margin:0 0 5px}.stb-driver-head p{margin:0;color:#60748b}.stb-driver-metrics{display:flex;gap:10px;flex-wrap:wrap}.stb-driver-metrics>div{background:#edf5fc;border:1px solid #dbe8f6;padding:12px 18px;border-radius:12px;min-width:160px}.stb-driver-metrics small,.stb-driver-metrics strong{display:block}.stb-driver-metrics small{color:#53657c}.stb-driver-metrics strong{margin-top:6px;font-size:20px}.stb-driver-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:18px}.stb-driver-booking{background:#fff;border:1px solid #d9e5ef;box-shadow:0 3px 14px #10345a0a;border-radius:14px;padding:20px;min-width:0;overflow-wrap:anywhere}.stb-driver-booking-top{display:flex;justify-content:space-between;gap:12px;align-items:center;border-bottom:1px solid #e6edf5;padding-bottom:12px}.stb-driver-booking-top small,.stb-driver-booking-top strong{display:block}.stb-driver-booking-top small,.stb-driver-route small{font-size:12px;color:#61758b}.stb-driver-pill{background:#e8f2fd;border-radius:20px;padding:5px 11px;font-size:12px;font-weight:700}.stb-driver-route{display:grid;gap:10px;margin:15px 0}.stb-driver-route>div{position:relative;padding-left:22px}.stb-driver-route strong{display:block;margin-top:3px}.stb-driver-dot{position:absolute;left:2px;top:5px;width:11px;height:11px;border-radius:50%;background:#2e88d9}.stb-driver-dot.end{background:#13a887}.stb-driver-stops ol{margin:4px 0 0;padding-left:20px}.stb-driver-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px 0;border-top:1px solid #e6edf5;border-bottom:1px solid #e6edf5;margin:0}.stb-driver-facts div{min-width:0}.stb-driver-facts dt{color:#62758b;font-size:12px}.stb-driver-facts dd{margin:3px 0 0;font-weight:600}.stb-driver-contact{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}.stb-driver-contact a,.stb-driver-action button{display:inline-block;text-decoration:none;padding:9px 13px;border-radius:8px;background:#113d69;color:#fff;border:0;font-weight:600;cursor:pointer}.stb-driver-notes{background:#f3f7fb;border-radius:9px;padding:9px 12px;margin:10px 0}.stb-driver-notes summary{cursor:pointer;font-weight:600}.stb-driver-notes p{white-space:normal}.stb-driver-action button{background:#117a5a;width:100%;margin-top:10px}.stb-driver-gps{border:1px solid #dae4ef;padding:14px;border-radius:12px;margin-bottom:20px}.stb-driver-gps button{margin-right:8px}.stb-driver-empty{padding:24px;border:1px dashed #c7d8e8;border-radius:12px}@media(max-width:600px){.stb-driver-head{display:block}.stb-driver-metrics{margin-top:14px}.stb-driver-metrics>div{flex:1;min-width:0}.stb-driver-list{display:block}.stb-driver-booking{padding:14px;margin-bottom:13px}.stb-driver-facts{gap:10px}.stb-driver-contact a{flex:1;text-align:center}.stb-driver-booking-top{align-items:flex-start}}@media(max-width:360px){.stb-driver-facts{grid-template-columns:1fr}}

/* Compact, accessible expandable booking cards */
.stb-driver-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,390px),1fr));gap:12px}
.stb-driver-booking{padding:0;overflow:hidden;border-radius:12px}
.stb-driver-fold>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;padding:12px 14px;border:0;margin:0;min-width:0}
.stb-driver-fold>summary::-webkit-details-marker{display:none}
.stb-driver-fold>summary:focus-visible{outline:3px solid #2e88d9;outline-offset:-3px}
.stb-driver-summary-main{min-width:0;flex:1;display:grid;gap:4px}
.stb-driver-summary-main small{font-size:11px;color:#65778d;line-height:1.4}
.stb-driver-summary-main strong{font-size:14px;line-height:1.35;overflow-wrap:anywhere}
.stb-driver-summary-side{display:flex;align-items:flex-end;flex-direction:column;gap:8px;flex-shrink:0}
.stb-driver-pill{padding:3px 9px;font-size:11px}
.stb-driver-toggle{display:flex;align-items:center;gap:3px;font-weight:600;color:#135b91;font-size:12px}
.stb-driver-toggle svg{transition:transform .18s ease}
.stb-driver-fold[open] .stb-driver-toggle svg{transform:rotate(180deg)}
.stb-driver-collapse{display:none}
.stb-driver-fold[open] .stb-driver-collapse{display:inline}
.stb-driver-fold[open] .stb-driver-expand{display:none}
.stb-driver-expanded{padding:0 14px 14px;border-top:1px solid #e6edf5}
.stb-driver-route{margin:12px 0}.stb-driver-facts{padding:10px 0;gap:9px}.stb-driver-contact{margin:10px 0}
@media(max-width:600px){.stb-driver-booking{padding:0;margin-bottom:10px}.stb-driver-fold>summary{padding:11px 12px}.stb-driver-expanded{padding:0 12px 12px}.stb-driver-summary-main strong{font-size:13px}}

/* Driver calendar navigation */
.stb-driver-calendar-nav{display:flex;align-items:center;gap:10px;margin:14px 0 18px}.stb-driver-calendar-link{display:inline-flex;align-items:center;gap:8px;border:1px solid #c9d6eb;background:#f0f6ff;color:#113f75;padding:10px 14px;border-radius:10px;text-decoration:none;font-weight:650;line-height:1.4}.stb-driver-calendar-link:hover,.stb-driver-calendar-link:focus{background:#e0edff;color:#092c51}.stb-driver-calendar-link svg{flex:none}.stb-driver-calendar-page{max-width:100%;min-width:0}.stb-driver-calendar-page .stb-vc{max-width:100%}@media(max-width:640px){.stb-driver-calendar-nav{margin:10px 0}.stb-driver-calendar-link{width:100%;justify-content:center}}

/* Booking status pills — driver dashboard cards */
.stb-driver-portal .stb-driver-pill--pending{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}
.stb-driver-portal .stb-driver-pill--completed{background:#dcfce7;color:#166534;border:1px solid #86efac}

.stb-driver-portal .stb-driver-pill--confirmed{background:#ffedd5;color:#9a3412;border:1px solid #fdba74}

/* v2.2.253 compact driver booking filters */
.stb-driver-filters{margin:12px 0 16px;border:1px solid #d5e0ee;border-radius:10px;background:#fff;overflow:hidden}.stb-driver-filters>summary{display:flex;align-items:center;gap:9px;cursor:pointer;padding:11px 14px;font-weight:650;color:#163b67}.stb-driver-filters>summary svg{flex:none}.stb-driver-filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:10px;padding:12px;border-top:1px solid #e5ebf2}.stb-driver-filter-grid label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600}.stb-driver-filter-grid input,.stb-driver-filter-grid select{width:100%;min-width:0;min-height:38px;border:1px solid #cbd5e1;border-radius:7px;padding:6px}.stb-driver-filter-actions{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.stb-driver-filter-actions button,.stb-driver-payment-action button{background:#163b67;color:#fff;border:0;border-radius:7px;padding:10px 14px;cursor:pointer}.stb-driver-filter-actions a{padding:9px 0}.stb-driver-payment-action{margin:10px 0}.stb-driver-filters[dir=rtl]{direction:rtl}

/* v2.2.254 compact driver booking actions */
.stb-driver-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px;direction:inherit}
.stb-driver-actions .stb-driver-action{margin:0;min-width:0}
.stb-driver-actions .stb-driver-action button{display:flex;justify-content:center;align-items:center;gap:6px;width:100%;min-height:34px;margin:0;padding:7px 9px;font-size:12px;line-height:1.3;border-radius:7px;white-space:normal}
.stb-driver-actions .stb-driver-action button svg{width:15px;height:15px;flex-shrink:0}
.stb-driver-actions .stb-driver-payment-action{margin:0}
.stb-driver-actions .stb-driver-complete-paid-action{grid-column:1/-1}
.stb-driver-actions .stb-driver-complete-paid-action button{background:#166534;color:#fff}
@media(max-width:420px){.stb-driver-actions{grid-template-columns:1fr}.stb-driver-actions .stb-driver-complete-paid-action{grid-column:auto}}

/* v2.2.255 accessible driver action confirmation modal */
.stb-driver-confirm-overlay[hidden]{display:none!important}
.stb-driver-confirm-overlay{position:fixed;inset:0;z-index:999999;background:rgba(7,22,43,.72);display:flex;align-items:center;justify-content:center;padding:16px}
.stb-driver-confirm-dialog{width:min(100%,440px);max-height:calc(100vh - 32px);overflow:auto;background:#fff;color:#17314c;border-radius:15px;box-shadow:0 20px 60px #0005;padding:24px;box-sizing:border-box;text-align:start}
.stb-driver-confirm-icon{display:flex;align-items:center;justify-content:center;background:#e3f4ec;color:#166534;border-radius:12px;width:42px;height:42px;margin-bottom:12px}
.stb-driver-confirm-dialog h3{font-size:19px;margin:0 0 10px;color:#172b43}
.stb-driver-confirm-dialog p{margin:8px 0;line-height:1.5}
.stb-driver-confirm-ref{font-weight:700;overflow-wrap:anywhere}
.stb-driver-confirm-change{padding:10px;background:#f1f6fb;border-radius:8px;font-weight:650}
.stb-driver-confirm-buttons{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
.stb-driver-confirm-buttons button{border:1px solid #c8d5e3;border-radius:8px;padding:9px 16px;cursor:pointer;background:#fff;color:#17314c;font-weight:650}
.stb-driver-confirm-buttons .stb-driver-confirm-submit{background:#166534;border-color:#166534;color:white}
.stb-driver-confirm-buttons button:disabled{opacity:.65;cursor:wait}
@media(max-width:450px){.stb-driver-confirm-dialog{padding:18px}.stb-driver-confirm-buttons button{flex:1}}

/* v2.2.267: Compact driver navigation including My Account. */
.stb-driver-calendar-nav{flex-wrap:wrap}.stb-driver-calendar-nav .stb-driver-calendar-link{min-height:38px;padding:7px 12px;font-size:13px;box-sizing:border-box}.stb-driver-account-link svg{flex-shrink:0}@media(max-width:640px){.stb-driver-calendar-nav{display:flex;flex-wrap:wrap}.stb-driver-calendar-nav .stb-driver-calendar-link{flex:1 1 160px;width:auto}}

/* Status icons preserve existing driver status pill backgrounds. */
.stb-driver-pill{display:inline-flex;align-items:center;gap:5px}
.stb-driver-pill .stb-badge-icon,.stb-driver-payment-badge .stb-badge-icon{width:13px;height:13px;flex:0 0 13px;display:block}
.stb-driver-payment-badge{display:inline-flex;align-items:center;gap:5px;border-radius:7px;padding:3px 8px;font-size:12px;font-weight:600;background:#fff7ed;color:#9a3412}
.stb-driver-payment-paid{background:#dcfce7;color:#166534}.stb-driver-payment-failed{background:#fee2e2;color:#991b1b}.stb-driver-payment-refunded{background:#e0e7ff;color:#3730a3}
