/* Impianto: bollettino. Testata piena e scura, corpo su carta, dati incolonnati
   fra filetti sottili, schede a spigolo vivo. Il colore forte compare solo dove
   c'è un verdetto: nient'altro sulla pagina è arancione. */
:root{
  --carta:#fefdf8;
  --carta-2:#f6f3ea;
  --inchiostro:#232322;
  --tenue:#6d675d;
  --riga:#ded7c8;
  --riga-forte:#232322;
  --maschera:#f86145;
  --maschera-testo:#c42a0b;
  --verde:#0f6b42;
  --verde-tenue:#e3f0e8;
  --maschera-tenue:#fde7e1;
  --scheda:#ffffff;
  --campo:#1a1917;
  --campo-2:#262421;
  --campo-testo:#f3efe4;
  --campo-tenue:#a39b8c;

  --display:'Bricolage Grotesque','Helvetica Neue',Arial,sans-serif;
  --testo:'Petrona',Iowan Old Style,Georgia,serif;
  --dato:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;

  --largo:1180px;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --carta:#171614; --carta-2:#1f1e1b; --inchiostro:#f2eee3; --tenue:#a39b8c;
    --riga:#38352f; --riga-forte:#5c574d; --scheda:#201e1b;
    --maschera-testo:#ff8469; --verde:#5fc08c;
    --verde-tenue:#173024; --maschera-tenue:#36201a;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --carta:#171614; --carta-2:#1f1e1b; --inchiostro:#f2eee3; --tenue:#a39b8c;
  --riga:#38352f; --riga-forte:#5c574d; --scheda:#201e1b;
  --maschera-testo:#ff8469; --verde:#5fc08c;
  --verde-tenue:#173024; --maschera-tenue:#36201a;
  color-scheme:dark;
}

*,*::before,*::after{box-sizing:border-box}
body{
  margin:0; background:var(--carta); color:var(--inchiostro);
  font-family:var(--testo); font-size:19px; line-height:1.66;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%}
a{color:var(--maschera-testo); text-decoration-thickness:1px; text-underline-offset:3px}
h1,h2,h3{font-family:var(--display); font-weight:700; line-height:1.08;
  letter-spacing:-.022em; text-wrap:balance; margin:0}
.dentro{max-width:var(--largo); margin-inline:auto;
  padding-left:max(16px,env(safe-area-inset-left,0px));
  padding-right:max(16px,env(safe-area-inset-right,0px))}

/* ---------------------------------------------------------------- testata */
.testata{background:var(--campo); color:var(--campo-testo)}
.testata__dentro{display:flex; align-items:center; gap:28px; flex-wrap:wrap;
  padding-block:18px}
.testata__marchio img{display:block; width:210px; height:auto}
.menu{display:flex; gap:4px; flex-wrap:wrap; margin-left:auto; list-style:none;
  padding:0; margin-block:0}
.menu a{font-family:var(--display); font-weight:600; font-size:.8rem;
  letter-spacing:.06em; text-transform:uppercase; color:var(--campo-testo);
  text-decoration:none; padding:7px 11px; display:block; border:1px solid transparent}
