/* «Per le redazioni» — il documento da inoltrare.
   ------------------------------------------------------------------------
   Eredita TUTTO da newsroom.css: materiali (velina/ritaglio/kraft), tipografia,
   chrome, e i token epistemici che `ui/tokens.py` stampa in <head>. Qui c'è solo
   ciò che serve a un DOCUMENTO e che una app non ha: colonna di lettura,
   gerarchia da carta stampata, figure con didascalia, e la stampa.

   ⚠️ Nessun esadecimale epistemico in questo file (verdetti, provenienze,
      nature): se serve un colore di verdetto si usa var(--nwr-v-*). Un secondo
      posto da cui la regola può divergere è un secondo posto da cui può
      sbagliare. Stessa disciplina di newsroom.css.
   ⚠️ Nessun rosso fra i materiali. Il rosso è di `smentito`, e basta. */

.nwrp-body { background: var(--nwr-bg); }

.nwrp-topbar { position: sticky; top: 0; z-index: 20; }
/* Su un telefono i due bottoni andavano a capo e la barra — che è sticky —
   si mangiava due righe di schermo per tutta la lettura. Sotto i 520px resta
   solo l'azione, che è l'unica cosa per cui la barra vale il suo spazio. */
@media (max-width: 520px) {
  .nwrp-topbar .nwrl-topnav { flex-wrap: nowrap; }
  .nwrp-topbar .nwr-btn--ghost { display: none; }
}
/* La testata è sticky: senza questo, ogni salto dall'indice atterra col titolo
   già scomparso sotto la barra — e il lettore crede di essere nel posto
   sbagliato. Un filo più dell'altezza della barra. */
.nwrp-doc [id] { scroll-margin-top: 5rem; }

/* --- Impaginato -----------------------------------------------------------
   Una colonna sola. Le figure e le tabelle possono debordare fino a --wide,
   perché uno screenshot a 68ch non si legge. */
.nwrp-doc { --col: 70ch; --wide: 1100px; padding: 0 1.25rem 5rem; }
.nwrp-doc > * { max-width: var(--col); margin-inline: auto; }
.nwrp-doc > .nwrp-wide { max-width: var(--wide); }

.nwrp-doc p, .nwrp-doc li { font-size: 1.02rem; line-height: 1.72; }
.nwrp-doc p { margin: 0 0 1.05rem; }
.nwrp-doc strong { font-weight: 700; }
.nwrp-doc a { color: var(--nwr-primary); }

/* --- Testata --------------------------------------------------------------- */
.nwrp-head { padding: 3.2rem 0 2rem; }
.nwrp-kicker {
  font-size: .74rem; letter-spacing: .16em; text-transform: uppercase;
  color: var(--nwr-muted); margin: 0 0 .9rem;
}
/* Serif sui titoli, come la vetrina e come l'hub: è la voce del prodotto, e un
   documento che si apre in un altro carattere sembra di qualcun altro. */
.nwrp-title {
  font-family: var(--nwr-evidence); font-size: var(--nwr-t-hero);
  line-height: 1.06; letter-spacing: -.02em; margin: 0 0 1rem;
}
.nwrp-standfirst { font-size: 1.18rem; line-height: 1.6; color: var(--nwr-text); margin: 0 0 1.1rem; }
.nwrp-claim {
  font-family: var(--nwr-evidence); font-size: 1.22rem; font-style: italic;
  color: var(--nwr-text); border-left: 3px solid var(--nwr-kraft);
  padding: .1rem 0 .1rem 1rem; margin: 1.6rem 0;
}
.nwrp-meta { font-size: .82rem; color: var(--nwr-muted); }
.nwrp-meta .nwr-record { font-size: .78rem; }

/* --- Indice ---------------------------------------------------------------- */
.nwrp-toc {
  border-top: 1px solid var(--nwr-border); border-bottom: 1px solid var(--nwr-border);
  padding: 1.1rem 0; margin: 2rem auto 3rem;
}
.nwrp-toc h2 {
  font-size: .74rem; letter-spacing: .16em; text-transform: uppercase;
  color: var(--nwr-muted); margin: 0 0 .7rem; font-weight: 700;
}
.nwrp-toc ol { margin: 0; padding-left: 1.15rem; columns: 2; column-gap: 2rem; }
.nwrp-toc li { font-size: .92rem; line-height: 1.55; break-inside: avoid; }
.nwrp-toc a { color: var(--nwr-text); text-decoration: none; border-bottom: 1px solid transparent; }
.nwrp-toc a:hover { border-bottom-color: var(--nwr-kraft); }
@media (max-width: 640px) { .nwrp-toc ol { columns: 1; } }

