/* ── RESET & BASE ── */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    body {
      font-family: 'Times New Roman', Times, serif;
      font-size: 12pt;
      background: #e0e0e0;
      color: #000;
    }

    /* ── PAGE WRAPPER (simulasi kertas A4) ── */
    .page {
      width: 210mm;
      min-height: 297mm;
      margin: 20px auto;
      background: #fff;
      padding: 20mm 20mm 20mm 25mm; /* margin buku: kiri lebih lebar */
      box-shadow: 0 2px 12px rgba(0,0,0,0.18);
    }

    /* ── HEADER DOKUMEN ── */
    .doc-header {
      display: grid;
      grid-template-columns: 60px 1fr 60px;
      align-items: center;
      gap: 10px;
      border-bottom: 3px solid #000;
      padding: 8px 0;
      margin-bottom: 16px;
    }

    .logo-box {
      width: 56px;
      height: 56px;
      border: 1.5px dashed #555;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      font-size: 7pt;
      color: #555;
      text-align: center;
      line-height: 1.3;
    }

    .logo-img {
      width: 100%;
      height: 100%;
      object-fit: contain;
    }

    .logo-box.has-logo {
      border: none;
    }

    .doc-title-center {
      text-align: center;
      line-height: 1.25;
    }
    .kop-pemda {
      font-size: 8pt;
      font-weight: normal;
      letter-spacing: 0.04em;
      margin-bottom: 1px;
    }
    .kop-dinas {
      font-size: 9pt;
      font-weight: bold;
      letter-spacing: 0.03em;
      margin-bottom: 1px;
    }
    .kop-sekolah {
      font-size: 12pt;
      font-weight: bold;
      letter-spacing: 0.05em;
      margin-bottom: 2px;
    }
    .kop-alamat {
      font-size: 7.5pt;
      font-weight: normal;
      font-style: italic;
      letter-spacing: 0.01em;
    }

    .doc-judul-area {
      text-align: center;
      margin-bottom: 12px;
    }
    .doc-judul-area .judul-utama {
      font-size: 14pt;
      font-weight: bold;
      letter-spacing: 0.05em;
      text-transform: uppercase;
      margin: 4px 0 2px 0;
    }

    .doc-judul-area .subjudul {
      font-size: 10pt;
      color: #444;
    }

    /* ── IDENTITAS DOKUMEN ── */
    .identitas {
      width: 100%;
      border-collapse: collapse;
      margin-bottom: 14px;
      font-size: 11pt;
    }

    .identitas td {
      padding: 4px 8px;
      border: 1px solid #000;
      vertical-align: middle;
    }

    .identitas td:first-child {
      font-weight: bold;
      white-space: nowrap;
      width: 38%;
    }

    /* ── SECTION TITLE ── */
    .page .section-title {
      font-size: 11pt;
      font-weight: bold;
      color: #000;
      text-transform: uppercase;
      letter-spacing: 0.04em;
      border-left: 4px solid #000;
      padding: 3px 8px;
      margin: 14px 0 8px 0;
      background: #f5f5f5;
    }

    /* ── TABEL UTAMA ── */
    table.main {
      width: 100%;
      border-collapse: collapse;
      table-layout: fixed;
      font-size: 10.5pt;
      margin-bottom: 14px;
    }

    table.main th {
      background: #1a365d;
      color: #fff;
      padding: 6px 8px;
      text-align: center;
      font-size: 10pt;
      font-weight: bold;
      border: 1px solid #000;
      vertical-align: middle;
    }

    table.main td {
      padding: 6px 8px;
      border: 1px solid #000;
      vertical-align: middle;
      line-height: 1.5;
      word-wrap: break-word;
      overflow-wrap: break-word;
    }

    table.main tr:nth-child(even) td {
      background: #fafafa;
    }

    table.main td.no {
      text-align: center;
      width: 28px;
      font-weight: bold;
    }

    table.main td.elemen {
      font-weight: bold;
      width: 14%;
      font-size: 9pt;
    }

    table.main td.kko {
      width: 28%;
    }
    table.main td.keterangan {
      width: 42%;
    }

    /* ── TABEL FASE ── */
    table.fase {
      width: 100%;
      border-collapse: collapse;
      table-layout: fixed;
      font-size: 10pt;
      margin-bottom: 14px;
    }

    table.fase th {
      background: #2c5aa0;
      color: #fff;
      padding: 5px 8px;
      text-align: center;
      border: 1px solid #000;
    }

    table.fase td {
      padding: 5px 8px;
      border: 1px solid #000;
      vertical-align: top;
      line-height: 1.5;
      word-wrap: break-word;
      overflow-wrap: break-word;
    }

    table.fase td.fase-label {
      font-weight: bold;
      text-align: center;
      background: #eee;
      width: 10%;
    }

    /* ── TABEL PPP ── */
    table.ppp {
      width: 100%;
      border-collapse: collapse;
      table-layout: fixed;
      font-size: 10pt;
      margin-bottom: 14px;
    }

    table.ppp th {
      background: #2c5aa0;
      color: #fff;
      padding: 5px 8px;
      border: 1px solid #000;
      text-align: center;
    }

    table.ppp td {
      padding: 5px 8px;
      border: 1px solid #000;
      vertical-align: middle;
      word-wrap: break-word;
      overflow-wrap: break-word;
    }

    table.ppp td.centang {
      text-align: center;
      font-size: 13pt;
    }

    /* ── CATATAN ── */
    .catatan-box {
      border: 1px solid #000;
      padding: 8px 10px;
      font-size: 10pt;
      margin-bottom: 14px;
    }

    .catatan-box .catatan-label {
      font-weight: bold;
      margin-bottom: 4px;
    }

    /* ── TANDA TANGAN ── */

    /* ── FOOTER ── */
    .doc-footer {
      border-top: 2px solid #000;
      margin-top: 16px;
      padding-top: 5px;
      display: flex;
      justify-content: space-between;
      font-size: 8.5pt;
      color: #333;
    }

    /* ── NOMOR DOKUMEN ── */
    .nomor-dok {
      font-size: 8.5pt;
      color: #444;
      text-align: right;
      margin-bottom: 4px;
    }

  .ttd-area {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    margin-top: 24px;
    page-break-inside: avoid;
  }
  .ttd-wrapper {
    margin-top: 20px;
    page-break-inside: avoid;
  }
  .ttd-box {
    text-align: center;
    font-size: 10pt;
    padding: 8px 12px;
  }
  .ttd-box .ttd-jabatan {
    font-weight: bold;
    color: #1a365d;
    font-size: 9.5pt;
    margin-bottom: 4px;
  }
  .ttd-box .ttd-tanggal {
    font-size: 9.5pt;
    margin-bottom: 44px;
  }
  .ttd-box .ttd-nama {
    font-weight: bold;
    font-size: 10pt;
    text-decoration: underline;
    text-underline-offset: 3px;
  }
  .ttd-box .ttd-nip {
    font-size: 9pt;
    color: #333;
    margin-top: 3px;
  }
  .ttd-area.ttd-hidden {
    display: none;
  }

    /* ── PRINT STYLES ── */
    @media print {
  body { background: #fff; }
  .page {
    margin: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
  }
  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
}
