/* TMWE 2.0 — UX components (file 36): RecordDrawer, RecordHeader, SectionTabs,
   DataAccordion, FieldRow, ValidationSummary, SearchableSelect. Additivo a tmwe.css. */

/* ---------- RecordDrawer: v.010848 — POPUP A TUTTO SCHERMO (Luca 12/08: "al posto della side bar
   destra stretta, popup a tutto schermo 85/90% con tasto Indietro; la pagina record deve occupare
   più spazio"). Ora è un overlay centrato che copre ~90% dello schermo, non più uno sheet laterale. */
.rdrawer{position:fixed;top:3.5vh;left:50%;transform:translate(-50%,12px);height:93vh;
  width:min(1680px,92vw);max-width:100vw;
  background:var(--bg);border-radius:16px;box-shadow:0 30px 90px rgba(10,25,50,.4);z-index:60;
  display:flex;flex-direction:column;transition:transform .18s ease,opacity .18s ease;opacity:0;pointer-events:none;outline:none;overflow:hidden}
.rdrawer.open{transform:translate(-50%,0);opacity:1;pointer-events:auto}
.rdrawer-veil{position:fixed;inset:0;background:rgba(8,16,30,.55);z-index:55;opacity:0;pointer-events:none;transition:opacity .2s}
.rdrawer-veil.open{opacity:1;pointer-events:auto}
@media(max-width:900px){.rdrawer{width:100vw;height:100vh;top:0;border-radius:0}}
/* corpo record: griglia larga, sfrutta lo spazio */
#rbody{padding:16px 22px 40px}
.rdrawer .wrap,.rdrawer .wb{max-width:none}

/* ---------- RecordHeader sticky ---------- */
.rhead{position:sticky;top:0;z-index:5;background:var(--panel);border-bottom:1px solid var(--line);
  padding:12px 18px 0;display:flex;flex-direction:column;gap:8px}
.rhead .l1{display:flex;align-items:center;gap:10px;min-height:28px}
.rhead .l1 b{font-size:15px}
.rhead .l2{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted);flex-wrap:wrap}
.rhead .alarm{font-size:11.5px;font-weight:600;color:var(--err);background:var(--err-card);border:1px solid var(--err);border-radius:7px;padding:2px 9px}
.rhead .sp{flex:1}
.rhead .hbtn{border:1px solid var(--line);background:var(--panel);border-radius:8px;min-height:34px;padding:5px 11px;font-size:12px;cursor:pointer}
.rhead .hbtn:hover{border-color:#c8d4e2}
.rhead .dirty{font-size:11px;color:var(--warn);font-weight:600;display:none}
.rhead .dirty.on{display:inline}

/* ---------- SectionTabs ---------- */
.rtabs{display:flex;gap:2px;overflow-x:auto;margin:0 -18px;padding:0 12px}
.rtab{border:none;background:none;border-bottom:2.5px solid transparent;border-radius:0;padding:9px 12px;
  min-height:40px;font-size:12.5px;color:var(--muted);cursor:pointer;white-space:nowrap;display:flex;gap:6px;align-items:center}
.rtab:hover{color:var(--ink);background:none;border-bottom-color:#c8d4e2}
.rtab.on{color:var(--brand);border-bottom-color:var(--brand);font-weight:600}
.rtab .cnt{font-size:10.5px;background:var(--brand-soft);color:var(--brand);border-radius:9px;padding:1px 7px;font-weight:600}
.rtab .errdot{width:7px;height:7px;border-radius:50%;background:var(--err)}
.rbody{flex:1;overflow-y:auto;padding:16px 18px 90px}

/* ---------- DataAccordion (cassetto) ---------- */
.acc{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);margin-bottom:10px;overflow:hidden}
.acc>summary{list-style:none;display:flex;align-items:center;gap:10px;padding:11px 14px;cursor:pointer;min-height:44px;user-select:none}
.acc>summary::-webkit-details-marker{display:none}
.acc>summary:hover{background:var(--hover)}
.acc>summary .ttl{font-weight:600;font-size:13px}
.acc>summary .synth{margin-left:auto;font-size:12px;color:var(--muted);text-align:right}
.acc>summary .arr{color:var(--muted);transition:transform .15s;font-size:11px}
.acc[open]>summary .arr{transform:rotate(90deg)}
.acc .accbody{padding:4px 16px 16px;border-top:1px solid var(--line)}
.acc.warn{border-color:var(--warn);background:var(--warn-card)}
.acc.warn>summary .ttl::after{content:" · dati mancanti";color:var(--warn);font-size:11px;font-weight:600}
.acc.err{border-color:var(--err)}
.acc.err>summary .synth{color:var(--err);font-weight:600}
.acc.empty>summary{min-height:36px;padding:7px 14px;opacity:.75}

/* ---------- FieldRow consultazione (etichetta sx · valore dx) ---------- */
/* INIZIO v.010801 — righe-campo compatte: label più stretta, meno padding */
.frow{display:flex;gap:12px;padding:3px 0;font-size:12.5px;border-bottom:1px dashed var(--line-soft);align-items:baseline}
.frow:last-child{border-bottom:none}
.frow .fl{width:138px;min-width:138px;color:var(--muted);font-size:11.5px}
/* FINE v.010801 */
.frow .fv{font-weight:500;text-align:left}
.frow .fv b{font-weight:700}
.frow .fv .un{color:var(--muted);font-weight:400;font-size:11.5px;margin-left:3px}

/* ---------- Moduli modifica: label sopra, 2-3 colonne, input 40px ---------- */
.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px 12px;padding-top:10px}
.fgrid .wide{grid-column:1/-1}
.fgrid .fld label{font-size:11.5px;color:var(--muted);display:block;margin-bottom:3px}
.fgrid .fld label b{color:var(--err)}
.fgrid input,.fgrid select,.fgrid textarea{font:inherit;width:100%;min-height:40px;padding:8px 11px;
  border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);outline:none}
.fgrid textarea{min-height:64px;resize:vertical}
.fgrid input:focus,.fgrid select:focus,.fgrid textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(23,92,211,.12)}
.fgrid input.bad{border-color:var(--err);background:var(--err-card)}
.fgrid .ferr{font-size:11px;color:var(--err);margin-top:3px;display:none}
.fgrid .ferr.on{display:block}
/* ══ INIZIO v.010863 — CONCETTO ALFABETO ══════════════════════════════════════════
   Larghezze campo calibrate sul contenuto atteso: basta con minmax(190px,1fr) che gonfia
   "gg" o "coeff" a tutta colonna. `.agrid` è un MODIFICATORE di `.fgrid` (si usa insieme:
   class="fgrid agrid") → conserva stile input, validazione e dirty-tracking, cambia solo il
   layout in flex-wrap e assegna a ogni campo una larghezza adatta. Classi a-<n>ch ≈ n caratteri
   (+padding/bordo). a-grow prende lo spazio residuo; a-full va a capo su tutta la riga. */
.agrid{display:flex!important;flex-wrap:wrap;gap:12px 14px;align-items:flex-end}
.agrid .fld{flex:0 0 auto;margin:0}
.agrid .fld input,.agrid .fld select,.agrid .fld textarea{width:100%;box-sizing:border-box}
.agrid .a-3ch{width:68px}    /* gg, ore, n° a 1-2 cifre */
.agrid .a-4ch{width:84px}    /* coeff. vol. (es. 3333), livello */
.agrid .a-5ch{width:98px}    /* peso kg, fuel % (max 100) */
.agrid .a-6ch{width:116px}   /* ISO paese, codici brevi */
.agrid .a-8ch{width:148px}   /* importi, prezzi */
.agrid .a-10ch{width:172px}  /* select brevi (Sì/No + label) */
.agrid .a-12ch{width:204px}  /* select con parole (Tipo, Area) */
.agrid .a-16ch{width:256px}  /* select lunghe (Livello 3 (Express default)) */
.agrid .a-24ch{width:340px}  /* nome/descrizione media */
.agrid .a-grow{flex:1 1 240px;min-width:220px}  /* nomi/descrizioni: prende il residuo */
.agrid .a-full{flex:1 1 100%;width:100%}         /* note, campi larghi: riga intera */
@media(max-width:640px){.agrid{gap:10px}.agrid .fld,.agrid [class*="a-"]{flex:1 1 100%;width:auto}}
/* ══ FINE v.010863 ══ */
.radio-row{display:flex;gap:14px;align-items:center;min-height:40px;flex-wrap:wrap}
.radio-row label{display:flex;gap:6px;align-items:center;font-size:12.5px;color:var(--ink);cursor:pointer}
.radio-row input{width:16px;height:16px;min-height:0;accent-color:var(--brand)}
.cond{border-left:3px solid var(--brand-soft);padding-left:12px;margin-top:6px}

/* ---------- Barra Salva/Annulla (Fitts: sempre visibile) ---------- */
.savebar{position:sticky;bottom:0;z-index:6;display:flex;gap:10px;align-items:center;background:var(--panel);
  border-top:1px solid var(--line);margin:0 -18px;padding:12px 18px}
.savebar .primary{min-height:42px;padding:9px 22px}
.savebar .st{font-size:12px;color:var(--muted)}
.savebar .st.ok{color:var(--ok)} .savebar .st.err{color:var(--err)}

/* ---------- ValidationSummary ---------- */
.vsum{background:var(--err-card);border:1px solid var(--err);border-radius:10px;padding:10px 14px;font-size:12.5px;color:var(--err-ink);margin-bottom:12px}
.vsum b{display:block;margin-bottom:4px}
.vsum a{color:var(--err-ink);cursor:pointer;text-decoration:underline;display:block;padding:1px 0}

/* ---------- SearchableSelect (combobox) ---------- */
.combo{position:relative}
.combo input{min-height:40px}
.combo .list{position:absolute;top:calc(100% + 3px);left:0;right:0;background:var(--panel);border:1px solid var(--line);
  border-radius:9px;box-shadow:0 12px 30px rgba(10,25,50,.14);max-height:230px;overflow-y:auto;z-index:20;display:none}
.combo.open .list{display:block}
.combo .opt{padding:8px 12px;font-size:12.5px;cursor:pointer;display:flex;gap:8px;align-items:center;min-height:36px}
.combo .opt small{color:var(--muted);margin-left:auto}
.combo .opt:hover,.combo .opt.sel{background:var(--brand-soft)}
.combo .newopt{border-top:1px dashed var(--line);color:var(--brand);font-weight:600}

/* Il drawer legacy (wizard/processi complessi) deve stare SOPRA il RecordDrawer */
.drawer{z-index:90}

