/* Diseño A del chofer. Selectores aislados del ERP; disponible sin fuentes externas. */
.driver-ui { --driver-blue:#086e9b; --driver-ink:#14263c; font-family:Inter,"Segoe UI",Arial,sans-serif; color:var(--driver-ink); max-width:720px; margin:auto; padding-bottom:82px; }
.driver-ui * { box-sizing:border-box; }
.driver-ui button { font:inherit; cursor:pointer; touch-action:manipulation; }
.driver-ui button:disabled { opacity:.55; cursor:default; }
.driver-ui button:focus-visible,.driver-sign button:focus-visible { outline:3px solid #39a3c9; outline-offset:3px; }
.driver-ui-icon { width:18px; height:18px; flex-shrink:0; stroke:currentColor; stroke-width:1.8; fill:none; stroke-linecap:round; stroke-linejoin:round; vertical-align:middle; }
.driver-live { display:flex; align-items:center; justify-content:space-between; gap:8px; margin:0 0 12px; font-size:11px; }
.driver-live>button { padding:6px 9px; border:0; background:transparent; color:var(--driver-blue); font-size:11px; }
.driver-ui .gps-badge { display:inline-block; background:#e9edf1; color:#526475; font-size:10px; font-weight:650; padding:5px 8px; border-radius:7px; }
.driver-ui .gps-active { background:#def4e9; color:#0c7455; }
.driver-ui .gps-waiting { background:#fff0d8; color:#8e5d14; }
.driver-ui .gps-denied { background:#fce7e9; color:#a92d3a; }
.driver-page-heading { display:flex; justify-content:space-between; align-items:center; gap:10px; margin:0 0 14px; }
.driver-page-heading p { margin:0; font-size:12px; text-transform:capitalize; }
.driver-page-heading h2 { font-size:23px; margin:0; }
.driver-page-heading>span { font-size:10px; color:#28546b; background:#e3edf3; border-radius:6px; padding:7px 9px; white-space:nowrap; }
.driver-ui-card { background:white; border:1px solid #dfe6ed; border-radius:16px; padding:20px; margin-bottom:13px; box-shadow:0 2px 3px #14263c04; }
.driver-focus-label { display:flex; justify-content:space-between; align-items:baseline; gap:10px; color:#256283; font-size:10px; line-height:1.4; font-weight:700; margin-bottom:16px; }
.driver-focus-label>span:last-child { text-align:right; max-width:44%; overflow-wrap:anywhere; }
.driver-card-top { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.driver-booking { display:flex; align-items:center; gap:9px; min-width:0; }
.driver-booking strong { font-size:19px; font-weight:750; letter-spacing:-.5px; overflow-wrap:anywhere; }
.driver-type { font-size:11px; background:#e6f2fc; color:#23678d; padding:5px 7px; border-radius:5px; flex-shrink:0; font-weight:700; }
.driver-type.dep { background:#fff0d5; color:#8a591c; }
.driver-type.p2p { background:#e8eaf6; color:#635185; }
.driver-status { padding:5px 8px; background:#edf1f5; color:#536173; font-size:10px; font-weight:650; border-radius:30px; flex-shrink:0; }
.driver-status.accepted { background:#def4e9; color:#0c7455; }
.driver-status.active { background:#ddf0f9; color:#0a658c; }
.driver-status.waiting { background:#fff0d8; color:#8e5d14; }
.driver-status.danger { background:#fce7e9; color:#a92d3a; }
.driver-timing { display:flex; justify-content:space-between; align-items:baseline; gap:10px; margin:17px 0 8px; }
.driver-time { display:flex; align-items:baseline; gap:9px; font-size:34px; font-weight:750; letter-spacing:-.6px; line-height:1.15; }
.driver-time small { font-size:16px; color:#697b8b; font-weight:500; letter-spacing:0; white-space:nowrap; }
.driver-pax { display:flex; align-items:center; gap:5px; font-size:11px; color:#697b8b; white-space:nowrap; }
.driver-pax svg { width:16px; height:16px; }
.driver-customer { border:1px solid #89b8cb; border-radius:9px; padding:9px 7px; margin:0 0 10px; font-size:13px; line-height:1.3; font-weight:700; color:#203e55; overflow-wrap:anywhere; }
.driver-route { margin-left:3px; }
.driver-route>div { display:flex; gap:13px; position:relative; padding:0 0 9px; }
.driver-route>div:first-child:before { content:""; position:absolute; left:4px; top:10px; bottom:0; width:2px; background:#d4dfe7; }
.driver-route>div:last-child { padding-bottom:0; }
.driver-route i { width:10px; height:10px; border:2px solid var(--driver-blue); border-radius:50%; margin-top:3px; flex-shrink:0; z-index:1; background:white; }
.driver-route>div:last-child i { border-radius:3px; border-color:#657587; }
.driver-route span { min-width:0; color:#6b7d8d; font-size:9px; line-height:1.3; font-weight:650; }
.driver-route strong { display:block; color:var(--driver-ink); font-size:13px; line-height:1.4; margin-top:3px; font-weight:650; overflow-wrap:anywhere; }
.driver-flight { display:flex; align-items:center; gap:5px; font-size:12px; color:#256283; margin-top:7px; flex-wrap:wrap; }
.driver-flight svg { width:16px; height:16px; }
.driver-dispatch-note { display:flex; align-items:flex-start; gap:8px; margin-top:10px; padding:8px 9px; background:#edf5fa; border:1px solid #ccdee9; border-left:3px solid #1684ae; border-radius:7px; color:#314e64; font-size:12px; line-height:1.45; }
.driver-dispatch-note>span { min-width:0; }
.driver-dispatch-note strong { display:block; font-size:11px; margin-bottom:3px; color:#256283; }
.driver-dispatch-note span span,.driver-service-note span { display:block; white-space:pre-wrap; overflow-wrap:anywhere; }
.driver-service-note { padding:10px; margin-top:12px; border-radius:8px; background:#f5f7fa; font-size:12px; line-height:1.5; }
.driver-service-note strong { display:block; margin-bottom:4px; }
.driver-cash { background:#fff4db; border:1px solid #f0d69c; border-radius:11px; color:#5d4217; padding:12px; margin-top:17px; }
.driver-cash-heading { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:8px; }
.driver-cash-heading>span:first-child { display:flex; align-items:center; gap:5px; font-size:10px; font-weight:600; }
.driver-cash-heading svg { width:15px; height:15px; }
.driver-cash-heading>span:last-child { background:#f9e3b1; border-radius:5px; padding:4px 6px; font-size:9px; font-weight:700; white-space:nowrap; }
.driver-cash-row { display:grid; grid-template-columns:max-content minmax(0,1fr); gap:12px; align-items:center; }
.driver-cash-row>strong { font-size:23px; letter-spacing:-.4px; white-space:nowrap; }
.driver-cash-row>div { display:flex; gap:8px; min-width:0; }
.driver-cash-row button { flex:1; min-height:34px; padding:5px 7px; font-size:11px; font-weight:650; border:1px solid #dfc58f; border-radius:7px; background:#fffaf0; color:#684816; white-space:nowrap; }
.driver-cash-row button:first-child { background:#765018; border-color:#765018; color:white; }
.driver-cash.resolved { padding:0; overflow:hidden; }
.driver-cash.cobrado { background:#e5f6ed; border-color:#b6deca; color:#165e42; }
.driver-cash.no_cobrado { background:#fff0eb; border-color:#ecc1b3; color:#773c25; }
.driver-cash.resolved>button { display:flex; justify-content:space-between; align-items:center; gap:12px; width:100%; min-height:55px; padding:13px; border:0; background:transparent; color:inherit; text-align:left; }
.driver-cash.resolved strong { font-size:23px; line-height:1.25; letter-spacing:-.4px; }
.driver-cash.resolved span { display:flex; align-items:center; gap:7px; font-size:13px; font-weight:650; white-space:nowrap; }
.driver-card-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:15px; }
.driver-card-actions>button,.driver-ui .driver-action { display:flex; justify-content:center; align-items:center; gap:7px; min-height:46px; flex:1; padding:12px 10px!important; border:0!important; border-radius:9px!important; background:var(--driver-blue)!important; color:white!important; font-size:12px; font-weight:650!important; cursor:pointer; width:auto!important; }
.driver-card-actions>.btn-success { background:#0c7455!important; }
.driver-card-actions>.btn-danger,.driver-card-actions>.btn-outline-danger { color:#ab3540!important; border:1px solid #e7c5c9!important; background:white!important; }
.driver-card-actions>.btn-secondary,.driver-ui .driver-action.secondary { color:#28546b!important; background:#e8f1f7!important; }
.driver-details,.driver-back { display:flex; align-items:center; gap:6px; color:var(--driver-blue); background:transparent; border:0; padding:0; font-size:11px!important; font-weight:650!important; margin-top:12px; min-height:28px; }
.driver-back { margin:0 0 14px; font-size:13px!important; }
.driver-details svg { width:13px; height:13px; }
.driver-card-closed { padding:16px; }
.driver-card-closed .driver-booking strong { font-size:16px; }
.driver-card-closed .driver-timing { margin:11px 0; }
.driver-card-closed .driver-time { font-size:23px; }
.driver-history-route { font-size:12px; line-height:1.65; overflow-wrap:anywhere; }
.driver-bottom-nav { position:fixed; bottom:0; left:50%; transform:translateX(-50%); width:min(100%,720px); z-index:4; background:#fff; border-top:1px solid #dfe6ed; display:flex; justify-content:space-around; padding:10px 0 max(10px,env(safe-area-inset-bottom)); }
.driver-bottom-nav button { display:flex; flex-direction:column; align-items:center; gap:5px; border:0; background:transparent; color:#7a8999; font-size:10px; padding:5px 22px; }
.driver-bottom-nav button.selected { color:var(--driver-blue); font-weight:650; }
.driver-empty { padding:36px 20px; background:#fff; border:1px solid #dfe6ed; border-radius:14px; text-align:center; font-size:13px; line-height:1.7; color:#64748b; }
.driver-alert { padding:10px 12px; margin:10px 0; background:#fff0eb; border-radius:7px; font-size:12px; line-height:1.5; color:#8d472f; overflow-wrap:anywhere; }
.driver-dialog-overlay { position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center; padding:20px; background:#10213780; }
.driver-dialog { width:min(100%,420px); max-height:90dvh; overflow:auto; padding:24px; background:#fff; border-radius:16px; box-shadow:0 16px 40px #10213733; }
.driver-dialog h2 { margin:0 0 14px; font-size:21px; }
.driver-dialog p { font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.driver-dialog .driver-dialog-amount { font-size:26px; font-weight:750; }
.driver-dialog label { display:block; font-size:13px; font-weight:650; margin-bottom:8px; }
.driver-dialog textarea { width:100%; border:1px solid #b6c5d0; border-radius:8px; padding:10px; font:inherit; font-size:14px; }
.driver-dialog-actions { display:flex; gap:8px; margin-top:18px; }
.driver-sign { position:fixed; inset:0; z-index:9999; color:#102137; background:#fff; font-family:Inter,"Segoe UI",Arial,sans-serif; }
.driver-sign[hidden] { display:none!important; }
.driver-sign-content { width:100%; height:100%; height:100dvh; display:flex; flex-direction:column; padding:clamp(16px,3vw,38px); box-sizing:border-box; }
.driver-sign-header { display:flex; align-items:center; justify-content:space-between; gap:16px; border-bottom:1px solid #d9e3eb; padding-bottom:18px; flex-shrink:0; }
.driver-sign-header>strong { font-size:clamp(20px,3vw,38px); font-weight:850; }
.driver-sign-header small { display:block; font-size:10px; letter-spacing:2px; margin-top:6px; color:#076f9d; }
.driver-sign-header>span { font-size:clamp(11px,2vw,20px); padding-right:50px; text-align:right; }
.driver-sign-main { flex:1; min-height:0; display:flex; flex-direction:column; align-items:center; justify-content:center; overflow:hidden; padding:24px 6px; gap:18px; }
.driver-sign-main>span { flex-shrink:0; font-size:clamp(10px,1.6vw,17px); font-weight:650; letter-spacing:3px; color:#076f9d; }
#driver-sign-name { width:100%; font-weight:800; font-size:clamp(40px,16vw,160px); text-transform:uppercase; line-height:1.03; text-align:center; word-break:normal; overflow-wrap:normal; flex-shrink:0; }
.driver-sign-footer { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; border-top:1px solid #d9e3eb; padding-top:18px; flex-shrink:0; font-size:clamp(11px,1.6vw,18px); }
.driver-sign-footer strong { min-width:0; overflow-wrap:anywhere; font-weight:650; }
.driver-sign-footer>span { white-space:nowrap; }
.driver-sign-close { position:absolute; top:18px; right:18px; z-index:1; width:44px; height:44px; border:0; border-radius:50%; background:#10213710; color:#102137; font-size:30px; opacity:.65; cursor:pointer; }
.driver-sign-close:focus,.driver-sign-close:active { opacity:1; }
@media(max-width:390px) { .driver-ui-card { padding:17px; } .driver-booking { gap:6px; } .driver-booking strong { font-size:17px; } .driver-status { font-size:9px; padding:4px 7px; } .driver-time { font-size:31px; } .driver-time small { font-size:15px; } .driver-pax { font-size:10px; } .driver-cash-row { gap:9px; } .driver-cash-row>strong { font-size:21px; } .driver-cash-row>div { gap:6px; } .driver-cash-row button { padding:5px; font-size:10px; } }
@media(max-height:420px) { .driver-sign-content { padding:12px 22px; } .driver-sign-header { padding-bottom:10px; } .driver-sign-footer { padding-top:10px; } .driver-sign-main { padding:10px 0; gap:18px; } .driver-sign-header>strong { font-size:23px; } }
