/* ════════════════════════════════════════════════════════════════════
   WanderKids — Rapor Anak (shared guru + ortu)
   /wk-assets/wk-rapor.css
   v6.0 — 2026-06-08 (CLEAN minimalist print match Contoh Rapo.pdf)
   ══════════════════════════════════════════════════════════════════ */

:root {
  /* Input panel score buttons & badges: warna distinct supaya guru tidak ketuker
     (1=merah/N, 2=oranye/S, 3=biru/E, 4=hijau/O — mnemonic untuk guru). */
  --rp-o:#2f9e44; --rp-e:#1c7ed6; --rp-s:#e8862a; --rp-n:#e03131;
  --rp-o-bg:#e7f6ea; --rp-e-bg:#e4f0fb; --rp-s-bg:#fcefe0; --rp-n-bg:#fde7e7;
  --rp-line:#ECEAF3;
  --wk-red:#E8231A;
  --wk-red-dark:#b71c16;
}

/* ─── INPUT UI (panel guru) ─── */
.rp-summary { background:linear-gradient(120deg,#241b48,#322457);color:#fff;border-radius:14px;padding:16px 18px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;margin:10px 0 14px; }
.rp-summary .lab{font-size:10.5px;letter-spacing:.13em;opacity:.7;font-weight:700;text-transform:uppercase}
.rp-summary .big{font-size:24px;font-weight:800;margin-top:2px}
.rp-summary .bk{font-size:24px;font-weight:800;margin-left:4px}
.rp-area-card { background:#fff;border:1px solid var(--rp-line);border-radius:12px;margin-bottom:10px;overflow:hidden; }
.rp-area-h { display:flex;align-items:center;justify-content:space-between;padding:12px 14px;cursor:pointer;background:#fbfaff;transition:background .12s; }
.rp-area-h:hover { background:#f3f0ff; }
.rp-area-h .l { display:flex;align-items:center;gap:10px; }
.rp-area-h .idx { width:28px;height:28px;border-radius:7px;background:#EEE9FF;color:#6a45f5;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center; }
.rp-area-h .nm { font-weight:700;font-size:13.5px;color:#23203a; }
.rp-area-h .r { display:flex;align-items:center;gap:8px; }
.rp-na-badge { font-weight:800;font-size:12px;color:#7b7795;min-width:40px;text-align:right; }
.rp-chev { transition:transform .2s;color:#7b7795; }
.rp-area-card.open .rp-chev { transform:rotate(180deg); }
.rp-area-b { padding:6px 14px 14px;display:none; }
.rp-area-card.open .rp-area-b { display:block; }
.rp-badge { font-weight:800;width:26px;height:26px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;font-size:12px; }
.rp-badge.O { background:var(--rp-o-bg);color:var(--rp-o); }
.rp-badge.E { background:var(--rp-e-bg);color:var(--rp-e); }
.rp-badge.S { background:var(--rp-s-bg);color:var(--rp-s); }
.rp-badge.N { background:var(--rp-n-bg);color:var(--rp-n); }
.rp-badge.empty { background:#f1f0f6;color:#bbb; }
.rp-ind { display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--rp-line); }
.rp-ind:last-of-type { border-bottom:none; }
.rp-ind .il { width:26px;height:26px;font-size:11px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-weight:800;background:#f1f0f6;color:#bbb;flex-shrink:0; }
.rp-ind .il.O { background:var(--rp-o-bg);color:var(--rp-o); }
.rp-ind .il.E { background:var(--rp-e-bg);color:var(--rp-e); }
.rp-ind .il.S { background:var(--rp-s-bg);color:var(--rp-s); }
.rp-ind .il.N { background:var(--rp-n-bg);color:var(--rp-n); }
.rp-ind .txt { flex:1;font-size:12.5px;color:#374151;font-weight:500;line-height:1.4; }
.rp-scoreset { display:flex;gap:4px;flex-shrink:0; }
.rp-sb { width:30px;height:30px;border-radius:7px;border:1.5px solid var(--rp-line);background:#fff;color:#7b7795;font-weight:700;font-size:13px;cursor:pointer;font-family:inherit;transition:.12s; }
.rp-sb:hover { border-color:#7C5CFF; }
.rp-sb.on { color:#fff;border-color:transparent; }
.rp-sb.on[data-s="1"] { background:var(--rp-n); }
.rp-sb.on[data-s="2"] { background:var(--rp-s); }
.rp-sb.on[data-s="3"] { background:var(--rp-e); }
.rp-sb.on[data-s="4"] { background:var(--rp-o); }
.rp-narabox { margin-top:12px;background:#faf9ff;border:1px solid var(--rp-line);border-radius:10px;padding:11px; }
.rp-narabox .nh { display:flex;align-items:center;justify-content:space-between;margin-bottom:7px;gap:8px; }
.rp-narabox .nh b { font-size:10.5px;color:#6a45f5;letter-spacing:.04em;text-transform:uppercase; }
.rp-narabox textarea { width:100%;border:1px solid var(--rp-line);border-radius:8px;padding:10px;font-family:inherit;font-size:13px;color:#23203a;resize:vertical;min-height:60px;background:#fff; }
.rp-narabox textarea:focus { outline:none;border-color:#7C5CFF; }
.rp-gen-btn { background:#EEE9FF;color:#6a45f5;border:none;border-radius:7px;padding:5px 10px;font-size:11px;font-weight:700;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:6px; }
.rp-gen-btn:hover { background:#dfd4ff; }
.rp-gen-btn:disabled { opacity:.5;cursor:not-allowed; }
.rp-gen-btn svg { width:13px;height:13px;flex:none; }
.rp-spin { width:11px;height:11px;border:2px solid rgba(106,69,245,.3);border-top-color:#6a45f5;border-radius:50%;animation:rpsp .7s linear infinite;display:inline-block;vertical-align:middle; }

/* v10.3.23 — Kesimpulan Akhir Rapor (versi besar dari .rp-narabox) */
.rp-konklusi { background:#fcfbff;border:1px solid var(--rp-line);border-radius:12px;padding:16px; }
.rp-konklusi-hd { display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;flex-wrap:wrap; }
.rp-konklusi-hd b { font-size:10.5px;color:#6a45f5;letter-spacing:.06em;text-transform:uppercase; }
.rp-konklusi textarea { width:100%;min-height:200px;border:1px solid var(--rp-line);border-radius:10px;padding:14px 16px;font-family:inherit;font-size:14px;line-height:1.65;color:#23203a;resize:vertical;background:#fff;box-sizing:border-box;transition:border-color .15s,box-shadow .15s; }
.rp-konklusi textarea:focus { outline:none;border-color:#7C5CFF;box-shadow:0 0 0 3px rgba(124,92,255,.12); }
.rp-konklusi textarea::placeholder { color:#a09bb8;font-style:italic; }
.rp-konklusi-ft { display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap; }
.rp-konklusi-ft .rp-hint { font-size:11.5px;color:#6B7280;display:inline-flex;align-items:center;gap:6px; }
.rp-konklusi-ft .rp-hint svg { width:13px;height:13px;color:#9b94c7;flex:none; }
.rp-konklusi-ft .rp-counter { font-size:11.5px;color:#7b7795;font-weight:600;font-variant-numeric:tabular-nums; }
.rp-konklusi-ft .rp-counter.warn { color:#E8231A; }

/* v10.3.24 — View mode (read-only) — skor disabled + textarea readonly */
.rp-sb[disabled] { cursor:not-allowed;opacity:.55; }
.rp-sb[disabled]:hover { background:#f4f1ff; } /* tetap soft, no hover effect */
.rp-narabox textarea[readonly],
.rp-konklusi textarea[readonly] {
  background:#f7f6fa;
  color:#5e596f;
  cursor:default;
}
.rp-narabox textarea[readonly]:focus,
.rp-konklusi textarea[readonly]:focus {
  border-color:var(--rp-line);
  box-shadow:none;
}
.rp-readonly-hint {
  display:inline-flex;align-items:center;gap:6px;
  font-size:11.5px;color:#6a45f5;background:#EEE9FF;
  padding:5px 10px;border-radius:7px;font-weight:600;
}
.rp-readonly-hint svg { width:13px;height:13px;flex:none; }
.rp-edit-banner {
  background:#FEF3C7;border:1px solid #FCD34D;border-radius:8px;
  padding:10px 12px;margin-bottom:10px;font-size:12px;color:#92400E;
  display:flex;align-items:center;gap:8px;
}
.rp-edit-banner svg { width:14px;height:14px;flex:none; }
.rp-edit-banner b { font-weight:700; }

/* v10.3.27 — Format Editor (mirror rp-area-card pattern + emoji picker) */
.fr-emoji-btn { background:transparent;border:none;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center; }
.fr-emoji-btn .idx { width:36px;height:36px;border-radius:9px;font-size:18px;display:flex;align-items:center;justify-content:center;transition:transform .12s;color:#fff;font-weight:800; }
.fr-emoji-btn:hover .idx { transform:scale(1.08); }
.fr-emoji-overlay { position:fixed;top:0;left:0;right:0;bottom:0;z-index:999;background:transparent; }
.fr-emoji-popover { position:absolute;z-index:1000;background:#fff;border:1px solid #E5E7EB;border-radius:10px;padding:8px;box-shadow:0 8px 24px rgba(0,0,0,.18);display:grid;grid-template-columns:repeat(8,1fr);gap:2px;max-width:340px; }
.fr-emoji-popover button { width:34px;height:34px;border:none;background:transparent;cursor:pointer;font-size:18px;border-radius:6px;display:flex;align-items:center;justify-content:center;padding:0; }
.fr-emoji-popover button:hover { background:#f0eff5; }
.fr-emoji-popover .fr-emoji-clear { font-size:10px;font-weight:700;color:#E8231A;grid-column:span 8;padding:6px;background:#FEE2E2;border-radius:6px;margin-top:4px; }
.fr-metrik-nama { flex:1;padding:6px 10px;font-size:13.5px;font-weight:700;border:1px solid transparent;background:transparent;border-radius:6px;font-family:inherit;color:#23203a;transition:border-color .12s,background .12s;min-width:0; }
.fr-metrik-nama:hover { background:rgba(255,255,255,.6); }
.fr-metrik-nama:focus { outline:none;border-color:#7C5CFF;background:#fff; }
.fr-ind-row { display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px dashed #f0eff5; }
.fr-ind-row:last-child { border-bottom:none; }
.fr-ind-row .il { width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:11px;background:#EEE9FF;color:#6a45f5;flex-shrink:0; }
.fr-ind-row input[type="text"] { flex:1;padding:6px 10px;font-size:12.5px;border:1px solid #E5E7EB;border-radius:6px;font-family:inherit;min-width:0; }
.fr-ind-row input[type="text"]:focus { outline:none;border-color:#7C5CFF; }
.fr-mini-btn { width:26px;height:26px;border:1px solid #E5E7EB;background:#fff;border-radius:6px;cursor:pointer;font-size:11px;color:#6B7280;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0; }
.fr-mini-btn:hover { background:#f4f1ff;border-color:#7C5CFF;color:#6a45f5; }
.fr-mini-btn.danger:hover { background:#FEE2E2;border-color:#FCA5A5;color:#991B1B; }
.fr-toggle-aktif { font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#6B7280;display:inline-flex;align-items:center;gap:4px;cursor:pointer;user-select:none; }
.fr-toggle-aktif input { margin:0;cursor:pointer; }
.fr-color-swatch { width:28px;height:28px;border:none;cursor:pointer;border-radius:7px;padding:0;background:none; }
.fr-color-swatch::-webkit-color-swatch-wrapper { padding:0; }
.fr-color-swatch::-webkit-color-swatch { border:1px solid rgba(0,0,0,.1);border-radius:7px; }
@keyframes rpsp { to { transform:rotate(360deg); } }
.rp-status { display:inline-block;font-size:10.5px;font-weight:800;padding:3px 8px;border-radius:6px;letter-spacing:.03em;text-transform:uppercase; }
.rp-status.draft { background:#FEF3C7;color:#92400E; }
.rp-status.final { background:#D1FAE5;color:#065F46; }
.rp-bar { display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px; }
.rp-bar select, .rp-bar input { border:1.5px solid var(--rp-line);border-radius:10px;padding:9px 11px;font-family:inherit;font-weight:600;font-size:13px;background:#fff; }
.rp-siswa-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-bottom:14px; }
.rp-siswa-card { background:#fff;border:1.5px solid var(--rp-line);border-radius:12px;padding:14px;cursor:pointer;transition:.15s; }
.rp-siswa-card:hover { border-color:#7C5CFF;transform:translateY(-2px); }
.rp-siswa-card .top { display:flex;align-items:center;gap:10px;margin-bottom:10px; }
.rp-siswa-card .av { width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,#7C5CFF,#14b3c4);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px; }
.rp-siswa-card .nm { font-weight:700;font-size:13.5px;color:#23203a; }
.rp-siswa-card .kl { font-size:11px;color:#7b7795;margin-top:1px; }
.rp-siswa-card .prog { height:6px;background:var(--rp-line);border-radius:99px;overflow:hidden;margin:8px 0; }
.rp-siswa-card .prog i { display:block;height:100%;background:linear-gradient(90deg,#7C5CFF,#14b3c4); }
.rp-siswa-card .meta { display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#7b7795;margin-top:6px; }

/* ════════════════════════════════════════════════════════════════════
   PRINT — CLEAN minimalist match Contoh Rapo.pdf
   Semua class print di-prefix dengan rp-p- (print) untuk hindari
   konflik dengan class input panel (.rp-summary, .rp-ind, .rp-area).
   ══════════════════════════════════════════════════════════════════ */
#wkRpPrint { display:none; }

@media print {
  /* v10.3.13 — margin 0 + page wrappers fixed A4 untuk konsisten preview/cetak */
  @page { size:A4 portrait; margin:0; }
  html, body { margin:0; padding:0; background:#fff; }
  body > *:not(#wkRpPrint) { display:none !important; }
  #wkRpPrint { display:block !important; box-shadow:none !important; padding:0 !important; max-width:none !important; width:210mm !important; }
  /* Cover (Area 1) */
  #wkRpPrint .rp-p-cover { width:210mm !important; height:297mm !important; min-height:297mm !important; padding:18mm 0 16mm !important; box-sizing:border-box !important; page-break-after:always !important; page-break-inside:avoid !important; overflow:hidden !important; }
  /* Page wrappers (Area 2, 3, 4) */
  #wkRpPrint .rp-p-page { width:210mm !important; height:297mm !important; padding:18mm 14mm 16mm !important; box-sizing:border-box !important; page-break-after:always !important; page-break-inside:avoid !important; overflow:hidden !important; position:relative !important; background:#fff !important; }
  /* Halaman terakhir (Area 4) — TTD anchored bottom */
  #wkRpPrint .rp-p-page-final { padding-bottom:50mm !important; }
  #wkRpPrint .rp-p-page-final .rp-p-sign { position:absolute !important; left:14mm !important; right:14mm !important; bottom:18mm !important; }
  /* Internal sections inside page wrappers — no own page-break (parent handle it) */
  #wkRpPrint .rp-p-area { page-break-inside:avoid; }
  #wkRpPrint .rp-p-section { page-break-inside:avoid; }
}

#wkRpPrint, #wkRpPrint * {
  font-family:'Plus Jakarta Sans','Helvetica Neue',Arial,sans-serif;
  color:#23203a; box-sizing:border-box;
  -webkit-print-color-adjust:exact; print-color-adjust:exact; color-adjust:exact;
}

#wkRpPrint .rp-p-doc { background:#fff; }

/* ─── Header isi (page 2+) — v10.3.11: logo img + Roca Two font ─── */
#wkRpPrint .rp-p-header { text-align:center; margin-bottom:14mm; padding-top:14mm; }
#wkRpPrint .rp-p-brand-img {
  display:inline-block; height:24mm; width:auto; max-width:80mm;
  margin:0 auto 4mm;
}
/* Fallback text wordmark — hidden by default, shown via onerror */
#wkRpPrint .rp-p-brand {
  font-family:'Fredoka','Plus Jakarta Sans',sans-serif;
  font-size:30px; font-weight:700; letter-spacing:-.4px;
  color:#23203a; line-height:1;
}
#wkRpPrint .rp-p-brand span { color:#E8231A; }
#wkRpPrint .rp-p-title {
  font-family:'Roca Two','DM Serif Display',serif;
  font-size:32px; font-weight:400;
  color:#23203a; margin-top:6mm; letter-spacing:.01em; line-height:1.1;
}
#wkRpPrint .rp-p-period {
  font-size:13.5px; color:#888; margin-top:2.5mm; font-weight:500;
}
#wkRpPrint .rp-p-name {
  font-family:'Roca Two','DM Serif Display',serif;
  font-size:26px; font-weight:400;
  color:#E8231A; margin-top:8mm; letter-spacing:.01em; line-height:1.1;
}
#wkRpPrint .rp-p-class {
  font-size:13.5px; color:#888; margin-top:2.5mm; font-weight:500;
}

/* ─── Section title with red underline ──────────────────────────── */
#wkRpPrint .rp-p-section { margin-bottom:8mm; }
#wkRpPrint .rp-p-section-title {
  color:#E8231A; font-size:16px; font-weight:800;
  border-bottom:1.5px solid #E8231A;
  padding-bottom:2mm; margin:0 0 5mm;
  letter-spacing:-.2px;
}

/* ─── Biodata 2-col grid ────────────────────────────────────────── */
#wkRpPrint .rp-p-bio-grid {
  display:grid; grid-template-columns:1fr 1fr; gap:0 14mm;
}
#wkRpPrint .rp-p-bio-item {
  display:flex; justify-content:space-between; align-items:baseline;
  padding:2.2mm 0; border-bottom:1px dashed #DDDDDD;
  font-size:12px; gap:6mm;
}
#wkRpPrint .rp-p-lbl { color:#555; font-weight:500; flex-shrink:0; }
#wkRpPrint .rp-p-val { font-weight:700; color:#23203a; text-align:right; }

/* ─── Attendance 5 inline stats ─────────────────────────────────── */
#wkRpPrint .rp-p-att-row {
  display:flex; justify-content:space-around; align-items:flex-start;
  padding:3mm 0 4mm;
}
#wkRpPrint .rp-p-att-item { text-align:center; flex:1; }
#wkRpPrint .rp-p-att-n {
  font-family:'Fredoka','Plus Jakarta Sans',sans-serif;
  font-size:32px; font-weight:700; color:#E8231A; line-height:1;
}
#wkRpPrint .rp-p-att-l {
  font-size:11px; color:#666; margin-top:2.5mm; font-weight:500;
}

/* ─── Area cards (10) — bordered, clean ─────────────────────────── */
/* v10.3.61 — Jarak dirapatkan supaya 3 pilar muat sehalaman.
   Terukur sebelum dipangkas: satu blok 411px + 19px jarak = 430px, sehingga 3
   blok butuh ~1239px padahal area cetak A4 cuma 994px. Yang dipangkas HANYA
   ruang kosong (padding, margin, jarak baris) — ukuran & ketebalan huruf tidak
   disentuh, supaya rapatnya tidak sampai mengurangi keterbacaan. */
#wkRpPrint .rp-p-area {
  border:1px solid #E5E5E5; border-radius:10px;
  padding:3mm 6mm 3mm; margin-bottom:3.5mm;
}
#wkRpPrint .rp-p-area-head {
  display:flex; justify-content:space-between; align-items:center;
  padding-bottom:2mm;
  border-bottom:1px solid #F0F0F0;
  margin-bottom:0.5mm;
}
#wkRpPrint .rp-p-area-name {
  font-size:14px; font-weight:700; color:#23203a;
}
#wkRpPrint .rp-p-area-score {
  font-size:12.5px; color:#23203a; font-weight:500;
}
#wkRpPrint .rp-p-area-score b { font-weight:800; }
#wkRpPrint .rp-p-area-list { padding-top:0.5mm; }
#wkRpPrint .rp-p-ind {
  display:flex; justify-content:space-between; align-items:center;
  /* v10.3.61: 1.8mm → 1.15mm. Enam baris indikator memakan 190px — bagian
     paling gemuk dalam satu blok, dan hampir separuhnya cuma ruang kosong. */
  padding:1.15mm 0;
  font-size:12px;
}
#wkRpPrint .rp-p-ind-name { color:#23203a; flex:1; padding-right:8mm; font-weight:500; }

/* ─── Grade colors (O/E/S/N) — N juga hijau (encouraging) ────────── */
#wkRpPrint .rp-p-grade {
  font-weight:800; font-size:14px;
  min-width:16px; display:inline-block; text-align:center;
}
/* v10.3.31 — output rapor: nilai O/E/S/N hitam (clear, no warna) */
#wkRpPrint .rp-p-g-O,
#wkRpPrint .rp-p-g-E,
#wkRpPrint .rp-p-g-S,
#wkRpPrint .rp-p-g-N { color:#000; }
#wkRpPrint .rp-p-g-empty { color:#BBB; }
/* Header area-score (besar) — grade letter standalone, no number */
#wkRpPrint .rp-p-area-head .rp-p-grade { font-size:18px; }

/* ─── Area catatan guru — italic, soft ──────────────────────────── */
#wkRpPrint .rp-p-area-note {
  /* v10.3.61: jarak & tinggi baris dirapatkan; UKURAN HURUF tetap 11.5px —
     narasi ini yang paling sering dibaca ortu, jadi jangan dikecilkan. */
  margin-top:2mm; padding:1.6mm 0 0;
  font-size:11.5px; line-height:1.5;
  color:#7b7b7b; font-style:italic;
  border-top:1px dashed #F0F0F0;
}

/* ─── Kesimpulan ────────────────────────────────────────────────── */
#wkRpPrint .rp-p-conclusion {
  font-size:12px; line-height:1.7;
  color:#23203a; padding:1mm 0;
  white-space:pre-wrap;
  font-weight:500;
}

/* ─── Signature ─────────────────────────────────────────────────── */
#wkRpPrint .rp-p-sign {
  display:grid; grid-template-columns:1fr 1fr;
  gap:14mm; text-align:center;
  margin-top:14mm; padding:2mm 0;
}
#wkRpPrint .rp-p-sign-label {
  font-size:13px; color:#555; font-weight:500;
}
#wkRpPrint .rp-p-sign-line {
  margin-top:18mm; font-size:13px; color:#555; letter-spacing:1px;
}

/* ═══════════════════════════════════════════════════════════════════
   v9.53.6 (2026-06-11) — COVER PAGE RAPOR (DKV senior level)
   FIT-TO-A4: tinggi penuh halaman A4, content distributed via justify-between
   ═══════════════════════════════════════════════════════════════════ */
#wkRpPrint .rp-p-cover {
  /* A4 = 210×297mm. Tinggi penuh dikurangi padding parent #wkRpPrint (18mm top/bottom = 36mm).
     Effective tinggi = 297mm - 36mm = 261mm. Pakai 260mm aman untuk preview. */
  height:260mm; min-height:260mm;
  box-sizing:border-box;
  display:flex; flex-direction:column;
  justify-content:space-between; /* brand top, identity middle, seal bottom */
  text-align:center;
  padding:8mm 14mm 4mm;
  page-break-after:always;
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 0% 0%, rgba(232,35,26,.05), transparent 35%),
    radial-gradient(circle at 100% 100%, rgba(35,32,58,.05), transparent 35%);
}
/* TOP cluster: brand + ornament + title */
#wkRpPrint .rp-p-cv-top { flex:0 0 auto; }
#wkRpPrint .rp-p-cv-brand-img {
  display:block;
  margin:0 auto 4mm;
  width:36mm; height:auto;
}
#wkRpPrint .rp-p-cv-brand {
  font-family:'Fredoka',sans-serif; font-weight:700;
  font-size:30px; letter-spacing:-.6px; line-height:1; color:#E8231A;
}
#wkRpPrint .rp-p-cv-brand span { color:#23203a; font-weight:600; }
#wkRpPrint .rp-p-cv-tagline {
  margin-top:2.5mm; font-size:10px; letter-spacing:.4em;
  text-transform:uppercase; color:#8b8794; font-weight:600;
}
#wkRpPrint .rp-p-cv-line {
  margin:6mm auto 0; width:34mm; height:1.5px;
  background:linear-gradient(90deg, transparent, #E8231A 50%, transparent);
  position:relative;
}
#wkRpPrint .rp-p-cv-line::before,
#wkRpPrint .rp-p-cv-line::after {
  content:''; position:absolute; top:50%; transform:translateY(-50%);
  width:3mm; height:3mm; border-radius:50%; background:#E8231A;
}
#wkRpPrint .rp-p-cv-line::before { left:-2mm; }
#wkRpPrint .rp-p-cv-line::after  { right:-2mm; }
#wkRpPrint .rp-p-cv-titlewrap { margin-top:6mm; }
#wkRpPrint .rp-p-cv-kicker {
  font-size:10px; letter-spacing:.4em; text-transform:uppercase;
  color:#8b8794; font-weight:700;
}
#wkRpPrint .rp-p-cv-title {
  margin-top:3mm;
  font-family:'Fredoka',sans-serif; font-weight:700;
  font-size:30px; letter-spacing:.06em; color:#23203a;
  line-height:1.05;
}
#wkRpPrint .rp-p-cv-period {
  margin-top:4mm; display:inline-block;
  font-size:11.5px; color:#E8231A; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase;
  padding:2.2mm 7mm;
  border:1px solid rgba(232,35,26,.4);
  border-radius:999px; background:#FFF7F6;
}
/* MIDDLE — photo + identity */
#wkRpPrint .rp-p-cv-id {
  flex:1 1 auto; display:flex; flex-direction:column;
  align-items:center; justify-content:center; margin:0 auto;
  min-height:0;
}
#wkRpPrint .rp-p-cv-photo-frame {
  width:55mm; height:55mm; border-radius:50%;
  background:#f5f3f0; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  border:3px solid #E8231A;
  box-shadow:
    0 0 0 2mm #fff,
    0 0 0 3mm rgba(232,35,26,.22),
    0 6mm 14mm -6mm rgba(35,32,58,.25);
  margin-bottom:6mm;
}
#wkRpPrint .rp-p-cv-img {
  width:100%; height:100%; object-fit:cover; display:block;
}
#wkRpPrint .rp-p-cv-img-fallback {
  width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
  font-family:'Fredoka',sans-serif; font-weight:700;
  font-size:52px; color:#b4afba; background:#f5f3f0;
}
#wkRpPrint .rp-p-cv-name {
  font-family:'Fredoka',sans-serif; font-weight:700;
  font-size:24px; color:#23203a; letter-spacing:.01em;
  line-height:1.15;
}
#wkRpPrint .rp-p-cv-sub {
  margin-top:2.5mm; font-size:12.5px; color:#666;
  letter-spacing:.05em; font-weight:600;
}
/* BOTTOM seal */
#wkRpPrint .rp-p-cv-bottom { flex:0 0 auto; padding-top:4mm; }
#wkRpPrint .rp-p-cv-seal {
  display:inline-block;
  font-size:9.5px; letter-spacing:.5em;
  color:#8b8794; font-weight:700;
  text-transform:uppercase;
  padding:3.5mm 9mm;
  border:1.2px solid #d7d4dc;
  border-radius:999px; background:#fff;
}
@media print {
  #wkRpPrint .rp-p-cover {
    height:297mm; min-height:297mm;
    padding:18mm 18mm 14mm;
  }
  #wkRpPrint .rp-p-cv-photo-frame {
    box-shadow:0 0 0 2mm #fff, 0 0 0 3mm rgba(232,35,26,.22);
  }
}

/* ═══════════════════════════════════════════════════════════════════
   v9.53 (2026-06-11) — COVER PAGE RAPOR (DKV senior level)
   Layout: brand top → ornament line → title block → photo + identity → footer seal
   Foto siswa dari agg.bio.foto. Fallback inisial bulat.
   ═══════════════════════════════════════════════════════════════════ */
#wkRpPrint .rp-p-cover {
  min-height:255mm;
  display:flex; flex-direction:column;
  text-align:center;
  padding:14mm 14mm 12mm;
  page-break-after:always;
  position:relative;
  background:
    radial-gradient(circle at 0% 0%, rgba(232,35,26,.05), transparent 35%),
    radial-gradient(circle at 100% 100%, rgba(35,32,58,.05), transparent 35%);
}
/* Brand top */
#wkRpPrint .rp-p-cv-top { margin-top:4mm; }
#wkRpPrint .rp-p-cv-brand {
  font-family:'Fredoka',sans-serif; font-weight:700;
  font-size:32px; letter-spacing:-.6px; line-height:1; color:#E8231A;
}
#wkRpPrint .rp-p-cv-brand span { color:#23203a; font-weight:600; }
#wkRpPrint .rp-p-cv-tagline {
  margin-top:3mm; font-size:10.5px; letter-spacing:.4em;
  text-transform:uppercase; color:#8b8794; font-weight:600;
}
/* Ornament line */
#wkRpPrint .rp-p-cv-line {
  margin:9mm auto 0; width:38mm; height:1.8px;
  background:linear-gradient(90deg, transparent, #E8231A 50%, transparent);
  position:relative;
}
#wkRpPrint .rp-p-cv-line::before,
#wkRpPrint .rp-p-cv-line::after {
  content:''; position:absolute; top:50%; transform:translateY(-50%);
  width:3mm; height:3mm; border-radius:50%; background:#E8231A;
}
#wkRpPrint .rp-p-cv-line::before { left:-2mm; }
#wkRpPrint .rp-p-cv-line::after  { right:-2mm; }
/* Title block */
#wkRpPrint .rp-p-cv-titlewrap { margin-top:9mm; }
#wkRpPrint .rp-p-cv-kicker {
  font-size:10.5px; letter-spacing:.4em; text-transform:uppercase;
  color:#8b8794; font-weight:700;
}
#wkRpPrint .rp-p-cv-title {
  margin-top:3.5mm;
  font-family:'Fredoka',sans-serif; font-weight:700;
  font-size:36px; letter-spacing:.06em; color:#23203a;
  line-height:1.05;
}
#wkRpPrint .rp-p-cv-period {
  margin-top:5mm;
  display:inline-block;
  font-size:12.5px; color:#E8231A; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase;
  padding:2.5mm 8mm;
  border:1px solid rgba(232,35,26,.4);
  border-radius:999px;
  background:#FFF7F6;
}
/* Identity block */
#wkRpPrint .rp-p-cv-id {
  flex:1 1 auto; display:flex; flex-direction:column; align-items:center; justify-content:center;
  margin:0 auto;
}
#wkRpPrint .rp-p-cv-photo-frame {
  width:64mm; height:64mm; border-radius:50%;
  background:#f5f3f0; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  border:3px solid #E8231A;
  box-shadow:
    0 0 0 2mm #fff,
    0 0 0 3mm rgba(232,35,26,.22),
    0 8mm 16mm -6mm rgba(35,32,58,.28);
  margin-bottom:9mm;
}
#wkRpPrint .rp-p-cv-img {
  width:100%; height:100%; object-fit:cover; display:block;
}
#wkRpPrint .rp-p-cv-img-fallback {
  width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
  font-family:'Fredoka',sans-serif; font-weight:700;
  font-size:52px; color:#b4afba; background:#f5f3f0;
}
#wkRpPrint .rp-p-cv-name {
  font-family:'Fredoka',sans-serif; font-weight:700;
  font-size:28px; color:#23203a; letter-spacing:.01em;
  line-height:1.15;
}
#wkRpPrint .rp-p-cv-sub {
  margin-top:3mm;
  font-size:13.5px; color:#666; letter-spacing:.05em; font-weight:600;
}
/* Bottom seal */
#wkRpPrint .rp-p-cv-bottom {
  margin-top:auto; padding-top:10mm;
}
#wkRpPrint .rp-p-cv-seal {
  display:inline-block;
  font-size:9.5px; letter-spacing:.5em;
  color:#8b8794; font-weight:700;
  text-transform:uppercase;
  padding:3.5mm 9mm;
  border:1.2px solid #d7d4dc;
  border-radius:999px;
  background:#fff;
}
/* Print media tweaks */
@media print {
  #wkRpPrint .rp-p-cover {
    height:297mm; min-height:297mm;
    padding:18mm 18mm 14mm;
  }
  #wkRpPrint .rp-p-cv-photo-frame {
    box-shadow:0 0 0 2mm #fff, 0 0 0 3mm rgba(232,35,26,.22);
  }
}