/* ---------- Toggle consultazione/modifica ---------- */
.modetg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}
.modetg button{border:none;border-radius:0;min-height:34px;padding:5px 14px;font-size:12px;background:var(--panel);color:var(--muted)}
.modetg button.on{background:var(--brand);color:#fff;font-weight:600}
/* v.010863 — toggle modalità compatto a icona penna (sostituisce Consulta/Modifica) */
.modeicon{display:inline-flex;align-items:center;justify-content:center;width:34px;min-height:34px;padding:0;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--muted);cursor:pointer}
.modeicon:hover{color:var(--brand);border-color:var(--brand)}
.modeicon.on{background:var(--brand);border-color:var(--brand);color:#fff}
.modeicon svg{margin:0}
[data-mode="view"] .only-edit{display:none!important}
[data-mode="edit"] .only-view{display:none!important}

/* INIZIO v.010801h — Rate Engine: toggle gamba Cliente/Fornitore + strip statistiche cliente */
.rlegtg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;margin-bottom:10px}
.rlegtg button{border:none;border-radius:0;min-height:34px;padding:6px 15px;font-size:12.5px;background:var(--panel);color:var(--muted);cursor:pointer}
.rlegtg button:hover{background:var(--hover)}
.rlegtg button.on{background:var(--brand);color:#fff;font-weight:600}
.rstat{background:var(--brand-soft);border:1px solid var(--brand);border-radius:9px;padding:7px 12px;font-size:12px;color:var(--ink);margin-bottom:10px}
.rstat b{font-weight:700}
/* FINE v.010801h */

/* INIZIO v.010803j — restyling righe dato e sezioni (Luca: "grafica vecchia"): etichette
   micro-maiuscole, valori forti, sezioni pulite senza cornici pesanti */
.frow{display:flex;gap:14px;padding:7px 0;font-size:13px;border-bottom:1px solid var(--line-soft);align-items:baseline}
.frow .fl{width:170px;min-width:170px;color:var(--muted);font-size:10px;font-weight:700;
          letter-spacing:.05em;text-transform:uppercase;padding-top:2px}
.frow .fv{font-weight:600;color:var(--ink);font-size:13px}
.acc{border:1px solid var(--line-soft);box-shadow:0 1px 3px rgba(10,25,50,.04)}
.acc .accbody{padding:8px 18px 18px;border-top:none}
.rbody .card{border:1px solid var(--line-soft);box-shadow:0 1px 3px rgba(10,25,50,.04)}
/* la riga sotto-tab dentro il drawer resta attaccata in alto sotto i tab principali */
.rbody .seztabs{position:sticky;top:0;z-index:7;background:var(--bg);margin:0 0 12px;padding:10px 0 8px}
/* FINE v.010803j */

/* INIZIO v.010803k — header su UNA riga ordinata: bottoni compatti, gruppo azioni separato */
.rhead .l1{flex-wrap:nowrap;overflow-x:auto;gap:8px;align-items:center}
.rhead .l1 .hbtn{padding:5px 10px;font-size:11.5px;white-space:nowrap}
.rhead .actgrp{display:inline-flex;gap:6px;padding-left:10px;margin-left:2px;border-left:1px solid var(--line)}
.rhead .l2{color:var(--ink2);font-size:12.5px}
/* FINE v.010803k */

/* ══ INIZIO v.010828 — STRUTTURA V3 (processo a fasi) su tutta la piattaforma ══ */
/* v.010867 — DENSITÀ TESTA MASCHERA (Luca: "mezza pagina per 4 valori"): il blocco V3
   (stepper+porte) e la savebar issata erano tre bande alte prima del contenuto. Ora:
   stepper = striscia sottile monoriga · porte = chip a pillola monoriga (niente sottotitolo)
   · savebar compatta e SOLO in modifica (consultazione-first, come nel template disegnato). */
.v3top{margin:0 0 8px}
.procbar{display:flex;gap:2px;background:var(--panel);border:1px solid var(--line);border-bottom:0;border-radius:10px 10px 0 0;padding:5px 10px 0;overflow-x:auto}
.procbar .pstep{flex:1;min-width:62px;text-align:center;font-size:9.5px;color:var(--muted);padding-bottom:5px;border-bottom:2px solid var(--line);white-space:nowrap;line-height:1.15}
.procbar .pstep .pdot{display:inline;font-size:10px;line-height:1;margin-right:3px}
.procbar .pstep.did{border-bottom-color:var(--ok-ink);color:var(--ok-ink)}
.procbar .pstep.now{border-bottom-color:var(--warn);color:var(--warn-ink,var(--warn));font-weight:800}
.portebar{display:flex;gap:6px;flex-wrap:wrap;align-items:center;background:var(--panel);border:1px solid var(--line);border-top:0;border-radius:0 0 10px 10px;padding:6px 10px}
.procbar:empty{display:none}
.v3top .portebar:only-child,.v3top>.portebar:first-child{border-top:1px solid var(--line);border-radius:10px}
.porta{display:inline-flex;flex-direction:row;align-items:center;gap:5px;border:1px solid var(--line);border-radius:999px;padding:4px 11px;cursor:pointer;background:var(--panel);min-width:0;text-decoration:none;color:inherit;line-height:1.2}
.porta:hover{border-color:var(--brand);background:var(--hover,#f2f7fb)}
.porta small{font-size:11px;font-weight:700;color:var(--brand)}
.porta .psub{display:none}
/* la savebar issata: comandi in alto ma COMPATTI, e nascosti in consultazione */
#rbody[data-mode="view"] .azbar{display:none}
.azbar{position:sticky;top:0;bottom:auto !important;z-index:7;border:1px solid var(--line);border-top:0 !important;
  background:var(--panel) !important;border-radius:10px;margin:0 0 8px;padding:6px 10px !important;justify-content:flex-end}
.azbar button{min-height:30px}
.azbar .primary{min-height:32px;font-weight:800}
/* overlay record collegato — livello UNICO sopra il drawer */
#ovrec{position:fixed;top:0;right:0;bottom:0;width:min(560px,86vw);background:var(--panel);z-index:120;
  transform:translateX(103%);transition:transform .22s;box-shadow:-16px 0 44px rgba(20,35,55,.32);display:flex;flex-direction:column}
#ovrec.open{transform:none}
#ovrec .ovh{padding:10px 14px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;background:var(--strip,#f2f5f8)}
#ovrec .ovback{border:1.5px solid var(--brand);color:var(--brand);background:var(--panel);border-radius:8px;padding:5px 12px;cursor:pointer;font-weight:800;font-size:12px}
#ovrec .ovb{flex:1;overflow:auto;padding:14px 16px}
#ovrec .ovkv{display:flex;justify-content:space-between;gap:12px;padding:5px 0;border-bottom:1px dashed var(--line);font-size:12.5px}
#ovrec .ovkv b{text-align:right;max-width:60%}
#ovrec .ovf{font-size:10.5px;color:var(--muted);padding:8px 14px;border-top:1px solid var(--line);background:var(--strip,#f2f5f8)}
#ovrec .pri-ov{background:var(--brand);border-color:var(--brand);color:#fff}
/* ══ FINE v.010828 ══ */

/* v.010848 — tasto Indietro nel dettaglio full-screen */
.hback{font-weight:700;color:var(--brand);border-color:var(--brand);background:var(--brand-soft)}
.hback:hover{background:var(--brand);color:#fff}

/* ══ v.010849 — RICERCA AVANZATA come SIDE-SHEET DESTRO (pagina filtri) ══
   La sidebar destra non ospita più i singoli record (ora full-screen popup):
   qui vivono i filtri, con campi suddivisi in gruppi/tab. */
#sxmodal{position:fixed;inset:0;z-index:220;display:none}
#sxmodal .sxveil{position:absolute;inset:0;background:rgba(8,16,30,.4);opacity:0;transition:opacity .2s ease}
#sxmodal.open .sxveil{opacity:1}
#sxbox{position:absolute;top:0;right:0;height:100vh;width:clamp(360px,32vw,470px);
  background:var(--bg);border-left:1px solid var(--line);box-shadow:-18px 0 50px rgba(10,25,50,.28);
  display:flex;flex-direction:column;transform:translateX(100%);transition:transform .2s ease}
#sxmodal.open #sxbox{transform:translateX(0)}
#sxbox .sxhead{padding:14px 16px 10px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--strip,#f2f5f8)}
#sxbox .sxhead b{font-size:15px}
#sxbox .sxhead .sp{flex:1}
#sxbox .sxhead .sxsub{flex-basis:100%;color:var(--muted);font-size:11px;margin-top:2px}
#sxbox .sxtabs{display:flex;gap:4px;overflow-x:auto;padding:8px 12px 0;border-bottom:1px solid var(--line);background:var(--strip,#f2f5f8)}
#sxbox .sxtab{border:1px solid transparent;border-bottom:none;background:none;color:var(--muted);
  padding:6px 12px;border-radius:9px 9px 0 0;cursor:pointer;font:inherit;font-size:12px;font-weight:600;white-space:nowrap}
#sxbox .sxtab:hover{color:var(--ink)}
#sxbox .sxtab.on{background:var(--bg);color:var(--brand);border-color:var(--line);margin-bottom:-1px}
#sxbox .sxbody{flex:1;overflow:auto;padding:14px 16px}
#sxbox .sxpane{display:none}
#sxbox .sxpane.on{display:block}
#sxbox .sxgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px 12px}
#sxbox .sxf{display:flex;flex-direction:column;gap:4px;font-size:12px;min-width:0}
#sxbox .sxf>span:first-child{color:var(--muted);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#sxbox .sxf input,#sxbox .sxf select{border:1px solid var(--line);border-radius:7px;padding:6px 8px;font:inherit;background:var(--panel);color:var(--ink);width:100%;min-width:0}
#sxbox .sxf.wide,#sxbox .sxf:has(>span:first-child:only-child){grid-column:1/-1}
#sxbox .sxfoot{border-top:1px solid var(--line);padding:12px 16px;display:flex;align-items:center;gap:8px;background:var(--strip,#f2f5f8)}
#sxbox .sxfoot .sp{flex:1}
#sxbox .hprimary{background:var(--brand);color:#fff;border-color:var(--brand);font-weight:700}
@media(max-width:640px){#sxbox{width:100vw}}
/* ══ INIZIO v.010865 — MASCHERA SPEDIZIONE a 2 colonne stile legacy (Luca 14/08: "replica layout ERP") ══ */
.lgc{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:14px;align-items:start}
.lgc .lgcol{display:flex;flex-direction:column;gap:12px;min-width:0}
.lgc .lbox{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:12px 14px}
.lgc .lbox>h4{margin:0 0 8px;font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:var(--brand);font-weight:700;display:flex;align-items:center;gap:6px}
/* sotto-tab indirizzo (Destinazione/Presa/Pick-up) */
.lgtabs{display:flex;gap:3px;margin-bottom:10px;border-bottom:1px solid var(--line)}
.lgtabs button{border:0;background:transparent;padding:7px 13px;font-size:12px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;cursor:pointer;display:flex;align-items:center;gap:5px}
.lgtabs button.on{color:var(--brand);border-bottom-color:var(--brand)}
/* box servizio cliente/fornitore */
.lsvc{display:flex;flex-direction:column;gap:6px}
.lsvc .srow{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:9px;padding:8px 10px;background:var(--strip,rgba(127,127,127,.05))}
.lsvc .srow .sl{font-size:10px;text-transform:uppercase;color:var(--muted);flex:0 0 64px}
.lsvc .srow b{font-size:12.5px}
.lsvc .srow .lk{margin-left:auto;font-size:14px}
/* economics griglia compatta */
.lecon{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 10px}
.lecon .ec{display:flex;flex-direction:column;gap:2px}
.lecon .ec label{font-size:9.5px;text-transform:uppercase;letter-spacing:.3px;color:var(--muted)}
.lecon .ec input,.lecon .ec select{min-height:32px;padding:5px 7px;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--ink);font:inherit;width:100%;box-sizing:border-box}
.lecon .ec.lk input{background:var(--strip,rgba(127,127,127,.08))}
.lecon .ec .lkmark{position:absolute;margin:-22px 0 0 2px;font-size:11px}
.lflags{display:flex;flex-direction:column;gap:6px;margin-top:8px;font-size:12px}
.lflags label{display:flex;align-items:center;gap:7px;cursor:pointer}
@media(max-width:900px){.lgc{grid-template-columns:1fr}.lecon{grid-template-columns:repeat(2,1fr)}}
/* ══ FINE v.010865 ══ */
/* ══ INIZIO v.010866 — STRUTTURA CONTROLLER (Luca 14/08): barra controllo, quadrati servizio,
   tab Riepilogo indirizzo, alert su icona, popup. Usa i colori della nostra grafica (var app). ══ */
.ctrlbar{display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:9px 12px;margin:0 0 12px;flex-wrap:wrap}
.ctrlbar .ck{display:flex;align-items:center;gap:7px;font-size:12px;padding:5px 10px;border-radius:9px;background:var(--strip,rgba(127,127,127,.06));border:1px solid var(--line);color:var(--muted)}
.ctrlbar .ck .d{width:8px;height:8px;border-radius:50%;background:var(--muted)}
.ctrlbar .ck.done{color:var(--ink3,var(--ink))}.ctrlbar .ck.done .d{background:transparent;box-shadow:inset 0 0 0 2px var(--muted)}
.ctrlbar .ck.attn{color:var(--brand);border-color:var(--brand-soft);background:var(--brand-soft)}.ctrlbar .ck.attn .d{background:var(--brand)}
.ctrlbar .ck.warn{color:var(--err-ink);border-color:var(--err)}.ctrlbar .ck.warn .d{background:var(--err)}
.ctrlbar .close{margin-left:auto}
/* quadrati servizio cliente/fornitore affiancati */
.svcsq{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.svcsq .sq{border:1px solid var(--line);border-radius:11px;padding:10px;background:var(--panel);display:flex;flex-direction:column;gap:6px;min-height:96px}
.svcsq .sq.cli{border-top:2px solid var(--brand)}
.svcsq .sq.forn{border-top:2px solid var(--line2,var(--line))}
.svcsq .sq .l{font-size:9px;text-transform:uppercase;color:var(--muted);letter-spacing:.3px}
.svcsq .sq .hd{display:flex;align-items:center;justify-content:space-between;gap:6px}
.svcsq .sq .n{font-weight:700;font-size:13px;line-height:1.25}
.svcsq .sq .pr{display:flex;align-items:baseline;gap:6px;margin-top:auto}.svcsq .sq .pr .k{font-size:9px;text-transform:uppercase;color:var(--muted)}.svcsq .sq .pr b{font-size:16px;font-weight:800}
/* accessi indirizzo (riepilogo) */
.acc3{display:flex;flex-direction:column;gap:2px}
.acc3 .a{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:9px;cursor:pointer;border:1px solid transparent}
.acc3 .a:hover{background:var(--hover,rgba(127,127,127,.06));border-color:var(--line)}
.acc3 .a .ic{width:26px;height:26px;border-radius:7px;background:var(--strip,rgba(127,127,127,.08));display:flex;align-items:center;justify-content:center;font-size:14px;flex:0 0 26px}
.acc3 .a .ic.miss{background:var(--err-card);color:var(--err-ink);border:1px solid var(--err)}
.acc3 .a .tx{flex:1;min-width:0}.acc3 .a .tx .l{font-size:9.5px;text-transform:uppercase;color:var(--muted)}.acc3 .a .tx .m{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acc3 .a .go{color:var(--muted)}
/* alert icona hover */
.alic{cursor:help;color:var(--err-ink);font-size:13px;position:relative;font-weight:700}
.alic::after{content:attr(data-tip);position:absolute;top:150%;right:-4px;z-index:40;white-space:normal;width:250px;background:var(--panel);border:1px solid var(--err);border-radius:9px;padding:8px 10px;font-size:11.5px;line-height:1.4;color:var(--err-ink);box-shadow:0 8px 24px rgba(0,0,0,.4);font-weight:400;text-transform:none;letter-spacing:0;opacity:0;pointer-events:none;transition:.14s}
.alic:hover::after{opacity:1}
/* popup generico */
.ovl{position:fixed;inset:0;background:rgba(8,16,30,.55);z-index:70;display:none;align-items:flex-start;justify-content:center;padding-top:60px;overflow:auto}
.ovl.on{display:flex}
.ovl .pp{width:min(560px,94vw);background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 30px 80px rgba(0,0,0,.45);margin-bottom:40px}
.ovl .pp .pph{display:flex;align-items:center;gap:8px;padding:11px 13px;border-bottom:1px solid var(--line);font-weight:700}
.ovl .pp .ppb{padding:12px 13px}
/* ══ FINE v.010866 ══ */

/* ══ INIZIO v.010868 — VETRO NEL DRAWER (Luca 14/08: "le sottomaschere non mantengono
   colori/sfumature/vetro delle maschere e dei template"). Porto nel record-drawer gli
   stessi effetti dei template disegnati: card e tasti con gradiente-vetro, bordo ALTO
   chiaro, ombra + inset (3D). Campi vuoti in consultazione = niente box vuoto (.rv).
   Scope: solo temi glass/dark, solo dentro il drawer → liste e temi chiari intatti. ══ */
html[data-theme="glass"]{--gl1:rgba(255,255,255,.075);--gl2:rgba(255,255,255,.02);--glhi:rgba(255,255,255,.22);--gsh:0 2px 8px rgba(0,0,0,.42);--gshin:inset 0 1px 0 rgba(255,255,255,.10)}
html[data-theme="dark"]{--gl1:rgba(255,255,255,.05);--gl2:rgba(255,255,255,.015);--glhi:rgba(255,255,255,.14);--gsh:0 2px 8px rgba(0,0,0,.45);--gshin:inset 0 1px 0 rgba(255,255,255,.06)}

/* CARD del drawer (lbox, quadrati servizio, control bar, v3top, azbar): gradiente-vetro + 3D */
html[data-theme="glass"] .rbody .lbox,html[data-theme="dark"] .rbody .lbox,
html[data-theme="glass"] .rbody .svcsq .sq,html[data-theme="dark"] .rbody .svcsq .sq,
html[data-theme="glass"] .rbody .ctrlbar,html[data-theme="dark"] .rbody .ctrlbar,
html[data-theme="glass"] .rbody .v3top .procbar,html[data-theme="dark"] .rbody .v3top .procbar,
html[data-theme="glass"] .rbody .v3top .portebar,html[data-theme="dark"] .rbody .v3top .portebar,
html[data-theme="glass"] .rbody .azbar,html[data-theme="dark"] .rbody .azbar{
  background:linear-gradient(180deg,var(--gl1),var(--gl2)) !important;border-top-color:var(--glhi);
  box-shadow:var(--gsh),var(--gshin)}
/* i quadrati servizio tengono il bordo-accento in cima (cliente=blu) sopra al vetro */
html[data-theme="glass"] .rbody .svcsq .sq.cli,html[data-theme="dark"] .rbody .svcsq .sq.cli{border-top-color:var(--brand)}

/* TASTI del drawer = VETRO 3D (gradiente, bordo alto chiaro, ombra+inset, blur) */
html[data-theme="glass"] .rbody .hbtn,html[data-theme="glass"] .rbody .opb,html[data-theme="glass"] .rbody .porta,
html[data-theme="glass"] .rhead .hbtn,html[data-theme="glass"] .rbody .ctrlbar .close,
html[data-theme="dark"] .rbody .hbtn,html[data-theme="dark"] .rbody .opb,html[data-theme="dark"] .rbody .porta,
html[data-theme="dark"] .rhead .hbtn,html[data-theme="dark"] .rbody .ctrlbar .close{
  background:linear-gradient(180deg,var(--gl1),var(--gl2));border:1px solid var(--line);border-top-color:var(--glhi);
  box-shadow:var(--gsh),var(--gshin);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
html[data-theme="glass"] .rbody .hbtn:hover,html[data-theme="glass"] .rbody .opb:hover,html[data-theme="glass"] .rbody .porta:hover,
html[data-theme="dark"] .rbody .hbtn:hover,html[data-theme="dark"] .rbody .opb:hover,html[data-theme="dark"] .rbody .porta:hover{
  border-color:var(--brand);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.5),var(--gshin)}
/* tasto primario (Salva / azioni brand): gradiente brand, resta blu */
html[data-theme="glass"] .rbody .primary,html[data-theme="glass"] .rbody .opb.pri,
html[data-theme="dark"] .rbody .primary,html[data-theme="dark"] .rbody .opb.pri{
  background:linear-gradient(180deg,var(--brand),color-mix(in srgb,var(--brand) 70%,#000));
  border-top-color:rgba(255,255,255,.35);box-shadow:0 3px 12px rgba(30,60,140,.5),inset 0 1px 0 rgba(255,255,255,.22);color:#fff}

/* VALORE in consultazione: a filo, sinistra, niente box (regola ALFABETO) */
.rbody .fld .rv{font-weight:600;font-size:13px;color:var(--ink);padding:2px 0;line-height:1.3;word-break:break-word}
.rbody .fld .rv.empty{color:var(--ink3);font-weight:400}

/* v.010870 — marchio corriere monocromo + quadrato servizio cliccabile (riapre il selettore tariffe) */
.svcsq .sq .sub{font-size:10.5px;color:var(--muted);margin-top:-2px;line-height:1.2}
.carrmk{font-size:10px;font-weight:800;letter-spacing:.6px;padding:2px 7px;border-radius:6px;border:1px solid var(--line);background:var(--strip);color:var(--ink2);text-transform:uppercase;white-space:nowrap}
.carrmk.partner{font-weight:600;letter-spacing:0;text-transform:none;color:var(--muted)}
.svcsq .sq[role=button]{cursor:pointer;transition:border-color .12s,box-shadow .12s}
.svcsq .sq[role=button]:hover{border-color:var(--brand);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 22%,transparent)}

/* ══ v.010872 — SISTEMA CONSULTAZIONE-FIRST UNIVERSALE (Luca 14/08: stessa filosofia su TUTTE
   le maschere singole, anche ricerche dettagliate). In consultazione i campi diventano valori
   a filo (niente box); i vuoti spariscono. In modifica tornano input. Guidato da data-mode. ══ */
#rbody[data-mode="view"] .fld.vn > input,#rbody[data-mode="view"] .fld.vn > select,#rbody[data-mode="view"] .fld.vn > textarea,
#rbody[data-mode="view"] .fld.vn input,#rbody[data-mode="view"] .fld.vn select,#rbody[data-mode="view"] .fld.vn textarea{display:none !important}
.fld .vnrv{display:none}
#rbody[data-mode="view"] .fld.vn .vnrv{display:block}
#rbody[data-mode="edit"] .fld.vn .vnrv{display:none}
#rbody[data-mode="view"] .fld.vn.empty{display:none !important}
.fld .vnrv{font-weight:600;font-size:13px;color:var(--ink);padding:2px 0;line-height:1.3;word-break:break-word}
.fld .vnrv:empty::before,.fld .vnrv{}

/* vetro esteso a TUTTE le superfici del drawer (card/accordion), non solo .lbox */
html[data-theme="glass"] .rbody .card,html[data-theme="dark"] .rbody .card,
html[data-theme="glass"] .rbody details.acc,html[data-theme="dark"] .rbody details.acc,
html[data-theme="glass"] .rbody .mdt,html[data-theme="dark"] .rbody .mdt,
html[data-theme="glass"] .rbody .opsum,html[data-theme="dark"] .rbody .opsum,
html[data-theme="glass"] .rbody .dgrp,html[data-theme="dark"] .rbody .dgrp,
html[data-theme="glass"] .rbody .sbb,html[data-theme="dark"] .rbody .sbb{
  background:linear-gradient(180deg,var(--gl1),var(--gl2));border-top-color:var(--glhi);box-shadow:var(--gsh),var(--gshin)}
/* tasti generici del drawer non ancora coperti (opb/ghost/sopen/uscita/tgl) = vetro */
html[data-theme="glass"] .rbody .ghost,html[data-theme="glass"] .rbody .sopen,html[data-theme="glass"] .rbody .uscita,html[data-theme="glass"] .rbody .tgl,
html[data-theme="dark"] .rbody .ghost,html[data-theme="dark"] .rbody .sopen,html[data-theme="dark"] .rbody .uscita,html[data-theme="dark"] .rbody .tgl{
  background:linear-gradient(180deg,var(--gl1),var(--gl2));border-top-color:var(--glhi);box-shadow:var(--gsh),var(--gshin)}

/* ══ INIZIO v.011448 -- STANDARD MASCHERE (55_standard_maschere, Luca 27/09) ══════════════
   Tre colori dentro le maschere: neutro (testo, grigi), blu = azione/selezionato,
   ambra = manca/da sistemare. Verde, rosso, viola e ciano si riconducono a questi tre
   ridefinendo i colori di stato SOLO dentro la maschera: liste e cruscotti non cambiano. */
.rdrawer{--amb:var(--warn);--amb-ink:var(--warn-ink);--amb-card:var(--warn-card);
  --ok:var(--brand);--ok-ink:var(--brand);--ok-card:var(--brand-soft);   /* «fatto» diventa blu: i tasti verdi restano leggibili */
  --err:var(--warn);--err-ink:var(--warn-ink);--err-card:var(--warn-card)}
.rdrawer .tag,.rdrawer .kbadge{background:transparent!important;color:var(--muted)!important;border:1px solid var(--line)!important;filter:none!important}
.rdrawer .tag.tg-yellow,.rdrawer .tag.tg-red{color:var(--amb-ink)!important;border-color:var(--amb)!important}
.rdrawer .tag.tg-blue{color:var(--ink)!important;border-color:var(--brand)!important}
/* la testata su una riga */
.rh2 .l1{display:flex;align-items:center;gap:10px;flex-wrap:nowrap;overflow:visible;min-height:36px}
.rh2 .hbtn.ic{width:34px;min-width:34px;padding:0;justify-content:center;color:var(--muted)}
.rh2 .hbtn.ic:hover{color:var(--ink);border-color:var(--brand)}
.rh2 .rid{font-size:15px;white-space:nowrap}
.rh2 .rcli{font-size:15px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:60px;max-width:34ch}
.rh2 .rmeta{font-size:12.5px;color:var(--muted);white-space:nowrap}
.rh2 .rmeta:empty{display:none}
.rh2 .alarm{color:var(--amb-ink);background:transparent;border:1px solid var(--amb);white-space:nowrap}
.rh2 .hbadges{display:inline-flex;gap:6px}
.hdrop{position:relative;display:inline-flex}
.hdrop .hdd{display:none;position:absolute;right:0;top:40px;z-index:40;min-width:230px;max-width:320px;padding:6px;
  background:var(--panel-solid,var(--panel));border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 40px rgba(0,0,0,.35)}
[data-theme="glass"] .hdrop .hdd,[data-theme="dark"] .hdrop .hdd{background:#18213a}
.hdrop.open .hdd{display:block}
.hdrop .hdd a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;font-size:13.5px;color:var(--ink);cursor:pointer;text-decoration:none}
.hdrop .hdd a:hover{background:var(--brand-soft)}
.hdrop .hdd a .mi{display:inline-flex;width:16px;justify-content:center;color:var(--muted)}
.hdrop .hdd a .ml{flex:1}
.hdrop .hdd a small{color:var(--muted);font-size:11.5px;white-space:nowrap}
.hdrop .hdd hr{border:0;border-top:1px solid var(--line);margin:5px 4px}
.hstato{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:5px 12px;border-radius:9px;border:1px solid var(--line);
  background:transparent;color:var(--ink);font-weight:600;font-size:13px;cursor:pointer;white-space:nowrap}
.hstato:hover{border-color:var(--brand)}
.hstato .car{color:var(--muted);font-weight:400}
.hstato.fermo{cursor:default}.hstato.fermo:hover{border-color:var(--line)}
#rhstato .hdd{right:auto;left:0}
/* le vecchie barre (stepper + porte) non si disegnano più: il loro contenuto è nel menu ⋯ */
.rdrawer .v3top,.rdrawer .procbar,.rdrawer .portebar{display:none!important}
/* FINE v.011448 */

/* ══ INIZIO v.011448 -- LA SCHEDA DELLO STANDARD (spedizioni, poi cargo e le altre) ══════ */
.fixbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px;padding:9px 14px;border-radius:12px;
  background:var(--amb-card);border:1px solid color-mix(in srgb,var(--amb) 45%,transparent);font-size:13px}
.fixbar .fxt{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--amb-ink)}
.fixbar .fxt.ok{color:var(--ink)}
.fixbar.pronta{background:transparent;border-color:var(--line)}
.fixbar a{color:var(--amb-ink);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.fixbar .fxv{color:var(--amb-ink);font-weight:600}
.fxs{color:var(--muted);margin:0 2px}
.fixbar .sp,.scgrid .sp{flex:1}
.fxb{border:0;border-radius:10px;padding:7px 14px;font-size:13px;font-weight:600;background:var(--brand);color:#fff;cursor:pointer;white-space:nowrap}
.fxb.off{background:transparent;border:1px solid var(--line);color:var(--muted);cursor:not-allowed}
.scgrid{display:grid;grid-template-columns:minmax(0,1fr) var(--dxw,440px);gap:12px;align-items:start}
@media(max-width:760px){.scgrid{grid-template-columns:1fr}}
.scbox{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.scbox+.scbox{margin-top:10px}
.scrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--ink);font-size:14px}
.scrow>svg{color:var(--muted);margin:0;flex:0 0 auto}
.scrow+.scrow{margin-top:6px}
.scrow.sch{margin-bottom:6px}
.scr{font-size:15px;font-weight:600}
.scr .scr-f{color:var(--muted);font-weight:400}
.mu{color:var(--muted)}
.amb{color:var(--amb-ink);font-weight:600}
.manca{color:var(--amb-ink);font-weight:600;cursor:pointer;border-bottom:1px dashed var(--amb);text-decoration:none}
.lnk{border:0;background:transparent;color:var(--brand);cursor:pointer;font-size:12.5px;padding:2px 4px;display:inline-flex;align-items:center;gap:4px}
.lnk:hover{text-decoration:underline}
.scsws{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 0 26px}
.scsw{border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:999px;padding:4px 11px;font-size:12px;cursor:pointer;white-space:nowrap}
.scsw:hover{border-color:var(--brand)}
.scsw.on{background:var(--brand-soft);border-color:var(--brand);color:var(--ink)}
.sctabs{display:flex;gap:2px;margin:12px 0 10px;border-bottom:1px solid var(--line);overflow-x:auto}
.sctabs>button{border:0;background:transparent;display:flex;align-items:center;gap:6px;padding:7px 12px;font-size:13px;color:var(--muted);
  border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;white-space:nowrap}
.sctabs>button svg{margin:0}
.sctabs>button.on{color:var(--ink);border-bottom-color:var(--brand)}
.sctabs>button .dot{width:6px;height:6px;border-radius:50%;background:var(--amb);display:inline-block}
.sctabs>button .cnt{font-size:11px;padding:0 7px;border-radius:999px;border:1px solid var(--line);color:var(--muted);background:transparent}
.sctabs.fondo{margin:0;padding:2px 6px 0}
.sclab{line-height:1.55;font-size:14px}
.sclab .n{font-weight:600}
.sclab .m{color:var(--muted);font-size:13px}
.sclab a{color:var(--brand)}
.scorari{display:inline-flex;align-items:center;gap:8px;margin-top:10px;padding:7px 12px;border:1px solid var(--line);border-radius:10px;font-size:13px}
.scorari svg{margin:0;color:var(--muted)}
.scmerce{gap:14px}
.scnote .scrow,.scrow:has(.sclab){align-items:flex-start}
.scsv{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:58px minmax(0,1fr) auto 12px;align-items:center;gap:8px;width:100%;
  padding:9px 10px;border:1px solid var(--line);border-radius:10px;font-size:14px}
.scsv+.scsv{margin-top:6px}
.scsv:hover{border-color:var(--brand)}
.scsv .k{font-size:12px;color:var(--muted)}
.scsv .n{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scsv .e{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.scsv .c{color:var(--muted)}
.scsub{display:flex;flex-wrap:wrap;gap:4px 6px;font-size:12.5px;color:var(--muted);margin:10px 2px 0}
.scsub b{color:var(--ink);font-weight:600}
.sclock{margin-top:8px;font-size:12.5px;color:var(--muted)}
.scfondo{margin-top:12px;background:var(--panel);border:1px solid var(--line);border-radius:12px}
.scfb{padding:12px 14px;font-size:13.5px}
.sctl{list-style:none;margin:0;padding:0}
.sctl li{display:grid;grid-template-columns:120px 1fr;gap:10px;padding:6px 0;border-bottom:1px solid var(--line)}
.sctl li:last-child{border-bottom:0}
.sctl .q{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12.5px}
.sctl .w{color:var(--muted);font-size:12px;margin-left:8px}
.scadd{margin-top:8px;display:flex;gap:10px}
/* FINE v.011448 */

/* ══ INIZIO v.011448 -- tre correzioni viste nel collaudo della scheda ═══════════════════
   1. la classe .empty globale (tmwe.css: 40 px di margine, testo al centro) prendeva i campi
      vuoti delle maschere in modifica: Provincia, AWB... finivano stretti e centrati;
   2. l'hamburger (z 61) stava sopra la maschera aperta (z 60) e ne copriva l'angolo;
   3. nelle liste l'hamburger copriva il primo tasto della barra («+ Nuova»). */
.rbody .fld.empty{padding:0;text-align:inherit;color:inherit}
body:has(.rdrawer.open) #navburger{display:none}
main>.cmdbar:first-child{padding-left:66px}
/* FINE v.011448 */
/* v.011448 -- il tasto che chiude la fase è sempre blu, anche dove la pagina ridefinisce i button */
.rdrawer button.fxb:not(.off){background:var(--brand)!important;color:#fff!important;border:0!important}

/* ══ INIZIO v.011450 -- STANDARD, REGOLE 19–25 (Luca 27/09) ════════════════════════════════
   24. Testo leggibile: dentro le maschere il testo è bianco puro sugli sfondi scuri e nero
       puro su quelli chiari. Niente grigi per il testo: la gerarchia la fanno dimensione e peso.
       I grigi restano ai bordi (--line). */
html[data-theme="glass"] .rdrawer,html[data-theme="dark"] .rdrawer{--ink:#ffffff;--ink2:#ffffff;--ink3:#ffffff;--muted:#ffffff}
html:not([data-theme="glass"]):not([data-theme="dark"]) .rdrawer{--ink:#000000;--ink2:#000000;--ink3:#000000;--muted:#000000}
.rdrawer ::placeholder{color:currentColor;opacity:.55}
/* 21. Mai troncare: nomi di servizio, fornitore, cliente vanno a capo interi */
.rdrawer .scsv .n{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.3}
.rh2 .rcli{white-space:normal;overflow:visible;text-overflow:clip;max-width:40ch;line-height:1.2}
/* 23. Campi di tre misure, affiancati per gruppo; i numeri a destra */
.rdrawer .fgrid:not(.agrid){display:flex;flex-wrap:wrap;gap:12px 14px;align-items:flex-end}
.rdrawer .fgrid:not(.agrid) .fld{flex:0 0 210px;min-width:0;margin:0}
.rdrawer .fgrid:not(.agrid) .fld:has(input[data-rx="int"],input[data-rx="double2"],input[data-rx="double3"],input[data-rx="perc"],input[data-rx="cap_it"],input[data-rx="cap"],input[data-field^="prov"],input[data-field^="colli"],select[data-field$="dalle"],select[data-field$="alle"]){flex-basis:120px}
.rdrawer .fgrid:not(.agrid) .fld:has(textarea),.rdrawer .fgrid:not(.agrid) .fld.wide,.rdrawer .fgrid:not(.agrid) .fld:has(.combo),
.rdrawer .fgrid:not(.agrid) .fld:has(input[data-field^="nome"],input[data-field^="adress"],input[data-field^="mail"],input[data-field*="descr"],input[data-field*="note"],input[data-field="contenuto"],input[data-field="RIF_cliente"]){flex-basis:340px}
.rdrawer .fgrid:not(.agrid) .fld:has(textarea){flex-basis:100%;max-width:700px}
.rdrawer .fgrid input[data-rx="int"],.rdrawer .fgrid input[data-rx="double2"],.rdrawer .fgrid input[data-rx="double3"],.rdrawer .fgrid input[data-rx="perc"]{text-align:right;font-variant-numeric:tabular-nums}
.rdrawer .fgrid .fld label{font-weight:600;font-size:12px}
/* 20. In fondo: altezza fissa, si scorre dentro il riquadro, non la pagina */
.rdrawer .scfondo .scfb{height:200px;overflow:auto}
/* 22. Economia in verticale: etichetta a sinistra, numero a destra; prezzi in grassetto */
.eco{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:14px}
.eco td{padding:4px 0;vertical-align:baseline}
.eco td.v{text-align:right;white-space:nowrap}
.eco tr.tot td{font-weight:700;border-top:1px solid var(--line);padding-top:7px}
.eco .pr{font-weight:700;font-size:15px}
.ecosvc{font-weight:700;font-size:14px;line-height:1.3;margin:0 0 4px}
.ecosvc small{display:block;font-weight:400;font-size:12px}
.ecosep{height:1px;background:var(--line);margin:10px 0}
/* 19. La matita del riquadro e la finestra di gruppo */
.scbox{position:relative}
.scbox>.sced{position:absolute;top:8px;right:8px;width:30px;height:30px;display:grid;place-items:center;border-radius:8px;
  border:1px solid transparent;background:transparent;color:var(--ink);cursor:pointer;padding:0}
.scbox>.sced:hover{border-color:var(--brand);color:var(--brand)}
.scbox>.sced svg{margin:0}
.scbox.haed{padding-right:14px}   /* v.011459: la matita non ruba più spazio (vedi sotto) */
.ufin-veil{position:fixed;inset:0;z-index:80;background:rgba(5,8,18,.6);display:grid;place-items:center;padding:20px}
.ufin{width:min(620px,96%);max-height:88%;display:flex;flex-direction:column;background:var(--panel-solid,#fff);border:1px solid var(--line);
  border-radius:14px;box-shadow:0 30px 80px rgba(0,0,0,.55);color:var(--ink)}
[data-theme="glass"] .ufin,[data-theme="dark"] .ufin{background:#141c31}
.ufin.largo{width:min(860px,96%)}
.ufh{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);font-size:15px}
.ufh .ufs{font-size:12.5px}
.ufh .sp,.uff .sp{flex:1}
.ufb{padding:12px 16px 16px;overflow:auto;flex:1 1 auto;min-height:0}
.ufin{max-height:calc(100% - 40px)}   /* la finestra alta non esce mai dal fondo: scorre dentro */
.uff{display:flex;align-items:center;gap:8px;padding:10px 16px;border-top:1px solid var(--line)}
.uff .ufst{font-size:12.5px;color:var(--amb-ink)}
.ufok{border:0;border-radius:10px;padding:8px 16px;font-weight:700;background:var(--brand);color:#fff;cursor:pointer}
.ufok:disabled{opacity:.6;cursor:wait}
.ufb .ufg+.ufg{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.rdrawer .ufgt{font-size:12px;font-weight:700;letter-spacing:.3px;margin-bottom:2px}
/* nella finestra i campi si vedono sempre, anche se la maschera sotto è in consultazione */
#rbody[data-mode] .ufin .fld.vn > input,#rbody[data-mode] .ufin .fld.vn > select,#rbody[data-mode] .ufin .fld.vn > textarea,
#rbody[data-mode] .ufin .fld.vn input,#rbody[data-mode] .ufin .fld.vn select,#rbody[data-mode] .ufin .fld.vn textarea{display:block!important}
#rbody[data-mode] .ufin .fld.vn .vnrv{display:none!important}
#rbody[data-mode] .ufin .fld.vn.empty{display:block!important}
#rbody .ufin .only-edit{display:block!important}
#rbody .ufin .savebar{display:none!important}
/* 25. supplementi a spunta */
.supsrch{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.supsrch input{width:260px;min-height:36px;padding:6px 10px;border:1px solid var(--field-line,var(--line));border-radius:8px;background:var(--field-bg,transparent);color:var(--ink);font:inherit}
.supchip{border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:999px;padding:4px 11px;font-size:12px;cursor:pointer}
.supchip.on{background:var(--brand-soft);border-color:var(--brand)}
.suplist{columns:3 200px;column-gap:18px;font-size:13.5px}
.supck{display:flex;align-items:center;gap:8px;padding:3px 0;break-inside:avoid;cursor:pointer}
.supck input{width:16px;height:16px;accent-color:var(--brand);flex:0 0 auto}
.supck em{font-style:normal;font-size:10.5px;border:1px solid var(--line);border-radius:6px;padding:0 5px}
/* FINE v.011450 */

/* ══ INIZIO v.011452 -- REGOLA 31: TITOLO E VALORE SEMPRE DISTINTI (Luca 27/09) ══════════════════════
   Mai titoli e valori in fila come una frase («1 collo · parcel 2 kg tassato 2,4 kg»). Ogni dato è una
   coppia: il titolo piccolo, maiuscoletto, sopra; il valore grande e in grassetto, sotto. Le coppie si
   affiancano per gruppo. Stesso colore (bianco o nero puro): la differenza la fanno dimensione e peso. */
.kvs{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px 26px;min-width:0}
.kv{display:inline-flex;flex-direction:column;gap:2px;min-width:0;max-width:100%}
.kv>small{font-size:10.5px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;line-height:1.2;white-space:nowrap}
.kv>b{font-size:15px;font-weight:700;line-height:1.3;overflow-wrap:anywhere}
.kv.t>b{font-weight:500}                 /* valori di testo lunghi (note, descrizioni): grandi ma non in grassetto */
.kv.w{flex:1 1 100%}                     /* un testo lungo prende la riga intera */
.kv.amb>b,.kv>b .amb{color:var(--amb-ink)}
.scrow.kvrow{align-items:flex-start}
.scrow.kvrow>svg{margin-top:14px}
.rh2 .rmeta.kvs{gap:0 18px;flex-wrap:nowrap}
.rh2 .rmeta .kv>b{font-size:13.5px}
.rh2 .rmeta:has(.kv){display:flex}
/* FINE v.011452 */
/* v.011452 -- orari: «dalle – alle» sulla stessa riga, nello stesso campo; data con la tendina dei giorni accanto */
.orafascia{display:flex;align-items:center;gap:6px}
.orafascia select{flex:1 1 0;min-width:0}
.orafascia .orasep{font-weight:700}
.rdrawer .fgrid:not(.agrid) .fld.orafld.orafld{flex-basis:190px}
.rdrawer .fgrid:not(.agrid) .fld.orafld.oratipo{flex-basis:150px}
.fld .datagiorno{display:flex;gap:6px;align-items:center}
.fld .datagiorno>input{flex:1 1 105px;min-width:105px;width:auto!important}
.fld .datagiorno>select{flex:0 0 135px;width:135px!important;min-width:0}
.rdrawer .fgrid:not(.agrid) .fld:has(.datagiorno):has(.datagiorno){flex-basis:270px}
/* ══ INIZIO v.011453 -- riquadri ad altezza fissa durante la navigazione; avanti/indietro fra i record ══ */
.panestack{display:grid;min-width:0}
.panestack>*{grid-area:1/1;min-width:0}
.panestack>[style*="display: none"],.panestack>[style*="display:none"]{display:block!important;visibility:hidden;pointer-events:none}
.rnav{display:inline-flex;align-items:center;gap:4px;margin:0 6px 0 2px}
.rnav .hbtn.ic{min-width:34px;font-size:20px;line-height:1;font-weight:700}
.rnav .hbtn[disabled]{opacity:.35;cursor:default}
.rnavp{font-size:13px;white-space:nowrap;padding:0 2px;font-variant-numeric:tabular-nums}
.rdrawer .dnavbtns{display:none!important}   /* i vecchi ▲▼ fuori dal pannello: ora sono in testata */
/* FINE v.011453 */
/* ══ INIZIO v.011453 -- finestra dei supplementi: alfabeto, ricerca al centro, schede, elenco che scorre ══ */
.ufin{max-height:min(calc(100% - 40px),calc(100vh - 60px))}
.ufin.supfin{width:min(1040px,96%);height:min(calc(100% - 40px),calc(100vh - 60px))}
.ufin.supfin .ufb{display:flex;flex-direction:column;overflow:hidden;position:relative;gap:10px}
.supalfa{display:flex;flex-wrap:wrap;gap:2px;justify-content:center}
.supalfa button{min-width:28px;height:28px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--ink);font-weight:700;font-size:13px;cursor:pointer;padding:0 6px}
.supalfa button:hover:not([disabled]){border-color:var(--brand)}
.supalfa button.on{background:var(--brand);color:#fff}
.supalfa button[disabled]{opacity:.3;cursor:default}
.ufin.supfin .supsrch{justify-content:center;margin:0}
.ufin.supfin .supsrch input{width:min(420px,100%);text-align:center}
.suptabs{margin:0;justify-content:center}
.ufin.supfin .suplist{columns:auto;display:grid;grid-auto-flow:column;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px 18px;align-content:start;overflow:auto;flex:1 1 auto;min-height:0;padding-right:4px}
.supck{padding:4px 2px;border-radius:6px}
.supck:hover{background:var(--brand-soft)}
.supn.iniz::first-letter{color:#4fb3ff;font-weight:800}
/* casella quadrata tono su tono: stesso fondo della finestra, bordo chiaro in contrasto; spuntata = segno chiaro */
.supck input[type=checkbox]{appearance:none;-webkit-appearance:none;width:18px;height:18px;margin:0;border:2px solid currentColor;border-radius:3px;background:transparent;display:grid;place-items:center;cursor:pointer;flex:0 0 18px}
.supck input[type=checkbox]:checked{border-color:var(--brand);background:transparent}
.supck input[type=checkbox]:checked::after{content:"";width:9px;height:5px;border-left:2.5px solid currentColor;border-bottom:2.5px solid currentColor;transform:rotate(-45deg) translate(1px,-1px)}
.suptip{position:absolute;z-index:5;width:320px;padding:10px 12px;border-radius:10px;border:1px solid var(--brand);background:var(--panel-solid,#fff);box-shadow:0 12px 30px rgba(0,0,0,.45);font-size:13px;line-height:1.35;pointer-events:none;display:flex;flex-direction:column;gap:4px}
[data-theme="glass"] .suptip,[data-theme="dark"] .suptip{background:#1b2542}
.suptip[hidden]{display:none}
/* FINE v.011453 */
/* ══ INIZIO v.011454 -- niente si muove: azioni in testata, testata ad altezza fissa ══ */
.rh2 .l1{height:56px;min-height:56px}
.rh2 .rcli{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:15px;line-height:1.2}
.rhfix{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto}
.rhfix:empty{display:none}
.rhfix[data-mode="edit"] .rhfixv{display:none}
.rhfixv{display:inline-flex;align-items:center;gap:8px}
.rhfix .savebar{position:static!important;display:flex;align-items:center;gap:8px;padding:0!important;margin:0!important;border:0!important;background:transparent!important;box-shadow:none!important;min-height:0}
.rhfix .savebar .primary{min-height:34px;padding:6px 16px}
.rhfix .savebar .st{font-size:12px;white-space:nowrap}
.hfixb{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--amb-ink);color:var(--amb-ink);background:transparent;border-radius:10px;padding:6px 10px;cursor:pointer;font-weight:700;font-size:14px}
.hfixb svg{margin:0}
.hfix .hdd a{color:var(--amb-ink);font-weight:600}

.rhfix .fxb{padding:8px 14px;min-height:34px}
/* FINE v.011454 */
/* v.011454 -- testata su due righe fisse */
.rh2 .l1{height:52px;min-height:52px}
.rh2 .l2{display:flex;align-items:center;gap:14px;height:46px;min-height:46px;flex-wrap:nowrap;padding-top:2px}
.rh2 .l2 .sp{flex:1}
.rh2 .rcli{max-width:none;flex:1 1 auto;min-width:0}
/* v.011454 -- spiegazione dei supplementi: compare piano, dopo un secondo fermi sulla casella */
.suptip{opacity:0;transform:translateY(-4px);transition:opacity .35s ease,transform .35s ease}
.suptip.vis{opacity:1;transform:none}
.suptip[hidden]{display:flex!important}
.suptip:not(.vis){visibility:hidden}
.suptip.vis{visibility:visible}
/* v.011454 -- la finestra sta sempre dentro lo schermo visibile: posizione e altezza le calcola ux.js */
.ufin-veil.misura{place-items:start center}
.ufin.supfin .suplist{overscroll-behavior:contain}
/* v.011455 -- nella finestra solo l'elenco si stringe e scorre: titolo, alfabeto, ricerca, schede e tasti restano interi
   (prima le schede Tutte/Corriere/Cargo… venivano schiacciate e si vedevano a metà) */
.ufin>.ufh,.ufin>.uff{flex:0 0 auto}
.ufin.supfin .ufb>*:not(.suplist):not(.suptip){flex:0 0 auto}
.ufin.supfin .suptabs{overflow:visible;min-height:42px;flex-wrap:nowrap}
/* ══ INIZIO v.011455 -- leggibilità e pulizia (Luca 28/09) ═════════════════════════════════════════════
   1. Niente testo azzurro/blu scuro sullo sfondo grigio: collegamenti e azioni sono chiari (bianco) con
      un'icona; le azioni vere sono icone grandi (icb). 2. Titoli e contenuti diversi a colpo d'occhio: il
      titolo è azzurro chiaro, piccolo, maiuscoletto; il valore è bianco e grande; una nota è testo libero in
      un riquadro con la riga a sinistra. 3. Il logo di chi fa il servizio al posto delle parole. */
html[data-theme="glass"] .rdrawer,html[data-theme="dark"] .rdrawer{--kv-t:#a9d1ff;--lk:#ffffff}
html:not([data-theme="glass"]):not([data-theme="dark"]) .rdrawer{--kv-t:#1d4f91;--lk:#000000}
.rdrawer .kv>small{color:var(--kv-t)}
.rdrawer a.lkc,.rdrawer .sclab a{color:var(--lk);text-decoration:none;border-bottom:1px dotted currentColor;display:inline-flex;align-items:center;gap:5px}
.rdrawer a.lkc svg{margin:0}
.rdrawer .lnk{color:var(--lk)!important;text-decoration:underline;text-underline-offset:3px}
.kv.nota{flex:1 1 100%}
.kv.nota>b{font-weight:400;font-size:15px;padding:8px 12px;border-left:3px solid var(--kv-t);background:rgba(255,255,255,.05);border-radius:0 8px 8px 0;margin-top:4px}
.scaccnote .scrow+.scrow{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}
/* azioni a icona */
.icb{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;padding:0}
.icb:hover:not([disabled]){border-color:var(--brand);background:var(--brand-soft)}
.icb.on{border-color:var(--brand);background:var(--brand-soft)}
.icb[disabled]{cursor:default;opacity:.8}
.icb svg{margin:0}
.sctabs.fondo{align-items:center}
.sctabs.fondo .sp{flex:1}
.sctabs.fondo .fondoadd{width:34px;height:34px;margin-right:6px}
/* logo del vettore */
.clogo{position:relative;display:inline-grid;place-items:center;width:78px;height:34px;border-radius:8px;background:#fff;padding:3px 7px;box-sizing:border-box;overflow:hidden}
.clogo img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.clogo b{font-size:14px;font-weight:800;color:#1b2542;letter-spacing:.5px}
.clogo img~b{display:none}
.rdrawer .scsv.scsvl{grid-template-columns:78px minmax(0,1fr) 12px;gap:14px;padding:12px 14px;min-height:64px}
/* più aria nei soldi */
.rdrawer .scsoldi{padding:20px 22px}
.rdrawer .scsoldi .eco td{padding:7px 0}
.ecoi{display:inline-flex}.ecoi svg{margin:0}
/* FINE v.011455 */
/* v.011455 -- tendine lunghe con ricerca (CERCA in tmwe.js) */
.selc{position:relative;display:block;width:100%}
.selc>select.selch{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important;left:0;bottom:0}
.selc>.selci{width:100%;box-sizing:border-box}
.selcl{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:90;max-height:280px;overflow:auto;border:1px solid var(--brand);border-radius:10px;background:var(--panel-solid,#fff);box-shadow:0 14px 34px rgba(0,0,0,.45);padding:4px}
html[data-theme="glass"] .selcl,html[data-theme="dark"] .selcl{background:#1b2542}
.selcl[hidden]{display:none}
.selco{padding:7px 10px;border-radius:7px;cursor:pointer;font-size:14px;color:var(--ink)}
.selco.on{background:var(--brand-soft)}
.selco.sc{font-weight:700}
.selcv{padding:8px 10px;font-size:13px}
.rdrawer .scsoldi.haed{padding-right:22px}
.eco td{vertical-align:middle}
.ecoi svg{display:block}
/* v.011455 -- il «+» nella fila delle schede in fondo è un tasto a icona vero (la regola .sctabs>button lo schiacciava) */
.sctabs>button.icb,.sctabs.fondo>.fondoadd{padding:0!important;border:1px solid var(--line)!important;width:36px;height:36px;display:inline-grid;place-items:center;border-radius:10px;flex:0 0 36px}
.sctabs>button.icb:hover{border-color:var(--brand)!important;background:var(--brand-soft)}
/* ══ INIZIO v.011456 -- colonna laterale dei cestini e barra alta pulita ══════════════════════════════ */
/* v.011456c: la pagina ha sempre lo stesso margine (colonna stretta); aperta, la colonna va sopra la pagina */
body.has-rail{--railw:56px;padding-left:56px}
body.has-rail.rail-aperta{--railw:264px}
body.has-rail #navburger,body.has-rail #pageTag{display:none}
body.has-rail main>.cmdbar:first-child{padding-left:16px}
.prail{position:fixed;left:0;top:0;bottom:0;width:var(--railw);z-index:50;transition:width .16s ease,box-shadow .16s ease;display:flex;flex-direction:column;background:var(--panel);border-right:1px solid var(--line);overflow:hidden}
html[data-theme="glass"] .prail,html[data-theme="dark"] .prail{background:#111a30}
#prail .prh{display:flex;align-items:center;gap:10px;padding:12px 10px 10px 12px;min-height:60px;border-bottom:1px solid var(--line)}
#prail .prb{width:36px;height:36px;flex:0 0 36px;border-radius:10px;border:1px solid var(--line);background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer}
#prail .prb span{display:block;width:16px;height:2px;background:var(--ink);border-radius:1px}
#prail .prp{flex:1;font-size:16px;font-weight:800;white-space:nowrap;overflow:hidden}
#prail .prx{width:28px;height:28px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--ink);cursor:pointer;font-size:16px;font-weight:700}
#prail .prx:hover{border-color:var(--brand)}
#prail .prl{flex:1;overflow:auto;padding:6px 8px 10px}
#prail .prg{margin-top:8px}
#prail .prgt{font-size:10.5px;letter-spacing:.7px;text-transform:uppercase;font-weight:800;color:var(--kv-t,#a9d1ff);padding:8px 8px 4px}
#prail .pri{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:9px;cursor:pointer;font-size:13.5px;font-weight:600;color:var(--ink);text-decoration:none;border:1px solid transparent}
#prail .pri:hover{border-color:var(--line)}
#prail .pri.on{background:var(--brand-soft);border-color:var(--brand)}
#prail .pri.off{opacity:.45;cursor:not-allowed}
#prail .prn{flex:1;min-width:0;line-height:1.25}
#prail .prc{font-size:12px;font-weight:700;border:1px solid var(--line);border-radius:9px;padding:0 7px;font-variant-numeric:tabular-nums}
#prail .prc.amb{border-color:var(--amb-ink);color:var(--amb-ink)}
#prail .prk{border-top:1px solid var(--line);padding:10px 14px 14px}
#prail .prk .kmini{display:flex!important;flex-direction:column;gap:8px;margin:0!important;align-items:stretch;font-size:0}
#prail .prk .kmini>span{display:flex;flex-direction:column-reverse;gap:1px;font-size:10.5px;letter-spacing:.6px;text-transform:uppercase;font-weight:700;color:var(--kv-t,#a9d1ff)}
#prail .prk .kmini>span b{font-size:17px;letter-spacing:0;text-transform:none;color:var(--ink)!important}
body.rail-aperta .prail{box-shadow:12px 0 40px rgba(0,0,0,.45)}
.prveil{position:fixed;inset:0;z-index:49;background:rgba(5,10,22,.5);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .16s}
html:not([data-theme="glass"]):not([data-theme="dark"]) .prveil{background:rgba(20,32,55,.28)}
body.rail-aperta .prveil{opacity:1;pointer-events:auto}
#prail .prf{display:none;gap:8px;padding:10px 12px 12px;border-top:1px solid var(--line)}
body.rail-aperta #prail .prf{display:flex}
#prail .prf button{flex:1;height:38px;border-radius:10px;font-weight:700;font-size:13.5px;cursor:pointer;border:1px solid var(--line);background:transparent;color:var(--ink)}
#prail .prf .prok{background:var(--brand);border-color:var(--brand);color:#fff}
#prail .prf .prok:disabled{opacity:.45;cursor:default}
body.has-rail:not(.rail-aperta) #prail .prp,body.has-rail:not(.rail-aperta) #prail .prk,body.has-rail:not(.rail-aperta) #prail .prgt,body.has-rail:not(.rail-aperta) #prail .prn{display:none}
/* colonna chiusa: restano solo i conteggi dei cestini (il nome è nel suggerimento), il cestino aperto resta evidenziato */
body.has-rail:not(.rail-aperta) #prail .prl{padding:8px 6px}
body.has-rail:not(.rail-aperta) #prail .pri{justify-content:center;padding:6px 0}
body.has-rail:not(.rail-aperta) #prail .pri:not(:has(.prc)){display:none}
body.has-rail:not(.rail-aperta) #prail .prh{flex-direction:column;padding:12px 10px}
body.rail-aperta #prail .prx{transform:rotate(180deg)}
/* barra alta */
.cmdbar .ctit{font-size:17px;font-weight:800;white-space:nowrap;flex:0 0 auto;padding:0 4px}
.cmdbar .cmdsp{flex:1}
.cmdpills{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.cmdpills .fltbar{margin:0!important;padding:0!important;border:0!important;background:transparent!important;display:flex;gap:6px;flex-wrap:nowrap;white-space:nowrap;font-size:12.5px}
.cmdpills .fltbar:empty{display:none}
.csbox{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 4px 0 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel);flex:0 1 330px;min-width:180px}
html[data-theme="glass"] .csbox,html[data-theme="dark"] .csbox{background:#0b1224}
.csbox:focus-within{border-color:var(--brand)}
.csbox svg{flex:0 0 auto;margin:0}
.csbox .csearch{border:0!important;background:transparent!important;box-shadow:none!important;flex:1;min-width:0;width:auto!important;height:34px!important;padding:0 4px!important;color:var(--ink)}
.csx{display:inline-grid;place-items:center;position:relative;width:30px;height:30px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--ink);cursor:pointer;padding:0}
.csx:hover,.csx.sxon{border-color:var(--brand);background:var(--brand-soft)}
.csx svg{margin:0}
.csx .sxn{position:absolute;top:-6px;right:-6px;background:var(--brand);color:#fff;border-radius:9px;font-size:10.5px;padding:0 5px;font-weight:700}
.cmdbar .cbtn.cico{width:36px;padding:0;justify-content:center;font-size:18px;font-weight:800}
.cmdbar .cbtn.cico.hasdd::after{display:none}
.cmdbar .cbtn{height:36px}
.cmduser{position:relative;margin-left:4px}
.cmduser .cav{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:var(--panel);color:var(--ink);font-weight:800;font-size:13px;cursor:pointer}
.cmduser .hdd{right:0;left:auto;top:44px}
.cmduser #srvbanner{position:absolute!important;right:-1px!important;bottom:-1px!important;top:auto!important;left:auto!important;width:11px!important;height:11px!important;box-shadow:0 0 0 2px var(--panel)!important;pointer-events:auto}
/* FINE v.011456 */

/* v.011456b: l'utente compare solo quando è noto (niente «·»), lo spazio resta fermo */
.cmduser:not(.ok) .cav{visibility:hidden}
.has-rail .cmdbar>.cbtn,.has-rail .cmdbar>.ctit,.has-rail .cmdbar>.cmduser{flex-shrink:0}
.has-rail .cmdbar>.csbox{flex:0 1 380px;min-width:170px}
#prail .prp{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.15;min-width:0}
html[data-theme="glass"] .prail,html[data-theme="dark"] .prail{--kv-t:#a9d1ff}
html:not([data-theme="glass"]):not([data-theme="dark"]) .prail{--kv-t:#1d4f91}
/* ══ v.011457 -- liste: il record si apre solo col tasto ▸; i valori sottolineati filtrano; paginazione leggibile ══ */
.rowopen{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font-weight:700;font-size:12px;line-height:1;cursor:pointer;padding:0}
.rowopen:hover{border-color:var(--brand);background:var(--brand-soft)}
table.tmwe tbody tr{cursor:default}
td.tdf{cursor:pointer;text-decoration:underline dotted;text-decoration-thickness:1px;text-underline-offset:4px;text-decoration-color:color-mix(in srgb,currentColor 55%,transparent)}
td.tdf:hover{text-decoration-style:solid;text-decoration-color:currentColor}
.pgb{height:30px;padding:0 12px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--ink);font-weight:700;font-size:12.5px;cursor:pointer}
.pgb:hover:not(:disabled){border-color:var(--brand);background:var(--brand-soft)}
.pgb:disabled{cursor:default;opacity:.5}
.pgb.pgm{border-color:var(--brand)}
/* v.011457 -- badge dei filtri attivi: titolo piccolo sopra, valore pieno, ✕; mai troncati */
.fpill{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 4px 0 10px;border:1px solid var(--brand);border-radius:10px;background:var(--brand-soft);color:var(--ink);white-space:nowrap}
.fpt{display:flex;flex-direction:column;gap:1px}
.fpill small{display:block;font-size:9.5px;letter-spacing:.5px;text-transform:uppercase;font-weight:800;color:var(--kv-t,#a9d1ff);line-height:1}
.fpill b{font-size:13px;font-weight:700;line-height:1.1}
.fpill button{width:24px;height:24px;border:0;border-radius:7px;background:transparent;color:var(--ink);cursor:pointer;font-weight:700;padding:0}
.fpill button:hover{background:rgba(127,127,127,.2)}
.fpclr{height:30px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--ink);font-weight:700;font-size:12px;cursor:pointer}
html:not([data-theme="glass"]):not([data-theme="dark"]) .fpill small{color:#1d4f91}
html[data-theme="glass"] .fpill small,html[data-theme="dark"] .fpill small{color:#a9d1ff}
/* v.011457 -- nelle liste i nomi lunghi vanno a capo, mai tagliati con i puntini (regola 21) */
table.tmwe tbody td.tdw{white-space:normal;overflow:visible;text-overflow:clip;min-width:200px;max-width:360px;line-height:1.3}
/* ══ INIZIO v.011459 -- loghi originali senza sfondo, nomi dei servizi su una riga, matita che non sposta niente ══
   (Luca 29/09: «non usare sfondi, loghi originali; non andare a capo coi nomi dei servizi; la penna fa slittare la card») */
.clogo{display:inline-flex;align-items:center;justify-content:flex-start;width:auto;max-width:64px;height:30px;background:transparent;padding:0;border-radius:0;overflow:visible}
.clogo img{height:26px;width:auto;max-width:64px;object-fit:contain;object-position:left center;display:block}
.clogo .lsc{display:none}
html[data-theme="glass"] .clogo .lch,html[data-theme="dark"] .clogo .lch{display:none}
html[data-theme="glass"] .clogo .lsc,html[data-theme="dark"] .clogo .lsc{display:block}
.clogo.cini{justify-content:center;border:1px solid var(--line);border-radius:8px;width:44px}
.clogo.cini b{font-size:13px;font-weight:800;color:var(--ink);letter-spacing:.5px}
.rdrawer .scsv.scsvl{grid-template-columns:auto minmax(0,1fr) 10px;gap:12px;padding:10px 12px;min-height:54px}
.rdrawer .scsv.scsvl .n{white-space:nowrap;overflow:visible;line-height:1.25}
.rdrawer .scsv.scsvl .n.a-capo{white-space:normal}
/* la matita sta sul bordo del riquadro, in alto a destra: non occupa spazio dentro, niente si sposta */
.scbox>.sced{top:-15px;right:12px;width:30px;height:30px;background:var(--panel);border:1px solid var(--line);z-index:2}
html[data-theme="glass"] .scbox>.sced,html[data-theme="dark"] .scbox>.sced{background:#1c2438}
.scbox.haed{margin-top:18px}
.rdrawer .scr2>.scbox.haed:first-child,.rdrawer .scl>.scbox.haed:first-child,.scgrid>*>.scbox.haed:first-child{margin-top:14px}
/* FINE v.011459 */
/* ══ INIZIO v.011459 -- scheda Supplementi: ricerca a sinistra con il «+», risultati sopra la scheda, puntino sulla scheda ══ */
.sctabs.fondo>button .tdot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#22c55e;margin-left:6px;box-shadow:0 0 0 2px rgba(34,197,94,.25)}
.supbar{position:relative;display:flex;align-items:center;gap:8px;margin:0 0 10px}
.supcerca{display:inline-flex;align-items:center;gap:6px;flex:0 1 360px;height:38px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
html[data-theme="glass"] .supcerca,html[data-theme="dark"] .supcerca{background:#0b1224}
.supcerca:focus-within{border-color:var(--brand)}
.supcerca input{outline:none!important;border:0!important;background:transparent!important;box-shadow:none!important;flex:1;min-width:0;height:36px;padding:0 2px!important;color:var(--ink);font-size:14px}
.supris{position:fixed;z-index:90;max-height:300px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 14px 34px rgba(0,0,0,.35);padding:6px}
html[data-theme="glass"] .supris,html[data-theme="dark"] .supris{background:#141c30}
.supr{all:unset;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;color:var(--ink)}
.supr:hover,.supr:focus-visible{background:var(--brand-soft)}
.supr.gia{cursor:default;opacity:.6}
.supr small{font-size:10.5px;letter-spacing:.5px;text-transform:uppercase;font-weight:800;color:#22c55e}
.supvuoto{padding:10px;font-size:13.5px;color:var(--ink)}
.supconf{display:grid;grid-template-columns:1fr auto;gap:10px 14px;align-items:end;padding:8px}
.supconf .supcn{grid-column:1/-1}
.supimp{display:flex;flex-direction:column;gap:3px}
.supimp small{font-size:10.5px;letter-spacing:.5px;text-transform:uppercase;font-weight:800;color:var(--kv-t,#a9d1ff)}
html:not([data-theme="glass"]):not([data-theme="dark"]) .supimp small{color:#1d4f91}
.supimp input{width:140px;height:36px;text-align:right;font-variant-numeric:tabular-nums}
.supbt{display:flex;gap:8px}
.supbt button{height:36px;padding:0 14px;border-radius:10px;font-weight:700;cursor:pointer}
.supst{grid-column:1/-1;font-size:13px;font-weight:600;color:var(--amb-ink);min-height:0}
.supavv{display:flex;align-items:center;gap:6px;margin:0 0 8px;font-size:13px;font-weight:600;color:var(--amb-ink)}
.sunomi{display:block;font-size:12px;font-weight:500;color:var(--ink);opacity:.85;margin-top:2px;line-height:1.3}
.eco .sulnk{padding:0!important;margin:0!important}
/* FINE v.011459 */
/* ══ INIZIO v.011461 -- correzioni comuni dall'audit del 29/09 ══════════════════════════════════════
   tabelle: mai puntini (regola 21), i testi lunghi vanno a capo; le tabelle stanno nella larghezza dello schermo */
table.tmwe tbody td{max-width:none;overflow:visible;text-overflow:clip}
table.tmwe tbody td.tdw{white-space:normal;min-width:160px;max-width:340px;line-height:1.3}
table.tmwe tbody td .tag,table.tmwe tbody td .badge,table.tmwe tbody td .pill{white-space:nowrap}
/* suggerimenti: dissolvenza */
.hoverpop.hpfade{opacity:0;transition:opacity .25s ease}.hoverpop.hpfade.vis{opacity:1}
/* la fila di schede in fondo ha sempre la stessa altezza, con o senza il «+» (regola 33) */
.sctabs.fondo{min-height:50px;box-sizing:border-box;align-items:center}
/* pagine senza colonna laterale: il tasto delle pagine non copre il titolo */
body:has(#navburger):not(.has-rail)>main{margin-left:56px}
/* FINE v.011461 */
/* ══ INIZIO v.011461b -- richieste comuni emerse dalle correzioni delle pagine ══
   24: nella scheda il testo è bianco o nero puro (le variabili erano pure ma il colore del testo restava quello del corpo) */
.rdrawer{color:var(--ink)}
/* 21: il nome del cliente in testata non si taglia più a due righe; le pagine riducono il carattere se serve */
.rh2 .rcli{display:block;-webkit-line-clamp:unset;overflow:visible}
/* 40: i collegamenti chiari con icona valgono anche nelle liste, non solo nella scheda */
a.lkc{color:inherit;text-decoration:none;border-bottom:1px dotted currentColor;display:inline-flex;align-items:center;gap:5px;cursor:pointer}
a.lkc svg{margin:0}
/* paginazione: il numero dei record si legge */
[id$="_pg"]>span:first-child{color:var(--ink)!important}
/* utente in alto nelle pagine senza colonna: leggibile */
#whoami{color:var(--ink)!important}#whoami a{color:inherit!important}
/* FINE v.011461b */

/* INIZIO v.011464 -- etichette della stessa riga del modulo alla stessa altezza (richiesta comune dell'audit:
   prima align-items:flex-end allineava il fondo dei campi e le etichette ballavano di ±6 px) */
.rdrawer .fgrid:not(.agrid){align-items:flex-start}
.rdrawer .fgrid:not(.agrid) .fld>label:first-child{min-height:16px;line-height:16px}
/* FINE v.011464 */

/* INIZIO v.011464 -- striscia delle azioni di gruppo sopra le liste (BULK in tmwe.js): altezza fissa, niente salti */
.bkbar{display:flex;align-items:center;gap:10px;min-height:40px;margin:0 0 8px;flex-wrap:nowrap;color:var(--ink)}
.bkbar .bksp{flex:1}
.bkbar .bkn{font-size:13px;white-space:nowrap}
.bkbar button{font:inherit;font-size:13px;font-weight:700;border-radius:9px;padding:7px 12px;border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer;white-space:nowrap}
.bkbar button.bkbtn.on{border-color:var(--brand)}
.bkbar button.bkgo{background:var(--brand);border-color:var(--brand);color:#fff}
.bkbar button:disabled,.bkbar select:disabled{opacity:.45;cursor:default}
.bkbar select{font:inherit;font-size:13px;border-radius:9px;padding:6px 10px;border:1px solid var(--line);background:var(--panel);color:var(--ink);max-width:320px}
table.tmwe th.bkth,table.tmwe td.bktd{width:34px;text-align:center;padding-left:6px;padding-right:6px}
table.tmwe tr.bksel td{background:rgba(59,130,246,.10)}
.bklist{margin:0;padding:0 0 0 18px;max-height:240px;overflow:auto;font-size:13px;line-height:1.6}
/* FINE v.011464 */

/* v.011466 -- colonna chiusa: i numeri a 4-5 cifre (es. 2602) non si tagliano più: carattere più stretto e margini ridotti */
body.has-rail:not(.rail-aperta) #prail .prc{font-size:11px;padding:0 4px;letter-spacing:-.2px;max-width:100%}
body.has-rail:not(.rail-aperta) #prail .pri{padding:5px 0;min-width:0}
body.has-rail:not(.rail-aperta) #prail .prl{padding:8px 3px}
/* v.011466 -- ORIGINE(nome): bandiera del paese del listino (Italia o partner) */
.origine{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;border:1px solid var(--line);border-radius:999px;padding:1px 8px 1px 5px;margin-right:6px;white-space:nowrap;vertical-align:middle;color:var(--ink)}
.origine .obf{font-size:14px;line-height:1}
.origine.partner{border-color:var(--brand)}
/* INIZIO v.011469 -- AREE, NON CASELLE (regola 48): gruppi riconoscibili con icona o logo e titolo, forma secondo il contenuto */
.ars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start}
.ar{border:1px solid var(--line);border-radius:12px;padding:8px 14px 10px;background:rgba(127,127,127,.04);min-width:0}
html[data-theme="glass"] .ar,html[data-theme="dark"] .ar{background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.14)}
.ar.ar-largo{grid-column:1/-1}
.ars.ars3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ars+.ars{margin-top:12px}
.ar-col{display:flex;flex-direction:column;gap:10px;min-width:0}
.ar-h{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:var(--kv-t,#a9d1ff);margin:0 0 6px;min-height:22px}
html:not([data-theme="glass"]):not([data-theme="dark"]) .ar-h{color:var(--kv-t,#1d4f91)}
.ar-h svg{margin:0;flex:0 0 auto}.ar-h .ar-sp{flex:1}
.ar-h .clogo,.ar-h img{max-height:18px;width:auto}
.ar-r{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:flex-end}
.ar-r+.ar-r{margin-top:6px}
.ar-r>.ar-cb{margin:4px 14px 0 0}
.ar .fld{margin:0;min-width:0}
.ar .fld>label{display:block;white-space:nowrap;font-size:10.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;margin:0 0 2px;color:var(--ink);opacity:.85}
.ar .fld.ar-S{flex:0 0 auto;min-width:84px}.ar .fld.ar-S>input,.ar .fld.ar-S>select,.ar .fld.ar-S>.combo,.ar .fld.ar-S>.selc{width:0!important;min-width:100%;display:block}.ar .fld.ar-M{flex:1 1 110px}.ar .fld.ar-L{flex:2 1 180px}.ar .fld.ar-XL{flex:1 1 100%}
.ar input:not([type=checkbox]),.ar select,.ar textarea{width:100%;box-sizing:border-box;height:36px;border:1px solid var(--line);border-radius:8px;background-color:var(--panel);color:var(--ink);font:inherit;font-size:14px;padding:5px 10px;box-shadow:none}
.ar input:not([type=checkbox]),.ar select{height:34px}
.ar textarea{height:auto;min-height:72px;line-height:1.4;resize:vertical}
html[data-theme="glass"] .ar input:not([type=checkbox]),html[data-theme="glass"] .ar select,html[data-theme="glass"] .ar textarea,
html[data-theme="dark"] .ar input:not([type=checkbox]),html[data-theme="dark"] .ar select,html[data-theme="dark"] .ar textarea{background-color:rgba(0,0,0,.28);border-color:rgba(255,255,255,.2)}
.ar select{appearance:none;-webkit-appearance:none;background-image:var(--chevimg);background-repeat:no-repeat;background-position:right 9px center;padding-right:28px}
.ar .ar-cb{display:flex;align-items:flex-start;gap:8px;font-size:13.5px;cursor:pointer;line-height:1.3;margin:0 0 6px}
.ar .ar-cb input{margin-top:2px;flex:0 0 auto}
.ar .ar-nota{font-size:12.5px;opacity:.85;margin-top:6px}
/* aree tipo */
.ar-busta .ar-r:first-child .fld.ar-L{flex:3 1 260px}
.ar-evidenza{border-color:var(--brand);background:var(--brand-soft,rgba(23,92,211,.08))}
.ar-evidenza .ar-cb{font-weight:700;font-size:14px;margin:0}
.ar-note textarea{min-height:60px}
.ar-evidenza .ar-r{margin-top:8px}
/* FINE v.011469 */

/* INIZIO v.011470 -- regola 48 ovunque: i moduli delle pagine (UX.fedit, ORA.fascia, radio) dentro le aree */
.ars.ars32{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}
.ars.ars1{grid-template-columns:minmax(0,1fr)}
.ar-r{align-items:flex-start}
.ar .ferr{font-size:11px;color:var(--err);margin-top:3px;display:none}
.ar .ferr.on{display:block}
.ar .fld:not(.ar-S):not(.ar-M):not(.ar-L):not(.ar-XL):not(.ar-sn){flex:1 1 140px}
.ar .fld.orafld{flex:0 1 210px}
.ar .fld.oratipo{flex:0 1 160px}
.ar .radio-row{display:flex;gap:14px;align-items:center;min-height:34px}
.ar .datagiorno{display:flex;gap:6px;align-items:center}
.ar .datagiorno>input{flex:1 1 auto;min-width:0}
.ar .fld.ar-XL textarea{min-height:64px}
.ar-note .ar-r{flex-wrap:nowrap}
@media (max-width:760px){.ars,.ars.ars3,.ars.ars32{grid-template-columns:minmax(0,1fr)}.ar-note .ar-r{flex-wrap:wrap}}
.ufin-veil.arsolo .ufb .ar{border:0;background:none;padding:0}
.ufin-veil.arsolo .ufb .ar>.ar-h{display:none}
.scbox.svar{border:1px solid var(--line);border-radius:12px;background:rgba(127,127,127,.04)}
html[data-theme="glass"] .scbox.svar,html[data-theme="dark"] .scbox.svar{background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.14)}
.scbox.svar>.mu,.scbox.svar div.mu{font-size:11px!important;font-weight:700;letter-spacing:.5px;text-transform:uppercase;opacity:.8}
/* le aree vanno a capo da sole quando lo spazio è stretto (colonna del pannello, telefono): prima due colonne fisse */
.ars{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch}
.ars>.ar,.ars>.ar-col{flex:1 1 300px;min-width:0}
.ars.ars3>.ar,.ars.ars3>.ar-col{flex:1 1 230px}
.ars.ars32>:first-child{flex:3 1 330px}.ars.ars32>:nth-child(2){flex:2 1 220px}
.ars.ars1>*{flex:1 1 100%}
.ars>.ar.ar-largo{flex:1 1 100%}
/* FINE v.011470 */

/* INIZIO v.011472 -- area «Intervieni» della scheda e avviso breve */
.ar.ar-interv .intbar{display:flex;flex-wrap:wrap;gap:6px}
.ar.ar-interv .intb{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;padding:6px 10px}
.ar.ar-interv .intlinks{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;font-size:12.5px}
.ar.ar-interv .intlinks a{color:inherit;border-bottom:1px dotted currentColor;text-decoration:none;cursor:pointer}
.uxtoast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:var(--panel,#1b2233);color:var(--ink,#fff);border:1px solid var(--line);border-radius:10px;padding:10px 16px;font-size:14px;box-shadow:0 8px 30px rgba(0,0,0,.35);opacity:0;transition:.3s;z-index:99999}
.uxtoast.on{opacity:1;transform:translate(-50%,0)}
.gcic{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;font-size:13px}
.gcic .gl{flex:1 1 auto}.gcic .gd{font-variant-numeric:tabular-nums;opacity:.9;white-space:nowrap}
.gcic .hbtn{padding:3px 9px;font-size:12px}
.gcic.ora{background:var(--warn-card,rgba(201,138,0,.12));outline:1px solid var(--warn,#c98a00)}
.gcic.ora .gl{font-weight:700}
/* FINE v.011472 */

/* v.011473 -- il logo TMWE intero (con la scritta): più largo del posto dei corrieri, altrimenti la scritta non si legge */
.clogo.ctmwe{max-width:112px}
.clogo.ctmwe img{height:36px;max-width:112px}
.ar-h .clogo.ctmwe img{height:20px;max-width:64px}
.scsv.scsvl .n{min-width:0;flex:1 1 auto;white-space:normal}

/* v.011474 -- nuova spedizione ad aree */
.nscli{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 6px;font-size:15px}
.ar-h .lpico{padding:2px 7px;font-size:12px}
.ar input[readonly]{opacity:.72;background-color:transparent!important;cursor:default}
/* INIZIO v.011474 -- LE FINESTRE DEGLI STRUMENTI (convertitore, scelta del servizio, simulatore, aging, HAWB…) come le altre
   finestre: al centro, dentro lo schermo, che scorrono dentro; niente frecce ▲▼ di navigazione record (qui non c'è un record
   da scorrere). Prima un pannello a tutta altezza che entrava da destra, con le frecce fuori dal bordo. */
#drawer.drawer{top:50%;left:50%;right:auto;height:auto;max-height:88vh;width:min(940px,94vw);max-width:94vw;border-radius:14px;overflow:hidden;
  transform:translate(-50%,-47%);opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;border:1px solid var(--line);box-shadow:0 24px 70px rgba(0,0,0,.45)}
#drawer.drawer.open{right:auto;transform:translate(-50%,-50%);opacity:1;pointer-events:auto}
#drawer .dbody{flex:1 1 auto;min-height:0}
#drawer .dnavbtns{display:none!important}
#drawer .dhead h2{font-size:17px}
/* FINE v.011474 */
/* INIZIO v.011475 -- sottogruppo dentro un'area (collo / pallet / fuori misura): prima riga grigia minuscola dentro la griglia fissa */
.ar .ar-sub{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;opacity:.62;margin:12px 0 4px}
/* FINE v.011475 */
/* INIZIO v.011475 -- fasce di peso (cargo aereo, margini) in un'area: titoli di colonna una volta sola; prima una tabella con le caselle dentro */
.ar .ar-fasce{display:grid;grid-template-columns:28px minmax(90px,150px) minmax(90px,150px);gap:6px 12px;align-items:center}
.ar .ar-fasce .h{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;opacity:.7}
.ar .ar-fasce .n{font-size:12.5px;opacity:.7;text-align:right}
.ar .ar-fasce input{width:100%;min-width:0}
/* FINE v.011475 */

/* INIZIO v.011480 -- TESTATA IN ORDINE (Luca 30/09). Numero azzurro +30%, azienda sotto grande in grassetto,
   mezzo davanti, fase a cerchietti su una striscia (bianca nel tema scuro, nera nel chiaro), ‹ n / N › al centro. */
:root{--awb:#1b7fd0}
[data-theme="glass"],[data-theme="dark"]{--awb:#5cc3ff}
.rh2 .l1{height:auto;min-height:64px;padding:4px 0}
.rh2 .rmezzo{display:inline-flex;align-items:center;justify-content:center;color:var(--awb);flex-shrink:0}
.rh2 .rmezzo svg{margin:0;vertical-align:0}
.rh2 .rtit{display:flex;flex-direction:column;justify-content:center;min-width:0;flex:1 1 auto;line-height:1.15;gap:2px}
.rh2 .rtit .rid{font-size:19.5px;color:var(--awb);font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
/* il nome non si taglia (regola 21): al massimo due righe, e le pagine con rcliFit lo rimpiccioliscono se serve */
.rh2 .rtit .rcli{font-size:17px;font-weight:800;color:var(--ink);max-width:none;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.2}
.rh2 .l2.l2g{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px}
.rh2 .l2g .l2a{display:flex;align-items:center;gap:14px;min-width:0}
.rh2 .l2g .l2c{display:flex;justify-content:center}
.rh2 .l2g .l2c:empty{display:none}
.rh2 .l2g .l2d{display:flex;justify-content:flex-end;min-width:0}
.rh2 .l2g .rnav{margin:0}
#rhfase.fstrip{position:relative;display:inline-flex;align-items:center;justify-content:space-between;gap:0;width:150px;height:16px;flex-shrink:0}
#rhfase.fstrip::before{content:'';position:absolute;left:4px;right:4px;top:50%;height:2px;margin-top:-1px;background:var(--ink);opacity:.85;border-radius:2px}
#rhfase.fstrip i{position:relative;width:9px;height:9px;border-radius:50%;border:2px solid var(--ink);background:var(--bg);box-sizing:border-box}
#rhfase.fstrip i.ok{background:var(--ink)}
#rhfase.fstrip i.ora{width:15px;height:15px;border-color:var(--awb);background:var(--awb);box-shadow:0 0 0 3px color-mix(in srgb,var(--awb) 25%,transparent)}
#rhfase.fstrip.fine i{background:var(--ink)}
/* FINE v.011480 */

/* INIZIO v.011490 -- selettore delle code (grande, al posto del titolo) e barra di aggiornamento accanto (Luca 05/10) */
.cmdbar .ctit.cqhid{display:none}
.cmdbar .cqsel{display:inline-flex;align-items:center;gap:10px;height:40px;padding:0 14px 0 16px;border-radius:12px;border:2px solid var(--brand);
  background:var(--panel);color:var(--ink);font:inherit;font-size:17px;font-weight:800;cursor:pointer;white-space:nowrap;flex:0 0 auto;max-width:360px}
.cmdbar .cqsel:hover,.cmdbar .cqsel.open{box-shadow:0 0 0 3px rgba(23,92,211,.15)}
.cmdbar .cqsel .cqn{overflow:hidden;text-overflow:ellipsis}
.cmdbar .cqsel .cqc{min-width:26px;padding:1px 9px;border-radius:999px;background:var(--brand);color:#fff;font-size:13px;font-weight:800;text-align:center}
.cmdbar .cqsel .cqc:empty{display:none}
.cmdbar .cqsel::after{content:'▾';font-size:13px}
.cqpanel{padding:14px 16px;max-width:min(980px,94vw);max-height:min(72vh,680px);overflow:auto}
.cqpanel .cqcols{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px 18px;min-width:min(900px,88vw)}
.cqpanel .cqgt{font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--ink);margin:0 0 4px;padding:0 10px}
.cqpanel a.cqi{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:9px;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer;text-decoration:none}
.cqpanel a.cqi:hover{background:rgba(23,92,211,.08)}
.cqpanel a.cqi.on{background:var(--brand);color:#fff}
.cqpanel a.cqi .cqin{flex:1;min-width:0}
.cqpanel a.cqi b{font-size:12.5px;min-width:24px;text-align:right}
.cqpanel a.cqi.off{opacity:.45;cursor:default}
/* senza spunte la striscia sopra la lista mostra solo «Seleziona tutta la lista»; con una spunta sale accanto al selettore */
.bkbar:not(.bkon) .bkact,.bkbar:not(.bkon) .bkgo,.bkbar:not(.bkon) .bkclr{display:none}
.cmdbar>.bkbar{margin:0;min-height:40px;padding:0 6px 0 6px;gap:8px;border:2px solid var(--brand);border-radius:12px;background:var(--panel);flex:1 1 auto;min-width:0}
.cmdbar>.bkbar .bkn{font-weight:800}
.cmdbar>.bkbar .bksp{display:none}
.cmdbar>.bkbar button{padding:5px 10px}
.cmdbar>.bkbar select{flex:1 1 auto;min-width:140px;max-width:none}
body.bk-attiva .cmdbar>.vsel,body.bk-attiva .cmdbar>.cmdpills,body.bk-attiva .cmdbar>.csbox,body.bk-attiva .cmdbar>.iinfo,
body.bk-attiva .cmdbar>.cmdsp,body.bk-attiva .cmdbar>#fltbtn{display:none!important}
.bkbarsp{min-height:40px;margin:0 0 8px}
/* FINE v.011490 */
/* INIZIO v.011491 -- avviso delle code («uscita dalla coda… ne restano N», con «Apri la prossima») */
.lsavv{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);display:flex;align-items:center;gap:12px;background:var(--panel,#1b2233);color:var(--ink,#fff);
  border:1px solid var(--line);border-top-color:rgba(255,255,255,.18);border-radius:12px;padding:9px 12px 9px 16px;font-size:14px;font-weight:600;
  box-shadow:0 8px 30px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.06);z-index:99999;max-width:92vw}
.lsavv button{height:30px;padding:0 12px;border-radius:9px;font-weight:700;cursor:pointer;white-space:nowrap}
.pgnav{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:14px}
.pgnav b{min-width:210px;text-align:center;font-weight:800}
.pgnav button{height:30px;min-width:34px;padding:0 10px;border:1px solid var(--line);border-top-color:rgba(255,255,255,.2);border-radius:9px;background:var(--panel);color:var(--ink);cursor:pointer;font-weight:700}
/* coda «Da fatturare»: in pagina c'è il modulo con l'anteprima, la lista delle fatture non si mostra */
body.q-dafatt #tbl,body.q-dafatt #tbl_bulk,body.q-dafatt #tbl_pg,body.q-dafatt #tbl_flt,body.q-dafatt #tbl_more,body.q-dafatt #empty{display:none!important}
/* …e nemmeno i comandi che agirebbero su quella lista (ricerca, filtri, partizioni e riepilogo nella colonna) */
body.q-dafatt .cmdbar .csbox,body.q-dafatt .cmdbar #fltbtn,body.q-dafatt .cmdbar .cmdpills,body.q-dafatt .prail .prg:not(.prgc),body.q-dafatt .prail .prk{display:none!important}
/* FINE v.011491 */

/* INIZIO v.011512 -- audit della struttura della scheda (spedizione e gemelle con accessori+note). Prima: spazi tra riquadri 10/12/14/18,
   padding 12/14 a sinistra e 20/22 a destra, merce e note su due righe da 60+96 con metà vuota, lucchetto su una riga da 48 px con un tasto solo,
   colonne che finivano a quote diverse; la scheda scorreva di ~135 px (regola 20: sta in 1030×800). Nessun id, handler o data-* toccato. */
.rdrawer .scgrid{margin-top:-10px}                                   /* sopra il primo riquadro c'erano 30 px: ne bastano 15 (matita sul bordo) */
.rdrawer .scgrid .scr2>*+*{margin-top:12px}                          /* riquadri senza matita: sempre 12 */
.rdrawer .scl>.scbox.haed{margin-top:16px}                           /* riquadri con matita sul bordo: sempre 16 (prima 18) */
.rdrawer #rbody{padding-bottom:8px}
/* soldi: stesso padding degli altri riquadri e righe più strette; il lucchetto «fissa» sta sul bordo accanto alla matita */
.rdrawer .scsoldi,.rdrawer .scsoldi.haed{padding:14px 16px}
.rdrawer .scsoldi .eco td{padding:4px 0}
.rdrawer .scsoldi .ecosep{margin-top:6px!important}
.rdrawer .scsv.scsvl{padding:8px 12px;min-height:48px}
.rdrawer .scsoldi.haed>.sclock{position:absolute;top:-15px;right:48px;margin:0;z-index:2}
.rdrawer .scsoldi.haed>.sclock .sp{display:none}
.rdrawer .scsoldi.haed>.sclock .icb{width:30px;height:30px;border-radius:8px;background:var(--panel);border:1px solid var(--line)}
html[data-theme="glass"] .rdrawer .scsoldi.haed>.sclock .icb,html[data-theme="dark"] .rdrawer .scsoldi.haed>.sclock .icb{background:#1c2438}
.rdrawer .scsoldi.haed>.sclock .icb:hover{border-color:var(--brand);color:var(--brand)}
/* intervieni: meno aria verticale (le pulsantiere vanno a capo su 3 righe) */
.ar.ar-interv{padding:6px 12px 8px}
.ar.ar-interv .ar-h{margin-bottom:4px}
.ar.ar-interv .intbar{gap:4px}
/* colonna sinistra: colli/peso/tassato e note interne affiancati (area per contenuto, regola 48), schede in fondo che riempiono fino al fondo
   così le due colonne finiscono alla stessa quota */
.rdrawer .scgrid:has(.scaccnote){align-items:stretch}
.rdrawer .scl:has(>.scaccnote){display:grid;grid-template-columns:max-content minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr);column-gap:12px;align-items:stretch}
.rdrawer .scl:has(>.scaccnote)>.scrotta,.rdrawer .scl:has(>.scaccnote)>.scfondo{grid-column:1/-1}
.rdrawer .scl:has(>.scaccnote)>.scbox:not(.scrotta):not(.scaccnote){display:flex;align-items:center;min-height:0}
.rdrawer .scl:has(>.scaccnote)>.scfondo{display:flex;flex-direction:column;min-height:0}
.rdrawer .scl:has(>.scaccnote)>.scfondo .scfb{flex:1 1 auto;height:auto;min-height:92px}
.rdrawer .scl>.scaccnote .scrow.kvrow{flex-wrap:nowrap;align-items:flex-start}
.rdrawer .scl>.scaccnote .kvs{flex:1 1 auto;min-width:0}
.rdrawer .scaccnote .kv.nota b{font-size:14px;line-height:1.35}
/* FINE v.011512 */

/* INIZIO v.011513 -- testata a tre zone (h.tre), terza stesura. Regola di allineamento: i comandi di testata (indietro, penna, menu, chiudi) stanno
   sempre sulla stessa linea e i comandi a destra; i dati sono etichetta sopra / valore sotto. Altezza fissa (regola 36). */
.rh2.rh3{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-areas:"a b c" "t t t";column-gap:12px;row-gap:0;align-items:stretch;padding:8px 18px 4px}
.rh3>.rg{display:flex;min-width:0;height:112px}
.rh3>.ra{grid-area:a;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:34px auto;column-gap:10px;align-content:start;align-items:center}
.rh3>.ra>.hback{grid-column:1;grid-row:1}
.rh3>.ra>.rtit{display:contents}
.rh3 .rtit .rid{grid-column:2;grid-row:1;font-size:19.5px;line-height:34px;color:var(--awb);font-weight:800;white-space:nowrap}
.rh3 .rtit .rrif{grid-column:2;grid-row:2;align-self:start;font-size:13px;font-weight:700;color:var(--amb-ink,#7a4b1e);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;margin-top:-4px}
.rh3 .rtit .rsp{grid-column:2;grid-row:3;align-self:start;display:flex;align-items:center;gap:8px;margin-top:6px}
.rh3 .rmezzo{display:inline-flex;align-items:center;color:var(--awb);flex:0 0 auto}
.rh3 .rmezzo svg{margin:0}
.rh3 .rmeta.kvs{gap:0 12px;display:flex}
.rh3>.rb{grid-area:b;flex-direction:column;align-items:center;justify-content:flex-start;gap:2px;text-align:center}
.rh3 .rcli{min-height:34px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:17px;font-weight:800;color:var(--ink);line-height:1.2;max-width:none;align-content:center}
.rh3 .l2c{display:flex;justify-content:center;align-items:center;min-height:26px}
.rh3 .rnav .hbtn.ic{min-height:26px;height:26px;min-width:30px}
.rh3 .rfs{display:flex;align-items:center;gap:12px;min-height:16px}
.rh3 #rhfase.fstrip{width:150px}
.rh3 .rstt{display:flex;align-items:center;gap:10px;margin-top:0}
.rh3 .rstt .hbtn,.rh3 .rstt .hstato{min-height:30px;height:30px;padding-top:0;padding-bottom:0}
.rh3 .rstt .hdrop{display:inline-flex}
.rh3>.rc{grid-area:c;flex-direction:column;align-items:flex-end;justify-content:space-between}
.rh3 .rtop{display:flex;align-items:center;justify-content:flex-end;gap:10px;height:34px}
.rh3 .rtop>*{display:inline-flex;align-items:center;height:34px;margin:0}
.rh3 .rtop .hmenu{position:relative}
.rh3 .rtop .hmenu>.hbtn{margin:0}
.rh3 .rbot{display:flex;align-items:center;justify-content:flex-end;min-height:30px}
.rh3>.rtabs{grid-area:t}
.rh3 .rpart{display:inline-flex;align-items:center;min-width:0}
.rh3 .rpart .clogo{max-width:120px;height:26px}
.rh3 .rpartn{font-size:13px;font-weight:800;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}
.rh3 .hdd{z-index:30}
/* FINE v.011513 */

.rdrawer .scgrid{margin-top:-13px}   /* v.011514: la testata a tre zone è più alta di 10 px, li recupero qui (la matita resta sul bordo) */

/* INIZIO v.011515 -- testata spedizione ripulita (Luca 12/10). SINISTRA: ☰ in alto, sotto il numero il riferimento; il camioncino sta sotto ☰,
   appoggiato in basso, e accanto la data su UNA riga («6 ott»). CENTRO: cliente · ‹ n/N › · fasi · stato, esattamente al centro (Salva/Annulla
   in modifica pendono a destra dello stato senza spostarlo). DESTRA: «Chiudi controllo» e «Da sistemare» diventano tasti a icona accanto alla
   penna, sulla stessa linea di 34 px. Stessi id di prima. */
.rh3>.ra{grid-template-rows:34px auto 1fr}
.rh3 .rtit .rsp{display:contents}
.rh3 .rsp .rmezzo{grid-column:1;grid-row:3;align-self:end;justify-self:center;height:26px}
.rh3 .rsp .rmeta{grid-column:2;grid-row:3;align-self:end;height:26px;align-items:center}
.rh3 .rmeta .kv b{font-size:15px;font-weight:700;color:var(--ink);line-height:1}
.rh3 .rstt{position:relative;justify-content:center}
.rh3 .rstt .rhfix{position:absolute;left:100%;margin-left:10px;white-space:nowrap}
.rh3 .rfxt{display:inline-flex;align-items:center;gap:10px}
.rh3 .rfxt:empty{display:none}
.rfxt[data-mode="edit"] .rhfixv{display:none}
.rh3 .rtop .fxb{width:34px;min-width:34px;height:34px;padding:0;border-radius:9px;display:inline-flex;align-items:center;justify-content:center}
.rh3 .rtop .fxb svg{margin:0}
.rh3 .rtop .fxb.off{opacity:.55}
.rh3 .rtop .rhfixv{gap:10px}
.rh3 .rstt .rhfix .savebar .st{display:none}   /* «● da salvare» sta già nella striscia sopra */
/* FINE v.011515 */

/* INIZIO v.011516 -- la tratta sotto il cliente, sopra ‹ n/N › e le fasi */
.rh3>.rg{height:152px}
.rh3 .rrot{display:flex;justify-content:center;align-items:center;min-height:30px;margin-bottom:10px}
.rh3 .rrot .scrow.scr{flex-wrap:nowrap;white-space:nowrap}
/* FINE v.011516 */

/* INIZIO v.011517 -- (1) il primo riquadro non ha più la riga della tratta: le schede partono a distanza normale dal bordo (come gli altri riquadri);
   (2) contatti dietro icona; (3) partner e chat in testata, popup minime. */
.rdrawer .scrotta>.sctabs:first-child{margin-top:0}
.sclab .n{display:flex;align-items:center;gap:8px}
.sccont{display:inline-flex;position:relative}
.sccont>.hbtn.ic{min-height:26px;height:26px;min-width:28px;padding:0}
.sccont .hdd{left:0;right:auto;top:32px;min-width:240px}
.sccont .ccr{padding:6px 8px;font-weight:400;font-size:13.5px}
.sccont .ccr a{color:var(--lk)}
.rh3 .rbot{gap:10px}
.rh3 .rpf{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;flex:0 0 auto;height:30px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--ink);cursor:pointer;font-size:17px;line-height:1}
.rh3 .rpf:hover{border-color:var(--brand)}
.rh3 .rpf .plus{font-size:15px;font-weight:700;color:var(--muted)}
.rpop .hdd{min-width:300px;padding:8px}
.rpop .prow{display:flex;align-items:center;gap:10px;padding:6px 6px;font-size:14px}
.rpop .prow .pf{font-size:18px;line-height:1}
.rpop .prow .pn{flex:1;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rpop .prow .pl{color:var(--muted);display:inline-flex}
.rpop .prow .hbtn.ic{min-height:26px;height:26px;min-width:28px;padding:0}
.rpop .pfind{padding:6px 6px 2px}
.rpop .pfind input{width:100%}
.rpop #pp_res{display:flex;flex-direction:column;gap:2px;margin-top:4px}
.rpop .pres{justify-content:flex-start;text-align:left;font-size:13.5px}
.pout{font-size:12.5px;color:var(--muted);padding:2px 6px}
.pout.err{color:var(--err-ink)}
.rchat>.hbtn{position:relative}
.rchat .bdg{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--amb-ink,#b4531a);color:#fff;font-size:11px;font-weight:800;line-height:18px;font-style:normal;text-align:center}
.rchat .bdg:empty{display:none}
.rchat .chatp{width:340px;padding:10px}
.chmsgs{max-height:240px;overflow:auto;display:flex;flex-direction:column;gap:8px;margin-bottom:8px}
.chmsgs:empty{display:none}
.chm{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:7px 10px;font-size:13.5px;max-width:88%;align-self:flex-start}
.chm.mio{align-self:flex-end;background:var(--brand-soft)}
.chm small{display:block;color:var(--muted);font-size:11.5px}
.chsend{display:flex;gap:8px;align-items:center}
.chsend input{flex:1;min-width:0}
/* FINE v.011517 */

/* INIZIO v.011518 -- la tratta: tre celle di larghezza fissa, il selettore ritiro/consegna sempre al centro (Luca 12/10) */
.scr-a>svg{color:var(--muted);flex:0 0 auto;margin:0}
.rh3 .rrot .scrow.scr{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);column-gap:8px;align-items:center;width:440px;max-width:100%;flex-wrap:nowrap}
.rh3 .rrot .scr-a{display:flex;align-items:center;justify-content:center;gap:6px;min-width:0}
.rh3 .rrot .scr-a .t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* FINE v.011518 */

/* INIZIO v.011519 -- il controllo partner sta a destra del numero AWB; il popup dice chi vede la spedizione (nome + bandiera) */
.rh3 .rtit .rhd{grid-column:2;grid-row:1;display:flex;align-items:center;gap:10px;min-width:0}
.rh3 .rhd .rpop{display:inline-flex}
.rh3 .rpf{height:28px;padding:0 8px;gap:3px;font-size:16px}
.rh3 .rpf .pf{display:inline-flex;align-items:center;justify-content:center;font-size:16px;line-height:1}
.rh3 .rpf .plus{margin-left:2px}
.rpop .hdd{left:0;right:auto;top:38px;min-width:330px;max-width:380px}
.rpop .ptit{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--lbl,var(--muted));padding:4px 6px 2px}
.rpop .pf{display:inline-flex;align-items:center;justify-content:center;width:24px;font-size:18px;line-height:1}
.pf.pf0,.rpop .pf.pf0{width:22px;height:22px;border-radius:50%;background:var(--bg);border:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:700}
.rh3 .rpf .pf.pf0{width:20px;height:20px;font-size:11px}
.rpop .pl{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--muted)}
.rpop .pres{gap:8px}
/* FINE v.011519 */

/* INIZIO v.011520 -- numero del record e frecce per cambiare record: in fondo alla pagina, al centro (Luca 12/10). La testata scende di una riga. */
.rfoot{flex:0 0 auto;display:flex;justify-content:center;align-items:center;min-height:46px;border-top:1px solid var(--line);background:var(--panel)}
.rfoot:empty{display:none}
.rfoot .rnav{margin:0;gap:10px}
.rfoot .rnav .hbtn.ic{min-height:32px;height:32px;min-width:38px}
.rfoot .rnavp{font-size:14px}
.rh3>.rg{height:124px}
/* FINE v.011520 */
.rh3 .rhd .rid{flex:0 0 auto}   /* v.011521: il numero AWB non si taglia mai; il controllo partner è solo le bandiere */

/* INIZIO v.011522 -- scheda Presa: badge, comandi, numero sulla scheda (Luca 12/10) */
.pbds{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.pbd{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;font-size:12px;font-weight:600;line-height:1.2;color:var(--ink);white-space:nowrap}
.pbd svg{margin:0;color:var(--muted);flex:0 0 auto}
.pbd.amb{color:var(--amb-ink);border-color:var(--amb)}
.pbd.amb svg{color:var(--amb-ink)}
.pcmd{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.pbtn{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:5px 12px;border:1px solid var(--line);background:var(--panel);border-radius:8px;font-size:12.5px;font-weight:600;cursor:pointer;color:var(--ink);text-decoration:none}
.pbtn svg{margin:0}
.pbtn:hover{border-color:var(--brand)}
.pbtn.pri{background:var(--brand);border-color:var(--brand);color:#fff}
.pbtn.pri svg{color:#fff}
.sctabs>button .tbn{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 5px;border-radius:9px;border:1px solid var(--amb);color:var(--amb-ink);font-size:10.5px;font-weight:700}
.pbd .clogo{height:18px;max-width:46px;width:auto}
.pbd .clogo img{height:16px;max-width:46px}
button.pbd{cursor:pointer;font-family:inherit;background:transparent}
button.pbd:hover{border-color:var(--brand)}
/* FINE v.011522 */
/* INIZIO v.011524 -- finestra Merce, accessori e note: aree dentro un'area madre, Tipo con icone, note per destinatario */
.ar .ar.ar-sub{background:rgba(127,127,127,.05);border-radius:10px;padding:8px 12px 10px}
html[data-theme="glass"] .ar .ar.ar-sub,html[data-theme="dark"] .ar .ar.ar-sub{background:rgba(255,255,255,.04)}
.ar .ar-sub>.ar-h{font-size:10.5px}
html:not([data-theme="glass"]):not([data-theme="dark"]) .ar .ar-sub>.ar-h{color:var(--kv-t,#1d4f91);opacity:1}
.ar .ar-sub>.ar-h svg{color:var(--brand)}
.ar>.ar-b>.ars{align-items:flex-start}
.ar .ar-per{font-size:12.5px;font-weight:400;letter-spacing:0;text-transform:none;opacity:.8;margin:-2px 0 6px}
.ar .ars>.ar.ar-sub{margin:0}
.ar .seg{display:flex;gap:6px;height:34px}
.ar .seg label{position:relative;display:flex;align-items:center;gap:6px;padding:0 12px;border:1px solid var(--line);border-radius:8px;cursor:pointer;font-size:13.5px;background-color:var(--panel);color:var(--ink);white-space:nowrap}
html[data-theme="glass"] .ar .seg label,html[data-theme="dark"] .ar .seg label{background-color:rgba(0,0,0,.28);border-color:rgba(255,255,255,.2)}
.ar .seg input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;min-width:0;padding:0;border:0}
.ar .seg label:has(input:checked){border-color:var(--brand);background-color:var(--brand-soft,rgba(23,92,211,.12));font-weight:700}
.ar .seg label:has(input:focus-visible){box-shadow:0 0 0 3px rgba(23,92,211,.28)}
.ar .seg svg{flex:0 0 auto}
/* FINE v.011524 */

/* v.011527 -- tipo di scheda sotto il numero (testata a tre zone per tutte le pagine) */
.rh3 .rtit .rrif.rtipo{color:var(--muted);font-weight:600;font-size:12.5px;text-transform:uppercase;letter-spacing:.04em}
.rh3.rh3k>.rg{height:106px}   /* senza tratta (clienti, listini, prese…) la testata non ha il buco della tratta */
.rh3.rh3k .rrot{display:none}
.rh3.rh3k .rcli{flex:0 0 auto;height:44px;min-height:44px;align-items:center}
.rh3.rh3k>.rb{justify-content:flex-start}

/* INIZIO v.011528 -- giacenza: esiti a icone e attori */
.gesi{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:6px}
.gesb{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 2px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);font-size:11.5px;font-weight:600;cursor:pointer;min-width:0}
.gesb span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gesb:hover:not(:disabled){border-color:var(--brand)}
.gesb.on{border-color:var(--brand);background:var(--brand-soft);color:var(--ink)}
.gesb:disabled{opacity:.55;cursor:default}
.gesn{margin-top:8px;font-size:13px;color:var(--ink2)}
.gcic .gtit{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--kv-t);margin-right:6px}
/* FINE v.011528 */

/* INIZIO v.011541 -- MENU VERTICALE NELLA SCHEDA + MISURE DEI CAMPI + AIUTI (data, città/CAP/provincia). Luca 14/10. */
.vm{display:grid;grid-template-columns:236px minmax(0,1fr);gap:16px;align-items:start}
.vm-nav{position:sticky;top:8px;display:flex;flex-direction:column;gap:2px;padding:6px;border:1px solid var(--line);border-radius:12px;background:rgba(127,127,127,.04)}
html[data-theme="glass"] .vm-nav,html[data-theme="dark"] .vm-nav{background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.14)}
.vm-i{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:0;border-left:3px solid transparent;border-radius:8px;background:none;color:var(--ink);font:inherit;font-size:13.5px;padding:8px 10px;cursor:pointer;min-height:36px}
.vm-i svg{flex:0 0 auto;margin:0;opacity:.8}
.vm-i .vm-t{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vm-i:hover{background:var(--brand-soft)}
.vm-i.on{background:var(--brand-soft);border-left-color:var(--brand);color:var(--brand);font-weight:700}
.vm-i:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
.vm-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto;background:var(--warn)}
.vm-dot.err{background:var(--err)}
.vm-main{min-width:0}
.vm-main .ars{grid-template-columns:minmax(0,1fr)}
.vm-main .ar{max-width:900px}
.vm-main>details.acc{margin:0}
@media (max-width:760px){.vm{grid-template-columns:minmax(0,1fr)}.vm-nav{position:static;flex-direction:row;overflow-x:auto}.vm-i{width:auto;white-space:nowrap}}
/* misure: i campi non si allargano con la pagina (S sigle, M nomi, L vie, XL righe intere) */
.ar .fld.ar-M{max-width:250px}.ar .fld.ar-L{max-width:430px}.ar .fld.ar-XL{max-width:760px}.ar .fld.ar-XL:has(textarea){max-width:900px}
.ar .fld.ar-S{max-width:130px}
.ar .fld:not(.ar-S):not(.ar-M):not(.ar-L):not(.ar-XL):not(.ar-sn){max-width:250px}
/* campo data con calendario */
input.dp:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]){background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="%236b7a8d" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="17" rx="2"/><path d="M16 2v4M8 2v4M3 10h18"/></svg>');background-repeat:no-repeat;background-position:right 9px center;padding-right:32px!important;cursor:pointer}
html[data-theme="glass"] input.dp:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),html[data-theme="dark"] input.dp:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]){background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="%238b96ad" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="17" rx="2"/><path d="M16 2v4M8 2v4M3 10h18"/></svg>')}
input.dp{min-width:128px}
.dpop,.lgl{position:fixed;z-index:400;background:var(--panel-solid,#fff);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 44px rgba(10,25,50,.28);font-size:13px}
html[data-theme="glass"] .dpop,html[data-theme="dark"] .dpop,html[data-theme="glass"] .lgl,html[data-theme="dark"] .lgl{background:#141c31;border-color:rgba(255,255,255,.2)}
.dpop{width:268px;padding:10px}
.dp-h{display:flex;align-items:center;gap:6px;margin-bottom:8px}
.dp-n{flex:0 0 30px;height:30px;border:1px solid var(--line);border-radius:8px;background:none;color:var(--ink);font-size:18px;line-height:1;cursor:pointer}
.dp-n:hover{background:var(--brand-soft)}
.dp-s{flex:1 1 auto;min-width:0;height:30px;border:1px solid var(--line);border-radius:8px;background-color:var(--panel-solid,#fff);color:var(--ink);font:inherit;font-size:13px;padding:0 6px}
html[data-theme="glass"] .dp-s,html[data-theme="dark"] .dp-s{background-color:#0e1526}
.dp-s[data-s="a"]{flex:0 0 74px}
.dp-w,.dp-gr{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}
.dp-w span{text-align:center;font-size:10.5px;font-weight:700;color:var(--muted);padding:2px 0}
.dp-w .fe{opacity:.7}
.dp-g{height:32px;min-width:0;padding:0;border:0;border-radius:8px;background:none;color:var(--ink);font:inherit;font-size:13px;cursor:pointer}
.dp-g:hover:not(:disabled){background:var(--brand-soft)}
.dp-g.fe{opacity:.75}
.dp-g.oggi{box-shadow:inset 0 0 0 1.5px var(--brand)}
.dp-g.sel{background:var(--brand);color:#fff;opacity:1}
.dp-g:disabled{opacity:.3;cursor:default}
.dp-f{display:flex;gap:4px;align-items:center;margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}
.dp-f button{border:0;background:none;color:var(--brand);font:inherit;font-size:12px;font-weight:600;padding:4px 6px;border-radius:6px;cursor:pointer}
.dp-f button:hover{background:var(--brand-soft)}
.dp-f .dp-sp{flex:1}.dp-f .dp-x{color:var(--muted)}
/* città / CAP / provincia con elenco */
input.lg:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]){background-repeat:no-repeat;background-position:right 9px center;padding-right:28px!important}
input.lg[data-lg="prov"]:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),input.lg[data-lg="cap"]:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]){background-image:var(--chevimg)}
input.lg[data-lg="citta"]:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]){background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="%236b7a8d" stroke-width="2" stroke-linecap="round"><circle cx="11" cy="11" r="7"/><path d="M20 20l-3.5-3.5"/></svg>')}
html[data-theme="glass"] input.lg[data-lg="citta"]:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),html[data-theme="dark"] input.lg[data-lg="citta"]:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]){background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="%238b96ad" stroke-width="2" stroke-linecap="round"><circle cx="11" cy="11" r="7"/><path d="M20 20l-3.5-3.5"/></svg>')}
input.lg[data-lg="prov"]{text-transform:uppercase}
.lgl{overflow-y:auto;padding:4px}
.lg-o{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:8px;cursor:pointer;min-height:34px}
.lg-o b{font-weight:600}.lg-o small{margin-left:auto;color:var(--muted);font-size:12px;white-space:nowrap}
.lg-o:hover,.lg-o.on{background:var(--brand-soft)}
.lg-v{padding:10px 12px;color:var(--muted);font-size:12.5px}
/* FINE v.011541 */

/* INIZIO v.011541 -- Sì/No come interruttore a due posizioni (prima i pallini nativi), riga «etichetta … Sì|No», campo con tasto accanto */
.radio-row{display:inline-flex;gap:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;min-height:0!important;flex:0 0 auto}
.radio-row label{position:relative;display:flex;align-items:center;justify-content:center;min-width:54px;padding:5px 14px;font-size:13px;font-weight:600;cursor:pointer;color:var(--muted);border-left:1px solid var(--line);margin:0;user-select:none}
.radio-row label:first-child{border-left:0}
.radio-row input[type=radio]{position:absolute;opacity:0;width:0;height:0;margin:0;pointer-events:none}
.radio-row label:has(input:checked){background:var(--brand);color:#fff}
.radio-row label:has(input:focus-visible){outline:2px solid var(--brand);outline-offset:-2px}
html .ar .radio-row{display:inline-flex;gap:0;min-height:0}
.ar .fld.ar-sn{flex:1 1 100%;max-width:520px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:14px;padding:5px 0;border-bottom:1px dashed var(--line)}
.ar .fld.ar-sn>label{white-space:normal;text-transform:none;letter-spacing:0;font-size:13.5px;font-weight:500;margin:0;opacity:1}
.ar .fld.ar-sn .ferr{display:none}
.ar-in{display:flex;gap:6px;align-items:stretch}
.ar-in>input{flex:1 1 auto;min-width:0}
.ar-in>.hbtn.ic{flex:0 0 34px;height:34px;padding:0;display:grid;place-items:center}
.ar-sub{font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);margin:12px 0 4px}
/* FINE v.011541 */

/* INIZIO v.011541 -- SCHEDA DEL CLIENTE (e ogni scheda col blocco «schede in fondo»): le sottoschede stanno in un menu VERTICALE
   a sinistra, il contenuto a destra (prima una fila orizzontale sopra una finestra alta 200 px). Il «+» diventa «＋ aggiungi …» in fondo al menu. */
.rdrawer .scfondo.vert{display:grid;grid-template-columns:224px minmax(0,1fr);align-items:stretch}
.rdrawer .scfondo.vert>.sctabs.fondo{flex-direction:column;align-items:stretch;gap:2px;margin:0;padding:8px;min-height:0;border-bottom:0;border-right:1px solid var(--line);overflow:visible}
.rdrawer .scfondo.vert>.sctabs.fondo>button:not(.icb){justify-content:flex-start;border:0;border-left:3px solid transparent;border-radius:8px;padding:8px 10px;min-height:38px;color:var(--ink);font-size:13.5px}
.rdrawer .scfondo.vert>.sctabs.fondo>button:not(.icb):hover{background:var(--brand-soft)}
.rdrawer .scfondo.vert>.sctabs.fondo>button.on:not(.icb){background:var(--brand-soft);border-left-color:var(--brand);color:var(--brand);font-weight:700}
.rdrawer .scfondo.vert>.sctabs.fondo>button .cnt,.rdrawer .scfondo.vert>.sctabs.fondo>button .tbn{margin-left:auto}
.rdrawer .scfondo.vert>.sctabs.fondo .sp{display:none}
.rdrawer .scfondo.vert>.sctabs.fondo>.fondoadd{width:auto!important;height:36px!important;flex:0 0 36px!important;margin:8px 0 0!important;padding:0 10px!important;display:flex!important;align-items:center;justify-content:flex-start;gap:6px;border:1px dashed var(--brand)!important;border-radius:8px!important;color:var(--brand);font-size:13px;font-weight:600;background:none}
.rdrawer .scfondo.vert>.sctabs.fondo>.fondoadd::after{content:attr(title);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rdrawer .scfondo.vert>.sctabs.fondo>.fondoadd svg{width:16px;height:16px;flex:0 0 auto}
.rdrawer .scfondo.vert .scfb{height:auto!important;min-height:340px;max-height:none;overflow:visible}
@media (max-width:0px){.rdrawer .scfondo.vert{grid-template-columns:minmax(0,1fr)}.rdrawer .scfondo.vert>.sctabs.fondo{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}}
/* FINE v.011541 scheda */

/* INIZIO v.011562 -- Luca 16/10: via la colonna laterale dei cestini e il suo menu «Express» (doppione del selettore in barra);
   via i contenitori che dicono 0; nelle schede verticali, dove c'è posto, ogni scheda porta il suo nome */
body.has-rail{padding-left:0!important}
.prail,.prveil{display:none!important}
body.has-rail #navburger{display:flex}
body.has-rail #pageTag{display:block}
body.has-rail>main{margin-left:56px}
.zero0{display:none!important}
.rdrawer .scfondo.vert>.sctabs.fondo>button .tl{display:inline!important}
.ccard.zero0,.subgrp.vuoto{display:none!important}
html.pt-partner .solo-tmwe,html.pt-partner .ecosep{display:none!important}
/* FINE v.011562 */

/* INIZIO v.011571 -- colonna destra delle schede piu larga di default e a larghezza regolabile (Luca 17/10):
   il divisore si trascina, la misura scelta resta salvata e vale in tutte le schede; doppio clic = misura standard.
   La misura sta nella variabile --dxw: sotto 1100px le schede tornano a una colonna come prima. */
.wb{grid-template-columns:minmax(0,1fr) var(--dxw,440px)}
@media(max-width:1100px){.wb{grid-template-columns:1fr}}
@media(max-width:760px){.scgrid{grid-template-columns:1fr}}
html[data-dxw] #rbody .only-view .scgrid{grid-template-columns:minmax(0,1fr) var(--dxw,440px)}
.scgrid,.wb{position:relative}
.scresz{position:absolute;top:0;bottom:0;width:12px;cursor:col-resize;z-index:3;touch-action:none;outline:none}
.scresz::after{content:"";position:absolute;left:50%;top:6px;bottom:6px;width:3px;margin-left:-1.5px;border-radius:2px;background:var(--brand,#5b8cff);opacity:0;transition:opacity .15s}
.scresz:hover::after,.scresz:focus-visible::after,.scresz.on::after{opacity:.55}
body.dxw-drag{cursor:col-resize;user-select:none}
body.dxw-drag iframe{pointer-events:none}
@media(max-width:1100px){.wb>.scresz{display:none}}
@media(max-width:760px){.scgrid>.scresz{display:none}}
/* FINE v.011571 */

/* INIZIO v.011572 -- il logo del partner proprietario del cliente passa dalla destra all'angolo in alto a sinistra: sta sotto il numero AWB,
   centrato sul numero (e' figlio del numero, posizionato in assoluto: non sposta niente). Il riferimento del cliente scende sotto il logo. */
.rh3 .rtit .rid{position:relative;overflow:visible}
.rh3 .rid .rpart{position:absolute;left:50%;top:calc(100% - 1px);transform:translateX(-50%);display:flex;align-items:center;justify-content:center;line-height:1}
.rh3 .rid .rpart .clogo{height:28px;max-width:120px;width:auto}
.rh3 .rid .rpartn{max-width:150px;font-size:12px}
.rh3>.ra.conlogo .rtit .rrif{margin-top:30px}
/* FINE v.011572 */

/* INIZIO v.011576 -- «Intervieni»: riga Scrivi (tre icone) e riga Apri (pratica, giacenza) */
.ar.ar-interv .intbar2{display:flex;flex-direction:column;gap:6px}
.ar.ar-interv .intgr{display:flex;align-items:center;gap:6px}
.ar.ar-interv .intl{min-width:46px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ar.ar-interv .intic{width:36px;height:36px}
/* FINE v.011576 */
/* INIZIO v.011576 -- scelta servizio/fornitore in colonne allineate, ordinamento, composizione sotto la riga */
.rscelta{table-layout:fixed;width:100%;border-collapse:collapse}
.rscelta col.c1{width:34%}.rscelta col.c2{width:11%}.rscelta col.c3{width:13%}.rscelta col.c4{width:15%}.rscelta col.c5{width:20%}.rscelta col.c6{width:7%}
table.tmwe.rscelta tbody td,table.tmwe.rscelta td{vertical-align:middle;padding:8px 8px;border-bottom:1px solid var(--line);max-width:none;white-space:normal;overflow:visible;text-overflow:clip;color:var(--ink)}
table.tmwe.rscelta tbody tr{cursor:default}
.rscelta .rsv.ing{padding-left:22px}
.rscelta .rsv.bl .rsn{text-decoration:line-through}
.rscelta .rsn{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rscelta .rss{display:flex;align-items:center;gap:6px;font-size:12px;margin-top:2px;color:var(--muted)}
.rscelta .rlv .tag{white-space:nowrap}
.rscelta .rpr{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.rscelta .rpr b{font-size:15px}
.rscelta .rpr small{display:block;font-size:11px;font-weight:400}
.rscelta .rpr small.neg{color:var(--warn-ink)}
.rscelta .rcm{font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}
.rscelta .rcm span{display:flex;justify-content:space-between;gap:8px;max-width:130px}
.rscelta td.rtg .tag{display:inline-block;margin:0 4px 4px 0}
.rscelta .rlp{text-align:right}
.rscelta .rlp .icb{width:32px;height:32px}
.rscelta .rgh{display:flex;align-items:center;gap:10px;line-height:1.1}
.rscelta .rgh .rgm{font-weight:400;font-size:12px;margin-left:2px}
.rscelta tr.rgrp td{background:var(--panel);border-top:2px solid var(--line);padding:8px 10px}
.rscelta tr.rsep td{background:var(--panel);padding:10px 10px;border-top:2px solid var(--line)}
.rscelta tr.rsep td span{font-size:12px;font-weight:400;margin-left:6px}
.rscelta tr.rdet td{background:var(--panel);padding:4px 14px 10px}
.rdetb .frow{display:flex;justify-content:space-between;gap:12px;padding:3px 0;border-bottom:1px dotted var(--line);font-size:13px}
.rdetb .frow .fv{font-variant-numeric:tabular-nums;text-align:right}
.rsort{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 10px}
.rsort>span{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-right:2px}
.rsort button{border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:8px;padding:5px 11px;font-size:12.5px;cursor:pointer}
.rsort button.on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
/* FINE v.011576 */
/* INIZIO v.011586 -- finestra Merce e finestra Riaddebito: colori dello standard (titoli blu, etichette marroni), testo scuro e a forte contrasto */
.mrc,.mra{--mb:#17456f;--mw:#5a3817;--mt:#0b1726;--ml:#8a9db3}
html[data-theme="glass"] .mrc,html[data-theme="dark"] .mrc,html[data-theme="glass"] .mra,html[data-theme="dark"] .mra{--mb:#a9d1ff;--mw:#f3cfa4;--mt:#ffffff;--ml:rgba(255,255,255,.45)}
:is(.mrc,.mra) .ar-h{color:var(--mb);font-size:12.5px}
:is(.mrc,.mra) .fld label,:is(.mrc,.mra) .mrc-h span,:is(.mrc,.mra) .mrc-pk th,:is(.mrc,.mra) .mrc-d label,:is(.mrc,.mra) .mrc-per{color:var(--mw);font-weight:800;font-size:11.5px;letter-spacing:.5px;text-transform:uppercase}
:is(.mrc,.mra) input,:is(.mrc,.mra) select,:is(.mrc,.mra) textarea{color:var(--mt);font-weight:600;border-color:var(--ml)}
:is(.mrc,.mra) input[readonly]{color:var(--mt);opacity:.8}
:is(.mrc,.mra) ::placeholder{color:var(--ml);opacity:1}
/* accessori: una voce per riga, i valori incolonnati */
.mrc-acc{display:grid;gap:0}
.mrc-h,.mrc-r{display:grid;grid-template-columns:190px 150px 130px minmax(0,1fr);gap:12px;align-items:center}
.mrc-h{padding:0 0 4px}
.mrc-r{padding:9px 0;border-top:1px solid var(--line)}
.mrc-n{display:flex;align-items:center;gap:8px;font-weight:800;color:var(--mb);font-size:14px}
.mrc-r input,.mrc-r select{width:100%;min-width:0}
.mrc-d{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center}
.mrc-d label{margin:0;white-space:nowrap}
.mrc-nd{color:var(--mw);font-size:12.5px;font-weight:600}
/* colli e misure */
.mrc-pk{width:100%;border-collapse:collapse}
.mrc-pk th{text-align:left;padding:2px 8px 6px 0}
.mrc-pk td{padding:4px 8px 4px 0}
.mrc-pk td.n{font-weight:800;color:var(--mb);width:26px}
.mrc-pk td.v{color:var(--mt);font-weight:700;white-space:nowrap}
.mrc-pkf{display:flex;align-items:center;gap:14px;margin-top:8px;color:var(--mt);font-weight:700}
/* note a schede orizzontali: un solo campo, ampio e leggibile */
.mrc-notes .sctabs button{color:var(--mw);font-weight:800}
.mrc-notes .sctabs button.on{color:var(--mb)}
.mrc-per{margin:8px 0 6px}
.mrc-np textarea{width:100%;min-height:190px;font-size:15px;line-height:1.55;padding:12px 14px;resize:vertical;box-sizing:border-box}
/* finestra riaddebito */
.mra .ra-k{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.mra .ra-k>div small{display:block;color:var(--mw);font-weight:800;font-size:11.5px;letter-spacing:.5px;text-transform:uppercase;margin-bottom:2px}
.mra .ra-k>div b{font-size:19px;color:var(--mt)}
.mra .ra-k>div.dif b{color:var(--mb)}
.mra .ra-sup{display:grid;grid-template-columns:minmax(0,1fr) 130px auto;gap:10px;align-items:end;margin-top:6px}
.mra .ra-sup label{color:var(--mw);font-weight:800;font-size:11.5px;letter-spacing:.5px;text-transform:uppercase;display:block;margin-bottom:3px}
.mra .ra-lista{margin-top:10px;display:grid;gap:4px}
.mra .ra-lista div{display:flex;justify-content:space-between;gap:10px;color:var(--mt);font-weight:600;padding:5px 0;border-top:1px solid var(--line)}
.mra .ra-testo{width:100%;min-height:74px;box-sizing:border-box;padding:10px 12px;font-size:14px;line-height:1.5}
@media(max-width:760px){.mrc-h{display:none}.mrc-r{grid-template-columns:1fr 1fr}.mrc-n,.mrc-d{grid-column:1/-1}.mra .ra-k{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* FINE v.011586 */
/* INIZIO v.011586 -- cargo: etichetta (compagnia aerea / handler) e bandiera sulle righe del vettore */
.scsvl .n{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:0}
.scsvl .rlab{font-size:10.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--amb-ink,#7a4b1e);line-height:1.2}
html[data-theme="glass"] .scsvl .rlab,html[data-theme="dark"] .scsvl .rlab{color:#f3cfa4}
.alq{display:inline-flex;align-items:center;gap:6px}
.alq .alf{display:inline-flex;font-size:18px;line-height:1}
/* FINE v.011586 */

/* INIZIO v.011586 -- chat della spedizione: partecipanti in testa, messaggi non letti in evidenza */
.chpart{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--line)}
.chpart .chpt{font:700 11px/1 system-ui;letter-spacing:.04em;text-transform:uppercase;color:var(--mb,#1d4f91);margin-right:4px}
.chpart .chpn{display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:2px 8px;border:1px solid var(--line);border-radius:12px;color:var(--mt,#1b2430)}
.chm.nuovo{border-left:3px solid var(--brand,#1d4f91);background:var(--brand-soft,rgba(29,79,145,.1));font-weight:600}
.chm.nuovo small::before{content:'● nuovo · ';color:var(--brand,#1d4f91)}
/* FINE v.011586 */

/* v.011586 -- loghi delle compagnie aeree: su tessera bianca (i file sono a colori su fondo trasparente, leggibili in tutti i temi) */
.clogo.alimg{background:#fff;border-radius:6px;padding:2px 6px;height:30px;max-width:84px}
.clogo.alimg img{height:24px;max-width:72px}
.alimgl{height:20px;width:auto;max-width:58px;vertical-align:middle;background:#fff;border-radius:4px;padding:1px 4px;object-fit:contain}

/* INIZIO v.011595 -- BARRA IN ALTO PULITA (Luca 19/10): badge tutti alti uguali, ricerca al centro della pagina, filtri attivi e tendine
   di filtro sopra la lista (striscia #lstrip), bandiera della Vista a sinistra. */
:root{--cbh:38px}
.cmdbar .cbtn,.cmdbar .cbtn.cico{height:var(--cbh)}
.cmdbar .cbtn.cico{width:var(--cbh)}
.cmdbar .cqsel{height:var(--cbh);padding:0 12px 0 14px}
.csbox{height:var(--cbh);border-radius:12px}
.csbox .csearch{height:calc(var(--cbh) - 4px)!important}
.cmduser .cav{width:var(--cbh);height:var(--cbh)}
.cmduser .hdd{top:calc(var(--cbh) + 8px)}
.fpill,.fpclr{height:var(--cbh);border-radius:12px}
.bkbar{min-height:var(--cbh)}
.bkbar button{box-sizing:border-box;height:var(--cbh);padding:0 14px;border-radius:12px}
.cmdbar>.bkbar{min-height:var(--cbh)}
.cmdbar>.bkbar button{padding:0 12px}
.cmdbar>.bkbar select{height:calc(var(--cbh) - 6px)}
.cmdpills:empty{display:none}
/* la ricerca sta al centro della pagina, qualunque cosa ci sia ai lati */
.cmdbar>.csbox,.has-rail .cmdbar>.csbox{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:clamp(220px,30vw,440px);flex:none;min-width:0;z-index:1}
@media (max-width:1180px){ .cmdbar>.csbox,.has-rail .cmdbar>.csbox{position:static;transform:none;width:auto;flex:0 1 300px;min-width:170px} }
/* la striscia sopra la lista: selezione e filtri attivi a sinistra, tendine di filtro a destra */
.lstrip{display:flex;align-items:center;gap:10px;min-height:var(--cbh);margin:0 0 8px;flex-wrap:wrap}
.lstrip .lsl{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1 1 auto;min-width:0}
.lstrip .lsr{display:flex;align-items:center;gap:8px;margin-left:auto;flex:0 0 auto}
.lstrip .lsr:empty{display:none}
.lstrip .bkbar{margin:0;flex:0 0 auto}
.lstrip .fltbar{margin:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;display:flex;gap:8px;flex-wrap:wrap;align-items:center;white-space:nowrap;font-size:12.5px;min-height:0}
.lstrip .fltbar:empty{display:none}
.lstrip .vsel,.lstrip .cmdfilt select{height:var(--cbh);padding:0 30px 0 12px;font:600 12.5px Inter,system-ui;color:var(--ink);background-color:var(--field-bg,var(--panel));border:1px solid var(--field-line,var(--line));border-radius:12px;max-width:230px;cursor:pointer;appearance:none;-webkit-appearance:none;background-image:var(--chevimg);background-repeat:no-repeat;background-position:right 10px center}
.lstrip .vsel:hover,.lstrip .cmdfilt select:hover{border-color:var(--brand)}
.lstrip .cmdfilt{display:flex;flex-direction:row;align-items:center;gap:6px;margin:0;padding:0;background:none;border:none;height:var(--cbh)}
.lstrip .cmdfilt label{display:inline;font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);margin:0;white-space:nowrap}
/* FINE v.011595 */

/* INIZIO v.011601 -- tipo di servizio del cargo: striscia in cima alle schede, tab dei miglio non previsti spenti */
.rtab.nopr{opacity:.62}.rtab.nopr .cnt.nota{background:transparent;border:1px dashed var(--line);color:var(--muted);font-weight:500;font-size:11px;padding:1px 7px}
.rtab.nopr.on{opacity:1}
.tline{display:flex;align-items:center;gap:14px;margin:0 0 12px;padding:8px 12px;background:var(--card,#fff);border:1px solid var(--line);border-radius:12px}
.tline .ttipo{font-size:14px;color:var(--ink);white-space:nowrap}
.tline .tdots{display:flex;align-items:center;flex:1;min-width:0;max-width:360px}
.tline .tp{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.tline .td{width:12px;height:12px;border-radius:50%;border:2px solid var(--brand,#1d4f91);background:var(--brand,#1d4f91)}
.tline .tp.off .td{background:transparent;border-color:var(--line)}.tline .tp.off{opacity:.55}
.tline .tp.on{color:var(--ink);font-weight:600}
.tline .tl{flex:1;height:2px;background:var(--brand,#1d4f91);margin:0 6px 13px;border-radius:2px;min-width:24px}.tline .tl.off{background:transparent;border-top:2px dotted var(--line);height:0}
.scbox.tnopr{border-style:dashed}
/* FINE v.011601 */
