/* ════════════════════════════════════════════════════════════════════════
   STAMPA (design-13b, decisione D2 della PR 13)
   Il blocco @media print che stava in css/style.css, spostato qui com'era e
   caricato subito dopo style.css finché c'era (fino alla PR 15; ora dopo base.css, stessa cascata: il PDF della
   Decisione esce uguale, provato con Chrome headless prima e dopo).
   Unica eccezione alla regola "niente !important nei file nuovi" (spec 6.2).
   Quelli che restano battono: le regole dei fogli d'area, caricati dopo
   questo (a pari peso vincerebbero loro: .modal di area-shell, le tabelle di
   lender.css e della scheda, i display di area-opmodal), le regole con id e,
   nella stampa del Programma, gli !important di questo file. Lo stile inline
   dei moduli sui campi è a zero. La PR 15 (Task 5) ha tolto i 16 che non
   battevano niente (regole con id senza rivali, print-color-adjust, word-break):
   PDF di Decisione, Programma lavori e portale uguali prima e dopo.
   I colori restano scritti: la carta è chiara anche col tema scuro (i token
   scuri di tokens.css valgono solo a schermo). tests/stampa-css.test.js conta
   gli !important e non li lascia salire.
   Tolti nello spostamento due selettori che non trovano niente (git grep su
   js/ e index.html): .nav (la barra laterale è .sidebar-nav, le voci .nav-item)
   e .bpPan. I .risk-* e .op-card-risk restano: pipeline.js li compone con
   'risk-' + calcRisk(o); in stampa stanno dentro .pipeline, che è nascosta.
   ════════════════════════════════════════════════════════════════════════ */
/* Stampa / PDF del Programma lavori (era in style.css fino alla PR 15, in testa a questo file: stessa cascata) (spec Gantt, parte A, 1-ott-2026). Il
   contenitore #progStampa lo aggiunge al body cantiere-planning.js, con la
   classe prog-stampa-on sul body, solo per la durata della stampa: a schermo
   non si vede, in stampa resta solo lui. Senza la classe la stampa delle altre
   pagine (Decisione, deck) non cambia. A4 orizzontale con una pagina con nome
   (@page prog-a4o): un @page senza nome girerebbe anche la Decisione. I due
   descrittori hanno !important: gli @page senza nome di area-deck.css e di
   questo file (sotto) vengono dopo, e in Chrome un @page
   senza nome caricato dopo batte quello con nome: senza, il Programma esce in
   verticale. Il Gantt
   e' lo stesso dello schermo, in percento: senza la larghezza minima e lo
   scorrimento sta nel foglio. Il nascondi-tutto ha !important perché batte
   .modal-overlay{display:block!important} della stampa della app, qui sotto;
   #progStampa vince col suo id, senza. */