/* ═══════════════════════════════════════════════════════════════════
   v9.53 (2026-06-11) — COVER PAGE RAPOR (DKV senior level)
   Layout: brand top → ornament line → title → photo+identity → footer seal
   Foto siswa dari agg.bio.foto. Fallback inisial.
   ═══════════════════════════════════════════════════════════════════ */
#wkRpPrint .rp-p-cover {
  min-height:255mm;
  display:flex; flex-direction:column;
  text-align:center;
  padding:14mm 14mm 12mm;
  page-break-after:always;
  position:relative;
  background:
    linear-gradient(180deg, rgba(232,35,26,.025), transparent 50%, rgba(35,32,58,.04));
}
/* Brand top */
#wkRpPrint .rp-p-cv-top { margin-top:4mm; }
#wkRpPrint .rp-p-cv-brand {
  font-family:'Fredoka',sans-serif; font-weight:700;
  font-size:30px; letter-spacing:-.6px; line-height:1; color:#E8231A;
}
#wkRpPrint .rp-p-cv-brand span { color:#23203a; font-weight:600; }
#wkRpPrint .rp-p-cv-tagline {
  margin-top:3mm; font-size:10.5px; letter-spacing:.35em;
  text-transform:uppercase; color:#8b8794; font-weight:600;
}
/* Ornament line */
#wkRpPrint .rp-p-cv-line {
  margin:9mm auto 0; width:35mm; height:1.5px;
  background:linear-gradient(90deg, transparent, #E8231A 50%, transparent);
}
/* Title block */
#wkRpPrint .rp-p-cv-titlewrap { margin-top:8mm; }
#wkRpPrint .rp-p-cv-kicker {
  font-size:10.5px; letter-spacing:.4em; text-transform:uppercase;
  color:#8b8794; font-weight:700;
}
#wkRpPrint .rp-p-cv-title {
  margin-top:3.5mm;
  font-family:'Roca Two','DM Serif Display',serif; font-weight:400;
  font-size:36px; letter-spacing:.04em; color:#23203a;
  line-height:1.05;
}
#wkRpPrint .rp-p-cv-period {
  margin-top:5mm;
  font-size:13px; color:#555; font-weight:600; letter-spacing:.05em;
}
/* v10.3.63 — Baris kedua sampul: "Tahun Ajaran 2026 / 2027".
   display:block membuatnya turun baris tanpa <br>, sehingga teksnya tetap
   satu untaian yang bisa di-escape utuh (tak ada HTML yang diselipkan). */
