/* =============================================================================
   cetak-lanjutan.css — GAYA UNTUK STRATEGI KOLOM & PEMBELAHAN HALAMAN

   Melengkapi cetak-laporan.css, tidak menggantikannya. Seluruh kerapatan tetap
   dikendalikan variabel yang sama (--v10-skala) supaya hanya ada SATU sumber
   kebenaran untuk "seberapa rapat cetakan ini". Dua sistem kerapatan yang
   berjalan bersamaan adalah cara tercepat membuat hasil cetak tidak bisa
   diprediksi.
   ========================================================================== */

/* ------------------------------------------------------------------ KOLOM --
   Tabel daftar yang dipecah menjadi beberapa kolom berdampingan.
   `align-items: start` penting: tanpa itu kolom yang lebih pendek diregangkan
   dan garis-garis tabelnya ikut melar.                                      */
#print-container .v11-kolom {
    display: grid;
    gap: calc(7px * var(--v10-skala, 1));
    align-items: start;
    width: 100%;
}
#print-container .v11-kolom-2 { grid-template-columns: 1fr 1fr; }
#print-container .v11-kolom-3 { grid-template-columns: 1fr 1fr 1fr; }

#print-container .v11-kolom > table {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
    break-inside: avoid;
    page-break-inside: avoid;
}

/* Baris penyeimbang tinggi kolom. Dibuat tidak terlihat isinya tetapi tetap
   menempati ruang, supaya garis bawah semua kolom sejajar. */
#print-container .v11-baris-kosong td {
    color: transparent;
    border-color: inherit;
}

/* ------------------------------------------------------------------ RAPAT --
   Satu tingkat kerapatan tambahan yang dipakai SEBELUM ukuran huruf
   diturunkan: yang dipangkas hanya ruang kosong, bukan keterbacaan. */
#print-container.v11-rapat th,
#print-container.v11-rapat td,
#print-container .v11-rapat th,
#print-container .v11-rapat td {
    padding-top: calc(1.2px * var(--v10-skala, 1));
    padding-bottom: calc(1.2px * var(--v10-skala, 1));
    line-height: 1.12;
}
#print-container.v11-rapat h1,
#print-container.v11-rapat h2,
#print-container .v11-rapat h1,
#print-container .v11-rapat h2 {
    margin-top: calc(3px * var(--v10-skala, 1));
    margin-bottom: calc(3px * var(--v10-skala, 1));
}
#print-container.v11-rapat .v10-ttd,
#print-container .v11-rapat .v10-ttd { margin-top: calc(8px * var(--v10-skala, 1)); }

/* ---------------------------------------------------------- HALAMAN BARU --
   Dipakai saat mesin memutuskan sendiri titik potong antar-halaman. */
#print-container .v11-halaman-baru {
    break-before: page;
    page-break-before: always;
    padding-top: 2px;
}

/* ------------------------------------------------- ABSENSI: KOLOM SEMPIT --
   Pada mode absensi, kolom status harus sesempit mungkin agar nama santri
   mendapat sisa ruang. Nilai ch (bukan px) dipakai supaya ikut menyesuaikan
   ketika --v10-skala menurunkan ukuran huruf. */
#print-container.v10-absensi .v11-kolom table.print-dense td:first-child,
#print-container.v10-absensi .v11-kolom table.print-dense th:first-child {
    width: auto;
    text-align: left;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
#print-container.v10-absensi .v11-kolom table.print-dense td:not(:first-child),
#print-container.v10-absensi .v11-kolom table.print-dense th:not(:first-child) {
    width: 3.2ch;
    text-align: center;
    padding-left: 0;
    padding-right: 0;
}

/* Kolom nomor urut, bila laporan memakainya, tetap sempit. */
#print-container .v11-kolom table td.no,
#print-container .v11-kolom table th.no { width: 3ch; text-align: center; }

@media print {
    /* Pecahan kolom tidak boleh terpotong di tengah. */
    #print-container .v11-kolom { break-inside: avoid; page-break-inside: avoid; }

    /* Kepala tabel diulang pada tiap kolom hasil pecahan — sudah berupa
       <thead> tersendiri, jadi aturan table-header-group v10 berlaku apa
       adanya. Tidak ada yang perlu ditambahkan di sini selain memastikan
       ia tidak disembunyikan oleh gaya laporan lama. */
    #print-container .v11-kolom thead { display: table-header-group; }

    /* Blok halaman kedua hasil pembelahan adalah halaman penuh tersendiri. */
    #print-container .v11-halaman-baru { break-inside: avoid; page-break-inside: avoid; }
}

/* =============================================================================
   PRATINJAU DI LAYAR
   Kontainer cetak biasanya display:none. Saat pengguna membuka pratinjau,
   kelas .v11-pratinjau memunculkannya dengan proporsi kertas yang benar
   sehingga apa yang terlihat memang yang akan tercetak.
   ========================================================================== */
#print-container.v11-pratinjau {
    display: block !important;
    background: #fff;
    color: #111;
    margin: 0 auto;
    padding: 10mm;
    box-shadow: 0 10px 40px -12px rgba(15, 23, 42, .35);
    border-radius: 6px;
    max-width: 100%;
    overflow-x: auto;
}
#print-container.v11-pratinjau[data-orientasi="landscape"] { width: 297mm; }
#print-container.v11-pratinjau[data-orientasi="portrait"]  { width: 210mm; }

/* =============================================================================
   MATIKAN AUTO-FIT UNTUK LEMBAR BERUKURAN PASTI (KARTU IDENTITAS)
   ---------------------------------------------------------------------------
   Pembungkus window.print() milik v10 selalu menjalankan auto-fit, termasuk
   pada lembar kartu. Kartu memakai ukuran ISO/IEC 7810 ID-1 supaya hasil
   potong pas di pouch laminasi; mengecilkannya membuat seluruh gunanya hilang.

   `!important` pada custom property memang diperlukan di sini: --v10-skala
   dipasang sebagai gaya inline oleh mesin auto-fit, dan hanya deklarasi
   ber-!important dari lembar gaya yang mengunggulinya.
   ========================================================================== */
#print-container.v11-no-fit,
#print-container.v11-no-fit .v10-autofit,
#print-container.v11-no-fit.v10-autofit {
    --v10-skala: 1 !important;
    font-size: initial !important;
    line-height: normal !important;
}
#print-container.v11-no-fit .v10-autofit th,
#print-container.v11-no-fit .v10-autofit td {
    padding: initial;
    line-height: normal;
}
