#permission-matrix-print-root { display:none; }
@media print {
    @page permission-matrix { size:A4 portrait; margin:12mm; }
    html:has(body.printing-permission-matrix) { background:white !important; height:auto !important; overflow:visible !important; }
    body.printing-permission-matrix { display:block !important; position:static !important; height:auto !important; overflow:visible !important; margin:0 !important; padding:0 !important; background:white !important; }
    html body.printing-permission-matrix > :not(#permission-matrix-print-root),
    body.printing-permission-matrix dialog { display:none !important; }
    html body.printing-permission-matrix > #permission-matrix-print-root {
        display:block !important; page:permission-matrix; width:100%; margin:0; padding:0;
        color:#202020 !important; background:white !important; font:8pt/1.35 Georgia, 'Times New Roman', serif;
    }
    #permission-matrix-print-root * { box-sizing:border-box; color:inherit; background:transparent; text-shadow:none; box-shadow:none; }
    #permission-matrix-print-root header { text-align:center; border-bottom:2px solid #333; padding-bottom:3mm; margin-bottom:4mm; break-inside:avoid; }
    #permission-matrix-print-root h1 { font-size:17pt; font-weight:700; margin:0 0 2mm; }
    #permission-matrix-print-root header p { font-size:8pt; margin:0; }
    #permission-matrix-print-root h2 { font-size:11pt; font-weight:700; letter-spacing:.5pt; margin:3mm 0 0; }
    .permission-certificate-meta { display:grid; grid-template-columns:1fr 1fr; gap:3mm 6mm; margin:0 0 3mm; break-inside:avoid; }
    .permission-certificate-meta dt { font-size:7pt; text-transform:uppercase; }
    .permission-certificate-meta dd { font-size:9pt; font-weight:bold; margin:1mm 0 0; overflow-wrap:anywhere; }
    .permission-certificate-note { font-size:7pt; margin:0 0 3mm; }
    #permission-matrix-print-root table { width:100%; table-layout:fixed; border-collapse:collapse; font-size:6pt; }
    #permission-matrix-print-root .permission-module-column { width:29%; }
    #permission-matrix-print-root th, #permission-matrix-print-root td { border:.2mm solid #777; padding:1.5mm .7mm; vertical-align:middle; overflow-wrap:anywhere; }
    #permission-matrix-print-root th { font-weight:bold; }
    #permission-matrix-print-root tbody th { text-align:left; font-size:7pt; }
    #permission-matrix-print-root td { text-align:center; }
    #permission-matrix-print-root .granted { font-weight:bold; }
    #permission-matrix-print-root thead { display:table-header-group; }
    #permission-matrix-print-root tr { break-inside:avoid; }
    .permission-certificate-signatures { display:grid; grid-template-columns:1fr 1fr; gap:10mm; margin-top:6mm; break-inside:avoid; }
    .permission-certificate-signatures h3 { font-weight:bold; margin:0 0 2mm; }
    .permission-certificate-signatures p { margin:0 0 2mm; }
    .permission-certificate-signatures .signature-line { border-top:1px solid #555; padding-top:2mm; margin-top:13mm; }
    #permission-matrix-print-root footer { border-top:1px solid #777; text-align:center; font-size:7pt; margin-top:5mm; padding-top:2mm; break-inside:avoid; }
}