#wkRpPrint .rp-p-cv-period-ta {
  display:block; margin-top:1.5mm;
  font-size:11.5px; font-weight:500; letter-spacing:.06em; color:#777;
}
/* Identity block */
#wkRpPrint .rp-p-cv-id {
  flex:1 1 auto; display:flex; flex-direction:column; align-items:center; justify-content:center;
  margin:0 auto;
}
#wkRpPrint .rp-p-cv-photo-frame {
  width:62mm; height:62mm; border-radius:50%;
  background:#f5f3f0; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  border:2.5px solid #E8231A;
  box-shadow:
    0 0 0 1.5mm #fff,
    0 0 0 2.5mm rgba(232,35,26,.18),
    0 6mm 12mm -6mm rgba(35,32,58,.25);
  margin-bottom:9mm;
}
#wkRpPrint .rp-p-cv-img {
  width:100%; height:100%; object-fit:cover; display:block;
}
/* v10.3.62 — DIHAPUS: potongan selektor menggantung `#wkRpPrint .r` tanpa
   kurung kurawal. Karena tak pernah ditutup, ia menelan komentar di bawahnya
   lalu menyatu dengan selektor berikutnya menjadi
   `#wkRpPrint .r #wkRpPrint .rp-p-page` — selektor yang MUSTAHIL cocok (butuh
   leluhur `.r` yang di dalamnya ada `#wkRpPrint` lagi). Akibatnya kotak A4 di
   bawah ini MATI di layar selama ini; halaman rapor hanya berbentuk A4 saat
   dicetak, lewat salinan terpisah di dalam @media print.
   Itu pula yang membuat penyusun halaman salah ukur: saat mengukur di luar
   layar, tiap `.rp-p-page` mengempis setinggi isinya (terukur 208px, padding 0)
   sehingga blok apa pun dianggap tidak muat → 1 pilar per halaman. */