/* --- Gerarchia ------------------------------------------------------------- */
.nwrp-part {
  margin: 4.5rem auto 1.6rem; padding-top: 1.6rem;
  border-top: 3px double var(--nwr-border);
}
.nwrp-part-n {
  display: block; font-size: .74rem; letter-spacing: .18em; text-transform: uppercase;
  color: var(--nwr-kraft); font-weight: 700; margin-bottom: .45rem;
}
.nwrp-part h2 {
  font-family: var(--nwr-evidence); font-size: var(--nwr-t-h1);
  line-height: 1.15; margin: 0; letter-spacing: -.015em;
}
.nwrp-part p { margin-top: .9rem; color: var(--nwr-muted); }

.nwrp-doc h3 {
  font-family: var(--nwr-evidence); font-size: var(--nwr-t-h2);
  line-height: 1.25; margin: 2.6rem 0 .8rem; letter-spacing: -.01em;
}
.nwrp-doc h4 { font-size: 1.02rem; margin: 1.8rem 0 .5rem; }

.nwrp-doc ul, .nwrp-doc ol { margin: 0 0 1.15rem; padding-left: 1.3rem; }
.nwrp-doc li { margin-bottom: .45rem; }

/* --- Figure ---------------------------------------------------------------- */
.nwrp-fig { margin: 2.2rem auto 2.4rem; }
.nwrp-fig img {
  display: block; width: 100%; height: auto; border-radius: var(--nwr-radius-sm);
  border: 1px solid var(--nwr-border); box-shadow: var(--nwr-shadow); background: var(--nwr-surface);
}
.nwrp-fig figcaption {
  margin: .7rem auto 0; max-width: var(--col);
  font-size: .85rem; line-height: 1.6; color: var(--nwr-muted);
}
.nwrp-fig figcaption b { color: var(--nwr-text); font-weight: 650; }
/* Le viste della dashboard restavano a due colonne, e a due colonne non si
   leggeva niente: uno screenshot di un'applicazione densa a 500px è un
   francobollo con una didascalia. Colonna singola, e ogni figura si apre a
   grandezza piena in una scheda nuova — che è l'unico «zoom» che funziona
   uguale su desktop, telefono e in stampa. */
.nwrp-figs { display: grid; gap: 2.2rem; }
.nwrp-figs .nwrp-fig { margin: 0; }
.nwrp-fig a { display: block; }
.nwrp-fig a:focus-visible { outline: 2px solid var(--nwr-kraft); outline-offset: 4px; }
.nwrp-fig-zoom {
  display: inline-block; margin-left: .35rem; font-size: .78rem;
  color: var(--nwr-faint); white-space: nowrap;
}

/* --- Riquadri -------------------------------------------------------------- */
.nwrp-box {
  border: 1px solid var(--nwr-border); border-left: 3px solid var(--nwr-kraft);
  border-radius: var(--nwr-radius-sm); background: var(--nwr-surface);
  padding: 1.1rem 1.25rem; margin: 1.9rem auto;
}
.nwrp-box > :last-child { margin-bottom: 0; }
.nwrp-box h4 { margin-top: 0; }
/* Il riquadro dei limiti porta il materiale del RIPORTATO, non un colore di
   allarme: è una dichiarazione, non un errore. */
.nwrp-box--limit { border-left-color: var(--nwr-steel); }

/* --- Tabelle --------------------------------------------------------------- */
.nwrp-tw { overflow-x: auto; margin: 1.7rem auto 2rem; -webkit-overflow-scrolling: touch; }
.nwrp-doc table { border-collapse: collapse; width: 100%; min-width: 34rem; font-size: .9rem; }
.nwrp-doc th, .nwrp-doc td {
  text-align: left; padding: .6rem .75rem; border-bottom: 1px solid var(--nwr-border-soft);
  vertical-align: top; line-height: 1.5;
}
.nwrp-doc thead th {
  font-size: .74rem; letter-spacing: .09em; text-transform: uppercase;
  color: var(--nwr-muted); border-bottom: 1px solid var(--nwr-border);
}
.nwrp-doc td.num { font-family: var(--nwr-record); white-space: nowrap; }

