:root{--navy:#0b2b46;--blue:#0868bd;--line:#dbe4ee;--muted:#5b6b7c}
*{box-sizing:border-box}
body{margin:0;background:#f2f6fb;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--navy)}
.wrap{max-width:1000px;margin:0 auto;padding:20px;display:grid;gap:16px}
.kepala{display:flex;align-items:center;justify-content:space-between;gap:14px}
.cap{margin:0 0 4px;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
h1{margin:0;font-size:26px}
h2{margin:0 0 8px;font-size:19px}
.tautan{color:var(--blue);font-weight:700;text-decoration:none}
.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 14px 34px rgba(11,43,70,.07)}
.card.tersembunyi,.tersembunyi{display:none}
.petunjuk{margin:0 0 14px;color:var(--muted);font-size:14px;line-height:1.6}
.baris{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.field{display:grid;gap:6px;font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;flex:1;min-width:220px}
.field input,.field select{font:inherit;font-size:16px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#fff}
.utama{padding:12px 18px;border:0;border-radius:12px;background:linear-gradient(160deg,#0868bd,#0b4f7c);color:#fff;font-size:15px;font-weight:800;cursor:pointer}
.kecil{margin-top:8px;padding:8px 14px;border:1px solid var(--line);border-radius:10px;background:#f6f9fc;font-weight:800;cursor:pointer}
.catatan{margin:12px 0 0;font-size:14px;color:var(--muted)}
.catatan.galat{color:#b42318;font-weight:700}
.catatan.berhasil{color:#12805c;font-weight:700}
.token-baru{margin-top:14px;padding:14px;border:1px dashed var(--blue);border-radius:14px;background:#f4f9ff}
.token-baru code{display:block;margin:6px 0;font-size:15px;word-break:break-all;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px}
.tabel{width:100%;border-collapse:collapse;margin-top:14px;font-size:13px}
.tabel th,.tabel td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line)}
.tabel th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.tabel button{padding:6px 10px;border:1px solid #f6c9c9;border-radius:8px;background:#fdecec;color:#b42318;font-weight:800;cursor:pointer;margin:0 4px 4px 0}
.tabel button.tombol-hapus{background:#b42318;border-color:#b42318;color:#fff}
.card.bahaya{border-color:#f0b4b4;background:#fffafa}
.card.bahaya h2{color:#b42318}
.utama.bahaya{background:#b42318;border-color:#b42318;color:#fff}
.centang{display:flex;align-items:center;gap:8px;margin:10px 0;font-size:13px;color:#5b6a7d}
.card.bahaya-total{border:2px solid #b42318;background:linear-gradient(180deg,#fff4f3,#ffffff);border-radius:16px}
.card.bahaya-total h2{color:#8f1a12}
.cap-bahaya{margin:0 0 6px;font-size:11px;font-weight:900;letter-spacing:.16em;color:#b42318}
.tombol-bahaya{width:100%;margin-top:12px;padding:18px;border:0;border-radius:14px;background:linear-gradient(135deg,#c81e12,#7f0f08);color:#fff;font-size:17px;font-weight:900;letter-spacing:.04em;cursor:pointer;box-shadow:0 10px 26px rgba(180,35,24,.28)}
.tombol-bahaya:hover{filter:brightness(1.08)}
.slip-identitas{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px 6px;font-weight:700}
.slip-identitas>span:first-child{font-size:11px;word-break:break-all}
.slip-pembatas{color:#98a7b8;font-weight:900}
.lembar{display:grid;gap:18px;margin-top:16px}
.kelas{border:1px solid var(--line);border-radius:14px;padding:14px;break-inside:avoid}
.kelas h3{margin:0 0 10px;font-size:15px}
.grid-token{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}
.slip{border:1px dashed var(--line);border-radius:10px;padding:8px 10px;font-size:12px;background:#fbfdff}
.slip strong{display:block;font-size:13px}
.slip code{font-size:16px;font-weight:800;letter-spacing:.16em}
.daftar-cek{display:grid;gap:2px;margin-top:8px}
.cek{display:flex;align-items:center;gap:8px;padding:3px 8px;border-radius:6px;background:#fff;border:1px solid #eef2f6;font-size:12px}
.cek.sudah{background:#f1fbf5;border-color:#cbeedb}
.cek-tanda{width:16px;text-align:center;font-size:14px;color:#9aa8b8}
.cek.sudah .cek-tanda{color:#0f9d58}
.cek-nomor{min-width:58px;white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums}
.kepala-cetak{display:none}
.cek-nama{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

@media print{
  body{background:#fff}
  .kepala,.petunjuk,.baris,.kecil,.tautan,.catatan{display:none!important}
  #kartuPerangkat{display:none!important}
  .card{border:0;box-shadow:none;padding:0}
  .lembar{gap:10px}
  .kelas{page-break-inside:avoid}
  .kepala-cetak{display:block!important;font-weight:700;margin:0 0 12px}
  /* Hanya bagian yang dipilih yang ikut tercetak. */
  body[data-cetak] .card{display:none!important}
  body[data-cetak="kartuToken"] #kartuToken{display:block!important}
  body[data-cetak="kartuBelum"] #kartuBelum{display:block!important}
  body[data-cetak="kartuBelum"] .daftar-cek{grid-template-columns:repeat(2,1fr)}
}