/* ═══════════════════════════════════════════════════════════════════
   v10.3.13 — Page wrappers fixed A4 + Page 2 clean header + Kesimpulan quote
   ═══════════════════════════════════════════════════════════════════ */
#wkRpPrint .rp-p-page {
  width:210mm; min-height:297mm; height:297mm;
  padding:18mm 14mm 16mm; box-sizing:border-box;
  position:relative; background:#fff;
  page-break-after:always; page-break-inside:avoid; overflow:hidden;
  display:block;
}
#wkRpPrint .rp-p-page-area2 { /* Halaman 2: header + biodata + rekap */ }
#wkRpPrint .rp-p-page-pilar { /* Halaman 3-5: 3 pilar per halaman */ }
#wkRpPrint .rp-p-page-final {
  padding-bottom:50mm; /* space untuk TTD bottom-fixed */
}
#wkRpPrint .rp-p-page-final .rp-p-sign {
  position:absolute; left:14mm; right:14mm; bottom:18mm;
  margin-top:0;
}

/* Page 2 — Header clean (logo + title) */
#wkRpPrint .rp-p-header2-clean {
  text-align:center; padding:2mm 0 8mm;
  border-bottom:1px solid #E0DCC9;
  margin-bottom:10mm;
}
#wkRpPrint .rp-p-rapor-logo {
  display:inline-block; height:28mm; width:auto; max-width:100mm;
  margin:0 auto 4mm;
}
#wkRpPrint .rp-p-rapor-title {
  font-family:'Roca Two','DM Serif Display',serif;
  font-weight:400; font-size:32px; color:#23203a;
  letter-spacing:.02em; line-height:1.1;
}
/* v10.3.63 — Baris kedua judul halaman 2: "Tahun Ajaran 2026 / 2027".
   Sengaja jauh lebih kecil & tidak serif — ia keterangan, bukan judul kedua.
   display:block membuatnya turun baris tanpa perlu menyelipkan <br> ke teks
   yang di-escape. */