/* --- Legenda dei materiali (la stessa grammatica del prodotto) -------------- */
.nwrp-mats { display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 1.8rem auto 2.2rem; }
@media (max-width: 760px) { .nwrp-mats { grid-template-columns: 1fr; } }
.nwrp-mat {
  padding: 1rem 1.05rem; border-radius: 3px; color: var(--nwr-ink);
  box-shadow: 0 10px 22px -18px rgba(0,0,0,.8);
}
.nwrp-mat h4 { margin: 0 0 .35rem; font-size: .95rem; color: var(--nwr-ink); }
.nwrp-mat p { margin: 0; font-size: .86rem; line-height: 1.55; color: var(--nwr-ink-faded); }
.nwrp-mat--fact { background: var(--nwr-onionskin); }
.nwrp-mat--reported { background: var(--nwr-newsprint); }
.nwrp-mat--interp { background: var(--nwr-kraft); }
.nwrp-mat--interp p { color: #4a3c26; }

/* --- Provenienze ----------------------------------------------------------- */
.nwrp-provs { display: flex; flex-wrap: wrap; gap: .55rem; margin: 1.4rem 0 1.8rem; }
.nwrp-prov {
  display: inline-flex; align-items: center; gap: .4rem;
  font-size: .84rem; font-weight: 600; padding: .32rem .7rem; border-radius: 999px;
  color: var(--nwr-pc); border: 1px solid var(--nwr-pc);
  background: color-mix(in srgb, var(--nwr-pc) 12%, transparent);
}
.nwrp-prov--archive { --nwr-pc: var(--nwr-p-archive); }
.nwrp-prov--legal { --nwr-pc: var(--nwr-p-legal); }
.nwrp-prov--web { --nwr-pc: var(--nwr-p-web); }
.nwrp-prov--own { --nwr-pc: var(--nwr-p-own_sources); }

/* --- Verdetti (legenda) ---------------------------------------------------- */
.nwrp-verdicts { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.2rem 0 1.6rem; }
.nwrp-v {
  display: inline-flex; align-items: center; gap: .4rem;
  font-size: .84rem; font-weight: 600; padding: .3rem .65rem; border-radius: 6px;
  color: var(--nwr-vc); border: 1px solid color-mix(in srgb, var(--nwr-vc) 45%, transparent);
  background: color-mix(in srgb, var(--nwr-vc) 12%, transparent);
}
.nwrp-v--confermato { --nwr-vc: var(--nwr-v-confermato); }
.nwrp-v--parziale { --nwr-vc: var(--nwr-v-parziale); }
.nwrp-v--smentito { --nwr-vc: var(--nwr-v-smentito); }
.nwrp-v--non_trovato { --nwr-vc: var(--nwr-v-non_trovato); }

/* --- Cifre ----------------------------------------------------------------- */
.nwrp-kpis { display: grid; gap: .9rem; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 1.6rem auto 1.2rem; }
@media (max-width: 760px) { .nwrp-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.nwrp-kpi {
  border: 1px solid var(--nwr-border); border-radius: var(--nwr-radius-sm);
  background: var(--nwr-surface); padding: .9rem 1rem;
}
.nwrp-kpi b { display: block; font-family: var(--nwr-record); font-size: 1.3rem; line-height: 1.2; }
.nwrp-kpi span { display: block; margin-top: .3rem; font-size: .78rem; color: var(--nwr-muted); line-height: 1.4; }

/* --- Chiusa ---------------------------------------------------------------- */
.nwrp-end { margin-top: 3.5rem; padding-top: 2rem; border-top: 3px double var(--nwr-border); }
.nwrp-end .nwrl-hero-cta, .nwrp-cta { display: flex; flex-wrap: wrap; gap: .8rem; margin: 1.5rem 0; }

/* --- Stampa ---------------------------------------------------------------
   Qualcuno lo salverà in PDF e lo girerà: la versione stampata deve essere il
   documento, non una schermata dell'applicazione. */
@media print {
  .nwrp-topbar, .nwr-foot, .nwrp-cta, .nwrp-toc { display: none !important; }
  .nwrp-body { background: #fff; }
  .nwrp-doc { --col: 100%; padding: 0; }
  .nwrp-doc, .nwrp-doc p, .nwrp-doc li { color: #000; font-size: 10.5pt; }
  .nwrp-fig { break-inside: avoid; }
  .nwrp-fig img { box-shadow: none; border-color: #999; }
  .nwrp-part { break-before: page; }
  .nwrp-box, .nwrp-mat, .nwrp-kpi { break-inside: avoid; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 8pt; color: #555; }
}
