/* Aplikasi Nilai Pramuka v15 - semester footer mengikuti data nilai_pramuka */
:root{--bg:#eef6ff;--card:#fff;--text:#102033;--muted:#64748b;--primary:#0ea5e9;--primary2:#2563eb;--danger:#ef4444;--line:#dbeafe;--shadow:0 18px 45px rgba(37,99,235,.14)}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:linear-gradient(135deg,#e0f2fe,#f8fafc 45%,#eff6ff);color:var(--text)}
.topbar{position:sticky;top:0;z-index:5;background:rgba(255,255,255,.88);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);padding:14px 28px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{display:flex;align-items:center;gap:12px}.logo{width:48px;height:48px;border-radius:16px;background:linear-gradient(135deg,var(--primary),var(--primary2));display:grid;place-items:center;color:#fff;font-weight:900;box-shadow:var(--shadow)}h1{font-size:18px;margin:0}p{color:var(--muted)}.brand p{margin:2px 0 0;font-size:13px}nav{display:flex;gap:9px;flex-wrap:wrap}nav a,.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 14px;text-decoration:none;color:var(--text);font-weight:700;cursor:pointer;white-space:nowrap}.btn.primary{background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff;border:0}.btn.light{background:#e0f2fe;color:#075985}.btn.small{padding:7px 10px;font-size:12px}.btn.danger{color:#fff;background:var(--danger);border:0}.container{max-width:1240px;margin:auto;padding:28px}.hero{display:flex;justify-content:space-between;gap:18px;align-items:center;border-radius:28px;background:linear-gradient(135deg,#075985,#2563eb);padding:34px;color:#fff;box-shadow:var(--shadow)}.hero h2{font-size:32px;margin:8px 0}.hero p{color:#e0f2fe}.hero-actions{display:flex;gap:10px;flex-wrap:wrap}.badge,.pill{display:inline-block;background:#e0f2fe;color:#075985;border-radius:999px;padding:7px 12px;font-weight:800;font-size:12px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:20px 0}.grid.two{grid-template-columns:repeat(2,1fr)}.card{background:rgba(255,255,255,.95);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:24px;padding:22px;margin-bottom:20px}.stat span{display:block;color:var(--muted)}.stat strong{font-size:38px;color:#075985}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.form-grid.wide{grid-template-columns:repeat(4,1fr)}label{font-weight:800;color:#334155}input,select,textarea{width:100%;margin-top:7px;border:1px solid #cbd5e1;border-radius:12px;padding:12px 13px;font:inherit;background:#fff}small{display:block;color:var(--muted);font-size:11px;margin-top:5px}.full{grid-column:1/-1}.alert,.info-box{padding:13px 15px;border-radius:14px;background:#ecfeff;border:1px solid #bae6fd;color:#075985;margin-bottom:12px}.danger-soft{background:#fef2f2;border-color:#fecaca;color:#991b1b}.toolbar,.form-inline{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.form-inline{justify-content:flex-start}.form-inline select,.form-inline input{width:auto;min-width:150px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;background:#fff;border-radius:16px;overflow:hidden}th{background:#0f172a;color:#fff;text-align:left}th,td{border-bottom:1px solid #e2e8f0;padding:11px;vertical-align:top}tr:hover td{background:#f8fafc}.checklist-panel{background:#f8fafc;border:1px solid #dbeafe;border-radius:18px;padding:16px}.checklist-head{display:flex;align-items:center;gap:10px;justify-content:space-between;flex-wrap:wrap;margin-bottom:12px}.checklist-head p{margin:4px 0 0;font-weight:500}.checklist-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.check-item{display:flex;align-items:flex-start;gap:9px;background:#fff;border:1px solid #e2e8f0;border-radius:13px;padding:10px;font-weight:700;line-height:1.35}.check-item input{width:auto;margin:2px 0 0;transform:scale(1.15)}.check-item span{display:block}.print-now{background:#fff7ed;border-color:#fdba74;color:#9a3412}
.footer{text-align:center;color:var(--muted);padding:28px}.step-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.step-grid>div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:18px;padding:16px}.rapor-stack{display:block}.rapor-page{position:relative;background:#fff;width:210mm;min-height:297mm;margin:0 auto 20px;padding:14mm 15mm;border:1px solid #d7d7d7;box-shadow:0 12px 32px rgba(15,23,42,.12);overflow:hidden;color:#111;font-family:"Times New Roman",serif}.rapor-page p{color:#111}.rapor-header{display:grid;grid-template-columns:28mm 1fr 28mm;gap:10px;align-items:center;border-bottom:4px double #111;padding-bottom:8px}.rapor-logo-box{height:26mm;border:1px solid #999;display:flex;align-items:center;justify-content:center;text-align:center;font-family:Arial,sans-serif;font-size:11px}.rapor-logo-box img{max-width:100%;max-height:100%;object-fit:contain}.pramuka-mark{font-size:42px;color:#6b4e16;border:0}.rapor-kop{text-align:center}.rapor-kop h1,.rapor-kop h2,.rapor-kop h3{margin:1px 0;text-transform:uppercase}.rapor-kop h2{font-size:18px}.rapor-kop h3{font-size:15px}.rapor-kop h1{font-size:20px}.rapor-kop p{font-size:12px;margin:1px 0}.rapor-title{text-align:center;margin:16px 0 12px;font-size:16px;font-weight:900;text-decoration:underline}.identity-table,.nilai-rapor{font-size:13.5px;margin-bottom:12px}.identity-table td{border:0;padding:4px 8px}.identity-table td:nth-child(1),.identity-table td:nth-child(3){width:24%;font-weight:bold}.nilai-rapor th{background:#e5e7eb;color:#111;border:1px solid #111;text-align:center}.nilai-rapor td{border:1px solid #111;padding:7px}.nilai-rapor td:nth-child(1),.nilai-rapor td:nth-child(3),.nilai-rapor td:nth-child(4){text-align:center}.total-row td{font-weight:bold;background:#f3f4f6}.deskripsi-box{border:1px solid #111;min-height:28mm;padding:9px;margin:10px 0;font-size:13.5px;line-height:1.35}.ttd-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px;text-align:center;font-size:13px}.ttd-grid.single{grid-template-columns:1fr;width:33%;margin-left:auto;margin-right:auto;margin-top:8px}.ttd-box p{margin:0 0 8px}.space-sign{height:24mm}.small-space{height:14mm}.position-relative{position:relative}.cap-placeholder{position:absolute;left:50%;top:28px;transform:translateX(-50%) rotate(-8deg);width:30mm;height:30mm;border:3px double #1d4ed8;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#1d4ed8;font-weight:bold;opacity:.55;font-family:Arial,sans-serif;font-size:10px}.cap-img{position:absolute;left:50%;top:26px;transform:translateX(-50%) rotate(-8deg);width:34mm;height:34mm;object-fit:contain;opacity:.72}.watermark-img{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:125mm;height:125mm;object-fit:contain;opacity:.085;z-index:0}.watermark-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:310px;color:#6b4e16;opacity:.06;z-index:0}.rapor-page>*:not(.watermark-img):not(.watermark-text){position:relative;z-index:1}
@media(max-width:900px){.topbar,.hero{align-items:flex-start;flex-direction:column}.grid,.grid.two,.form-grid,.form-grid.wide,.step-grid,.checklist-grid{grid-template-columns:1fr}.container{padding:14px}nav a{flex:1}.hero h2{font-size:24px}.form-inline select,.form-inline input{width:100%}.rapor-page{width:100%;min-height:auto;padding:18px}.rapor-header{grid-template-columns:1fr}.ttd-grid,.ttd-grid.single{grid-template-columns:1fr;width:100%}}
@page{size:A4;margin:10mm}@media print{.topbar,.footer,.no-print,.btn{display:none!important}body{background:#fff}.container{max-width:100%;padding:0}.card{box-shadow:none;border:0;border-radius:0}.print-area table{font-size:11px}th{background:#111!important;color:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.rapor-page{box-shadow:none;border:0;margin:0;page-break-after:always;width:190mm;min-height:277mm;padding:0}.rapor-stack{margin:0}.rapor-page:last-child{page-break-after:auto}.watermark-img{opacity:.085;width:125mm;height:125mm}.cap-placeholder,.cap-img{-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* ===== Rapor Pramuka V4: layout print 1 halaman, kop kiri-kanan, admin-editable ===== */
.rapor-page{width:210mm;min-height:auto;height:292mm;padding:9mm 10mm 8mm;margin:0 auto 18px;border:1px solid #d1d5db;box-shadow:0 12px 32px rgba(15,23,42,.12);font-family:"Times New Roman",serif;line-height:1.22}
.compact-kop{display:grid;grid-template-columns:27mm 1fr 27mm;gap:8mm;align-items:center;border-bottom:3px double #111;padding-bottom:5px;margin-bottom:7px}
.rapor-logo-side{height:24mm;display:flex;align-items:center;justify-content:center;text-align:center;font-family:Arial,sans-serif;font-size:10px;font-weight:700;color:#111;overflow:hidden}
.rapor-logo-side img{max-width:24mm;max-height:24mm;object-fit:contain}.rapor-logo-side.right img{max-width:26mm;max-height:24mm}.rapor-logo-side span{border:1px solid #9ca3af;width:100%;height:100%;display:flex;align-items:center;justify-content:center}
.rapor-kop{text-align:center;line-height:1.12}.kop-line-1{font-size:12.5pt;font-weight:700;text-transform:uppercase}.kop-line-2{font-size:14pt;font-weight:900;text-transform:uppercase;letter-spacing:.3px}.kop-school{font-size:16pt;font-weight:900;text-transform:uppercase}.kop-small{font-size:8.5pt;margin-top:1px}.rapor-title{font-size:13pt;margin:7px 0 8px;text-decoration:none;font-weight:900;text-align:center}.identity-table.compact{font-size:10.2pt;margin-bottom:7px;border-top:1px solid #111;border-bottom:1px solid #111}.identity-table.compact td{padding:2.5px 6px}.nilai-rapor.compact{font-size:10.3pt;margin-bottom:7px}.nilai-rapor.compact th{padding:5px 6px;background:#1f2937!important;color:#fff!important}.nilai-rapor.compact td{padding:4.6px 6px}.deskripsi-box.compact{font-size:10.2pt;min-height:20mm;margin:6px 0;padding:6px 8px;line-height:1.28}.deskripsi-box.catatan{min-height:13mm}.date-line{text-align:right;font-size:10.3pt;margin:5px 0 2px}.ttd-grid.four{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:3px;text-align:center;font-size:9.5pt;align-items:start}.ttd-grid.four .ttd-box p{min-height:10mm;margin:0 0 2px}.ttd-grid.four .space-sign{height:18mm}.ttd-grid.four strong{font-size:9pt}.ttd-grid.four span{font-size:8.2pt}.cap-placeholder{top:15mm;width:25mm;height:25mm;font-size:8px;opacity:.48}.cap-img{top:13mm;width:29mm;height:29mm;opacity:.68}.rapor-footer-note{position:absolute;left:10mm;right:10mm;bottom:5mm;border:1px solid #555;border-radius:5px;text-align:center;font-size:8.3pt;font-style:italic;padding:2px 5px}.watermark-img{width:var(--wm-size,142mm);height:var(--wm-size,142mm);opacity:var(--wm-opacity,.075)}.watermark-text{font-size:340px;opacity:.055}.rapor-page,.rapor-page *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
@media print{html,body{width:210mm;background:#fff!important}.container{padding:0!important;margin:0!important}.rapor-page{width:198mm;height:285mm;min-height:0!important;padding:6mm 7mm 6mm;margin:0 auto!important;border:0!important;box-shadow:none!important;page-break-after:always;break-after:page;overflow:hidden}.rapor-page:last-child{page-break-after:auto;break-after:auto}.compact-kop{grid-template-columns:24mm 1fr 24mm;gap:6mm;padding-bottom:4px;margin-bottom:5px}.rapor-logo-side{height:22mm}.rapor-logo-side img{max-width:22mm;max-height:22mm}.rapor-logo-side.right img{max-width:24mm;max-height:22mm}.kop-line-1{font-size:11.5pt}.kop-line-2{font-size:13pt}.kop-school{font-size:15pt}.kop-small{font-size:8pt}.rapor-title{font-size:12.2pt;margin:6px 0}.identity-table.compact{font-size:9.8pt;margin-bottom:5px}.identity-table.compact td{padding:2px 5px}.nilai-rapor.compact{font-size:9.8pt;margin-bottom:5px}.nilai-rapor.compact td{padding:3.6px 5px}.nilai-rapor.compact th{padding:4px 5px}.deskripsi-box.compact{font-size:9.7pt;min-height:17mm;margin:5px 0;padding:5px 7px}.deskripsi-box.catatan{min-height:11mm}.date-line{font-size:9.8pt;margin:4px 0 1px}.ttd-grid.four{font-size:9pt;gap:5px}.ttd-grid.four .space-sign{height:15mm}.ttd-grid.four .ttd-box p{min-height:8mm}.rapor-footer-note{left:7mm;right:7mm;bottom:3mm;font-size:7.8pt}.cap-placeholder{top:12mm;width:22mm;height:22mm}.cap-img{top:10mm;width:25mm;height:25mm}.watermark-img{width:var(--wm-size,142mm)!important;height:var(--wm-size,142mm)!important}}

/* ===== V5 Presisi Print: rapor dipaksa muat 1 halaman A4 ===== */
.rapor-page{height:286mm;padding:8mm 10mm 7mm;overflow:hidden;}
.compact-kop{grid-template-columns:25mm 1fr 25mm;gap:7mm;padding-bottom:4px;margin-bottom:5px;}
.rapor-logo-side{height:22mm}.rapor-logo-side img{max-width:22mm;max-height:22mm}.rapor-logo-side.right img{max-width:24mm;max-height:22mm}
.kop-line-1{font-size:11.5pt}.kop-line-2{font-size:13.2pt}.kop-school{font-size:15.2pt}.kop-small{font-size:8pt;line-height:1.05}
.rapor-title{font-size:12.4pt;margin:6px 0 6px}.identity-table.compact{font-size:9.7pt;margin-bottom:5px}.identity-table.compact td{padding:1.8px 5px}.nilai-rapor.compact{font-size:9.5pt;margin-bottom:5px}.nilai-rapor.compact th{padding:3.5px 5px}.nilai-rapor.compact td{padding:3.2px 5px}.deskripsi-box.compact{font-size:9.4pt;min-height:15mm;margin:4px 0;padding:4.5px 6px;line-height:1.18}.deskripsi-box.catatan{min-height:9mm}.date-line{font-size:9.4pt;margin:3px 0 0}.ttd-grid.four{font-size:8.7pt;gap:4px;margin-top:1px}.ttd-grid.four .ttd-box p{min-height:7mm;margin:0}.ttd-grid.four .space-sign{height:13mm}.ttd-grid.four strong{font-size:8.4pt}.ttd-grid.four span{font-size:7.6pt}.cap-placeholder{top:9mm;width:20mm;height:20mm}.cap-img{top:8mm;width:23mm;height:23mm}.rapor-footer-note{font-size:7.4pt;bottom:3mm;padding:1.5px 4px}.watermark-img{width:var(--wm-size,150mm);height:var(--wm-size,150mm)}
@page{size:A4;margin:0}
@media print{
  html,body{width:210mm;height:297mm;margin:0!important;padding:0!important;background:#fff!important;}
  body{zoom:1;}
  .container{width:210mm!important;max-width:210mm!important;margin:0!important;padding:0!important;}
  .rapor-page{width:198mm!important;height:285mm!important;min-height:0!important;margin:0 auto!important;padding:5mm 6mm 5mm!important;border:0!important;box-shadow:none!important;overflow:hidden!important;page-break-after:always;break-after:page;}
  .rapor-page:last-child{page-break-after:auto;break-after:auto;}
  .compact-kop{grid-template-columns:22mm 1fr 22mm!important;gap:5mm!important;padding-bottom:3px!important;margin-bottom:4px!important;}
  .rapor-logo-side{height:19mm!important}.rapor-logo-side img{max-width:19mm!important;max-height:19mm!important}.rapor-logo-side.right img{max-width:21mm!important;max-height:19mm!important}
  .kop-line-1{font-size:10.5pt!important}.kop-line-2{font-size:12pt!important}.kop-school{font-size:14pt!important}.kop-small{font-size:7.4pt!important;line-height:1.02!important}
  .rapor-title{font-size:11.4pt!important;margin:4px 0!important}.identity-table.compact{font-size:8.9pt!important;margin-bottom:4px!important}.identity-table.compact td{padding:1.4px 4px!important}.nilai-rapor.compact{font-size:8.8pt!important;margin-bottom:4px!important}.nilai-rapor.compact th{padding:3px 4px!important}.nilai-rapor.compact td{padding:2.8px 4px!important}.deskripsi-box.compact{font-size:8.7pt!important;min-height:13mm!important;margin:3px 0!important;padding:4px 5px!important;line-height:1.13!important}.deskripsi-box.catatan{min-height:8mm!important}.date-line{font-size:8.8pt!important;margin:2px 0 0!important}.ttd-grid.four{font-size:8pt!important;gap:2px!important}.ttd-grid.four .ttd-box p{min-height:6mm!important}.ttd-grid.four .space-sign{height:11mm!important}.ttd-grid.four strong{font-size:7.8pt!important}.ttd-grid.four span{font-size:7.1pt!important}.cap-placeholder{top:8mm!important;width:18mm!important;height:18mm!important}.cap-img{top:7mm!important;width:20mm!important;height:20mm!important}.rapor-footer-note{left:6mm!important;right:6mm!important;bottom:2mm!important;font-size:6.9pt!important}.watermark-img{width:var(--wm-size,150mm)!important;height:var(--wm-size,150mm)!important;opacity:var(--wm-opacity,.07)!important;}
}

/* ===== V8 FIX FINAL: pengesahan horizontal resmi + kop bold ===== */
.rapor-kop .kop-main-1,
.rapor-kop .kop-main-2,
.rapor-kop .kop-main-3{
  display:block;
  margin:0;
  padding:0;
  text-align:center;
  font-weight:900;
  text-transform:uppercase;
  color:#000;
  letter-spacing:.1px;
  line-height:1.05;
}
.rapor-kop .kop-main-1{font-size:12.5pt;}
.rapor-kop .kop-main-2{font-size:13.5pt;}
.rapor-kop .kop-main-3{font-size:14pt;}
.rapor-kop .alamat-kop,
.rapor-kop .kontak-kop{font-weight:700;color:#000;}

.pengesahan-date{
  text-align:right;
  margin:4px 0 2px;
  font-size:9.5pt;
  color:#000;
}
.pengesahan-horizontal{
  display:grid;
  grid-template-columns:1fr 1.18fr 1fr;
  gap:14mm;
  align-items:start;
  margin-top:2mm;
  text-align:center;
  font-size:9.3pt;
  line-height:1.12;
  color:#000;
}
.pengesahan-horizontal .pengesahan-col{
  min-height:43mm;
  position:relative;
  page-break-inside:avoid;
  break-inside:avoid;
}
.pengesahan-horizontal p{
  margin:0;
  color:#000;
}
.pengesahan-horizontal .mengetahui-text{
  margin-bottom:2px;
  font-weight:400;
}
.pengesahan-horizontal .jabatan-ttd{
  min-height:8mm;
  font-weight:400;
}
.pengesahan-horizontal .ruang-ttd{
  height:22mm;
}
.pengesahan-horizontal strong{
  display:inline-block;
  max-width:100%;
  font-size:9.1pt;
  font-weight:900;
  color:#000;
  white-space:normal;
}
.pengesahan-horizontal span{
  display:inline-block;
  font-size:8.7pt;
  color:#000;
}
.pengesahan-horizontal .cap-placeholder.resmi,
.pengesahan-horizontal .cap-img.resmi{
  left:50%;
  top:14mm;
  transform:translateX(-50%) rotate(-8deg);
  z-index:0;
}
.pengesahan-horizontal .cap-placeholder.resmi{
  width:22mm;
  height:22mm;
  font-size:7px;
  opacity:.55;
}
.pengesahan-horizontal .cap-img.resmi{
  width:25mm;
  height:25mm;
  opacity:.70;
}
.pengesahan-horizontal .pengesahan-col > *:not(.cap-img):not(.cap-placeholder){
  position:relative;
  z-index:1;
}

@media print{
  .rapor-kop .kop-main-1{font-size:11.8pt!important;font-weight:900!important;}
  .rapor-kop .kop-main-2{font-size:12.8pt!important;font-weight:900!important;}
  .rapor-kop .kop-main-3{font-size:13.3pt!important;font-weight:900!important;}
  .rapor-kop .kop-small{font-weight:700!important;color:#000!important;}
  .pengesahan-date{font-size:8.8pt!important;margin:3px 0 1px!important;}
  .pengesahan-horizontal{
    display:grid!important;
    grid-template-columns:1fr 1.18fr 1fr!important;
    gap:8mm!important;
    margin-top:1mm!important;
    font-size:8.4pt!important;
    line-height:1.08!important;
    align-items:start!important;
  }
  .pengesahan-horizontal .pengesahan-col{min-height:37mm!important;}
  .pengesahan-horizontal .jabatan-ttd{min-height:7mm!important;}
  .pengesahan-horizontal .ruang-ttd{height:18mm!important;}
  .pengesahan-horizontal strong{font-size:8.2pt!important;}
  .pengesahan-horizontal span{font-size:7.8pt!important;}
  .pengesahan-horizontal .cap-placeholder.resmi{top:12mm!important;width:19mm!important;height:19mm!important;font-size:6.5px!important;}
  .pengesahan-horizontal .cap-img.resmi{top:11mm!important;width:22mm!important;height:22mm!important;}
}

/* ===== V9 PRESISI: tanda tangan pengesahan benar-benar horizontal sejajar ===== */
.ttd-final-table,
.rapor-page table.ttd-final-table{
  width:100% !important;
  table-layout:fixed !important;
  border-collapse:collapse !important;
  border-spacing:0 !important;
  margin:2mm 0 0 !important;
  background:transparent !important;
  border:0 !important;
  overflow:visible !important;
  font-family:"Times New Roman",serif !important;
  color:#000 !important;
}
.ttd-final-table tr,
.ttd-final-table td,
.rapor-page .ttd-final-table tr,
.rapor-page .ttd-final-table td{
  border:0 !important;
  background:transparent !important;
  padding:0 !important;
  vertical-align:top !important;
}
.ttd-final-cell{
  width:33.333% !important;
  min-width:33.333% !important;
  max-width:33.333% !important;
  height:40mm !important;
  text-align:center !important;
  font-size:9.2pt !important;
  line-height:1.12 !important;
  color:#000 !important;
  position:relative !important;
}
.ttd-final-cell div{color:#000 !important;}
.ttd-role{font-weight:400 !important;min-height:8mm !important;display:block !important;}
.ttd-mengetahui{font-weight:400 !important;margin:0 0 1.5mm !important;display:block !important;}
.ttd-space{height:19mm !important;position:relative !important;display:block !important;}
.ttd-center .ttd-space{height:17mm !important;}
.ttd-name{font-weight:900 !important;text-decoration:none !important;font-size:9.1pt !important;display:block !important;white-space:normal !important;}
.ttd-nip{font-size:8.5pt !important;display:block !important;white-space:normal !important;}
.cap-img-final,
.cap-final-placeholder{
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  transform:translate(-50%,-50%) rotate(-8deg) !important;
  z-index:0 !important;
}
.cap-img-final{width:23mm !important;height:23mm !important;object-fit:contain !important;opacity:.72 !important;}
.cap-final-placeholder{width:21mm !important;height:21mm !important;border:3px double #1d4ed8 !important;border-radius:50% !important;display:flex !important;align-items:center !important;justify-content:center !important;color:#1d4ed8 !important;font-family:Arial,sans-serif !important;font-size:6.5px !important;font-weight:700 !important;opacity:.55 !important;}
.rapor-footer-note{z-index:5 !important;}
@media(max-width:900px){
  .ttd-final-table{display:table !important;}
  .ttd-final-table tr{display:table-row !important;}
  .ttd-final-table td{display:table-cell !important;}
}
@media print{
  .ttd-final-table,
  .rapor-page table.ttd-final-table{display:table !important;width:100% !important;table-layout:fixed !important;margin-top:1.5mm !important;}
  .ttd-final-table tr{display:table-row !important;}
  .ttd-final-table td{display:table-cell !important;}
  .ttd-final-cell{width:33.333% !important;height:35mm !important;font-size:8.4pt !important;line-height:1.08 !important;}
  .ttd-role{min-height:7mm !important;}
  .ttd-mengetahui{margin-bottom:1mm !important;}
  .ttd-space{height:16mm !important;}
  .ttd-center .ttd-space{height:15mm !important;}
  .ttd-name{font-size:8.2pt !important;}
  .ttd-nip{font-size:7.7pt !important;}
  .cap-img-final{width:20mm !important;height:20mm !important;}
  .cap-final-placeholder{width:18mm !important;height:18mm !important;font-size:6px !important;}
}

/* ===== V10 FIX PROFESIONAL: tanda tangan resmi 3 kolom sejajar + ruang tanda tangan cukup ===== */
.sign-pro-table,
.rapor-page table.sign-pro-table{
  width:100% !important;
  border-collapse:separate !important;
  border-spacing:7mm 0 !important; /* jarak rapi antara tanda tangan kiri-tengah-kanan */
  table-layout:fixed !important;
  margin:2mm 0 9mm !important;
  border:0 !important;
  background:transparent !important;
  font-family:"Times New Roman",serif !important;
  color:#000 !important;
}
.sign-pro-table tr,
.sign-pro-table td,
.rapor-page .sign-pro-table tr,
.rapor-page .sign-pro-table td{
  border:0 !important;
  background:transparent !important;
  padding:0 !important;
  display:table-cell !important;
  vertical-align:top !important;
}
.sign-pro-cell{
  width:33.333% !important;
  height:43mm !important;
  min-height:43mm !important;
  text-align:center !important;
  font-size:9.2pt !important;
  line-height:1.12 !important;
  position:relative !important;
  overflow:visible !important;
  white-space:normal !important;
}
.sign-role{
  height:10mm !important;
  min-height:10mm !important;
  font-weight:400 !important;
  font-size:9.2pt !important;
  line-height:1.15 !important;
  margin:0 !important;
  padding:0 !important;
}
.sign-role span{font-weight:400 !important;}
.sign-empty{
  height:23mm !important; /* ruang tanda tangan agar tidak mepet */
  min-height:23mm !important;
  position:relative !important;
  margin:0 !important;
  padding:0 !important;
}
.sign-name{
  font-weight:900 !important;
  font-size:9pt !important;
  line-height:1.05 !important;
  min-height:4mm !important;
  margin:0 !important;
  padding:0 !important;
  white-space:normal !important;
}
.sign-nip{
  font-size:8.4pt !important;
  line-height:1.05 !important;
  margin:0 !important;
  padding:0 !important;
  white-space:normal !important;
}
.sign-stamp-img,
.sign-stamp-placeholder{
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  transform:translate(-50%,-50%) rotate(-8deg) !important;
  z-index:0 !important;
  pointer-events:none !important;
}
.sign-stamp-img{
  width:23mm !important;
  height:23mm !important;
  object-fit:contain !important;
  opacity:.70 !important;
}
.sign-stamp-placeholder{
  width:21mm !important;
  height:21mm !important;
  border:3px double #2563eb !important;
  border-radius:50% !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:#2563eb !important;
  font-family:Arial,sans-serif !important;
  font-size:6.2px !important;
  font-weight:700 !important;
  opacity:.58 !important;
  text-align:center !important;
  line-height:1.1 !important;
}
.rapor-footer-note{
  position:absolute !important;
  left:7mm !important;
  right:7mm !important;
  bottom:2.5mm !important;
  z-index:10 !important;
}
@media print{
  .sign-pro-table,
  .rapor-page table.sign-pro-table{
    display:table !important;
    width:100% !important;
    table-layout:fixed !important;
    border-collapse:separate !important;
    border-spacing:6mm 0 !important;
    margin:1.5mm 0 8mm !important;
  }
  .sign-pro-table tr{display:table-row !important;}
  .sign-pro-table td{display:table-cell !important;}
  .sign-pro-cell{height:39mm !important;min-height:39mm !important;font-size:8.4pt !important;line-height:1.08 !important;}
  .sign-role{height:9mm !important;min-height:9mm !important;font-size:8.4pt !important;line-height:1.1 !important;}
  .sign-empty{height:21mm !important;min-height:21mm !important;}
  .sign-name{font-size:8.2pt !important;line-height:1.03 !important;}
  .sign-nip{font-size:7.7pt !important;line-height:1.03 !important;}
  .sign-stamp-img{width:20mm !important;height:20mm !important;}
  .sign-stamp-placeholder{width:18mm !important;height:18mm !important;font-size:5.6px !important;}
  .rapor-footer-note{bottom:2mm !important;font-size:6.6pt !important;}
}

/* ===== V11 FINAL PRESISI: pengesahan rapor resmi 3 kolom sejajar horizontal ===== */
.rapor-page{
  position:relative !important;
  padding-bottom:58mm !important; /* ruang tetap untuk tanda tangan resmi */
}
.sign-pro-table,.ttd-final-table,.pengesahan-horizontal,.date-line.pengesahan-date{display:none!important;}
.sign-sheet{
  position:absolute !important;
  left:10mm !important;
  right:10mm !important;
  bottom:5mm !important;
  height:50mm !important;
  z-index:20 !important;
  font-family:"Times New Roman",serif !important;
  color:#000 !important;
  background:transparent !important;
}
.sign-date{
  text-align:right !important;
  font-size:9.2pt !important;
  line-height:1.1 !important;
  height:5mm !important;
  margin:0 0 2mm !important;
}
.sign-grid-resmi{
  display:grid !important;
  grid-template-columns:1fr 1.12fr 1fr !important;
  column-gap:16mm !important;
  width:100% !important;
  height:37mm !important;
  align-items:stretch !important;
}
.sign-box-resmi{
  min-width:0 !important;
  height:37mm !important;
  text-align:center !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:flex-start !important;
  align-items:stretch !important;
  font-size:9pt !important;
  line-height:1.08 !important;
  overflow:visible !important;
  white-space:normal !important;
}
.sign-role-resmi{
  height:9mm !important;
  min-height:9mm !important;
  margin:0 !important;
  padding:0 !important;
  font-size:9pt !important;
  line-height:1.12 !important;
  font-weight:400 !important;
}
.sign-space-resmi{
  height:19mm !important;
  min-height:19mm !important;
  position:relative !important;
  flex:0 0 19mm !important;
}
.stamp-area-resmi{overflow:visible !important;}
.stamp-resmi{
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  width:24mm !important;
  height:24mm !important;
  transform:translate(-50%,-50%) rotate(-8deg) !important;
  object-fit:contain !important;
  opacity:.72 !important;
  z-index:0 !important;
  pointer-events:none !important;
}
.stamp-kosong-resmi{
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  width:22mm !important;
  height:22mm !important;
  transform:translate(-50%,-50%) rotate(-8deg) !important;
  border:2px double #2563eb !important;
  border-radius:50% !important;
  opacity:.45 !important;
  display:block !important;
  font-size:0 !important;
  line-height:0 !important;
  color:transparent !important;
  pointer-events:none !important;
}
.sign-name-resmi{
  min-height:4mm !important;
  margin:0 !important;
  padding:0 !important;
  font-size:8.7pt !important;
  line-height:1.06 !important;
  font-weight:900 !important;
  white-space:normal !important;
  overflow:visible !important;
}
.kepala-name{font-size:8.4pt !important;}
.sign-nip-resmi{
  margin:0 !important;
  padding:0 !important;
  font-size:8.1pt !important;
  line-height:1.06 !important;
  white-space:normal !important;
  overflow:visible !important;
}
.sign-sheet .rapor-footer-note{
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  border:1px solid #555 !important;
  border-radius:4px !important;
  text-align:center !important;
  font-size:6.8pt !important;
  line-height:1.05 !important;
  font-style:italic !important;
  padding:1px 4px !important;
  background:rgba(255,255,255,.65) !important;
  z-index:30 !important;
}
@media print{
  .rapor-page{
    width:198mm!important;
    height:285mm!important;
    padding:5mm 7mm 58mm!important;
    overflow:hidden!important;
  }
  .sign-sheet{
    left:7mm!important;
    right:7mm!important;
    bottom:5mm!important;
    height:50mm!important;
  }
  .sign-date{font-size:8.6pt!important;height:5mm!important;margin-bottom:2mm!important;}
  .sign-grid-resmi{grid-template-columns:1fr 1.12fr 1fr!important;column-gap:14mm!important;height:37mm!important;}
  .sign-box-resmi{height:37mm!important;font-size:8.5pt!important;line-height:1.06!important;}
  .sign-role-resmi{height:9mm!important;min-height:9mm!important;font-size:8.5pt!important;line-height:1.1!important;}
  .sign-space-resmi{height:19mm!important;min-height:19mm!important;flex-basis:19mm!important;}
  .sign-name-resmi{font-size:8.15pt!important;line-height:1.04!important;}
  .kepala-name{font-size:7.95pt!important;}
  .sign-nip-resmi{font-size:7.55pt!important;line-height:1.04!important;}
  .stamp-resmi{width:22mm!important;height:22mm!important;}
  .stamp-kosong-resmi{width:20mm!important;height:20mm!important;}
  .sign-sheet .rapor-footer-note{bottom:0!important;font-size:6.4pt!important;}
}

/* ===== V12 FINAL RAPI: tanda tangan tidak terlalu bawah, margin presisi, rapor resmi ===== */
.rapor-page{
  padding-bottom:8mm !important;
}
.sign-sheet{
  position:relative !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  height:auto !important;
  margin:8mm 0 0 !important;
  z-index:20 !important;
  font-family:"Times New Roman",serif !important;
  color:#000 !important;
  background:transparent !important;
  page-break-inside:avoid !important;
  break-inside:avoid !important;
}
.sign-date{
  text-align:right !important;
  font-size:9pt !important;
  line-height:1.1 !important;
  height:auto !important;
  margin:0 0 4mm !important;
}
.sign-grid-resmi{
  display:grid !important;
  grid-template-columns:1fr 1.15fr 1fr !important;
  column-gap:18mm !important;
  width:100% !important;
  height:auto !important;
  align-items:start !important;
}
.sign-box-resmi{
  min-width:0 !important;
  height:auto !important;
  min-height:42mm !important;
  text-align:center !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:flex-start !important;
  align-items:stretch !important;
  font-size:9pt !important;
  line-height:1.08 !important;
  overflow:visible !important;
  white-space:normal !important;
}
.sign-role-resmi{
  height:11mm !important;
  min-height:11mm !important;
  margin:0 !important;
  padding:0 !important;
  font-size:9pt !important;
  line-height:1.12 !important;
  font-weight:400 !important;
}
.sign-space-resmi{
  height:22mm !important;
  min-height:22mm !important;
  position:relative !important;
  flex:0 0 22mm !important;
}
.sign-name-resmi{
  min-height:4mm !important;
  margin:0 !important;
  padding:0 !important;
  font-size:8.7pt !important;
  line-height:1.06 !important;
  font-weight:900 !important;
  white-space:normal !important;
  overflow:visible !important;
}
.kepala-name{font-size:8.45pt !important;}
.sign-nip-resmi{
  margin:0 !important;
  padding:0 !important;
  font-size:8.05pt !important;
  line-height:1.06 !important;
  white-space:normal !important;
  overflow:visible !important;
}
.stamp-resmi{
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  width:24mm !important;
  height:24mm !important;
  transform:translate(-50%,-50%) rotate(-8deg) !important;
  object-fit:contain !important;
  opacity:.72 !important;
  z-index:0 !important;
  pointer-events:none !important;
}
.stamp-kosong-resmi{
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  width:22mm !important;
  height:22mm !important;
  transform:translate(-50%,-50%) rotate(-8deg) !important;
  border:2px double #2563eb !important;
  border-radius:50% !important;
  opacity:.45 !important;
  display:block !important;
  font-size:0 !important;
  line-height:0 !important;
  color:transparent !important;
  pointer-events:none !important;
}
.sign-sheet .rapor-footer-note{
  position:relative !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  display:block !important;
  width:100% !important;
  margin:3mm 0 0 !important;
  border:1px solid #555 !important;
  border-radius:4px !important;
  text-align:center !important;
  font-size:6.8pt !important;
  line-height:1.05 !important;
  font-style:italic !important;
  padding:1px 4px !important;
  background:rgba(255,255,255,.65) !important;
  z-index:30 !important;
}
@media print{
  .rapor-page{
    width:198mm!important;
    height:285mm!important;
    padding:5mm 7mm 6mm!important;
    overflow:hidden!important;
  }
  .sign-sheet{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    bottom:auto!important;
    height:auto!important;
    margin:6mm 0 0!important;
  }
  .sign-date{font-size:8.6pt!important;margin:0 0 3mm!important;}
  .sign-grid-resmi{grid-template-columns:1fr 1.15fr 1fr!important;column-gap:16mm!important;height:auto!important;align-items:start!important;}
  .sign-box-resmi{height:auto!important;min-height:39mm!important;font-size:8.5pt!important;line-height:1.06!important;}
  .sign-role-resmi{height:10mm!important;min-height:10mm!important;font-size:8.5pt!important;line-height:1.1!important;}
  .sign-space-resmi{height:21mm!important;min-height:21mm!important;flex-basis:21mm!important;}
  .sign-name-resmi{font-size:8.15pt!important;line-height:1.04!important;}
  .kepala-name{font-size:7.95pt!important;}
  .sign-nip-resmi{font-size:7.55pt!important;line-height:1.04!important;}
  .stamp-resmi{width:21mm!important;height:21mm!important;}
  .stamp-kosong-resmi{width:19mm!important;height:19mm!important;}
  .sign-sheet .rapor-footer-note{position:relative!important;margin-top:2.5mm!important;font-size:6.4pt!important;}
}


/* ===== V13 FINAL: tanggal masuk kolom kanan + footer identitas raport ===== */
.sign-date{display:none !important;}
.sign-date-right{
  height:6mm !important;
  min-height:6mm !important;
  margin:0 0 1.5mm !important;
  padding:0 !important;
  text-align:center !important;
  font-size:9pt !important;
  line-height:1.1 !important;
  color:#000 !important;
  font-weight:400 !important;
}
.sign-box-right .ketua-role{
  height:7mm !important;
  min-height:7mm !important;
}
.sign-box-right .sign-space-resmi{
  height:20mm !important;
  min-height:20mm !important;
  flex-basis:20mm !important;
}
.sign-grid-resmi{
  align-items:start !important;
}
.sign-sheet .rapor-footer-note{
  font-family:"Times New Roman",serif !important;
  font-weight:700 !important;
  font-size:7.2pt !important;
  letter-spacing:.05px !important;
}
@media print{
  .sign-date-right{height:5.5mm!important;min-height:5.5mm!important;font-size:8.4pt!important;margin-bottom:1mm!important;}
  .sign-box-right .ketua-role{height:6.5mm!important;min-height:6.5mm!important;}
  .sign-box-right .sign-space-resmi{height:19mm!important;min-height:19mm!important;flex-basis:19mm!important;}
  .sign-sheet .rapor-footer-note{font-size:6.8pt!important;}
}


/* ===== V24: margin atas rapor diturunkan agar lebih presisi ===== */
.rapor-page{
  padding-top:9mm !important;
}
.compact-kop{
  margin-top:1mm !important;
}
@media print{
  .rapor-page{
    padding-top:9mm !important;
  }
  .compact-kop{
    margin-top:1mm !important;
  }
}

/* ===== V25 Login, User, Buku Induk Responsive ===== */
.app-logo{overflow:hidden;background:#fff;border:1px solid var(--line)}.app-logo img{width:100%;height:100%;object-fit:contain}.nav-logout{background:#fee2e2!important;color:#991b1b!important;border-color:#fecaca!important}.full-btn{width:100%;margin-top:8px}.hidden{display:none!important}
.auth-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top left,#bfdbfe,transparent 34%),linear-gradient(135deg,#eff6ff,#ffffff 48%,#e0f2fe);}.auth-wrap{width:min(1120px,100%);display:grid;grid-template-columns:1.05fr .95fr;gap:22px;align-items:stretch}.auth-brand-panel,.auth-card{border:1px solid rgba(191,219,254,.9);border-radius:30px;background:rgba(255,255,255,.86);box-shadow:0 24px 70px rgba(37,99,235,.18);backdrop-filter:blur(16px)}.auth-brand-panel{padding:42px;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(135deg,rgba(14,165,233,.92),rgba(37,99,235,.94));color:#fff;overflow:hidden;position:relative}.auth-brand-panel:after{content:"";position:absolute;right:-90px;bottom:-90px;width:260px;height:260px;border-radius:50%;background:rgba(255,255,255,.14)}.auth-brand-panel h1{font-size:30px;line-height:1.08;margin:12px 0 6px}.auth-brand-panel h2{font-size:20px;margin:0 0 14px}.auth-brand-panel p{color:#e0f2fe;line-height:1.6}.auth-logo{width:96px;height:96px;border-radius:28px;background:#fff;display:grid;place-items:center;color:#2563eb;font-weight:900;box-shadow:0 16px 40px rgba(15,23,42,.18);overflow:hidden}.auth-logo img{width:86%;height:86%;object-fit:contain}.auth-chip-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.auth-chip-row span{background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:8px 12px;font-weight:800}.auth-card{padding:30px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px;background:#e0f2fe;border-radius:18px;padding:6px;margin-bottom:18px}.auth-tabs button{border:0;border-radius:14px;padding:12px;background:transparent;font-weight:900;color:#075985;cursor:pointer}.auth-tabs button.active{background:#fff;color:#1d4ed8;box-shadow:0 8px 24px rgba(37,99,235,.14)}.auth-form h3{font-size:24px;margin:0 0 14px}.auth-help{font-size:13px;text-align:center;margin:14px 0 0}.buku-head{display:flex;gap:18px;align-items:center;margin-bottom:18px}.foto-profil{width:96px;height:120px;border-radius:18px;object-fit:cover;border:1px solid #cbd5e1;background:#f8fafc}.foto-profil.empty{display:grid;place-items:center;color:#64748b;font-weight:900}.thumb-foto{width:42px;height:52px;border-radius:10px;object-fit:cover;border:1px solid #cbd5e1}.buku-card input[readonly]{background:#f8fafc;color:#334155}.user-badge{display:inline-flex;gap:8px;align-items:center}
@media(max-width:920px){.auth-wrap{grid-template-columns:1fr}.auth-brand-panel{padding:28px}.auth-brand-panel h1{font-size:24px}.auth-logo{width:76px;height:76px}.auth-card{padding:20px}.buku-head{align-items:flex-start}.topbar{position:relative}.brand{width:100%}nav{width:100%;display:grid;grid-template-columns:repeat(2,1fr)}nav a{justify-content:center}}
@media(max-width:520px){.auth-body{padding:12px}.auth-tabs{grid-template-columns:1fr}.auth-brand-panel,.auth-card{border-radius:22px}.form-grid.wide,.form-grid{grid-template-columns:1fr!important}.buku-head{flex-direction:column}nav{grid-template-columns:1fr}.container{padding:12px}.card{padding:16px;border-radius:18px}}


/* ===== V26 Manajemen User diperbaiki ===== */
.user-admin-card .user-form input,
.user-admin-card .user-form select{
  min-height:42px;
}
.success-soft{
  background:#dcfce7!important;
  border:1px solid #86efac!important;
  color:#166534!important;
  border-radius:14px;
  padding:12px 14px;
  margin:10px 0 16px;
  font-weight:800;
}
.user-admin-card .info-box{
  font-size:13px;
}
@media(max-width:720px){
  .user-admin-card .form-grid.wide{grid-template-columns:1fr!important;}
  .table-wrap{overflow-x:auto;}
}