#wkRpPrint .rp-p-rapor-title-ta {
  display:block; margin-top:2mm;
  font-family:'Plus Jakarta Sans','Helvetica Neue',Arial,sans-serif;
  font-size:13px; font-weight:600; letter-spacing:.06em; color:#6b6b6b;
}

/* v10.3.32 — Kesimpulan Guru: CLEAN hitam-putih (override v10.3.31 missed di stylesheet) */
#wkRpPrint .rp-p-conclusion-wrap {
  background:#fff;
  border-top:1px solid #000;
  border-bottom:1px solid #000;
  border-left:none;
  padding:7mm 0 6mm; margin:6mm 0 4mm;
  position:relative;
}
#wkRpPrint .rp-p-conclusion-wrap::before { content:none; }
#wkRpPrint .rp-p-conclusion-label {
  font-size:11px; font-weight:800; letter-spacing:.5em;
  text-transform:uppercase; color:#000;
  margin-bottom:5mm; position:relative;
}
#wkRpPrint .rp-p-conclusion-text {
  font-size:13.5px; line-height:1.65;
  color:#000; font-style:italic;
  margin:0 0 7mm;
}
#wkRpPrint .rp-p-conclusion-author {
  text-align:right;
  font-size:12.5px; font-weight:700;
  color:#000; font-style:normal;
}
#wkRpPrint .rp-p-conclusion-author small {
  display:block; font-weight:500; font-size:10.5px;
  color:#444; margin-top:1mm;
}

