/* I-59/I-60: kartu ID atlet dan official ber-QR. Kartu selalu terang (barang cetak), apa pun tema layar. 90×130 mm, empat per A4. */
.kartu-lembar{display:flex;flex-wrap:wrap;gap:4mm}
.kartu-id{width:90mm;height:130mm;box-sizing:border-box;background:#fff;color:#12171A;border:1px solid #C2CBCC;border-radius:3mm;overflow:hidden;
  display:flex;flex-direction:column;align-items:center;text-align:center;break-inside:avoid;page-break-inside:avoid;
  -webkit-print-color-adjust:exact;print-color-adjust:exact}
.kartu-kepala{width:100%;box-sizing:border-box;display:flex;gap:3mm;align-items:center;padding:4mm 5mm;background:#0E3D46;color:#fff;text-align:left}
.kartu-kepala img{background:#fff;border-radius:50%;padding:1mm;flex:none}
.kartu-kepala p{margin:0;line-height:1.25}
.kartu-kepala strong{display:block;font-size:10.5pt;font-weight:600}
.kartu-kepala span{font-size:7.5pt;opacity:.85}
.kartu-jenis{margin:0;width:100%;padding:1.2mm 0;background:#E4EFF1;color:#0E3D46;font-size:9pt;font-weight:600;letter-spacing:.35em;text-transform:uppercase}
/* I-60: pita official berwarna lain agar petugas venue membedakannya dari atlet dalam sekali lihat */
.kartu-official .kartu-jenis{background:#FDF2DC;color:#6B4A00}
.kartu-foto{width:30mm;height:40mm;object-fit:cover;margin-top:4mm;border:1px solid #C2CBCC;border-radius:1.5mm;box-sizing:border-box}
.kartu-foto-kosong{position:relative;overflow:hidden;border-style:dashed}
.kartu-foto-kosong img{width:100%;height:100%;object-fit:cover;display:block}
.kartu-foto-kosong span{position:absolute;left:0;right:0;bottom:0;padding:1mm 0;background:rgba(255,255,255,.85);color:#434D50;font-size:6.5pt;line-height:1.2}
.kartu-nama{margin:3mm 5mm 0;font-size:13pt;font-weight:600;line-height:1.2;max-height:2.4em;overflow:hidden}
.kartu-cabor{margin:1.2mm 5mm 0;line-height:1.25;font-size:9.5pt;color:#17636F;font-weight:600}
.kartu-kontingen{margin:.6mm 5mm 0;font-size:9pt;color:#434D50}
.kartu-kaki{margin-top:auto;width:100%;box-sizing:border-box;display:flex;gap:3mm;align-items:center;padding:3mm 5mm 4mm;border-top:1px solid #DCE2E2;text-align:left}
.kartu-qr{width:27mm;height:27mm;flex:none}
.kartu-qr svg{width:100%;height:100%;display:block}
.kartu-kaki p{margin:0;font-size:7pt;line-height:1.35;color:#434D50}
.kartu-kaki strong{display:block;font-size:10pt;color:#12171A;margin-bottom:1mm}
.kartu-label{display:block;text-transform:uppercase;letter-spacing:.08em;font-size:6.5pt;color:#627075}
.kartu-petunjuk{display:block}

/* Halaman periksa: putusan besar agar terbaca sekilas di ponsel petugas */
.kartu-putusan{padding:18px;border-left:6px solid var(--line-strong)}
.kartu-putusan p{margin:0}
.kartu-putusan-judul{font-size:22px;font-weight:600;margin-bottom:6px!important}
.kartu-putusan-sah{border-left-color:var(--st-siap);background:var(--st-siap-wash)}
.kartu-putusan-tolak{border-left-color:var(--st-kritis);background:var(--st-kritis-wash)}

/* I-61: halaman periksa publik — berdiri sendiri tanpa cangkang panel */
body.kartu-publik{margin:0;padding:20px 16px 32px;background:var(--ground);color:var(--ink)}
body.kartu-publik main{margin:0 auto}
.kartu-publik-kepala{display:flex;gap:12px;align-items:center}
.kartu-publik-kepala p{margin:0;display:flex;flex-direction:column;line-height:1.3}
.kartu-publik-orang{display:flex;gap:16px;align-items:center;padding:18px;border-bottom:1px solid var(--line)}
.kartu-publik-orang .kartu-foto{margin:0;width:90px;height:120px;flex:none}
.kartu-publik-orang h1{font-size:20px;font-weight:600;margin:0 0 4px}
.kartu-publik-orang p{margin:0}

/* Petugas memindai dari ponsel: putusan tampil lebih dahulu, navigasi turun ke bawah (grid satu kolom pada layar sempit) */
@media (max-width:900px){.app:has(.kartu-putusan) .rail{order:2}}

@page{size:A4 portrait;margin:10mm}
@media print{
  .topbar,.kartu-saring,.kartu-catatan,.app:has(.kartu-lembar) .kaki{display:none!important}
  .kartu-lembar{gap:4mm}
  .kartu-id{border-color:#777}
}
