/* print.css - regole per la stampa (A4) */

@page {
    size: A4;
    margin: 18mm 15mm; /* margini stampante */
}

/* Regole generali per il media print */
@media print {
    /* Reset visivo per stampa: niente sfondi/colori non necessari */
    * {
        background: transparent !important;
        box-shadow: none !important;
        color-adjust: exact !important;
        -webkit-print-color-adjust: exact !important;
        -webkit-text-size-adjust: none !important;
    }

    html, body {
        width: auto;
        height: auto;
        font-size: 12pt;
        line-height: 1.35;
        color: #000;
        background: #fff !important;
        margin: 0;
        padding: 0;
        orphans: 2;
        widows: 2;
        hyphens: auto;
    }

    /* Nascondi elementi non utili alla stampa */
    nav, .nav, .site-nav, .menu, .cookie-banner, .advertisement, .ads, .no-print, button, input[type="button"], input[type="submit"], .search, .video-player, .screen-only {
        display: none !important;
    }

    /* Classi utili: .no-print per nascondere, .print-only per mostrare solo in stampa */
    .no-print { display: none !important; }
    .print-only { display: block !important; }

    /* Titoli e testi leggibili */
    h1, h2, h3, h4, h5 {
        color: #000;
        page-break-after: avoid;
        page-break-inside: avoid;
        orphans: 2;
        widows: 2;
    }

    p {
        margin: 0 0 0.8em 0;
    }

    /* Immagini: ridimensiona e evita interruzione dentro l'immagine */
    img {
        max-width: 100% !important;
        height: auto !important;
        page-break-inside: avoid;
        break-inside: avoid;
        display: block;
        margin: 0.5em 0;
    }

    /* Tabelle: mantieni intestazioni e evita rotture indesiderate */
    table {
        width: 100% !important;
        border-collapse: collapse !important;
        page-break-inside: avoid;
        break-inside: avoid;
        margin: 0 0 1em 0;
    }
    thead { display: table-header-group; }
    tfoot { display: table-footer-group; }
    tr { page-break-inside: avoid; break-inside: avoid; }
    td, th {
        padding: 0.35em 0.5em;
        border: 1px solid #777;
        vertical-align: top;
        text-align: left;
    }

    /* Link: mostra URL tra parentesi per riferimento */
    a[href]:after {
        content: " (" attr(href) ")";
        font-size: 90%;
        color: #000;
    }

    /* Liste: margini e spaziatura adeguata */
    ul, ol {
        margin: 0 0 0.8em 1.4em;
    }

    /* Formattazione di elementi form per la stampa: mostra valore testuale se presente */
    input, textarea, select {
        border: none;
        background: transparent;
        box-shadow: none;
        color: #000;
        display: inline !important;
    }
    /* checkbox e radio: rendili leggibili */
    input[type="checkbox"], input[type="radio"] {
        transform: scale(1.1);
        -webkit-transform: scale(1.1);
    }

    /* Blocchi che devono iniziare sempre su nuova pagina */
    .page-break { page-break-before: always; break-before: page; }

    /* Evita interruzioni all'interno di articoli/box importanti */
    .avoid-break, article, .card {
        page-break-inside: avoid;
        break-inside: avoid;
    }

    /* Header / Footer di stampa (semplice) */
    .print-header, .print-footer {
        display: block;
        width: 100%;
        text-align: center;
        font-size: 10pt;
        color: #444;
    }
    .print-header { margin-bottom: 8mm; }
    .print-footer { margin-top: 8mm; }

    /* Opzionale: riduci elementi molto lunghi */
    .long-code, pre {
        white-space: pre-wrap;
        word-break: break-word;
        font-family: monospace;
        font-size: 10pt;
    }

    /* Ultime pulizie: evita overflow orizzontale */
    .container, .wrapper {
        overflow: visible !important;
    }
}