/* SIKERJA Nur Ihsan — UI modern, ringan, tanpa dependensi eksternal */
*,*::before,*::after{box-sizing:border-box}
:root{
  --utama:#0f766e; --utama-lembut:rgba(15,118,110,.12);
  --bg:#f4f6f9; --panel:#ffffff; --panel-2:#fbfcfe;
  --teks:#111827; --teks-2:#5b6676; --garis:#e4e8ee;
  --sukses:#0f9d58; --info:#2563eb; --peringatan:#d97706; --bahaya:#dc2626; --netral:#6b7280;
  --r:14px; --bayang:0 1px 2px rgba(16,24,40,.05),0 8px 24px -12px rgba(16,24,40,.18);
  --sisi-l:260px;
}
html[data-tema="gelap"]{
  --bg:#0d1117; --panel:#151b23; --panel-2:#1a212b; --teks:#e6edf3; --teks-2:#9aa7b5; --garis:#26303c;
  --bayang:0 1px 2px rgba(0,0,0,.4),0 8px 24px -12px rgba(0,0,0,.6);
}
body{margin:0;background:var(--bg);color:var(--teks);font:15px/1.55 "Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--utama);text-decoration:none}
h1,h2,h3,h4{margin:0 0 .6rem;line-height:1.25;font-weight:650}
h1{font-size:1.3rem} h2{font-size:1.1rem} h3{font-size:1rem}

/* ---------- Tata letak ---------- */
.tata-letak{display:flex;min-height:100vh}
.sisi{width:var(--sisi-l);flex:0 0 var(--sisi-l);background:var(--panel);border-right:1px solid var(--garis);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}
.merek{display:flex;gap:.7rem;align-items:center;padding:1.1rem 1rem;border-bottom:1px solid var(--garis)}
.merek img{width:40px;height:40px;object-fit:contain;border-radius:10px}
.merek-ikon{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,var(--utama),#0ea5a5);color:#fff;display:grid;place-items:center;font-weight:800;letter-spacing:.5px}
.merek strong{display:block;font-size:.95rem}
.merek span{display:block;font-size:.75rem;color:var(--teks-2)}
.menu{padding:.6rem;flex:1}
.menu-grup{font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;color:var(--teks-2);margin:1rem .7rem .35rem;font-weight:700}
.menu-item{display:flex;align-items:center;gap:.7rem;padding:.6rem .7rem;border-radius:10px;color:var(--teks-2);font-size:.9rem;font-weight:500;transition:.15s}
.menu-item svg{width:19px;height:19px;flex:0 0 19px}
.menu-item:hover{background:var(--panel-2);color:var(--teks)}
.menu-item.aktif{background:var(--utama-lembut);color:var(--utama);font-weight:650}
.sisi-kaki{padding:.8rem 1rem;font-size:.72rem;color:var(--teks-2);border-top:1px solid var(--garis)}
.konten{flex:1;min-width:0;display:flex;flex-direction:column}
.bilah{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:.8rem;padding:.75rem 1.4rem;background:color-mix(in srgb,var(--panel) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--garis)}
.bilah h1{margin:0;flex:1;font-size:1.12rem}
.bilah-kanan{display:flex;align-items:center;gap:.5rem}
.utama{padding:1.4rem;flex:1;max-width:1400px;width:100%}
.kaki{padding:1rem 1.4rem;color:var(--teks-2);font-size:.78rem;border-top:1px solid var(--garis)}
.hanya-hp{display:none}

.tombol-ikon{position:relative;background:transparent;border:1px solid var(--garis);color:var(--teks);width:36px;height:36px;border-radius:10px;cursor:pointer;display:grid;place-items:center;font-size:1rem}
.tombol-ikon:hover{background:var(--panel-2)}
.titik{position:absolute;top:-6px;right:-6px;background:var(--bahaya);color:#fff;font-size:.6rem;font-style:normal;padding:1px 5px;border-radius:9px}
.profil{position:relative;display:flex;align-items:center;gap:.6rem;padding:.25rem .5rem;border-radius:12px;cursor:pointer}
.profil:hover{background:var(--panel-2)}
.avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--utama),#0ea5a5);color:#fff;display:grid;place-items:center;font-weight:700;font-size:.8rem;flex:0 0 36px}
.profil-teks strong{display:block;font-size:.82rem}
.profil-teks span{display:block;font-size:.7rem;color:var(--teks-2)}
.dropdown{display:none;position:absolute;right:0;top:110%;background:var(--panel);border:1px solid var(--garis);border-radius:12px;box-shadow:var(--bayang);min-width:180px;overflow:hidden;z-index:40}
.profil.buka .dropdown{display:block}
.dropdown a{display:block;padding:.6rem .9rem;color:var(--teks);font-size:.86rem}
.dropdown a:hover{background:var(--panel-2)}
.dropdown a.bahaya{color:var(--bahaya);border-top:1px solid var(--garis)}

/* ---------- Komponen ---------- */
.kartu{background:var(--panel);border:1px solid var(--garis);border-radius:var(--r);box-shadow:var(--bayang);padding:1.1rem;margin-bottom:1.1rem}
.kartu-kepala{display:flex;align-items:center;gap:.8rem;justify-content:space-between;margin:-.2rem 0 .9rem}
.kartu-kepala h2,.kartu-kepala h3{margin:0}
.grid{display:grid;gap:1.1rem}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g-3-1{grid-template-columns:2fr 1fr}
.statistik{background:var(--panel);border:1px solid var(--garis);border-radius:var(--r);padding:1rem 1.1rem;box-shadow:var(--bayang);position:relative;overflow:hidden}
.statistik::after{content:"";position:absolute;inset:auto auto 0 0;height:3px;width:100%;background:linear-gradient(90deg,var(--utama),transparent)}
.statistik .label{font-size:.76rem;color:var(--teks-2);text-transform:uppercase;letter-spacing:.05em;font-weight:600}
.statistik .nilai{font-size:1.75rem;font-weight:700;margin:.25rem 0 .1rem;letter-spacing:-.02em}
.statistik .ket{font-size:.76rem;color:var(--teks-2)}

.lencana{display:inline-block;padding:.18rem .55rem;border-radius:999px;font-size:.72rem;font-weight:650;line-height:1.5;white-space:nowrap}
.lencana-sukses{background:rgba(15,157,88,.14);color:var(--sukses)}
.lencana-info{background:rgba(37,99,235,.14);color:var(--info)}
.lencana-peringatan{background:rgba(217,119,6,.16);color:var(--peringatan)}
.lencana-bahaya{background:rgba(220,38,38,.14);color:var(--bahaya)}
.lencana-netral{background:rgba(107,114,128,.16);color:var(--netral)}

.tabel-bungkus{overflow-x:auto;border-radius:12px;border:1px solid var(--garis)}
table.tabel{width:100%;border-collapse:collapse;font-size:.87rem;background:var(--panel);min-width:520px}
table.tabel th{background:var(--panel-2);text-align:left;padding:.65rem .8rem;font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;color:var(--teks-2);font-weight:700;white-space:nowrap;border-bottom:1px solid var(--garis)}
table.tabel td{padding:.65rem .8rem;border-bottom:1px solid var(--garis);vertical-align:middle}
table.tabel tbody tr:last-child td{border-bottom:0}
table.tabel tbody tr:hover{background:var(--panel-2)}
.kanan{text-align:right}.tengah{text-align:center}
.kecil{font-size:.78rem;color:var(--teks-2)}
.mono{font-variant-numeric:tabular-nums}

.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem .95rem;border-radius:10px;border:1px solid transparent;background:var(--utama);color:#fff;font-size:.86rem;font-weight:600;cursor:pointer;transition:.15s;text-decoration:none}
.btn:hover{filter:brightness(1.08)}
.btn-garis{background:transparent;border-color:var(--garis);color:var(--teks)}
.btn-garis:hover{background:var(--panel-2)}
.btn-bahaya{background:var(--bahaya)}
.btn-sukses{background:var(--sukses)}
.btn-kecil{padding:.32rem .6rem;font-size:.78rem;border-radius:8px}
.aksi-baris{display:flex;gap:.35rem;flex-wrap:wrap}

label.bidang{display:block;margin-bottom:.85rem;font-size:.83rem;font-weight:600;color:var(--teks-2)}
label.bidang > span{display:block;margin-bottom:.3rem}
input[type=text],input[type=email],input[type=password],input[type=date],input[type=time],input[type=number],input[type=file],select,textarea{
  width:100%;padding:.58rem .7rem;border:1px solid var(--garis);border-radius:10px;background:var(--panel-2);color:var(--teks);font:inherit;font-size:.88rem;font-weight:400}
input:focus,select:focus,textarea:focus{outline:2px solid var(--utama-lembut);border-color:var(--utama)}
textarea{min-height:88px;resize:vertical}
.baris{display:grid;gap:0 1rem;grid-template-columns:repeat(2,minmax(0,1fr))}
.baris-3{grid-template-columns:repeat(3,minmax(0,1fr))}
fieldset{border:1px solid var(--garis);border-radius:12px;padding:1rem;margin:0 0 1rem}
legend{font-size:.8rem;font-weight:700;color:var(--utama);padding:0 .4rem}

.alert{padding:.75rem 1rem;border-radius:12px;margin-bottom:1rem;font-size:.87rem;border:1px solid transparent}
.alert-sukses{background:rgba(15,157,88,.1);border-color:rgba(15,157,88,.3);color:var(--sukses)}
.alert-bahaya{background:rgba(220,38,38,.1);border-color:rgba(220,38,38,.3);color:var(--bahaya)}
.alert-info{background:rgba(37,99,235,.1);border-color:rgba(37,99,235,.3);color:var(--info)}
.alert-peringatan{background:rgba(217,119,6,.12);border-color:rgba(217,119,6,.32);color:var(--peringatan)}

.bar{height:8px;border-radius:99px;background:var(--garis);overflow:hidden}
.bar > i{display:block;height:100%;background:linear-gradient(90deg,var(--utama),#22c1a5);border-radius:99px}
.pilih-periode{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;background:var(--panel);border:1px solid var(--garis);border-radius:12px;padding:.5rem .8rem;width:fit-content}
.pilih-periode label{font-size:.78rem;color:var(--teks-2);font-weight:600}
.pilih-periode select{width:auto;min-width:220px}

.kosong{text-align:center;padding:2.5rem 1rem;color:var(--teks-2)}
.kosong strong{display:block;font-size:1rem;color:var(--teks);margin-bottom:.3rem}

/* Skala penilaian */
.skala{display:flex;gap:.3rem;flex-wrap:wrap}
.skala input{position:absolute;opacity:0;width:0;height:0}
.skala label{border:1px solid var(--garis);border-radius:9px;padding:.35rem .7rem;cursor:pointer;font-size:.82rem;font-weight:600;background:var(--panel-2);user-select:none}
.skala input:checked + label{background:var(--utama);color:#fff;border-color:var(--utama)}
.kriteria-blok{border:1px solid var(--garis);border-radius:12px;padding:.9rem;margin-bottom:.8rem;background:var(--panel-2)}
.kriteria-blok h4{margin:0 0 .2rem;font-size:.92rem}
.indikator{font-size:.78rem;color:var(--teks-2);margin:.35rem 0 .6rem;padding-left:1rem}
.indikator li{margin:.1rem 0}

/* Diagram sederhana */
.batang{display:flex;align-items:flex-end;gap:.5rem;height:150px;padding-top:.5rem}
.batang > div{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:.3rem;font-size:.72rem;color:var(--teks-2)}
.batang i{display:block;width:100%;border-radius:6px 6px 0 0;background:linear-gradient(180deg,var(--utama),#14b8a6);min-height:3px}

/* Login */
.masuk{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(1200px 600px at 10% 0%,var(--utama-lembut),transparent),var(--bg)}
.masuk-kotak{width:100%;max-width:410px;background:var(--panel);border:1px solid var(--garis);border-radius:20px;box-shadow:var(--bayang);padding:2rem}
.masuk-kepala{text-align:center;margin-bottom:1.4rem}
.masuk-kepala .merek-ikon{margin:0 auto .8rem;width:54px;height:54px;font-size:1.1rem}
.masuk-kepala h1{font-size:1.25rem;margin-bottom:.2rem}
.masuk-kepala p{margin:0;color:var(--teks-2);font-size:.85rem}

@media print{
  .sisi,.bilah,.kaki,.btn,.pilih-periode,.aksi-baris{display:none!important}
  body{background:#fff}.kartu{box-shadow:none;border:1px solid #ccc;break-inside:avoid}
  .utama{padding:0;max-width:none}
}
@media(max-width:1080px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g-3-1,.g3{grid-template-columns:1fr}}
@media(max-width:820px){
  .hanya-hp{display:grid}
  .sisi{position:fixed;left:-100%;z-index:60;transition:.25s;box-shadow:var(--bayang)}
  .sisi.buka{left:0}
  .g2,.baris,.baris-3{grid-template-columns:1fr}
  .profil-teks{display:none}
  .utama{padding:1rem}
}
