/*!
 * B-LineXpress Bookings — driver dashboard (dark luxury, mobile-first)
 * Version: 0.5.0
 */
.blxb-driver{background:#0a0a0a;color:#e8e6e1;min-height:70vh;padding:36px 0 80px;
  font-family:'Manrope',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;}
.blxb-driver .wrap{max-width:760px;margin:0 auto;padding:0 20px;}
.blxb-dv-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:26px;}
.blxb-dv-head .eyebrow{display:block;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:#c9a227;margin-bottom:8px;}
.blxb-dv-head h1{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;font-size:clamp(28px,5vw,40px);color:#f3f1ec;margin:0;line-height:1;}
.blxb-dv-boot{color:#8d8a82;text-align:center;padding:60px 0;}
.blxb-dv-empty{color:#8d8a82;text-align:center;padding:60px 20px;border:1px dashed #2a2823;border-radius:14px;}

.blxb-trip{background:#101010;border:1px solid #232220;border-radius:16px;padding:22px;margin-bottom:18px;
  box-shadow:0 24px 60px -34px rgba(0,0,0,.9);}
.blxb-trip .t-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;}
.blxb-trip .t-when{font-family:'Cormorant Garamond',Georgia,serif;font-size:24px;font-weight:600;color:#f3f1ec;line-height:1.1;}
.blxb-trip .t-tour{color:#cfccc4;font-size:13.5px;margin-top:4px;}
.blxb-trip .t-pill{flex:0 0 auto;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;padding:6px 12px;border-radius:999px;border:1px solid;white-space:nowrap;}

.blxb-trip .t-route{margin:18px 0;padding:16px;background:#0a0a0a;border:1px solid #1d1c19;border-radius:12px;}
.blxb-trip .t-leg{display:flex;gap:12px;align-items:flex-start;}
.blxb-trip .t-leg + .t-leg{margin-top:12px;}
.blxb-trip .t-dot{flex:0 0 auto;width:11px;height:11px;border-radius:50%;margin-top:4px;}
.blxb-trip .t-dot.up{background:#c9a227;}
.blxb-trip .t-dot.down{background:#5cb87a;}
.blxb-trip .t-leg .lbl{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#7d7a72;}
.blxb-trip .t-leg .val{font-size:14.5px;color:#e8e6e1;line-height:1.4;}
.blxb-trip .t-meta{display:flex;flex-wrap:wrap;gap:8px 22px;margin:4px 0 0;}
.blxb-trip .t-meta .m{font-size:13px;color:#a6a39b;}
.blxb-trip .t-meta .m strong{color:#e8e6e1;font-weight:600;}
.blxb-trip .t-notes{margin-top:14px;font-size:13.5px;color:#cfccc4;line-height:1.55;background:rgba(201,162,39,.07);
  border:1px solid rgba(201,162,39,.25);border-radius:10px;padding:12px 14px;}
.blxb-trip .t-call{display:inline-flex;align-items:center;gap:7px;color:#c9a227;text-decoration:none;font-size:13.5px;margin-top:12px;}

.blxb-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:18px;}
.blxb-step{appearance:none;border:1px solid #2a2823;background:#0a0a0a;color:#9a978f;font:inherit;font-size:12.5px;
  font-weight:600;letter-spacing:.02em;padding:13px 6px;border-radius:10px;cursor:pointer;transition:all .18s;text-align:center;}
.blxb-step:hover{border-color:#3a3833;color:#cfccc4;}
.blxb-step.done{background:rgba(92,184,122,.14);border-color:rgba(92,184,122,.5);color:#7fd49a;}
.blxb-step.current{background:#c9a227;border-color:#c9a227;color:#0a0a0a;}
.blxb-step[disabled]{opacity:.55;cursor:default;}

.blxb-dv-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:#15140f;
  border:1px solid #c9a227;color:#e3c25a;padding:12px 20px;border-radius:10px;font-size:13px;opacity:0;pointer-events:none;
  transition:all .25s;z-index:9999;}
.blxb-dv-toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

@media(max-width:560px){
  .blxb-steps{grid-template-columns:1fr 1fr;}
  .blxb-trip{padding:18px;}
}

/* admin "view as driver" switcher */
.blxb-dv-switch{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#101010;border:1px solid #2a2823;
  border-radius:12px;padding:14px 16px;margin-bottom:20px;}
.blxb-dv-switch .lbl{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#c9a227;}
.blxb-dv-switch select{background:#0a0a0a;border:1px solid #2a2823;color:#f0eee8;font:inherit;font-size:14px;
  padding:9px 12px;border-radius:8px;outline:none;cursor:pointer;}
.blxb-dv-switch select:focus{border-color:#c9a227;}
.blxb-dv-switch .note{font-size:12px;color:#7d7a72;}

/* embedded in wp-admin (Driver View screen) */
.blxb-driver-admin{margin:20px 20px 0 0;border:1px solid #232220;border-radius:16px;min-height:auto;padding:30px 0 60px;
  box-sizing:border-box;max-width:100%;overflow-x:hidden;}
.blxb-driver-admin .wrap{max-width:820px;box-sizing:border-box;}

/* ===== change request banner (driver) ===== */
.t-change{margin-top:14px;background:rgba(201,162,39,.1);border:1px solid rgba(201,162,39,.35);border-radius:10px;padding:12px 14px;font-size:13px;color:#e3c25a;line-height:1.5;}
.t-change-btns{display:flex;gap:8px;margin-top:10px;}
.t-chg{flex:1;background:#c9a227;border:0;color:#0a0a0a;font:inherit;font-weight:700;font-size:13px;padding:9px;border-radius:8px;cursor:pointer;}
.t-chg.decline{background:transparent;border:1px solid #5c2b2e;color:#e06a5b;}
.t-chg[disabled]{opacity:.6;}

/* ===== payment-on-complete modal (shared) ===== */
.blxb-payov{position:fixed;inset:0;background:rgba(8,8,8,.62);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s;z-index:100001;backdrop-filter:blur(3px);}
.blxb-payov.open{opacity:1;pointer-events:auto;}
.blxb-paymodal{background:#15140f;border:1px solid #2a2823;border-radius:16px;padding:26px;max-width:380px;width:92%;text-align:center;box-shadow:0 40px 90px -40px rgba(0,0,0,.9);}
.blxb-paymodal h3{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;font-size:24px;color:#f3f1ec;margin:0 0 4px;}
.blxb-paymodal p{color:#9a978f;font-size:13.5px;margin:0 0 18px;}
.blxb-paybtns{display:grid;gap:10px;}
.blxb-paybtns button{background:#0a0a0a;border:1px solid #3a3833;color:#f0eee8;font:inherit;font-size:15px;font-weight:600;padding:14px;border-radius:10px;cursor:pointer;transition:all .15s;}
.blxb-paybtns button:hover{border-color:#c9a227;background:rgba(201,162,39,.12);color:#e3c25a;}
.blxb-paybtns button[disabled]{opacity:.6;}
.blxb-payskip{background:none;border:0;color:#8d8a82;font:inherit;font-size:13px;margin-top:14px;cursor:pointer;}

/* ===== Admin "Driver View" — light theme to match admin apps ===== */
body.blxb-dvl .blxb-driver{background:#f6f7f9;color:#3f4451;}
body.blxb-dvl .blxb-driver .blxb-dv-head .eyebrow{color:#b58a1a;}
body.blxb-dvl .blxb-driver .blxb-dv-head h1{color:#111827;}
body.blxb-dvl .blxb-driver .blxb-dv-boot,body.blxb-dvl .blxb-driver .blxb-dv-empty{color:#6b7280;border-color:#d1d5db;}
body.blxb-dvl .blxb-driver .blxb-trip{background:#fff;border-color:#e5e7eb;box-shadow:0 1px 3px rgba(16,24,40,.1);}
body.blxb-dvl .blxb-driver .blxb-trip .t-when{color:#111827;}
body.blxb-dvl .blxb-driver .blxb-trip .t-tour{color:#6b7280;}
body.blxb-dvl .blxb-driver .blxb-trip .t-route{background:#f6f7f9;border-color:#e5e7eb;}
body.blxb-dvl .blxb-driver .blxb-trip .t-leg .val{color:#111827;}
body.blxb-dvl .blxb-driver .blxb-trip .t-meta .m{color:#6b7280;}
body.blxb-dvl .blxb-driver .blxb-trip .t-meta .m strong{color:#111827;}
body.blxb-dvl .blxb-driver .blxb-trip .t-notes{color:#3f4451;background:rgba(181,138,26,.08);border-color:rgba(181,138,26,.3);}
body.blxb-dvl .blxb-driver .blxb-trip .t-call{color:#b58a1a;}
body.blxb-dvl .blxb-driver .blxb-dv-switch{background:#fff;border-color:#e5e7eb;}
body.blxb-dvl .blxb-driver .blxb-dv-switch .lbl{color:#b58a1a;}
body.blxb-dvl .blxb-driver .blxb-dv-switch select{background:#fff;border-color:#cbd2da;color:#111827;}
body.blxb-dvl .blxb-driver .blxb-dv-switch .note{color:#6b7280;}
body.blxb-dvl .blxb-driver .t-change{background:rgba(181,138,26,.08);border-color:rgba(181,138,26,.35);color:#8a6a12;}
body.blxb-dvl .blxb-driver .blxb-dv-tools input[type=search]{background:#fff;border-color:#cbd2da;color:#111827;}
body.blxb-dvl .blxb-driver .blxb-dv-tools #dv-view{background:#fff;border-color:#cbd2da;color:#8a6a12;}
body.blxb-dvl .blxb-driver .blxb-dv-tools #dv-view.on{background:#b58a1a;border-color:#b58a1a;color:#fff;}
body.blxb-dvl .blxb-driver .dv-secnote{color:#6b7280;}
body.blxb-dvl .blxb-driver .t-note{border-color:#cbd2da;color:#8a6a12;}
body.blxb-dvl .blxb-driver .t-noteed textarea{background:#fff;border-color:#cbd2da;color:#111827;}
body.blxb-dvl .blxb-driver .t-notesend{color:#fff;background:#b58a1a;}
body.blxb-dvl .blxb-driver .t-notecancel{background:#fff;border-color:#cbd2da;color:#6b7280;}
body.blxb-dvl .blxb-driver .t-donebar{background:#f0fdf4;border-color:#bbf7d0;color:#15803d;}

/* ---- shift bar: the driver's live link to the tower ---- */
.blxb-shiftbar{display:flex;align-items:center;gap:14px;max-width:760px;margin:0 auto 18px;padding:14px 18px;
  background:#101010;border:1px solid #232220;border-radius:16px;}
/* display:flex outranks the hidden attribute — say it plainly */
.blxb-shiftbar[hidden]{display:none !important;}
.blxb-shiftbar .dot{width:12px;height:12px;border-radius:50%;background:#4b4a45;flex:none;transition:all .3s;}
.blxb-shiftbar .dot.on{background:#2ecc71;box-shadow:0 0 0 5px rgba(46,204,113,.18);animation:blxbpulse 2s infinite;}
.blxb-shiftbar .dot.idle{background:#e0a020;box-shadow:0 0 0 5px rgba(224,160,32,.16);} /* on shift, GPS paused */
.blxb-shiftbar #sh-off{background:transparent;border:1px solid #3a3833;color:#8d8a82;font-weight:600;padding:0 14px;}
@keyframes blxbpulse{0%,100%{box-shadow:0 0 0 4px rgba(46,204,113,.18)}50%{box-shadow:0 0 0 8px rgba(46,204,113,.06)}}
.blxb-shiftbar .tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.blxb-shiftbar .tx b{font-size:15px;color:#f0eee8;}
.blxb-shiftbar .tx i{font-style:normal;font-size:12px;color:#8d8a82;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.blxb-shiftbar button{flex:none;min-height:44px;padding:0 20px;border-radius:10px;border:0;cursor:pointer;
  background:#c9a227;color:#14120c;font:inherit;font-size:14px;font-weight:700;}
/* The preview's read-only strip. Not a bar with a dead button — a quiet line
   of status, sized like a caption, so nothing on it invites a tap. */
.blxb-shiftbar.ro{gap:10px;padding:9px 14px;border-radius:12px;background:transparent;border-style:dashed;}
.blxb-shiftbar.ro .dot{width:8px;height:8px;}
.blxb-shiftbar.ro .dot.on{box-shadow:0 0 0 3px rgba(46,204,113,.16);animation:none;}
.blxb-shiftbar.ro .tx{flex-direction:row;align-items:baseline;gap:8px;flex-wrap:wrap;}
.blxb-shiftbar.ro .tx b{font-size:12.5px;letter-spacing:.02em;}
.blxb-shiftbar.ro .tx i{font-size:11.5px;white-space:normal;}
body.blxb-dvl .blxb-driver .blxb-shiftbar.ro{border-color:#e0e3e8;}
body.blxb-dvl .blxb-driver .blxb-shiftbar.ro .dot{background:#cbd2da;}
body.blxb-dvl .blxb-driver .blxb-shiftbar.ro .dot.on{background:#1e8a4c;}
body.blxb-dvl .blxb-driver .blxb-shiftbar.ro .tx b{color:#3f4451;}
body.blxb-dvl .blxb-driver .blxb-shiftbar.ro .tx i{color:#8b909a;}
.blxb-shiftbar button.end{background:transparent;border:1px solid #3a3833;color:#cfccc4;}

/* ---- run sheet toolbar: filter + past trips ---- */
.blxb-dv-tools{display:flex;gap:10px;margin-bottom:16px;}
.blxb-dv-tools input[type=search]{flex:1;min-width:0;background:#101010;border:1px solid #2a2823;border-radius:999px;
  color:#f0eee8;font:inherit;font-size:14px;padding:11px 18px;outline:none;}
.blxb-dv-tools input[type=search]:focus{border-color:#c9a227;}
.blxb-dv-tools #dv-view{flex:none;background:#101010;border:1px solid #3a3833;color:#e3c25a;border-radius:999px;
  padding:0 18px;min-height:44px;font:inherit;font-size:13.5px;font-weight:700;cursor:pointer;white-space:nowrap;}
.blxb-dv-tools #dv-view.on{background:#c9a227;border-color:#c9a227;color:#14120c;}
.dv-secnote{font-size:12.5px;color:#8d8a82;margin:0 2px 12px;}

/* notes on past trips */
.t-note{display:block;width:100%;margin-top:12px;min-height:46px;background:none;border:1px dashed #3a3833;
  border-radius:10px;color:#e3c25a;font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;}
.t-note:active{background:rgba(201,162,39,.08);}
.t-noteed{margin-top:10px;}
.t-noteed textarea{width:100%;box-sizing:border-box;background:#0a0a0a;border:1px solid #2a2823;border-radius:10px;
  color:#f0eee8;font:inherit;font-size:14px;padding:12px 14px;outline:none;resize:vertical;}
.t-noteed textarea:focus{border-color:#c9a227;}
.t-notebtns{display:flex;gap:8px;margin-top:8px;}
.t-notesend{flex:1;min-height:46px;background:#c9a227;border:0;border-radius:10px;color:#14120c;
  font:inherit;font-size:14px;font-weight:800;cursor:pointer;}
.t-notesend[disabled]{opacity:.6;}
.t-notecancel{flex:none;min-height:46px;padding:0 18px;background:none;border:1px solid #3a3833;border-radius:10px;
  color:#8d8a82;font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;}

/* primary card action (driver run sheet) */
.t-go{display:block;width:100%;margin-top:16px;min-height:54px;border:0;border-radius:12px;cursor:pointer;
  background:#c9a227;color:#14120c;font:inherit;font-size:15.5px;font-weight:800;letter-spacing:.01em;
  box-shadow:0 14px 30px -18px rgba(201,162,39,.55);transition:transform .12s;}
.t-go:active{transform:scale(.985);}
.t-go.cont{background:#0a0a0a;border:1px solid #c9a227;color:#e3c25a;box-shadow:none;}
.t-go.pay{background:#1e8a4c;color:#fff;box-shadow:0 14px 30px -18px rgba(30,138,76,.5);}
.t-go[disabled]{opacity:.6;}
.t-donebar{margin-top:16px;padding:13px;text-align:center;border-radius:12px;font-size:13.5px;font-weight:700;
  background:rgba(92,184,122,.12);border:1px solid rgba(92,184,122,.4);color:#7fd49a;}

/* ===== focus mode: one stage, one screen ===== */
.blxb-focus{position:fixed;inset:0;z-index:100000;display:flex;flex-direction:column;overflow-y:auto;
  background:#0a0a0a;color:#e8e6e1;font-family:'Manrope',-apple-system,sans-serif;
  opacity:0;transform:translateY(14px);transition:opacity .22s,transform .22s;
  padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);}
.blxb-focus.open{opacity:1;transform:none;}
/* Whichever element is the scroller — <body> on the chauffeur's page, <html>
   inside wp-admin — is held still while a full-screen surface is open. */
html.blxb-focused,body.blxb-focused,
html.blxb-msgs-open,body.blxb-msgs-open{overflow:hidden;}
/* Framed: the desk's preview keeps its console. The inset comes from JS, which
   measures the admin content area; the corners and the shadow say "panel". */
.blxb-framed{border-radius:14px;overflow:hidden;box-shadow:0 30px 70px -30px rgba(0,0,0,.6);}
.blxb-framed.dv-flsheet{border-radius:0;overflow:visible;box-shadow:none;}
/* the journey strip IS the header: a hairline rail flowing through four stage marks */
.fx-top{flex:0 0 auto;display:flex;align-items:flex-start;gap:0;padding:16px 18px 8px 4px;
  padding-top:calc(16px + env(safe-area-inset-top));}
.fx-exit{flex:none;background:none;border:0;color:#8d8a82;font:inherit;font-size:26px;font-weight:300;
  line-height:40px;cursor:pointer;padding:0 12px;transition:color .15s;}
.fx-exit:active{color:#e3c25a;}
.fx-dots{flex:1;display:flex;}
.fx-dot{flex:1;position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0;}
.fx-dot::before{content:'';position:absolute;top:20px;right:50%;width:100%;height:1px;background:#26241f;}
.fx-dot:first-child::before{display:none;}
.fx-dot.done::before,.fx-dot.cur::before{background:rgba(201,162,39,.5);}
.fx-dot i{position:relative;z-index:1;width:40px;height:40px;border-radius:50%;border:1px solid #2a2823;
  background:#0a0a0a;color:#6f6c64;display:flex;align-items:center;justify-content:center;font-style:normal;transition:all .25s;}
.fx-dot i svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;}
.fx-dot b{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:#6f6c64;font-weight:600;white-space:nowrap;}
.fx-dot.done i{border-color:rgba(92,184,122,.4);color:#6fae85;}
.fx-dot.done b{color:#6fae85;}
.fx-dot.cur i{border-color:#c9a227;color:#e3c25a;box-shadow:0 0 24px -6px rgba(201,162,39,.55);}
.fx-dot.cur b{color:#e3c25a;}
.fx-sub{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#8d8a82;margin:20px 2px 16px;}
.fx-body{flex:1 1 auto;padding:0 20px 24px;max-width:560px;width:100%;margin:0 auto;}
.fx-count{display:inline-block;margin:0 0 18px;padding:3px 0 3px 14px;border-left:2px solid #c9a227;
  font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#e3c25a;font-variant-numeric:tabular-nums;}
.fx-count.now{border-left-color:#5cb87a;color:#7fd49a;}
.fx-count.late{border-left-color:#e05252;color:#e88;}
.fx-addr{background:#0e0e0d;border:1px solid #1f1e1a;border-radius:14px;padding:22px;margin-bottom:12px;}
.fx-addr .lbl,.fx-guest .lbl,.fx-notes .lbl,.fx-stops .lbl,.fx-paysum .lbl{display:block;font-size:9.5px;letter-spacing:.26em;text-transform:uppercase;color:#c9a227;margin-bottom:8px;}
.fx-addr .val{font-family:'Cormorant Garamond',Georgia,serif;font-size:27px;font-weight:600;color:#f3f1ec;line-height:1.2;}
.fx-nav{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:18px;min-height:52px;border-radius:10px;
  background:#c9a227;color:#14120c;text-decoration:none;font-size:12.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  transition:transform .12s;}
.fx-nav svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.fx-nav:active{transform:scale(.985);}
.fx-guest{display:flex;align-items:center;gap:12px;background:#0e0e0d;border:1px solid #1f1e1a;border-radius:14px;padding:18px 22px;margin-bottom:12px;}
.fx-guest .fx-gname{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.fx-guest .fx-gname b{font-family:'Cormorant Garamond',Georgia,serif;font-size:21px;font-weight:600;color:#f3f1ec;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.fx-guest .fx-gname i{font-style:normal;font-size:12px;color:#8d8a82;letter-spacing:.04em;}
.fx-gbtns{display:flex;gap:8px;flex:none;}
.fx-callbtn,.fx-smsbtn{display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:9px;
  text-decoration:none;font-size:11.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;border:1px solid #34322c;color:#e3c25a;
  transition:border-color .15s;}
.fx-callbtn:active,.fx-smsbtn:active{border-color:#c9a227;background:rgba(201,162,39,.08);}
.fx-guest.big{flex-direction:column;align-items:stretch;text-align:center;padding:26px 22px;}
.fx-guest.big .fx-gname b{font-size:30px;white-space:normal;}
.fx-guest.big .fx-gbtns{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;}
.fx-guest.big .fx-callbtn{background:#c9a227;border:0;color:#14120c;min-height:52px;font-size:12.5px;}
.fx-guest.big .fx-smsbtn{min-height:52px;font-size:12.5px;}
.fx-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;}
.fx-chips span{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#a6a39b;border:1px solid #26241f;border-radius:999px;padding:8px 14px;}
.fx-notes{background:rgba(201,162,39,.05);border:1px solid rgba(201,162,39,.22);border-radius:14px;padding:16px 20px;
  font-size:14px;color:#cfccc4;line-height:1.6;margin-bottom:12px;}
.fx-wait{font-size:14px;color:#a6a39b;line-height:1.65;margin-bottom:16px;}
/* the aircraft, in the chauffeur's words */
.fx-flight{background:#0e0e0d;border:1px solid #1f1e1a;border-radius:14px;padding:18px 22px;margin-bottom:12px;
  border-left:3px solid #2f6fd0;}
.fx-flight .val{font-size:16px;font-weight:600;color:#f3f1ec;line-height:1.35;}
.fx-flight .sub{margin-top:5px;font-size:12px;letter-spacing:.06em;color:#8d8a82;text-transform:uppercase;}
.fx-flight.landed{border-left-color:#5cb87a;}
.fx-flight.delayed{border-left-color:#e0a020;}
.fx-flight.cancelled,.fx-flight.diverted{border-left-color:#e05252;}
.fx-flight.scheduled,.fx-flight.unknown{border-left-color:#3a3833;}
/* the number is a door to the full picture */
.flnum{color:inherit;text-decoration:none;border-bottom:1px dashed currentColor;padding-bottom:1px;
  font-weight:inherit;white-space:nowrap;}
.flnum .ext{font-size:.78em;margin-left:3px;opacity:.7;vertical-align:1px;}
.flnum:active,.flnum:hover{opacity:.82;}
.fx-flight .val .fltx{font-weight:600;}
.t-flight{margin-top:10px;font-size:12.5px;font-weight:600;color:#a6a39b;}
.t-flight.delayed{color:#e3c25a;}
.t-flight.landed{color:#7fd49a;}
.t-flight.cancelled,.t-flight.diverted{color:#e88;}

.fx-stops{background:#0e0e0d;border:1px solid #1f1e1a;border-radius:14px;padding:18px 22px;margin-bottom:12px;}
.fx-stop{display:flex;align-items:center;gap:12px;font-size:14.5px;color:#e8e6e1;padding:7px 0;}
.fx-stop i{flex:none;width:22px;height:22px;border-radius:50%;border:1px solid #c9a227;color:#e3c25a;background:none;font-style:normal;
  font-size:10.5px;font-weight:700;display:flex;align-items:center;justify-content:center;}
.fx-foot{flex:0 0 auto;position:sticky;bottom:0;padding:14px 18px;max-width:560px;width:100%;margin:0 auto;
  padding-bottom:calc(14px + env(safe-area-inset-bottom));
  background:linear-gradient(to top,#0a0a0a 70%,rgba(10,10,10,0));}
.fx-action{display:block;width:100%;min-height:58px;border:0;border-radius:11px;cursor:pointer;
  background:#c9a227;color:#14120c;font:inherit;font-size:13px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;
  box-shadow:0 20px 44px -22px rgba(201,162,39,.6);transition:transform .12s;}
.fx-action:active{transform:scale(.985);}
.fx-action[disabled]{opacity:.65;}
.fx-back{display:block;width:100%;background:none;border:0;color:#8d8a82;font:inherit;font-size:10.5px;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;margin-top:12px;cursor:pointer;padding:10px;}
.fx-back:active{color:#cfccc4;}
/* wrap up / payment */
.fx-done{width:72px;height:72px;border-radius:50%;border:1px solid rgba(92,184,122,.5);
  color:#7fd49a;font-size:30px;display:flex;align-items:center;justify-content:center;margin:8px 0 16px;}
.fx-paidnote{font-family:'Cormorant Garamond',Georgia,serif;font-size:22px;font-weight:600;color:#f3f1ec;margin-bottom:8px;}
.fx-paysum{background:#0e0e0d;border:1px solid #1f1e1a;border-radius:14px;padding:26px 22px;margin-bottom:14px;text-align:center;}
.fx-paysum b{display:block;font-family:'Cormorant Garamond',Georgia,serif;font-size:46px;font-weight:600;color:#f3f1ec;line-height:1;}
.fx-paysum i{display:block;font-style:normal;font-size:12px;letter-spacing:.06em;color:#8d8a82;margin-top:10px;}
.fx-paybtns{display:grid;gap:10px;}
.fx-pay{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-height:60px;padding:13px 20px;
  border-radius:11px;border:1px solid #34322c;background:#0e0e0d;color:#f0eee8;font:inherit;font-size:15px;font-weight:600;
  cursor:pointer;text-align:left;transition:all .15s;}
.fx-pay span{font-size:11.5px;font-weight:500;color:#8d8a82;letter-spacing:.03em;}
.fx-pay:active{border-color:#c9a227;background:rgba(201,162,39,.07);}
.fx-pay.wallet{border-color:#c9a227;background:rgba(201,162,39,.07);}
.fx-pay.wallet span{color:#e3c25a;}
.fx-pay.skip{border-style:dashed;color:#cfccc4;}
.fx-pay.busy{opacity:.7;}
.fx-pay[disabled]{opacity:.55;}

/* navigate hand-off */
.t-nav{display:block;margin-top:10px;padding:13px;text-align:center;border:1px solid #3a3833;border-radius:10px;
  color:#e3c25a;text-decoration:none;font-size:14px;font-weight:600;}
.t-nav:active{background:rgba(201,162,39,.1);}

@media(max-width:560px){
  .blxb-shiftbar{margin:0 14px 14px;padding:12px 14px;}
  .blxb-shiftbar button{min-height:46px;}
}

/* ---- the immersive app shell (driver-app.php: no site chrome) ---- */
body.blxb-driverapp{margin:0;}
body.blxb-driverapp #wpadminbar{display:none !important;}
body.blxb-driverapp .blx-mobilebar{display:none !important;} /* no Call/Reserve CTA inside the app */
body.blxb-driverapp{margin-top:0 !important;}
body.blxb-driverapp .blxb-driver{
  min-height:100vh;min-height:100dvh;padding:0 0 60px;
  padding-top:calc(14px + env(safe-area-inset-top));
  padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);
}
body.blxb-driverapp .blxb-driver .wrap{padding:0 16px;}
body.blxb-driverapp .blxb-dv-head{
  position:sticky;top:0;z-index:20;margin:0 -16px 16px;padding:12px 16px;
  padding-top:calc(10px + env(safe-area-inset-top));
  background:inherit;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  background:rgba(10,10,10,.86);border-bottom:1px solid #232220;align-items:center;
}
body.blxb-driverapp .blxb-dv-head h1{font-size:24px;margin:2px 0 0;}
body.blxb-driverapp .blxb-shiftbar{margin-left:0;margin-right:0;}
body.blxb-driverapp .blxb-trip{border-radius:18px;}
/* one-handed: primary actions large */
body.blxb-driverapp .blxb-step{min-height:52px;font-size:13.5px;}
body.blxb-driverapp .t-nav{min-height:52px;display:flex;align-items:center;justify-content:center;}
body.blxb-driverapp .t-call{min-height:44px;}
@media(max-width:560px){
  body.blxb-driverapp .blxb-steps{grid-template-columns:1fr 1fr;}
  body.blxb-driverapp .blxb-step.current{grid-column:1 / -1;}   /* the state you're in reads full-width */
}

/* ================= messages: the crew's own line ================= */
.dv-msgbtn{position:relative;appearance:none;flex:0 0 auto;width:46px;height:46px;border-radius:12px;
  border:1px solid #2a2823;background:#101010;color:#c9a227;cursor:pointer;display:inline-flex;
  align-items:center;justify-content:center;transition:border-color .18s;}
.dv-msgbtn:hover{border-color:#c9a227;}
.dv-msgbtn svg{width:22px;height:22px;}
.dv-msgbtn i{position:absolute;top:-6px;right:-6px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;
  background:#c9a227;color:#0a0a0a;font-size:11px;font-weight:800;font-style:normal;line-height:19px;text-align:center;}

.t-msg{appearance:none;display:block;width:100%;margin-top:12px;background:none;border:1px dashed #2a2823;
  color:#a6a39b;font:inherit;font-size:13px;padding:11px;border-radius:10px;cursor:pointer;transition:all .18s;}
.t-msg:hover{border-color:#c9a227;color:#e3c25a;}

.fx-msg{appearance:none;flex:0 0 auto;width:42px;height:42px;border-radius:12px;border:1px solid #2a2823;
  background:rgba(255,255,255,.02);color:#c9a227;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;}
.fx-msg svg{width:20px;height:20px;}

/* full-screen messages surface — same physics as focus mode */
.blxb-msgs{position:fixed;inset:0;z-index:100000;display:flex;flex-direction:column;background:#0a0a0a;color:#e8e6e1;
  font-family:'Manrope',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  opacity:0;transform:translateY(12px);transition:opacity .22s,transform .22s;}
.blxb-msgs.open{opacity:1;transform:none;}
body.blxb-msgs-open{overflow:hidden;}

.mx-top{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid #1d1c19;
  padding-top:max(14px, env(safe-area-inset-top));}
.mx-exit{appearance:none;width:42px;height:42px;border-radius:12px;border:1px solid #2a2823;background:none;
  color:#cfccc4;font-size:24px;line-height:1;cursor:pointer;}
.mx-title{font-family:'Cormorant Garamond',Georgia,serif;font-size:20px;font-weight:600;color:#f3f1ec;
  flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.mx-list{appearance:none;border:1px solid #2a2823;background:none;color:#c9a227;font:inherit;font-size:12.5px;
  padding:9px 13px;border-radius:999px;cursor:pointer;white-space:nowrap;}

.mx-body{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 16px 20px;}
.mx-empty{color:#8d8a82;text-align:center;padding:44px 20px;}

.mx-threads{display:flex;flex-direction:column;gap:10px;}
.mx-thread{appearance:none;display:flex;align-items:center;gap:13px;width:100%;text-align:left;background:#101010;
  border:1px solid #232220;border-radius:14px;padding:14px 16px;color:inherit;font:inherit;cursor:pointer;transition:border-color .18s;}
.mx-thread:hover{border-color:#c9a227;}
.mx-ticon{flex:0 0 auto;width:38px;height:38px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  font-size:15px;background:rgba(201,162,39,.1);color:#c9a227;border:1px solid rgba(201,162,39,.3);}
.mx-ticon.t-dm{background:rgba(255,255,255,.04);color:#cfccc4;border-color:#2a2823;}
.mx-tmain{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;}
.mx-tmain b{font-size:14.5px;font-weight:600;color:#f0eee8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.mx-tmain i{font-style:normal;font-size:12.5px;color:#8d8a82;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.mx-tside{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:5px;}
.mx-tside i{font-style:normal;font-size:11px;color:#7d7a72;white-space:nowrap;}
.mx-un{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#c9a227;color:#0a0a0a;
  font-size:11.5px;font-weight:800;line-height:20px;text-align:center;}

.mx-newwrap{margin-top:16px;}
.mx-new{appearance:none;display:block;width:100%;border:1px dashed #2a2823;background:none;color:#c9a227;
  font:inherit;font-size:14px;padding:14px;border-radius:12px;cursor:pointer;transition:border-color .18s;}
.mx-new:hover{border-color:#c9a227;}
#mx-roster{margin-top:10px;display:flex;flex-direction:column;gap:8px;}
.mx-person{appearance:none;display:block;width:100%;text-align:left;background:#101010;border:1px solid #232220;
  border-radius:10px;padding:12px 15px;color:#e8e6e1;font:inherit;font-size:14px;cursor:pointer;}
.mx-person:hover{border-color:#c9a227;}
.mx-person i{font-style:normal;font-size:11px;color:#c9a227;letter-spacing:.08em;text-transform:uppercase;margin-left:8px;}

.mx-msgs{display:flex;flex-direction:column;gap:10px;min-height:100%;justify-content:flex-end;}
.mx-bub{max-width:82%;align-self:flex-start;background:#151515;border:1px solid #232220;border-radius:14px 14px 14px 4px;
  padding:10px 14px;display:flex;flex-direction:column;gap:3px;}
.mx-bub.mine{align-self:flex-end;background:rgba(201,162,39,.12);border-color:rgba(201,162,39,.35);border-radius:14px 14px 4px 14px;}
.mx-bub b{font-size:11px;font-weight:700;letter-spacing:.06em;color:#c9a227;}
.mx-bub span{font-size:14px;line-height:1.45;color:#eceae4;white-space:pre-wrap;word-break:break-word;}
.mx-bub time{font-size:10.5px;color:#7d7a72;align-self:flex-end;}
.mx-evt{align-self:center;text-align:center;max-width:92%;padding:2px 0;}
.mx-evt i{font-style:normal;font-size:11.5px;color:#8d8a82;}
.mx-evt time{display:inline-block;margin-left:7px;font-size:10px;color:#5d5b55;}

.mx-foot{display:flex;align-items:flex-end;gap:10px;padding:12px 16px;border-top:1px solid #1d1c19;
  padding-bottom:max(12px, env(safe-area-inset-bottom));}
.mx-foot textarea{flex:1;resize:none;background:#101010;border:1px solid #2a2823;border-radius:12px;color:#f0eee8;
  font:inherit;font-size:15px;padding:12px 14px;outline:none;max-height:120px;}
.mx-foot textarea:focus{border-color:#c9a227;}
#mx-send{appearance:none;flex:0 0 auto;width:46px;height:46px;border-radius:12px;border:0;background:#c9a227;
  color:#0a0a0a;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;}
#mx-send svg{width:21px;height:21px;}
#mx-send[disabled]{opacity:.6;}

/* ================= the whole flight, one thumb-tap away ================= */
.fx-flight.tap{ cursor:pointer; }
.fx-flight.tap:active{ background:rgba(201,162,39,.10); }
.fx-flight .more{ float:right; font-size:11.5px; color:#c9a227; font-weight:600; }

.dv-flsheet{ position:fixed; inset:0; z-index:100010; }
.dv-flsheet .fls-scrim{ position:absolute; inset:0; background:rgba(0,0,0,.55); opacity:0; transition:opacity .24s; }
.dv-flsheet.open .fls-scrim{ opacity:1; }
.dv-flsheet .fls-panel{ position:absolute; left:0; right:0; bottom:0; max-height:86vh; overflow-y:auto;
  -webkit-overflow-scrolling:touch; background:#101010; border:1px solid #232220; border-bottom:0;
  border-radius:20px 20px 0 0; padding:20px 20px max(24px, env(safe-area-inset-bottom));
  transform:translateY(100%); transition:transform .3s cubic-bezier(.22,.8,.25,1);
  box-shadow:0 -30px 80px -30px rgba(0,0,0,.9); }
.dv-flsheet.open .fls-panel{ transform:none; }
.fls-close{ position:absolute; top:14px; right:14px; width:36px; height:36px; border-radius:10px;
  border:1px solid #2a2823; background:none; color:#cfccc4; font-size:14px; cursor:pointer; }

.fls-head{ display:flex; align-items:center; gap:12px; margin-bottom:10px; }
.fls-head .flnum{ font-size:22px; font-weight:700; color:#f3f1ec; text-decoration:none; }
.fls-head u{ text-decoration:none; font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.fls-ind{ display:inline-block; font-size:13px; font-weight:700; padding:7px 14px; border-radius:999px; margin-bottom:16px; }
.fls-ind.ok{ background:rgba(92,184,122,.14); color:#7fd49a; border:1px solid rgba(92,184,122,.4); }
.fls-ind.early{ background:rgba(92,184,122,.14); color:#7fd49a; border:1px solid rgba(92,184,122,.4); }
.fls-ind.late{ background:rgba(224,160,32,.13); color:#e8b64b; border:1px solid rgba(224,160,32,.45); }
.fls-ind.bad{ background:rgba(224,82,82,.13); color:#e88; border:1px solid rgba(224,82,82,.45); }

.fls-track{ display:flex; align-items:center; gap:10px; margin:4px 0 18px; }
.fls-track b{ font-size:11px; font-weight:800; letter-spacing:.08em; color:#a6a39b; flex:none; }
.fls-track .path{ position:relative; flex:1; height:16px; }
.fls-track .path::before{ content:''; position:absolute; left:0; right:0; top:50%; border-top:1.5px dashed #2a2823; }
.fls-track .flown{ position:absolute; left:0; top:50%; border-top:1.5px solid #c9a227; transform:translateY(-.75px); transition:width 1.2s ease; }
.fls-track .plane{ position:absolute; top:50%; width:16px; height:16px; margin-left:-8px; color:#c9a227;
  transform:translateY(-50%) rotate(90deg); transition:left 1.2s ease; }
.fls-track .plane svg{ display:block; width:16px; height:16px; }
.fls-track .plane.fly{ animation:dv-fly 3.2s ease-in-out infinite; }
@keyframes dv-fly{ 0%,100%{ transform:translateY(-50%) rotate(90deg); } 50%{ transform:translateY(calc(-50% - 2.5px)) rotate(90deg); } }
.fls-track.landed .plane{ color:#5cb87a; animation:none; }
.fls-track.landed .flown{ border-top-color:#5cb87a; }
.fls-track.delayed .plane{ color:#e0a020; }
.fls-track.delayed .flown{ border-top-color:#e0a020; }

.fls-times{ background:#0a0a0a; border:1px solid #1d1c19; border-radius:12px; padding:6px 15px; margin-bottom:16px; }
.fls-timerow{ display:flex; align-items:baseline; justify-content:space-between; gap:14px; padding:10px 0; border-bottom:1px dashed #1d1c19; }
.fls-timerow:last-child{ border-bottom:0; }
.fls-timerow .k{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#7d7a72; }
.fls-timerow .v{ display:flex; align-items:baseline; gap:9px; }
.fls-timerow .v s{ color:#5d5b55; font-size:13px; }
.fls-timerow .v b{ color:#f0eee8; font-size:16px; font-weight:700; }
.fls-timerow .v i{ font-style:normal; font-size:11.5px; font-weight:700; }
.fls-timerow .v i.late{ color:#e8b64b; }
.fls-timerow .v i.early{ color:#7fd49a; }

.fls-facts{ display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:12px 16px; margin-bottom:14px; }
.fls-facts .fact{ display:flex; flex-direction:column; gap:2px; }
.fls-facts .fact span{ font-size:9.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#7d7a72; }
.fls-facts .fact b{ font-size:13.5px; color:#e8e6e1; font-weight:600; }
.fls-note{ font-size:11px; color:#5d5b55; text-align:center; }

/* the trip a conversation belongs to */
.mx-ctx{ display:flex; flex-direction:column; gap:2px; padding:11px 16px 13px;
  background:#0f0f0f; border-bottom:1px solid #1d1c19; }
.mx-ctx b{ font-size:14px; color:#f0eee8; }
.mx-ctx .rt{ font-size:12.5px; color:#c9a227; line-height:1.4; }
.mx-ctx .wh{ font-size:11px; color:#8d8a82; }

/* ---- what this passenger prefers -------------------------------------
   Recorded once at the desk, read here. The two things that are not
   really preferences — an allergy, a child seat — carry a mark. */
.t-prefs{ margin-top:10px; }
.t-prefs .lbl{ display:block; font-size:9.5px; letter-spacing:.2em; text-transform:uppercase;
  opacity:.45; margin-bottom:7px; }
.pchip{ display:inline-flex; align-items:baseline; gap:7px; font-size:12.5px;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1);
  border-radius:9px; padding:6px 11px; margin:0 6px 6px 0; }
.pchip b{ font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; opacity:.55; font-weight:700; }
.pchip.flag{ background:rgba(224,160,32,.14); border-color:rgba(224,160,32,.4); }
.pchip.flag b{ opacity:.85; color:#e0a020; }

/* ---- the open board ----
   Unassigned runs, each with the arithmetic done: how far from you, and
   whether your own schedule leaves room. The verdict line borrows dispatch's
   colours — green clear, amber tight, red a conflict — so both sides of the
   operation speak the same language. */
/* The Open bookings bar wears .blxb-shiftbar, so its surface, border, radius
   and type are the shift pill's by inheritance — in both themes — and can
   never drift from it. Only what is different is said here: it is a button,
   an icon sits where the dot does, and a count and chevron hold the right. */
/* Snug to the shift bar above (a pair), clear air before the filter row
   below (a boundary). */
#blxb-openwrap{ max-width:760px; margin:-8px auto 26px; }
#blxb-openbar{ width:100%; margin:0; cursor:pointer; font:inherit; text-align:left; }
#blxb-openbar .obic{ flex:none; display:flex; color:#c9a227; }
#blxb-openbar .obic svg{ width:19px; height:19px; }
#blxb-openbar .obn{ flex:none; font-style:normal; font-size:11.5px; font-weight:800; color:#c9a227;
  background:rgba(201,162,39,.14); border:1px solid rgba(201,162,39,.4);
  border-radius:999px; padding:3px 10px; }
#blxb-openbar .chev{ flex:none; font-size:18px; color:#8d8a82; transition:transform .18s; }
#blxb-openbar.open{ border-radius:16px 16px 0 0; }
#blxb-openpanel{ border:1px solid #232220; border-top:0; border-radius:0 0 16px 16px;
  background:#101010; padding:12px 14px 14px; }
#blxb-openpanel .dv-opencard:last-child{ margin-bottom:0; }
.dv-opencard{ background:#fff; border:1px solid var(--line,#d9d4c7); border-radius:13px;
  padding:14px 16px; margin-bottom:10px; }
.dv-opencard .oh{ display:flex; align-items:baseline; gap:8px; }
.dv-opencard .oh b{ font-size:14px; }
.dv-opencard .oh i{ font-style:normal; font-size:13px; color:var(--muted,#87816f); }
.dv-opencard .ofl{ margin-left:auto; color:#8a6a12; }
.dv-opencard .ort{ margin-top:4px; font-size:14.5px; font-weight:600; }
.dv-opencard .ort .arw{ color:var(--muted,#87816f); font-weight:400; }
.dv-opencard .ometa{ margin-top:3px; font-size:12.5px; color:var(--muted,#87816f); }
.dv-opencard .ochip{ display:inline-block; margin-left:6px; font-size:11px; font-weight:700;
  color:#8a6a12; background:rgba(181,138,26,.1); border-radius:999px; padding:2px 8px; }
.dv-opencard .ochip.dim{ color:var(--muted,#87816f); background:rgba(0,0,0,.05); font-weight:500; }
.dv-opencard .ofit{ margin-top:9px; font-size:12.5px; line-height:1.5; border-left:3px solid #1e8a4c;
  padding:6px 10px; background:rgba(30,138,76,.06); border-radius:0 8px 8px 0; color:#1e6a3e; }
.dv-opencard .ofit.tight{ border-left-color:#b07708; background:rgba(176,119,8,.07); color:#8a5d06; }
.dv-opencard .ofit.no{ border-left-color:#b32d2e; background:rgba(179,45,46,.06); color:#9c2627; }
.dv-opencard .oact{ margin-top:10px; }
.dv-opencard .o-ask{ border:1px solid rgba(181,138,26,.5); background:#fff; color:#8a6a12;
  font:inherit; font-size:13px; font-weight:600; border-radius:9px; padding:9px 16px; cursor:pointer; }
.dv-opencard .o-ask:hover{ background:rgba(181,138,26,.1); }
.dv-opencard .o-ask:disabled{ opacity:.7; cursor:default; }

/* ---- stops as legs ---- */
.fx-stops.legs .lbl .hint{ display:block; font-style:normal; font-size:10.5px; letter-spacing:0;
  text-transform:none; color:var(--muted,#87816f); margin-top:2px; font-weight:500; }
.fx-leg{ display:flex; align-items:center; gap:12px; padding:11px 0;
  border-bottom:1px dashed var(--line,#d9d4c7); }
.fx-leg:last-child{ border-bottom:0; }
.fx-leg .n{ flex:none; width:26px; height:26px; border-radius:50%; display:flex; align-items:center;
  justify-content:center; font-style:normal; font-size:12px; font-weight:700;
  background:#f1efe8; color:var(--muted,#87816f); border:1px solid var(--line,#d9d4c7); }
.fx-leg .tx{ flex:1; min-width:0; }
.fx-leg .tx b{ display:block; font-size:14px; }
.fx-leg .tx span{ display:block; font-size:11.5px; color:var(--muted,#87816f); margin-top:1px;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fx-leg.done{ opacity:.6; }
.fx-leg.done .n{ background:rgba(30,138,76,.12); color:#1e8a4c; border-color:rgba(30,138,76,.35); }
.fx-leg.here .n, .fx-leg.live .n{ background:rgba(181,138,26,.14); color:#8a6a12;
  border-color:rgba(181,138,26,.45); }
.fx-leg.wait{ opacity:.55; }
.fx-leg .acts{ flex:none; display:flex; gap:8px; align-items:center; }
.fx-navsm{ font-size:12.5px; font-weight:600; color:#8a6a12; text-decoration:none;
  border:1px solid rgba(181,138,26,.4); border-radius:9px; padding:8px 12px; }
.fx-legbtn{ border:1px solid rgba(181,138,26,.5); background:rgba(181,138,26,.12); color:#8a6a12;
  font:inherit; font-size:12.5px; font-weight:700; border-radius:9px; padding:8px 13px; cursor:pointer; }
.fx-legbtn.go{ background:#c9a227; border-color:#c9a227; color:#17130a; }
.fx-legbtn:disabled{ opacity:.7; }
@media(max-width:480px){
  .fx-leg{ flex-wrap:wrap; }
  .fx-leg .acts{ flex:1 1 100%; }
  .fx-navsm,.fx-legbtn{ flex:1; text-align:center; min-height:42px; display:inline-flex;
    align-items:center; justify-content:center; }
}

/* the manual check on the flight sheet */
.fls-check{ display:block; width:100%; margin-top:12px; border:1px solid rgba(201,162,39,.5);
  background:rgba(201,162,39,.1); color:#8a6a12; font:inherit; font-size:13px; font-weight:700;
  border-radius:10px; padding:12px; cursor:pointer; }
.fls-check:disabled{ opacity:.7; }
.gtag{ font-style:normal; font-size:8.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase;
  color:#8a6a12; background:rgba(181,138,26,.14); border-radius:999px; padding:1px 7px; margin-left:6px; vertical-align:1px; }


/* ---------------- trip weather ---------------- */
.t-tools { display: grid; grid-template-columns: auto 1fr; gap: 8px; }
.t-tools .t-msg { margin: 0; }
/* The app is written dark, so the weather button is dark by default and the
   generated light pass dresses it for daylight — it used to be hardcoded
   light, which is why it glared out of the night app. */
.t-wx {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  border: 1px solid #2a2823; background: #0e0e0d; color: #e3c25a;
  border-radius: 12px; padding: 10px 14px; font-size: 13.5px; font-weight: 600; cursor: pointer;
}
.t-wx:hover, .t-wx:active { border-color: #c9a227; }
.t-wx svg { width: 17px; height: 17px; }
/* The weather sheet wears the flight sheet's clothes: a dark panel rising
   from the tray, gold labels, a scrim behind. One popup language per app. */
.dv-wx{ position:fixed; inset:0; z-index:100010; }
.dv-wx .wxs-scrim{ position:absolute; inset:0; background:rgba(0,0,0,.55); opacity:0; transition:opacity .24s; }
.dv-wx.open .wxs-scrim{ opacity:1; }
.dv-wx .wxs-panel{ position:absolute; left:0; right:0; bottom:0; max-height:86vh; overflow-y:auto;
  -webkit-overflow-scrolling:touch; overscroll-behavior:contain; background:#101010; border:1px solid #232220; border-bottom:0;
  border-radius:20px 20px 0 0; padding:20px 20px max(24px, env(safe-area-inset-bottom));
  transform:translateY(100%); transition:transform .3s cubic-bezier(.22,.8,.25,1);
  box-shadow:0 -30px 80px -30px rgba(0,0,0,.9); }
.dv-wx.open .wxs-panel{ transform:none; }
.dv-wx .wx-x{ position:absolute; top:14px; right:14px; width:36px; height:36px; border-radius:10px;
  border:1px solid #2a2823; background:none; color:#cfccc4; font-size:14px; cursor:pointer; }
.dv-wx .wxs-head{ font-size:10px; letter-spacing:.26em; text-transform:uppercase; color:#c9a227;
  font-weight:700; margin:2px 0 14px; }
.dv-wx .wx-wait{ color:#8d8a82; font-size:13.5px; padding:22px 0; text-align:center; }
.dv-wx .wx-verdict{ border-radius:12px; padding:12px 14px; font-size:14px; font-weight:600; margin-bottom:6px; border:1px solid; }
.dv-wx .wx-verdict.clear{ background:rgba(92,184,122,.12); color:#7fd49a; border-color:rgba(92,184,122,.35); }
.dv-wx .wx-verdict.caution{ background:rgba(224,160,32,.12); color:#e8b64b; border-color:rgba(224,160,32,.4); }
.dv-wx .wx-verdict.severe{ background:rgba(224,82,82,.12); color:#e88; border-color:rgba(224,82,82,.4); }
.dv-wx .wx-pt{ display:grid; grid-template-columns:1fr auto; gap:1px 12px; padding:11px 2px; border-bottom:1px dashed #1d1c19; }
.dv-wx .wx-pt b{ font-family:'Cormorant Garamond',Georgia,serif; font-size:18px; font-weight:600; color:#f3f1ec; }
.dv-wx .wx-pt i{ font-style:normal; color:#8d8a82; font-size:12px; }
.dv-wx .wx-pt .t{ grid-row:1/3; grid-column:2; align-self:center; font-size:21px; font-weight:700; color:#f3f1ec; font-variant-numeric:tabular-nums; }
.dv-wx .wx-pt .m{ grid-column:1/3; color:#a6a39b; font-size:12px; }
.dv-wx .wx-sec{ font-size:9.5px; letter-spacing:.26em; text-transform:uppercase; color:#c9a227; font-weight:700; margin:16px 0 8px; }
.dv-wx .wx-al,.dv-wx .wx-rd{ padding:10px 12px; border-radius:12px; background:#0a0a0a; border:1px solid #1d1c19; margin-bottom:7px; font-size:12.5px; color:#a6a39b; }
.dv-wx .wx-al b,.dv-wx .wx-rd b{ display:block; font-size:13.5px; color:#f0eee8; }
.dv-wx .wx-al.hot{ border-color:rgba(224,82,82,.4); }
.dv-wx .wx-al.hot b{ color:#e88; }

/* ================= the app's own lights =================
 * One axis, chosen by the person holding the phone: body.blxb-dvl runs the
 * app light, its absence runs it dark. The old admin-only light rules above
 * were re-scoped onto this class, so the chauffeur's phone and the desk's
 * preview draw from one palette. What follows covers the surfaces the admin
 * block never had to say. The night sheets (weather, flight, messages) stay
 * dark in both skins — one popup language per app. */
body.blxb-dvl .blxb-driver-admin{border-color:#e5e7eb;}
body.blxb-dvl.blxb-driverapp .blxb-dv-head{background:rgba(246,247,249,.9);border-bottom:1px solid #e5e7eb;}
body.blxb-dvl .blxb-driver .blxb-step{background:#fff;border-color:#d1d5db;color:#6b7280;}
body.blxb-dvl .blxb-driver .blxb-step:hover{border-color:#b58a1a;color:#8a6a12;}
body.blxb-dvl .blxb-driver .blxb-step.done{background:rgba(30,138,76,.1);border-color:rgba(30,138,76,.45);color:#1e6a3e;}
body.blxb-dvl .blxb-driver .blxb-step.current{background:#b58a1a;border-color:#b58a1a;color:#fff;}
body.blxb-dvl .blxb-driver .t-nav{background:#fff;border-color:#d1d5db;color:#8a6a12;}
body.blxb-dvl .blxb-driver .dv-msgbtn{background:#fff;border-color:#d1d5db;color:#8a6a12;}
body.blxb-dvl .blxb-driver .blxb-shiftbar{background:#fff;border-color:#e0e3e8;}
body.blxb-dvl .blxb-driver .blxb-shiftbar .tx b{color:#111827;}
body.blxb-dvl .blxb-driver .blxb-shiftbar .tx i{color:#6b7280;}
body.blxb-dvl .blxb-driver .blxb-shiftbar #sh-off{border-color:#cbd2da;color:#6b7280;}
body.blxb-dvl .blxb-driver .blxb-shiftbar button.end{border-color:#cbd2da;color:#6b7280;}
body.blxb-dvl .blxb-driver #blxb-openpanel{background:#eef0f3;border-color:#e0e3e8;}
body.blxb-dvl .blxb-driver .pchip{background:rgba(17,24,39,.05);border-color:#e5e7eb;}
body.blxb-dvl .blxb-dv-toast{background:#fff;border-color:#b58a1a;color:#8a6a12;}

/* the switch itself — beside Sign out, sun in the dark, moon in the light */
.blxb-dv-hact{display:flex;align-items:center;gap:10px;flex:none;}
.blxb-dv-lights{appearance:none;width:38px;height:38px;border-radius:11px;border:1px solid #3a3833;
  background:transparent;color:#c9a227;cursor:pointer;display:inline-flex;align-items:center;
  justify-content:center;transition:border-color .18s;}
.blxb-dv-lights:hover{border-color:#c9a227;}
.blxb-dv-lights svg{width:17px;height:17px;display:block;fill:none;stroke:currentColor;
  stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.blxb-dv-lights .i-moon{display:none;}
body.blxb-dvl .blxb-dv-lights .i-moon{display:block;}
body.blxb-dvl .blxb-dv-lights .i-sun{display:none;}
body.blxb-dvl .blxb-dv-lights{border-color:#cbd2da;color:#8a6a12;}

/* ================= the route, in the app =================
   A sheet in the app's own language: the map fills it, the destination reads
   at a glance, and the two handoffs sit at the bottom where a thumb lands. */
.dv-nav{ position:fixed; inset:0; z-index:100020; }
.dv-nav .nvs-scrim{ position:absolute; inset:0; background:rgba(0,0,0,.55); opacity:0; transition:opacity .24s; }
.dv-nav.open .nvs-scrim{ opacity:1; }
.dv-nav .nvs-panel{ position:absolute; left:0; right:0; bottom:0; max-height:92vh; overflow-y:auto;
  background:#101010; border:1px solid #232220; border-bottom:0; border-radius:20px 20px 0 0;
  padding:18px 18px max(20px, env(safe-area-inset-bottom));
  transform:translateY(100%); transition:transform .3s cubic-bezier(.22,.8,.25,1);
  box-shadow:0 -30px 80px -30px rgba(0,0,0,.9); }
.dv-nav.open .nvs-panel{ transform:none; }
.dv-nav .nvs-x{ position:absolute; top:14px; right:14px; width:36px; height:36px; border-radius:10px;
  border:1px solid #2a2823; background:none; color:#cfccc4; font-size:13px; cursor:pointer; }
.dv-nav .nvs-head{ font-size:10px; letter-spacing:.26em; text-transform:uppercase; color:#c9a227;
  font-weight:700; margin:2px 0 6px; }
.dv-nav .nvs-to{ font-family:'Cormorant Garamond',Georgia,serif; font-size:23px; font-weight:600;
  color:#f3f1ec; line-height:1.25; margin:0 44px 14px 0; }
.dv-nav .nvs-map{ border-radius:14px; overflow:hidden; border:1px solid #232220; line-height:0;
  background:#0a0a0a; height:min(46vh,340px); }
.dv-nav .nvs-map iframe{ width:100%; height:100%; border:0; display:block; }
.dv-nav .nvs-nomap{ border:1px dashed #2a2823; border-radius:14px; padding:26px; text-align:center;
  color:#8d8a82; font-size:13.5px; }
.dv-nav .nvs-note{ margin:12px 2px 14px; font-size:12px; line-height:1.55; color:#8d8a82; }
.dv-nav .nvs-acts{ display:grid; grid-auto-flow:column; grid-auto-columns:1fr; gap:10px; }
.dv-nav .nvs-go{ display:flex; align-items:center; justify-content:center; min-height:52px;
  border-radius:12px; text-decoration:none; font-size:13.5px; font-weight:700; letter-spacing:.02em;
  background:#c9a227; color:#14120c; }
.dv-nav .nvs-go:active{ transform:scale(.99); }

/* The address is a destination, so it behaves like one. */
.fx-addr .val, .blxb-trip .t-leg .val{ cursor:pointer; }
.fx-addr .val:active, .blxb-trip .t-leg .val:active{ color:#e3c25a; }
.fx-nav{ border:0; font:inherit; cursor:pointer; width:100%; }
.fx-navsm{ cursor:pointer; font:inherit; }

/* ================= the trip card, tightened =================
   The completed card read as a stack of loose paragraphs. One rhythm now:
   a header line, the route in its rail, the facts as quiet chips, and the
   actions in a row with the one that matters full width beneath. */
.blxb-trip{ padding:20px; border-radius:18px; }
.blxb-trip .t-top{ margin-bottom:14px; }
.blxb-trip .t-when{ font-size:22px; }
.blxb-trip .t-route{ margin:14px 0 12px; padding:14px 16px; }
.blxb-trip .t-meta{ gap:6px 14px; margin-top:10px; }
.blxb-trip .t-meta .m{ font-size:12.5px; }
.blxb-trip .t-tools{ margin-top:14px; }
.blxb-trip .t-nav, .blxb-trip .fx-pay, .blxb-trip .t-note{ margin-top:10px; }
/* Collect payment is important, not enormous. */
.blxb-trip .fx-pay{ min-height:52px; font-size:14px; letter-spacing:.04em; }
.blxb-trip .t-note{ min-height:46px; font-size:13px; }

/* the road clock, under the countdown in a stage screen */
.fx-liveeta{ margin:-8px 0 16px; padding:3px 0 3px 14px; border-left:2px solid #2a2823;
  font-size:13px; color:#8d8a82; }
.fx-liveeta b{ color:#f3f1ec; }

/* === BEGIN generated light pass (tools/generate-driver-light.py) === */
/* 218 rules — regenerate, do not hand-edit. */
body.blxb-dvl .blxb-dv-head .eyebrow{ color:#b58a1a; }
body.blxb-dvl .blxb-dv-head h1{ color:#111827; }
body.blxb-dvl .blxb-dv-boot{ color:#6b7280; }
body.blxb-dvl .blxb-dv-empty{ color:#6b7280; border:1px dashed #d1d5db; }
body.blxb-dvl .blxb-trip{ background:#ffffff; border:1px solid #e5e7eb; }
body.blxb-dvl .blxb-trip .t-when{ color:#111827; }
body.blxb-dvl .blxb-trip .t-tour{ color:#3f4451; }
body.blxb-dvl .blxb-trip .t-route{ background:#f6f7f9; border:1px solid #e5e7eb; }
body.blxb-dvl .blxb-trip .t-dot.up{ background:#b58a1a; }
body.blxb-dvl .blxb-trip .t-dot.down{ background:#1e8a4c; }
body.blxb-dvl .blxb-trip .t-leg .lbl{ color:#6b7280; }
body.blxb-dvl .blxb-trip .t-leg .val{ color:#3f4451; }
body.blxb-dvl .blxb-trip .t-meta .m{ color:#6b7280; }
body.blxb-dvl .blxb-trip .t-meta .m strong{ color:#3f4451; }
body.blxb-dvl .blxb-trip .t-notes{ color:#3f4451; }
body.blxb-dvl .blxb-trip .t-call{ color:#b58a1a; }
body.blxb-dvl .blxb-step{ border:1px solid #d1d5db; background:#f6f7f9; color:#6b7280; }
body.blxb-dvl .blxb-step:hover{ border-color:#cbd2da; color:#3f4451; }
body.blxb-dvl .blxb-step.done{ color:#1e6a3e; }
body.blxb-dvl .blxb-step.current{ background:#b58a1a; border-color:#b58a1a; color:#f6f7f9; }
body.blxb-dvl .blxb-dv-toast{ background:#ffffff; border:1px solid #b58a1a; color:#8a6a12; }
body.blxb-dvl .blxb-dv-switch{ background:#ffffff; border:1px solid #d1d5db; }
body.blxb-dvl .blxb-dv-switch .lbl{ color:#b58a1a; }
body.blxb-dvl .blxb-dv-switch select{ background:#f6f7f9; border:1px solid #d1d5db; color:#111827; }
body.blxb-dvl .blxb-dv-switch select:focus{ border-color:#b58a1a; }
body.blxb-dvl .blxb-dv-switch .note{ color:#6b7280; }
body.blxb-dvl .t-change{ color:#8a6a12; }
body.blxb-dvl .t-chg{ background:#b58a1a; color:#f6f7f9; }
body.blxb-dvl .t-chg.decline{ color:#b32d2e; }
body.blxb-dvl .blxb-paymodal{ background:#ffffff; border:1px solid #d1d5db; }
body.blxb-dvl .blxb-paymodal h3{ color:#111827; }
body.blxb-dvl .blxb-paymodal p{ color:#6b7280; }
body.blxb-dvl .blxb-paybtns button{ background:#f6f7f9; border:1px solid #cbd2da; color:#111827; }
body.blxb-dvl .blxb-paybtns button:hover{ border-color:#b58a1a; color:#8a6a12; }
body.blxb-dvl .blxb-payskip{ color:#6b7280; }
body.blxb-dvl .blxb-shiftbar{ background:#ffffff; border:1px solid #e5e7eb; }
body.blxb-dvl .blxb-shiftbar .dot{ background:#cbd2da; }
body.blxb-dvl .blxb-shiftbar .dot.on{ background:#1e8a4c; }
body.blxb-dvl .blxb-shiftbar .dot.idle{ background:#b07708; }
body.blxb-dvl .blxb-shiftbar #sh-off{ border:1px solid #cbd2da; color:#6b7280; }
body.blxb-dvl .blxb-shiftbar .tx b{ color:#111827; }
body.blxb-dvl .blxb-shiftbar .tx i{ color:#6b7280; }
body.blxb-dvl .blxb-shiftbar button{ background:#b58a1a; }
body.blxb-dvl .blxb-shiftbar button.end{ border:1px solid #cbd2da; color:#3f4451; }
body.blxb-dvl .blxb-dv-tools input[type=search]{ background:#ffffff; border:1px solid #d1d5db; color:#111827; }
body.blxb-dvl .blxb-dv-tools input[type=search]:focus{ border-color:#b58a1a; }
body.blxb-dvl .blxb-dv-tools #dv-view{ background:#ffffff; border:1px solid #cbd2da; color:#8a6a12; }
body.blxb-dvl .blxb-dv-tools #dv-view.on{ background:#b58a1a; border-color:#b58a1a; }
body.blxb-dvl .dv-secnote{ color:#6b7280; }
body.blxb-dvl .t-note{ border:1px dashed #cbd2da; color:#8a6a12; }
body.blxb-dvl .t-noteed textarea{ background:#f6f7f9; border:1px solid #d1d5db; color:#111827; }
body.blxb-dvl .t-noteed textarea:focus{ border-color:#b58a1a; }
body.blxb-dvl .t-notesend{ background:#b58a1a; }
body.blxb-dvl .t-notecancel{ border:1px solid #cbd2da; color:#6b7280; }
body.blxb-dvl .t-go{ background:#b58a1a; }
body.blxb-dvl .t-go.cont{ background:#f6f7f9; border:1px solid #b58a1a; color:#8a6a12; }
body.blxb-dvl .t-go.pay{ color:#111827; }
body.blxb-dvl .t-donebar{ color:#1e6a3e; }
body.blxb-dvl .blxb-focus{ background:#f6f7f9; color:#3f4451; }
body.blxb-dvl .fx-exit{ color:#6b7280; }
body.blxb-dvl .fx-exit:active{ color:#8a6a12; }
body.blxb-dvl .fx-dot::before{ background:#e5e7eb; }
body.blxb-dvl .fx-dot i{ border:1px solid #d1d5db; background:#f6f7f9; color:#8b909a; }
body.blxb-dvl .fx-dot b{ color:#8b909a; }
body.blxb-dvl .fx-dot.done i{ color:#1e8a4c; }
body.blxb-dvl .fx-dot.done b{ color:#1e8a4c; }
body.blxb-dvl .fx-dot.cur i{ border-color:#b58a1a; color:#8a6a12; }
body.blxb-dvl .fx-dot.cur b{ color:#8a6a12; }
body.blxb-dvl .fx-sub{ color:#6b7280; }
body.blxb-dvl .fx-count{ border-left:2px solid #b58a1a; color:#8a6a12; }
body.blxb-dvl .fx-count.now{ color:#1e6a3e; }
body.blxb-dvl .fx-count.late{ color:#b32d2e; }
body.blxb-dvl .fx-addr{ background:#ffffff; border:1px solid #e5e7eb; }
body.blxb-dvl .fx-addr .lbl, body.blxb-dvl .fx-guest .lbl, body.blxb-dvl .fx-notes .lbl, body.blxb-dvl .fx-stops .lbl, body.blxb-dvl .fx-paysum .lbl{ color:#b58a1a; }
body.blxb-dvl .fx-addr .val{ color:#111827; }
body.blxb-dvl .fx-nav{ background:#b58a1a; }
body.blxb-dvl .fx-guest{ background:#ffffff; border:1px solid #e5e7eb; }
body.blxb-dvl .fx-guest .fx-gname b{ color:#111827; }
body.blxb-dvl .fx-guest .fx-gname i{ color:#6b7280; }
body.blxb-dvl .fx-callbtn, body.blxb-dvl .fx-smsbtn{ border:1px solid #d9d4c8; color:#8a6a12; }
body.blxb-dvl .fx-callbtn:active, body.blxb-dvl .fx-smsbtn:active{ border-color:#b58a1a; }
body.blxb-dvl .fx-guest.big .fx-callbtn{ background:#b58a1a; }
body.blxb-dvl .fx-chips span{ color:#6b7280; border:1px solid #e5e7eb; }
body.blxb-dvl .fx-notes{ color:#3f4451; }
body.blxb-dvl .fx-wait{ color:#6b7280; }
body.blxb-dvl .fx-flight{ background:#ffffff; border:1px solid #e5e7eb; }
body.blxb-dvl .fx-flight .val{ color:#111827; }
body.blxb-dvl .fx-flight .sub{ color:#6b7280; }
body.blxb-dvl .t-flight{ color:#6b7280; }
body.blxb-dvl .t-flight.delayed{ color:#8a6a12; }
body.blxb-dvl .t-flight.landed{ color:#1e6a3e; }
body.blxb-dvl .t-flight.cancelled, body.blxb-dvl .t-flight.diverted{ color:#b32d2e; }
body.blxb-dvl .fx-stops{ background:#ffffff; border:1px solid #e5e7eb; }
body.blxb-dvl .fx-stop{ color:#3f4451; }
body.blxb-dvl .fx-stop i{ border:1px solid #b58a1a; color:#8a6a12; }
body.blxb-dvl .fx-foot{ background:linear-gradient(to top,#f6f7f9 70%,rgba(10,10,10,0)); }
body.blxb-dvl .fx-action{ background:#b58a1a; }
body.blxb-dvl .fx-back{ color:#6b7280; }
body.blxb-dvl .fx-back:active{ color:#3f4451; }
body.blxb-dvl .fx-done{ color:#1e6a3e; }
body.blxb-dvl .fx-paidnote{ color:#111827; }
body.blxb-dvl .fx-paysum{ background:#ffffff; border:1px solid #e5e7eb; }
body.blxb-dvl .fx-paysum b{ color:#111827; }
body.blxb-dvl .fx-paysum i{ color:#6b7280; }
body.blxb-dvl .fx-pay{ border:1px solid #d9d4c8; background:#ffffff; color:#111827; }
body.blxb-dvl .fx-pay span{ color:#6b7280; }
body.blxb-dvl .fx-pay:active{ border-color:#b58a1a; }
body.blxb-dvl .fx-pay.wallet{ border-color:#b58a1a; }
body.blxb-dvl .fx-pay.wallet span{ color:#8a6a12; }
body.blxb-dvl .fx-pay.skip{ color:#3f4451; }
body.blxb-dvl .t-nav{ border:1px solid #cbd2da; color:#8a6a12; }
body.blxb-dvl.blxb-driverapp .blxb-dv-head{ border-bottom:1px solid #e5e7eb; }
body.blxb-dvl .dv-msgbtn{ border:1px solid #d1d5db; background:#ffffff; color:#b58a1a; }
body.blxb-dvl .dv-msgbtn:hover{ border-color:#b58a1a; }
body.blxb-dvl .dv-msgbtn i{ background:#b58a1a; color:#f6f7f9; }
body.blxb-dvl .t-msg{ border:1px dashed #d1d5db; color:#6b7280; }
body.blxb-dvl .t-msg:hover{ border-color:#b58a1a; color:#8a6a12; }
body.blxb-dvl .fx-msg{ border:1px solid #d1d5db; background:rgba(17,24,39,.02); color:#b58a1a; }
body.blxb-dvl .mx-top{ border-bottom:1px solid #e5e7eb; }
body.blxb-dvl .mx-exit{ border:1px solid #d1d5db; color:#3f4451; }
body.blxb-dvl .mx-title{ color:#111827; }
body.blxb-dvl .mx-list{ border:1px solid #d1d5db; color:#b58a1a; }
body.blxb-dvl .mx-empty{ color:#6b7280; }
body.blxb-dvl .mx-thread{ background:#ffffff; border:1px solid #e5e7eb; }
body.blxb-dvl .mx-thread:hover{ border-color:#b58a1a; }
body.blxb-dvl .mx-ticon{ color:#b58a1a; }
body.blxb-dvl .mx-ticon.t-dm{ background:rgba(17,24,39,.04); color:#3f4451; border-color:#d1d5db; }
body.blxb-dvl .mx-tmain b{ color:#111827; }
body.blxb-dvl .mx-tmain i{ color:#6b7280; }
body.blxb-dvl .mx-tside i{ color:#6b7280; }
body.blxb-dvl .mx-un{ background:#b58a1a; color:#f6f7f9; }
body.blxb-dvl .mx-new{ border:1px dashed #d1d5db; color:#b58a1a; }
body.blxb-dvl .mx-new:hover{ border-color:#b58a1a; }
body.blxb-dvl .mx-person{ background:#ffffff; border:1px solid #e5e7eb; color:#3f4451; }
body.blxb-dvl .mx-person:hover{ border-color:#b58a1a; }
body.blxb-dvl .mx-person i{ color:#b58a1a; }
body.blxb-dvl .mx-bub{ border:1px solid #e5e7eb; }
body.blxb-dvl .mx-bub b{ color:#b58a1a; }
body.blxb-dvl .mx-bub time{ color:#6b7280; }
body.blxb-dvl .mx-evt i{ color:#6b7280; }
body.blxb-dvl .mx-evt time{ color:#8b909a; }
body.blxb-dvl .mx-foot{ border-top:1px solid #e5e7eb; }
body.blxb-dvl .mx-foot textarea{ background:#ffffff; border:1px solid #d1d5db; color:#111827; }
body.blxb-dvl .mx-foot textarea:focus{ border-color:#b58a1a; }
body.blxb-dvl .fx-flight .more{ color:#b58a1a; }
body.blxb-dvl .dv-flsheet .fls-scrim{ background:rgba(17,24,39,0.42); }
body.blxb-dvl .dv-flsheet .fls-panel{ background:#ffffff; border:1px solid #e5e7eb; }
body.blxb-dvl .fls-close{ border:1px solid #d1d5db; color:#3f4451; }
body.blxb-dvl .fls-head .flnum{ color:#111827; }
body.blxb-dvl .fls-ind.ok{ color:#1e6a3e; }
body.blxb-dvl .fls-ind.early{ color:#1e6a3e; }
body.blxb-dvl .fls-ind.late{ color:#8a5d06; }
body.blxb-dvl .fls-ind.bad{ color:#b32d2e; }
body.blxb-dvl .fls-track b{ color:#6b7280; }
body.blxb-dvl .fls-track .path::before{ border-top:1.5px dashed #d1d5db; }
body.blxb-dvl .fls-track .flown{ border-top:1.5px solid #b58a1a; }
body.blxb-dvl .fls-track .plane{ color:#b58a1a; }
body.blxb-dvl .fls-track.landed .plane{ color:#1e8a4c; }
body.blxb-dvl .fls-track.landed .flown{ border-top-color:#1e8a4c; }
body.blxb-dvl .fls-track.delayed .plane{ color:#b07708; }
body.blxb-dvl .fls-track.delayed .flown{ border-top-color:#b07708; }
body.blxb-dvl .fls-times{ background:#f6f7f9; border:1px solid #e5e7eb; }
body.blxb-dvl .fls-timerow{ border-bottom:1px dashed #e5e7eb; }
body.blxb-dvl .fls-timerow .k{ color:#6b7280; }
body.blxb-dvl .fls-timerow .v s{ color:#8b909a; }
body.blxb-dvl .fls-timerow .v b{ color:#111827; }
body.blxb-dvl .fls-timerow .v i.late{ color:#8a5d06; }
body.blxb-dvl .fls-timerow .v i.early{ color:#1e6a3e; }
body.blxb-dvl .fls-facts .fact span{ color:#6b7280; }
body.blxb-dvl .fls-facts .fact b{ color:#3f4451; }
body.blxb-dvl .fls-note{ color:#8b909a; }
body.blxb-dvl .mx-ctx{ border-bottom:1px solid #e5e7eb; }
body.blxb-dvl .mx-ctx b{ color:#111827; }
body.blxb-dvl .mx-ctx .rt{ color:#b58a1a; }
body.blxb-dvl .mx-ctx .wh{ color:#6b7280; }
body.blxb-dvl .pchip{ background:rgba(17,24,39,.06); border:1px solid rgba(17,24,39,.1); }
body.blxb-dvl .pchip.flag b{ color:#b07708; }
body.blxb-dvl #blxb-openbar .obic{ color:#b58a1a; }
body.blxb-dvl #blxb-openbar .obn{ color:#b58a1a; }
body.blxb-dvl #blxb-openbar .chev{ color:#6b7280; }
body.blxb-dvl #blxb-openpanel{ border:1px solid #e5e7eb; background:#ffffff; }
body.blxb-dvl .dv-opencard{ background:#111827; }
body.blxb-dvl .dv-opencard .ochip.dim{ background:rgba(17,24,39,0.05); }
body.blxb-dvl .dv-opencard .o-ask{ background:#111827; }
body.blxb-dvl .fx-legbtn.go{ background:#b58a1a; border-color:#b58a1a; }
body.blxb-dvl .t-wx{ border:1px solid #d1d5db; background:#ffffff; color:#8a6a12; }
body.blxb-dvl .t-wx:hover, body.blxb-dvl .t-wx:active{ border-color:#b58a1a; }
body.blxb-dvl .dv-wx .wxs-scrim{ background:rgba(17,24,39,0.42); }
body.blxb-dvl .dv-wx .wxs-panel{ background:#ffffff; border:1px solid #e5e7eb; }
body.blxb-dvl .dv-wx .wx-x{ border:1px solid #d1d5db; color:#3f4451; }
body.blxb-dvl .dv-wx .wxs-head{ color:#b58a1a; }
body.blxb-dvl .dv-wx .wx-wait{ color:#6b7280; }
body.blxb-dvl .dv-wx .wx-verdict.clear{ color:#1e6a3e; }
body.blxb-dvl .dv-wx .wx-verdict.caution{ color:#8a5d06; }
body.blxb-dvl .dv-wx .wx-verdict.severe{ color:#b32d2e; }
body.blxb-dvl .dv-wx .wx-pt{ border-bottom:1px dashed #e5e7eb; }
body.blxb-dvl .dv-wx .wx-pt b{ color:#111827; }
body.blxb-dvl .dv-wx .wx-pt i{ color:#6b7280; }
body.blxb-dvl .dv-wx .wx-pt .t{ color:#111827; }
body.blxb-dvl .dv-wx .wx-pt .m{ color:#6b7280; }
body.blxb-dvl .dv-wx .wx-sec{ color:#b58a1a; }
body.blxb-dvl .dv-wx .wx-al, body.blxb-dvl .dv-wx .wx-rd{ background:#f6f7f9; border:1px solid #e5e7eb; color:#6b7280; }
body.blxb-dvl .dv-wx .wx-al b, body.blxb-dvl .dv-wx .wx-rd b{ color:#111827; }
body.blxb-dvl .dv-wx .wx-al.hot b{ color:#b32d2e; }
body.blxb-dvl .blxb-dv-lights{ border:1px solid #cbd2da; color:#b58a1a; }
body.blxb-dvl .blxb-dv-lights:hover{ border-color:#b58a1a; }
body.blxb-dvl .dv-nav .nvs-scrim{ background:rgba(17,24,39,0.42); }
body.blxb-dvl .dv-nav .nvs-panel{ background:#ffffff; border:1px solid #e5e7eb; }
body.blxb-dvl .dv-nav .nvs-x{ border:1px solid #d1d5db; color:#3f4451; }
body.blxb-dvl .dv-nav .nvs-head{ color:#b58a1a; }
body.blxb-dvl .dv-nav .nvs-to{ color:#111827; }
body.blxb-dvl .dv-nav .nvs-map{ border:1px solid #e5e7eb; background:#f6f7f9; }
body.blxb-dvl .dv-nav .nvs-nomap{ border:1px dashed #d1d5db; color:#6b7280; }
body.blxb-dvl .dv-nav .nvs-note{ color:#6b7280; }
body.blxb-dvl .dv-nav .nvs-go{ background:#b58a1a; }
body.blxb-dvl .fx-addr .val:active, body.blxb-dvl .blxb-trip .t-leg .val:active{ color:#8a6a12; }
body.blxb-dvl .fx-liveeta{ border-left:2px solid #d1d5db; color:#6b7280; }
body.blxb-dvl .fx-liveeta b{ color:#111827; }
/* === END generated light pass === */

/* ============================================================
   THE WALK-AROUND
   A full-screen surface, same physics as messages. Everything is
   thumb-sized because it is used standing in a car park in gloves.
   ========================================================== */
.dv-carbtn{position:relative;appearance:none;flex:0 0 auto;width:46px;height:46px;border-radius:12px;
  border:1px solid #2a2823;background:#101010;color:#c9a227;cursor:pointer;display:inline-flex;
  align-items:center;justify-content:center;transition:border-color .18s;}
.dv-carbtn:hover{border-color:#c9a227;}
.dv-carbtn svg{width:23px;height:23px;}
.dv-carbtn i{position:absolute;top:-6px;right:-6px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;
  background:#c9532a;color:#fff;font-size:11px;font-weight:800;font-style:normal;line-height:19px;text-align:center;}

.dv-garage{position:fixed;inset:0;z-index:100020;background:#0a0a0a;color:#e8e6e1;overflow-y:auto;
  opacity:0;transform:translateY(12px);transition:opacity .24s,transform .24s;
  padding:0 0 max(24px,env(safe-area-inset-bottom));}
.dv-garage.open{opacity:1;transform:none;}
.dv-garage .gx-body{max-width:760px;margin:0 auto;padding:0 16px;}
.dv-garage .gx-boot{padding:90px 20px;text-align:center;color:#8d8a82;font-size:14px;line-height:1.6;}

.dv-garage .gx-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:12px;
  padding:16px 0 14px;background:#0a0a0a;border-bottom:1px solid #232220;}
.dv-garage .gx-head .shot{width:60px;height:44px;flex:none;border-radius:10px;
  background:#151412 center/cover no-repeat;border:1px solid #232220;}
.dv-garage .gx-head .who{min-width:0;flex:1;display:flex;flex-direction:column;}
.dv-garage .gx-head b{font-family:'Cormorant Garamond',Georgia,serif;font-size:22px;font-weight:600;color:#f3f1ec;}
.dv-garage .gx-head i{font-style:normal;font-size:12px;color:#8d8a82;}
.dv-garage .gx-x{width:40px;height:40px;flex:none;border-radius:11px;border:1px solid #2a2823;
  background:none;color:#cfccc4;font-size:14px;cursor:pointer;}

.dv-garage .gx-pick{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 0;}
.dv-garage .gxp{appearance:none;border:1px solid #2a2823;background:#101010;color:#cfccc4;
  font:inherit;font-size:13px;padding:9px 15px;border-radius:999px;cursor:pointer;}
.dv-garage .gxp.on{background:#c9a227;border-color:#c9a227;color:#14120c;font-weight:700;}
.dv-garage .gxp i{font-style:normal;opacity:.7;}

.dv-garage .gx-defects{margin-top:16px;padding:14px 16px;border-radius:14px;
  background:rgba(201,83,42,.08);border:1px solid rgba(201,83,42,.32);}
.dv-garage .gx-defects > b{display:block;font-size:10px;letter-spacing:.22em;text-transform:uppercase;
  color:#e08a5a;margin-bottom:8px;}
.dv-garage .gxd{display:flex;align-items:baseline;gap:10px;padding:5px 0;font-size:13.5px;color:#e8e6e1;}
.dv-garage .gxd i{font-style:normal;margin-left:auto;font-size:11px;letter-spacing:.06em;
  text-transform:uppercase;color:#8d8a82;}
.dv-garage .gxd.critical i{color:#e0705a;}
.dv-garage .gxnote{display:block;margin-top:8px;font-size:11.5px;color:#8d8a82;}

.dv-garage .gx-odo{display:flex;align-items:flex-end;gap:10px;margin-top:18px;}
.dv-garage .gx-odo label{flex:1;display:flex;flex-direction:column;gap:6px;}
.dv-garage .gx-odo span{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#8d8a82;}
.dv-garage .gx-odo input{width:100%;min-height:52px;background:#101010;border:1px solid #2a2823;
  border-radius:12px;color:#f3f1ec;font:inherit;font-size:19px;font-weight:700;padding:0 15px;outline:none;}
.dv-garage .gx-odo input:focus{border-color:#c9a227;}
.dv-garage .gx-odogo{flex:none;min-height:52px;padding:0 16px;border-radius:12px;border:1px solid #2a2823;
  background:#101010;color:#e3c25a;font:inherit;font-size:13px;font-weight:700;cursor:pointer;}

.dv-garage .gx-sheet{margin-top:20px;}
.dv-garage .gxg h4{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:#c9a227;
  margin:22px 0 8px;font-weight:700;}
.dv-garage .gxi{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;
  padding:11px 13px;margin-bottom:7px;border-radius:13px;border:1px solid #232220;background:#101010;
  transition:border-color .18s,background .18s;}
.dv-garage .gxi.ok{border-color:rgba(46,204,113,.35);background:rgba(46,204,113,.05);}
.dv-garage .gxi.bad{border-color:rgba(201,83,42,.45);background:rgba(201,83,42,.06);}
.dv-garage .gxi .lb{font-size:13.5px;line-height:1.4;color:#e8e6e1;}
.dv-garage .gxi .bt{display:inline-flex;gap:6px;flex:none;}
.dv-garage .gxi .bt button{appearance:none;min-width:64px;min-height:42px;border-radius:11px;
  border:1px solid #2a2823;background:#151412;color:#a6a39b;font:inherit;font-size:12.5px;
  font-weight:700;cursor:pointer;transition:all .15s;}
.dv-garage .gxi .bt .y.on{background:#2ecc71;border-color:#2ecc71;color:#08240f;}
.dv-garage .gxi .bt .n.on{background:#c9532a;border-color:#c9532a;color:#fff;}
.dv-garage .gxi .fx{grid-column:1 / -1;display:grid;gap:8px;padding-top:10px;margin-top:2px;
  border-top:1px dashed #2a2823;}
.dv-garage .gxi .fx select,.dv-garage .gxi .fx input[type=text]{width:100%;min-height:46px;
  background:#151412;border:1px solid #2a2823;border-radius:11px;color:#f3f1ec;font:inherit;
  font-size:14px;padding:0 13px;outline:none;}
.dv-garage .gxi .fx select:focus,.dv-garage .gxi .fx input:focus{border-color:#c9a227;}
.dv-garage .fp{display:flex;align-items:center;justify-content:center;min-height:46px;border-radius:11px;
  border:1px dashed #3a3833;color:#e3c25a;font-size:13px;font-weight:700;cursor:pointer;}
.dv-garage .fp input[type=file]{position:absolute;opacity:0;width:0;height:0;}
.dv-garage .fp.busy{opacity:.55;}

.dv-garage .gx-note{display:flex;flex-direction:column;gap:6px;margin-top:22px;}
.dv-garage .gx-note span{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#8d8a82;}
.dv-garage .gx-note textarea{width:100%;background:#101010;border:1px solid #2a2823;border-radius:12px;
  color:#f3f1ec;font:inherit;font-size:14px;padding:12px 14px;outline:none;resize:vertical;line-height:1.5;}
.dv-garage .gx-note textarea:focus{border-color:#c9a227;}

.dv-garage .gx-foot{position:sticky;bottom:0;display:flex;align-items:center;gap:12px;margin-top:20px;
  padding:14px 0 max(14px,env(safe-area-inset-bottom));background:linear-gradient(to top,#0a0a0a 72%,transparent);}
.dv-garage .gx-foot .tally{font-size:12px;color:#8d8a82;}
.dv-garage .gx-file{margin-left:auto;appearance:none;min-height:54px;padding:0 26px;border-radius:14px;
  border:0;background:#c9a227;color:#14120c;font:inherit;font-size:14.5px;font-weight:800;cursor:pointer;}
.dv-garage .gx-file[disabled]{opacity:.6;}

/* the app in daylight */
body.blxb-dvl .dv-carbtn{background:#fff;border-color:#d1d5db;color:#8a6a12;}
body.blxb-dvl .dv-garage{background:#f6f7f9;color:#3f4451;}
body.blxb-dvl .dv-garage .gx-head{background:#f6f7f9;border-color:#e5e7eb;}
body.blxb-dvl .dv-garage .gx-head b{color:#111827;}
body.blxb-dvl .dv-garage .gx-head i,body.blxb-dvl .dv-garage .gx-boot,
body.blxb-dvl .dv-garage .gx-foot .tally,body.blxb-dvl .dv-garage .gxnote,
body.blxb-dvl .dv-garage .gx-odo span,body.blxb-dvl .dv-garage .gx-note span{color:#6b7280;}
body.blxb-dvl .dv-garage .gx-x{border-color:#cbd2da;color:#6b7280;background:#fff;}
body.blxb-dvl .dv-garage .gxp,body.blxb-dvl .dv-garage .gx-odo input,
body.blxb-dvl .dv-garage .gx-odogo,body.blxb-dvl .dv-garage .gxi,
body.blxb-dvl .dv-garage .gx-note textarea{background:#fff;border-color:#cbd2da;color:#111827;}
body.blxb-dvl .dv-garage .gxp.on{background:#b58a1a;border-color:#b58a1a;color:#fff;}
body.blxb-dvl .dv-garage .gx-odogo{color:#8a6a12;}
body.blxb-dvl .dv-garage .gxi .lb{color:#3f4451;}
body.blxb-dvl .dv-garage .gxi .bt button{background:#f3f4f6;border-color:#cbd2da;color:#6b7280;}
body.blxb-dvl .dv-garage .gxi.ok{border-color:#8fd6ae;background:#f2fbf6;}
body.blxb-dvl .dv-garage .gxi.bad{border-color:#e0a893;background:#fdf5f2;}
body.blxb-dvl .dv-garage .gxi .fx select,body.blxb-dvl .dv-garage .gxi .fx input[type=text]{
  background:#fff;border-color:#cbd2da;color:#111827;}
body.blxb-dvl .dv-garage .fp{border-color:#cbd2da;color:#8a6a12;}
body.blxb-dvl .dv-garage .gx-defects{background:#fdf5f2;border-color:#e0a893;}
body.blxb-dvl .dv-garage .gxd{color:#3f4451;}
body.blxb-dvl .dv-garage .gx-foot{background:linear-gradient(to top,#f6f7f9 72%,transparent);}
body.blxb-dvl .dv-garage .gx-file{background:#b58a1a;color:#fff;}
