/* =====================================================================
   peserta.css — lapisan gaya untuk halaman peserta yang logikanya masih
   memakai kode lama (lembar SHU, kartu prinsip, pre/post test, dsb.).
   Dimuat SETELAH app.css. Nama variabel lama dipetakan ke token baru,
   sehingga gaya sebaris di dalam skrip lama ikut berganti tampilan.
   ===================================================================== */
:root{
  --paper:var(--bg); --bar:var(--surface-2); --rule:var(--border); --ink:var(--text);
  --ink-soft:var(--text-2); --seal:var(--bad); --gold:var(--brand-600); --biru:var(--brand-600);
  --serif:var(--font); --sans:var(--font);
}

/* ---------- kerangka ---------- */
.wrap{width:100%;max-width:var(--lebar,760px);margin:0 auto;padding:0 20px 80px}
.page-intro{padding:28px 0 18px}
.page-intro h1{font-size:clamp(24px,4.4vw,32px);margin:6px 0 8px}
.page-intro p{color:var(--text-2);max-width:62ch}
.eyebrow{font-family:var(--font)}
h1,h2,h3{font-family:var(--font)}

/* ---------- formulir ---------- */
label{display:block;font-family:var(--font);font-size:var(--fs-sm);font-weight:600;letter-spacing:0;text-transform:none;color:var(--text);margin-bottom:6px}
input[type=text],input[type=tel],input[type=email],input:not([type]),textarea{
  width:100%;min-height:44px;padding:10px 12px;font:inherit;font-size:16px;color:var(--text);
  background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);transition:border-color .15s,box-shadow .15s}
textarea{min-height:92px;line-height:1.5;resize:vertical}
input:focus,textarea:focus{outline:none;border-color:var(--brand-500);box-shadow:var(--focus)}
input[readonly]{background:var(--surface-2)}
input[type=radio],input[type=checkbox]{accent-color:var(--brand-500);width:18px;height:18px}
::placeholder{color:var(--text-3)}

/* ---------- tombol (elemen <button> polos di halaman lama) ---------- */
button:not(.btn):not(.tab){
  display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 18px;
  font:inherit;font-weight:600;font-size:var(--fs-sm);line-height:1.2;border-radius:var(--r-md);cursor:pointer;
  background:var(--brand-500);color:#fff;border:1px solid var(--brand-500);transition:background .15s,border-color .15s}
button:not(.btn):not(.tab):not(:disabled):hover{background:var(--brand-600);border-color:var(--brand-600)}
button:not(.btn):not(.tab).ghost{background:var(--surface);color:var(--text);border-color:var(--border-strong)}
button:not(.btn):not(.tab).ghost:not(:disabled):hover{background:var(--surface-2)}
button:not(.btn):not(.tab):disabled{opacity:.5;cursor:not-allowed}
:root[data-theme="dark"] button:not(.btn):not(.tab):not(.ghost){color:#0B1220}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) button:not(.btn):not(.tab):not(.ghost){color:#0B1220} }

/* ---------- status & pesan ---------- */
.kelas-status{margin-top:14px;padding:10px 14px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface-2);font-size:var(--fs-sm);color:var(--text-2);font-family:var(--font)}
.kelas-status.ok{border-color:var(--ok-border);background:var(--ok-bg);color:var(--ok)}
.kelas-status.no{border-color:var(--bad-border);background:var(--bad-bg);color:var(--bad)}
.kelas-status a{color:inherit;font-weight:600}
.pesan,.pesan-kirim,.status,.simpan-status{font-family:var(--font);font-size:var(--fs-sm);color:var(--text-2)}
.pesan.no{color:var(--bad)} .pesan.ok,.status.tersimpan{color:var(--ok)}

/* ---------- tabel ---------- */
table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
th{text-align:left;font-family:var(--font);font-size:12px;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);padding:10px 12px;border-bottom:1px solid var(--border);background:var(--surface-2)}
td{padding:10px 12px;border-bottom:1px solid var(--border)}
tbody tr:nth-child(odd){background:transparent}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font)}

.pita-pratinjau,.banner-pratinjau{background:var(--warn-bg);color:var(--warn);border-bottom:1px solid var(--warn-border);font-family:var(--font);font-size:var(--fs-sm);font-weight:600;text-align:center;padding:9px 16px}
footer.catatan-kaki{border-top:1px solid var(--border);padding:22px 0 30px;color:var(--text-3);font-size:var(--fs-sm);margin-top:40px}
@media print{.topbar{display:none}}
input[type=radio]:focus-visible,input[type=checkbox]:focus-visible{box-shadow:none;outline:2px solid var(--brand-500);outline-offset:2px}
@media(max-width:480px){.topbar .btn.ghost{display:none}}
