[hidden]{display:none!important}
/* Layout: one phone-width column; sticky header with date bar, time-ordered cards with a driver color stripe, bottom sheets for forms and task detail */
:root{
  --bg:#EEF0F3; --surface:#FFFFFF; --sunk:#F6F7F9; --ink:#14171C; --muted:#5A616D; --line:#D8DCE2;
  --accent:#E8601C; --accent-ink:#FFFFFF; --steel:#6B7480;
  --zee:#C2255C; --ob:#1971C2;
  --ok:#2B8A3E; --warn:#C25E00; --bad:#C92A2A; --okbg:#E6F4EA; --warnbg:#FFF1DE; --badbg:#FDE8E8;
  --shadow:0 10px 30px rgba(10,14,20,.18);
  --f-display:"Barlow Condensed","Arial Narrow",system-ui,sans-serif;
  --f-body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0D0F12; --surface:#171A1F; --sunk:#111418; --ink:#ECEEF1; --muted:#9BA2AE; --line:#2A2F37;
  --accent:#FF7A33; --accent-ink:#1A0D05; --steel:#8C95A1;
  --zee:#F06595; --ob:#4DABF7;
  --ok:#51CF66; --warn:#FFA94D; --bad:#FF6B6B; --okbg:#12261A; --warnbg:#2B1E0E; --badbg:#2E1414;
  --shadow:0 10px 30px rgba(0,0,0,.5); color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0D0F12; --surface:#171A1F; --sunk:#111418; --ink:#ECEEF1; --muted:#9BA2AE; --line:#2A2F37;
  --accent:#FF7A33; --accent-ink:#1A0D05; --steel:#8C95A1;
  --zee:#F06595; --ob:#4DABF7;
  --ok:#51CF66; --warn:#FFA94D; --bad:#FF6B6B; --okbg:#12261A; --warnbg:#2B1E0E; --badbg:#2E1414;
  --shadow:0 10px 30px rgba(0,0,0,.5); color-scheme:dark}
*{box-sizing:border-box}
html,body{background:var(--bg);color:var(--ink)}
body{font-family:var(--f-body);font-size:15px;line-height:1.45;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:0 96px}
.wrap{max-width:760px;margin:0 auto}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}

header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--bg);padding-block:12px 10px;display:grid;gap:10px;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;justify-content:space-between}
.logo{font-family:var(--f-display);font-weight:700;font-size:24px;letter-spacing:.02em;line-height:1}
.logo b{color:var(--accent)} .logo i{font-style:normal;color:var(--steel)}
.logo small{font-family:var(--f-body);font-weight:600;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-left:6px}
.me{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none}
.tabs{display:flex;gap:4px;background:var(--sunk);border:1px solid var(--line);border-radius:10px;padding:3px}
.tabs button{flex:1;border:0;background:transparent;padding:7px 8px;border-radius:7px;font-weight:600;font-size:13px;color:var(--muted)}
.tabs button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.12)}
.datebar{display:flex;align-items:center;gap:6px}
.datebar .d{flex:1;text-align:center;font-family:var(--f-display);font-weight:700;font-size:20px;letter-spacing:.02em}
.iconbtn{border:1px solid var(--line);background:var(--surface);border-radius:8px;min-width:38px;height:36px;padding:0 10px;font-weight:600}
.row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 11px;font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:6px}
.chip[aria-pressed="true"]{border-color:var(--ink);background:var(--ink);color:var(--bg)}
.spacer{flex:1}

main{display:grid;gap:10px;padding-top:12px}
.empty{border:1px dashed var(--line);border-radius:12px;padding:22px 16px;text-align:center;color:var(--muted)}
.card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 12px 12px 18px;display:grid;grid-template-columns:auto 1fr;gap:4px 14px;text-align:left;width:100%;overflow:hidden}
.card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--drv)}
.card.done{opacity:.72}
.card .times{display:grid;gap:2px;font-size:12px;color:var(--muted);min-width:86px}
.card .times .pu{font-family:var(--f-mono);font-size:16px;color:var(--ink)}
.card .body{min-width:0;display:grid;gap:4px}
.card .route{font-size:14px;overflow-wrap:anywhere}
.card .route span{color:var(--muted)}
.card .meta{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.tag{font-size:11.5px;font-weight:600;border-radius:6px;padding:2px 7px;background:var(--sunk);border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.tag.drv{color:var(--drv);border-color:currentColor;background:transparent}
.pill{font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:2px 8px;white-space:nowrap}
.st-assigned{background:var(--sunk);color:var(--muted);border:1px solid var(--line)}
.st-checkedin,.st-pickedup,.st-arrived{background:var(--warnbg);color:var(--warn)}
.st-delivered{background:var(--okbg);color:var(--ok)}
.flag{font-size:11.5px;font-weight:700;border-radius:6px;padding:2px 7px;background:var(--badbg);color:var(--bad)}
.flag.warn{background:var(--warnbg);color:var(--warn)}
.lock{font-size:11.5px;color:var(--muted)}
.dayhead{font-family:var(--f-display);font-weight:700;font-size:17px;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);margin-top:8px;display:flex;justify-content:space-between}
.dayhead.today{color:var(--accent)}

.fab{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:6;border:0;background:var(--accent);color:var(--accent-ink);font-weight:700;font-size:15px;border-radius:999px;padding:14px 20px;box-shadow:var(--shadow)}

.scrim{position:fixed;inset:0;background:rgba(5,8,12,.5);z-index:20;display:flex;align-items:flex-end;justify-content:center}
.sheet{background:var(--surface);width:100%;max-width:640px;max-height:92%;overflow:auto;border-radius:16px 16px 0 0;padding:16px max(16px,env(safe-area-inset-left,0px)) calc(20px + env(safe-area-inset-bottom,0px));display:grid;gap:14px;box-shadow:var(--shadow)}
@media (min-width:700px){.scrim{align-items:center}.sheet{border-radius:16px}}
.sheet h2{font-family:var(--f-display);font-size:24px;letter-spacing:.02em;margin:0;text-wrap:balance}
.shead{display:flex;align-items:center;gap:10px;justify-content:space-between}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media (max-width:380px){.grid2{grid-template-columns:1fr}}
label.f{display:grid;gap:4px;font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);min-width:0}
input,select,textarea{width:100%;border:1px solid var(--line);background:var(--sunk);border-radius:9px;padding:10px;font-size:16px;text-transform:none;letter-spacing:0;font-weight:400}
textarea{min-height:64px;resize:vertical}
.check{display:flex;gap:8px;align-items:center;font-size:14px;color:var(--ink)}
.check input{width:auto}
.btn{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:10px 14px;font-weight:600}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.danger{color:var(--bad);border-color:var(--bad)}
.btn.block{width:100%}
.btns{display:flex;gap:8px;flex-wrap:wrap}
.btns .btn{flex:1}
.note{font-size:13px;color:var(--muted)}
.callout{border-radius:10px;padding:10px 12px;font-size:14px}
.callout.bad{background:var(--badbg);color:var(--bad)}
.callout.warn{background:var(--warnbg);color:var(--warn)}
.callout.ok{background:var(--okbg);color:var(--ok)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:14px}
.kv dt{color:var(--muted);font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding-top:2px}
.kv dd{margin:0;min-width:0;overflow-wrap:anywhere}
.sec{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:12px}
.sec h3{margin:0;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.steps{display:grid;gap:6px}
.step{display:flex;align-items:center;gap:10px;font-size:14px}
.step .n{width:24px;height:24px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;font-size:12px;font-weight:700;flex:none}
.step.on .n{background:var(--ok);border-color:var(--ok);color:var(--surface)}
.step .t{color:var(--muted);font-size:12.5px;margin-left:auto}
.log{display:grid;gap:4px;font-size:13px;max-height:200px;overflow:auto}
.log div{display:grid;grid-template-columns:auto 1fr;gap:8px}
.log span:first-child{color:var(--muted)}
.links a{color:var(--accent);font-weight:600;text-decoration:none;border:1px solid var(--line);border-radius:8px;padding:6px 10px;display:inline-block}
.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
.photos img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:8px;border:1px solid var(--line);max-width:100%}
.emailbox{white-space:pre-wrap;font-family:var(--f-mono);font-size:12.5px;background:var(--sunk);border:1px solid var(--line);border-radius:10px;padding:10px;overflow-wrap:anywhere;user-select:all}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.stat b{display:block;font-family:var(--f-display);font-size:28px;line-height:1.1}
.stat span{font-size:12px;color:var(--muted)}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px;display:grid;gap:10px}
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl td,.tbl th{padding:6px 4px;border-bottom:1px solid var(--line);text-align:left}
.tbl th{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.tbl td.r,.tbl th.r{text-align:right;font-variant-numeric:tabular-nums}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(84px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);padding:9px 14px;border-radius:10px;font-size:14px;z-index:40;max-width:90%}
.claim{display:grid;gap:10px}
.claim button{display:flex;align-items:center;gap:10px;text-align:left}
@media (prefers-reduced-motion:no-preference){.sheet:not(.noanim){animation:up .18s ease-out}@keyframes up{from{transform:translateY(24px);opacity:.6}to{transform:none;opacity:1}}}
body{margin:0;font-size:15px}
.auth{min-height:100vh;display:grid;place-items:center;padding-block:32px}
.auth form{width:100%;max-width:380px;display:grid;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px}
.auth .logo{font-size:30px}
.linkbtn{border:0;background:none;color:var(--accent);font-weight:600;padding:4px 0;text-align:left}
.gps{font-size:12px;color:var(--accent);text-decoration:none;margin-left:6px}
/* ---- calendar grid ---- */
.gridnote{padding-top:2px}
.cal{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:clip}
.cal-head{display:grid;grid-template-columns:52px repeat(var(--cols),minmax(0,1fr));position:sticky;top:calc(env(safe-area-inset-top,0px) + var(--hdr,0px));z-index:3;background:var(--surface);border-bottom:1px solid var(--line)}
.cal-head .ch{padding:8px 4px;text-align:center;font-weight:600;font-size:13px;display:flex;align-items:center;justify-content:center;gap:6px;border-left:1px solid var(--line);min-width:0;overflow:hidden;white-space:nowrap}
.cal.wk .cal-head .ch{font-size:12px;cursor:pointer;flex-direction:column;gap:0;line-height:1.2}
.cal-head .ch.today{color:var(--accent)}
.cal-body{display:grid;grid-template-columns:52px repeat(var(--cols),minmax(0,1fr));position:relative}
.cal-body .gutter{position:relative}
.cal-body .gutter .hr{font-size:10.5px;color:var(--muted);text-align:right;padding:2px 6px 0 0;box-sizing:border-box;font-variant-numeric:tabular-nums}
.col{position:relative;border-left:1px solid var(--line);min-width:0}
.slot{display:block;width:100%;height:52px;border:0;border-top:1px dashed var(--line);background:transparent;padding:0;margin:0;cursor:pointer}
.slot:first-child{border-top:0}
.slot:not([disabled]):hover{background:var(--sunk)}
.slot:not([disabled]):active{background:color-mix(in srgb,var(--accent) 12%,transparent)}
.slot[disabled]{cursor:default}
.blk{position:absolute;z-index:1;border:0;border-left:4px solid var(--drv);border-radius:7px;padding:3px 6px;text-align:left;overflow:hidden;display:flex;flex-direction:column;gap:1px;font-size:11.5px;line-height:1.25;color:var(--ink);
  background:color-mix(in srgb,var(--drv) 18%,var(--surface));box-shadow:0 1px 2px rgba(0,0,0,.12)}
