:root{
  --merah:#B4121B;
  --merah-tua:#8E0D14;
  --teks:#22252A;
  --lembut:#7A8087;
  --garis:#E4E7EB;
  --bg:#F4F5F7;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  background:var(--bg);color:var(--teks);font-size:15px;line-height:1.5;
}
a{color:var(--merah)}

/* ---------- login ---------- */
.layar-login{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}
.kotak-login{
  background:#fff;padding:36px 30px;border-radius:16px;width:100%;max-width:380px;
  box-shadow:0 10px 40px rgba(0,0,0,.08);text-align:center;
}
.logo-login{width:150px;margin-bottom:18px}
.kotak-login h1{font-size:17px;margin-bottom:22px;font-weight:600}
.kotak-login label{display:block;text-align:left;font-size:13px;color:var(--lembut);margin-bottom:6px}
.kotak-login input{width:100%;margin-bottom:16px}
.kotak-login button{width:100%}

/* ---------- kerangka ---------- */
.bar{
  background:#fff;border-bottom:1px solid var(--garis);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 22px;height:60px;flex-wrap:wrap;gap:10px;
}
.merek{display:flex;align-items:center;gap:10px;font-weight:600;color:var(--teks);text-decoration:none;font-size:15px}
.merek img{height:26px}
.bar nav{display:flex;gap:18px}
.bar nav a+a{margin-left:18px}
.bar nav a{text-decoration:none;font-size:14px;color:var(--lembut)}
.bar nav a:hover{color:var(--merah)}
.isi{max-width:1000px;margin:0 auto;padding:28px 22px 70px}
.judul{font-size:21px;font-weight:650;margin-bottom:20px}

