/* ===========================================================================
   ESA · Tabelle tecniche (.esa-dt) · v1.2.0 (2026-10-27)
   Tutto è racchiuso nei componenti .esa-dt, .esa-dt-jump, .esa-dt-howto: nessuna regola globale.
   CHANGELOG
   1.2.0 · 2026-10-27 · frecce di scorrimento e sfumature ai bordi per menu di ancoraggio, sezioni e tabelle.
   1.1.1 · 2026-10-27 · stile per le sezioni senza serie a catalogo (bordo tratteggiato).
   1.1.0 · 2026-10-27 · font del sito: Aptos Bold per intestazioni ed etichette, Aptos Light per il corpo;
                        cifre tabellari; incluso il box "Come leggere le tabelle".
   1.0.0 · 2026-10-27 · prima versione.
   =========================================================================== */

/* --- font: unico punto da cambiare ------------------------------------------
   Se in Divi Aptos è caricato come due famiglie separate ("Aptos Bold", "Aptos Light"),
   scrivi quei nomi nelle due variabili -font- e porta entrambi i pesi a 400. */
.esa-dt,.esa-dt-jump,.esa-dt-howto{
  --esa-dt-font-head:'Aptos','Segoe UI',system-ui,sans-serif;
  --esa-dt-head-weight:700;
  --esa-dt-font-body:'Aptos','Segoe UI',system-ui,sans-serif;
  --esa-dt-body-weight:300;
}
.esa-dt{
  --esa-dt-navy:#16243E;
  --esa-dt-navy-2:#1C2F4F;
  --esa-dt-accent:#2E5CFF;
  --esa-dt-line:#E3E3E3;
  --esa-dt-line-2:#EEF0F3;
  --esa-dt-group:#D5D9E0;
  --esa-dt-mute:#5B6472;
  --esa-dt-ink:#2B3444;
  --esa-dt-row:#EEF3FF;
  --esa-dt-col:#F4F7FF;
  --esa-dt-focus:2px solid #2E5CFF;      /* stile del focus visibile: cambialo qui */
  --esa-dt-temp-w:136px;                  /* colonna temperature */
  --esa-dt-cell-w:108px;                  /* colonne classi di pressione */
  margin:0 0 80px;
  font-family:var(--esa-dt-font-body); font-weight:var(--esa-dt-body-weight);
  color:var(--esa-dt-ink);
}
.esa-dt *,.esa-dt *::before,.esa-dt *::after{ box-sizing:border-box; }
.esa-dt .esa-dt__sr{ position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
/* --- titolo e legenda --- */
.esa-dt .esa-dt__heading{
  margin:0 0 10px; padding:0; scroll-margin-top:110px;
  font-family:var(--esa-dt-font-head); font-weight:var(--esa-dt-head-weight);
  font-size:clamp(24px,2.4vw,32px); line-height:1.15; color:var(--esa-dt-navy);
}
.esa-dt .esa-dt__legend{
  display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; margin:0 0 24px; padding:0;
  font-size:14px; line-height:1.5; color:var(--esa-dt-mute);
}
.esa-dt__legend-cell{
  display:inline-flex; align-items:baseline; gap:6px; padding:3px 8px;
  border:1px solid var(--esa-dt-line); border-radius:3px; background:#fff;
  font-size:13px; font-variant-numeric:tabular-nums;
}
.esa-dt__legend-cell b{ font-family:var(--esa-dt-font-head); font-weight:var(--esa-dt-head-weight); color:var(--esa-dt-navy); }
.esa-dt__legend-cell i{ font-style:normal; color:var(--esa-dt-mute); }
.esa-dt__legend-na{ margin-left:8px; color:#9AA1AC; }
.esa-dt__legend .esa-dt__p{ margin-left:8px; }
.esa-dt .esa-dt__p,
.esa-dt .esa-dt__grid td.pr span{
  display:inline-block; padding:3px 8px; border:1px solid rgba(46,92,255,.4); border-radius:3px; background:#fff;
  font-family:var(--esa-dt-font-head); font-weight:var(--esa-dt-head-weight);
  font-size:12px; line-height:1.3; color:var(--esa-dt-accent); white-space:nowrap;
}
/* --- barra: tipo, sezione, ricerca --- */
.esa-dt__bar{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:18px 32px; margin:0 0 22px; }
.esa-dt__bar[hidden]{ display:none; }
.esa-dt__nav{ display:flex; flex-direction:column; gap:14px; min-width:0; max-width:100%; }
.esa-dt__tabs{ display:inline-flex; flex-wrap:wrap; align-self:flex-start; border:1px solid var(--esa-dt-navy); border-radius:3px; overflow:hidden; }
.esa-dt .esa-dt__tab{
  appearance:none; margin:0; min-height:44px; padding:0 18px; border:0; border-right:1px solid var(--esa-dt-navy); border-radius:0;
  background:#fff; color:var(--esa-dt-navy); cursor:pointer;
  font-family:var(--esa-dt-font-head); font-weight:var(--esa-dt-head-weight); font-size:14px; line-height:1.2;
  transition:background .15s ease, color .15s ease;
}
.esa-dt .esa-dt__tab:last-child{ border-right:0; }
.esa-dt .esa-dt__tab:hover{ background:var(--esa-dt-row); }
.esa-dt .esa-dt__tab[aria-selected="true"]{ background:var(--esa-dt-navy); color:#fff; }
.esa-dt .esa-dt__tab.has-match::after{ content:""; display:inline-block; width:7px; height:7px; margin-left:8px; border-radius:50%; background:var(--esa-dt-accent); vertical-align:middle; }
.esa-dt .esa-dt__tab[aria-selected="true"].has-match::after{ background:#fff; }
.esa-dt__sections{ display:flex; align-items:center; gap:8px 12px; min-width:0; }
.esa-dt__sections > .esa-dt-scroller{ flex:1 1 auto; min-width:0; }
.esa-dt__chips{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.esa-dt__chips-label{
  margin-right:4px; font-family:var(--esa-dt-font-head); font-weight:var(--esa-dt-head-weight);
  font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--esa-dt-mute);
}
.esa-dt .esa-dt__chip{
  appearance:none; position:relative; display:inline-flex; flex-direction:column; align-items:flex-start; justify-content:center;
  margin:0; min-height:44px; padding:5px 12px; border:1px solid var(--esa-dt-line); border-radius:3px;
  background:#fff; color:var(--esa-dt-navy); cursor:pointer; text-align:left; line-height:1.2;
  font-family:var(--esa-dt-font-body); font-weight:var(--esa-dt-body-weight);
  transition:border-color .15s ease, background .15s ease, color .15s ease;
}
.esa-dt__chip b{ font-family:var(--esa-dt-font-head); font-weight:var(--esa-dt-head-weight); font-size:15px; }
.esa-dt__chip small{ font-size:12px; color:var(--esa-dt-mute); font-variant-numeric:tabular-nums; }
.esa-dt .esa-dt__chip:hover{ border-color:var(--esa-dt-navy); }
.esa-dt .esa-dt__chip[aria-selected="true"]{ border-color:var(--esa-dt-navy); background:var(--esa-dt-navy); color:#fff; }
.esa-dt .esa-dt__chip[aria-selected="true"] small{ color:rgba(255,255,255,.8); }
.esa-dt .esa-dt__chip.is-empty{ border-style:dashed; color:#8A919C; }
.esa-dt .esa-dt__chip.is-empty small{ color:#9AA1AC; }
.esa-dt .esa-dt__chip.is-empty[aria-selected="true"]{ border-style:solid; color:#fff; }
.esa-dt .esa-dt__chip.has-match::after{
  content:""; position:absolute; top:-4px; right:-4px; width:10px; height:10px; border-radius:50%;
  background:var(--esa-dt-accent); box-shadow:0 0 0 2px #fff;
}
.esa-dt__search{ display:flex; flex-direction:column; gap:6px; flex:0 1 260px; min-width:200px; }
.esa-dt .esa-dt__search label{
  margin:0; padding:0; font-family:var(--esa-dt-font-head); font-weight:var(--esa-dt-head-weight);
  font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--esa-dt-mute);
}
.esa-dt .esa-dt__search input{
  appearance:none; width:100%; min-height:44px; margin:0; padding:0 14px; border:1px solid var(--esa-dt-line); border-radius:3px;
  background:#fff; color:var(--esa-dt-navy); box-shadow:none;
  font-family:var(--esa-dt-font-body); font-weight:var(--esa-dt-body-weight); font-size:15px;
}
.esa-dt .esa-dt__search input::placeholder{ color:#8A919C; }
.esa-dt .esa-dt__search input:focus{ outline:none; border-color:var(--esa-dt-accent); box-shadow:0 0 0 3px rgba(46,92,255,.18); }
.esa-dt__status{ min-height:18px; margin:0; font-size:13px; line-height:1.5; color:var(--esa-dt-mute); }
.esa-dt .esa-dt__tab:focus,.esa-dt .esa-dt__chip:focus{ outline:none; }
.esa-dt .esa-dt__tab:focus-visible,.esa-dt .esa-dt__chip:focus-visible{ outline:var(--esa-dt-focus); outline-offset:2px; position:relative; z-index:1; }
/* --- pannelli --- */
.esa-dt__panel{ margin:0 0 44px; }
.esa-dt__panel[hidden]{ display:none; }
.esa-dt.is-enhanced .esa-dt__panel{ margin:0; }
.esa-dt .esa-dt__title{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 14px; margin:0 0 12px; padding:0;
  font-family:var(--esa-dt-font-head); font-weight:var(--esa-dt-head-weight); font-size:19px; line-height:1.3; color:var(--esa-dt-navy);
}
.esa-dt__sez{ font-family:var(--esa-dt-font-body); font-weight:var(--esa-dt-body-weight); font-size:15px; color:var(--esa-dt-navy); font-variant-numeric:tabular-nums; }
.esa-dt__sez span{ margin-left:6px; color:var(--esa-dt-mute); }
.esa-dt__note{
  padding:2px 8px; border:1px solid rgba(46,92,255,.4); border-radius:3px;
  font-family:var(--esa-dt-font-head); font-weight:var(--esa-dt-head-weight); font-size:12px; color:var(--esa-dt-accent);
}
.esa-dt .esa-dt__empty{ margin:0; padding:28px 24px; border:1px dashed var(--esa-dt-group); border-radius:12px; background:#fff; font-size:16px; line-height:1.6; color:var(--esa-dt-mute); }
.esa-dt__hint{ display:none; margin:10px 0 0; font-size:13px; color:var(--esa-dt-mute); }
.esa-dt__panel.has-more .esa-dt__hint{ display:block; }
/* --- tabella a matrice --- */
.esa-dt__scroll{ position:relative; overflow-x:auto; border:1px solid var(--esa-dt-line); border-radius:12px; background:#fff; -webkit-overflow-scrolling:touch; overscroll-behavior-x:contain; }
.esa-dt__scroll:focus{ outline:none; }
.esa-dt__scroll:focus-visible{ outline:var(--esa-dt-focus); outline-offset:2px; }
.esa-dt .esa-dt__grid{
  width:100%; min-width:calc(var(--esa-dt-temp-w) + 6 * var(--esa-dt-cell-w)); margin:0; border:0;
  border-collapse:separate; border-spacing:0; table-layout:fixed; text-align:center; font-size:14px;
  font-variant-numeric:tabular-nums;
}
.esa-dt .esa-dt__grid th,.esa-dt .esa-dt__grid td{ margin:0; border:0; }
.esa-dt .esa-dt__grid thead th{
  padding:10px 8px; background:var(--esa-dt-navy); color:#fff; text-align:center; vertical-align:middle;
  font-family:var(--esa-dt-font-head); font-weight:var(--esa-dt-head-weight); font-size:14px; line-height:1.25;
  transition:background .12s ease;
}
.esa-dt .esa-dt__grid thead .esa-dt__group{
  padding:10px 8px 6px; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.75);
}
.esa-dt .esa-dt__grid thead tr + tr th{ background:var(--esa-dt-navy-2); }
.esa-dt .esa-dt__grid thead th.is-col{ background:var(--esa-dt-accent); }
.esa-dt .esa-dt__grid thead .esa-dt__corner{
  position:sticky; left:0; z-index:3; width:var(--esa-dt-temp-w); padding:10px 16px; text-align:left; vertical-align:bottom;
}
.esa-dt .esa-dt__grid tbody th{
  position:sticky; left:0; z-index:2; padding:12px 16px; background:#fff; text-align:left; white-space:nowrap;
  border-right:1px solid var(--esa-dt-line); border-bottom:1px solid var(--esa-dt-line-2);
  font-family:var(--esa-dt-font-head); font-weight:var(--esa-dt-head-weight); font-size:14px; color:var(--esa-dt-navy);
  transition:background .12s ease;
}
.esa-dt .esa-dt__grid tbody td{
  padding:10px 6px; border-bottom:1px solid var(--esa-dt-line-2); vertical-align:middle; line-height:1.35;
  transition:background .12s ease, box-shadow .12s ease;
}
.esa-dt .esa-dt__grid tbody tr:last-child th,.esa-dt .esa-dt__grid tbody tr:last-child td{ border-bottom:0; }
.esa-dt .esa-dt__grid tbody tr.is-group th,.esa-dt .esa-dt__grid tbody tr.is-group td{ border-top:2px solid var(--esa-dt-group); }
/* serie in Bold (dato principale), altezza cava in Light */
.esa-dt .esa-dt__grid td b{ display:inline-block; font-family:var(--esa-dt-font-head); font-weight:var(--esa-dt-head-weight); font-size:14px; color:var(--esa-dt-navy); }
.esa-dt .esa-dt__grid td b + b::before{ content:"/"; margin:0 3px; font-family:var(--esa-dt-font-body); font-weight:var(--esa-dt-body-weight); color:#9AA1AC; }
.esa-dt .esa-dt__grid td b.nil{ color:#9AA1AC; }
.esa-dt .esa-dt__grid td i{ display:block; margin-top:2px; font-style:normal; font-size:13px; color:var(--esa-dt-mute); }
.esa-dt .esa-dt__grid td.na{ color:#B4BAC4; }
/* lettura: riga e colonna a mirino */
.esa-dt .esa-dt__grid tbody tr:hover th,
.esa-dt .esa-dt__grid tbody tr:hover td{ background:var(--esa-dt-row); }
.esa-dt .esa-dt__grid tbody td.is-col{ background:var(--esa-dt-col); }
.esa-dt .esa-dt__grid tbody tr:hover td.is-col{ background:#DCE5FF; box-shadow:inset 0 0 0 2px var(--esa-dt-accent); }
/* ricerca serie */
.esa-dt .esa-dt__grid tbody td.is-match{ background:#E3EAFF; box-shadow:inset 0 0 0 2px var(--esa-dt-accent); }
.esa-dt .esa-dt__grid tbody td b.is-hit{ color:var(--esa-dt-accent); }
/* colonna fissa: ombra quando la tabella scorre */
.esa-dt__scroll.is-scrolled .esa-dt__grid tbody th,
.esa-dt__scroll.is-scrolled .esa-dt__grid thead .esa-dt__corner{ box-shadow:8px 0 12px -8px rgba(22,36,62,.3); }
/* --- mobile --- */
@media (max-width:767px){
  .esa-dt{ --esa-dt-temp-w:126px; --esa-dt-cell-w:98px; margin-bottom:56px; }
  .esa-dt__bar{ flex-direction:column; align-items:stretch; }
  .esa-dt__tabs{ align-self:stretch; }
  .esa-dt .esa-dt__tab{ flex:1 1 auto; padding:0 12px; }
  .esa-dt__sections{ flex-direction:column; align-items:flex-start; }
  .esa-dt__sections > .esa-dt-scroller{ align-self:stretch; }
  .esa-dt__chips{ flex-wrap:nowrap; overflow-x:auto; padding:6px 2px 6px; scrollbar-width:none; scroll-behavior:smooth; }
  .esa-dt__chips::-webkit-scrollbar{ display:none; }
  .esa-dt .esa-dt__chip{ flex:none; }
  .esa-dt__search{ flex:1 1 auto; }
  .esa-dt .esa-dt__grid tbody th{ padding:10px 8px 10px 10px; font-size:13px; }
  .esa-dt .esa-dt__grid thead .esa-dt__corner{ padding:10px 10px; }
  .esa-dt .esa-dt__grid thead .esa-dt__group{ text-align:left; padding-left:12px; }
}
@media (prefers-reduced-motion:reduce){
  .esa-dt *,.esa-dt-scroller *{ transition:none !important; scroll-behavior:auto !important; }
}
/* --- stampa: tutte le tabelle, senza comandi --- */
@media print{
  .esa-dt__bar,.esa-dt__hint,.esa-dt-arrow{ display:none !important; }
  .esa-dt-scroller::before,.esa-dt-scroller::after{ display:none !important; }
  .esa-dt__panel[hidden]{ display:block !important; }
  .esa-dt.is-enhanced .esa-dt__panel{ margin:0 0 24px; break-inside:avoid; }
  .esa-dt__scroll{ overflow:visible; }
  .esa-dt .esa-dt__grid{ min-width:0; }
  .esa-dt .esa-dt__grid tbody th,.esa-dt .esa-dt__grid thead .esa-dt__corner{ position:static; box-shadow:none; }
}

/* ===========================================================================
   Frecce di scorrimento (.esa-dt-scroller) — create dal JS attorno a ciò che scorre
   =========================================================================== */
.esa-dt-scroller{ position:relative; min-width:0; }
.esa-dt-arrow{
  position:absolute; top:50%; z-index:5;
  display:flex; align-items:center; justify-content:center;
  width:40px; height:40px; margin:-20px 0 0; padding:0;
  border:1px solid #16243E; border-radius:50%; background:#fff; color:#16243E; cursor:pointer;
  box-shadow:0 6px 14px -6px rgba(22,36,62,.45);
  transition:background .15s ease, color .15s ease;
}
.esa-dt-arrow[hidden]{ display:none; }
.esa-dt-arrow svg{ width:16px; height:16px; }
.esa-dt-arrow--prev{ left:0; }
.esa-dt-arrow--prev svg{ transform:rotate(180deg); }
.esa-dt-arrow--next{ right:0; }
.esa-dt-arrow:hover{ background:#16243E; color:#fff; }
.esa-dt-arrow:focus{ outline:none; }
.esa-dt-arrow:focus-visible{ outline:2px solid #2E5CFF; outline-offset:2px; }
/* strisce (menu di ancoraggio, sezioni): sfumatura del colore di fondo sotto la freccia */
.esa-dt-scroller--strip::before,
.esa-dt-scroller--strip::after{
  content:""; position:absolute; top:0; bottom:0; z-index:4; width:64px;
  pointer-events:none; opacity:0; transition:opacity .15s ease;
}
.esa-dt-scroller--strip::before{ left:0; background:linear-gradient(90deg, var(--esa-dt-scroll-bg,#F6F7F9) 45%, transparent); }
.esa-dt-scroller--strip::after{ right:0; background:linear-gradient(270deg, var(--esa-dt-scroll-bg,#F6F7F9) 45%, transparent); }
.esa-dt-scroller--strip.can-prev::before,
.esa-dt-scroller--strip.can-next::after{ opacity:1; }
/* tabelle: frecce nella fascia blu delle intestazioni, così non coprono i dati */
.esa-dt-scroller--table .esa-dt-arrow{
  top:calc(var(--esa-dt-head-h,72px) / 2); width:34px; height:34px; margin-top:-17px;
  border-color:#fff; box-shadow:0 4px 12px -4px rgba(0,0,0,.5);
}
.esa-dt-scroller--table .esa-dt-arrow--prev{ left:calc(var(--esa-dt-temp-w,136px) + 8px); }
.esa-dt-scroller--table .esa-dt-arrow--next{ right:8px; }
.esa-dt-scroller--table::after{
  content:""; position:absolute; right:1px; bottom:1px; top:var(--esa-dt-head-h,72px); z-index:4; width:32px;
  border-radius:0 0 11px 0; background:linear-gradient(270deg, #fff 15%, transparent);
  pointer-events:none; opacity:0; transition:opacity .15s ease;
}
.esa-dt-scroller--table.can-next::after{ opacity:1; }

/* ===========================================================================
   Navigazione tra le quattro applicazioni (nav.html, facoltativa)
   =========================================================================== */
.esa-dt-jump{
  position:sticky; top:var(--esa-dt-jump-top,0px); z-index:20;
  display:flex; gap:8px; overflow-x:auto; margin:0 0 48px; padding:12px 0;
  background:rgba(246,247,249,.94); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  border-bottom:1px solid #E3E3E3; scrollbar-width:none;
}
.esa-dt-jump::-webkit-scrollbar{ display:none; }
.esa-dt-jump a{
  flex:none; display:inline-flex; align-items:center; min-height:40px; padding:0 16px;
  border:1px solid #16243E; border-radius:3px; background:#fff; color:#16243E; text-decoration:none;
  font-family:var(--esa-dt-font-head); font-weight:var(--esa-dt-head-weight); font-size:14px;
  transition:background .15s ease, color .15s ease;
}
.esa-dt-jump a:hover,.esa-dt-jump a[aria-current="true"]{ background:#16243E; color:#fff; }
.esa-dt-jump a:focus-visible{ outline:2px solid #2E5CFF; outline-offset:2px; }
/* con il JS il menu viene avvolto: la posizione fissa passa al contenitore, il menu resta la striscia che scorre */
.esa-dt-jump-host{
  position:sticky; top:var(--esa-dt-jump-top,0px); z-index:20; margin:0 0 48px;
  --esa-dt-scroll-bg:#F6F7F9;
  background:rgba(246,247,249,.94); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  border-bottom:1px solid #E3E3E3;
}
.esa-dt-jump-host .esa-dt-jump{ position:static; margin:0; background:none; -webkit-backdrop-filter:none; backdrop-filter:none; border:0; scroll-behavior:smooth; }

/* ===========================================================================
   Box "Come leggere le tabelle" (.esa-dt-howto)
   =========================================================================== */
div.esa-dt-howto{
  padding:24px; border:1px solid #16243E; background:#fff;
  font-family:var(--esa-dt-font-body); font-weight:var(--esa-dt-body-weight); color:#2B3444;
}
div.esa-dt-howto .esa-dt-howto__title{
  margin:0 0 16px; padding:0;
  font-family:var(--esa-dt-font-head); font-weight:var(--esa-dt-head-weight); font-size:19px; line-height:1.3; color:#16243E;
}
div.esa-dt-howto ol.esa-dt-howto__list{ list-style:none; margin:0; padding:0; border-top:1px solid #16243E; counter-reset:esa-howto; }
div.esa-dt-howto ol.esa-dt-howto__list li{
  display:flex; gap:14px; margin:0; padding:12px 0; border-bottom:1px dashed #D5D9E0;
  font-size:15px; line-height:1.55; counter-increment:esa-howto;
}
div.esa-dt-howto ol.esa-dt-howto__list li::before{
  content:counter(esa-howto, decimal-leading-zero); flex:none; padding-top:1px;
  font-family:var(--esa-dt-font-head); font-weight:var(--esa-dt-head-weight); font-size:13px;
  color:#2E5CFF; font-variant-numeric:tabular-nums;
}
@media (max-width:767px){ div.esa-dt-howto{ padding:20px; } }