/* v10.3.34 — Assessment Legend (Halaman 2, bottom-anchored 25mm) */
/* Konsisten antara Output 1 (rapor baru) & Output 2 (PDF overlay untuk rapor lama) */
#wkRpPrint .rp-p-page-area2 {
  position: relative;
  padding-bottom: 95mm !important; /* reserve space supaya att tidak overflow ke legend */
}
#wkRpPrint .rp-p-legend-wrap {
  position: absolute;
  left: 14mm; right: 14mm;
  bottom: 25mm;
}
#wkRpPrint .rp-p-legend-title {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #000;
  margin-bottom: 3mm;
  border-bottom: 1px solid #000;
  padding-bottom: 1.5mm;
}
#wkRpPrint .rp-p-legend-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 10.5px;
  color: #000;
  table-layout: fixed;
}
#wkRpPrint .rp-p-legend-table td {
  border: 1px solid #000;
  padding: 2mm 3mm;
  vertical-align: middle;
}
#wkRpPrint .rp-p-legend-grade {
  width: 18mm;
  text-align: center;
  font-size: 22px;
  font-weight: 900;
  background: #fff;
  font-family: 'DM Serif Display', 'Roca Two', serif;
  line-height: 1;
}
#wkRpPrint .rp-p-legend-desc {
  line-height: 1.45;
  background: #fff;
}
#wkRpPrint .rp-p-legend-desc b {
  font-weight: 800;
  font-size: 11px;
}

/* ═══════════════════════════════════════════════════════════════════
   v10.3.14 — Konsistensi semua entitas Preview (A, A2, B, Ortu)
   Non-print: setiap sheet (cover/page) muncul sebagai lembar terpisah
   dengan box-shadow + gap 14px. Memudahkan visualisasi page-break.
   Print: strip semua margin/shadow → strict A4 fixed per page-break.
   ═══════════════════════════════════════════════════════════════════ */
#wkRpPrint > .rp-p-cover,
#wkRpPrint > .rp-p-page {
  margin: 0 auto 14px;
  background: #fff;
  box-shadow: 0 8px 32px rgba(0,0,0,.16);
}
@media print {
  #wkRpPrint > .rp-p-cover,
  #wkRpPrint > .rp-p-page {
    margin: 0 !important;
    box-shadow: none !important;
  }
}
