/* ============================================================================
   MKG Move — OPERATIONAL REGISTER  (ops dispatch + partner console)
   Handoff 4c: "un seul système, deux réglages". Same palette, same Archivo,
   same vocabulary — but sharp corners, 1 px hairlines, no shadows, flat plates.
   Loads AFTER app.css and reads the same :root tokens; it never redefines one.

   Scope: <body class="ops ops-admin"> or <body class="ops ops-portal">.
   Everything here is nested under .ops so the customer-facing warm register in
   app.css is untouched.

   Layers: 1 register reset · 2 admin shell · 3 admin rail (P1-18)
           4 partner shell (P1-26) · 5 shared ops components · 6 responsive
   ========================================================================== */

/* ---- 1 · register reset -------------------------------------------------- */
.ops{background:var(--paper)}
.ops .card{border-radius:3px; box-shadow:none; border-color:var(--line)}
.ops .card + .card{margin-top:16px}
.ops .card > h2:first-child,.ops .card > h3:first-child{margin-top:0}
.ops .btn{border-radius:3px; font-size:.86rem}
.ops .btn.sm,.ops .btn-sm{padding:.42em .72em; font-size:.8rem}
.ops .btn.ghost{background:var(--surface); color:var(--ink-soft); border-color:var(--line-strong)}
.ops .btn.ghost:hover{border-color:var(--accent); color:var(--accent)}
.ops .btn.light{background:rgba(255,255,255,.14); color:#fff; border-color:transparent}
.ops .btn.light:hover{background:rgba(255,255,255,.24)}
.ops .btn-primary::after{display:none}            /* no shine sweep in the ops register */
.ops .btn:hover{transform:none}
/* rectangular narrow-caps status chips (handoff 1e) */
.ops .pill{padding:.26em .58em; font:700 .66rem/1.15 var(--font-narrow); letter-spacing:.07em;
  text-transform:uppercase; border-radius:3px}
.ops .chip{border-radius:3px; font-size:.8rem; padding:.36em .7em}
.ops .chip:hover{transform:none}
.ops input,.ops select,.ops textarea{border-radius:3px}
.ops .tbl-wrap,.ops .drop,.ops .empty,.ops .alert,.ops .meter .mt-track,.ops .meter .mt-fill{border-radius:3px}
.ops .stat-plate{border-radius:0}
.ops h1{font-family:var(--font-display); letter-spacing:-.025em}
.ops .flash{background:var(--good-soft); color:var(--good); border:1px solid color-mix(in srgb,var(--good) 40%,transparent);
  border-radius:3px; padding:11px 15px; margin-bottom:18px; font-weight:500; display:inline-flex; align-items:center; gap:7px}
.ops a.lnk{color:var(--accent); font-weight:600}

/* ---- 2 · admin shell ----------------------------------------------------- */
.admin-shell{display:grid; grid-template-columns:236px 1fr; min-height:100vh}
.side{position:sticky; top:0; align-self:start; height:100vh; overflow-y:auto; background:var(--navy-900);
  border-right:1px solid #000; padding:12px 10px; display:flex; flex-direction:column; gap:2px}
.side .brand{display:flex; align-items:center; gap:9px; font-family:var(--font-display); font-weight:800;
  letter-spacing:-.02em; font-size:1.08rem; color:#fff; text-decoration:none; padding:8px 8px 14px}
.side .brand b{color:var(--warm-3)}
/* Route M, dark variant — it sits straight on the navy rail, no white tile. */
.side .brand .brand-mark{flex:none; display:block}
.side .grp{border-radius:0}
.side summary{list-style:none; cursor:pointer; display:flex; align-items:center; gap:8px; padding:9px 10px;
  font:700 .66rem/1 var(--font-narrow); text-transform:uppercase; letter-spacing:.13em;
  color:color-mix(in srgb,#fff 52%,transparent); user-select:none}
.side summary::-webkit-details-marker{display:none}
.side summary::after{content:""; width:6px; height:6px; border-right:2px solid currentColor; border-bottom:2px solid currentColor;
  transform:rotate(-45deg); margin-left:auto; transition:transform .15s; opacity:.7}
.side .grp[open]>summary::after{transform:rotate(45deg)}
.side summary:hover{color:#fff}
.side .gbadge{margin-left:6px; background:color-mix(in srgb,#fff 15%,transparent); color:#fff;
  font:800 .64rem/1 var(--font-narrow); min-width:16px; height:16px; border-radius:3px; display:inline-grid; place-items:center; padding:0 5px}
.side .navlist{display:flex; flex-direction:column; gap:1px; padding:1px 0 8px}
.side .nav-item{display:flex; align-items:center; gap:9px; padding:8px 10px 8px 14px; border-radius:3px;
  color:color-mix(in srgb,#fff 78%,transparent); text-decoration:none; font-size:.9rem; font-weight:600}
.side .nav-item span{white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.side .nav-item:hover{background:color-mix(in srgb,#fff 8%,transparent); color:#fff; text-decoration:none}
.side .nav-item.active{background:var(--warm); color:#fff}
.side .nav-item.active svg{color:#fff}
.side .nav-item .badge{margin-left:auto; background:var(--warm); color:#fff; font:800 .64rem/1 var(--font-narrow);
  min-width:17px; height:17px; border-radius:3px; display:inline-grid; place-items:center; padding:0 5px; flex-shrink:0}
.side .nav-item.active .badge{background:rgba(0,0,0,.28)}
.side .nav-item .badge.crit{background:var(--crit)}
.side :focus-visible{outline-color:var(--warm-3)}
.side .drawer-close{display:none}

.main{min-width:0; display:flex; flex-direction:column; background:var(--paper)}

/* app bar — search · MODE TEST chip · identity menu (P1-18) */
.topstrip{position:sticky; top:0; z-index:20; display:flex; align-items:center; gap:10px; padding:8px 18px;
  background:var(--surface); border-bottom:1px solid var(--line)}
.admin-nav-toggle{display:none; align-items:center; justify-content:center; min-width:40px; min-height:40px;
  padding:8px; color:var(--ink); background:var(--surface); border:1px solid var(--line-strong);
  border-radius:3px; cursor:pointer}
.topstrip .sp{flex:1}
.topstrip form{margin:0}
.topstrip .search{position:relative; display:flex; align-items:center}
.topstrip .search svg{position:absolute; left:10px; color:var(--muted); pointer-events:none}
.topstrip .search input{padding-left:32px; min-width:230px}
.mode-chip{display:inline-flex; align-items:center; gap:6px; padding:4px 9px; border-radius:3px;
  font:700 .64rem/1 var(--font-narrow); text-transform:uppercase; letter-spacing:.14em;
  background:var(--warn-bg); color:var(--warm-2); border:1px solid var(--warn-border); white-space:nowrap}
.mode-chip .dot{width:6px; height:6px; border-radius:50%; background:var(--warm)}
.mode-chip.is-live{background:var(--good-soft); color:var(--good); border-color:color-mix(in srgb,var(--good) 34%,transparent)}
.mode-chip.is-live .dot{background:var(--good)}
.site-preview{font-size:.85rem; display:inline-flex; align-items:center; gap:5px}

.idmenu{position:relative}
.idmenu > summary{list-style:none; cursor:pointer; display:flex; align-items:center; gap:8px; padding:5px 8px;
  border:1px solid var(--line); border-radius:3px; background:var(--surface); color:var(--ink); font-size:.85rem; font-weight:650}
.idmenu > summary::-webkit-details-marker{display:none}
.idmenu > summary:hover{border-color:var(--line-strong)}
.idmenu .av{display:inline-grid; place-items:center; width:24px; height:24px; border-radius:3px;
  background:var(--navy); color:#fff; font:800 .68rem/1 var(--font-narrow); letter-spacing:.02em}
.idmenu .who{display:flex; flex-direction:column; line-height:1.15; align-items:flex-start; max-width:150px}
.idmenu .who b{font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:150px}
.idmenu .who span{font:700 .58rem/1.2 var(--font-narrow); text-transform:uppercase; letter-spacing:.12em; color:var(--muted)}
.idmenu .pop{position:absolute; right:0; top:calc(100% + 6px); min-width:214px; background:var(--surface);
  border:1px solid var(--line); box-shadow:var(--shadow); border-radius:3px; padding:6px; z-index:60;
  display:flex; flex-direction:column; gap:2px}
.idmenu .pop a,.idmenu .pop button{display:flex; align-items:center; gap:8px; width:100%; text-align:left;
  padding:8px 10px; border-radius:3px; font-size:.87rem; font-weight:600; color:var(--ink); background:none;
  border:0; cursor:pointer; text-decoration:none}
.idmenu .pop a:hover,.idmenu .pop button:hover{background:var(--surface-2); text-decoration:none}
.idmenu .pop hr{border:0; border-top:1px solid var(--line); margin:4px 0}
.idmenu .pop form{margin:0}

.ops-admin .wrap{max-width:1280px; margin:0 auto; padding:24px 18px 80px; width:100%; min-width:0}
.ops-admin .wrap h1{font-size:clamp(1.4rem,1.2rem + .8vw,1.7rem); margin:0 0 18px}

/* KPI plates — flat, hairline via box-shadow so a partial last row never bleeds */
.ops .grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(165px,1fr)); gap:1px;
  margin-bottom:22px; background:transparent; border:0}
.ops .stat{background:var(--surface); border:0; border-radius:0; padding:15px 18px; box-shadow:0 0 0 1px var(--line); min-width:0}
.ops .stat .n{font-family:var(--font-display); font-size:1.65rem; font-weight:800; letter-spacing:-.03em;
  line-height:1.12; color:var(--navy); font-variant-numeric:tabular-nums}
.ops .stat .k{font:700 .67rem/1.2 var(--font-narrow); text-transform:uppercase; letter-spacing:.12em; color:var(--muted); margin-top:5px}
.ops .stat.tone-warn{background:var(--warn-bg)}
.ops .stat.tone-warn .n{color:var(--warm-2)}
.ops .stat.tone-crit .n{color:var(--crit)}
.ops .stat.tone-good .n{color:var(--good)}

/* dense tables — bare <table> kept for the ~40 existing admin views */
.ops table{width:100%; border-collapse:collapse; font-size:.88rem}
.ops th,.ops td{text-align:left; padding:9px 11px; border-bottom:1px solid var(--line); vertical-align:middle}
.ops tbody tr:last-child td{border-bottom:0}
.ops tbody tr:hover td{background:var(--surface-2)}
.ops table caption{padding:10px 12px; color:var(--muted); background:var(--surface);
  border-bottom:1px solid var(--line); font:700 .64rem/1.3 var(--font-narrow); letter-spacing:.1em;
  text-align:left; text-transform:uppercase}
.ops thead th{background:var(--surface-2); font-family:var(--font-narrow); font-size:.71rem; text-transform:uppercase;
  letter-spacing:.1em; color:var(--muted); font-weight:700; position:sticky; top:0}
.ops .tbl-wrap{overflow-x:auto; border:1px solid var(--line); border-radius:3px; background:var(--surface)}
.ops td.num,.ops th.num{text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap}
.ops .wrap input,.ops .wrap select,.ops .topstrip input{padding:7px 10px; border-radius:3px; font-size:.88rem}
.ops .topstrip .search input{padding-left:32px}   /* after the compact rule: keep room for the glyph */
.ops .inline{display:inline-flex; gap:6px; align-items:center}

/* ---- 3 · admin dashboard rail (P1-18) ------------------------------------ */
.ops-dash{display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:18px; align-items:start}
.ops-dash > .ops-main{min-width:0}
.ops-rail{position:sticky; top:64px; align-self:start; display:flex; flex-direction:column; gap:14px; min-width:0}
.rail-card{background:var(--surface); box-shadow:0 0 0 1px var(--line); padding:14px 15px}
.rail-card.is-warn{background:var(--warn-bg); box-shadow:0 0 0 1px var(--warn-border)}
.rail-card h3{font-size:.95rem; margin:0 0 6px; color:var(--navy); letter-spacing:-.01em; font-weight:750}
.rail-card p{margin:0; font-size:.85rem; color:var(--muted); line-height:1.5}
.rail-card .acts{display:flex; gap:6px; flex-wrap:wrap; margin-top:10px}
.rail-card .acts form{margin:0}
.rail-card-spaced{margin-bottom:10px}
.rail-card-compact{padding:4px 15px}
.rail-list{display:flex; flex-direction:column}
.rail-list a,.rail-list .ri{display:flex; align-items:baseline; justify-content:space-between; gap:10px;
  padding:9px 0; border-bottom:1px solid var(--line-soft); color:inherit; text-decoration:none}
.rail-list a:last-child,.rail-list .ri:last-child{border-bottom:0}
.rail-list a:hover{text-decoration:none; color:var(--accent)}
.rail-list .t{font-weight:650; font-size:.88rem; min-width:0}
.rail-list .m{display:block; font:700 .6rem/1.3 var(--font-narrow); text-transform:uppercase;
  letter-spacing:.1em; color:var(--muted); margin-top:2px}
.rail-list .v{font-variant-numeric:tabular-nums; font-weight:700; white-space:nowrap}
.rail-kv{display:flex; align-items:baseline; justify-content:space-between; gap:10px; padding:7px 0;
  border-bottom:1px solid var(--line-soft); font-size:.88rem}
.rail-kv:last-child{border-bottom:0}
.rail-kv b{font-variant-numeric:tabular-nums}

/* ---- 4 · partner console shell (P1-26) ----------------------------------- */
.topbar{position:sticky; top:0; z-index:40; background:var(--navy-900); color:#fff; border-bottom:1px solid #000}
.topbar .in{max-width:1180px; margin:0 auto; display:flex; align-items:center; gap:14px; padding:0 20px; height:60px}
.topbar .brand{display:inline-flex; align-items:center; gap:9px; font-family:var(--font-display); font-weight:800;
  letter-spacing:-.02em; color:#fff; text-decoration:none; flex-shrink:0}
.topbar .brand .brand-mark{flex:none; display:block}
/* partner identity block: company + agrément + rating, per handoff 3b */
.topbar .who{display:flex; flex-direction:column; line-height:1.15; min-width:0}
.topbar .who b{font-family:var(--font-display); font-weight:800; font-size:.98rem; letter-spacing:-.01em;
  text-transform:uppercase; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.topbar .who .sub{font:700 .58rem/1.3 var(--font-narrow); text-transform:uppercase; letter-spacing:.14em;
  color:var(--on-navy-3); display:flex; align-items:center; gap:6px}
.topbar .who .sub .rating .rv,.topbar .who .sub .rating .rc{color:var(--on-navy-1); font-size:.62rem}
.topbar .sp{flex:1}
.topbar nav{display:flex; gap:2px}
.topbar nav a{color:color-mix(in srgb,#fff 78%,transparent); text-decoration:none; font-weight:600; font-size:.86rem;
  padding:7px 12px; border-radius:3px; transition:background .12s,color .12s; white-space:nowrap}
.topbar nav a:hover{color:#fff; background:rgba(255,255,255,.08); text-decoration:none}
.topbar nav a[aria-current="page"]{color:#fff; background:var(--warm)}
.topbar form{margin:0}
.topbar :focus-visible{outline-color:var(--warm-3)}
.topbar .nav-toggle{display:none; background:rgba(255,255,255,.12); border:0; color:#fff; border-radius:3px;
  padding:8px 9px; cursor:pointer; align-items:center; justify-content:center}
.topbar nav .drawer-close{display:none}

.ops-portal .wrap{max-width:1180px; margin:0 auto; padding:24px 20px 80px; width:100%; min-width:0}
.ops-portal .wrap h1{font-size:clamp(1.5rem,1.2rem + 1vw,1.9rem); margin:0 0 4px; color:var(--navy)}
/* the console body is a grid, never margin-spaced siblings (handoff §Space) */
.ops-portal .wrap > .stack{display:grid; gap:16px}
.ops-portal .wrap > .stack > .card + .card{margin-top:0}

/* ---- 5 · shared ops components ------------------------------------------ */
/* section rule: narrow uppercase caption + hairline (handoff 1e/3b) */
.ops .ops-section{font:700 .68rem/1 var(--font-narrow); text-transform:uppercase; letter-spacing:.15em;
  color:var(--muted); margin:0 0 12px; display:flex; align-items:center; gap:10px}
.ops .ops-section::after{content:""; flex:1; height:1px; background:var(--line)}
.ops .ops-section .n{color:var(--ink); font-weight:800}

/* navy pay plate — partner net, never on a customer-priced screen */
.pay-plate{background:var(--navy); color:#fff; padding:14px 16px; display:flex; flex-direction:column; gap:8px; min-width:150px}
.pay-plate .k{font:700 .62rem/1 var(--font-narrow); text-transform:uppercase; letter-spacing:.15em; color:var(--on-navy-3)}
.pay-plate .v{font-family:var(--font-display); font-weight:800; font-size:1.75rem; letter-spacing:-.03em;
  color:var(--warm-3); font-variant-numeric:tabular-nums; line-height:1}
.pay-plate .h{font:700 .58rem/1.3 var(--font-narrow); text-transform:uppercase; letter-spacing:.12em; color:var(--on-navy-3)}
.pay-plate .btn{width:100%}

/* 2×2 data block used by offer rows */
.data-2{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line)}
.data-2 > div{background:var(--surface); padding:9px 12px; min-width:0}
.data-2 .k{font:700 .6rem/1.2 var(--font-narrow); text-transform:uppercase; letter-spacing:.13em; color:var(--muted)}
.data-2 .v{font-weight:750; font-variant-numeric:tabular-nums; margin-top:2px; white-space:nowrap}

/* countdown plate */
.cd-plate{background:var(--navy-700); color:#fff; padding:14px 16px; display:flex; flex-direction:column; gap:9px}
.cd-plate .k{font:700 .62rem/1 var(--font-narrow); text-transform:uppercase; letter-spacing:.15em; color:var(--on-navy-2)}
.cd-plate .countdown{font-family:var(--font-display); font-size:2.1rem; color:#fff}
.cd-plate .countdown.is-urgent{color:var(--warm-3)}
.cd-plate .mt-track{box-shadow:none; background:rgba(255,255,255,.18)}

/* compliance rows */
.comp-row{display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 12px;
  border:1px solid var(--line); background:var(--surface); font-weight:650; font-size:.9rem}
.comp-row + .comp-row{margin-top:6px}
.comp-row.is-warn{background:var(--warn-bg); border-color:var(--warn-border)}
.comp-row.is-crit{background:var(--crit-soft); border-color:color-mix(in srgb,var(--crit) 32%,transparent)}
.comp-row .s{font:700 .64rem/1 var(--font-narrow); text-transform:uppercase; letter-spacing:.13em; color:var(--good)}
.comp-row.is-warn .s{color:var(--warm-2)}
.comp-row.is-crit .s{color:var(--crit)}

/* ---- 6 · admin workflow primitives -------------------------------------- */
.ops .flash svg{color:var(--good)}
.admin-error-summary ul{margin:5px 0 0; padding-left:18px}
.admin-error-summary li + li{margin-top:2px}

.ops-pagehead{display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin:0 0 22px}
.ops-pagehead-main{min-width:0}
.ops-pagehead h1{margin:2px 0 0!important; text-wrap:balance}
.ops-kicker{margin:0; color:var(--muted); font:700 .65rem/1.25 var(--font-narrow);
  letter-spacing:.15em; text-transform:uppercase}
.ops-page-description{max-width:720px; margin:7px 0 0; color:var(--muted); font-size:.9rem; line-height:1.5}
.ops-back{display:inline-flex; align-items:center; gap:4px; min-height:36px; margin:0 0 8px;
  color:var(--accent); font-size:.85rem; font-weight:700; text-decoration:none}
.ops-back:hover{text-decoration:underline}
.ops-page-meta{display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:9px}
.ops-page-actions{display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; flex-shrink:0}
.ops-page-actions .btn{display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:40px}
.record-pay-mode{color:var(--muted); font-size:.8rem}

.ops-jump{display:flex; align-items:center; gap:12px; min-width:0; padding-top:10px; border-top:1px solid var(--line)}
.ops-jump-label{flex:none; color:var(--muted); font:700 .62rem/1 var(--font-narrow);
  letter-spacing:.12em; text-transform:uppercase}
.ops-jump-links{display:flex; gap:4px; min-width:0; overflow-x:auto; scrollbar-width:thin}
.ops-jump a{display:inline-flex; align-items:center; min-height:36px; padding:6px 10px; color:var(--ink-soft);
  border-radius:3px; font-size:.8rem; font-weight:700; text-decoration:none; white-space:nowrap}
.ops-jump a:hover,.ops-jump a:focus-visible{background:var(--surface-2); color:var(--accent); text-decoration:none}

/* dashboard: current work first, reporting deliberately quieter */
.dayhead-actions{display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap}
.dayhead-actions .wk,.ops-page-meta .wk{font:700 .66rem/1 var(--font-narrow); text-transform:uppercase; letter-spacing:.14em; color:var(--muted)}
.section-alias{color:var(--ink-faint); font-size:.6rem; letter-spacing:.1em}
.section-alias::before{content:"·"; margin-right:8px}
.text-warn-strong{color:var(--warm-2); font-weight:700}
.seg{display:inline-flex; border:1px solid var(--line); border-radius:3px; overflow:hidden; background:var(--surface)}
.seg a{display:inline-flex; align-items:center; min-height:38px; padding:7px 14px; color:var(--ink-soft);
  border-right:1px solid var(--line); font-size:.82rem; font-weight:650; text-decoration:none}
.seg a:last-child{border-right:0}
.seg a.on{background:var(--navy); color:#fff}
.seg a:hover{text-decoration:none}
.datenav{display:inline-flex; align-items:center; gap:4px}
.datenav a{display:inline-flex; align-items:center; justify-content:center; min-width:38px; min-height:38px;
  padding:0 9px; border:1px solid var(--line); border-radius:3px; color:var(--ink-soft); background:var(--surface)}
.datenav a:hover{border-color:var(--navy); text-decoration:none}
.triage{display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:1px; margin-bottom:22px}
.tq{display:flex; flex-direction:column; gap:4px; min-width:0; min-height:92px; padding:14px 16px;
  background:var(--surface); box-shadow:0 0 0 1px var(--line); color:inherit; text-decoration:none}
.tq:hover{background:var(--surface-2); text-decoration:none}
.tq .n{color:var(--navy); font-family:var(--font-display); font-size:1.7rem; font-weight:800;
  font-variant-numeric:tabular-nums; letter-spacing:-.03em; line-height:1}
.tq .k{display:flex; align-items:center; gap:6px; color:var(--ink-soft); font-size:.8rem; font-weight:600}
.tq.crit{background:var(--crit-soft)}
.tq.crit .n{color:var(--crit)}
.tq.warn{background:var(--warn-bg)}
.tq.warn .n{color:var(--warm-2)}
.wkboard td.c{text-align:center; font-variant-numeric:tabular-nums}
.wkboard td.c a{display:block; padding:4px 0; font-weight:700}
.wkboard td.zero{color:var(--ink-faint)}
.dashboard-priorities{margin:8px 0 26px}
.dashboard-section{margin-top:26px}
.secondary-report{margin-top:30px; border:1px solid var(--line); background:var(--surface)}
.secondary-report>summary{display:flex; align-items:center; gap:10px; min-height:48px; padding:11px 14px;
  color:var(--ink-soft); cursor:pointer; font-weight:750; list-style:none}
.secondary-report>summary::-webkit-details-marker{display:none}
.secondary-report>summary::after{content:""; width:7px; height:7px; margin-left:auto; border-right:2px solid currentColor;
  border-bottom:2px solid currentColor; transform:rotate(45deg)}
.secondary-report[open]>summary::after{transform:rotate(225deg)}
.secondary-report-body{padding:4px 14px 18px}
.secondary-report-body .ops-section{margin-top:18px}

/* reservation queue */
.queue-scopes{display:flex; gap:4px; margin:-4px 0 14px; padding-bottom:2px; overflow-x:auto; scrollbar-width:thin}
.queue-scopes a{display:inline-flex; align-items:center; min-height:40px; padding:7px 13px; border:1px solid var(--line);
  background:var(--surface); color:var(--ink-soft); border-radius:3px; font-size:.82rem; font-weight:700;
  text-decoration:none; white-space:nowrap}
.queue-scopes a:hover{border-color:var(--line-strong); color:var(--accent); text-decoration:none}
.queue-scopes a.is-active{background:var(--navy); border-color:var(--navy); color:#fff}
.queue-toolbar{display:grid; grid-template-columns:minmax(0,1fr) 260px; gap:12px; align-items:start; margin-bottom:16px}
.filter-panel,.dispatch-panel{background:var(--surface); border:1px solid var(--line); border-radius:3px}
.filter-panel>summary,.dispatch-panel>summary{display:flex; align-items:center; gap:7px; min-height:44px; padding:9px 12px;
  color:var(--navy); cursor:pointer; font-size:.86rem; font-weight:750; list-style:none}
.filter-panel>summary::-webkit-details-marker,.dispatch-panel>summary::-webkit-details-marker{display:none}
.filter-panel>summary::after,.dispatch-panel>summary::after{content:""; width:7px; height:7px; margin-left:2px;
  border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg)}
.filter-panel[open]>summary::after,.dispatch-panel[open]>summary::after{transform:rotate(225deg)}
.filter-state,.dispatch-panel>summary span{margin-left:auto; color:var(--muted); font:700 .6rem/1 var(--font-narrow);
  letter-spacing:.1em; text-transform:uppercase}
.bk-filters{display:grid; grid-template-columns:minmax(170px,1.4fr) repeat(3,minmax(130px,1fr)); gap:10px;
  align-items:end; margin:0; padding:12px; border-top:1px solid var(--line); background:var(--surface-2)}
.bk-filters .fld{margin:0}
.filter-actions{display:flex; gap:6px; grid-column:1/-1}
.dispatch-panel-body{display:flex; flex-direction:column; gap:8px; padding:0 12px 12px; border-top:1px solid var(--line)}
.dispatch-panel-body p{margin:10px 0 2px; color:var(--muted); font-size:.82rem; line-height:1.5}
.dispatch-panel-body form{margin:0}
.queue-help{display:flex; align-items:center; gap:6px; margin:0 0 8px; color:var(--muted); font-size:.78rem}
.booking-queue{min-width:1040px}
.booking-queue caption,.candidate-table caption,.history-card caption{padding:10px 12px; color:var(--muted);
  background:var(--surface); border-bottom:1px solid var(--line); font:700 .64rem/1.3 var(--font-narrow);
  letter-spacing:.1em; text-align:left; text-transform:uppercase}
.booking-queue .queue-select{width:40px; text-align:center}
.bk-check{width:18px!important; height:18px; margin:0; cursor:pointer}
.queue-row.priority-crit{box-shadow:inset 3px 0 0 var(--crit)}
.queue-row.priority-warn{box-shadow:inset 3px 0 0 var(--warm)}
.queue-row.priority-live{box-shadow:inset 3px 0 0 var(--accent)}
.queue-priority{max-width:155px}
.queue-priority .pill{white-space:normal}
.queue-identity{min-width:160px}
.queue-identity>*{display:block}
.queue-reference{margin-bottom:4px; color:var(--accent); font:800 .72rem/1 var(--font-narrow);
  letter-spacing:.08em; text-decoration:none; text-transform:uppercase}
.queue-identity strong{color:var(--ink); font-size:.88rem}
.queue-identity span,.queue-date span,.queue-state>span{margin-top:3px; color:var(--muted); font-size:.76rem}
.queue-route{min-width:140px}
.queue-route>*{display:block}
.queue-route span{margin:2px 0; color:var(--ink-faint)}
.queue-date{min-width:130px}
.queue-date>*{display:block}
.queue-amount{font-weight:750}
.queue-state{min-width:150px}
.queue-state>*{display:flex; width:max-content; max-width:170px}
.queue-actions-heading{width:82px}
.row-actions{position:relative}
.row-actions>summary{display:inline-flex; align-items:center; justify-content:center; gap:5px; min-width:72px; min-height:38px;
  padding:6px 9px; border:1px solid var(--line-strong); border-radius:3px; color:var(--ink-soft);
  background:var(--surface); cursor:pointer; font-size:.8rem; font-weight:700; list-style:none}
.row-actions>summary::-webkit-details-marker{display:none}
.row-actions[open]>summary{border-color:var(--accent); color:var(--accent)}
.row-actions-pop{display:grid; gap:9px; width:230px; margin-top:8px; padding:10px; border:1px solid var(--line);
  background:var(--surface-2); box-shadow:var(--shadow-sm)}
.row-actions-pop form{display:grid; gap:6px; margin:0; padding-top:9px; border-top:1px solid var(--line)}
.row-actions-pop label{margin:0; font:700 .62rem/1 var(--font-narrow); letter-spacing:.1em; text-transform:uppercase}
.row-actions-pop select{min-width:0}
.bulkbar{position:sticky; bottom:10px; z-index:18; display:none; align-items:center; gap:8px; flex-wrap:wrap;
  margin-top:12px; padding:10px 12px; color:#fff; background:var(--navy); border:1px solid var(--navy-900); box-shadow:var(--shadow)}
.bulkbar.on{display:flex}
.bulkbar form{display:inline-flex; margin:0}
.bulk-count{margin-right:auto; color:var(--on-navy-1); font:700 .68rem/1 var(--font-narrow);
  letter-spacing:.12em; text-transform:uppercase}
.bulk-count strong{color:#fff; font-size:.88rem}
.queue-pagination{margin-top:16px}

/* reservation workspace */
.booking-context{position:sticky; top:57px; z-index:14; margin:0 0 28px; padding:10px 12px;
  background:color-mix(in srgb,var(--paper) 94%,transparent); border:1px solid var(--line); backdrop-filter:blur(9px)}
.booking-context-facts{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; margin:0 0 2px; background:var(--line)}
.booking-context-facts>div{min-width:0; padding:8px 10px; background:var(--surface)}
.booking-context-facts dt{color:var(--muted); font:700 .58rem/1 var(--font-narrow); letter-spacing:.12em; text-transform:uppercase}
.booking-context-facts dd{margin:4px 0 0; overflow:hidden; color:var(--ink); font-size:.82rem; font-weight:700;
  text-overflow:ellipsis; white-space:nowrap}
.record-section{scroll-margin-top:170px; margin:0 0 40px}
.record-section-head{display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:12px;
  padding-bottom:10px; border-bottom:1px solid var(--line)}
.record-section-head>div{display:flex; align-items:baseline; gap:9px}
.record-section-head h2{margin:0; color:var(--navy); font:800 1.15rem/1.2 var(--font-display); letter-spacing:-.015em}
.record-section-head>p{max-width:440px; margin:0; color:var(--muted); font-size:.82rem; text-align:right}
.record-grid{display:grid; gap:12px; align-items:start}
.record-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.record-grid-dispatch{grid-template-columns:minmax(0,1fr) 280px}
.record-grid-finance{grid-template-columns:minmax(0,1fr) minmax(260px,.55fr)}
.record-card{min-width:0; padding:16px; background:var(--surface); border:1px solid var(--line); border-radius:3px}
.record-card-head{display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:13px}
.record-card-head h3{margin:0; color:var(--navy); font-size:.96rem; font-weight:780}
.record-card-head p{margin:3px 0 0; color:var(--muted); font-size:.78rem}
.record-card-head>svg{flex:none; color:var(--muted)}
.record-card-head form{margin:0}
.record-list{margin:0}
.record-list>div{display:grid; grid-template-columns:minmax(90px,.65fr) minmax(0,1fr); gap:12px; padding:8px 0;
  border-bottom:1px solid var(--line-soft)}
.record-list>div:last-child{border-bottom:0}
.record-list dt{color:var(--muted); font-size:.78rem}
.record-list dd{margin:0; overflow-wrap:anywhere; color:var(--ink); font-size:.86rem; font-weight:650; text-align:right}
.record-list-compact{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:12px; background:var(--line)}
.record-list-compact>div{display:block; padding:9px 10px; border:0; background:var(--surface-2)}
.record-list-compact dd{margin-top:4px; text-align:left}
.record-disclosure{margin-top:12px; padding-top:10px; border-top:1px solid var(--line)}
.record-disclosure>summary{display:flex; align-items:center; min-height:36px; color:var(--accent);
  cursor:pointer; font-size:.82rem; font-weight:700}
.record-form{display:grid; gap:2px; margin:12px 0 0}
.record-form .fld{margin-bottom:10px}
.record-form .btn{justify-self:start}
.route-stack{display:grid; gap:10px}
.route-stack>div{display:grid; grid-template-columns:28px 1fr; gap:9px; align-items:start; position:relative}
.route-stack>div:first-child::after{content:""; position:absolute; top:25px; bottom:-14px; left:13px; width:1px; background:var(--line-strong)}
.route-marker{position:relative; z-index:1; display:grid; place-items:center; width:28px; height:28px;
  color:#fff; background:var(--navy); border-radius:3px; font:800 .65rem/1 var(--font-narrow)}
.route-stack p{margin:0; color:var(--ink-soft); font-size:.85rem; line-height:1.45}
.route-stack p strong{display:block; color:var(--ink); font-size:.78rem}
.record-callout{display:flex; align-items:flex-start; gap:9px; margin-top:10px; padding:10px; background:var(--surface-2); border-left:3px solid var(--accent)}
.record-callout>svg{flex:none; margin-top:1px; color:var(--accent)}
.record-callout strong{font-size:.8rem}
.record-callout p{margin:2px 0 0; color:var(--ink-soft); font-size:.82rem; line-height:1.45}
.candidate-card{min-width:0}
.candidate-table{border:0}
.candidate-reasons{display:block; margin-top:4px; color:var(--muted); font-size:.76rem}
.candidate-flags{display:inline-flex; gap:4px; margin-left:5px}
.score-badge{display:inline-grid; place-items:center; min-width:34px; min-height:28px; padding:0 7px;
  color:var(--navy); background:var(--accent-soft); border-radius:3px; font-weight:800}
.status-control-panel{background:var(--surface-2)}
.status-control-panel .record-form .btn{justify-self:stretch}
.form-note{margin:10px 0 0; color:var(--muted); font-size:.76rem; line-height:1.45}
.danger-zone{display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:12px; padding:14px 16px;
  background:var(--crit-soft); border:1px solid color-mix(in srgb,var(--crit) 34%,var(--line))}
.danger-zone h3{margin:3px 0; color:var(--crit); font-size:.96rem}
.danger-zone p{margin:0; color:var(--ink-soft); font-size:.82rem}
.danger-zone form{margin:0; flex:none}
.ops .btn-danger{background:var(--crit); border-color:var(--crit); color:#fff}
.ops .btn-danger:hover{background:color-mix(in srgb,var(--crit) 86%,#000); border-color:color-mix(in srgb,var(--crit) 86%,#000)}
.external-message-panel{border-top:3px solid var(--accent)}
.internal-note-panel{border-top:3px solid var(--warm); background:color-mix(in srgb,var(--warn-bg) 42%,var(--surface))}
.message-compose{margin-top:14px; padding-top:12px; border-top:1px solid var(--line)}
.message-compose .fld{margin-bottom:8px}
.message-compose .btn{display:inline-flex; align-items:center; gap:6px}
.confirmation-resend{margin:10px 0 0}
.internal-notes{max-height:360px; margin:0 0 12px; padding:0; overflow-y:auto; list-style:none}
.internal-notes li{padding:9px 0; border-bottom:1px solid color-mix(in srgb,var(--warm) 20%,var(--line))}
.internal-notes li:first-child{padding-top:0}
.internal-notes p{margin:0; color:var(--ink); font-size:.86rem; line-height:1.45}
.internal-notes span{display:block; margin-top:4px; color:var(--muted); font:700 .62rem/1 var(--font-narrow);
  letter-spacing:.08em; text-transform:uppercase}
.internal-notes .is-empty{color:var(--muted); font-size:.84rem}
.evidence-alerts{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:12px; margin-bottom:12px}
.claim-panel{background:var(--crit-soft); border-color:color-mix(in srgb,var(--crit) 28%,var(--line))}
.incident-panel{border-left:3px solid var(--crit)}
.claim-panel>p,.incident-panel>p{margin:0 0 12px; color:var(--ink-soft); font-size:.86rem}
.evidence-gallery{display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); gap:10px}
.evidence-item{display:flex; min-height:126px; flex-direction:column; color:var(--ink-soft); border:1px solid var(--line);
  background:var(--surface-2); font-size:.76rem; font-weight:700; text-decoration:none}
.evidence-item:hover{border-color:var(--accent); color:var(--accent); text-decoration:none}
.evidence-item img{width:100%; height:100px; object-fit:cover}
.evidence-item span{padding:8px}
.evidence-document{align-items:center; justify-content:center; gap:4px; color:var(--accent)}
.empty-inline{display:flex; align-items:center; gap:7px; margin:0; padding:16px; color:var(--muted); background:var(--surface-2); font-size:.84rem}
.finance-summary{border-top:3px solid var(--navy)}
.finance-list{margin:0}
.finance-list>div{display:flex; justify-content:space-between; gap:20px; padding:9px 0; border-bottom:1px solid var(--line-soft)}
.finance-list dt{color:var(--muted); font-size:.82rem}
.finance-list dd{margin:0; font-size:.86rem; font-weight:700; text-align:right}
.finance-list .is-total{padding-top:0}
.finance-list .is-total dt,.finance-list .is-total dd{color:var(--navy); font-size:.95rem; font-weight:800}
.finance-actions{background:var(--crit-soft); border-color:color-mix(in srgb,var(--crit) 25%,var(--line))}
.finance-actions>p{margin:0; color:var(--ink-soft); font-size:.82rem; line-height:1.5}
.finance-actions .record-form .btn{justify-self:stretch}
.refund-result{display:flex; justify-content:space-between; gap:10px; margin-top:12px; padding:10px;
  color:var(--good); background:var(--good-soft); font-size:.84rem}
.history-card{margin-top:12px}
.history-card .tbl-wrap{border:0}
.event-data summary{min-height:32px; color:var(--accent); cursor:pointer; font-size:.78rem; font-weight:700}
.event-data code{display:block; max-width:440px; padding:7px; overflow-wrap:anywhere; color:var(--ink-soft);
  background:var(--surface-2); font-size:.72rem; white-space:normal}

/* ---- 7 · responsive ------------------------------------------------------ */
@media (max-width:1100px){
  .ops-dash{grid-template-columns:minmax(0,1fr)}
  .ops-rail{position:static; flex-direction:row; flex-wrap:wrap}
  .ops-rail > *{flex:1 1 260px}
  .bk-filters{grid-template-columns:repeat(2,minmax(140px,1fr))}
  .record-grid-dispatch{grid-template-columns:minmax(0,1fr) 250px}
}
@media (max-width:860px){
  .admin-shell{grid-template-columns:1fr}
  .side{position:fixed; inset:0 auto 0 0; width:min(86vw,300px); height:100dvh; z-index:70;
    border-right:1px solid #000; border-bottom:0; padding-top:62px; transform:translateX(-102%);
    transition:transform .24s var(--ease-out-quint); box-shadow:var(--shadow-lg)}
  .side[data-open="true"]{transform:translateX(0)}
  .side .drawer-close{display:inline-flex; position:absolute; top:12px; right:12px; align-items:center;
    justify-content:center; min-width:44px; min-height:38px; padding:8px 10px; border:1px solid rgba(255,255,255,.22);
    border-radius:3px; background:rgba(255,255,255,.1); color:#fff; font:700 .74rem/1 var(--font); cursor:pointer}
  .admin-nav-toggle{display:inline-flex; position:relative; z-index:72}
  .topstrip{min-height:58px; padding:8px 12px; flex-wrap:nowrap}
  .topstrip .search{flex:1; min-width:0}
  .topstrip .search input{min-width:0; width:100%}
  .idmenu .who{display:none}
  .ops-admin .nav-scrim{position:fixed; inset:0; z-index:69; background:rgba(5,15,24,.55); opacity:0;
    pointer-events:none; transition:opacity .2s ease; backdrop-filter:blur(1px)}
  .ops-admin .nav-scrim[data-open="true"]{opacity:1; pointer-events:auto}
}
@media (max-width:820px){
  /* partner console: slide-in drawer instead of a wrapping nav row */
  .topbar .nav-toggle{display:inline-flex}
  .topbar nav{position:fixed; top:0; right:0; bottom:0; left:auto; width:min(82vw,300px); flex-direction:column;
    gap:2px; background:var(--navy-900); border-left:1px solid #000; padding:70px 10px 20px;
    transform:translateX(102%); transition:transform .26s var(--ease-out-quint); z-index:60; overflow-y:auto}
  .topbar nav[data-open="true"]{transform:translateX(0)}
  .topbar nav .drawer-close{display:inline-flex; position:absolute; top:14px; right:14px; align-items:center;
    justify-content:center; min-width:44px; min-height:40px; padding:8px 10px; border:1px solid rgba(255,255,255,.22);
    border-radius:3px; background:rgba(255,255,255,.1); color:#fff; font:700 .74rem/1 var(--font); cursor:pointer}
  .topbar nav a{padding:12px 13px; font-size:.95rem}
  .topbar .nav-scrim{position:fixed; inset:0; z-index:59; background:rgba(5,15,24,.5); opacity:0;
    pointer-events:none; transition:opacity .2s ease}
  .topbar .nav-scrim[data-open="true"]{opacity:1; pointer-events:auto}
  .ops-portal .wrap{padding-inline:16px}
  .queue-toolbar{grid-template-columns:1fr}
  .record-grid-2,.record-grid-dispatch,.record-grid-finance{grid-template-columns:1fr}
  .booking-context-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .booking-context{position:static}
  .record-section{scroll-margin-top:70px}
}
@media (max-width:720px){
  .ops-pagehead{align-items:flex-start; flex-direction:column; gap:12px}
  .ops-page-actions{width:100%; justify-content:flex-start}
  .dayhead-actions{justify-content:flex-start}
  .record-section-head{align-items:flex-start; flex-direction:column; gap:5px}
  .record-section-head>p{text-align:left}
  .booking-queue-wrap{overflow:visible; border:0; background:transparent}
  .booking-queue{display:block; min-width:0}
  .booking-queue caption{display:block; border:1px solid var(--line)}
  .booking-queue thead{display:none}
  .booking-queue tbody{display:grid; gap:10px; margin-top:8px}
  .booking-queue tr{position:relative; display:grid; grid-template-columns:1fr 1fr; gap:0;
    padding:10px; background:var(--surface); border:1px solid var(--line); border-radius:3px}
  .booking-queue td{display:block; min-width:0; max-width:none; padding:9px 8px; border:0}
  .booking-queue td::before{content:attr(data-label); display:block; margin-bottom:5px; color:var(--muted);
    font:700 .58rem/1 var(--font-narrow); letter-spacing:.11em; text-transform:uppercase}
  .booking-queue tbody tr:hover td{background:transparent}
  .booking-queue .queue-select{position:absolute; top:14px; right:13px; z-index:2; width:auto; padding:0}
  .booking-queue .queue-select::before{display:none}
  .booking-queue .queue-priority,.booking-queue .queue-identity,.booking-queue .queue-route,
  .booking-queue .queue-state,.booking-queue .queue-actions{grid-column:1/-1}
  .booking-queue .queue-priority{padding-right:40px}
  .queue-state>*{max-width:none}
  .row-actions>summary{width:100%; min-height:44px}
  .row-actions-pop{width:100%}
  .bulkbar{bottom:0; margin-inline:-16px; padding:10px 16px}
  .bulk-count{width:100%; margin:0}
}
@media (max-width:560px){
  .topbar .in{gap:10px}
  .topbar .who b{font-size:.88rem}
  .data-2{grid-template-columns:1fr}
  .topstrip .site-preview,.topstrip .mode-chip{display:none}
  .ops-admin .wrap{padding-inline:14px}
  .topstrip .search input{font-size:16px}
  .bk-filters{grid-template-columns:1fr}
  .booking-context-facts{grid-template-columns:1fr 1fr}
  .booking-context-facts dd{white-space:normal}
  .ops-jump{align-items:flex-start; flex-direction:column; gap:7px}
  .ops-jump-links{width:100%}
  .record-list-compact{grid-template-columns:1fr}
  .danger-zone{align-items:stretch; flex-direction:column}
  .danger-zone form,.danger-zone .btn{width:100%}
  .booking-queue tr{grid-template-columns:1fr}
  .booking-queue .queue-date,.booking-queue .queue-amount{grid-column:1}
  .finance-list>div{align-items:flex-start; flex-direction:column; gap:3px}
  .finance-list dd{text-align:left}
}

/* Dispatch board: the remaining inline values position data on the time axis. */
.board{overflow:hidden; background:var(--surface); border:1px solid var(--line); border-radius:3px}
.board-top{display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap;
  padding:10px 14px; background:var(--surface-2); border-bottom:1px solid var(--line)}
.board-top .ttl{color:var(--muted); font:700 .68rem/1 var(--font-narrow); letter-spacing:.15em; text-transform:uppercase}
.bd-legend{display:flex; align-items:center; gap:14px; flex-wrap:wrap}
.bd-legend span{display:inline-flex; align-items:center; gap:6px; color:var(--muted);
  font:700 .62rem/1 var(--font-narrow); letter-spacing:.12em; text-transform:uppercase}
.bd-legend i{display:inline-block; width:11px; height:11px; border-radius:2px}
.lg-confirmed{background:var(--accent)}
.lg-running{background:var(--gold)}
.lg-pending{background:var(--tint-050); border:1.5px dashed var(--line-strong)}
.lg-off{background:repeating-linear-gradient(45deg,#eef2f6,#eef2f6 3px,#dce4ec 3px,#dce4ec 6px)}
.bd-scroll{overflow-x:auto}
.bd-grid{position:relative; min-width:760px}
.bd-r{display:grid; grid-template-columns:190px minmax(0,1fr); border-top:1px solid var(--line)}
.bd-r:first-child{border-top:0}
.bd-ruler{background:var(--surface-2)}
.bd-ruler .bd-lane{height:30px}
.bd-who{min-width:0; padding:10px 12px; border-right:1px solid var(--line)}
.bd-who b{display:block; overflow-wrap:anywhere; color:var(--navy); font-size:.87rem; font-weight:750; line-height:1.25}
.bd-who span{display:block; margin-top:3px; color:var(--muted); font:600 .62rem/1.35 var(--font-narrow);
  letter-spacing:.08em; text-transform:uppercase}
.bd-who .warnline{color:var(--crit); letter-spacing:.05em}
.bd-lane{position:relative; padding:7px 0}
.bd-ticks{position:absolute; inset:0; pointer-events:none}
.bd-ticks i{position:absolute; top:0; bottom:0; width:1px; background:var(--line-soft,#eef2f6)}
.bd-hour{position:absolute; top:9px; color:var(--muted); font:700 .6rem/1 var(--font-narrow);
  letter-spacing:.1em; white-space:nowrap; transform:translateX(-50%)}
.bd-hour.first{left:6px!important; transform:none}
.bd-hour.last{margin-left:-4px; transform:translateX(-100%)}
.bblk{position:absolute; display:block; min-height:38px; padding:6px 9px; overflow:hidden; box-sizing:border-box;
  color:#fff; background:var(--accent); border-radius:2px; text-decoration:none}
.bblk:hover{filter:brightness(1.06); text-decoration:none}
.bblk .ref{display:block; overflow:hidden; font-size:.8rem; font-weight:750; line-height:1.2; text-overflow:ellipsis; white-space:nowrap}
.bblk .mt{display:block; margin-top:2px; overflow:hidden; font:700 .58rem/1.3 var(--font-narrow);
  letter-spacing:.09em; text-overflow:ellipsis; text-transform:uppercase; white-space:nowrap; opacity:.88}
.bblk.state-running{color:#22160a; background:var(--gold)}
.bblk.state-done{background:var(--good)}
.bblk.state-pending{color:var(--navy); background:var(--tint-050); border:1.5px dashed color-mix(in srgb,var(--navy) 34%,transparent)}
.bblk.is-flex{border-width:1.5px; border-style:dashed}
.bblk.state-confirmed.is-flex,.bblk.state-running.is-flex,.bblk.state-done.is-flex{border-color:rgba(255,255,255,.7)}
.bblk.is-conflict{outline:2px solid var(--crit); outline-offset:-2px}
.bd-r.is-orphan .bd-who{background:var(--warn-bg)}
.bd-r.is-off .bd-lane{background:repeating-linear-gradient(45deg,#f5f8fa,#f5f8fa 4px,#e6edf3 4px,#e6edf3 8px)}
.bd-off-note{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; padding:0 10px;
  color:var(--muted); font:700 .62rem/1 var(--font-narrow); letter-spacing:.14em; text-align:center; text-transform:uppercase}
.bd-now{position:absolute; top:0; bottom:0; z-index:3; width:2px; background:var(--crit); pointer-events:none}
.bd-now::before{position:absolute; top:0; left:-3px; width:8px; height:8px; content:""; background:var(--crit); border-radius:50%}
.bd-nowlab{position:absolute; top:-1px; z-index:4; padding:3px 6px; color:#fff; background:var(--crit);
  border-radius:2px; font:700 .58rem/1 var(--font-narrow); letter-spacing:.1em; transform:translateX(-50%); pointer-events:none}

/* Step-up authentication before financial exports and mutations. */
.stepup{width:100%; max-width:560px; margin:34px auto}
.stepup-card{padding:26px; background:var(--surface); border:1px solid var(--line); border-top:3px solid var(--warm)}
.stepup .mark{display:flex; align-items:center; gap:10px; margin:0 0 12px; color:var(--warm-2)}
.stepup .why{margin:0 0 20px; color:var(--ink-soft); line-height:1.55}
.stepup .why strong{color:var(--ink); font-weight:650}
.stepup-actions{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:18px}
.stepup .note{margin:18px 0 0; padding-top:14px; color:var(--ink-faint); border-top:1px solid var(--line); font-size:.82rem}

/* ---- 8 · admin secondary workspaces (2026-08) -------------------------- */
/* Shared language for support, finance, partner, growth, and configuration
   screens. Page templates provide intent; this layer owns spacing and layout. */
.ops-admin .admin-workspace{display:grid; gap:18px}
.ops-admin .admin-workspace > *{min-width:0}
.ops-admin .admin-workspace .ops-pagehead{margin-bottom:0}
.admin-panel{min-width:0; padding:16px; background:var(--surface); border:1px solid var(--line); border-radius:3px}
.admin-panel.is-warn{background:var(--warn-bg); border-color:var(--warn-border)}
.admin-panel.is-sensitive{border-left:3px solid var(--crit)}
.admin-panel-head{display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:13px}
.admin-panel-head h2,.admin-panel-head h3{margin:0; color:var(--navy); font-size:1rem}
.admin-panel-head p{max-width:620px; margin:4px 0 0; color:var(--muted); font-size:.82rem; line-height:1.45}
.admin-panel-head > svg{flex:none; color:var(--muted)}
.admin-panel-title{display:block; margin:0 0 12px; color:var(--navy); font-size:.95rem}
.admin-help{margin:0; color:var(--muted); font-size:.82rem; line-height:1.5}
.admin-help + .admin-help{margin-top:6px}
.admin-help.is-sensitive{display:flex; align-items:flex-start; gap:7px; padding:10px 12px; color:var(--ink-soft);
  background:var(--warn-bg); border-left:3px solid var(--warm)}
.admin-help.is-sensitive svg{flex:none; margin-top:1px; color:var(--warm-2)}
.admin-note{margin:0; padding:11px 13px; color:var(--ink-soft); background:var(--surface-2);
  border-left:3px solid var(--line-strong); font-size:.82rem; line-height:1.5}
.admin-note.is-warn{background:var(--warn-bg); border-color:var(--warm)}
.admin-note.is-crit{background:var(--crit-soft); border-color:var(--crit)}
.admin-form-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; align-items:end; margin:0}
.admin-form-grid.is-compact{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
.admin-form-grid.is-wide{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.admin-form-grid .span-all{grid-column:1/-1}
.admin-field{display:flex; flex-direction:column; gap:5px; min-width:0}
.admin-field > label,.admin-field > .label{color:var(--ink-soft); font:700 .65rem/1.2 var(--font-narrow);
  letter-spacing:.09em; text-transform:uppercase}
.admin-field input,.admin-field select,.admin-field textarea{width:100%; min-width:0}
.admin-check{display:inline-flex; align-items:center; gap:8px; min-height:38px; color:var(--ink-soft); font-size:.84rem; font-weight:650}
.admin-check input{width:18px!important; height:18px; margin:0; flex:none}
.admin-actions,.admin-row-actions{display:flex; align-items:center; gap:7px; flex-wrap:wrap}
.admin-actions form,.admin-row-actions form{margin:0}
.admin-row-actions{min-width:150px}
.admin-row-actions .btn{min-height:36px}
.admin-inline-form{display:flex; align-items:center; gap:7px; flex-wrap:wrap; margin:0}
.admin-inline-form > input,.admin-inline-form > select{min-width:100px; width:auto}
.admin-inline-form .is-short{width:88px}
.admin-inline-form .is-medium{width:150px}
.admin-filterbar{display:flex; align-items:flex-end; gap:10px; flex-wrap:wrap; padding:12px 14px;
  background:var(--surface); border:1px solid var(--line); border-radius:3px}
.admin-filterbar .fld,.admin-filterbar .admin-field{margin:0}
.admin-filterbar > input[type="search"]{width:min(100%,340px)}
.filter-summary{margin:-8px 0 0; color:var(--muted); font-size:.78rem}
.filter-summary strong{color:var(--ink-soft)}
.ops-pagination{margin-top:14px}
.ops-table-note{margin:9px 0 0; color:var(--muted); font-size:.78rem; line-height:1.45}
.ops-table-note code{font-size:.75rem}
.ops .admin-table td{overflow-wrap:anywhere}
.ops .admin-table .cell-quiet{color:var(--muted); font-size:.8rem}
.ops .admin-table .cell-nowrap{white-space:nowrap}
.ops .admin-table .cell-summary{max-width:300px; line-height:1.4}
.ops .admin-table .cell-actions{min-width:150px}
.ops .admin-table form{margin:0}
.admin-empty-row{padding:24px!important; color:var(--muted); text-align:center}
.admin-code{display:inline-block; max-width:240px; overflow:hidden; color:var(--ink-soft); font-size:.72rem;
  text-overflow:ellipsis; white-space:nowrap; vertical-align:middle}
.admin-color{display:inline-flex; align-items:center; gap:7px}
.admin-color input{width:28px!important; height:28px; padding:2px; pointer-events:none}
.admin-kpis{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:1px}
.admin-kpi{padding:14px 16px; background:var(--surface); box-shadow:0 0 0 1px var(--line)}
.admin-kpi strong{display:block; color:var(--navy); font:800 1.4rem/1.1 var(--font-display); font-variant-numeric:tabular-nums}
.admin-kpi span{display:block; margin-top:5px; color:var(--muted); font:700 .62rem/1.2 var(--font-narrow);
  letter-spacing:.11em; text-transform:uppercase}
.admin-split{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:start}
.admin-stack{display:grid; gap:14px}
.admin-definition{margin:0}
.admin-definition > div{display:flex; justify-content:space-between; gap:20px; padding:9px 0; border-bottom:1px solid var(--line-soft)}
.admin-definition > div:last-child{border-bottom:0}
.admin-definition dt{color:var(--muted); font-size:.82rem}
.admin-definition dd{margin:0; color:var(--ink); font-weight:700; text-align:right; overflow-wrap:anywhere}
.admin-list{margin:7px 0 0; padding-left:18px; color:var(--ink-soft); font-size:.84rem}
.admin-list li + li{margin-top:5px}
.admin-section-title{display:flex; align-items:center; gap:9px; margin:8px 0 11px; color:var(--navy); font-size:1.05rem}
.admin-section-title::after{content:""; flex:1; height:1px; background:var(--line)}
.privacy-label{display:inline-flex; align-items:center; gap:5px; color:var(--muted); font:700 .62rem/1 var(--font-narrow);
  letter-spacing:.09em; text-transform:uppercase}
.privacy-label svg{color:var(--warm-2)}
.admin-media{display:flex; gap:5px; flex-wrap:wrap; margin-top:7px}
.admin-media a{display:block; border:1px solid var(--line); border-radius:3px; overflow:hidden}
.admin-media a:hover{border-color:var(--accent)}
.admin-media img{display:block; width:52px; height:52px; object-fit:cover}
.claim-form{display:grid; grid-template-columns:minmax(130px,.7fr) minmax(170px,1fr) 118px auto; gap:7px; align-items:center; min-width:580px}
.claim-form .claim-charge{display:flex; flex-direction:column; gap:3px}
.claim-form .claim-charge small{color:var(--muted); font-size:.7rem}
.rib-state{display:inline-flex; align-items:center; gap:5px; color:var(--muted); font-size:.72rem}
.rib-state.is-missing{color:var(--crit); font-weight:700}
.admin-rating{display:inline-flex; align-items:center; gap:6px; color:var(--warm-2); white-space:nowrap}
.admin-rating-reply{display:block; margin-top:5px; color:var(--muted); font-size:.75rem}
.admin-rating-reply svg{vertical-align:-2px}
.admin-timeline-list{display:grid; gap:7px}
.admin-timeline-row{display:flex; justify-content:space-between; gap:14px; padding:8px 0; border-bottom:1px solid var(--line-soft)}
.admin-timeline-row:last-child{border-bottom:0}
.admin-timeline-row strong{font-variant-numeric:tabular-nums; white-space:nowrap}
.partner-docs{display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-top:6px}
.partner-doc-link{display:inline-flex; align-items:center; gap:4px; color:var(--accent); font-size:.7rem; font-weight:700}
.partner-compliance{font-size:.68rem!important}
.partner-expiry{display:block; margin-top:3px; color:var(--muted); font-size:.72rem}
.partner-expiry.is-expired{color:var(--crit); font-weight:700}
.partner-list-form{min-width:170px}
.partner-section{display:grid; gap:10px}
.partner-compliance-grid{display:flex; gap:8px; flex-wrap:wrap; margin-top:9px}
.partner-compliance-grid .pill{display:inline-flex; align-items:center; gap:4px; font-size:.72rem}
.partner-finance-row,.partner-review-row{display:flex; align-items:flex-start; justify-content:space-between; gap:14px;
  padding:9px 0; border-bottom:1px solid var(--line-soft)}
.partner-finance-row:last-child,.partner-review-row:last-child{border-bottom:0}
.partner-finance-row strong{white-space:nowrap; font-variant-numeric:tabular-nums}
.partner-review-row .rating{flex:none}
.partner-review-row p{margin:0; color:var(--ink-soft); font-size:.84rem; line-height:1.45}
.ops .state-good{color:var(--good)}
.ops .state-warn{color:var(--warm-2)}
.ops .state-crit{color:var(--crit)}
.ops .icon-good{color:var(--good)}
.ops .icon-warn{color:var(--warm-2)}
.ops .icon-crit{color:var(--crit)}

/* Analytics and financial truth */
.analytics-period{display:flex; justify-content:flex-end}
.analytics-card,.finance-chart{min-width:0; padding:16px 18px; background:var(--surface); border:1px solid var(--line)}
.analytics-card{display:grid; gap:13px}
.analytics-card h2,.finance-chart h2{margin:0; color:var(--navy); font-size:1rem}
.analytics-rank{display:grid; gap:10px}
.analytics-rank-row{display:grid; grid-template-columns:minmax(120px,190px) minmax(100px,1fr) 76px; gap:10px; align-items:center; font-size:.85rem}
.analytics-rank-row > a{color:inherit; text-decoration:none}
.analytics-rank-row .value{text-align:right; font-weight:750; font-variant-numeric:tabular-nums}
.analytics-rank-row .value small{color:var(--muted); font-weight:500}
.analytics-meter{display:block; width:100%; height:14px; appearance:none; border:0; background:var(--surface-2); border-radius:2px; overflow:hidden}
.analytics-meter::-webkit-meter-bar{height:14px; background:var(--surface-2); border:0; border-radius:2px}
.analytics-meter::-webkit-meter-optimum-value{background:var(--accent)}
.analytics-meter::-moz-meter-bar{background:var(--accent)}
.analytics-meter.is-navy::-webkit-meter-optimum-value{background:var(--navy-700,#14385a)}
.analytics-meter.is-navy::-moz-meter-bar{background:var(--navy-700,#14385a)}
.finance-chart{margin:0}
.finance-chart svg{display:block; width:100%; height:190px; overflow:visible}
.finance-chart-range{display:flex; justify-content:space-between; margin-top:6px}
.finance-legend{display:flex; gap:16px; flex-wrap:wrap; margin-top:12px}
.finance-legend span{display:inline-flex; align-items:center; gap:6px; color:var(--muted);
  font:700 .62rem/1 var(--font-narrow); letter-spacing:.12em; text-transform:uppercase}
.finance-legend i{width:11px; height:11px; border-radius:2px}
.finance-legend .partner{background:var(--navy-700,#14385a)}
.finance-legend .commission{background:var(--gold)}
.finance-legend .refund{background:var(--crit)}
.finance-table .month{text-transform:capitalize}
.finance-table tfoot tr{border-top:2px solid var(--line-strong); font-weight:800}
.finance-liabilities{margin-top:8px}

/* Daily printable dispatch sheet */
.run-sheet-groups{display:grid; gap:26px}
.rs-grp{break-inside:avoid}
.rs-grp > h2{margin:0 0 2px; color:var(--navy); font-size:1.05rem}
.rs-grp > .sub{margin-bottom:10px; color:var(--muted); font:700 .64rem/1.4 var(--font-narrow);
  letter-spacing:.12em; text-transform:uppercase}
.rs-job{margin-bottom:10px; padding:14px 16px; break-inside:avoid; background:var(--surface); border:1px solid var(--line)}
.rs-job h3{display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; margin:0 0 8px; font-size:.98rem}
.rs-job h3 .slot{color:var(--warm-2); font:700 .64rem/1 var(--font-narrow); letter-spacing:.13em; text-transform:uppercase}
.rs-cols{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line)}
.rs-cols > div{min-width:0; padding:9px 12px; background:var(--surface)}
.rs-cols .k{color:var(--muted); font:700 .6rem/1.2 var(--font-narrow); letter-spacing:.13em; text-transform:uppercase}
.rs-cols .v{margin-top:3px; overflow-wrap:anywhere; font-weight:650}
.rs-cols .v small{display:block; color:var(--ink-soft); font-size:.8rem; font-weight:500}
.rs-meta{display:flex; gap:18px; flex-wrap:wrap; margin-top:10px; font-size:.85rem}
.rs-meta b{font-variant-numeric:tabular-nums}
.rs-note{margin-top:10px; padding:9px 12px; background:var(--warn-bg); border:1px solid var(--warn-border); font-size:.86rem}
.rs-items{margin-top:10px; columns:2; column-gap:22px; color:var(--ink-soft); font-size:.84rem}
.rs-items li{break-inside:avoid}

@media (max-width:900px){
  .admin-split{grid-template-columns:1fr}
  .claim-form{min-width:660px}
}
@media (max-width:720px){
  .bd-r{grid-template-columns:130px minmax(0,1fr)}
  .stepup{margin:10px auto}
  .stepup-card{padding:18px}
  .stepup-actions{align-items:stretch; flex-direction:column}
  .stepup-actions .btn{width:100%}
  .admin-filterbar{align-items:stretch; flex-direction:column}
  .admin-filterbar > *, .admin-filterbar .btn{width:100%}
  .admin-filterbar .admin-check{width:auto}
  .admin-panel{padding:14px}
  .admin-form-grid{grid-template-columns:1fr}
  .admin-form-grid .span-all{grid-column:1}
  .admin-inline-form{align-items:stretch; flex-direction:column}
  .admin-inline-form > input,.admin-inline-form > select,.admin-inline-form .is-short,.admin-inline-form .is-medium,
  .admin-inline-form .btn{width:100%}
  .admin-actions{align-items:stretch; flex-direction:column}
  .admin-actions > *,.admin-actions .btn,.admin-actions form{width:100%}
  .admin-actions form .btn{width:100%}
  .admin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .analytics-period{justify-content:flex-start; width:100%; overflow-x:auto}
  .analytics-rank-row{grid-template-columns:minmax(100px,.85fr) minmax(80px,1fr) 64px}
  .rs-cols{grid-template-columns:1fr}
  .rs-items{columns:1}
}
@media (max-width:640px){
  .admin-table-wrap.is-cards{overflow:visible; border:0; background:transparent}
  .admin-table-wrap.is-cards .admin-table{display:block}
  .admin-table-wrap.is-cards .admin-table thead{display:none}
  .admin-table-wrap.is-cards .admin-table tbody{display:grid; gap:10px}
  .admin-table-wrap.is-cards .admin-table tr{display:grid; grid-template-columns:1fr 1fr; padding:9px;
    background:var(--surface); border:1px solid var(--line)}
  .admin-table-wrap.is-cards .admin-table td{display:block; min-width:0; max-width:none; padding:8px; border:0}
  .admin-table-wrap.is-cards .admin-table td::before{display:block; margin-bottom:4px; content:attr(data-label);
    color:var(--muted); font:700 .57rem/1 var(--font-narrow); letter-spacing:.1em; text-transform:uppercase}
  .admin-table-wrap.is-cards .admin-table td[colspan]{grid-column:1/-1}
  .admin-table-wrap.is-cards .admin-table tbody tr:hover td{background:transparent}
  .admin-table-wrap.is-cards .admin-table .cell-primary,.admin-table-wrap.is-cards .admin-table .cell-summary,
  .admin-table-wrap.is-cards .admin-table .cell-actions{grid-column:1/-1}
  .admin-table-wrap.is-cards .admin-table .cell-actions{padding-top:10px; border-top:1px solid var(--line-soft)}
  .admin-table-wrap.is-cards .admin-table .num{text-align:left}
  .admin-row-actions{min-width:0}
  .admin-row-actions,.admin-row-actions form,.admin-row-actions .btn{width:100%}
  .admin-kpis{grid-template-columns:1fr 1fr}
  .admin-table-shell > .tbl-wrap{overflow:visible; border:0; background:transparent}
  .admin-table-shell .admin-table{display:block}
  .admin-table-shell .admin-table thead{display:none}
  .admin-table-shell .admin-table tbody{display:grid; gap:10px}
  .admin-table-shell .admin-table tr{display:grid; grid-template-columns:1fr 1fr; padding:9px;
    background:var(--surface); border:1px solid var(--line)}
  .admin-table-shell .admin-table td{display:block; min-width:0; max-width:none; padding:8px; border:0}
  .admin-table-shell .admin-table td::before{display:block; margin-bottom:4px; content:attr(data-label);
    color:var(--muted); font:700 .57rem/1 var(--font-narrow); letter-spacing:.1em; text-transform:uppercase}
  .admin-table-shell .admin-table tbody tr:hover td{background:transparent}
  .admin-table-shell .admin-table .cell-primary,.admin-table-shell .admin-table .cell-summary,
  .admin-table-shell .admin-table .cell-actions{grid-column:1/-1}
  .admin-table-shell .admin-table .cell-actions{padding-top:10px; border-top:1px solid var(--line-soft)}
  .admin-table-shell .admin-table .num{text-align:left}
  .claim-form{grid-template-columns:1fr; min-width:0}
}
@media (max-width:480px){
  .admin-kpis{grid-template-columns:1fr}
  .analytics-card,.finance-chart{padding:14px}
  .analytics-rank-row{grid-template-columns:1fr 62px}
  .analytics-rank-row .analytics-meter{grid-column:1/-1; grid-row:2}
}
@media print{
  .ops-admin .side,.ops-admin .topstrip,.ops-admin .no-print,.ops-admin .skip-link{display:none!important}
  .ops-admin .admin-shell{display:block}
  .ops-admin .wrap{max-width:none; padding:0}
  .ops-admin{background:#fff}
  .rs-job,.rs-grp{break-inside:avoid}
}

/* ---- 9 · transporter portal product pass (2026-08) ---------------------- */
/* Shell, feedback, and mobile navigation */
.ops-portal{--portal-touch:44px}
.ops-portal .topbar nav a{display:inline-flex; align-items:center; gap:6px; min-height:40px}
.portal-drawer-logout{display:none!important}
.connection-state{display:inline-flex; align-items:center; gap:6px; color:var(--on-navy-2);
  font:700 .6rem/1 var(--font-narrow); letter-spacing:.1em; text-transform:uppercase; white-space:nowrap}
.connection-state i{width:7px; height:7px; border-radius:50%; background:var(--good); box-shadow:0 0 0 3px rgba(56,167,92,.14)}
.connection-state[data-state="offline"]{color:#ffd6c8}
.connection-state[data-state="offline"] i{background:var(--crit); box-shadow:0 0 0 3px rgba(211,65,53,.18)}
.connection-state[data-state="restored"]{color:#d9f7df}
.ops-portal.is-offline .topbar{border-bottom-color:var(--crit)}
.portal-error-summary{padding:13px 16px; color:var(--crit); background:var(--crit-soft);
  border:1px solid color-mix(in srgb,var(--crit) 38%,var(--line)); border-radius:3px}
.portal-error-summary strong{font-size:.9rem}
.portal-error-summary ul{margin:6px 0 0; padding-left:20px; font-size:.84rem}
.portal-mobile-bar{display:none}

/* Reusable page language */
.portal-pagehead{display:flex; align-items:flex-end; justify-content:space-between; gap:24px; padding-bottom:3px}
.portal-pagehead>div:first-child{min-width:0}
.portal-pagehead h1{margin:3px 0!important; text-wrap:balance}
.portal-pagehead p:not(.portal-kicker){max-width:740px; margin:5px 0 0; color:var(--muted); font-size:.91rem; line-height:1.5}
.portal-kicker{margin:0; color:var(--accent); font:800 .64rem/1.2 var(--font-narrow);
  letter-spacing:.16em; text-transform:uppercase}
.portal-pagehead-actions,.portal-inline-actions{display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; flex-shrink:0}
.portal-pagehead-actions .btn,.portal-inline-actions .btn{display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:40px}
.portal-page-meta{display:flex; align-items:center; gap:7px 10px; flex-wrap:wrap; margin-top:9px; color:var(--muted); font-size:.83rem}
.portal-back{display:inline-flex; align-items:center; gap:5px; min-height:36px; color:var(--accent); font-size:.84rem; font-weight:700; text-decoration:none}
.portal-back:hover{text-decoration:underline}
.portal-sectionhead{display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:12px}
.portal-sectionhead>div{min-width:0}
.portal-sectionhead h2{margin:3px 0 0; color:var(--navy); font-size:1.22rem; letter-spacing:-.02em}
.portal-sectionhead p:not(.portal-kicker){margin:4px 0 0; color:var(--muted); font-size:.86rem}
.portal-sectionhead-compact{align-items:center}
.portal-count{display:inline-flex; align-items:center; min-height:30px; padding:5px 9px; color:var(--accent);
  background:var(--accent-soft); border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line)); border-radius:3px;
  font:800 .64rem/1 var(--font-narrow); letter-spacing:.1em; text-transform:uppercase; white-space:nowrap}
.portal-count.is-warn{color:var(--warm-2); background:var(--warn-bg); border-color:var(--warn-border)}
.portal-help,.portal-table-note{margin:0 0 12px; color:var(--muted); font-size:.84rem; line-height:1.5}
.portal-table-note{margin:8px 0 0}
.portal-legal-note{margin:0; padding:12px 14px; color:var(--muted); background:var(--surface-2); border-left:3px solid var(--line-strong); font-size:.8rem; line-height:1.5}
.portal-inline-meta{display:flex; align-items:center; gap:8px; flex-wrap:wrap}
.portal-card-action{margin-top:10px}
.text-crit{color:var(--crit)!important; font-weight:700}

/* Dashboard */
.onb{display:grid; grid-template-columns:64px minmax(0,1fr); gap:16px; align-items:start}
.onb-copy{min-width:0}.onb-copy>strong{font-size:1rem}.onb-copy>p{margin:3px 0 0; color:var(--muted); font-size:.85rem}
.onb-list{display:grid; gap:5px; margin:9px 0 11px; padding:0; list-style:none}
.onb-row{display:grid; grid-template-columns:16px minmax(0,1fr); gap:8px; align-items:center; font-size:.88rem}
.onb-row .slot{display:inline-grid; place-items:center; width:16px; height:16px}.onb-row .slot svg{color:var(--good)}
.onb-row .slot i{display:block; width:9px; height:9px; border-radius:50%; box-shadow:inset 0 0 0 1.5px var(--line-strong)}
.onb-row.is-todo{color:var(--muted)}
.ring{display:block}.ring .rg-track{fill:none; stroke:var(--line); stroke-width:7}
.ring .rg-fill{fill:none; stroke:var(--warm); stroke-width:7; stroke-linecap:round; transform:rotate(-90deg); transform-origin:50% 50%}
.ring .rg-t{fill:var(--navy); font-family:var(--font-display); font-size:17px; font-weight:800; text-anchor:middle; dominant-baseline:central}
.portal-priority{padding:16px; background:linear-gradient(135deg,var(--warn-bg),var(--surface) 68%); border:1px solid var(--warn-border)}
.portal-stats{margin-bottom:0}
.portal-availability{display:flex; align-items:center; justify-content:space-between; gap:18px; padding:13px 15px; border:1px solid var(--line); background:var(--surface)}
.portal-availability>div{display:grid; grid-template-columns:10px 1fr; gap:2px 10px; min-width:0}
.portal-status-dot{grid-row:1/3; align-self:center; width:9px; height:9px; border-radius:50%; background:var(--good); box-shadow:0 0 0 4px var(--good-soft)}
.portal-availability.is-off .portal-status-dot{background:var(--crit); box-shadow:0 0 0 4px var(--crit-soft)}
.portal-availability strong{font-size:.9rem}.portal-availability p{margin:0; color:var(--muted); font-size:.81rem}
.portal-availability form{margin:0; flex:none}
.portal-daygroup{padding-left:12px; border-left:3px solid var(--line-strong)}
.portal-daygroup.is-today{border-color:var(--accent)}.portal-daygroup.is-warn{border-color:var(--crit)}
.portal-daygroup+.portal-daygroup{margin-top:18px}
.day-head{display:flex; align-items:baseline; gap:8px; margin:0 0 8px; color:var(--navy);
  font:800 .72rem/1.2 var(--font-narrow); letter-spacing:.14em; text-transform:uppercase}
.day-head small{color:var(--muted); font:600 .75rem/1.3 var(--font); letter-spacing:0; text-transform:none}
.portal-joblist{display:grid; gap:10px}
.cstrip{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:16px}.acceptance-value{margin-bottom:10px}

/* Offer rows and decline dialog */
.ofr{display:grid; grid-template-columns:88px minmax(0,1fr) 320px 210px; align-items:stretch; border:1px solid var(--line); background:var(--surface)}
.ofr+.ofr{margin-top:10px}.ofr-open{border-color:var(--navy)}
.ofr-thumb{background-image:repeating-linear-gradient(135deg,#e7eff7 0 10px,#eff4f9 10px 20px); border-right:1px solid var(--line)}
.ofr-main{display:flex; flex-direction:column; justify-content:center; gap:7px; min-width:0; padding:14px 16px}
.ofr-meta{display:flex; align-items:center; gap:8px; flex-wrap:wrap; color:var(--muted); font:700 .64rem/1.2 var(--font-narrow); letter-spacing:.13em; text-transform:uppercase}
.ofr-ref{color:var(--accent); font-weight:800; letter-spacing:.1em}.ofr-route{margin:0; color:var(--navy); font:800 1.35rem/1.1 var(--font-display); letter-spacing:-.03em; text-wrap:balance}
.ofr-chips{display:flex; flex-wrap:wrap; gap:6px}.ofr-chip{padding:4px 9px; color:var(--ink-soft); border:1px solid var(--line-strong); border-radius:3px; font:700 .62rem/1.2 var(--font-narrow); letter-spacing:.1em; text-transform:uppercase}
.ofr-chip.is-warn{color:var(--warm-2); background:var(--warn-bg); border-color:var(--warn-border)}
.ofr-data{border:0; border-right:1px solid var(--line); border-left:1px solid var(--line)}.ofr-pay{justify-content:center; gap:7px}.ofr-pay .meter{margin-top:-2px}
.ofr-secondary,.ofr-deadline-line{display:flex; align-items:center; justify-content:space-between; gap:10px}.ofr-secondary{margin-top:1px}
.ofr-lnk{padding:0; color:var(--on-navy-1); background:none; border:0; cursor:pointer; font:650 .8rem/1.2 var(--font); text-decoration:underline; text-underline-offset:3px}
.ofr-lnk:hover{color:#fff}.ofr-decline{color:var(--on-navy-2)}
dialog.sheet{width:calc(100% - 32px); max-width:440px; padding:0; color:var(--ink); background:var(--surface); border:1px solid var(--line); border-radius:3px; box-shadow:0 24px 60px rgba(6,24,40,.28)}
dialog.sheet::backdrop{background:rgba(8,32,47,.55)}dialog.sheet .sh-head{padding:16px 18px 0}dialog.sheet .sh-head h2{margin:0 0 4px; color:var(--navy); font-size:1.1rem}
dialog.sheet .sh-head p{margin:0; color:var(--muted); font-size:.88rem}dialog.sheet form{margin:0; padding:14px 18px 18px}dialog.sheet .sh-acts{display:flex; justify-content:flex-end; gap:8px; margin-top:12px}
dialog.sheet .sh-ref{color:var(--accent); font:700 .64rem/1 var(--font-narrow); letter-spacing:.14em; text-transform:uppercase}

/* History */
.portal-segments{display:inline-flex; width:max-content; max-width:100%; overflow-x:auto; background:var(--surface); border:1px solid var(--line); border-radius:3px}
.portal-segments a{display:inline-flex; align-items:center; min-height:42px; padding:7px 16px; color:var(--ink-soft); border-right:1px solid var(--line); font-size:.85rem; font-weight:700; text-decoration:none; white-space:nowrap}
.portal-segments a:last-child{border-right:0}.portal-segments a:hover{color:var(--accent); background:var(--surface-2); text-decoration:none}
.portal-segments a[aria-current="page"]{color:#fff; background:var(--navy)}.portal-pagination{margin-top:14px}

/* Mission detail and one-handed mode */
.jb-grid{display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:16px; align-items:start}.job-rail{position:sticky; top:76px; align-self:start}
.job-decision-clock{border-left:4px solid var(--warm)}.job-countdown-line{display:flex; align-items:baseline; gap:10px}.job-countdown-line .k{letter-spacing:.14em}
.job-route-list{display:grid}.jb-addr{display:grid; grid-template-columns:34px minmax(0,1fr); gap:10px; padding:14px 0; border-bottom:1px solid var(--line-soft)}
.jb-addr:last-child{border-bottom:0}.job-stop-index{display:grid; place-items:center; align-self:start; width:28px; height:28px; color:#fff; background:var(--navy); border-radius:50%; font:800 .75rem/1 var(--font-narrow)}
.job-stop-copy{display:flex; flex-direction:column; align-items:flex-start; gap:4px; min-width:0}.jb-addr .k{color:var(--muted); font:700 .62rem/1 var(--font-narrow); letter-spacing:.14em; text-transform:uppercase}
.jb-addr .a{font-weight:700}.job-address-meta{color:var(--muted); font-size:.85rem}.job-address-note{display:flex; align-items:flex-start; gap:5px; color:var(--ink-soft); font-size:.84rem}.job-map-link{margin-top:4px}
.job-facts{margin-top:12px}.job-facts dt,.job-facts dd{margin:0}.job-slot-value{white-space:normal!important}
.job-contact{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:12px; padding:10px 12px; background:var(--surface-2); border:1px solid var(--line)}
.job-contact>div{display:flex; flex-direction:column}.job-contact>div span{color:var(--muted); font:700 .6rem/1.2 var(--font-narrow); letter-spacing:.13em; text-transform:uppercase}.job-contact small{color:var(--muted); font-size:.78rem}
.jb-note{display:flex; flex-direction:column; gap:3px; margin-top:10px; padding:10px 12px; background:var(--surface-2); border:1px solid var(--line); font-size:.88rem}.jb-note.is-warn{background:var(--warn-bg); border-color:var(--warn-border)}
.job-items{margin-top:12px}.job-items summary,.job-waiver summary,.job-incident summary,.profile-advanced summary{display:flex; align-items:center; gap:6px; min-height:40px; font-weight:700; cursor:pointer}
.job-items ul{display:grid; gap:6px; margin:8px 0 0; padding:0; list-style:none}.job-items li{display:flex; justify-content:space-between; gap:10px; padding:7px 9px; background:var(--surface-2); font-size:.88rem}.job-items li small{color:var(--muted)}
.job-primary-action{border-top:3px solid var(--warm)}.job-primary-action>p{margin:0 0 12px; color:var(--ink-soft); font-size:.9rem; line-height:1.5}
.jb-acts{display:flex; gap:8px; flex-wrap:wrap}.job-action-form{flex:1; min-width:180px}.job-noscript-decline,.job-release{margin-top:10px}
.job-stepper{display:grid; gap:0; margin:0; padding:0; list-style:none}.job-stepper li{position:relative; display:grid; grid-template-columns:30px minmax(0,1fr) auto; gap:10px; align-items:center; min-height:68px; padding:10px 0}
.job-stepper li+li{border-top:1px solid var(--line-soft)}.job-stepper form{margin:0}.job-step-number{display:grid; place-items:center; width:28px; height:28px; color:var(--muted); background:var(--surface-2); border:1px solid var(--line); border-radius:50%; font:800 .72rem/1 var(--font-narrow)}
.job-stepper li.is-done .job-step-number{color:#fff; background:var(--good); border-color:var(--good)}.job-stepper li.is-current .job-step-number{color:#fff; background:var(--warm); border-color:var(--warm)}.job-stepper li.is-locked{opacity:.58}
.job-stepper li>div{display:flex; flex-direction:column; min-width:0}.job-stepper li strong{font-size:.88rem}.job-stepper li small{margin-top:2px; color:var(--muted); font-size:.78rem}
.sig-pad{position:relative; background:var(--surface); border:1px dashed var(--line-strong)}.sig-pad canvas{display:block; width:100%; height:170px; touch-action:none; cursor:crosshair}
.sig-pad[data-signed="false"]::after{position:absolute; right:0; bottom:12px; left:0; color:var(--ink-faint); content:"Signez ici"; pointer-events:none; font:700 .64rem/1 var(--font-narrow); letter-spacing:.16em; text-align:center; text-transform:uppercase}
.sig-bar{display:flex; align-items:center; justify-content:space-between; gap:10px; padding:7px 10px; color:var(--muted); border-top:1px solid var(--line); font:700 .62rem/1 var(--font-narrow); letter-spacing:.13em; text-transform:uppercase}
.job-waiver{margin-bottom:14px}.job-waiver>div{padding:10px; background:var(--surface-2)}.thumbs{display:flex; gap:7px; flex-wrap:wrap; margin-bottom:10px}.thumbs img{width:72px; height:72px; object-fit:cover; border:1px solid var(--line)}
.job-upload-form{margin:0}.job-incident details[open]{padding-top:3px}.job-incident details form{padding-top:5px}.job-closed>p{display:flex; align-items:center; gap:7px; margin:0 0 12px; color:var(--good); font-weight:700}
.job-signature-proof{margin:0 0 12px}.job-signature-proof img{max-width:280px; background:#fff; border:1px solid var(--line)}.job-signature-proof figcaption{margin-top:5px; color:var(--muted); font-size:.82rem}
.thread-sync{margin:-4px 0 10px; color:var(--good); font:700 .62rem/1.3 var(--font-narrow); letter-spacing:.08em; text-transform:uppercase}.thread-sync[data-state="syncing"]{color:var(--accent)}.thread-sync[data-state="offline"],.thread-sync[data-state="stale"]{color:var(--crit)}
.job-message-form{display:flex; gap:8px; margin-top:12px}.job-message-form input{flex:1; min-width:0}.job-messages .portal-help{margin:9px 0 0}
.mission-bar{display:none}

/* Earnings and reviews */
.earn-tiles{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:1px; margin-bottom:0}
.portal-money-list{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin:0; background:var(--line); border:1px solid var(--line)}
.portal-money-list>div{display:grid; grid-template-columns:1fr auto; gap:3px 12px; padding:13px; background:var(--surface)}.portal-money-list dt{font-weight:700}.portal-money-list dd{margin:0; font-weight:800; text-align:right}.portal-money-list small{grid-column:1/-1; color:var(--muted); font-size:.76rem}.portal-money-list .is-negative dd{color:var(--crit)}
.ded-row{display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:14px; background:var(--warn-bg); border:1px solid var(--warn-border)}.ded-row+.ded-row{margin-top:8px}.ded-copy{min-width:0; flex:1}.ded-row .why{margin:5px 0 0; color:var(--ink-soft); font-size:.86rem}.ded-amt{color:var(--crit); font-weight:800; font-variant-numeric:tabular-nums; white-space:nowrap}
.ded-breakdown{display:flex; gap:1px; margin:10px 0 0; background:var(--line); border:1px solid var(--line)}.ded-breakdown>div{flex:1; padding:8px 10px; background:var(--surface)}.ded-breakdown dt{color:var(--muted); font:700 .58rem/1 var(--font-narrow); letter-spacing:.12em; text-transform:uppercase}.ded-breakdown dd{margin:3px 0 0; font-weight:800}
.contest{display:flex; align-items:flex-start; gap:8px; flex-wrap:wrap; margin:10px 0 0}.contest input{min-width:220px; flex:1}
.portal-payout-list{display:grid}.pay-row{display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 0; border-bottom:1px solid var(--line-soft)}.pay-row:last-child{border-bottom:0}.pay-row form{margin:0}.pay-copy{display:flex; flex-direction:column; gap:3px; min-width:0}.pay-net{font-size:1.05rem}.pay-copy small{color:var(--muted); font-size:.78rem}
.portal-documents>p{margin:0 0 13px; color:var(--muted); font-size:.86rem}.portal-document-groups{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px}.portal-document-groups>div{display:flex; align-items:flex-start; align-content:flex-start; gap:7px; flex-wrap:wrap; padding:12px; background:var(--surface-2); border:1px solid var(--line)}.portal-document-groups strong{width:100%; margin-bottom:3px; font-size:.84rem}.money-note{display:block; color:var(--muted); font-size:.72rem}.portal-total-row td{font-weight:800}
.portal-review-summary{display:grid; grid-template-columns:1fr 1fr; gap:16px}.rev-dist{display:grid; gap:7px; max-width:460px}.rev-dist .r{display:grid; grid-template-columns:38px minmax(0,1fr) 32px; gap:9px; align-items:center; font-size:.84rem}.rev-dist .s{color:var(--warm-2); font:700 .68rem/1 var(--font-narrow); letter-spacing:.1em}.rev-dist .c{text-align:right; color:var(--muted); font-variant-numeric:tabular-nums}
.review-criteria{margin:0}.review-criteria>div{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px solid var(--line-soft)}.review-criteria>div:last-child{border-bottom:0}.review-criteria dt{font-size:.86rem; font-weight:650}.review-criteria dd{margin:0}.portal-review-list{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px}.review-card{margin:0!important}.review-card header{display:flex; align-items:center; gap:10px; flex-wrap:wrap}.review-card header>span{color:var(--muted); font-size:.8rem}.review-card blockquote{margin:11px 0 0; color:var(--ink); font-size:.94rem; line-height:1.55}.rev-reply{margin-top:12px; padding:10px 12px; background:var(--surface-2); border-left:3px solid var(--accent)}.rev-reply .k{color:var(--muted); font:700 .6rem/1 var(--font-narrow); letter-spacing:.13em; text-transform:uppercase}.rev-reply p{margin:5px 0 0; font-size:.88rem}.review-reply-form{margin-top:12px}.review-reply-form .fld{margin-bottom:8px}

/* Profile */
.profile-readiness{display:flex; align-items:center; gap:11px; padding:10px 12px; background:var(--surface); border:1px solid var(--line)}.profile-readiness>span{color:var(--warm-2); font:800 1.45rem/1 var(--font-display); font-variant-numeric:tabular-nums}.profile-readiness>div{display:flex; flex-direction:column}.profile-readiness strong{font-size:.83rem}.profile-readiness small{color:var(--muted); font-size:.74rem}
.portal-jump{display:flex; gap:4px; max-width:100%; padding:5px; overflow-x:auto; background:var(--surface-2); border:1px solid var(--line)}.portal-jump a{display:inline-flex; align-items:center; min-height:36px; padding:6px 10px; color:var(--ink-soft); font-size:.79rem; font-weight:700; text-decoration:none; white-space:nowrap}.portal-jump a:hover{color:var(--accent); background:var(--surface); text-decoration:none}.portal-anchor{scroll-margin-top:76px}
.cmp{display:grid; gap:8px}.cmp-row{display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:center; padding:12px; background:var(--surface); border:1px solid var(--line)}.cmp-row.is-warn{background:var(--warn-bg); border-color:var(--warn-border)}.cmp-row.is-crit{background:var(--crit-soft); border-color:color-mix(in srgb,var(--crit) 32%,transparent)}.cmp-copy{min-width:0}.cmp-copy .nm{font-weight:700}.cmp-copy .meta{margin-top:3px; color:var(--muted); font-size:.79rem}.cmp-upload{display:flex; grid-column:1/-1; align-items:flex-end; gap:8px; flex-wrap:wrap; margin:0}.cmp-upload .fld{min-width:230px; flex:1; margin:0}.portal-privacy{display:flex; align-items:flex-start; gap:6px; margin:12px 0 0; color:var(--muted); font-size:.78rem}
.pf-grid{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px; align-items:start}.pf-2{display:grid; grid-template-columns:1fr 1fr; gap:0 14px}.profile-subsection{margin:16px 0; padding-top:13px; border-top:1px solid var(--line)}.profile-subsection h3,.profile-range-form h3{margin:0 0 10px; color:var(--navy); font-size:.92rem}.corr{display:flex; flex-wrap:wrap; gap:7px}.corr .c{padding:5px 10px; background:var(--surface-2); border:1px solid var(--line-strong); font-size:.8rem}.profile-list-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:8px}.profile-list-head strong{font-size:.84rem}.profile-list-head span{color:var(--accent); font-weight:800}.blocked{display:flex; gap:7px; flex-wrap:wrap; margin-bottom:14px}.blocked form{margin:0}.profile-range-form{margin-top:15px; padding-top:14px; border-top:1px solid var(--line)}.profile-advanced{margin-top:15px; padding-top:7px; border-top:1px solid var(--line)}.profile-advanced form{padding-top:8px}.bank-state{display:flex; align-items:center; gap:9px; margin-bottom:13px; padding:10px 11px; border:1px solid var(--line)}.bank-state>div{display:flex; flex-direction:column}.bank-state strong{font-size:.83rem}.bank-state span{color:var(--muted); font-size:.76rem}.bank-state.is-ready{color:var(--good); background:var(--good-soft); border-color:color-mix(in srgb,var(--good) 30%,var(--line))}.bank-state.is-missing{color:var(--crit); background:var(--crit-soft); border-color:color-mix(in srgb,var(--crit) 30%,var(--line))}

/* Print and document views */
.print-toolbar{display:flex; align-items:center; justify-content:space-between; gap:12px; max-width:820px; margin:0 auto}.print-toolbar .btn{display:inline-flex; align-items:center; gap:6px}
.print-sheet{width:100%; max-width:820px; margin:0 auto; padding:32px; background:#fff; border:1px solid var(--line); box-shadow:0 12px 35px rgba(8,32,47,.07)}
.print-head{display:flex; align-items:flex-start; justify-content:space-between; gap:24px; padding-bottom:18px; border-bottom:3px solid var(--navy)}.print-brand,.print-reference{display:flex; flex-direction:column; gap:3px}.print-brand>span{display:inline-flex; align-items:center; gap:7px; color:var(--navy); font:800 1.2rem/1.2 var(--font-display)}.print-brand small,.print-reference span,.print-reference small{color:var(--muted); font-size:.75rem}.print-reference{text-align:right}.print-reference strong{color:var(--navy); font-size:1.15rem; font-variant-numeric:tabular-nums}
.print-identity-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px; margin:22px 0}.print-identity-grid section{display:flex; flex-direction:column; gap:3px; padding:13px; background:var(--surface-2); border:1px solid var(--line)}.print-identity-grid h2{margin:0 0 5px; color:var(--muted); font:700 .62rem/1 var(--font-narrow); letter-spacing:.14em; text-transform:uppercase}.print-identity-grid strong{font-size:.9rem}.print-identity-grid span{color:var(--ink-soft); font-size:.79rem}
.print-title-block{margin:20px 0}.print-title-block h1{margin:4px 0!important; font-size:1.55rem!important}.print-title-block>p:not(.portal-kicker){margin:0; color:var(--muted); font-size:.85rem}
.print-table{width:100%; margin:0; border-collapse:collapse}.print-table th,.print-table td{padding:10px; border-bottom:1px solid var(--line); font-size:.86rem}.print-table thead th{position:static; color:var(--muted); background:var(--surface-2); font:700 .66rem/1.2 var(--font-narrow); letter-spacing:.1em; text-transform:uppercase}.print-table tbody tr:hover td{background:transparent}.print-table .num{text-align:right; font-variant-numeric:tabular-nums}.print-table tfoot th,.print-table tfoot td{padding-top:13px; color:var(--navy); border-top:2px solid var(--navy); border-bottom:0; font-weight:800}.print-empty{color:var(--muted); text-align:center}.month-name{text-transform:capitalize}
.print-callout{display:grid; grid-template-columns:1fr auto; gap:3px 12px; margin-top:16px; padding:12px; background:var(--warn-bg); border:1px solid var(--warn-border)}.print-callout span{font-weight:700}.print-callout strong{font-variant-numeric:tabular-nums}.print-callout small{grid-column:1/-1; color:var(--muted)}.print-legal{display:flex; justify-content:space-between; gap:24px; margin-top:22px; padding-top:14px; color:var(--muted); border-top:1px solid var(--line); font-size:.72rem; line-height:1.45}.print-legal p{margin:0}.print-legal p:first-child{max-width:580px}
.af-tbl{width:100%; border-collapse:collapse}.af-tbl th,.af-tbl td{padding:10px 0; border-bottom:1px solid var(--line-soft); font-size:.88rem}.af-tbl th{text-align:left; font-weight:600}.af-tbl td{text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap}.af-tbl tr.neg td{color:var(--crit)}.af-tbl tr.total th,.af-tbl tr.total td{padding-top:14px; color:var(--navy); border-top:2px solid var(--navy); border-bottom:0; font-size:1rem; font-weight:800}.invoice-deduction{margin-top:18px}
.delivery-route{display:grid; gap:8px; margin-bottom:18px}.delivery-route section{display:grid; grid-template-columns:30px 1fr; gap:10px; align-items:start; padding:11px 12px; background:var(--surface-2); border:1px solid var(--line)}.delivery-route section>span{display:grid; place-items:center; width:26px; height:26px; color:#fff; background:var(--navy); border-radius:50%; font-weight:800}.delivery-route h2{margin:0 0 3px; color:var(--muted); font:700 .62rem/1 var(--font-narrow); letter-spacing:.13em; text-transform:uppercase}.delivery-route p{margin:0; font-size:.86rem}.delivery-route .delivery-access{grid-template-columns:20px 1fr; color:var(--warm-2); background:var(--warn-bg); border-color:var(--warn-border)}
.delivery-reserve{margin-top:14px; padding:12px; background:var(--warn-bg); border:1px solid var(--warn-border)}.delivery-reserve h2{margin:0; color:var(--warm-2); font:700 .62rem/1 var(--font-narrow); letter-spacing:.14em; text-transform:uppercase}.delivery-reserve p{margin:5px 0 0; font-size:.85rem}.sig{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:22px}.sig .box{display:flex; flex-direction:column; gap:8px; min-height:140px; padding:12px; border:1px solid var(--line)}.sig .box h2{margin:0; color:var(--muted); font:700 .62rem/1 var(--font-narrow); letter-spacing:.14em; text-transform:uppercase}.sig .box img{align-self:flex-start; max-width:100%; max-height:90px; object-fit:contain}.sig .box p{margin:auto 0 0; color:var(--muted); font-size:.78rem}.sig .pending{align-self:center; margin:auto; color:var(--ink-faint); font:700 .62rem/1 var(--font-narrow); letter-spacing:.14em; text-align:center; text-transform:uppercase}

@media (max-width:980px){
  .ofr{grid-template-columns:minmax(0,1fr) 240px}.ofr-thumb{display:none}.ofr-data{grid-column:1/-1; border-right:0; border-left:0; border-top:1px solid var(--line)}.ofr-pay{grid-column:1/-1}
  .portal-document-groups{grid-template-columns:1fr 1fr}.jb-grid{grid-template-columns:minmax(0,1fr)}.job-rail{position:static}
}
@media (max-width:900px){.cstrip{grid-template-columns:minmax(0,1fr)}.pf-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:820px){
  .portal-top-logout{display:none!important}.connection-state{margin-left:auto}.portal-drawer-logout{display:block!important; margin-top:8px!important; padding-top:8px; border-top:1px solid rgba(255,255,255,.14)}
  .portal-drawer-logout button{display:flex; align-items:center; gap:7px; width:100%; min-height:44px; padding:10px 13px; color:#fff; background:none; border:0; font:700 .94rem/1 var(--font); cursor:pointer}
  .topbar nav a{min-height:46px}.portal-pagehead{align-items:flex-start; flex-direction:column; gap:12px}.portal-pagehead-actions{width:100%; justify-content:flex-start}
  .ops-portal .wrap{padding-bottom:104px}.portal-mobile-bar{position:fixed; right:0; bottom:0; left:0; z-index:45; display:grid; grid-template-columns:repeat(4,1fr); padding:6px 6px calc(6px + env(safe-area-inset-bottom)); background:var(--navy-900); border-top:1px solid #000; box-shadow:0 -8px 24px rgba(8,32,47,.18)}
  .portal-mobile-bar a{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; min-height:52px; color:var(--on-navy-2); border-radius:3px; font:700 .59rem/1 var(--font-narrow); letter-spacing:.04em; text-decoration:none}.portal-mobile-bar a[aria-current="page"]{color:#fff; background:var(--warm)}
  .portal-review-list{grid-template-columns:1fr}
}
@media (max-width:720px){
  .portal-history-table,.portal-earnings-section .tbl{display:block}.portal-history-table thead,.portal-earnings-section .tbl thead{display:none}.portal-history-table tbody,.portal-earnings-section .tbl tbody{display:grid; gap:10px}.portal-history-table tr,.portal-earnings-section .tbl tr{display:grid; grid-template-columns:1fr 1fr; padding:10px; background:var(--surface); border:1px solid var(--line)}
  .portal-history-table td,.portal-earnings-section .tbl td{display:block; padding:8px; border:0}.portal-history-table td::before,.portal-earnings-section .tbl td::before{display:block; margin-bottom:4px; color:var(--muted); content:attr(data-label); font:700 .57rem/1 var(--font-narrow); letter-spacing:.1em; text-transform:uppercase}.portal-history-table tbody tr:hover td,.portal-earnings-section .tbl tbody tr:hover td{background:transparent}.portal-history-table .num,.portal-earnings-section .tbl .num{text-align:left}.portal-total-row{background:var(--warn-bg)!important}
  .portal-review-summary,.portal-money-list{grid-template-columns:1fr}.portal-document-groups{grid-template-columns:1fr}
  .print-sheet{padding:22px}.print-legal{flex-direction:column; gap:8px}
}
@media (max-width:560px){
  .topbar .brand .brand-word{display:none}.topbar .who .sub{display:none}.topbar .who b{max-width:150px}.connection-state span{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0)}
  .ops-portal .wrap{padding:16px 12px 104px}.portal-pagehead-actions .btn{flex:1}.portal-sectionhead{align-items:flex-start; flex-direction:column; gap:8px}.portal-count{align-self:flex-start}
  .portal-priority{margin-inline:-4px; padding:12px}.portal-availability{align-items:stretch; flex-direction:column}.portal-availability form,.portal-availability .btn{width:100%; min-height:var(--portal-touch)}
  .onb{grid-template-columns:52px minmax(0,1fr)}.ring{width:52px; height:52px}.onb-row{font-size:.84rem}.portal-daygroup{padding-left:8px}.day-head{align-items:flex-start; flex-direction:column; gap:2px}
  .ofr{grid-template-columns:minmax(0,1fr)}.ofr-route{font-size:1.2rem}.ofr-main{padding:13px}.ofr-data{grid-template-columns:1fr 1fr}.ofr-data>div{padding:8px 10px}.ofr-pay{padding:13px}.ofr-pay .btn{min-height:var(--portal-touch)}
  dialog.sheet{margin:auto auto 0; width:100%; max-width:none; border-radius:3px 3px 0 0}.sh-acts{flex-direction:column-reverse}.sh-acts .btn{width:100%; min-height:var(--portal-touch)}
  .job-pagehead .portal-pagehead-actions{display:none}.job-contact{align-items:flex-start; flex-direction:column}.job-stepper li{grid-template-columns:30px minmax(0,1fr)}.job-stepper form{grid-column:1/-1}.job-stepper .btn{width:100%; min-height:var(--portal-touch)}
  .job-message-form{display:grid; grid-template-columns:minmax(0,1fr) auto}.job-message-form input{font-size:16px}.job-message-form .btn{min-width:var(--portal-touch); min-height:var(--portal-touch)}
  .mission-bar{position:fixed; right:0; bottom:0; left:0; z-index:52; display:flex; gap:7px; padding:8px 10px calc(8px + env(safe-area-inset-bottom)); background:var(--navy-900); border-top:1px solid #000}.mission-bar>*{display:inline-flex; flex:1; align-items:center; justify-content:center; min-height:48px; gap:6px; margin:0; padding:0 8px; color:#fff; background:rgba(255,255,255,.13); border:0; border-radius:3px; font:700 .82rem/1 var(--font); text-decoration:none}.mission-bar form{padding:0;background:transparent}.mission-bar form .mb-go{width:100%;height:100%;color:#fff;background:var(--warm);border:0;font:inherit}.mission-bar .mb-go{background:var(--warm)}
  .ded-row,.pay-row{align-items:stretch; flex-direction:column}.ded-amt{align-self:flex-start}.ded-breakdown{display:grid; grid-template-columns:repeat(3,1fr)}.contest{flex-direction:column}.contest input,.contest .btn{width:100%; min-width:0}.pay-row form,.pay-row .btn{width:100%}.portal-document-groups .btn{min-height:40px}.pf-2{grid-template-columns:1fr}.cmp-row{grid-template-columns:minmax(0,1fr)}.cmp-row>.status-chip{justify-self:start}.cmp-upload{align-items:stretch; flex-direction:column}.cmp-upload .fld,.cmp-upload .btn{width:100%; min-width:0}.profile-readiness{width:100%}
  .print-toolbar{align-items:stretch; flex-direction:column}.print-toolbar .btn{justify-content:center; min-height:44px}.print-sheet{padding:18px}.print-head,.print-identity-grid{grid-template-columns:1fr; flex-direction:column}.print-reference{text-align:left}.print-identity-grid{gap:8px}.print-title-block h1{font-size:1.3rem!important}.print-table th,.print-table td{padding:8px 6px; font-size:.78rem}.sig{grid-template-columns:1fr}
}
@media print{
  .ops-portal{background:#fff!important}.ops-portal .topbar,.ops-portal .portal-mobile-bar,.ops-portal .nav-scrim,.no-print{display:none!important}.ops-portal .wrap{max-width:none; padding:0!important}.ops-portal .wrap>.stack{display:block}.print-sheet{max-width:none; margin:0; padding:0; border:0; box-shadow:none}.print-head{padding-top:0}.print-table thead th{color:#333!important; background:#f4f4f4!important}.print-legal{break-inside:avoid}.delivery-reserve,.print-callout{print-color-adjust:exact;-webkit-print-color-adjust:exact}
}
