:root{
  --green:#8f9988;--deep:#4e5b49;--cream:#f4efe6;--paper:#fffdf7;--black:#24231f;--tan:#b28a62;--red:#9d2f25;--orange:#c7772f;--blue:#2f5f8f;--line:#737d6b;--grey:#7a7a74;--shadow:0 18px 40px rgba(36,35,31,.18)
}
*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:linear-gradient(135deg,var(--green),#747f6f);color:var(--black);min-height:100vh}.site-header{position:sticky;top:0;z-index:10;background:rgba(78,91,73,.96);color:var(--cream);padding:18px min(4vw,48px);display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:3px solid var(--black);box-shadow:var(--shadow)}.brand-block{display:flex;gap:18px;align-items:center}.logo{border:3px solid var(--cream);padding:10px 12px;font-weight:900;line-height:.9;letter-spacing:.08em;text-align:center}.logo span{font-size:1.35rem}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-weight:900;margin:0 0 6px;color:#ead6b8}.eyebrow.dark{color:var(--deep)}h1,h2,h3{margin:0;text-transform:uppercase;letter-spacing:.04em}h1{font-size:clamp(24px,4vw,42px)}h2{font-size:clamp(20px,3vw,32px)}h3{font-size:clamp(19px,2.4vw,28px)}.subtitle{margin:4px 0 0;font-weight:700}.header-status{display:flex;flex-direction:column;gap:6px;text-align:right;font-weight:900;text-transform:uppercase}.critical-text{color:#ffd1c9}.warning-text{color:#ffe0a6}.tabs{position:sticky;top:104px;z-index:9;display:flex;gap:10px;padding:12px min(4vw,48px);background:rgba(244,239,230,.96);border-bottom:2px solid var(--line);box-shadow:0 10px 20px rgba(0,0,0,.08);overflow-x:auto}button,.ghost,.primary,.danger{border:2px solid var(--black);background:var(--paper);color:var(--black);padding:11px 14px;text-transform:uppercase;font-weight:900;letter-spacing:.04em;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:0}button:hover,.ghost:hover{transform:translateY(-1px)}.tab.active,.primary{background:var(--black);color:var(--cream)}.danger{background:var(--red);color:white}.small{padding:7px 9px;font-size:.74rem}.container{max-width:1240px;margin:22px auto;padding:0 18px 50px}.panel{display:none}.panel.active{display:block}.hero-card,.card,.pin-card{background:var(--cream);border:3px solid var(--black);box-shadow:var(--shadow);padding:22px}.pin-card{margin-bottom:16px}.pin-form{display:grid;grid-template-columns:160px 1fr auto auto;gap:10px;align-items:end}.driver-shell{display:grid;gap:16px}.driver-topline{background:var(--paper);border:3px solid var(--black);padding:16px;display:flex;justify-content:space-between;gap:20px;align-items:end}.shift-form{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.shift-form label{grid-column:1/-1}.mobile-driver-card{border-width:5px}.grid{display:grid;gap:14px;margin:14px 0}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}label{display:block;font-weight:900;text-transform:uppercase;margin-bottom:6px}input,select{width:100%;border:2px solid var(--black);padding:12px;background:var(--paper);font:inherit}form button[type=submit]{margin-top:14px}.type-toggle{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0}.type-toggle label{background:var(--paper);border:2px solid var(--black);padding:10px 12px}.checkbox-line{display:flex;gap:10px;align-items:center;background:var(--paper);border:2px solid var(--black);padding:10px 12px;margin:0}.checkbox-line input{width:auto}.quick-buttons{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.hint,.warning-box,.history-box{background:#fff8db;border-left:5px solid var(--tan);padding:12px;margin:12px 0;font-weight:800}.warning-box{background:#ffd1c9;border-left-color:var(--red)}.history-box{background:#dfe7d8;border-left-color:var(--deep)}.hidden{display:none!important}.section-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:14px;background:var(--cream);border:3px solid var(--black);padding:16px}.job-list{display:grid;gap:14px}.job-card{background:var(--paper);border:3px solid var(--black);box-shadow:0 10px 22px rgba(0,0,0,.12);padding:18px;position:relative}.job-card.is-next{outline:5px solid var(--tan)}.job-card.urgent{border-color:var(--red)}.job-card.complete{opacity:.72;background:#eeeeea}.job-card.cancelled{opacity:.55;background:#eee6e2}.job-card.onway{border-color:var(--blue);background:#edf5ff}.job-card.arrived{border-color:var(--orange);background:#fff2df}.job-card.wait-warning{box-shadow:0 0 0 4px rgba(199,119,47,.35),0 10px 22px rgba(0,0,0,.12)}.job-card.wait-critical{box-shadow:0 0 0 5px rgba(157,47,37,.45),0 10px 22px rgba(0,0,0,.12)}.job-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.badge{display:inline-flex;align-items:center;border:2px solid var(--black);padding:5px 8px;margin:0 6px 6px 0;text-transform:uppercase;font-weight:900;font-size:.75rem;background:var(--cream)}.badge.dropoff{background:#ead6b8}.badge.pickup{background:#dfe7d8}.badge.urgent{background:var(--red);color:white}.badge.normal{background:var(--paper)}.badge.next,.badge.run{background:var(--black);color:white}.badge.status-complete{background:#ddd}.badge.status-cancelled{background:#e9cac3}.badge.status-waiting{background:#dfe7d8}.badge.status-onway{background:#cfe6ff}.badge.status-arrived{background:#ffdca9}.phone{font-size:1.15rem;font-weight:900}.address{font-weight:800}.route{background:var(--cream);border:2px solid var(--line);padding:12px;margin:10px 0;line-height:1.45}.meta{display:flex;gap:8px;flex-wrap:wrap}.meta span,.wait-pill{background:#eee5d8;border:1px solid var(--line);padding:5px 8px;font-weight:800}.wait-warning{background:#ffe0a6!important}.wait-critical{background:#ffd1c9!important}.notes,.complete-note{border-left:5px solid var(--deep);padding:8px 12px;background:#f8f4eb;font-weight:700}.cancelled-note{border-left-color:var(--red)}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.driver-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.big-action{font-size:1.15rem;min-height:58px}.call-action{background:#172517;color:white;border:3px solid var(--black);padding:15px 16px;text-decoration:none;text-transform:uppercase;font-weight:900;display:inline-flex;margin:4px 0}.move-controls{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.run-check{display:inline-flex;gap:8px;align-items:center;background:#f0e1cb;border:2px solid var(--black);padding:8px 10px;margin:8px 0}.empty{background:var(--paper);border:2px dashed var(--line);padding:24px;text-align:center;font-weight:800}.driver-empty{min-height:220px;display:grid;place-content:center}.audit-list,.area-list{display:grid;gap:10px}.audit-row,.regular-row{background:var(--paper);border:2px solid var(--line);padding:12px;display:grid;gap:4px}.regular-row{grid-template-columns:1fr 2fr auto;align-items:center}.audit-row small{word-break:break-word}.area-group{border:3px solid var(--black);background:var(--paper);padding:14px}.area-head{display:flex;justify-content:space-between;gap:10px;border-bottom:2px solid var(--line);padding-bottom:10px;margin-bottom:10px;font-weight:900;text-transform:uppercase}.area-job{display:grid;grid-template-columns:1fr 2fr auto;gap:10px;align-items:center;border-bottom:1px solid #ccc;padding:9px 0}.area-job:last-child{border-bottom:0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:14px 0}.stat{background:var(--paper);border:3px solid var(--black);padding:16px;text-align:center}.stat strong{display:block;font-size:1.8rem}.stat span{text-transform:uppercase;font-weight:900;font-size:.8rem}.report-csv{max-height:320px;overflow:auto;background:#191815;color:#f4efe6;padding:14px;border:3px solid var(--black);white-space:pre-wrap}.complete-dialog{max-width:720px;width:calc(100% - 24px);border:4px solid var(--black);background:var(--cream);box-shadow:var(--shadow);padding:22px}.complete-dialog::backdrop{background:rgba(0,0,0,.45)}.dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}
@media (max-width:760px){.site-header{align-items:flex-start;padding:14px}.brand-block{align-items:flex-start}.logo{font-size:.8rem}.header-status{text-align:left}.tabs{top:112px;padding:10px 12px}.container{margin-top:14px;padding:0 10px 35px}.grid.two,.grid.three,.pin-form{grid-template-columns:1fr}.driver-topline{display:block}.shift-form{grid-template-columns:1fr}.driver-actions{grid-template-columns:1fr}.big-action{min-height:66px;font-size:1.22rem}.area-job,.regular-row{grid-template-columns:1fr}.section-heading{align-items:stretch;flex-direction:column}.job-head{display:block}.move-controls{justify-content:flex-start;margin-top:8px}}
@media print{.site-header,.tabs,.actions,.shift-form,.quick-buttons,.pin-card{display:none}.panel{display:block}.container{max-width:none}.job-card,.card,.hero-card{box-shadow:none}}


/* Courtesy Bus 10-upgrade batch */
.queue-tools{margin-bottom:16px}.chip-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.chip-row button{padding:6px 8px;font-size:.72rem;background:#f8f3e8}.copy-controls{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.important-note{border-left:5px solid var(--orange);background:#fff6e6;padding:10px;font-weight:800}.driver-tools{margin-top:16px}.report-csv.compact{max-height:260px;font-size:.9rem}.backup-status{margin-top:12px}.queue-tools input,.queue-tools select{width:100%}#passengerCapacity.critical-text{background:var(--red);color:#fff;padding:4px 7px}.stat:nth-child(3) strong,.stat:nth-child(4) strong{color:var(--deep)}@media print{.queue-tools,.copy-controls,.driver-tools .actions,#downloadRunSheet{display:none}.driver-tools{display:block}.report-csv.compact{max-height:none;white-space:pre-wrap}}


/* Keep the driver header pinned while the driver scrolls the job screen */
#driverTab .driver-topline{
  position:sticky;
  top:168px;
  z-index:8;
  background:rgba(255,253,247,.98);
  border:3px solid var(--black);
  box-shadow:0 12px 26px rgba(36,35,31,.16);
  padding:12px;
  margin-bottom:14px;
}
@media (max-width:760px){
  #driverTab .driver-topline{top:178px;z-index:8}
}


/* Manager shift notice shown in pinned driver header */
.shift-notice{
  margin-top:10px;
  padding:10px 12px;
  background:#fff0c2;
  border:2px solid var(--orange);
  color:var(--black);
  font-weight:900;
  line-height:1.35;
  max-width:680px;
}
#shiftNotice{width:100%;resize:vertical;min-height:78px;margin:8px 0 12px}