.prog-stampa{display:none}
@media print{
  @page prog-a4o{size:A4 landscape!important;margin:8mm!important}
  body.prog-stampa-on>:not(#progStampa){display:none!important}
  body.prog-stampa-on #progStampa{display:block;page:prog-a4o;font-size:8pt;color:#1a1a1a}
  #progStampa,#progStampa *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .prog-stampa-testa{display:flex;flex-wrap:wrap;align-items:baseline;gap:3.2px 19.2px;padding-bottom:2mm;margin-bottom:2mm;border-bottom:1px solid #999;break-after:avoid}
  .prog-stampa-tit{font-size:13pt;font-weight:700}
  .prog-stampa-op{font-size:10pt}
  .prog-stampa-date{margin-left:auto;font-size:8pt;color:#555}
  .prog-stampa-sotto{font-weight:700;font-size:9pt;margin:3mm 0 1mm;break-after:avoid}
  #progStampa .cgt{grid-template-columns:42mm 1fr;overflow:visible;border-radius:0;margin:0}
  #progStampa .cgt-scroll{overflow:visible}
  #progStampa .cgt-tracce{min-width:0}
  #progStampa .cgt-nome{font-size:7pt;cursor:default}
  /* «aggiunta» e «senza date»: a schermo 11 px (area-cantieri.css), sul foglio sotto i nomi e le celle. */
  #progStampa .cgt-agg,#progStampa .cgt-senza,#progStampa .prog-agg{font-size:6.5pt}
  #progStampa .cgt-riga,#progStampa .cgt-nome{break-inside:avoid}
  /* Legenda in cima al Gantt: in fondo, con 24 attivita', restava sola in testa a pagina 2.
     Non break-before:avoid, che porta tutto il Gantt a pagina 2 (review xhigh, 1-ott). */
  #progStampa .cgt-legenda{font-size:7pt;grid-row:1;border-top:0;border-bottom:1px solid var(--fc-sep)}
  /* L'elenco va su piu' pagine con l'intestazione ripetuta: la stampa della
     app, qui sotto, tiene ogni tabella intera (table{break-inside:avoid}, battuta
     dall'id). Le misure del testo hanno !important perché battono quelli di
     table, th e td della stampa della app. */
  #progStampa .prog-elenco{break-inside:auto;page-break-inside:auto;font-size:7.5pt!important}
  #progStampa .prog-elenco thead{display:table-header-group}
  #progStampa .prog-elenco tr{break-inside:avoid}
  #progStampa .prog-elenco th{font-size:7pt!important}
  #progStampa .prog-elenco td{font-size:7.5pt!important}
}
#decPlanPrintSection{display:none}
@media print{
  #decPlanPrintSection{display:block}
  #decPlanPrintSection img{max-width:100%;height:auto;border:1px solid #ccc}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body{background:#fff!important;font-size:9pt!important;color:#1a1a1a!important}
  footer,.dec-no-print,#pipeStats,.pipeline{display:none!important}
  #bugReportBtn,.fc-toast-container{display:none!important}
  .modal-overlay{position:static!important;display:block!important;background:none!important;padding:0!important;overflow:visible!important}
  /* Stampa della Decisione (design-04b): la regola sopra metteva in pagina anche i modali
     chiusi (#genModal, #ddModal), e la pagina aperta sotto (Home, Libro Mastro) usciva prima
     della Decisione. !important perché va battuta una regola !important. La seconda sta da
     sola: in un elenco, un :has() non capito farebbe cadere anche gli altri selettori.
     Safari sotto 15.4 non ha :has(): lì la pagina sotto torna in stampa come prima del fix
     (degrado accettato, nessun dato perso); i modali chiusi restano fuori comunque. */
  .modal-overlay:not(.open){display:none!important}
  body:has(.modal-overlay.open) .main{display:none!important}
  .modal{box-shadow:none!important;max-width:100%!important;border-radius:0!important}
  .modal-top{display:none!important}
  .modal-close{display:none!important}
  .modal-body{max-height:none!important;overflow:visible!important;padding:6px 0!important}
  .wizard-nav,.bp-section{display:none!important}
  .dec-print-header{display:flex!important}
  /* STAT CARDS: force light bg + dark text */
  .stat-card{background:#f0f4f0!important;border:1px solid #bbb!important;padding:5px!important;break-inside:avoid}
  .stat-card,.stat-card *,.stat-card div,.stat-card span{color:#1a1a1a!important}
  .stat-val{color:#1B5E20!important;font-size:11pt!important}
  .stat-lbl{color:#555!important;font-size:6pt!important}
  .stats-row{grid-template-columns:repeat(auto-fit,minmax(80px,1fr))!important;gap:4px!important;margin-bottom:5px!important}
  /* Tables */
  table{break-inside:avoid;page-break-inside:avoid;font-size:8pt!important;width:100%!important}
  th{background:#1B5E20!important;color:#fff!important;padding:3px 5px!important;font-size:6pt!important}
  td{padding:3px 5px!important;font-size:8pt!important;border-bottom:1px solid #ddd!important;color:#1a1a1a!important;word-break:break-word}
  .tag{background:#E8F5E9!important;color:#1B5E20!important}
  .tag-city{background:#1B5E20!important;color:#fff!important}
  /* Map */
  #decGMap{height:260px;break-inside:avoid;page-break-inside:avoid}
  /* Risk dots */
  .op-card-risk{border:1px solid #999!important}
  .risk-green{background:#00C853!important}.risk-yellow{background:#FFD600!important}.risk-red{background:#E53935!important}
  /* Prevent overflow */
  .modal-body *{max-width:100%!important;overflow-wrap:break-word!important}
  @page{size:A4;margin:8mm 10mm}
  /* DEC SCENARIO CARDS print */
  .dec-sc-card{background:#f5f5f5!important;border:1px solid #ccc!important}
  .dec-sc-card,.dec-sc-card *{color:#1a1a1a!important}
  .dec-sc-title{color:#555!important}
  .dec-sc-label{color:#777!important}
  .dec-sc-val{color:#1B5E20!important}
  .dec-sc-val[data-level="danger"]{color:#c62828!important}
  .dec-scenarios{gap:4px!important}
  /* Filtro regime in stampa (pulsante Stampa tab Decisione): con un singolo
     regime selezionato (data-print-regime impostato da printDecisione) nascondi
     gli scenari/RLV degli altri regimi e la tabella di confronto. */
  #decPrintArea[data-print-regime="PF"] [data-dec-regime]:not([data-dec-regime="PF"]),
  #decPrintArea[data-print-regime="IVA"] [data-dec-regime]:not([data-dec-regime="IVA"]),
  #decPrintArea[data-print-regime="IR"] [data-dec-regime]:not([data-dec-regime="IR"]),
  #decPrintArea[data-print-regime] [data-dec-compare]{display:none}
  #decPrintArea[data-print-regime] .dec-scenarios,
  #decPrintArea[data-print-regime] .dec-rlv-grid{grid-template-columns:1fr}
}
