/* TD Logistics — contract queue */
  /* ---------------- contract queue ---------------- */
  .q-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:16px}
  .q-stats{display:flex;gap:18px;flex-wrap:wrap;font-family:var(--mono);font-size:.74rem}
  .q-stats .s{display:flex;align-items:center;gap:7px;color:var(--slate)}
  .q-stats .s b{color:var(--parchment)}
  .q-stats .s .dot{width:7px;height:7px;border-radius:50%}
  .q-stats .a .dot{background:var(--gold)}.q-stats .c .dot{background:var(--azure)}.q-stats .t .dot{background:var(--emerald)}
  .q-sync{margin-left:auto;font-family:var(--mono);font-size:.66rem;color:var(--slate-dim);display:flex;align-items:center;gap:7px}
  .q-sync .pulse{width:7px;height:7px;border-radius:50%;background:var(--emerald);animation:pulse 2.4s infinite}
  .q-controls{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:18px}
  .chip-toggle{font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--slate);background:var(--void2);border:1px solid var(--line);border-radius:5px;padding:9px 12px}
  .chip-toggle.on{color:var(--gold);border-color:var(--gold-dim);background:rgba(212,175,55,.08)}
  .q-sel{background:var(--void2);border:1px solid var(--line);border-radius:5px;color:var(--parchment);font-family:var(--mono);font-size:.78rem;padding:9px 12px}
  .board{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;align-items:start}
  .lane{background:var(--void2);border:1px solid var(--line-soft);border-radius:8px;padding:10px;min-height:110px}
  .lane-head{display:flex;align-items:center;justify-content:space-between;padding:6px 6px 12px;font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--slate)}
  .lane-head .n{color:var(--gold)}
  .qcard{background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:12px;margin-bottom:10px;position:relative}
  .qcard:last-child{margin-bottom:0}
  .qcard.juicy{border-color:var(--gold-dim);box-shadow:0 0 16px rgba(212,175,55,.16)}
  .qcard.rush{border-left:3px solid var(--gold)}
  @keyframes cardFlash{0%{box-shadow:0 0 0 0 rgba(212,175,55,0)}25%{box-shadow:0 0 24px 2px rgba(212,175,55,.6)}100%{box-shadow:0 0 0 0 rgba(212,175,55,0)}}
  .qcard.flash{animation:cardFlash .64s ease}
  .qc-top{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:8px}
  .qc-id{font-family:var(--mono);font-size:.72rem;color:var(--gold)}
  .qc-route{font-family:var(--mono);font-size:.74rem;color:var(--parchment);margin-bottom:9px}
  .qc-metrics{display:flex;flex-wrap:wrap;gap:3px 14px;font-family:var(--mono);font-size:.68rem;color:var(--slate);margin-bottom:11px}
  .qc-metrics b{color:var(--parchment)}
  .qc-metrics .val{color:var(--gold)}
  .qc-actions{display:flex;align-items:center;gap:8px}
  .qc-actions .runbox input{accent-color:var(--gold);width:15px;height:15px}
  .qc-actions .claim{flex:1;font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;background:var(--gold);color:var(--void);border:0;border-radius:4px;padding:8px;font-weight:600}
  .qc-actions .claim:disabled{background:var(--line);color:var(--slate-dim)}
  .mini2{font-family:var(--mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.05em;color:var(--slate);border:1px solid var(--line);border-radius:4px;padding:7px 9px;background:transparent}
  .mini2:hover{color:var(--gold);border-color:var(--gold-dim)}
  .qc-status{font-family:var(--mono);font-size:.68rem;color:var(--slate);line-height:1.5}
  .qc-status b{color:var(--parchment)}
  .claim-timer{color:var(--gold)}
  .badge2{font-family:var(--mono);font-size:.5rem;letter-spacing:.08em;text-transform:uppercase;padding:2px 6px;border-radius:3px;border:1px solid}
  .badge2.rush{color:var(--void);background:var(--gold);border-color:var(--gold)}
  .badge2.exp{color:#e08a94;border-color:var(--oxblood)}
  .badge2.age{color:var(--slate);border-color:var(--line)}
  .badge2.hs{color:var(--gold);border-color:var(--gold-dim)}
  .badge2.jf{color:var(--azure);border-color:#2c468f}
  .badge2.white{color:#e0b8c0;border-color:var(--oxblood)}
  .qexp{color:var(--slate)}.qexp.soon{color:#e08a94}
  table.qtable th{cursor:pointer;user-select:none}
  table.qtable th.sorted{color:var(--gold)}
  table.qtable .val{color:var(--gold);font-family:var(--mono)}
  .run-basket{position:sticky;bottom:0;margin-top:16px;background:linear-gradient(180deg,var(--panel),var(--midnight));border:1px solid var(--gold-dim);border-radius:8px;padding:14px 18px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;box-shadow:0 -10px 26px rgba(0,0,0,.35)}
  .run-basket .rb-sum{font-family:var(--mono);font-size:.8rem;color:var(--parchment)}
  .run-basket .rb-sum span{color:var(--slate)}
  .run-basket .rb-fit{font-family:var(--mono);font-size:.7rem}
  .run-basket .rb-fit.ok{color:var(--emerald)}.run-basket .rb-fit.no{color:#e08a94}
  .run-basket .rb-actions{margin-left:auto;display:flex;gap:10px}
  .run-basket .rb-claim{background:var(--gold);color:var(--void);border:0;border-radius:5px;font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;padding:10px 16px;font-weight:600}
  .run-basket .rb-clear{background:transparent;border:1px solid var(--line);color:var(--slate);border-radius:5px;font-family:var(--mono);font-size:.72rem;text-transform:uppercase;padding:10px 14px}
  /* admin: active-by-hauler roster */
  .roster{display:flex;flex-direction:column;gap:14px}
  .roster-sum{display:flex;gap:18px;flex-wrap:wrap;font-family:var(--mono);font-size:.74rem;color:var(--slate);padding:2px 2px 6px}
  .roster-sum .s{display:flex;align-items:center;gap:7px}
  .roster-sum .s b{color:var(--parchment)}
  .roster-sum .dot{width:7px;height:7px;border-radius:50%;background:var(--emerald)}
  .hgroup{background:var(--void2);border:1px solid var(--line-soft);border-radius:8px;padding:12px}
  .hgroup-head{display:flex;align-items:center;gap:14px;padding:4px 6px 12px;flex-wrap:wrap}
  .hg-pic{width:38px;height:38px;border-radius:6px;flex:0 0 auto;background:radial-gradient(circle at 50% 35%,#21305f,#0b1430);border:1px solid var(--gold-dim);display:flex;align-items:center;justify-content:center;color:var(--gold)}
  .hg-pic svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.6}
  .hg-id{min-width:0}
  .hg-nm{font-family:var(--display);font-weight:600;font-size:1.02rem;color:var(--parchment);display:flex;align-items:center;gap:9px}
  .hg-sub{font-family:var(--mono);font-size:.66rem;color:var(--slate);margin-top:3px;letter-spacing:.04em}
  .hg-metrics{margin-left:auto;display:flex;gap:16px;flex-wrap:wrap;font-family:var(--mono);font-size:.72rem;color:var(--slate)}
  .hg-metrics b{color:var(--parchment)}
  .hg-exp.soon{color:#e08a94}
  .hg-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
  .hg-cards .qcard{margin-bottom:0}
  @media(max-width:900px){.board{grid-template-columns:1fr 1fr}}
  @media(max-width:600px){.board{grid-template-columns:1fr};.hg-metrics{margin-left:0}}
