/* ===================================================================
   PRINT STYLESHEET - PRECISION 87 x 56 mm CARD PRINTING
   =================================================================== */

@media print {
    /* Global Page Setup */
    html, body {
        width: 100% !important;
        height: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        background: #ffffff !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
        color-adjust: exact !important;
    }

    /* Hide ALL screen UI */
    .app-navbar,
    .app-stats-bar,
    .main-workspace,
    .table-panel,
    .modal-backdrop,
    .toast-container,
    header,
    footer,
    nav,
    button,
    .no-print {
        display: none !important;
        visibility: hidden !important;
    }

    /* Print Stage is the ONLY visible element */
    #print-stage {
        display: block !important;
        visibility: visible !important;
        position: relative !important;
        left: 0 !important;
        top: 0 !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        background: transparent !important;
    }

    #print-stage * {
        visibility: visible !important;
    }

    /* ===============================================================
       MODE 1: A4 SHEET (Grid 2 Kolom x 4/5 Baris - 87x56 mm per kartu)
       =============================================================== */
    body.print-mode-a4 {
        margin: 0;
    }

    @page {
        size: A4 portrait;
        margin: 7mm 5mm 7mm 5mm;
    }

    .a4-print-sheet {
        width: 198mm; /* Fits within A4 width 210mm - 10mm margins */
        margin: 0 auto;
        display: grid;
        grid-template-columns: 87mm 87mm;
        grid-auto-rows: 56mm;
        gap: 5mm 8mm;
        justify-content: center;
        align-content: start;
        page-break-after: always;
        break-after: page;
        box-sizing: border-box;
        padding-top: 2mm;
    }

    .a4-print-sheet:last-child {
        page-break-after: avoid;
        break-after: avoid;
    }

    .print-card-cell {
        width: 87mm !important;
        height: 56mm !important;
        position: relative !important;
        box-sizing: border-box !important;
        page-break-inside: avoid !important;
        break-inside: avoid !important;
    }

    /* Fine cut guide (Garis potong putus-putus tipis di luar kartu) */
    .print-card-cell::before {
        content: '';
        position: absolute;
        inset: -1.5px;
        border: 0.6px dashed #94a3b8;
        border-radius: 4mm;
        pointer-events: none;
    }

    /* Target physical card inside cell */
    .print-card-cell .id-card,
    .single-print-wrap .id-card {
        width: 87mm !important;
        height: 56mm !important;
        min-width: 87mm !important;
        min-height: 56mm !important;
        max-width: 87mm !important;
        max-height: 56mm !important;
        position: relative !important;
        box-shadow: none !important;
        border-radius: 3.2mm !important;
        border: 0.5px solid #cbd5e1 !important;
        overflow: hidden !important;
        display: flex !important;
        flex-direction: column !important;
        box-sizing: border-box !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    /* Print Header Strict Dimensions */
    .print-card-cell .card-header,
    .single-print-wrap .card-header {
        height: 13.5mm !important;
        min-height: 13.5mm !important;
        max-height: 13.5mm !important;
        padding: 1.5mm 3mm !important;
        box-sizing: border-box !important;
        display: flex !important;
        align-items: center !important;
        gap: 2.5mm !important;
        border-bottom: 0.6mm solid var(--header-accent) !important;
        flex-shrink: 0 !important;
    }

    .print-card-cell .card-logo-wrap,
    .single-print-wrap .card-logo-wrap {
        width: 9.5mm !important;
        height: 9.5mm !important;
        padding: 0.5mm !important;
        flex-shrink: 0 !important;
    }

    .print-card-cell .card-gov-title,
    .single-print-wrap .card-gov-title {
        font-size: 5.5pt !important;
        line-height: 1.1 !important;
    }

    .print-card-cell .card-gov-subtitle,
    .single-print-wrap .card-gov-subtitle {
        font-size: 5pt !important;
        line-height: 1.1 !important;
    }

    .print-card-cell .card-school-name,
    .single-print-wrap .card-school-name {
        font-size: 8.5pt !important;
        margin: 0.3mm 0 !important;
        line-height: 1.1 !important;
    }

    .print-card-cell .card-school-address,
    .single-print-wrap .card-school-address {
        font-size: 5pt !important;
        line-height: 1 !important;
    }

    /* Print Body Strict Dimensions */
    .print-card-cell .card-body,
    .single-print-wrap .card-body {
        height: 42.5mm !important;
        min-height: 42.5mm !important;
        max-height: 42.5mm !important;
        padding: 2mm 3mm 2mm 3mm !important;
        display: flex !important;
        gap: 3mm !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
    }

    .print-card-cell .card-photo-col,
    .single-print-wrap .card-photo-col {
        width: 23mm !important;
        height: 38.5mm !important;
        flex-shrink: 0 !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
    }

    .print-card-cell .card-photo-box,
    .single-print-wrap .card-photo-box {
        width: 23mm !important;
        height: 29.5mm !important;
        border-radius: 1.5mm !important;
        border: 0.4mm solid #ffffff !important;
        flex-shrink: 0 !important;
    }

    .print-card-cell .card-photo-tag,
    .single-print-wrap .card-photo-tag {
        width: 23mm !important;
        font-size: 5pt !important;
        padding: 0.6mm 0 !important;
        margin-top: 1mm !important;
        border-radius: 1mm !important;
        flex-shrink: 0 !important;
    }

    .print-card-cell .card-info-col,
    .single-print-wrap .card-info-col {
        flex: 1 !important;
        height: 38.5mm !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: space-between !important;
        position: relative !important;
        box-sizing: border-box !important;
    }

    .print-card-cell .card-table-info,
    .single-print-wrap .card-table-info {
        height: 21mm !important;
        font-size: 6.8pt !important;
        line-height: 1.25 !important;
    }

    .print-card-cell .card-table-info tr,
    .single-print-wrap .card-table-info tr {
        height: 3.8mm !important;
    }

    .print-card-cell .card-td-label,
    .single-print-wrap .card-td-label {
        width: 15mm !important;
    }

    .print-card-cell .card-val-nama,
    .single-print-wrap .card-val-nama {
        font-size: 7.5pt !important;
    }

    .print-card-cell .card-val-nisn,
    .single-print-wrap .card-val-nisn {
        font-size: 7.2pt !important;
    }

    /* Fixed Bottom Row in Print: QR Code and Signature NEVER Shift! */
    .print-card-cell .card-bottom-row,
    .single-print-wrap .card-bottom-row {
        height: 14.5mm !important;
        min-height: 14.5mm !important;
        max-height: 14.5mm !important;
        margin-top: auto !important;
        display: flex !important;
        align-items: flex-end !important;
        justify-content: space-between !important;
        border-top: 0.3mm dashed #94a3b8 !important;
        padding-top: 1mm !important;
        box-sizing: border-box !important;
        flex-shrink: 0 !important;
    }

    .print-card-cell .card-qr-section,
    .single-print-wrap .card-qr-section {
        width: 12mm !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        flex-shrink: 0 !important;
    }

    .print-card-cell .card-qr-box,
    .single-print-wrap .card-qr-box {
        width: 11.5mm !important;
        height: 11.5mm !important;
        padding: 0.3mm !important;
        border-radius: 1mm !important;
        box-shadow: none !important;
        border: 0.2mm solid #cbd5e1 !important;
    }

    .print-card-cell .card-qr-label,
    .single-print-wrap .card-qr-label {
        font-size: 4.5pt !important;
        line-height: 1 !important;
        margin-top: 0.3mm !important;
    }

    .print-card-cell .card-signature-box,
    .single-print-wrap .card-signature-box {
        flex: 1 !important;
        height: 13.5mm !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: flex-end !important;
        text-align: center !important;
        padding-left: 2mm !important;
        box-sizing: border-box !important;
    }

    .print-card-cell .card-sig-city,
    .single-print-wrap .card-sig-city {
        font-size: 5pt !important;
        line-height: 1 !important;
    }

    .print-card-cell .card-sig-role,
    .single-print-wrap .card-sig-role {
        font-size: 5.2pt !important;
        line-height: 1 !important;
    }

    .print-card-cell .card-sig-stamp-wrap,
    .single-print-wrap .card-sig-stamp-wrap {
        height: 5.5mm !important;
        position: relative !important;
    }

    .print-card-cell .card-digital-stamp,
    .single-print-wrap .card-digital-stamp {
        width: 7.5mm !important;
        height: 7.5mm !important;
        font-size: 2.5pt !important;
    }

    .print-card-cell .card-digital-sig,
    .single-print-wrap .card-digital-sig {
        font-size: 11pt !important;
        line-height: 1 !important;
    }

    .print-card-cell .card-headmaster-name,
    .single-print-wrap .card-headmaster-name {
        font-size: 5.8pt !important;
        line-height: 1 !important;
    }

    .print-card-cell .card-headmaster-nip,
    .single-print-wrap .card-headmaster-nip {
        font-size: 4.8pt !important;
        line-height: 1 !important;
    }

    /* ===============================================================
       MODE 2: SINGLE CARD PVC / ID CARD PRINTER (87 x 56 mm exact)
       =============================================================== */
    body.print-mode-single {
        margin: 0 !important;
        padding: 0 !important;
    }

    @page card-page {
        size: 87mm 56mm;
        margin: 0mm;
    }

    .single-print-wrap {
        page: card-page;
        width: 87mm !important;
        height: 56mm !important;
        page-break-after: always;
        break-after: page;
        margin: 0 auto !important;
        box-sizing: border-box;
    }

    .single-print-wrap:last-child {
        page-break-after: avoid;
        break-after: avoid;
    }

    .single-print-wrap .id-card {
        width: 87mm !important;
        height: 56mm !important;
        min-width: 87mm !important;
        min-height: 56mm !important;
        max-width: 87mm !important;
        max-height: 56mm !important;
        border-radius: 3.5mm !important;
        box-shadow: none !important;
        margin: 0 !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }
}