.blk b{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.blk span{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal.wk .blk{padding:2px 3px;font-size:10.5px;border-left-width:3px}
.blk.st-delivered{background:color-mix(in srgb,var(--drv) 8%,var(--surface));opacity:.8}
.blk.st-checkedin,.blk.st-pickedup,.blk.st-arrived{background:color-mix(in srgb,var(--drv) 30%,var(--surface))}
.blk.late{outline:2px solid var(--bad);outline-offset:-2px}
.blk.cut-t{border-top-left-radius:0;border-top-right-radius:0}
.blk.cut-b{border-bottom-left-radius:0;border-bottom-right-radius:0}
.blk .ok{position:absolute;right:4px;top:2px;font-style:normal;color:var(--ok);font-weight:700}
.now{position:absolute;left:0;right:0;height:2px;background:var(--bad);z-index:2;pointer-events:none}
.now::before{content:"";position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--bad)}
.flag.par{background:color-mix(in srgb,var(--ob) 15%,transparent);color:var(--ob)}
.linkbtn{border:0;background:none;padding:0;color:var(--accent);font-weight:600;text-align:left;cursor:pointer}
/* ---- Status colors: gray striped = not seen · driver color = seen · red = late · yellow = detention · green = done ---- */
:root{--unseen:#7C8594;--unseenbg:#E6E9EE;--detain:#E0B400;--detainbg:#FFF7CC}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--unseen:#9AA3B2;--unseenbg:#262A31;--detain:#FFD43B;--detainbg:#2E2A10}}
:root[data-theme="dark"]{--unseen:#9AA3B2;--unseenbg:#262A31;--detain:#FFD43B;--detainbg:#2E2A10}
.flag.unseen{background:var(--unseen);color:var(--surface)}
.flag.seen{background:var(--okbg);color:var(--ok)}
.flag.detain{background:var(--detain);color:#1a1500}
.card.unseen{border:2px dashed var(--unseen);background:repeating-linear-gradient(135deg,var(--unseenbg) 0 10px,var(--surface) 10px 20px)}
.card.unseen::before{background:var(--unseen)}
.card.late{box-shadow:inset 0 0 0 2px var(--bad)}
.card.detain{box-shadow:inset 0 0 0 3px var(--detain)}
.blk.unseen{border-left-color:var(--unseen);background:repeating-linear-gradient(135deg,var(--unseenbg) 0 8px,color-mix(in srgb,var(--unseen) 18%,var(--surface)) 8px 16px);outline:2px dashed var(--unseen);outline-offset:-2px}
.blk.detain{outline:3px solid var(--detain);outline-offset:-3px}
.seenbox{display:grid;gap:10px;border:2px solid var(--unseen);background:var(--unseenbg);border-radius:12px;padding:12px}
/* ---- attention counter, strip and alert banners ---- */
.tabs .count{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;border-radius:9px;background:var(--bad);color:#fff;font-size:11px;font-weight:700;vertical-align:1px}
.attn{display:flex;flex-wrap:wrap;gap:6px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px}
.attn b{width:100%;font-size:13px}
.attn-i{border:0;border-radius:8px;padding:6px 9px;font-size:12.5px;font-weight:600;text-align:left;cursor:pointer;color:var(--ink);background:var(--sunk)}
.attn-i span{font-weight:700}
.attn-i.k-unseen{box-shadow:inset 3px 0 0 var(--unseen)} .attn-i.k-late{box-shadow:inset 3px 0 0 var(--bad)} .attn-i.k-detain{box-shadow:inset 3px 0 0 var(--detain)}
.alerts{position:fixed;left:50%;transform:translateX(-50%);top:calc(10px + env(safe-area-inset-top,0px));z-index:50;display:grid;gap:8px;width:min(92vw,460px)}
.alertbar{border:0;border-radius:12px;padding:12px 14px;font-weight:600;font-size:14px;text-align:left;color:#fff;background:#1F2933;box-shadow:var(--shadow);cursor:pointer;border-left:6px solid var(--accent)}
.alertbar.k-unseen{border-left-color:var(--unseen)} .alertbar.k-late{border-left-color:#FF6B6B} .alertbar.k-detain{border-left-color:var(--detain)} .alertbar.k-done{border-left-color:#51CF66}
@media (prefers-reduced-motion:no-preference){.alertbar{animation:drop .25s ease-out}@keyframes drop{from{transform:translateY(-14px);opacity:0}to{transform:none;opacity:1}}}
/* ---- Job done: one green for every driver ---- */
:root{--done:#2B8A3E;--donebg:#E3F4E7}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--done:#51CF66;--donebg:#12301B}}
:root[data-theme="dark"]{--done:#51CF66;--donebg:#12301B}
.card.done{opacity:1;background:var(--donebg);border-color:color-mix(in srgb,var(--done) 45%,var(--line))}
.card.done::before{background:var(--done)}
.card.done .tag.drv{color:var(--done)}
.blk.st-delivered{opacity:1;border-left-color:var(--done);background:var(--donebg);outline:0}
.blk.st-delivered b{color:var(--done)}
.btn.done{background:var(--done);border-color:var(--done);color:#fff}
.pill.st-delivered{background:var(--done);color:#fff}
.btn:disabled{opacity:.45;cursor:not-allowed}
/* late check-in frame stays on record, also on finished (green) jobs */
.blk.late,.blk.st-delivered.late{outline:2px solid var(--bad);outline-offset:-2px}
.blk.late.detain{outline:3px solid var(--detain);box-shadow:inset 0 0 0 5px var(--bad)}
.card.done.late{box-shadow:inset 0 0 0 2px var(--bad)}
.latecount.on{color:var(--bad);font-weight:700}
.pushbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px;background:var(--surface);border:1px solid var(--accent);border-radius:12px;padding:10px 12px;font-size:13.5px}
.pushbar span{flex:1;min-width:200px}
.pushbar .iconbtn{min-width:34px;height:34px;padding:0}
/* pull to refresh */
.ptr{position:fixed;left:50%;top:calc(env(safe-area-inset-top,0px) - 34px);z-index:30;width:36px;height:36px;border-radius:50%;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);display:grid;place-items:center;font-weight:700;color:var(--muted);transform:translate(-50%,0);opacity:0;transition:opacity .15s}
.ptr.on{opacity:1}
.ptr.ready{color:var(--accent);border-color:var(--accent)}
.ptr.spin{transform:translate(-50%,70px)!important}
.ptr.spin span{display:inline-block;animation:spin .6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* single-letter view buttons + month view */
.chip.lt{min-width:34px;justify-content:center;font-weight:700;padding:5px 9px}
.chip.lc b{font-weight:600;opacity:.45}.chip.lc b.on{opacity:1;font-weight:800}
.month{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.mhead,.mgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.mhead span{font-size:11px;font-weight:600;color:var(--muted);text-align:center;padding:6px 0;border-bottom:1px solid var(--line)}
.mcell,.mpad{min-height:78px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.mgrid>:nth-child(7n){border-right:0}
.mcell{background:none;border-top:0;border-left:0;padding:4px 3px;display:flex;flex-direction:column;gap:2px;align-items:stretch;text-align:left;min-width:0;font:inherit;color:inherit}
.mcell.today .mn{background:var(--ink);color:var(--bg);border-radius:999px;padding:0 6px;align-self:flex-start}
.mcell.sel{background:color-mix(in srgb,var(--ink) 5%,transparent)}
.mn{font-size:12px;font-weight:700;display:flex;align-items:center;gap:4px}
.ml{font-style:normal;font-size:10px;color:#fff;background:var(--bad);border-radius:999px;padding:0 5px;line-height:15px}
.mt{font-size:10px;line-height:15px;border-radius:4px;padding:0 3px;border-left:3px solid var(--drv);background:color-mix(in srgb,var(--drv) 22%,var(--surface));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mt.st-delivered{background:color-mix(in srgb,var(--ok) 22%,var(--surface));border-left-color:var(--ok)}
.mt.unseen{background:repeating-linear-gradient(135deg,var(--unseenbg) 0 4px,var(--surface) 4px 8px);border-left-color:var(--unseen)}
.mt.late{outline:1.5px solid var(--bad);outline-offset:-1.5px}
.mmore{font-size:10px;color:var(--muted)}

/* current-time bubble riding the red now-line (Eastern) */
.nowtag{position:absolute;right:2px;transform:translateY(-50%);z-index:2;background:var(--bad);color:#fff;font-size:10px;font-weight:700;line-height:1;padding:3px 4px;border-radius:999px;white-space:nowrap;font-variant-numeric:tabular-nums;pointer-events:none;box-shadow:0 1px 3px rgb(0 0 0/.25)}

/* =====================================================================
   v38 · TWO-COLOR CARDS
   FILL  = service type (ASAP, Expedited, Standard, Same Day, Multi-Stop) — same for every load source
   BORDER = progress status (Not seen → Assigned → Checked in → Picked up → At drop-off → Job done)
   Bright green is reserved for Job done. Driver shows as a name tag with a dot. Late / detention show as tags.
   ===================================================================== */
:root{
  --svc-asap:#E5484D; --svc-expedited:#F76B15; --svc-standard:#3E63DD; --svc-sameday:#FFC53D; --svc-multistop:#8E4EC6; --svc-none:#B9BBC6;
  --sb-unseen:#8B8D98; --sb-assigned:#8B8D98; --sb-checkedin:#00A2C7; --sb-pickedup:#D6409F; --sb-arrived:#14171C; --sb-delivered:#22C55E; --sb-cancelled:#22C55E;
  --tint:30%;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--sb-arrived:#ECEEF1;--sb-delivered:#3EE07A;--sb-cancelled:#3EE07A;--svc-none:#5B5E6A;--tint:34%}}
:root[data-theme="dark"]{--sb-arrived:#ECEEF1;--sb-delivered:#3EE07A;--sb-cancelled:#3EE07A;--svc-none:#5B5E6A;--tint:34%}

.svc-asap{--svc:var(--svc-asap)} .svc-expedited{--svc:var(--svc-expedited)} .svc-standard{--svc:var(--svc-standard)}
.svc-sameday{--svc:var(--svc-sameday)} .svc-multistop{--svc:var(--svc-multistop)} .svc-none{--svc:var(--svc-none)}
.sb-unseen{--sb:var(--sb-unseen);--sbs:dashed} .sb-onway{--sb:var(--sb-checkedin);--sbs:dashed} .sb-assigned{--sb:var(--sb-assigned);--sbs:solid} .sb-checkedin{--sb:var(--sb-checkedin);--sbs:solid}
.sb-pickedup{--sb:var(--sb-pickedup);--sbs:solid} .sb-arrived{--sb:var(--sb-arrived);--sbs:solid} .sb-delivered{--sb:var(--sb-delivered);--sbs:solid} .sb-cancelled{--sb:var(--sb-cancelled);--sbs:dashed}

/* list cards */
.card[class*="svc-"]{background:color-mix(in srgb,var(--svc) var(--tint),var(--surface));border:4px var(--sbs,solid) var(--sb,var(--line));padding:10px 12px;box-shadow:none;opacity:1}
.card[class*="svc-"]::before{display:none}
.card[class*="svc-"].unseen,.card[class*="svc-"].done,.card[class*="svc-"].late,.card[class*="svc-"].detain,.card[class*="svc-"].done.late{background:color-mix(in srgb,var(--svc) var(--tint),var(--surface));box-shadow:none;border-color:var(--sb)}
.card[class*="svc-"] .times,.card[class*="svc-"] .route span{color:color-mix(in srgb,var(--ink) 72%,transparent)}
.card[class*="svc-"] .tag{background:color-mix(in srgb,var(--surface) 70%,transparent)}
.card[class*="svc-"] .tag.drv{color:var(--ink);border-color:var(--line);display:inline-flex;align-items:center;gap:5px}
.card[class*="svc-"] .tag.drv .dot{width:8px;height:8px}

/* service pill (solid color + word) and status pill (border color + word) */
.svc-pill{font-size:11.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;border-radius:6px;padding:2px 8px;background:var(--svc);color:#fff;white-space:nowrap}
.svc-pill.svc-sameday{color:#2B1D00} .svc-pill.svc-none{color:var(--ink);background:var(--sunk);border:1px solid var(--line)}
.pill[class*="sp-"]{background:var(--surface);color:var(--ink);border:2px solid var(--sb);}
.sp-unseen{--sb:var(--sb-unseen);border-style:dashed!important} .sp-onway{--sb:var(--sb-checkedin);border-style:dashed!important} .sp-assigned{--sb:var(--sb-assigned)} .sp-checkedin{--sb:var(--sb-checkedin)} .sp-pickedup{--sb:var(--sb-pickedup)}
.sp-arrived{--sb:var(--sb-arrived)} .sp-delivered{--sb:var(--sb-delivered);background:var(--sb-delivered)!important;color:#05210F!important} .sp-cancelled{--sb:var(--sb-cancelled);border-style:dashed!important}

/* calendar blocks */
.blk[class*="svc-"]{background:color-mix(in srgb,var(--svc) var(--tint),var(--surface));border:3px var(--sbs,solid) var(--sb);outline:0;opacity:1}
.blk[class*="svc-"].unseen,.blk[class*="svc-"].late,.blk[class*="svc-"].detain,.blk[class*="svc-"].late.detain{background:color-mix(in srgb,var(--svc) var(--tint),var(--surface));outline:0;box-shadow:none;border-color:var(--sb)}
.blk[class*="svc-"] span{color:color-mix(in srgb,var(--ink) 75%,transparent)}
.blk[class*="svc-"] b{color:var(--ink)}
.blk[class*="svc-"].sb-delivered b,.blk[class*="svc-"].sb-cancelled b{color:var(--ink)}
.blk[class*="svc-"] .ok{color:var(--sb-delivered);text-shadow:0 0 2px var(--surface)}
.blk[class*="svc-"].late::after{content:"LATE";position:absolute;right:3px;bottom:2px;font-size:9px;font-weight:800;color:#fff;background:var(--bad);border-radius:4px;padding:0 3px}
.cal.wk .blk[class*="svc-"]{border-width:2px}

/* month chips */
.mt[class*="svc-"]{background:color-mix(in srgb,var(--svc) 38%,var(--surface));border:2px var(--sbs,solid) var(--sb);border-left-width:2px;outline:0}
.mt[class*="svc-"].late{box-shadow:inset 0 -2px 0 var(--bad)}

/* key button + pop-up */
.keychip{font-weight:700}
.kdot{width:14px;height:14px;border-radius:4px;background:linear-gradient(135deg,var(--svc-asap) 0 33%,var(--svc-standard) 33% 66%,var(--svc-sameday) 66%);border:2.5px solid var(--sb-delivered);box-sizing:border-box}
.keylist{display:grid;gap:8px}
.keyrow{display:grid;grid-template-columns:44px 1fr;gap:10px;align-items:center}
.keyrow b{font-size:14px}
.kfill{width:44px;height:30px;border-radius:7px;background:color-mix(in srgb,var(--svc) var(--tint),var(--surface));border:1px solid var(--line);position:relative}
.kfill::after{content:"";position:absolute;left:5px;top:5px;width:14px;height:8px;border-radius:3px;background:var(--svc)}
.kbord{width:44px;height:30px;border-radius:7px;background:var(--surface);border:4px var(--sbs,solid) var(--sb)}

/* v39: route map on a finished job, miles table */
.routemap{display:block;width:100%;max-width:100%;height:auto;margin-top:8px;border-radius:8px;border:1px solid var(--line)}
.tblwrap{overflow-x:auto;max-width:100%}
.limes{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 8px}.limes .tag{cursor:pointer;border:1px solid var(--line);font:inherit}
/* v40: address suggestions */
label.f{position:relative}
.ac{position:absolute;left:0;right:0;top:100%;z-index:30;margin-top:4px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.18);overflow:hidden;max-width:100%}
.ac-i{display:flex;gap:8px;width:100%;text-align:left;padding:11px 12px;border:0;border-bottom:1px solid var(--line);background:none;color:inherit;font:inherit;font-size:14px;line-height:1.3;cursor:pointer;white-space:normal}
.ac-i:hover,.ac-i:focus{background:var(--sunk)}
.ac-i span{color:var(--muted);flex:none}
.ac-by{font-size:11px;color:var(--muted);text-align:right;padding:4px 10px}
/* v40: driver day — Good Morning gate and Close My Day */
.daygate{position:fixed;inset:0;z-index:200;background:rgba(13,15,18,.94);display:flex;align-items:flex-start;justify-content:center;padding:max(24px,env(safe-area-inset-top,0px)) 16px 24px;overflow:auto}
.daycard{background:var(--surface);color:var(--ink);border-radius:16px;padding:20px;width:100%;max-width:440px;display:grid;gap:12px;margin:auto 0}
.daycard h2{font-family:var(--f-display);font-size:34px;line-height:1.05;margin:0}
.daypic{display:block;width:100%;max-height:260px;object-fit:contain;border-radius:10px;border:1px solid var(--line);background:var(--sunk)}
body.gated{overflow:hidden}
.daybar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:13.5px}
.daybar span{flex:1;min-width:180px}
.daybar.late{border-color:var(--bad);background:var(--badbg);color:var(--bad)}
.daybar.closed{color:var(--muted)}
.toast{z-index:300}
/* v40: View type / View by user drop-downs */
.vsel{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.f.vs{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);gap:4px}
.f.vs select{font-size:16px;font-weight:600;color:var(--ink);padding:8px 10px}
/* v40: new-task wizard (one question per screen; iPhone and Android) */
.wz-prog{height:6px;border-radius:99px;background:var(--line);overflow:hidden;margin:2px 0 4px}.wz-prog i{display:block;height:100%;background:var(--accent);border-radius:99px;transition:width .2s}
.wz-q{font-family:var(--f-display);font-size:28px;line-height:1.1;margin:10px 0 14px}
.wz-body{display:grid;gap:10px}
.wz-in{font-size:18px;padding:14px 12px;min-height:52px}
.wz-in.big{font-size:28px;font-weight:600;text-align:center}
.wz-numwrap{display:flex;align-items:center;gap:8px;font-size:20px;font-weight:600;color:var(--muted)}
.wz-opts{display:grid;gap:8px}.wz-opts.two{grid-template-columns:1fr 1fr}
.wz-opt{display:flex;align-items:center;gap:10px;text-align:left;width:100%;min-height:56px;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.wz-opt b{display:block;font-size:17px}.wz-opt small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
.wz-opt.on{border-color:var(--accent);background:var(--sunk);box-shadow:inset 0 0 0 1px var(--accent)}
.wz-opt .dot{width:14px;height:14px;flex:none}
.wz-quick{display:flex;gap:8px}.wz-quick .chip{padding:9px 16px;font-size:15px}.wz-quick .chip.on{border-color:var(--ink);background:var(--ink);color:var(--bg)}
.wz-review{display:grid;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.wz-row{display:grid;grid-template-columns:96px 1fr auto;gap:8px;align-items:center;text-align:left;padding:11px 12px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--ink);cursor:pointer;font-size:14.5px;touch-action:manipulation}
.wz-row:last-child{border-bottom:0}.wz-row span{color:var(--muted);font-size:12.5px}.wz-row b{font-weight:600;overflow-wrap:anywhere}.wz-row i{font-style:normal;color:var(--accent);font-size:12.5px;font-weight:600}
.wz-foot{position:sticky;bottom:0;display:grid;grid-template-columns:1fr 2fr;gap:8px;background:var(--surface);padding:12px 0 calc(4px + env(safe-area-inset-bottom,0px));margin-top:14px}
.wz-foot .btn{min-height:52px;font-size:16px;touch-action:manipulation}
.wz-lab{text-transform:none;letter-spacing:0;font-size:13px}
.alertbar.k-newgig{border-left-color:var(--accent)}
.panel details ol{margin:8px 0;padding-left:20px;display:grid;gap:4px}.panel details summary{cursor:pointer;color:var(--ink)}

/* v43: driver two-button screen and the "Turn on location" card */
.drv-stage{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;display:grid;gap:10px}
.drv-stage .lbl{font-family:var(--fd,inherit);text-transform:uppercase;letter-spacing:1.5px;font-size:13px;color:var(--muted);font-weight:700}
.drv-stage .addr{font-size:20px;font-weight:600;line-height:1.3}
.maprow{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.btn.big{min-height:52px;font-size:16px;display:flex;align-items:center;justify-content:center;text-decoration:none}
.btn.huge{width:100%;min-height:72px;font-size:22px;font-weight:800;border-radius:16px;margin:12px 0}
.gpsgate{z-index:300}
.gg-icon{font-size:44px;text-align:center}
.gg-steps{font-size:14.5px;line-height:1.5}
.gg-steps ol{margin:6px 0 0;padding-left:20px}
.presence{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.presence .pchip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:13px;background:var(--surface)}
.presence .pchip i{width:9px;height:9px;border-radius:50%;background:#9aa1ab;display:inline-block}
.presence .pchip.on i{background:#1f9d55}
.presence .pchip.off{color:var(--muted)}
.me:has(.modechip){flex-wrap:wrap;justify-content:flex-end;row-gap:4px}
.modechip{margin-left:8px;font-size:12px;padding:3px 9px;white-space:nowrap}
@media (max-width:480px){.modechip{flex-basis:100%;margin-left:0;justify-content:center}}
.modechip b{font-weight:500;opacity:.55}
.modechip b.on{font-weight:800;opacity:1;color:var(--accent,#E8601C)}
/* v45 Ops Room (dispatcher on a laptop/desktop) */
@keyframes opsPulse{0%{box-shadow:0 0 0 0 rgba(255,59,48,.7)}70%{box-shadow:0 0 0 9px rgba(255,59,48,0)}100%{box-shadow:0 0 0 0 rgba(255,59,48,0)}}
@keyframes opsRing{0%{transform:translate(-50%,-50%) scale(.6);opacity:.9}100%{transform:translate(-50%,-50%) scale(2.6);opacity:0}}
@keyframes opsTick{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.px-live{display:inline-block;width:8px;height:8px;border-radius:50%;background:#FF3B30;animation:opsPulse 1.6s infinite}
body.ops{padding:0;overflow:hidden;background:#07090C}
#ops{position:fixed;inset:0;display:flex;flex-direction:column;background:#07090C;color:#E8EBEF;font-family:var(--f-body);font-size:14px}
.ops-top{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:20px;row-gap:6px;padding:8px 16px;background:linear-gradient(180deg,#0F1318,#0A0D11);border-bottom:1px solid #1F2730}
.ops-brand{display:flex;align-items:center;gap:10px}
.ops-brand img{height:30px;width:auto}
.ops-title{font-family:var(--f-display);font-weight:800;font-size:22px;letter-spacing:1px;line-height:1}
.ops-title b{color:#FF7A33}
.ops-live{display:flex;align-items:center;gap:6px;padding:3px 9px;background:#2A0D0B;border:1px solid #5C1A15;border-radius:5px;font-family:var(--f-display);font-weight:800;font-size:14px;letter-spacing:2px;color:#FF6B60}
.ops-media{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.ops-mbtn{display:flex;align-items:center;gap:8px;height:34px;padding:0 12px 0 6px;border-radius:9px;font:700 12px var(--f-body);border:1px solid #34404D;background:linear-gradient(180deg,#1B222A,#12171D);color:#E8EBEF;box-shadow:inset 0 1px 0 rgba(255,255,255,.05);transition:transform .12s,box-shadow .12s}
.ops-mbtn:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(0,0,0,.45),0 0 12px rgba(255,122,51,.25)}
.ops-tile{width:22px;height:22px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ops-mlab{display:flex;flex-direction:column;align-items:flex-start;line-height:1.05}
.ops-mlab small{display:flex;align-items:center;gap:4px;font-size:9px;letter-spacing:1.2px;color:#FF6B60}
.ops-mlab small .px-live{width:6px;height:6px}
#ops-who{display:flex;align-items:center;gap:6px;height:30px;padding:0 12px;margin-left:6px;background:#161B21;border:1px solid #2A333D;border-radius:15px;font:600 12px var(--f-body)}
#ops-who .dot{width:8px;height:8px;border-radius:50%}
.ops-mode{background:none;border:0;padding:0;color:#6B7480;font:600 12px var(--f-body)}
.ops-mode b{color:#FF8A4C}
.ops-clock{display:flex;align-items:baseline;gap:10px;line-height:1}
#ops-time{font-family:var(--f-mono);font-size:26px;font-weight:500;letter-spacing:1px}
#ops-time b{color:#FF7A33;font-weight:500}
.ops-clock small{font-size:11px;letter-spacing:1.5px;color:#8B95A1;text-transform:uppercase}
.ops-stats{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.ops-stat{display:flex;align-items:baseline;gap:6px;padding:2px 12px;border-left:1px solid #1F2730}
.ops-stat span{font-family:var(--f-mono);font-size:18px;font-weight:500}
.ops-stat small{font-size:10.5px;letter-spacing:1.2px;color:#8B95A1;text-transform:uppercase}
.ops-ticker{display:flex;height:32px;background:#0C0F13;border-bottom:1px solid #1F2730;overflow:hidden}
.ops-ticker>b{display:flex;align-items:center;padding:0 14px;background:#FF3B30;color:#fff;font-family:var(--f-display);font-weight:800;letter-spacing:2px;font-size:15px;flex-shrink:0}
.ops-tickwrap{flex:1;overflow:hidden}
.ops-tick{display:flex;gap:48px;white-space:nowrap;align-items:center;height:32px;padding-left:24px;font-family:var(--f-mono);font-size:13px;width:max-content;animation:opsTick 45s linear infinite}
.ops-menu{position:fixed;z-index:95;width:320px;background:#0F1318;border:1px solid #34404D;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.6);padding:8px;display:grid;gap:6px}
.ops-menu-h{display:flex;align-items:center;justify-content:space-between;font-family:var(--f-display);font-weight:800;letter-spacing:1.5px;font-size:15px;padding:2px 4px 4px}
.ops-src{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border-radius:9px;border:1px solid #2A333D;background:#161B21;color:#E8EBEF;font:600 13px var(--f-body);text-align:left}
.ops-src:hover{border-color:#FF7A33}
.ops-src small{font-weight:400;font-size:11px;color:#8B95A1}
.ops-grid{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;padding:12px}
.ops-left{min-height:0;display:grid;grid-template-rows:minmax(0,1.15fr) minmax(0,1fr);gap:12px}
.zone{position:relative;min-height:0;display:flex;flex-direction:column;border-radius:14px;overflow:hidden;background:#0A0E13;box-shadow:0 10px 30px rgba(0,0,0,.45)}
.z-map{border:2px solid #3BC9DB;box-shadow:0 0 14px rgba(59,201,219,.18),0 10px 30px rgba(0,0,0,.45)}
.z-gig{border:2px solid #FFC24B;box-shadow:0 0 14px rgba(255,194,75,.16),0 10px 30px rgba(0,0,0,.45);background:#0C0F13}
.z-sched{border:2px solid #FF7A33;box-shadow:0 0 14px rgba(255,122,51,.18),0 10px 30px rgba(0,0,0,.45)}
.zone-h{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid #1F2730;flex-wrap:wrap;background:#0C1015}
.zone-t{font-family:var(--f-display);font-weight:800;font-size:18px;letter-spacing:1.5px}
.z-map .zone-t{color:#3BC9DB}.z-gig .zone-t{color:#FFC24B}.z-sched .zone-t{color:#FF8A4C}
.zone-s{font-size:12px;color:#8B95A1}
.zone-s b{color:#E8EBEF}
.ops-chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 11px;margin-left:4px;border-radius:14px;font:600 11px var(--f-body);border:1px solid #2A333D;background:#12161B;color:#8B95A1}
.ops-chip.on{border-color:#FF7A33;background:#2B1508;color:#FFB088}
.ops-fullbtn{border-color:#3BC9DB;background:#0B2A30;color:#9BE7F0;font-weight:700}
.ops-x{display:none;width:44px;height:44px;margin-left:8px;border-radius:50%;border:2px solid #3BC9DB;background:#0B2A30;color:#E8EBEF;font:700 20px var(--f-body);box-shadow:0 0 14px rgba(59,201,219,.35)}
.ops-x.small{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;font-size:13px;border-width:1px}
.z-map.full{position:fixed;inset:0;z-index:90;border-radius:0}
.z-map.full .ops-x{display:inline-block}.z-map.full .ops-fullbtn{display:none}
#ops-map{flex:1;min-height:0;background:#0b0f14}
.ops-empty{height:100%;display:flex;align-items:center;justify-content:center;color:#8B95A1;font-size:13px}
.ops-legend{position:absolute;left:12px;bottom:10px;z-index:3;display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:#A9B3BE;background:rgba(7,9,12,.85);padding:6px 10px;border-radius:6px;border:1px solid #1F2730;pointer-events:none}
.ops-legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px}
.ops-drv{position:absolute;width:0;height:0}
.ops-drv .ring{position:absolute;left:0;top:0;width:34px;height:34px;border-radius:50%;border:2px solid;animation:opsRing 2s ease-out infinite}
.ops-drv .dotx{position:absolute;left:0;top:0;transform:translate(-50%,-50%);width:26px;height:26px;border-radius:50%;border:2px solid #07090C;display:flex;align-items:center;justify-content:center;font:700 10px var(--f-mono);color:#fff}
.ops-drv .tag{position:absolute;left:20px;top:-10px;white-space:nowrap;background:rgba(10,14,19,.92);border:1px solid #2A333D;border-radius:6px;padding:5px 8px;font:11px/1.35 var(--f-body);color:#E8EBEF}
.ops-drv .tag span{font-family:var(--f-mono);color:#A9B3BE}
.ops-drv.stale .ring{display:none}.ops-drv.stale .dotx{opacity:.55;box-shadow:none!important}
.gig-body{flex:1;min-height:0;padding:12px 14px;display:flex}
.gig-drop{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;border:2px dashed #34404D;border-radius:10px;color:#8B95A1;font-size:13px;padding:16px;background:repeating-linear-gradient(135deg,#0E1217 0 10px,#0C0F13 10px 20px)}
.gig-drop b{color:#E8EBEF;font-size:15px}
#ops-right{flex:1;min-height:0;overflow:auto;padding:0 12px 90px}
.ops #app{max-width:none}
.ops #app .brand{display:none}
.ops header.top{position:sticky;top:0;background:#0A0E13}
body.mapfull #fab{display:none}
.z-map .zone-h{flex-wrap:nowrap}.z-map .zone-s{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.z-map #ops-layers{margin-left:auto;display:flex;flex-shrink:0}
/* v46 Gig checker */
.z-gig.drag{box-shadow:0 0 0 3px #FFC24B,0 0 28px rgba(255,194,75,.45)}
.gig-drop{cursor:pointer}
.gig-drop:hover{border-color:#FFC24B}
.gig-body{overflow:auto}
.gig-wrap{flex:1;min-height:0;display:grid;grid-template-columns:minmax(90px,28%) minmax(0,1fr);gap:12px}
.gig-thumb{width:100%;max-height:100%;object-fit:contain;object-position:top;border:1px solid #2A333D;border-radius:8px;background:#0E1217;align-self:start}
.gig-main{min-width:0;display:flex;flex-direction:column;gap:7px}
.gig-row{display:flex;align-items:center;gap:6px}
.gig-main input,.gig-main select{min-width:0;height:32px;padding:0 9px;border-radius:7px;border:1px solid #2A333D;background:#12161B;color:#E8EBEF;font:13px var(--f-body)}
.gig-main input:focus,.gig-main select:focus{outline:none;border-color:#FFC24B}
.gig-row>input:not(.gig-t){flex:1}
.gig-t{width:84px;flex-shrink:0}
.gig-pay{display:flex;align-items:center;gap:4px;font:600 15px var(--f-mono);color:#FFC24B}.gig-pay input{width:90px;font-family:var(--f-mono)}
.gig-l{display:flex;align-items:center;gap:6px;margin-left:auto;font-size:12px;color:#8B95A1}
.gig-n{width:22px;height:22px;flex-shrink:0;border-radius:50%;background:#0E2A30;color:#3BC9DB;display:flex;align-items:center;justify-content:center;font:700 11px var(--f-mono)}
.gig-n.pu{background:#3A120F;color:#FF6B60}
.gig-x{width:28px;height:28px;flex-shrink:0;border-radius:50%;border:1px solid #2A333D;background:#12161B;color:#8B95A1}
.gig-go{height:34px;padding:0 16px;border-radius:9px;border:0;background:#FFC24B;color:#1A1205;font:800 13px var(--f-body);letter-spacing:.3px}
.gig-go:disabled{opacity:.6}
.gig-err{padding:7px 10px;border-radius:7px;background:#2A0D0B;border:1px solid #5C1A15;color:#FFB3AD;font-size:12.5px}
.gig-warn{padding:7px 10px;border-radius:7px;background:#2A2208;border:1px solid #5C4A15;color:#FFD98A;font-size:12.5px}
.gig-busy{display:flex;align-items:center;gap:10px;color:#FFC24B;font-weight:600;padding:20px 0}
@keyframes gigSpin{to{transform:rotate(360deg)}}
.gig-spin{width:20px;height:20px;border-radius:50%;border:3px solid #3A2F12;border-top-color:#FFC24B;animation:gigSpin .8s linear infinite}
.gig-res{display:grid;gap:8px;margin-top:4px;padding-top:8px;border-top:1px dashed #2A333D}
.gig-mi{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:#8B95A1}.gig-mi b{color:#E8EBEF;font-family:var(--f-mono);font-weight:500}
.gig-rates{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.gig-rate{display:grid;gap:2px;padding:9px 12px;border-radius:10px;border:2px solid #34404D;background:#0E1217}
.gig-rate small{font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:#8B95A1}
.gig-rate b{font:600 26px var(--f-mono);line-height:1.1}
.gig-rate span{font:800 12px var(--f-display);letter-spacing:2px}
.gig-rate em{font-style:normal;font-size:11px;color:#8B95A1}
.gig-rate.g{border-color:#2FD07F;background:#0B2219}.gig-rate.g b,.gig-rate.g span{color:#2FD07F}
.gig-rate.y{border-color:#FFC24B;background:#2A2208}.gig-rate.y b,.gig-rate.y span{color:#FFC24B}
.gig-rate.r{border-color:#FF3B30;background:#2A0D0B}.gig-rate.r b,.gig-rate.r span{color:#FF6B60}
.gig-loc{font-size:12px;color:#8B95A1}.gig-loc.old{color:#FFC24B}
.zone-t{white-space:nowrap;flex-shrink:0}.ops-chip{white-space:nowrap}
.ops-left{grid-template-rows:minmax(0,1fr) minmax(0,1fr)}
.gig-wrap{grid-template-columns:minmax(80px,22%) minmax(0,1fr)}
.gig-l select{width:84px}
/* v47 gig checker: offer vs accepted */
.gig-kind{font-weight:700;flex-shrink:0}.gig-kind.o{border-color:#3BC9DB!important;color:#9BE7F0!important}.gig-kind.a{border-color:#2FD07F!important;color:#2FD07F!important}
.gig-mini{width:64px!important;font-family:var(--f-mono)!important}
.gig-l{margin-left:0}.gig-row .gig-l:last-child{margin-left:auto}
.gig-date{width:132px;flex-shrink:0}
.gig-prev{padding:6px 10px;border-radius:7px;background:#0B2219;border:1px solid #1E5A3E;color:#7FE3B0;font-size:12px}
.gig-next{font-size:12px;color:#9BE7F0}
.gig-mi i{font-style:normal;font-size:10.5px;color:#6B7480}
.gig-main .gig-row{flex-wrap:wrap}
.gig-row>input#gg-pu,.gig-row>input[id^=gg-s]:not([id^=gg-st]),#gg-from,#gg-pkg{min-width:160px}
/* v48 gig checker close + hint */
.gig-wrap{position:relative}
.gig-close{position:absolute;top:0;right:0;z-index:2;width:30px;height:30px;border-radius:50%;border:1px solid #FFC24B;background:#2A2208;color:#FFC24B;font:700 14px var(--f-body)}
.gig-close:hover{background:#FFC24B;color:#1A1205}
.gig-main{padding-right:36px}
.gig-hint{font-size:11px;color:#6B7480;padding-top:2px}
.gig-main select{width:auto;flex:0 0 auto}
.gig-t{width:150px}
/* v49 Map it */
.mapit{position:absolute;top:3px;right:3px;z-index:3;display:none;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:11px;background:#0B2A30;border:1px solid #3BC9DB;color:#9BE7F0!important;font:700 11px var(--f-body);cursor:pointer;box-shadow:0 0 10px rgba(59,201,219,.45);white-space:nowrap;overflow:visible!important}
.blk:hover .mapit,.card:hover .mapit,.blk:focus-within .mapit,.card:focus-within .mapit,.blk.mapped .mapit{display:inline-flex}
.mapit:hover{background:#3BC9DB;color:#07090C!important}
.blk.mapped{outline:2px solid #3BC9DB;outline-offset:1px;box-shadow:0 0 14px rgba(59,201,219,.5)}
.ops-focus{position:absolute;left:12px;top:56px;z-index:4;display:grid;gap:3px;max-width:min(78%,520px);padding:9px 42px 9px 12px;border-radius:10px;background:rgba(7,9,12,.94);border:1px solid #FFC24B;box-shadow:0 8px 24px rgba(0,0,0,.5);font-size:12px;color:#C9D1DA}
.ops-focus[hidden]{display:none}
.ops-focus b{color:#E8EBEF;font-size:13px}
.ops-focus span{display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ops-focus i{font-style:normal;flex-shrink:0;width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font:800 10px var(--f-mono);color:#fff;background:#FF3B30}
.ops-focus i.d{background:#3BC9DB;color:#07090C}
.ops-focus .mi{color:#FFC24B;font-family:var(--f-mono)}
.ops-focus .ops-x.small{position:absolute;top:6px;right:6px}
.z-map.full .ops-focus{top:70px}
/* v49b driver label on click only */
.ops-drv .dotx{cursor:pointer}
.ops-drv .tag{display:none}
.ops-drv.show .tag{display:block}
/* v49c route label top-right, compact */
.ops-focus{left:auto;right:12px;top:56px;max-width:min(44%,330px);padding:7px 34px 7px 10px;font-size:11.5px;gap:2px}
.ops-focus b{font-size:12px}
.ops-focus i{width:16px;height:16px;font-size:9px}
.ops-focus .ops-x.small{top:5px;right:5px;width:24px;height:24px;font-size:11px}
/* v52 dispatcher presence switch + GPS refresh */
.pgrp{display:inline-flex;gap:4px;align-items:center}
button.pchip{cursor:pointer;font:inherit;border:1px solid var(--line)}
.pchip.arm{background:#5C1A15!important;color:#fff!important;border-color:#FF6B60!important;font-weight:700}
.pchip.locask{padding:0 10px;background:transparent;color:var(--muted)}
.pchip.locask:hover{color:var(--ink)}
.ops-drv .tagbtns{display:flex;gap:6px;margin-top:6px}
.ops-drv .tagbtns button{height:24px;padding:0 9px;border-radius:12px;border:1px solid #3BC9DB;background:#0B2A30;color:#9BE7F0;font:700 11px var(--f-body);cursor:pointer;white-space:nowrap}
.ops-drv .tagbtns button:disabled{opacity:.6;cursor:default}
.ops-drv .tagbtns .drvpres{border-color:#FFC24B;background:#2A2208;color:#FFC24B}
.ops-drv .tagbtns .drvpres.arm{border-color:#FF6B60;background:#5C1A15;color:#fff}
/* v54 connected tickets */
.flag.link{background:color-mix(in srgb,#3BC9DB 18%,transparent);color:#1993A3}
.linkgrp{border:2px dashed color-mix(in srgb,#3BC9DB 65%,transparent);border-radius:14px;padding:6px 6px 0;margin:0 0 10px;display:grid;gap:8px}
.linkgrp .card{margin:0}
.linkhead{font-weight:800;font-size:13px;padding:2px 4px 0;display:flex;flex-direction:column;gap:1px}
.linkhead span{font-weight:500;color:var(--muted);font-size:12px}
/* v54 Ops Room: compact schedule controls + hide/show */
.ops header.top{padding-block:6px 6px;gap:6px}
.ops .tabs{padding:2px}.ops .tabs button{padding:4px 8px;font-size:12px}
.ops .sbar{display:flex!important;flex-wrap:wrap;align-items:center;gap:6px!important}
.ops .sbar .datebar{flex:1 1 230px;gap:4px}
.ops .sbar .datebar .d{font-size:16px}
.ops .sbar .iconbtn{height:30px;min-width:30px;padding:0 8px}
.ops .sbar .vsel{display:flex;gap:6px}
.ops .sbar .f.vs{font-size:0;gap:0}
.ops .sbar .f.vs select{font-size:13px;padding:4px 8px;height:30px}
.ops .sbar .row{margin:0;gap:6px;flex-wrap:nowrap}
.ops .sbar .chip{padding:4px 9px;font-size:12px}
.ops .sbar .presence{order:9;width:100%;margin:0;gap:6px}
.ops .sbar .presence .pchip{padding:2px 8px;font-size:12px}
.ops-min #tabs,.ops-min .sbar .presence,.ops-min .sbar .vsel,.ops-min .sbar .row{display:none!important}
/* v55 gig checker decision line */
.gig-verdict{display:grid;gap:3px;padding:9px 12px;border-radius:10px;border:2px solid #34404D;background:#0E1217;font-size:12px;color:#A9B3BE}
.gig-verdict>b{font:800 15px var(--f-display);letter-spacing:2px}
.gig-verdict .gig-math{font-family:var(--f-mono);color:#E8EBEF}
.gig-verdict span b{color:#E8EBEF}
.gig-verdict.g{border-color:#2FD07F;background:#0B2219}.gig-verdict.g>b{color:#2FD07F}
.gig-verdict.y{border-color:#FFC24B;background:#2A2208}.gig-verdict.y>b{color:#FFC24B}
.gig-verdict.r{border-color:#FF3B30;background:#2A0D0B}.gig-verdict.r>b{color:#FF6B60}
.gig-verdict.n>b{color:#8B95A1}
/* v56 ticker: weather + traffic */
.ops-tick .tk-near{color:#FFD1CC}
.ops-tick .tk-late{color:#FFD1CC}
/* v57 Build Mission */
.ops-misbtn{border-color:#FFC24B;background:#2A2208;color:#FFC24B;font-weight:800;height:30px}
.ops-misbtn.on{border-color:#3BC9DB;background:#0B2A30;color:#9BE7F0}
.mis{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
.mis-top{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.mis-t{font:800 14px var(--f-display);letter-spacing:1.5px;color:#FFC24B;margin-right:4px}
.mis input,.mis select{min-width:0;height:30px;padding:0 8px;border-radius:7px;border:1px solid #2A333D;background:#12161B;color:#E8EBEF;font:12.5px var(--f-body)}
.mis input:focus,.mis select:focus{outline:none;border-color:#FFC24B}
.mis-top input[data-mis=from]{flex:1 1 200px}
.mis-add{cursor:pointer;height:30px}
.mis .gig-drop{min-height:140px}
.mis-gigs{display:grid;gap:6px}
.mis-g{display:grid;grid-template-columns:54px minmax(0,1fr);gap:8px;padding:6px;border:1px solid #2A333D;border-radius:9px;background:#0E1217}
.mis-g.off{opacity:.45}
.mis-g.nofit{border-color:#FF3B30}
.mis-g img{width:54px;max-height:74px;object-fit:cover;object-position:top;border-radius:6px;border:1px solid #2A333D}
.mis-gm{min-width:0;display:grid;gap:4px}
.mis-gm .gig-row{flex-wrap:wrap;gap:5px}
.mis-gm .gig-row>input:not(.gig-t){flex:1 1 160px}
.mis-gm .gig-t{width:104px}
.mis-gm .gig-pay input{width:70px}
.mis-on{display:flex;align-items:center;gap:4px;color:#E8EBEF;font-size:12px}
.mis-on input{height:auto}
.mis-app{flex:1;font-size:12.5px;color:#E8EBEF;font-weight:700}
.mis-app i{font-style:normal;font-weight:500;font-size:11px;color:#FFC24B}
.mis-by{font-size:11px;color:#8B95A1}
.mis-err{color:#FF6B60;font-size:12px}
.mis-note{color:#8B95A1;font-size:12px}
.mis-res{display:grid;gap:8px;padding-top:8px;border-top:1px dashed #2A333D}
.mis-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:6px}
.mis-tile{display:grid;gap:1px;padding:6px 9px;border-radius:8px;border:1px solid #2A333D;background:#0E1217}
.mis-tile small{font-size:9.5px;letter-spacing:1px;text-transform:uppercase;color:#8B95A1}
.mis-tile b{font:600 15px var(--f-mono);color:#E8EBEF}
.mis-tile.g{border-color:#2FD07F}.mis-tile.g b{color:#2FD07F}
.mis-tile.y{border-color:#FFC24B}.mis-tile.y b{color:#FFC24B}
.mis-tile.r{border-color:#FF3B30}.mis-tile.r b{color:#FF6B60}
.mis-res .gig-verdict .ops-chip{justify-self:start;margin:4px 0 0}
.mis-seq{display:grid;gap:3px}
.mis-st{display:grid;grid-template-columns:20px 20px 66px minmax(0,1fr) auto 26px 26px;align-items:center;gap:6px;padding:4px 6px;border-radius:7px;background:#0E1217;font-size:12px;color:#A9B3BE}
.mis-st.late{background:#2A0D0B;color:#FFD1CC}
.mis-i{font:700 11px var(--f-mono);color:#8B95A1;text-align:center}
.mis-st i{font-style:normal;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font:800 10px var(--f-mono);background:#FF3B30;color:#fff}
.mis-st i.d{background:#3BC9DB;color:#07090C}
.mis-st b{font-family:var(--f-mono);color:#E8EBEF;font-weight:600}
.mis-sa{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#E8EBEF}
.mis-st em{font-style:normal;font-size:11px;color:#8B95A1;white-space:nowrap}
.mis-mv{height:24px;border-radius:6px;border:1px solid #2A333D;background:#12161B;color:#A9B3BE;font-size:10px;padding:0}
.mis-mv:disabled{opacity:.3}
.mis-btns{flex-wrap:wrap;justify-content:flex-end}
.mis-top select{width:auto;flex:0 0 auto;max-width:180px}
.mis-gm .gig-pay{display:flex;align-items:center;gap:3px;color:#FFC24B}
.ops-mis .ops-left{grid-template-rows:minmax(0,.75fr) minmax(0,1.25fr)}
/* v58: full-screen gig checker / mission builder (same as the map) */
.z-gig.full{position:fixed;inset:0;z-index:90;border-radius:0}
.z-gig .ops-x{display:none}
.z-gig.full .ops-x{display:inline-flex;align-items:center;justify-content:center}.z-gig.full .ops-fullbtn{display:none}
body.gigfull #fab{display:none}
.z-gig.full .gig-body{padding:16px 22px}
.z-gig.full .mis-gigs{grid-template-columns:repeat(auto-fill,minmax(520px,1fr))}
.z-gig.full .mis-g img{width:90px;max-height:140px}
.z-gig.full .mis-g{grid-template-columns:90px minmax(0,1fr)}
/* v59 Veho: final-pay pop-up, Veho-only form bits */
#tf:not([data-veho]) .only-veho{display:none}
#tf[data-veho] .no-veho{display:none!important}
.payask{position:fixed;inset:0;z-index:200;background:rgba(5,8,12,.55);display:flex;align-items:center;justify-content:center;padding:16px}
.payask-card{width:min(420px,100%);display:grid;gap:10px;padding:18px;border-radius:14px;background:var(--surface);color:var(--ink);border:2px solid #FFC24B;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.payask-card>b{font-size:17px}
.payask-card>span{font-size:13px;color:var(--muted)}
.payask-card input{font-size:20px}
.mis-same{color:#2FD07F;font-weight:800}
.gig-verdict.n{border-color:#3BC9DB;background:#0B2A30}.gig-verdict.n>b{color:#9BE7F0}
/* v63: typed gigs + Google address search in the gig checker / Build Mission */
.gig-idle{flex:1;display:flex;flex-direction:column;gap:8px}
.gig-type{align-self:center;height:32px;border-color:#3BC9DB;background:#0B2A30;color:#9BE7F0;font-weight:700;cursor:pointer}
.gig-typed{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:90px;font-size:26px;color:#8B95A1}
.gig-typed span{font-size:11px;letter-spacing:1px;text-transform:uppercase}
.z-gig .gig-row,.mis .gig-row{position:relative}
.z-gig .ac{background:#12161B;border-color:#34404D;color:#E8EBEF;z-index:60}
.z-gig .ac-i{border-color:#2A333D;font-size:13px;padding:9px 11px}
.z-gig .ac-i:hover,.z-gig .ac-i:focus{background:#1B222A}
.mis-appsel{width:auto!important;flex:0 0 auto}
.mis-ref{width:110px!important;flex:0 0 auto!important}
.mis-date{width:140px!important;flex:0 0 auto!important}
.mis-addstop{height:24px;font-size:11px}
/* v65: ops hover bubbles */
.ops-stat.has-tip{position:relative;cursor:help;outline:none}
.ops-tip{display:none;position:absolute;top:calc(100% + 8px);right:0;z-index:80;min-width:230px;max-width:300px;background:#0F141A;border:1px solid #2C3642;border-radius:10px;padding:10px 12px;box-shadow:0 12px 30px rgba(0,0,0,.55);font-family:var(--f-body);font-size:12.5px;line-height:1.4;color:#DDE3EA;text-align:left;white-space:normal}
.ops-tip::before{content:"";position:absolute;top:-6px;right:22px;width:10px;height:10px;background:#0F141A;border-left:1px solid #2C3642;border-top:1px solid #2C3642;transform:rotate(45deg)}
.ops-stat.has-tip:hover .ops-tip,.ops-stat.has-tip:focus .ops-tip{display:block}
.ops-tip b{display:block;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:#8B95A1;margin-bottom:6px}
.tip-r{display:flex;align-items:center;gap:7px;padding:3px 0;font-weight:600}
.tip-r i{width:8px;height:8px;border-radius:50%;flex:none}
.tip-r em{margin-left:auto;font-style:normal;font-weight:400;color:#AEB7C2;font-family:var(--f-mono);font-size:11.5px}
.tip-n{margin-top:6px;padding-top:6px;border-top:1px solid #222B35;color:#8B95A1;font-size:11.5px}
/* v65: chat + push-to-talk */
.chatbtn{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(76px + env(safe-area-inset-bottom,0px));z-index:7;display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:9px 14px;font-weight:700;box-shadow:var(--shadow)}
.chatbtn .ci{font-size:17px;line-height:1}
.chatbtn.hot{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 35%,transparent),var(--shadow)}
.cb{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--bad);color:#fff;font-style:normal;font-size:11.5px;font-weight:700}
.chatbtn .cb{position:absolute;top:-7px;right:-5px}
body.chat-on .chatbtn{display:none}
.chatp{position:fixed;top:0;right:0;bottom:0;width:min(440px,100vw);z-index:260;background:var(--bg);color:var(--ink);border-left:1px solid var(--line);box-shadow:var(--shadow);display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.ch-head{display:flex;align-items:center;gap:8px;padding:12px 12px 10px;border-bottom:1px solid var(--line);background:var(--surface)}
.ch-t{font-family:var(--f-display);font-size:22px;letter-spacing:.3px}
.ch-sub{font-size:12px;color:var(--muted);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ch-x,.ch-back{border:0;background:none;font-size:20px;padding:4px 8px;border-radius:8px;color:var(--ink)}
.ch-back{font-size:28px;line-height:1;padding:0 8px 4px}
.ch-car{border:1px solid var(--line);background:var(--sunk);border-radius:999px;padding:5px 10px;font-size:12.5px;font-weight:700;white-space:nowrap}
.ch-rooms{flex:1;overflow:auto;padding:6px 0}
.ch-room{display:flex;align-items:center;gap:12px;width:100%;border:0;background:none;padding:11px 14px;text-align:left;border-bottom:1px solid var(--line)}
.ch-room:hover{background:var(--sunk)}
.ch-av{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:15px;flex:none}
.ch-rm{flex:1;min-width:0;display:grid;gap:2px}.ch-rm b small{font-weight:400;color:var(--muted);font-size:11.5px;margin-left:4px}
.ch-rm em{font-style:normal;color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ch-rt{display:grid;justify-items:end;gap:4px;font-size:11.5px;color:var(--muted);white-space:nowrap}
.ch-foot{padding:10px 14px;font-size:12px;color:var(--muted)}
.ch-list{flex:1;overflow:auto;padding:10px 12px 6px;display:flex;flex-direction:column;gap:2px;overscroll-behavior:contain}
.ch-empty{margin:auto;color:var(--muted)}
.ch-day{align-self:center;font-size:11.5px;color:var(--muted);background:var(--sunk);border-radius:999px;padding:2px 10px;margin:10px 0 6px}
.ch-msg{display:flex;flex-direction:column;align-items:flex-start;max-width:82%;margin-top:8px}
.ch-msg.cont{margin-top:1px}.ch-msg.cont .ch-tm{display:none}
.ch-msg.me{align-self:flex-end;align-items:flex-end}
.ch-from{font-size:12px;font-weight:700;margin:0 0 2px 10px}
.ch-bub{background:var(--surface);border:1px solid var(--line);border-radius:16px 16px 16px 5px;padding:8px 12px;overflow-wrap:anywhere;font-size:15px}
.ch-msg.me .ch-bub{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);border-radius:16px 16px 5px 16px}
.ch-msg.me .ch-bub a{color:inherit}
.ch-at{font-weight:700}
.ch-tm{font-size:10.5px;color:var(--muted);margin:2px 6px 0}
.ch-seen{align-self:flex-end;font-size:11px;color:var(--muted);margin:2px 4px 0}
.k-voice .ch-bub{display:flex;align-items:center;gap:10px;min-width:180px}
.ch-play{width:34px;height:34px;border-radius:50%;border:0;background:var(--ink);color:var(--bg);font-size:13px;flex:none}
.ch-msg.me .ch-play{background:var(--accent-ink);color:var(--accent)}
.ch-wave{display:flex;gap:3px;align-items:center;flex:1}.ch-wave i{width:3px;border-radius:2px;background:currentColor;opacity:.55;height:10px}
.ch-wave i:nth-child(2n){height:18px}.ch-wave i:nth-child(3n){height:13px}
.ch-dur{font-family:var(--f-mono);font-size:12px}
.ch-img{display:block;max-width:240px;max-height:300px;border-radius:10px;cursor:zoom-in;margin:-2px -6px 4px}
.ch-ph{color:var(--muted);font-size:13px}
.ch-ats{display:flex;gap:6px;padding:6px 12px 0;overflow-x:auto}
.ch-ats button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:3px 10px;font-size:12.5px;font-weight:600;white-space:nowrap}
.ch-comp{display:flex;align-items:flex-end;gap:6px;padding:8px 10px 10px}
.ch-ico{width:40px;height:40px;display:grid;place-items:center;font-size:20px;cursor:pointer;flex:none;border-radius:50%}
.ch-comp textarea{flex:1;min-width:0;resize:none;border:1px solid var(--line);background:var(--surface);border-radius:20px;padding:9px 14px;max-height:120px;font-size:16px;line-height:1.3}
.ch-mic,.ch-send{width:42px;height:42px;border-radius:50%;border:0;flex:none;font-size:18px;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.ch-mic{background:var(--sunk);border:1px solid var(--line)}
.ch-mic.on{background:var(--bad);color:#fff;transform:scale(1.25)}
.ch-send{background:var(--accent);color:var(--accent-ink)}
.ch-rec{display:flex;align-items:center;gap:10px;margin:0 10px 10px;padding:10px 14px;border-radius:12px;background:var(--badbg);color:var(--bad);font-size:13px}
.ch-rec b{font-family:var(--f-mono);font-size:16px}.ch-rec.cancel{opacity:.5;text-decoration:line-through}
.ch-dot{width:10px;height:10px;border-radius:50%;background:var(--bad);animation:chpulse 1s infinite}
@keyframes chpulse{50%{opacity:.25}}
.car{flex:1;display:flex;flex-direction:column;gap:12px;padding:14px;background:#07090B;color:#F2F4F7}
.car-top{display:flex;align-items:center;justify-content:space-between;font-size:18px}
.car-x{border:1px solid #3A434E;background:#151A20;color:#fff;border-radius:999px;padding:8px 18px;font-size:16px;font-weight:700}
.car-rooms{display:flex;gap:8px;flex-wrap:wrap}
.car-rooms button{border:1px solid #3A434E;background:#151A20;color:#fff;border-radius:12px;padding:10px 14px;font-size:16px;font-weight:700}
.car-rooms button[aria-pressed="true"]{background:#fff;color:#000}
.car-msgs{flex:1;overflow:auto;display:flex;flex-direction:column;justify-content:flex-end;gap:10px}
.car-m{font-size:20px;line-height:1.3;background:#151A20;border-radius:14px;padding:10px 14px}
.car-m.me{background:#3A1E0E}.car-m small{display:block;font-size:13px;color:#9AA4B0;margin-bottom:2px}
.car-play{border:0;background:#fff;color:#000;border-radius:999px;padding:8px 16px;font-size:17px;font-weight:700}
.car-talk{width:min(78vw,300px);aspect-ratio:1;align-self:center;border-radius:50%;border:0;background:var(--accent);color:#fff;display:grid;place-content:center;gap:4px;box-shadow:0 0 0 10px rgba(255,122,51,.18)}
.car-talk b{font-family:var(--f-display);font-size:34px;letter-spacing:1px}.car-talk span{font-size:16px;opacity:.9}
.car-talk.on{background:#E03131;box-shadow:0 0 0 14px rgba(224,49,49,.25);animation:carpulse 1.2s infinite}
@keyframes carpulse{50%{box-shadow:0 0 0 26px rgba(224,49,49,.1)}}
.car-cancel{align-self:center;border:1px solid #3A434E;background:none;color:#fff;border-radius:999px;padding:10px 26px;font-size:17px}
.car-hint{text-align:center;color:#9AA4B0;font-size:13px}
@media (max-width:520px){.chatp{border-left:0}}

/* v65: ALERTS bar rolls once per 10 minutes (class .roll is added by tickRoll) */
.ops-tick{animation:none}.ops-tick.roll{animation:opsTick 45s linear 1 forwards}
/* v66: ticket chat */
.tkchat{display:flex;align-items:center;gap:10px;width:100%;margin:4px 0 10px;padding:10px 14px;border:1px solid var(--line);background:var(--sunk);border-radius:12px;text-align:left}
.tkchat span{font-size:20px}.tkchat b{font-size:15px}.tkchat em{font-style:normal;color:var(--muted);font-size:12.5px;margin-left:auto;text-align:right}
.tkchat i{font-style:normal;font-size:22px;color:var(--muted);line-height:1}
.tkchat.new{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface))}.tkchat.new em{color:var(--accent);font-weight:700}
.ch-sec{padding:14px 14px 4px;font-size:11.5px;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);font-weight:700}
.ch-tkn{padding:6px 14px;font-size:12px;color:var(--muted);background:var(--sunk);border-bottom:1px solid var(--line)}
.flag.tkc{background:var(--sunk);color:var(--ink)}.flag.tkc.new{background:var(--accent);color:var(--accent-ink)}
.tkg{float:right;margin-left:4px;font-size:11px;font-weight:700;background:rgba(0,0,0,.25);border-radius:999px;padding:0 6px;line-height:16px}
.tkg.new{background:var(--accent);color:var(--accent-ink)}
.ch-t{white-space:nowrap}
/* v67: orange push-to-talk mic + orange ticket chat + compact ticket */
.ch-mic{background:var(--accent);border:0;color:#fff;--ptt-grille:var(--accent);display:grid;place-items:center;box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 45%,transparent)}
.ch-mic .ptt-ic{display:block}
.ch-mic.on{background:var(--bad);--ptt-grille:var(--bad);transform:scale(1.25)}
.car-talk .ptt-ic{color:#fff;--ptt-grille:var(--accent);margin:0 auto 4px}
.tkchat{background:var(--accent);border-color:var(--accent);color:#fff;padding:8px 12px;margin:0;gap:8px;border-radius:12px;box-shadow:0 3px 10px color-mix(in srgb,var(--accent) 35%,transparent)}
.tkchat .tk-ic{font-size:18px;line-height:1;display:grid;place-items:center}
.tkchat .tk-ic.ptt{color:#fff;--ptt-grille:var(--accent);margin-left:6px}
.tkchat b{font-size:14.5px}
.tkchat em{color:rgba(255,255,255,.92);font-size:12px}
.tkchat em .cb{background:#fff;color:var(--accent);margin-right:3px}
.tkchat.new{background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 35%,transparent)}.tkchat.new em{color:#fff}
.sheet.tkd{grid-template-columns:1fr 1fr;gap:10px 10px;align-content:start}
.sheet.tkd>*{grid-column:1/-1;min-width:0}
.sheet.tkd>.half{grid-column:auto}
.sheet.tkd>button.btn.block.half{padding:8px 10px;font-size:13.5px;min-height:0}
.sheet.tkd .btns .btn{padding:8px 10px;font-size:13.5px}
.sheet.tkd .sec{padding-top:8px;gap:6px}
.sheet.tkd .sec.addr{border:1px solid var(--line);border-radius:10px;padding:8px 10px;align-content:start;font-size:14px}
.sheet.tkd .sec.addr .links{gap:6px}
.sheet.tkd .sec.addr .links a{padding:3px 8px;font-size:12.5px}
.sheet.tkd .seenchip{background:var(--okbg);color:var(--ok);border:1px solid color-mix(in srgb,var(--ok) 40%,transparent);font-size:11.5px;font-weight:600;border-radius:999px;padding:2px 8px}
.kv.kv2{grid-template-columns:auto 1fr auto 1fr;gap:4px 12px;font-size:13.5px}
.kv.kv2 dt{font-size:11px;padding-top:2px}
.kv.kv2 dd.wide{grid-column:2/-1}
.kv.kv2 dt.wide{grid-column:1}
.sheet.tkd .steps{display:flex;flex-wrap:wrap;gap:6px 14px}
.sheet.tkd .step{font-size:13px;gap:6px}
.sheet.tkd .step .n{width:20px;height:20px;font-size:11px}
.sheet.tkd .step .t{margin-left:0}
.sheet.tkd .sec:has(>.steps){grid-template-columns:1fr 1fr}
.sheet.tkd .sec:has(>.steps)>*{grid-column:1/-1}
.sheet.tkd .sec:has(>.steps)>.btn.block{grid-column:auto;padding:9px 10px}
.sheet.tkd .sec:has(>.steps)>.note{font-size:12px}
@media (max-width:520px){.kv.kv2{grid-template-columns:auto 1fr}.kv.kv2 dd.wide{grid-column:2}.sheet.tkd>.sec.addr{grid-column:1/-1}}
.ch-comp .ch-mic{width:46px;height:46px}
/* v68: Finance */
.fin{display:grid;gap:14px;padding:4px 0 30px}
.fin-top{display:flex;align-items:center;gap:10px}.fin-top>div{flex:1;min-width:0}
.fin-top h2{font-family:var(--f-display);font-size:26px;margin:0;letter-spacing:.02em}
.fin-st{font-size:12px;font-weight:700;border-radius:999px;padding:4px 10px;white-space:nowrap;background:var(--sunk);border:1px solid var(--line)}
.fin-st.warn{background:var(--warnbg);color:var(--warn);border-color:transparent}.fin-st.info{background:color-mix(in srgb,var(--ob) 15%,var(--surface));color:var(--ob);border-color:transparent}.fin-st.ok{background:var(--okbg);color:var(--ok);border-color:transparent}
.fin-tw{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.fin-t{border-collapse:collapse;width:100%;font-size:14px;min-width:460px}
.fin-t th{background:var(--ink);color:var(--bg);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;padding:9px 10px;text-align:left}
.fin-t th:nth-child(n+2){text-align:center}.fin-t th:nth-child(3),.fin-t th:nth-child(5){text-align:right}
.fin-t td{padding:8px 10px;border-top:1px solid var(--line);vertical-align:middle}
.fin-t td small{display:block;color:var(--muted);font-size:11.5px}.fin-t td small.warn{color:var(--warn)}
.fin-t td.c{text-align:center}.fin-t td.r{text-align:right;font-family:var(--f-mono)}
.fin-t tr.off td{color:var(--muted)}
.fin-t tfoot td{font-weight:700;background:var(--sunk)}
.fin-in{width:90px;border:1px solid var(--line);border-radius:8px;padding:6px 8px;background:var(--bg);font-family:var(--f-mono)}
.tierpill{display:inline-block;border-radius:999px;padding:2px 9px;font-size:12px;font-weight:700;background:var(--sunk);border:1px solid var(--line)}
.tierpill.t1{background:#E9ECEF;color:#495057;border-color:#DEE2E6}.tierpill.t2{background:#E7F5FF;color:#1864AB;border-color:#D0EBFF}.tierpill.t3{background:#FFF4E6;color:#D9480F;border-color:#FFE8CC}.tierpill.t4{background:#EBFBEE;color:#2B8A3E;border-color:#D3F9D8}
.fin-sum{font-size:16px;font-weight:600;line-height:1.5;margin:0}
.fin-notes{background:var(--warnbg);border-radius:10px;padding:10px 12px;font-size:13.5px;display:grid;gap:4px}
.fin-acts .btn{font-size:16px;padding:13px 16px}
.btn.ok-btn{background:var(--ok);border-color:var(--ok);color:#fff}
.fin-proof{border:2px dashed var(--accent);border-radius:12px;padding:12px;display:grid;gap:8px}
.fin-proof img,.fin-proofimg{max-width:260px;max-height:360px;border-radius:10px;border:1px solid var(--line)}
.fin-edit{display:grid;gap:10px;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--sunk)}
.fin-hist summary{cursor:pointer;color:var(--muted);font-size:13px}.fin-hist div{font-size:13px;padding:3px 0}.fin-hist span{color:var(--muted);font-family:var(--f-mono);font-size:12px;margin-right:6px}
.fin-list{display:grid;gap:8px}
.fin-card{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:12px 14px}
.fin-cm{flex:1;min-width:0;display:grid;gap:2px}.fin-cm em{font-style:normal;color:var(--muted);font-size:13px}
.fin-tiers{display:grid;gap:6px;font-size:14px}
.f.inl{display:inline-flex;align-items:center;gap:6px;font-size:13px}.f.inl input{width:110px}
.fin .bad{color:var(--bad)}.fin .ok{color:var(--ok)}
.fin .row select{width:auto;min-width:110px;border:1px solid var(--line);border-radius:8px;padding:8px;background:var(--surface)}
@media (max-width:520px){.fin-t{min-width:0;font-size:13px}.fin-t th{padding:8px 5px;font-size:10px;letter-spacing:.03em}.fin-t td{padding:7px 5px}.fin-t td small{font-size:10.5px}.fin-t td.r{font-size:12px}.tierpill{padding:1px 6px;font-size:11px}.fin-top h2{font-size:21px}.fin-in{width:62px;padding:5px}}
.tierpill{white-space:nowrap}
/* v70: room under the floating Chat button so it never covers Finance buttons */
.fin{padding-bottom:120px}
body:has(.fin-proof) .chatbtn,body:has(.fin-edit) .chatbtn{display:none}
.fin-proof img{max-height:240px}
.fin-qb small{color:var(--muted)}.fin .note.ok{color:var(--ok)}.fin .note.bad{color:var(--bad)}
/* v73: driver routes */
.rt-follow{display:grid;gap:2px;width:100%;min-height:68px;border:0;border-radius:16px;background:var(--accent);color:#fff;font:inherit;cursor:pointer;box-shadow:0 6px 18px rgba(232,96,28,.35);animation:rtpulse 2.4s ease-in-out infinite}
.rt-follow b{font-size:22px;letter-spacing:1px}.rt-follow span{font-size:14px;opacity:.92}
@keyframes rtpulse{50%{box-shadow:0 6px 26px rgba(232,96,28,.6)}}
.rt-fin{margin:0}
.rt-k{display:inline-block;font-size:11px;font-weight:800;letter-spacing:1px;border-radius:6px;padding:2px 7px;color:#fff;background:#2F6FD6;vertical-align:middle}
.rt-k.do{background:#2B8A3E}
.rt-dots{display:flex;gap:4px;flex-wrap:wrap;margin:-2px 0 4px}
.rt-dots i{width:14px;height:6px;border-radius:3px;background:var(--line)}
.rt-dots i.d{background:var(--ok)}.rt-dots i.c{background:var(--accent);width:28px}
.rt-stage.pu{border-left:6px solid #2F6FD6}.rt-stage.do{border-left:6px solid #2B8A3E}
.rt-stage .addr{font-size:22px}
.rt-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
.rt-photos img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
.rt-photos.big{grid-template-columns:1fr}.rt-photos.big img{aspect-ratio:auto;max-height:46vh;object-fit:contain;background:#000}
.rt-remind{border:3px solid #2B8A3E;border-radius:14px;padding:10px;display:grid;gap:8px;background:var(--okbg)}
.rt-rh{font-weight:800;text-transform:uppercase;letter-spacing:1px;font-size:15px;color:var(--ok)}
.rt-to{font-size:18px;font-weight:700}
.rt-more{display:block;text-align:center;margin:-4px 0 6px;cursor:pointer}
.rt-camlbl{display:flex;align-items:center;justify-content:center;cursor:pointer}
.rt-note{background:var(--warnbg);border-radius:10px;padding:8px 12px;font-weight:600}
.rt-notes{white-space:pre-line}
.rt-chat{margin:6px 0}
.rt-list{display:grid;gap:6px}
.rt-row{display:grid;grid-template-columns:26px 22px 1fr auto;gap:8px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 10px}
.rt-row.done{opacity:.6}.rt-row.cur{border:2px solid var(--accent)}
.rt-row .rt-k{padding:2px 5px;text-align:center}
.rt-n{font-weight:800;text-align:center;font-variant-numeric:tabular-nums}
.rt-t{min-width:0;font-size:14px}.rt-a{color:var(--muted);font-size:13px;overflow-wrap:anywhere}.rt-a.ok{color:var(--ok)}.rt-a.cur{color:var(--accent);font-weight:700}
.rt-mv{display:grid;grid-template-columns:repeat(3,34px);gap:4px}.rt-mv .iconbtn{width:34px;height:34px}
.rt-off{display:flex;gap:8px;align-items:center;justify-content:space-between;font-size:14px;padding:4px 0}
.chip.on{background:var(--accent);color:#fff;border-color:var(--accent)}
#rtalert{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.72);display:grid;place-items:center;padding:16px}
.rta-box{background:var(--surface);color:var(--ink);border-radius:20px;padding:20px;max-width:440px;width:100%;display:grid;gap:12px;border:4px solid var(--accent);text-align:center}
.rta-ic{font-size:44px;line-height:1}.rta-box h2{margin:0;font-size:24px}
.rta-note{background:var(--warnbg);border-radius:12px;padding:10px;font-size:18px;font-weight:600;display:grid;gap:2px}.rta-note span{font-size:12px;color:var(--muted);font-weight:500}
.rta-next{display:grid;gap:4px;justify-items:center;font-size:18px}.rta-next span{color:var(--muted);font-size:14px}
.rta-warn{color:var(--bad);font-weight:700}
@media (max-width:420px){.rt-mv{grid-template-columns:repeat(3,30px)}.rt-mv .iconbtn{width:30px;height:30px}}
.rta-next .rt-k{color:#fff;font-size:12px}
/* v74: route status + photo viewer */
.rts-x,.pxz-x{width:44px;height:44px;border-radius:50%;background:#fff;color:#000;border:3px solid #000;font-size:22px;font-weight:900;line-height:1;display:grid;place-items:center;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.35);flex:none}
.rts-sum{font-size:14px}.rts-sum .rts-bar{display:block;margin-top:6px}
.rts-bar{height:8px;border-radius:4px;background:var(--line);overflow:hidden}.rts-bar i{display:block;height:100%;background:#2B8A3E;transition:width .5s}
.rts-list{display:grid;gap:6px}
.rts-tab{display:grid;grid-template-columns:46px 1fr auto;gap:10px;align-items:center;border-radius:12px;padding:10px 12px;color:#fff}
.rts-tab.done{background:#2B8A3E}.rts-tab.todo{background:#15181D}
:root[data-theme="dark"] .rts-tab.todo{background:#000;border:1px solid #333}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .rts-tab.todo{background:#000;border:1px solid #333}}
.rts-tab.next{box-shadow:0 0 0 3px #FF7A1A}
.rts-k{font-weight:900;font-size:15px;letter-spacing:1px;text-align:center;border:2px solid currentColor;border-radius:8px;padding:4px 0}
.rts-b{min-width:0;display:grid;gap:2px}.rts-b b{font-size:15px;overflow-wrap:anywhere}.rts-b span{font-size:12.5px;opacity:.8}
.rts-st{font-size:12.5px;font-weight:700;white-space:nowrap}
.rts-van{display:flex;align-items:center;gap:8px;padding:2px 4px}
.rts-van svg{flex:none;animation:rtsvan 1.2s ease-in-out infinite}
.rts-line{flex:1;height:0;border-top:3px dashed #FF7A1A}
.rts-vt{font-size:12px;font-weight:800;color:#E8601C;white-space:nowrap}
@keyframes rtsvan{50%{transform:translateY(-2px)}}
#pxzoom{position:fixed;inset:0;z-index:100000;background:rgba(0,0,0,.94);display:grid;place-items:center;padding:12px}
#pxzoom img{max-width:100%;max-height:100%;object-fit:contain}
#pxzoom .pxz-x{position:absolute;top:max(14px,env(safe-area-inset-top));right:14px;width:52px;height:52px;font-size:26px}
.rt-photos img,.photos img,.ch-img{cursor:zoom-in}
/* v75: Dispatch Desk */
.deskbtn{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(128px + env(safe-area-inset-bottom,0px));z-index:7;display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:9px 14px;font-weight:700;font-size:14px;box-shadow:var(--shadow);cursor:pointer}
.deskbtn .ci{font-size:16px;line-height:1}.deskbtn .cb{position:absolute;top:-7px;right:-5px}
.deskbtn.hot{border-color:var(--bad);box-shadow:0 0 0 3px color-mix(in srgb,var(--bad) 30%,transparent),var(--shadow)}
.cb.soft{background:var(--steel)}
body.chat-on .deskbtn{display:none}
.deskp{position:fixed;top:0;right:0;bottom:0;width:min(480px,100vw);z-index:250;background:var(--bg);color:var(--ink);border-left:1px solid var(--line);box-shadow:var(--shadow);overflow-y:auto;padding:12px 14px calc(24px + env(safe-area-inset-bottom,0px));display:grid;align-content:start;gap:10px}
.deskp.full{width:100vw;padding-left:max(20px,calc((100vw - 1100px)/2));padding-right:max(20px,calc((100vw - 1100px)/2))}
.dk-h{display:flex;align-items:center;gap:8px;position:sticky;top:-12px;background:var(--bg);padding:6px 0;z-index:2}
.dk-ttl{font-family:var(--fd,inherit);font-size:20px;font-weight:800;letter-spacing:.5px}
.dk-fs{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 12px;font-weight:700;font-size:13px;cursor:pointer}
.dk-quick{display:grid;grid-template-columns:1fr auto auto;gap:6px}
.dk-quick input{min-width:0;border:2px solid var(--accent);border-radius:12px;padding:10px 12px;font:inherit;background:var(--surface);color:var(--ink)}
.dk-tabs{display:flex;gap:6px;flex-wrap:wrap;align-items:center;border-bottom:1px solid var(--line);padding-bottom:8px}
.dk-tabs button{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 12px;font-weight:700;font-size:13px;cursor:pointer;display:inline-flex;gap:4px;align-items:center}
.dk-tabs button[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.dk-tabs .cb{position:static}
.dk-mine{margin-left:auto;font-size:13px}
.dk-list{display:grid;gap:8px}
.deskp.full .dk-list{grid-template-columns:repeat(auto-fill,minmax(420px,1fr));align-items:start}
.deskp.full .dk-list .dayhead,.deskp.full .dk-list .empty,.deskp.full .dk-recs{grid-column:1/-1}
.dk-row{display:grid;grid-template-columns:32px 1fr;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px 12px}
.dk-row.over{border-color:var(--bad);border-left:5px solid var(--bad)}
.dk-row.done{opacity:.65}.dk-row.done .dk-t b{text-decoration:line-through}
.dk-chk{width:30px;height:30px;border-radius:50%;border:2.5px solid var(--steel);background:transparent;color:#fff;font-weight:900;cursor:pointer;margin-top:2px}
.dk-chk:hover{border-color:var(--ok)}.dk-row.done .dk-chk,.dk-chk.ticking{background:var(--ok);border-color:var(--ok)}
.dk-m{min-width:0;display:grid;gap:5px}
.dk-t{display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}.dk-t b{font-size:15.5px;overflow-wrap:anywhere}
.dk-tag{font-size:11px;font-weight:700;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:0 5px}
.dk-s{display:flex;gap:10px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}.dk-s .late{color:var(--bad);font-weight:800}
.dk-who{font-weight:700;color:var(--ink)}.dk-who::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--c);margin-right:4px}
.dk-n{font-size:13.5px;white-space:pre-line}
.dk-auto{font-size:13px;font-weight:600;border-radius:8px;padding:5px 8px}.dk-auto.bad{background:var(--warnbg);color:var(--warn)}.dk-auto.ok{background:var(--okbg);color:var(--ok)}
.dk-links{display:flex;gap:6px;flex-wrap:wrap}
.dk-go{display:inline-flex;align-items:center;gap:4px;border-radius:9px;padding:6px 10px;background:var(--accent);color:#fff;font-weight:700;font-size:13px;text-decoration:none;border:0;cursor:pointer}
.dk-acts{display:flex;gap:5px;flex-wrap:wrap}
.dk-acts button{border:1px solid var(--line);background:var(--sunk);color:var(--ink);border-radius:8px;padding:5px 9px;font-size:12.5px;font-weight:600;cursor:pointer}
.dk-acts button:hover{border-color:var(--accent)}
.dk-pick{display:flex;gap:6px;flex-wrap:wrap}.dk-pick input{border:1px solid var(--line);border-radius:8px;padding:6px;font:inherit;background:var(--surface);color:var(--ink)}
.dk-form{background:var(--surface);border:2px solid var(--accent);border-radius:14px;padding:12px;display:grid;gap:8px}.dk-form h3{margin:0}
.dk-types{display:flex;gap:6px;flex-wrap:wrap}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
@media (max-width:420px){.grid3{grid-template-columns:1fr 1fr}.dk-quick{grid-template-columns:1fr auto}.dk-quick .btn:last-child{grid-column:1/-1}}
.dk-recs{display:grid;gap:8px}
.dk-rec{display:grid;grid-template-columns:26px 1fr auto;gap:8px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 10px}.dk-rec.off{opacity:.55}
.dk-days{display:flex;gap:10px;flex-wrap:wrap}
.alertbar.k-desk{border-left-color:#E8601C}
/* v76: jobs not on the route */
.rts-off{border:2px solid var(--bad);background:var(--badbg);border-radius:14px;padding:10px;display:grid;gap:6px}
.rts-oh{font-weight:800;color:var(--bad);font-size:15px}
.rts-tab.off{background:transparent;color:var(--ink);border:2px dashed var(--steel)}
