
:root{
  --ground:#ffffff;--panel:#fff;--panel2:#F5F6F3;--sidebar:#12211F;--ink:#16211F;
  --soft:#3C4A47;--muted:#647471;--hair:#E0E4DE;--primary:#0E5C54;--primary-soft:#0E5C5416;
  --ok:#2E7D51;--ok-bg:#2E7D5119;--warn:#B5731A;--warn-bg:#D9922B1e;--info:#0E5C54;--crit:#B23A3A;--crit-bg:#B23A3A17;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}
@media(prefers-color-scheme:dark) and (min-width:999999px){:root{
  --ground:#0A100F;--panel:#131E1C;--panel2:#0F1817;--sidebar:#0C1615;--ink:#E7ECE9;
  --soft:#B7C2BE;--muted:#83928E;--hair:#243230;--primary:#3FB6A6;--primary-soft:#3FB6A61e;
  --ok:#56C48A;--ok-bg:#56C48a17;--warn:#E0A33F;--warn-bg:#E0A33F17;--info:#3FB6A6;--crit:#E77;--crit-bg:#E777771a;
}}
*{box-sizing:border-box}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
.mono{font-family:var(--mono)}

/* ---- Login ---- */
.login{min-height:100vh;display:grid;place-items:center;padding:24px}
.login .card{background:var(--panel);border:1px solid var(--hair);border-radius:16px;box-shadow:0 10px 40px rgba(0,0,0,.12);padding:34px;width:100%;max-width:380px}
/* «Resta collegato» (B2, 10/10/2026): una spunta grande da toccare col pollice,
   con la spiegazione sotto — su un PC condiviso non va messa. */
.login .resta{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;align-items:center;margin:4px 0 16px;font-size:.9rem;cursor:pointer}
.login .resta input{width:22px;height:22px;margin:0;accent-color:var(--primary)}
.login .resta span{grid-column:2;color:var(--muted);font-size:.78rem}
.brand{display:flex;align-items:center;gap:12px;margin-bottom:6px}
.brand .mk{width:40px;height:40px;border-radius:10px;background:var(--primary);color:#04110F;display:grid;place-items:center;font-family:var(--mono);font-weight:700}
.brand .nm{font-weight:640;font-size:1.15rem;letter-spacing:-.01em}
.brand .nm small{display:block;font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;color:var(--muted);text-transform:uppercase}
.login h1{font-size:1.1rem;margin:18px 0 2px;font-weight:600}
.login p.sub{color:var(--muted);font-size:.85rem;margin:0 0 20px}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.field label{font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.field input{font-family:var(--sans);font-size:.95rem;padding:10px 12px;border:1px solid var(--hair);border-radius:9px;background:var(--panel2);color:var(--ink)}
.field select{font-family:var(--sans);font-size:.95rem;padding:10px 12px;border:1px solid var(--hair);border-radius:9px;background:var(--panel2);color:var(--ink)}
.field input:focus{outline:2px solid var(--primary);outline-offset:1px;border-color:transparent}
/* Un menu o un campo non è mai più largo del suo riquadro (gate del palmare,
   16/10/2026): un <select> prende la larghezza dell'opzione più lunga, e sul
   palmare «Terminal (HUB)» finiva tagliato a destra — proprio sul codice. */
.field{max-width:100%;min-width:0}
.field select,.field input{max-width:100%;min-width:0;box-sizing:border-box;text-overflow:ellipsis}
/* E anche fuori da un .field: un <select> con un committente dal nome lungo
   (WMS, «#wms-lst-cmt») arrivava a 953 px su uno schermo da 320. */
#content select{max-width:100%;text-overflow:ellipsis}
.btn{all:unset;cursor:pointer;text-align:center;font-weight:600;font-size:.92rem;padding:11px;border-radius:9px;background:var(--primary);color:#fff;display:block;width:100%;box-sizing:border-box}
/* box-sizing DOPO all:unset: all:unset lo riporta a content-box, e un .btn a tutta
   larghezza («Chiudi giro») era 22 px più largo del suo riquadro (gate del palmare). */
.btn:disabled{opacity:.6;cursor:default}
.err{color:var(--crit);background:var(--crit-bg);border-radius:8px;padding:9px 12px;font-size:.84rem;margin-bottom:12px;display:none}
.err.on{display:block}
.hint{font-family:var(--mono);font-size:.72rem;color:var(--muted);margin-top:16px;text-align:center;line-height:1.7}
/* [REGOLA 11] Il testo interrogabile deve SEMBRARE interrogabile: un dato
   cliccabile che sembra testo morto non lo clicca nessuno. */
.lnk{color:inherit;text-decoration:none;border-bottom:1px dotted var(--muted);cursor:pointer}
.lnk:hover{color:var(--primary);border-bottom-color:var(--primary)}

/* ---- App shell ---- */
.shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}
/* LA BARRA LATERALE NON SCORRE COL CONTENUTO.
   Prima era una normale cella di griglia: scendendo in una tabella lunga la
   voce accesa usciva dallo schermo insieme alle righe, e per cambiare modulo
   bisognava risalire in cima. Sticky e altezza a schermo la tengono ferma;
   Lo scorrimento interno serve perche' con 28 voci su un portatile il menu e' piu'
   alto della finestra, e senza si taglierebbero le ultime.
   Sotto gli 820px resta la striscia orizzontale di prima. */
aside{background:var(--sidebar);color:#C7D3D0;display:flex;flex-direction:column;padding:16px 12px;gap:3px;
  position:sticky;top:0;height:100vh;overflow-y:auto;overscroll-behavior:contain}
aside .brand{padding:6px 8px 16px;margin:0}
aside .brand .nm{color:#EAF3F1}
nav button{all:unset;display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:8px;cursor:pointer;color:#C7D3D0;font-size:.9rem}
nav button:hover{background:#ffffff10}
nav button.on{background:#16302C;color:#EAF3F1;font-weight:560}
nav button .bdg{margin-left:auto;font-family:var(--mono);font-size:.66rem;background:#ffffff16;padding:1px 7px;border-radius:999px}
.side-foot{margin-top:auto;border-top:1px solid #ffffff14;padding-top:12px;display:flex;flex-direction:column;gap:8px}
.side-foot .u{font-size:.82rem;color:#C7D3D0}
.side-foot .u small{display:block;font-family:var(--mono);font-size:.62rem;color:#7E908C;letter-spacing:.08em}
.side-foot button{all:unset;cursor:pointer;font-family:var(--mono);font-size:.72rem;color:#9fb0ac}
.side-foot button:hover{color:#EAF3F1}

main{min-width:0;display:flex;flex-direction:column}
.top{display:flex;align-items:center;gap:12px;padding:14px 24px;background:var(--panel);border-bottom:1px solid var(--hair)}
.top .crumb{font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.top .crumb b{color:var(--ink)}
.top .live{margin-left:auto;font-family:var(--mono);font-size:.7rem;color:var(--ok);display:flex;align-items:center;gap:7px}
.top .live .dot{width:7px;height:7px;border-radius:50%;background:var(--ok)}
.content{padding:24px;max-width:1100px;width:100%}
h1.vh{font-size:1.4rem;letter-spacing:-.02em;margin:0 0 3px}
p.vs{color:var(--muted);font-size:.88rem;margin:0 0 20px}

.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:13px;margin-bottom:22px;align-items:stretch}
.kpi{background:var(--panel);border:1px solid var(--hair);border-radius:12px;padding:15px 16px}
.kpi .l{font-size:.76rem;color:var(--muted)}
.kpi .n{font-family:var(--mono);font-size:1.7rem;font-weight:640;letter-spacing:-.03em;margin-top:7px;font-variant-numeric:tabular-nums}

.card{background:var(--panel);border:1px solid var(--hair);border-radius:12px;overflow:hidden;margin-bottom:20px}
.card .ch{padding:13px 18px;border-bottom:1px solid var(--hair);font-weight:600;font-size:.95rem;display:flex;align-items:center;justify-content:space-between;gap:8px}
.card .ch .cnt{font-family:var(--mono);font-size:.72rem;color:var(--muted)}
.twrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:.85rem}
th{text-align:left;font-family:var(--mono);font-size:.64rem;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:500;padding:9px 18px;border-bottom:1px solid var(--hair)}
td{padding:10px 18px;border-bottom:1px solid var(--hair)}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover{background:var(--panel2)}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--mono)}
.code{font-family:var(--mono);font-size:.8rem;color:var(--soft)}
.st{font-family:var(--mono);font-size:.64rem;letter-spacing:.05em;text-transform:uppercase;padding:3px 9px;border-radius:999px;font-weight:600;white-space:nowrap}
.st.ok{color:var(--ok);background:var(--ok-bg)}.st.bozza,.st.warn{color:var(--warn);background:var(--warn-bg)}
.st.info{color:var(--info);background:var(--primary-soft)}.st.crit{color:var(--crit);background:var(--crit-bg)}
.st.off{color:var(--muted);background:var(--panel2)}
td .sub{color:var(--muted);font-size:.72rem}
.view{display:none}.view.on{display:block}
tbody tr.clic{cursor:pointer}
.btn.ghost{background:var(--panel2);color:var(--soft);border:1px solid var(--hair);width:auto;display:inline-flex;align-items:center;gap:6px}
.btn.sm{font-size:.72rem;padding:5px 9px;width:auto;display:inline-flex}
.loading{padding:40px;text-align:center;color:var(--muted);font-family:var(--mono);font-size:.85rem}
#xdk-out[aria-busy="true"]{opacity:.55;transition:opacity .15s}
.note{font-size:.85rem;color:var(--soft);background:var(--primary-soft);border-left:3px solid var(--primary);padding:11px 14px;border-radius:0 8px 8px 0;margin:14px 0}
tfoot td{border-top:2px solid var(--hair)}
@media(max-width:820px){.shell{grid-template-columns:1fr}aside{flex-direction:row;overflow-x:auto;overflow-y:visible;height:auto;position:static}.side-foot{display:none}nav{display:flex}}
/* --- Plancia bordereau --- */
.bpl-h{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap;overflow-wrap:anywhere}
.bpl-h>*{min-width:0;max-width:100%;white-space:normal}
.bpl-h .t{font-size:18px;font-weight:800}.bpl-h .code{color:var(--primary)}
.bpl-st{margin-left:auto;font-weight:700;font-size:12.5px;border-radius:20px;padding:5px 12px;border:1px solid transparent}
.bpl-st.open{background:var(--ok-bg);color:var(--ok);border-color:var(--ok)}.bpl-st.done{background:var(--primary-soft);color:var(--primary)}.bpl-st.conf{background:#3b82f61a;color:#2563eb}
.bpl-sel{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:12px;margin-bottom:14px}
.bpl-fld{min-width:0;overflow-wrap:anywhere}
.bpl-fld label{display:block;font-size:12px;color:var(--muted);margin-bottom:5px}
.bpl-fld .box{width:100%;border:1px solid var(--hair);border-radius:9px;padding:9px 11px;background:var(--panel);font-size:13.5px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.bpl-fld .box.click{cursor:pointer}.bpl-fld .box.click:hover{border-color:var(--primary)}
.bpl-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,130px),1fr));gap:10px;margin-bottom:14px}
.bpl-tile{background:var(--panel2);border:1px solid var(--hair);border-radius:11px;padding:12px 14px;text-align:center}
.bpl-tile .v{font-size:22px;font-weight:800;overflow-wrap:anywhere}.bpl-tile .l{font-size:12px;color:var(--muted);margin-top:2px}
.bpl-tile.acc .v{color:var(--primary)}.bpl-tile.cod .v{color:var(--warn)}.bpl-tile.over{border-color:var(--crit)}.bpl-tile.over .v{color:var(--crit)}
.bpl-route{border:1px solid var(--hair);border-radius:11px;background:var(--panel2);padding:14px 16px;margin-bottom:14px}
.bpl-route .lbl{font-size:12.5px;color:var(--muted);margin-bottom:12px;font-weight:600}
.bpl-stops{display:flex;align-items:center;flex-wrap:wrap;gap:4px}
.bpl-stop{width:24px;height:24px;border-radius:50%;background:var(--primary);color:#fff;font-weight:800;font-size:11px;display:grid;place-items:center;flex:none}
/* Mappa della rotta: disegnata da noi sui centroidi comunali (geo/centroidi.ts),
   senza tile esterne, senza chiavi API e senza far uscire un indirizzo. */
.bpl-mappa{width:100%;height:auto;display:block;border-radius:9px;background:var(--panel)}
.bpl-mappa .tratta{fill:none;stroke:var(--primary);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;opacity:.55}
.bpl-mappa .griglia{stroke:var(--hair);stroke-width:1}
.bpl-mappa .num{fill:#fff;font:800 11px var(--sans);text-anchor:middle;dominant-baseline:central}
.bpl-mappa .nome{fill:var(--muted);font:600 10px var(--sans);text-anchor:middle}
.bpl-mappa .approx{fill:var(--panel);stroke:var(--primary);stroke-width:2;stroke-dasharray:3 2}
.bpl-mappa .numapprox{fill:var(--primary)}
.bpl-nota{font-size:11px;color:var(--muted);margin-top:8px}
/* La mappa vera (Leaflet + OpenStreetMap). L'altezza va fissata: Leaflet
   misura il contenitore al primo disegno, e un contenitore alto zero produce
   una mappa grigia senza dire perche'. */
.bpl-mappa-vera{width:100%;height:340px;border-radius:9px;overflow:hidden;border:1px solid var(--hair)}
.bpl-mappa-vera .leaflet-container{background:var(--panel2);font-family:var(--sans)}
.bpl-pin{width:26px;height:26px;border-radius:50%;background:var(--primary);color:#fff;
  display:grid;place-items:center;font:800 12px var(--sans);box-shadow:0 1px 4px rgba(0,0,0,.35)}
.bpl-pin.approx{background:var(--panel);color:var(--primary);border:2px dashed var(--primary)}
@media(max-width:700px){.bpl-mappa-vera{height:260px}}
.bpl-leg{flex:1;height:3px;background:var(--primary);opacity:.4;min-width:14px}
.bpl-seq{width:24px;height:24px;border-radius:50%;background:var(--panel2);border:1px solid var(--hair);color:var(--ink);display:inline-grid;place-items:center;font-weight:800;font-size:12px}
.bpl-grip{color:#c2c9d2}
.psla{font-weight:700;font-size:12.5px}.psla.ok{color:var(--ok)}.psla.warn{color:var(--warn)}.psla.crit{color:var(--crit)}
.pdot{width:9px;height:9px;border-radius:50%;display:inline-block;vertical-align:middle}.pdot.ok{background:var(--ok)}.pdot.warn{background:var(--warn)}.pdot.crit{background:var(--crit)}.pdot.idle{background:#c2c9d2}
.bpl-ai{display:flex;align-items:center;gap:12px;background:#6d5cf51a;border:1px solid #6d5cf540;border-radius:12px;padding:12px 14px;margin-top:14px;flex-wrap:wrap;overflow-wrap:anywhere}
.bpl-ai .ic{width:28px;height:28px;border-radius:8px;background:#6d5cf5;color:#fff;display:grid;place-items:center;font-size:15px;flex:none}
.bpl-ai .tx{font-size:13px;color:var(--soft)}.bpl-ai .tx b{color:var(--ink)}
.bpl-ai .btn.ai{margin-left:auto;background:#6d5cf5;border-color:#6d5cf5;color:#fff}
.bpl-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px;flex-wrap:wrap}
.bpl-actions .btn{box-sizing:border-box;max-width:100%;overflow-wrap:anywhere}
/* La finestra si misura sullo STRATO, non su 100vh: in Chrome per Android 100vh
   è lo schermo senza le barre del browser, e sul palmare i bottoni finivano
   sotto la barra di Android (prova sul campo 15/10/2026). Lo strato fisso
   segue l'area visibile; la finestra ne prende al massimo il 100%. */
.mdl-ov{position:fixed;inset:0;background:rgba(10,14,20,.55);display:flex;align-items:center;justify-content:center;z-index:999;padding:16px}
.mdl{background:var(--panel);border:1px solid var(--hair);border-radius:14px;width:100%;max-width:520px;box-shadow:0 24px 70px rgba(0,0,0,.28);max-height:100%;display:flex;flex-direction:column}
.mdl-h{padding:15px 18px;font-weight:800;border-bottom:1px solid var(--hair);display:flex;align-items:center;gap:8px}
.mdl-b{padding:16px 18px;overflow-y:auto;flex:1;min-height:0}
.mdl-b label{display:block;font-size:12px;color:var(--muted);margin:10px 0 4px;font-weight:600}
.mdl-b input,.mdl-b textarea{width:100%;padding:9px 11px;border:1px solid var(--hair);border-radius:9px;font:inherit;background:var(--panel2);color:var(--ink)}
.mdl-b .hint{font-size:12px;color:var(--muted);margin-top:10px;line-height:1.45}
.mdl-f{padding:12px 18px;display:flex;gap:10px;justify-content:flex-end;border-top:1px solid var(--hair);flex-shrink:0}
.mdl-err{color:var(--crit);font-size:12.5px;margin-top:10px;display:none}
.cfld{display:flex;align-items:baseline;gap:10px;padding:6px 0;border-bottom:1px solid #f0f2ee}
.cfld:last-child{border-bottom:none}
.cfld .l{color:var(--muted);font-size:12.5px;min-width:170px}
.cfld .v{font-weight:600;font-size:13.5px}
.mdl-b select{width:100%;padding:9px 11px;border:1px solid var(--hair);border-radius:9px;font:inherit;background:var(--panel2);color:var(--ink)}
.mdl-err.on{display:block}
/* La firma col dito del verbale di scarico (mig. 066): il dito non scorre la pagina. */
.xvb-pad{display:block;width:100%;height:130px;border:1px dashed var(--hair);border-radius:9px;background:#fff;touch-action:none;margin-bottom:4px}
/* [DIREZIONE 23/10/2026] Nella finestra NON si disegna: il riquadro di una firma
   si tocca (e il dito, trascinato, scorre la finestra); la firma si fa sul
   foglio a schermo intero. Il titolo dice chi firma, grande. */
.xvb-firma{display:block;margin:12px 0;padding:10px 12px;border:2px solid var(--hair);border-radius:12px;background:var(--panel2);cursor:pointer;color:var(--ink)}
.xvb-firma:focus{outline:3px solid var(--primary);outline-offset:2px}
.xvb-firma.fatta{border-color:var(--ok)}
.xvb-firma.manca{border-color:var(--crit);background:var(--crit-bg)}
.xvb-tit{font-size:17px;font-weight:800;line-height:1.25}
.xvb-sotto{font-size:12.5px;color:var(--muted);margin-top:1px}
.xvb-ant{display:block;width:100%;height:72px;margin-top:6px;border:1px dashed var(--hair);border-radius:8px;background:#fff;pointer-events:none}
.xvb-stato{font-size:13px;font-weight:700;margin-top:6px}
.xvb-firma.fatta .xvb-stato{color:var(--ok)}.xvb-firma.manca .xvb-stato{color:var(--crit)}
.xvb-fs{position:fixed;inset:0;z-index:1001;background:var(--panel);display:flex;flex-direction:column;padding:10px 12px;gap:6px;touch-action:none;overscroll-behavior:contain}
.xvb-fs-t{font-size:20px;font-weight:800;line-height:1.2}
.xvb-fs-chi{font-size:15px;font-weight:700}
.xvb-fs-hint{font-size:12.5px;color:var(--muted)}
.xvb-fs .xvb-pad{flex:1;min-height:0;height:auto;margin:0;border:2px dashed var(--muted)}
.xvb-fs-err{color:var(--crit);font-size:13px;min-height:0}
.xvb-fs-err:empty{display:none}
.xvb-fs-f{display:flex;gap:8px;flex-shrink:0}
.xvb-fs-f .btn{flex:1;min-height:44px;padding:8px 6px;justify-content:center}
/* Gli invii del verbale, uno per blocco: a 320 px l'indirizzo va a capo e si legge tutto. */
.xvb-inv{padding:7px 0;border-bottom:1px solid var(--hair)}
.xvb-inv:last-child{border-bottom:none}
.xvb-inv-h{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;font-weight:600}
.xvb-inv-a{font-size:13px;overflow-wrap:anywhere;margin-top:2px}
/* IL PALMARE (gate 320×405, revisione 16/10/2026): da toccare col guanto e da
   leggere a un braccio. Ogni bottone almeno 40 px, niente sotto i 12 px. */
@media (max-width:700px){
  .btn.sm{min-height:40px;font-size:.8rem;padding:8px 12px;align-items:center;justify-content:center}
  /* Anche un menu: quello dei committenti del WMS era alto 19 px. Senza id:
     chi chiede di più (il motivo della mancata, 44 px) vince. */
  select{min-height:40px}
  .st{font-size:12px}
  /* Il motivo della mancata su una riga sua: il menu chiuso lo mostra intero. */
  .aut-mancata .aut-motivo{flex:1 1 100%}
  .aut-mancata .btn{flex:1 1 100%;scroll-margin:12px}
  /* scroll-margin: portato nello schermo, il bottone non resta a filo del bordo
     (in CI finiva a 406 px su 405 per un arrotondamento). */
  /* L'accesso: «Entra» dentro lo schermo del palmare. */
  .login{padding:8px;place-items:start center;min-height:0}
  .login .card{padding:16px 18px}
  .login h1{margin:8px 0 2px}
  .login .smyb-logo{width:120px!important}
  .login .field{margin-bottom:8px}
  .login .field input{min-height:44px}
  .login .sub{display:none}
  .login .resta{margin:0 0 10px}
  .login .resta span{display:none}
  /* Con l'avviso «Credenziali non valide» «Entra» scendeva a 434 px (revisione V3):
     sul palmare il titolo «Accedi» lo dice già il bottone, il logo è più piccolo. */
  .login h1{display:none}
  .login .smyb-logo{width:96px!important}
  .login .err{padding:7px 10px;margin-bottom:8px}
  /* L'avviso della prova: «● Prova aperta» e i due bottoni su una riga anche alti 40 px. */
  #xdk-prova .st{letter-spacing:0;font-family:var(--sans);text-transform:none;padding:3px 7px}
  #xdk-prova .note .btn{padding:8px 10px}
}
/* Sul palmare (360 px) i margini della finestra lasciano posto ai campi. */
@media (max-width:520px){.mdl-ov{padding:8px}.mdl-h{padding:10px 14px}.mdl-b{padding:10px 14px}.mdl-f{padding:10px 14px}}
.btn.green{background:var(--ok);border-color:var(--ok);color:#fff}
.bpl-layout{display:grid;grid-template-columns:312px minmax(0,1fr);gap:16px;align-items:start}
.bpl-layout>*{min-width:0}
.bpl-left{overflow-wrap:anywhere}
.bpl-scard .r1{flex-wrap:wrap}.bpl-scard .num{white-space:normal}
/* La larghezza utile dipende anche dalla colonna delle assegnazioni, non solo
   dallo schermo. Sotto la soglia, ogni spedizione diventa una scheda con TUTTI
   i campi etichettati; gli stessi nodi conservano click e trascinamento.
   data-bpl-label è un metadato di presentazione del modulo, non un gancio
   cliccabile (convenzione dei parametri del gate:vicoli). */
.bpl-panel{container-type:inline-size;container-name:bordereau}
.bpl-drop th,.bpl-drop td{padding:10px 8px;overflow-wrap:anywhere}
.bpl-drop th,.bpl-drop .psla{white-space:nowrap}
.bpl-drop td.code{min-width:100px}
@container bordereau (max-width:900px){
  .bpl-drop table,.bpl-drop tbody{display:block;width:100%}
  .bpl-drop thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%)}
  .bpl-drop tr[data-dragrow]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;padding:14px;border:1px solid var(--hair);border-radius:9px;margin-bottom:12px;background:var(--panel)}
  .bpl-drop tr[data-dragrow] td{display:block;min-width:0;padding:0;border:0;text-align:left;white-space:normal}
  .bpl-drop td[data-bpl-label]::before{content:attr(data-bpl-label);display:block;color:var(--muted);font:600 11px var(--sans);margin-bottom:4px}
  .bpl-drop td:last-child{grid-column:span 2}
  .bpl-drop td:last-child .btn{margin:4px 4px 0 0}
  .bpl-drop .st{white-space:normal}
}
@container bordereau (max-width:480px){
  .bpl-drop tr[data-dragrow]{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.bpl-left .lh{display:flex;align-items:center;gap:8px;font-weight:800;margin:2px 2px 10px}.bpl-left .lh .cnt{margin-left:auto;background:var(--primary);color:#fff;border-radius:20px;padding:1px 9px;font-size:12px}
.bpl-left select{width:100%;border:1px solid var(--hair);border-radius:9px;padding:8px 10px;background:var(--panel);font-size:13px;margin-bottom:10px}
.bpl-zh{font-size:11px;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);font-weight:700;margin:12px 2px 6px}
.bpl-scard{background:var(--panel);border:1px solid var(--hair);border-radius:11px;padding:10px 11px;margin-bottom:8px}
.bpl-scard[draggable="true"]{cursor:grab}
.bpl-scard[draggable="true"]:active{cursor:grabbing}
.bpl-scard.trascina{opacity:.45;border-style:dashed}
/* La zona di rilascio si illumina solo mentre si trascina: un bersaglio sempre
   evidenziato e' rumore, uno che appare quando serve e' un'istruzione. */
.bpl-drop{border-radius:11px;transition:box-shadow .12s,background .12s}
.bpl-drop.pronta{box-shadow:0 0 0 2px var(--primary) inset;background:var(--primary-soft)}
.bpl-drop.pronta::before{content:'Rilascia qui per aggiungere la spedizione al giro';display:block;padding:9px 12px;color:var(--primary);font-weight:700;font-size:12.5px}
.bpl-scard .r1{display:flex;align-items:center;gap:8px}.bpl-scard .num{font-weight:800;font-size:13px}
.bpl-scard .r2{color:var(--soft);margin-top:3px;font-size:13px}.bpl-scard .r3{color:var(--muted);font-size:12px;margin-top:3px;display:flex;justify-content:space-between;align-items:center}
.bpl-scard .add{border:1px solid var(--primary);color:var(--primary);background:var(--primary-soft);border-radius:7px;padding:2px 9px;font-weight:700;cursor:pointer;font-size:12px}
.bpl-empty{color:var(--muted);font-size:13px;padding:14px;text-align:center}
@media(max-width:1200px){.bpl-layout{grid-template-columns:minmax(0,1fr)}}
@media(max-width:820px){.bpl-actions{justify-content:flex-start}}

/* ============================================================================
   CONSOLE DI MAGAZZINO (#wq)
   ----------------------------------------------------------------------------
   Perché ha un aspetto suo e non quello del resto del gestionale: chi la usa
   non è seduto. Sta in piedi in corsia, con un tablet o un monitor a tre metri,
   spesso con i guanti. Serve densità e contrasto — numeri grandi, stati a
   colore, righe alte abbastanza da centrarle col pollice — non l'eleganza da
   scrivania che va bene per fatturazione e tariffe.
   È lo stesso motivo per cui la plancia del bordereau (.bpl-*) ha il suo
   linguaggio: la schermata segue il mestiere di chi la guarda.
   ========================================================================== */
#wq{display:flex;flex-direction:column;gap:14px}
#wq .wq-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  background:var(--sidebar);color:#EAF3F1;border-radius:12px;padding:12px 16px}
#wq .wq-sel{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0}
#wq .wq-sel select{background:#ffffff14;color:#EAF3F1;border:1px solid #ffffff26;border-radius:9px;
  padding:8px 11px;font:inherit;font-size:.92rem;font-weight:600}
#wq .wq-sub{color:#9fb0ac;font-size:.78rem}
#wq .wq-act{margin-left:auto;display:flex;gap:7px;flex-wrap:wrap}
#wq .wq-act .btn.ghost{background:#ffffff12;color:#D6E2DF;border-color:#ffffff20}
#wq .wq-act .btn.ghost:hover{background:#ffffff22}

/* Striscia KPI */
#wq .wq-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
#wq .wq-kpi{background:var(--panel);border:1px solid var(--hair);border-left:3px solid var(--hair);
  border-radius:10px;padding:11px 13px}
#wq .wq-kpi.ok{border-left-color:var(--ok)}
#wq .wq-kpi.warn{border-left-color:var(--warn)}
#wq .wq-kpi.crit{border-left-color:var(--crit)}
#wq .wq-kpi .l{font-size:.72rem;color:var(--muted)}
#wq .wq-kpi .v{font-family:var(--mono);font-size:1.45rem;font-weight:650;letter-spacing:-.02em;
  margin-top:3px;font-variant-numeric:tabular-nums}
#wq .wq-kpi .s{font-size:.7rem;color:var(--muted);margin-top:1px}

/* Le caselle dei compiti: sono il FILTRO, non decorazione. */
#wq .wq-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:10px}
#wq .wq-tile{all:unset;cursor:pointer;display:flex;align-items:center;gap:10px;
  background:var(--panel);border:1px solid var(--hair);border-radius:11px;padding:12px 14px;
  transition:border-color .12s,background .12s}
#wq .wq-tile:hover{border-color:var(--primary)}
#wq .wq-tile.on{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 1px var(--primary) inset}
#wq .wq-tile.crit .n{color:var(--crit)}
#wq .wq-tile .ic{font-size:1.05rem;opacity:.85}
#wq .wq-tile .n{font-family:var(--mono);font-size:1.5rem;font-weight:680;letter-spacing:-.03em;
  font-variant-numeric:tabular-nums;line-height:1}
#wq .wq-tile .l{font-size:.74rem;color:var(--muted);line-height:1.25}
#wq .wq-tile.clear{justify-content:center;color:var(--muted);font-size:.8rem;gap:6px}

#wq .wq-grid{display:grid;grid-template-columns:1fr 260px;gap:14px;align-items:start}
#wq .wq-panel{background:var(--panel);border:1px solid var(--hair);border-radius:12px;overflow:hidden}
#wq .wq-ph{padding:12px 16px;border-bottom:1px solid var(--hair);font-weight:620;font-size:.92rem;
  display:flex;align-items:center;gap:10px}
#wq .wq-ph .cnt{margin-left:auto;font-family:var(--mono);font-size:.72rem;color:var(--muted)}
#wq .wq-panel td{padding:11px 16px}
#wq .wq-att{font-family:var(--mono);font-size:.74rem;color:var(--muted)}
#wq .wq-att.ok{color:var(--ok)}
#wq .wq-att.crit{color:var(--crit);font-weight:650}
#wq .wq-vuoto{text-align:center;color:var(--muted);padding:34px 16px;font-size:.88rem}

/* Mini-mappa: dove si sta riempiendo, senza aprire niente. */
#wq .wq-map{display:flex;flex-wrap:wrap;gap:3px;padding:14px 16px}
#wq .wq-cell{width:13px;height:13px;border-radius:3px;background:var(--panel2);border:1px solid var(--hair)}
#wq .wq-cell.l1{background:#2E7D5133;border-color:#2E7D5155}
#wq .wq-cell.l2{background:#2E7D5177;border-color:#2E7D51aa}
#wq .wq-cell.l3{background:#B5731Aaa;border-color:#B5731A}
#wq .wq-cell.l4{background:#B23A3A;border-color:#B23A3A}
#wq .wq-cell.bl{background:repeating-linear-gradient(45deg,#B23A3A,#B23A3A 3px,#7a2626 3px,#7a2626 6px);border-color:#7a2626}
#wq .wq-leg{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:0 16px 14px;
  font-size:.68rem;color:var(--muted)}
#wq .wq-leg .wq-cell{margin-left:6px}
@media(max-width:900px){#wq .wq-grid{grid-template-columns:1fr}#wq .wq-act{margin-left:0;width:100%}}

/* ---- GRAFICI: sparkline nei KPI e andamento a 12 mesi ----
   [DIREZIONE 13/09/2026] «devi anche mettere grafici come da screenshots».
   Il riquadro tiene la cifra grossa, la variazione col suo colore e la linetta
   sotto — la stessa disposizione delle schermate mostrate. */
/* Le variabili sono --panel e --hair, NON --card/--bd: quelle non esistono in
   questo foglio e il riquadro usciva senza sfondo e senza bordo, spaiato
   accanto ai KPI semplici della stessa riga. Un colore che non esiste non da'
   errore, semplicemente non si vede — ed e' il modo in cui una schermata esce
   storta senza che niente si rompa.
   E .kpis e' una GRIGLIA, non un flex: 'flex:1 1 220px' non faceva niente. */
.kpi-spark{background:var(--panel);border:1px solid var(--hair);
  border-radius:12px;padding:15px 0 0;overflow:hidden;display:flex;flex-direction:column}
.ks-h{font-size:.76rem;color:var(--muted);padding:0 16px}
.ks-r{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:7px 16px 10px}
.ks-v{font-family:var(--mono);font-size:1.7rem;font-weight:640;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.ks-d{display:flex;flex-direction:column;line-height:1.15}
.ks-n{font-size:.66rem;color:var(--muted)}
/* La FRECCIA dice il movimento, il COLORE dice il giudizio: l'eccedenza che
   cala ha la freccia in giu' ed e' verde. Sono due informazioni diverse. */
.sv{font-size:.8rem;font-weight:700}
.sv.bene{color:#2e7d32}
.sv.male{color:#c62828}
.sv.neutro{color:var(--muted)}
svg.spark{display:block;width:100%;height:60px;margin-top:auto}
.spark.vuoto{height:60px;display:flex;align-items:center;justify-content:center;
  font-size:.72rem;color:var(--muted);background:var(--panel2)}

/* ---- END2END: il triangolo committente / zona / vettore ----
   Tre colonne affiancate che si filtrano a vicenda. Su schermo stretto
   diventano una sotto l'altra: la pagina resta leggibile su un telefono,
   perche' la domanda che risolve («posso tagliare questa zona?») uno se la
   fa anche in banchina, non solo alla scrivania. */
.e2e-wrap{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap}
.e2e-col{flex:1 1 260px;min-width:240px;background:var(--card);border:1px solid var(--bd);border-radius:10px;padding:14px}
.e2e-ch{font-weight:700;font-size:.95rem;margin-bottom:10px}
.e2e-tot{background:var(--bg);border:1px solid var(--bd);border-radius:8px;padding:10px 12px;margin-bottom:12px;font-size:.9rem}
.e2e-tot b{font-size:1.4rem}
.e2e-tl{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.e2e-box{border:1px solid var(--bd);border-radius:8px;margin-bottom:8px;cursor:pointer;overflow:hidden;transition:transform .08s,box-shadow .08s}
.e2e-box:hover{transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,.12)}
.e2e-box.on{outline:2px solid var(--acc);outline-offset:1px}
/* La casella VUOTA resta, spenta: una che sparisce fa credere che non esista,
   e la pagina cambia forma a ogni clic. */
.e2e-box.off{opacity:.45;cursor:default}
.e2e-box.off:hover{transform:none;box-shadow:none}
.e2e-bh{background:#2f3b38;color:#fff;padding:6px 10px;font-size:.78rem;font-weight:600}
.e2e-bv{padding:10px;text-align:center;font-size:1.3rem;font-weight:700;border-top:4px solid #9e9e9e;background:var(--card)}
.e2e-bs{text-align:center;font-size:.72rem;color:var(--muted);padding-bottom:8px}
.e2e-link{display:flex;align-items:center;justify-content:center;min-width:80px;padding-top:60px}
.e2e-rel{background:var(--card);border:2px solid var(--bd);border-radius:50%;width:76px;height:76px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;font-weight:700;font-size:1.05rem;color:var(--fg);box-shadow:0 1px 4px rgba(0,0,0,.08)}
/* La griglia 3x3 del doppio ABC: volume in orizzontale, margine in verticale.
   Cosi' si VEDE che e' una matrice, e la colonna non diventa un muro. */
.e2e-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:8px}
.e2e-grid .e2e-box{margin-bottom:0}
.e2e-grid .e2e-bh{padding:4px 6px;font-size:.72rem;text-align:center}
.e2e-grid .e2e-bv{padding:7px 2px;font-size:1.05rem;border-top-width:3px}
.e2e-grid .e2e-bs{font-size:.62rem;padding-bottom:5px}
.e2e-rel div{font-size:.62rem;font-weight:400;text-transform:uppercase;letter-spacing:.03em}
@media(max-width:900px){.e2e-link{display:none}}
table.e2e-heat td,table.e2e-heat th{font-size:.72rem;padding:5px 8px;white-space:nowrap}

/* AUTISTA — la scheda della fermata sul telefono (10/10/2026). Consegnato
   grande e verde, il motivo della mancata senza scelta già fatta, il
   contrassegno da incassare in evidenza, via e CAP che aprono la mappa. */
.aut-coda{margin-top:10px;padding:10px 12px;border-radius:10px;background:var(--warn-bg);color:var(--warn);font-weight:600;font-size:.9rem;border-left:5px solid var(--warn)}
.aut-coda-banner{margin:0 0 14px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
.aut-dest{font-weight:700;font-size:1.02rem}
.aut-mappa{display:inline-block;margin-top:4px;color:var(--primary);font-size:.9rem;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}
.aut-luogo,.aut-colli{color:var(--muted);font-size:.85rem;margin-top:2px}
.aut-cod{margin-top:8px;padding:8px 10px;border-radius:8px;background:var(--warn-bg);color:color-mix(in srgb,var(--warn) 72%,#000);font-size:.95rem}
.aut-azioni{margin-top:12px;display:flex;flex-direction:column;gap:10px}
.btn.aut-consegnato{min-height:52px;box-sizing:border-box;font-size:1.02rem}
.aut-mancata{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.aut-motivo-scelto{flex:1 1 100%;font-size:.9rem;font-weight:600}.aut-motivo-scelto:empty{display:none}
.aut-motivo{flex:1 1 180px;min-width:0;min-height:44px;padding:9px;border-radius:8px;border:1px solid var(--hair);background:var(--panel2);color:inherit;font:inherit}

/* ELENCHI SUL PALMARE — bordereaux e consegne come schede (10/10/2026).
   A 390 px erano tabelle più larghe dello schermo: il numero del giro andava a
   capo in tre righe e Esiti, Peso e Stato si vedevano solo scorrendo di lato.
   Sotto i 640 px UTILI (container query: conta lo spazio della scheda, non
   dello schermo) ogni riga diventa una scheda: il codice in testa su una riga,
   poi i campi con la loro etichetta. La riga resta lo stesso nodo: il clic apre
   il giro o la storia come prima. data-schede-label è solo presentazione. */
/* Quando: la classe a-schede la mette js/schede-auto.ts se la tabella NON
   ENTRA nello spazio che ha e quello spazio è sotto i 1000 px (palmare e
   tablet). La revisione della #97 aveva misurato le consegne a 700–768 px:
   con una soglia fissa a 640 px non erano schede e scorrevano di 300 px. In
   ufficio, a schermo largo, le tabelle restano tabelle. */
  .elenco-schede.a-schede table,.elenco-schede.a-schede tbody{display:block;width:100%}
  .elenco-schede.a-schede thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%)}
  .elenco-schede.a-schede tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;padding:14px;margin:12px;border:1px solid var(--hair);border-radius:10px;background:var(--panel)}
  .elenco-schede.a-schede tbody tr td{display:block;min-width:0;padding:0;border:0;text-align:left;white-space:normal;overflow-wrap:anywhere}
  .elenco-schede.a-schede td[data-schede-label]::before{content:attr(data-schede-label);display:block;color:var(--muted);font:600 11px var(--sans);letter-spacing:0;text-transform:none;margin-bottom:2px}
  /* Il numero intero, MAI tagliato coi puntini (un codice a metà è
     un'informazione nascosta, regola 11). Se su uno schermo ancora più stretto
     non entra, il browser lo manda a capo a un trattino (provato a 360 px). */
  .elenco-schede.a-schede td.code{grid-column:1/-1;font-size:.95rem;font-weight:700}
  .elenco-schede.a-schede td.elenco-freccia{display:none}
  /* Tabelle etichettate in automatico (js/schede-auto.ts): la prima colonna è
     di solito il codice, in testa alla scheda; una colonna senza intestazione
     (frecce, bottoni) non ha etichetta da mostrare. */
  .elenco-schede.a-schede tbody tr td:first-child{grid-column:1/-1;font-weight:600}
  .elenco-schede.a-schede td[data-schede-label=""]::before,.elenco-schede.a-schede tbody tr td:first-child::before{display:none}
  .elenco-schede.a-schede td[colspan]{grid-column:1/-1;text-align:center}
  /* Un distintivo di stato lungo («padroncino · Autotrasporti Esposito
     Giovanni») in mezza scheda: con il nowrap di .st spingeva fuori la scheda
     (Competenze 193 px, Mezzi 7 px; revisione). In scheda va a capo. */
  .elenco-schede.a-schede td .st{white-space:normal}
/* CROSS-DOCK — la schermata del lettore barcode (09/10/2026, prima dei test).
   La modalità era un'etichetta da 10 px, «IN» sempre blu pieno (sembrava
   scelto anche in OUT) e l'esito una riga grigia: chi spara 40 colli deve
   leggere modalità ed esito a un braccio di distanza. Colori dai token del
   tema, così il tema scuro segue da solo. */
.xdk-wrap{display:flex;flex-direction:column}
.xdk-lettore-cb{padding:16px 18px;display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:12px;align-items:end}
.xdk-bc-field{margin:0}
.field input#xdk-bc{font-family:var(--mono);font-size:1.15rem;min-height:48px;box-sizing:border-box;letter-spacing:.02em}
.field input#xdk-bc::placeholder{font-family:var(--sans);font-size:.95rem;letter-spacing:0}
.xdk-dirs{display:flex;gap:8px}
/* La tendina dello scarico porta il codice lista vero (25 caratteri) e il nome
   del file: senza min-width:0 allargava la colonna fino a 506 px e a 360 px il
   pulsante OUT finiva fuori dalla scheda (revisione 12/10/2026, B1). */
.xdk-arr-field{grid-column:1/-1;margin:0;min-width:0}
.xdk-arr-field select{width:100%;max-width:100%;min-width:0;text-overflow:ellipsis}
.btn.xdk-dir{width:auto;min-height:48px;box-sizing:border-box;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;background:var(--panel2);color:var(--soft);border:2px solid var(--hair)}
.btn.xdk-dir.xdk-in[aria-pressed="true"]{background:var(--ok);border-color:var(--ok);color:#fff}
.btn.xdk-dir.xdk-out[aria-pressed="true"]{background:var(--primary);border-color:var(--primary);color:#fff}
/* Lo smistamento in gate (mig. 071): terza modalità, colore suo. */
.btn.xdk-dir.xdk-smi[aria-pressed="true"]{background:var(--info);border-color:var(--info);color:#fff}
.xdk-modo[data-xdk-modo="SMI"]{border-color:var(--info);background:color-mix(in srgb,var(--info) 10%,transparent);color:var(--info)}
/* Tre bottoni: dove la scheda è stretta (tablet col menu, 834 px) vanno a capo invece di uscire. */
.xdk-dirs{flex-wrap:wrap}
.xdk-modo{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:10px 14px;border-radius:10px;border:2px solid var(--warn);background:var(--warn-bg);color:var(--warn)}
.xdk-modo b{font-size:1.05rem}
.xdk-modo span{color:var(--soft);font-size:.88rem}
.xdk-modo .xdk-modo-term{color:inherit;font-weight:700}
.xdk-modo .xdk-modo-cod{color:inherit;font-weight:700;font-size:1.05rem;display:none}
.pc-xdk-corto{display:none}
.xdk-modo[data-xdk-modo="IN"]{border-color:var(--ok);background:var(--ok-bg);color:var(--ok)}
.xdk-modo[data-xdk-modo="OUT"]{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}
.xdk-esito{grid-column:1/-1;font-size:1.05rem;font-weight:600;padding:12px 14px;border-radius:10px;border-left:6px solid var(--hair);background:var(--panel2);color:var(--soft);overflow-wrap:anywhere}
.xdk-esito:empty{display:none}
.xdk-esito[data-xdk-esito="ok"]{background:var(--ok-bg);color:var(--ok);border-left-color:var(--ok)}
.xdk-esito[data-xdk-esito="warn"]{background:var(--warn-bg);color:var(--warn);border-left-color:var(--warn)}
.xdk-esito[data-xdk-esito="crit"]{background:var(--crit-bg);color:var(--crit);border-left-color:var(--crit)}
.xdk-esito[data-xdk-esito="attesa"]{color:var(--muted);font-weight:500}
.xdk-modo b{color:color-mix(in srgb,currentColor 72%,#000)}
.xdk-esito[data-xdk-esito="ok"]{color:color-mix(in srgb,var(--ok) 72%,#000)}
.xdk-esito[data-xdk-esito="warn"]{color:color-mix(in srgb,var(--warn) 72%,#000)}
@media (max-width:700px){
  .xdk-lettore{order:-1;scroll-margin-top:4px}
  /* [17/10/2026, T-1] Finché la pagina tiene il lettore in cima (classe messa e
     tolta da inCima() in page.ts) l'ancoraggio del browser è spento: con
     order:-1 segue un riquadro che sta SOTTO il lettore, e in CI (Chrome 131)
     spostava la pagina da solo. Quando scorre l'operatore torna acceso. */
  html.xdk-in-cima,html.xdk-in-cima body{overflow-anchor:none}
  /* La descrizione la dice già la modalità del lettore («Lettore: IN…»): sul
     palmare toglie spazio al collo che si sta sparando. */
  .xdk-intro{display:none}
  /* Compatto: il lettore intero (scarico, collo, IN/OUT, modalità, esito)
     deve stare in 405 px. Bottoni e campo restano alti 56 px, da pollice. */
  .xdk-lettore-cb{grid-template-columns:minmax(0,1fr);padding:10px 12px;gap:8px}
  .xdk-dirs{display:grid;grid-template-columns:1fr 1fr}
  /* Tre modalità su una riga (mig. 071): «▼ IN», «▲ OUT», «⇄ GATE». Una
     seconda riga spingeva la modalità 4 px sotto lo schermo. */
  .xdk-dirs{grid-template-columns:repeat(3,minmax(0,1fr))}
  .xdk-dir-l{display:none}
  .xdk-modo[data-xdk-modo="SMI"] #xdk-modo-spiega{display:none}
  .btn.xdk-dir{width:100%;min-height:56px;font-size:.95rem;padding:0 6px;white-space:nowrap}
  .field input#xdk-bc{font-size:1.25rem;min-height:56px}
  .xdk-modo{padding:6px 10px;gap:0 8px}
  .xdk-modo span{font-size:.8rem}
  /* Scelta la modalità, il colore e «Lettore: IN» bastano: la frase di
     spiegazione lascia il posto all'esito del collo. */
  .xdk-modo[data-xdk-modo="IN"] #xdk-modo-spiega,.xdk-modo[data-xdk-modo="OUT"] #xdk-modo-spiega{display:none}
  /* [DIREZIONE 15/10/2026] «Testi enormi»: sul palmare una riga ciascuno.
     Il terminal resta, come codice: il 14/10 si sparava su Napoli. */
  .xdk-modo.ha-cod .xdk-modo-cod{display:inline}
  .xdk-modo.ha-cod #xdk-modo-term{display:none}
  .pc-xdk-lungo{display:none}
  .pc-xdk-corto{display:inline}
  #xdk-prova .note{padding:6px 10px;gap:8px!important;flex-wrap:nowrap!important}
  #xdk-prova .note .btn,#xdk-prova .note .st{white-space:nowrap}
  .xdk-esito{padding:8px 10px;font-size:.95rem;line-height:1.3}
  .xdk-esito [data-xdk-forza]{display:block;width:100%;margin-top:6px}
  /* La risposta del collo SUBITO SOTTO il campo, prima di IN/OUT e modalità:
     «rileggi» con «Registra comunque», un'eccedenza FERCAM decodificata o
     «Scegli la modalità» sono lunghe 4-6 righe, e sotto la modalità finivano
     fuori dallo schermo (revisione PR #131, D1-D4). */
  .xdk-lettore-cb>*{order:2}
  .xdk-lettore-cb>.xdk-arr-field,.xdk-lettore-cb>.xdk-bc-field{order:0}
  .xdk-lettore-cb>.xdk-esito{order:1}
}

:root{--ground:#f5f8fa;--panel:#fff;--panel2:#f1f6f8;--sidebar:#10212c;--ink:#15252f;--soft:#364e5d;--muted:#526975;--hair:#dce7eb;--primary:#087fa9;--primary-soft:#e5f4fa;--info:#087fa9;--sans:"Segoe UI",Arial,sans-serif}
.shell{grid-template-columns:248px minmax(0,1fr)}
.shell>.smyb-sidebar{background:var(--sidebar);padding:22px 16px;gap:16px;color:#d8e6ed}
.brand .smyb-logo{width:156px;height:auto;display:block;background:white;padding:8px 10px;border-radius:8px}
.brand .smyb-product{font-size:10px;letter-spacing:.12em;color:var(--muted)}
.smyb-sidebar .brand{display:flex;flex-direction:column;align-items:flex-start;padding:0 4px 4px;gap:10px}
.smyb-sidebar .smyb-product{color:#a7c4d3;padding-left:2px}
.login .brand{flex-direction:column;align-items:flex-start;gap:7px}.login .smyb-logo{width:180px;padding:0}.login .smyb-product{margin-left:4px}
#nav{display:flex;flex-direction:column;gap:10px}
#nav>a{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#18394a;color:#c5efff;border:1px solid #315466;border-radius:7px;font-size:13px;margin:0}
#nav .smyb-nav-group{border:0}#nav .smyb-nav-group[hidden]{display:none}
#nav summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;color:#a9c4d2;font-size:11px;font-weight:650;padding:9px 10px;text-transform:uppercase;letter-spacing:.06em;cursor:pointer}
#nav summary::-webkit-details-marker{display:none}#nav summary:after{content:'+';font-size:16px;font-weight:400}#nav details[open]>summary:after{content:'−'}
#nav button{box-sizing:border-box;width:100%;font-size:13px;line-height:1.4;min-height:40px;padding:10px;color:#d7e6ee;gap:11px}
#nav button.on{background:#164359;color:#effaff;box-shadow:inset 3px 0 #12a9d8;font-weight:600}
.smyb-nav-icon{width:17px;height:17px;flex-shrink:0;color:#85cfe7}#nav button.on .smyb-nav-icon{color:#55c9ec}
.smyb-sidebar .side-foot .u{color:#e8f2f7}.smyb-sidebar .side-foot .u small{color:#a7c4d3}
.top{min-height:63px;padding:16px 28px}.top .crumb{font-family:var(--sans);font-size:12px;letter-spacing:.02em;text-transform:none}.top .live{font-family:var(--sans);font-size:11px}
.content{max-width:1420px;padding:28px}.card,.kpi{box-shadow:0 2px 6px #17374804;border-color:var(--hair);border-radius:10px}
h1.vh{font-size:26px;font-weight:650;letter-spacing:-.03em}.kpi .n{font-family:var(--sans);font-weight:650;font-variant-numeric:tabular-nums}.kpi .l{font-size:12px}
th{font-family:var(--sans);font-size:11px;letter-spacing:.015em}.num{white-space:nowrap}.field label{font-family:var(--sans);font-size:12px;letter-spacing:0;text-transform:none}
.smyb-menu-toggle{display:none}#nav button:focus-visible,#nav summary:focus-visible,.smyb-menu-toggle:focus-visible{outline:2px solid #66d6f5;outline-offset:3px}
@media(max-width:820px){
 .shell{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}.shell>.smyb-sidebar{position:static;height:auto;display:block;padding:14px 20px;overflow:visible}
 .smyb-sidebar .brand{flex-direction:row;align-items:center;justify-content:space-between;gap:14px;padding:0}.smyb-sidebar .smyb-logo{width:111px;padding:5px 8px}.smyb-sidebar .smyb-product{font-size:9px;flex:1}
 .smyb-menu-toggle{display:block;background:#183f53;border:1px solid #3c6478;color:white;border-radius:7px;padding:9px 11px;font:inherit;font-size:12px;min-height:42px;cursor:pointer}
 .smyb-sidebar #nav{display:none;margin-top:15px;padding:8px 0}.smyb-sidebar.smyb-menu-open #nav{display:flex}.smyb-sidebar .side-foot{display:none}.smyb-sidebar.smyb-menu-open .side-foot{display:flex}
 .top{padding:13px 20px;min-height:53px}.content{padding:22px 20px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kpi{padding:14px}.kpi .n{font-size:24px}.card .ch{flex-wrap:wrap}h1.vh{font-size:24px}
}
@media(max-width:360px){.smyb-sidebar .smyb-product{font-size:8px;letter-spacing:.06em}.smyb-sidebar .brand{gap:8px}.smyb-sidebar .smyb-logo{width:100px}.smyb-menu-toggle{padding:8px}}

:root{--smyb-icon-dashboard:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%203h7v7H3zM14%203h7v7h-7zM3%2014h7v7H3zM14%2014h7v7h-7z%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-cockpit:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2017a9%209%200%201%201%2018%200M12%2013l5-5M5%2017h14M7%208l1%201M12%205v2%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-shipment:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m3%207%209-4%209%204v10l-9%204-9-4zM3%207l9%205%209-5M12%2012v9M7%205l9%205%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-manifest:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%203h8l4%204v14H6zM14%203v5h4M9%2012h6M9%2016h2m2%200h2%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-delivery:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%205h12v12H3zM15%209h3l3%204v4h-6M5%2019h2m9%200h2M6%2010l2%202%204-4%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-planning:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%205h16v16H4zM8%203v4m8-4v4M4%2010h16M8%2014h2m4%200h2m-8%204h2%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-driver:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%203a9%209%200%201%200%200%2018%209%209%200%200%200%200-18M3%2011h18M12%2013v8M9%2011a3%203%200%200%200%206%200%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-pickup:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%2014v6h16v-6M12%2016V3M7%208l5-5%205%205M4%2014h4l2%203h4l2-3h4%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-held:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%205h13v14H3zM3%209h13M8%205v4M18%2011a5%205%200%201%200%200%2010%205%205%200%200%200%200-10M18%2014v3l2%201%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-partner:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%206h6v6H3zM15%2012h6v6h-6zM9%209h6l3%203M15%2015H9l-3-3%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-crossdock:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%208V4h16v4M4%2016v4h16v-4M2%2010h14l-3-3m3%203-3%203M22%2014H8l3-3m-3%203%203%203%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-warehouse:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2021V8l9-5%209%205v13M7%2021V11h10v10M7%2015h10M7%2019h10%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-pallet:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%204h7v10H4zM13%204h7v10h-7zM2%2017h20M3%2021v-4m9%204v-4m9%204v-4M7%204v3m9-3v3%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-quote:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%203h14v18H5zM8%207h8M8%2011h4M8%2016l2%202%205-5%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-tariff:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%203h9l9%209-9%209-9-9zM7%207h.01M11%2010h5m-6%203h5M15%208c-5-1-7%206-2%208%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-preinvoice:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%203h12v18l-3-2-3%202-3-2-3%202zM9%207h6M9%2011h6M9%2015h3%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-invoice:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%203h12v6M4%203v18h8M7%207h6M7%2011h3M14%2011h7v10h-7zM16%2014h3M16%2017h.01m3%200h.01%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-cash:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M2%206h20v12H2zM12%209a3%203%200%201%200%200%206%203%203%200%200%200%200-6M5%2010v4m14-4v4%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-balance:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%203v18M5%2021h14M4%207h16M6%207l-4%208h8zM18%207l-4%208h8z%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-fuel:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%2021V4h10v17M4%2010h10M2%2021h14M17%205l3%203v10a2%202%200%200%201-4%200v-4h-2M18%206v4h2%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-performance:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%203v17h17M8%2016v-4m5%204V8m5%208V4%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-endtoend:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%204h6v6H3zM15%2014h6v6h-6zM9%207h6a3%203%200%200%201%200%206H9a3%203%200%200%200%200%206h6M12%2017l3%202-3%202%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-trace:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10%203a7%207%200%201%200%200%2014%207%207%200%200%200%200-14M15%2015l6%206M7%2010l2%202%204-5%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-events:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%203v18M3%206h6M3%2012h6M3%2018h6M12%206h9M12%2012h7M12%2018h9%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-shield:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m12%203%208%203v6c0%205-8%209-8%209s-8-4-8-9V6zM8%2012l3%203%205-6%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-vehicle:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%206h11v11H3zM14%2010h4l3%204v3h-7M5%2019a2%202%200%201%200%204%200%202%202%200%200%200-4%200M15%2019a2%202%200%201%200%204%200%202%202%200%200%200-4%200%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-contacts:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%203h15v18H5zM3%207h4M3%2012h4M3%2017h4M12%206a3%203%200%201%200%200%206%203%203%200%200%200%200-6M8%2018v-1a4%204%200%200%201%208%200v1%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-territory:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m3%206%206-3%206%203%206-3v15l-6%203-6-3-6%203zM9%203v15M15%206v15%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-upload:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%2015v6h16v-6M12%2016V3M7%208l5-5%205%205%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-users:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M9%2012a4%204%200%201%200%200-8%204%204%200%200%200%200%208M2%2021v-3a5%205%200%200%201%205-5h4a5%205%200%200%201%205%205v3M17%204a4%204%200%200%201%200%208m2%202a5%205%200%200%201%203%204v3%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-section:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%204h16v16H4zM4%209h16M9%209v11%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-save:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%203h13l3%203v15H4zM8%203v6h8V3M8%2021v-8h8v8%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-search:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10%203a7%207%200%201%200%200%2014%207%207%200%200%200%200-14M15%2015l6%206%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-filter:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%204h18l-7%208v7l-4%202v-9z%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-preview:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M2%2012s4-7%2010-7%2010%207%2010%207-4%207-10%207S2%2012%202%2012M12%209a3%203%200%201%200%200%206%203%203%200%200%200%200-6%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-check:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%2012l5%205L20%206%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-clock:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%203a9%209%200%201%200%200%2018%209%209%200%200%200%200-18M12%207v5l3%202%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-warning:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m12%203%2010%2018H2zM12%209v5m0%203v.01%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-info:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%203a9%209%200%201%200%200%2018%209%209%200%200%200%200-18M12%2011v6m0-10v.01%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-edit:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m4%2015%2012-12%205%205L9%2020l-6%201zM13%206l5%205%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-receive:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%2015v6h16v-6M12%203v13M7%2011l5%205%205-5%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-transfer:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%207h18l-4-4m4%204-4%204M21%2017H3l4-4m-4%204%204%204%22%2F%3E%3C%2Fsvg%3E");--smyb-icon-undo:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M8%204%203%209l5%205M3%209h11a6%206%200%200%201%200%2012h-3%22%2F%3E%3C%2Fsvg%3E");}
#content[data-smyb-view="dash"]{--smyb-module-icon:var(--smyb-icon-dashboard)}
#content[data-smyb-view="cok"]{--smyb-module-icon:var(--smyb-icon-cockpit)}
#content[data-smyb-view="sped"]{--smyb-module-icon:var(--smyb-icon-shipment)}
#content[data-smyb-view="bord"]{--smyb-module-icon:var(--smyb-icon-manifest)}
#content[data-smyb-view="con"]{--smyb-module-icon:var(--smyb-icon-delivery)}
#content[data-smyb-view="pia"]{--smyb-module-icon:var(--smyb-icon-planning)}
#content[data-smyb-view="aut"]{--smyb-module-icon:var(--smyb-icon-driver)}
#content[data-smyb-view="rit"]{--smyb-module-icon:var(--smyb-icon-pickup)}
#content[data-smyb-view="gia"]{--smyb-module-icon:var(--smyb-icon-held)}
#content[data-smyb-view="pre"]{--smyb-module-icon:var(--smyb-icon-clock)}
#content[data-smyb-view="aff"]{--smyb-module-icon:var(--smyb-icon-partner)}
#content[data-smyb-view="xdk"]{--smyb-module-icon:var(--smyb-icon-crossdock)}
#content[data-smyb-view="wms"]{--smyb-module-icon:var(--smyb-icon-warehouse)}
#content[data-smyb-view="epal"]{--smyb-module-icon:var(--smyb-icon-pallet)}
#content[data-smyb-view="prv"]{--smyb-module-icon:var(--smyb-icon-quote)}
#content[data-smyb-view="tar"]{--smyb-module-icon:var(--smyb-icon-tariff)}
#content[data-smyb-view="pf"]{--smyb-module-icon:var(--smyb-icon-preinvoice)}
#content[data-smyb-view="fat"]{--smyb-module-icon:var(--smyb-icon-invoice)}
#content[data-smyb-view="cod"]{--smyb-module-icon:var(--smyb-icon-cash)}
#content[data-smyb-view="comp"]{--smyb-module-icon:var(--smyb-icon-balance)}
#content[data-smyb-view="fuel"]{--smyb-module-icon:var(--smyb-icon-fuel)}
#content[data-smyb-view="perf"]{--smyb-module-icon:var(--smyb-icon-performance)}
#content[data-smyb-view="e2e"]{--smyb-module-icon:var(--smyb-icon-endtoend)}
#content[data-smyb-view="trac"]{--smyb-module-icon:var(--smyb-icon-trace)}
#content[data-smyb-view="evt"]{--smyb-module-icon:var(--smyb-icon-events)}
#content[data-smyb-view="sent"]{--smyb-module-icon:var(--smyb-icon-shield)}
#content[data-smyb-view="pc"]{--smyb-module-icon:var(--smyb-icon-events)}
#content[data-smyb-view="mez"]{--smyb-module-icon:var(--smyb-icon-vehicle)}
#content[data-smyb-view="ana"]{--smyb-module-icon:var(--smyb-icon-contacts)}
#content[data-smyb-view="ter"]{--smyb-module-icon:var(--smyb-icon-territory)}
#content[data-smyb-view="imp"]{--smyb-module-icon:var(--smyb-icon-upload)}
#content[data-smyb-view="ut"]{--smyb-module-icon:var(--smyb-icon-users)}
#content[data-smyb-view="bi"]{--smyb-module-icon:var(--smyb-icon-performance)}
#content[data-smyb-view="cont"]{--smyb-module-icon:var(--smyb-icon-balance)}
#content h1.vh::before{content:'';display:inline-block;width:1em;height:1em;margin-right:.42em;vertical-align:-.1em;background:var(--primary);mask:var(--smyb-module-icon,var(--smyb-icon-section)) center/contain no-repeat}
.card>.ch{position:relative;padding-left:46px}
.card>.ch::before{content:'';position:absolute;left:18px;top:16px;width:17px;height:17px;pointer-events:none;background:currentColor;opacity:.8;mask:var(--smyb-icon-section) center/contain no-repeat}
.btn[data-epalsave],.btn[data-magsave],.btn[data-artsave],.btn[data-mezsave],.btn[data-ubicsave],.btn[data-asnsave],.btn[data-grigsave],.btn[data-fuelbasesave],.btn[data-fuelparamsave],.btn[data-fuelrilsave],.btn[data-invsave],.btn[data-profsave],.btn[data-ritsave],.btn[data-srcsave]{--smyb-action-icon:var(--smyb-icon-save)}
.btn[data-anacerca]{--smyb-action-icon:var(--smyb-icon-search)}
.btn[data-tracfiltra],.btn[data-evtfiltra]{--smyb-action-icon:var(--smyb-icon-filter)}
.btn[data-csvprev]{--smyb-action-icon:var(--smyb-icon-preview)}
.btn[data-csvgo],.btn[data-impgo],.btn[data-terrgo]{--smyb-action-icon:var(--smyb-icon-upload)}
.btn[data-asave],.btn[data-esitosave]{--smyb-action-icon:var(--smyb-icon-check)}
.btn[data-codinc]{--smyb-action-icon:var(--smyb-icon-cash)}
.btn[data-usave]{--smyb-action-icon:var(--smyb-icon-users)}
.btn[data-uscsave],.btn[data-preleva]{--smyb-action-icon:var(--smyb-icon-shipment)}
.btn[data-ricevi]{--smyb-action-icon:var(--smyb-icon-receive)}
.btn[data-inbcorrsave],.btn[data-rettsave],.btn[data-prelmansave]{--smyb-action-icon:var(--smyb-icon-edit)}
.btn[data-trasfsave]{--smyb-action-icon:var(--smyb-icon-transfer)}
.btn[data-inbstornosave]{--smyb-action-icon:var(--smyb-icon-undo)}
.btn[data-anaimport="anteprima"]{--smyb-action-icon:var(--smyb-icon-preview)}
.btn[data-anaimport="applica"]{--smyb-action-icon:var(--smyb-icon-check)}
.btn[data-epalsave]::before,.btn[data-magsave]::before,.btn[data-artsave]::before,.btn[data-mezsave]::before,.btn[data-ubicsave]::before,.btn[data-asnsave]::before,.btn[data-grigsave]::before,.btn[data-fuelbasesave]::before,.btn[data-fuelparamsave]::before,.btn[data-fuelrilsave]::before,.btn[data-invsave]::before,.btn[data-profsave]::before,.btn[data-ritsave]::before,.btn[data-srcsave]::before,.btn[data-anacerca]::before,.btn[data-tracfiltra]::before,.btn[data-evtfiltra]::before,.btn[data-csvprev]::before,.btn[data-csvgo]::before,.btn[data-impgo]::before,.btn[data-terrgo]::before,.btn[data-asave]::before,.btn[data-esitosave]::before,.btn[data-codinc]::before,.btn[data-usave]::before,.btn[data-uscsave]::before,.btn[data-preleva]::before,.btn[data-ricevi]::before,.btn[data-inbcorrsave]::before,.btn[data-rettsave]::before,.btn[data-prelmansave]::before,.btn[data-trasfsave]::before,.btn[data-inbstornosave]::before,.btn[data-anaimport="anteprima"]::before,.btn[data-anaimport="applica"]::before{content:'';display:inline-block;flex:none;width:16px;height:16px;margin-right:7px;vertical-align:-3px;background:currentColor;mask:var(--smyb-action-icon) center/contain no-repeat;pointer-events:none}
.st.ok{--smyb-state-icon:var(--smyb-icon-check)}.st.info{--smyb-state-icon:var(--smyb-icon-info)}.st.warn{--smyb-state-icon:var(--smyb-icon-clock)}.st.crit{--smyb-state-icon:var(--smyb-icon-warning)}.st.bozza{--smyb-state-icon:var(--smyb-icon-edit)}
.st:is(.ok,.info,.warn,.crit,.bozza)::before{content:'';display:inline-block;width:12px;height:12px;margin-right:4px;vertical-align:-2px;background:currentColor;mask:var(--smyb-state-icon) center/contain no-repeat;pointer-events:none}
@media(forced-colors:active){#content h1.vh::before,.card>.ch::before,.btn::before,.st::before{background:CanvasText}}