.menu a:hover,.menu a:focus-visible{border-color:var(--campo-tenue)}
.menu a[aria-current]{background:var(--maschera); color:#1a1917; border-color:var(--maschera)}

/* ------------------------------------------------------------ termometro */
.termo{background:var(--campo-2); color:var(--campo-testo);
  border-top:1px solid #35322c}
.termo__dentro{display:grid; gap:1px 0;
  grid-template-columns:repeat(auto-fit,minmax(168px,1fr)); padding-block:0}
.termo__voce{padding:15px 4px 17px; border-left:1px solid #35322c; padding-left:16px}
.termo__voce:first-child{border-left:0; padding-left:0}
.termo__n{font-family:var(--dato); font-weight:600; font-size:1.65rem;
  line-height:1.1; font-variant-numeric:tabular-nums; display:block}
.termo__n--allarme{color:var(--maschera)}
.termo__e{font-family:var(--display); font-size:.72rem; letter-spacing:.07em;
  text-transform:uppercase; color:var(--campo-tenue); display:block; margin-top:5px}
.termo__data{font-family:var(--dato); font-size:.7rem; color:var(--campo-tenue);
  padding-block:9px; border-top:1px solid #35322c}

/* ------------------------------------------------------------------ tesi */
.tesi{padding-block:clamp(44px,7vw,78px); border-bottom:2px solid var(--riga-forte)}
.tesi__occhiello{font-family:var(--dato); font-size:.76rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--maschera-testo); margin:0 0 20px}
.tesi h1{font-size:clamp(2.1rem,5.6vw,3.7rem); max-width:17ch; font-weight:800}
.tesi h1 em{font-style:normal; background:var(--maschera); color:#1a1917;
  padding:0 .14em; box-decoration-break:clone; -webkit-box-decoration-break:clone}
.tesi__corpo{max-width:60ch; margin:26px 0 0; font-size:1.06rem; color:var(--tenue)}

/* --------------------------------------------------------------- sezione */
.sezione{padding-block:clamp(38px,5.5vw,62px); border-bottom:1px solid var(--riga)}
.sezione__capo{display:flex; align-items:baseline; gap:18px; flex-wrap:wrap;
  margin-bottom:26px; border-bottom:2px solid var(--riga-forte); padding-bottom:12px}
.sezione__capo h2{font-size:clamp(1.3rem,2.6vw,1.72rem)}
.sezione__nota{font-family:var(--dato); font-size:.76rem; color:var(--tenue);
  margin:0; margin-left:auto}

/* ------------------------------------------------------- scheda previsione */
.registro{display:grid; gap:18px; grid-template-columns:repeat(auto-fit,minmax(310px,1fr))}
.prev{background:var(--scheda); border:1px solid var(--riga); border-top:3px solid var(--riga-forte);
  border-radius:2px; padding:20px 20px 16px; display:flex; flex-direction:column; min-width:0}
.prev--smentita{border-top-color:var(--maschera)}
.prev--avverata{border-top-color:var(--verde)}
.prev__chi{font-family:var(--display); font-weight:700; font-size:1.02rem;
  margin:0 0 2px; letter-spacing:-.01em}
.prev__quando{font-family:var(--dato); font-size:.74rem; color:var(--tenue); margin:0 0 15px}
.prev__detto{margin:0 0 17px; font-size:1.02rem; line-height:1.5; font-style:italic;
  border-left:2px solid var(--riga); padding-left:14px}
.prev__dati{list-style:none; margin:0 0 16px; padding:14px 0 0; border-top:1px solid var(--riga);
  font-family:var(--dato); font-size:.78rem; display:grid; gap:7px}
.prev__dati li{display:flex; gap:12px; justify-content:space-between; min-width:0}
.prev__dati span{color:var(--tenue); letter-spacing:.04em; text-transform:uppercase; font-size:.68rem;
  padding-top:2px; flex:none}
.prev__dati b{font-weight:600; font-variant-numeric:tabular-nums; text-align:right; min-width:0;
  overflow-wrap:anywhere}
.prev__piede{margin-top:auto; display:flex; align-items:center; gap:12px; flex-wrap:wrap}
.verdetto{font-family:var(--display); font-weight:800; font-size:.8rem; letter-spacing:.09em;
  text-transform:uppercase; padding:7px 12px; border-radius:2px; flex:none}
.verdetto--smentita{background:var(--maschera); color:#1a1917}
.verdetto--avverata{background:var(--verde); color:#fff}
.verdetto--nulla{background:var(--carta-2); color:var(--tenue); border:1px solid var(--riga)}
.verdetto--corso{background:transparent; color:var(--tenue); border:1px dashed var(--riga-forte)}
.prev__fonte{font-family:var(--dato); font-size:.72rem; margin:0}

/* -------------------------------------------------------------- ingressi */
.ingressi{display:grid; gap:1px; background:var(--riga);
  grid-template-columns:repeat(auto-fit,minmax(248px,1fr)); border:1px solid var(--riga)}
.ingresso{background:var(--carta); padding:22px 20px 24px; display:block;
  text-decoration:none; color:inherit; min-width:0}
.ingresso:hover,.ingresso:focus-visible{background:var(--carta-2)}
.ingresso__n{font-family:var(--dato); font-size:.72rem; color:var(--maschera-testo);
  letter-spacing:.08em}
.ingresso h3{font-size:1.18rem; margin:9px 0 8px}
.ingresso p{margin:0; font-size:.93rem; color:var(--tenue); line-height:1.5}
.ingresso__conto{font-family:var(--dato); font-size:.72rem; color:var(--tenue);
  display:block; margin-top:13px; border-top:1px solid var(--riga); padding-top:9px}

/* -------------------------------------------------------- colonna + dati */
.doppia{display:grid; gap:34px; grid-template-columns:minmax(0,1fr) 262px; align-items:start}
.doppia>*{min-width:0}
@media (max-width:880px){.doppia{grid-template-columns:1fr}}
.avvolta{overflow-x:auto; max-width:100%; -webkit-overflow-scrolling:touch}
table.dati{width:100%; border-collapse:collapse; font-family:var(--dato); font-size:.82rem}
p.didascalia{font-size:.9rem; color:var(--tenue); margin:0 0 12px; line-height:1.5;
  max-width:68ch}
table.dati th,table.dati td{padding:9px 10px; border-bottom:1px solid var(--riga);
  text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap}
table.dati thead th{font-family:var(--display); font-size:.7rem; letter-spacing:.07em;
  text-transform:uppercase; color:var(--tenue); border-bottom:2px solid var(--riga-forte);
  font-weight:600}
table.dati th[scope=row]{text-align:left; font-weight:600}
table.dati th[scope=row] span{display:block; font-family:var(--testo); font-weight:400;
  font-size:.82rem; color:var(--tenue); letter-spacing:0}
.su{color:var(--verde); font-weight:600}
.giu{color:var(--maschera-testo); font-weight:600}
.fonte{font-family:var(--dato); font-size:.72rem; color:var(--tenue); margin:14px 0 0}

/* -------------------------------------------------------- richiamo Upland */
.richiamo-upland{background:var(--scheda); border:1px solid var(--riga);
  border-top:3px solid var(--maschera); border-radius:2px; padding:16px}
.richiamo-upland__piastra{display:grid; place-items:center; height:104px; margin:0 0 14px;
  background:var(--campo); border-radius:2px; padding:10px 14px; overflow:hidden}
.richiamo-upland__logo{display:block; max-height:84px; max-width:100%; object-fit:contain}
.richiamo-upland__nota,.richiamo-upland__dettaglio{font-size:.8125rem; color:var(--tenue);
  line-height:1.5}
.richiamo-upland__nota{margin:.3em 0 .5em}
.richiamo-upland__dettaglio{margin:0 0 .7em}
.richiamo-upland__codice{margin:0 0 .6em}
.richiamo-upland__linkforte{font-family:var(--dato); font-size:.84rem; font-weight:600;
  overflow-wrap:anywhere}
.richiamo-upland__link{font-family:var(--display); font-size:.8125rem; font-weight:600;
  display:inline-block; margin-bottom:.7em}

/* ---------------------------------------------------------------- avviso */
.avviso{background:var(--maschera-tenue); border:1px solid var(--maschera);
  border-radius:2px; padding:15px 18px; margin-block:0 30px; font-size:.92rem}
.avviso b{font-family:var(--display)}

/* ------------------------------------------------------------------ note */
.note{background:var(--carta-2); border-top:1px solid var(--riga)}
.note__dentro{padding-block:40px}
.note h2{font-size:1.2rem; margin-bottom:18px}
.note ol{margin:0; padding-left:1.3em; max-width:68ch; font-size:.96rem}
.note li{margin-bottom:12px}
.note code{font-family:var(--dato); font-size:.86em; background:var(--carta);
  border:1px solid var(--riga); padding:1px 5px; border-radius:2px}

/* ------------------------------------------------------------------- piè */
.pie{background:var(--campo); color:var(--campo-tenue); font-size:.88rem}
.pie__dentro{padding-block:34px; display:grid; gap:22px;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.pie img{width:168px; height:auto; display:block; margin-bottom:14px}
.pie p{margin:0 0 10px; max-width:42ch; line-height:1.55}
.pie a{color:var(--campo-testo)}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ===================================================== aggiunte del generatore */
.salta{position:absolute; left:-9999px; top:0}
.salta:focus{left:16px; top:12px; z-index:10; background:var(--carta); color:var(--inchiostro); padding:8px 12px}
.menu span{font-family:var(--display); font-weight:600; font-size:.8rem; letter-spacing:.06em;
  text-transform:uppercase; color:var(--campo-tenue); padding:7px 11px; display:block; opacity:.55}
.anteprima{background:var(--maschera); color:#1a1917; font-family:var(--dato); font-size:.74rem;
  text-align:center; padding:7px 16px; margin:0}

/* ------------------------------------------------------------- articolo */
.briciole{font-family:var(--dato); font-size:.74rem; color:var(--tenue); padding-top:28px; margin:0}
.briciole a{color:var(--tenue)}
.articolo__capo{padding-block:20px 30px; border-bottom:2px solid var(--riga-forte); margin-bottom:34px}
.occhiello{font-family:var(--dato); font-size:.74rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--maschera-testo); margin:0 0 16px}
.articolo__capo h1{font-size:clamp(1.8rem,4.4vw,2.9rem); max-width:26ch; font-weight:800}
.articolo__estratto{font-size:1.1rem; line-height:1.52; color:var(--tenue); max-width:62ch; margin:18px 0 0}
.articolo__data{font-family:var(--dato); font-size:.74rem; color:var(--tenue); margin:18px 0 0}
.articolo__corpo{max-width:66ch}
.articolo__corpo p{margin:0 0 1.1em; hyphens:auto; -webkit-hyphens:auto}
.articolo__corpo b{font-weight:600}
.articolo{padding-bottom:56px}
.congedo{max-width:66ch; margin-top:36px; padding:16px 18px; background:var(--carta-2);
  border-left:3px solid var(--riga-forte); font-size:.92rem; line-height:1.55}
.congedo p{margin:0 0 .6em}
.congedo p:last-child{margin:0}

/* ------------------------------------------------------- registro in pagina */
.registro-sez{margin-top:50px}
.conti{display:flex; flex-wrap:wrap; gap:8px; margin:0 0 24px; padding:0; list-style:none}
.conti li{font-family:var(--dato); font-size:.76rem; border:1px solid var(--riga); padding:5px 9px;
  border-radius:2px; background:var(--scheda)}
.conti b{font-weight:600}
.prev--ritardo{border-top-color:var(--verde); border-top-style:dashed}
.prev--corso{border-top-style:dashed}
.verdetto--ritardo{background:var(--verde-tenue); color:var(--verde); border:1px solid var(--verde)}
blockquote.prev__detto{margin:0 0 14px}
.prev__traduzione{font-size:.88rem; color:var(--tenue); margin:0 0 16px; line-height:1.45}
.prev__traduzione::before{content:"Traduzione: "; font-family:var(--dato); font-size:.68rem;
  letter-spacing:.05em; text-transform:uppercase}
.prev__nota{font-size:.82rem; color:var(--tenue); margin:14px 0 0; line-height:1.45;
  border-top:1px dotted var(--riga); padding-top:10px}
.prev__chi a{color:inherit; text-decoration:none}
.prev__chi a:hover{text-decoration:underline}
.prev__fonte a{white-space:nowrap}
.sotto{font-family:var(--dato); font-size:.72rem; color:var(--tenue); margin:22px 0 0; max-width:80ch; line-height:1.5}
h3.registro-sotto{font-size:1.08rem; margin:40px 0 10px}

table.dati td.sx, table.dati th.sx{text-align:left}
table.dati td.frase{white-space:normal; min-width:13em; max-width:21em; font-family:var(--testo);
  font-size:.82rem; color:var(--tenue); line-height:1.4; text-align:left}
table.dati td small{display:block; color:var(--tenue); font-size:.68rem}
table.dati tbody tr:hover{background:var(--carta-2)}
.etichetta{font-family:var(--display); font-weight:700; font-size:.68rem; letter-spacing:.07em;
  text-transform:uppercase; padding:3px 7px; border-radius:2px; display:inline-block; line-height:1.3}
.etichetta--smentita{background:var(--maschera); color:#1a1917}
.etichetta--avverata{background:var(--verde); color:#fff}
.etichetta--ritardo{background:var(--verde-tenue); color:var(--verde); border:1px solid var(--verde)}
.etichetta--nulla{background:var(--carta-2); color:var(--tenue); border:1px solid var(--riga)}
.etichetta--corso{color:var(--tenue); border:1px dashed var(--riga-forte)}

/* ---------------------------------------------------------- tabellone */
table.tabellone td:first-child, table.tabellone th:first-child{text-align:left}
table.tabellone td.tipo{text-align:left; font-family:var(--testo); color:var(--tenue)}
table.tabellone a{font-weight:600}
th button.ordina{all:unset; cursor:pointer; display:inline-flex; gap:4px; align-items:center}
th button.ordina:focus-visible{outline:2px solid var(--maschera-testo); outline-offset:2px}
th[aria-sort=ascending] button.ordina::after{content:"▲"; font-size:.7em}
th[aria-sort=descending] button.ordina::after{content:"▼"; font-size:.7em}
td.zero{color:var(--tenue)}

/* ------------------------------------------------------------- elenchi */
.elenco{list-style:none; margin:0; padding:0; display:grid; gap:0;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); border-top:1px solid var(--riga)}
.elenco li{border-bottom:1px solid var(--riga); padding:18px 18px 20px 0}
.elenco h3{font-size:1.08rem; margin:0 0 8px}
.elenco h3 a{color:inherit; text-decoration:none}
.elenco h3 a:hover{text-decoration:underline; text-decoration-color:var(--maschera)}
.elenco p{margin:0; font-size:.92rem; color:var(--tenue); line-height:1.5}
.elenco .conto{font-family:var(--dato); font-size:.7rem; color:var(--tenue); display:block; margin-top:9px}
.pagina__intro{max-width:66ch; font-size:1.02rem}
.ingresso--spento{cursor:default}
.ingresso--spento:hover{background:var(--carta)}
@media (max-width:560px){
  body{font-size:18px}
  .testata__marchio img{width:170px}
}

.testata nav{margin-left:auto}
table.dati.registro-t thead th{white-space:normal; vertical-align:bottom; min-width:5.5em}
table.dati td.periodo{white-space:normal; min-width:7.5em; max-width:10em}
table.tabellone td.chi{white-space:normal; min-width:11em; max-width:17em; font-family:var(--display)}
table.tabellone thead th{white-space:normal; vertical-align:bottom}
figure.prova{margin:30px 0 34px; max-width:66ch}
figure.prova img{display:block; width:100%; height:auto; border:1px solid var(--riga); border-radius:2px;
  box-shadow:0 1px 0 var(--riga)}
figure.prova figcaption{font-family:var(--dato); font-size:.72rem; color:var(--tenue); line-height:1.5;
  margin-top:9px}
p.didascalia, .prev__detto, .prev__fonte, figure.prova figcaption{overflow-wrap:anywhere}

/* ------------------------------------------------------------ consenso */
.consenso{position:fixed; left:0; right:0; bottom:0; z-index:40; background:var(--campo);
  color:var(--campo-testo); border-top:3px solid var(--maschera);
  padding-bottom:env(safe-area-inset-bottom,0px)}
.consenso__dentro{padding-block:16px 18px; display:grid; gap:12px;
  grid-template-columns:minmax(0,1fr) auto; align-items:center}
.consenso__testo{margin:0; font-size:.92rem; line-height:1.5; max-width:76ch}
.consenso__testo a{color:var(--maschera)}
.consenso__bottoni{margin:0; display:flex; gap:9px; flex-wrap:wrap}
.bottone{font-family:var(--display); font-weight:700; font-size:.82rem; letter-spacing:.04em;
  padding:9px 16px; border-radius:2px; border:1px solid var(--campo-tenue); background:transparent;
  color:var(--campo-testo); cursor:pointer}
.bottone:hover,.bottone:focus-visible{border-color:var(--campo-testo)}
.bottone--si{background:var(--maschera); border-color:var(--maschera); color:#1a1917}
@media (max-width:720px){.consenso__dentro{grid-template-columns:1fr}}

/* ------------------------------------------------------- guide e schede */
.prima{font-family:var(--dato); font-size:.78rem; color:var(--tenue); margin:18px 0 0;
  border-left:3px solid var(--riga); padding:7px 0 7px 13px; line-height:1.6}
.segnaposto{background:#ffe8a3; color:#5a3c00; padding:1px 6px; border-radius:2px;
  font-family:var(--dato); font-weight:700}
.cerca{margin-block:12px 40px; --pagefind-ui-primary:var(--inchiostro);
  --pagefind-ui-text:var(--inchiostro); --pagefind-ui-background:var(--carta);
  --pagefind-ui-border:var(--riga); --pagefind-ui-tag:var(--carta-2);
  --pagefind-ui-border-radius:2px; --pagefind-ui-font:var(--testo)}
aside.prev{align-self:start}
aside.prev .prev__dati{border-top:0; padding-top:0}
.articolo__corpo h3{font-size:1.08rem; margin:34px 0 10px}
aside.prev .prev__dati li{align-items:baseline}
aside.prev .prev__dati b{max-width:62%; overflow-wrap:break-word}