/* ---------- notifikasi ---------- */
.notif{
  background:#E9F7EF;border:1px solid #BFE6CE;color:#1D6B3D;
  padding:11px 15px;border-radius:9px;margin-bottom:18px;font-size:14px;
}
.notif.galat{background:#FDECEC;border-color:#F5C2C2;color:#9B1C1C}
.kosong{color:var(--lembut);padding:40px 0}

/* ---------- tabel ---------- */
.tabel{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.tabel th,.tabel td{padding:13px 14px;text-align:left;border-bottom:1px solid var(--garis);font-size:14px;vertical-align:middle}
.tabel th{background:#FAFBFC;font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--lembut);font-weight:600}
.tabel tr:last-child td{border-bottom:none}
.tabel .tengah{text-align:center}
.lembut{color:var(--lembut)}
.status{font-size:12px;padding:3px 9px;border-radius:20px;font-weight:600}
.status.hidup{background:#E6F5EC;color:#1D6B3D}
.status.mati{background:#F1F2F4;color:#7A8087}
.aksi-baris{display:flex;gap:12px;align-items:center;justify-content:flex-end}
.aksi-baris>*+*{margin-left:12px}
.aksi-baris a,.tautan-hapus{font-size:13px;text-decoration:none}
.tautan-hapus{background:none;border:none;color:#B4121B;cursor:pointer;padding:0;font:inherit;font-size:13px}
.tautan-hapus:hover{text-decoration:underline}

/* ---------- form ---------- */
.form{background:#fff;border-radius:12px;padding:6px 24px 24px;box-shadow:0 1px 3px rgba(0,0,0,.06)}
fieldset{border:none;border-top:1px solid var(--garis);padding:20px 0}
fieldset:first-of-type{border-top:none}
legend{font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--lembut);font-weight:600;padding-right:10px}
.form p{margin-bottom:16px}
.kolom-2{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
@media (max-width:640px){.kolom-2{grid-template-columns:1fr}}
label{display:block;font-size:13.5px;font-weight:500;margin-bottom:6px}
input[type=text],input[type=email],input[type=password],input:not([type]),textarea,select{
  width:100%;padding:10px 12px;border:1px solid var(--garis);border-radius:8px;
  font-family:inherit;font-size:14.5px;background:#fff;color:var(--teks);
}
input:focus,textarea:focus,select:focus{outline:2px solid var(--merah);outline-offset:-1px;border-color:var(--merah)}
textarea{resize:vertical}
small{display:block;margin-top:5px;font-size:12.5px;color:var(--lembut)}
code{background:#F1F2F4;padding:1px 5px;border-radius:4px;font-size:12.5px}
.centang label{display:flex;align-items:flex-start;gap:9px;font-weight:400;font-size:14px}
.centang input{margin-top:3px;width:auto}

/* ---------- tombol ---------- */
button,.batal{
  font-family:inherit;font-size:14.5px;font-weight:600;
  padding:11px 20px;border-radius:9px;border:none;cursor:pointer;text-decoration:none;display:inline-block;
}
button,.utama{background:var(--merah);color:#fff}
button:hover,.utama:hover{background:var(--merah-tua)}
.batal{background:#F1F2F4;color:var(--lembut)}
.tombol-bar{display:flex;gap:12px;align-items:center;margin-top:8px}
.tombol-bar>*+*{margin-left:12px}

/* ---------- halaman QR ---------- */
.panel-qr{display:grid;grid-template-columns:340px 1fr;gap:28px;background:#fff;border-radius:12px;padding:26px;box-shadow:0 1px 3px rgba(0,0,0,.06)}
@media (max-width:760px){.panel-qr{grid-template-columns:1fr}}
.kotak-qr{border:1px solid var(--garis);border-radius:12px;padding:14px;background:#fff;align-self:start}
.kotak-qr canvas{width:100%;height:auto;display:block}
.info-qr h2{font-size:19px;margin-bottom:2px}
.info-qr .tautan{margin:14px 0 18px;font-size:14px;word-break:break-all}
.pilihan{display:flex;flex-direction:column;gap:9px;margin-bottom:20px}
.pilihan label{display:flex;align-items:center;gap:9px;font-weight:400;font-size:14px;margin:0}
.pilihan input{width:auto}
.catatan{margin-top:20px;font-size:13px;color:var(--lembut);line-height:1.6;border-top:1px solid var(--garis);padding-top:16px}

/* ---------- tab ---------- */
.tab-bar{display:flex;gap:4px;border-bottom:1px solid var(--garis);margin:0 -24px 20px;padding:0 24px}
.tab{background:none;color:var(--lembut);border:none;border-bottom:2px solid transparent;
     border-radius:0;padding:12px 16px;font-size:14px;font-weight:600;cursor:pointer}
.tab:hover{background:none;color:var(--teks)}
.tab.aktif{color:var(--merah);border-bottom-color:var(--merah)}
.panel-tab{display:none}
.panel-tab.aktif{display:block}

/* ---------- susunan form + pratinjau ---------- */
.susun{display:grid;grid-template-columns:1fr 320px;gap:30px;align-items:start}
@media (max-width:900px){.susun{grid-template-columns:1fr}.kanan{display:none}}
.bingkai-hp{border:10px solid #22252A;border-radius:30px;overflow:hidden;background:#22252A;
            box-shadow:0 10px 30px rgba(0,0,0,.18)}
.bingkai-hp iframe{width:100%;height:600px;border:none;display:block;background:#fff}
.catatan-kecil{margin-top:11px;font-size:12.5px;color:var(--lembut);line-height:1.5;text-align:center}

/* ---------- foto ---------- */
.foto-ada{display:flex;align-items:center;gap:14px;margin-bottom:10px}
.foto-ada img{width:64px;height:64px;border-radius:50%;object-fit:cover;border:1px solid var(--garis)}
.centang-kecil{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:400;margin:0}
.centang-kecil input{width:auto}
input[type=file]{width:100%;padding:9px;border:1px dashed var(--garis);border-radius:8px;font-size:13.5px;background:#FAFBFC}
input[type=color]{width:100%;height:42px;padding:3px;border:1px solid var(--garis);border-radius:8px;background:#fff;cursor:pointer}
input[type=range]{width:100%;accent-color:var(--merah)}
input[type=date]{width:100%;padding:10px 12px;border:1px solid var(--garis);border-radius:8px;font-family:inherit;font-size:14.5px}

/* ---------- avatar di tabel ---------- */
.sel-nama{display:flex;align-items:center;gap:11px}
.avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;flex:0 0 34px}
.kosong-avatar{background:#EDEFF2;color:var(--lembut);display:flex;align-items:center;
               justify-content:center;font-weight:700;font-size:14px}

/* ---------- tautan ---------- */
.petunjuk-blok{color:var(--lembut);font-size:13.5px;margin-bottom:16px;line-height:1.6}
.baris-tautan{display:grid;grid-template-columns:150px 160px 1fr 36px;gap:10px;margin-bottom:10px;align-items:center}
@media (max-width:640px){.baris-tautan{grid-template-columns:1fr 1fr;grid-template-areas:none}}
.hapus-baris{background:#F1F2F4;color:var(--lembut);font-size:19px;line-height:1;padding:9px 0;border-radius:8px}
.hapus-baris:hover{background:#FDECEC;color:#B4121B}
.preset-bar{display:flex;flex-wrap:wrap;gap:8px}
.preset{background:#F1F2F4;color:var(--teks);font-size:13px;font-weight:500;padding:8px 14px;border-radius:20px}
.preset:hover{background:var(--merah);color:#fff}

/* ---------- QR ---------- */
.tautan-qr{margin-top:12px;font-size:12.5px;text-align:center;word-break:break-all}
.info-qr .kolom-2{gap:0 16px}

/* ---------- statistik ---------- */
.sub-judul{color:var(--lembut);font-size:14px;margin:-12px 0 20px}
.kartu-angka{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}
@media (max-width:600px){.kartu-angka{grid-template-columns:1fr}}
.angka{background:#fff;border-radius:12px;padding:20px;text-align:center;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.angka .besar{display:block;font-size:30px;font-weight:700;color:var(--merah)}
.angka .ket{font-size:13px;color:var(--lembut)}
.blok{background:#fff;border-radius:12px;padding:22px 24px;margin-bottom:16px;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.blok h2{font-size:15px;margin-bottom:16px;font-weight:650}
.grafik{display:flex;align-items:flex-end;gap:2px;height:130px;padding-top:6px}
.batang{flex:1;background:var(--merah);border-radius:3px 3px 0 0;min-height:2px;opacity:.85}
.batang:hover{opacity:1}
.sumbu{display:flex;justify-content:space-between;font-size:12px;color:var(--lembut);margin-top:8px}
.bar-baris{display:grid;grid-template-columns:90px 1fr 44px;gap:12px;align-items:center;margin-bottom:10px;font-size:13.5px}
.bar-jalur{background:#F1F2F4;border-radius:20px;height:9px;overflow:hidden}
.bar-isi{display:block;height:100%;background:var(--merah);border-radius:20px}
.bar-nilai{text-align:right;color:var(--lembut)}

/* ---------- impor & cetak ---------- */
.baris-impor{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.baris-impor input[type=file]{flex:1;min-width:220px}
.lembar-cetak{display:none}
.sel-cetak{text-align:center;margin:0}
.sel-cetak canvas{width:100%;max-width:190px;height:auto}
.sel-cetak figcaption{font-size:12px;line-height:1.4;margin-top:4px}
.sel-cetak figcaption strong{display:block}
.sel-cetak figcaption span{color:#666;font-size:11px}
@media print{
  .bar,.judul,.blok,.notif{display:none!important}
  .isi{padding:0;max-width:none}
  .lembar-cetak{display:grid!important;grid-template-columns:repeat(3,1fr);gap:22px}
  .sel-cetak{break-inside:avoid;page-break-inside:avoid}
}
