/* app.css -- bahasa desain dashboard (8.1). Tanpa framework. */
:root {
  --latar: #0e1116;
  --kartu: #181c24;
  --garis: #343a46;
  --teks: #eef0f5;
  --redup: #8c92a0;
  --hijau: #c6f24d;
  --ungu: #7b68ee;
  --biru: #8fb7ff;
  --merah: #c84646;
  --kuning: #2e2816;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  background: var(--latar);
  color: var(--teks);
  font-family: -apple-system, "Segoe UI", Roboto, Ubuntu, sans-serif;
  display: flex;
  min-height: 100vh;
}
a { color: var(--ungu); text-decoration: none; }
h1 { font-size: 22px; margin: 0 0 16px; }
h2 { font-size: 15px; color: var(--redup); margin: 24px 0 8px; text-transform: none; }

/* ---- menu samping (8.3) ---- */
.samping {
  width: 260px;
  min-width: 260px;
  background: var(--kartu);
  border-right: 1px solid var(--garis);
  padding: 18px 12px 12px;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
.samping .kelompok {
  font-size: 11px;
  font-family: ui-monospace, "SF Mono", Menlo, monospace;
  color: var(--redup);
  letter-spacing: 1px;
  margin: 14px 8px 4px;
}
.samping a.butir {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 8px;
  color: var(--teks);
  font-size: 14px;
}
.samping a.butir:hover { background: #202530; }
.samping a.butir.aktif { background: #202530; color: #fff; }
.kotakwarna { width: 16px; height: 16px; border-radius: 4px; flex: none; }
.samping .bawah {
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid var(--garis);
  font-size: 13px;
  color: var(--redup);
  display: flex;
  align-items: center;
  gap: 8px;
}
.titikdenyut { width: 10px; height: 10px; border-radius: 50%; background: var(--hijau); display: inline-block; }
.titikdenyut.merah { background: var(--merah); }

/* ---- konten ---- */
.konten { flex: 1; padding: 24px 28px; max-width: 1200px; }
.kartu {
  background: var(--kartu);
  border: 1px solid var(--garis);
  border-radius: 8px;
  padding: 14px 16px;
  margin-bottom: 12px;
}
.baris { display: flex; gap: 12px; flex-wrap: wrap; }
.kolom { flex: 1; min-width: 240px; }
input, textarea, select {
  background: var(--latar);
  border: 1px solid var(--garis);
  color: var(--teks);
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 14px;
  font-family: inherit;
  width: 100%;
}
button {
  background: var(--hijau);
  color: #10130a;
  border: none;
  border-radius: 8px;
  padding: 10px 18px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}
button.sedang { padding: 6px 12px; font-size: 13px; }
button.merah { background: var(--merah); color: #fff; }
button.ungu { background: var(--ungu); color: #fff; }
button:disabled { opacity: 0.5; cursor: not-allowed; }
.pesanmerah {
  background: rgba(200, 70, 70, 0.12);
  border: 1px solid var(--merah);
  color: #ffb3b3;
  border-radius: 8px;
  padding: 10px 14px;
  margin: 10px 0;
  white-space: pre-wrap;
}
.kuning { background: var(--kuning); border-color: #6b5b23; }
.kecil { font-size: 12px; color: var(--redup); }
.tabel { width: 100%; border-collapse: collapse; font-size: 13px; }
.tabel th, .tabel td { text-align: left; padding: 7px 9px; border-bottom: 1px solid var(--garis); vertical-align: top; }
.tabel th { color: var(--redup); font-weight: 500; font-size: 12px; }
.tabel td.putus { word-break: break-word; }
.bar { background: #242a35; border-radius: 6px; height: 8px; overflow: hidden; }
.bar > div { height: 100%; background: var(--biru); }
.bar > div.tinggi { background: #d8c34a; }
.bar > div.penuh { background: var(--merah); }
.badge { display: inline-block; padding: 2px 8px; border-radius: 6px; font-size: 12px; background: #242a35; color: var(--teks); }
.badge.hijau { background: rgba(198, 242, 77, 0.15); color: var(--hijau); }
.badge.merah { background: rgba(200, 70, 70, 0.2); color: #ffb3b3; }
.badge.biru { background: rgba(143, 183, 255, 0.15); color: var(--biru); }
.badge.kuning { background: rgba(216, 195, 74, 0.15); color: #e8d47a; }

/* ---- halaman masuk (8.2c) ---- */
body.masuk { align-items: center; justify-content: center; }
.kartu-masuk { width: 340px; }
.kartu-masuk .kartu { padding: 26px 24px; }
.kartu-masuk h1 { text-align: center; font-size: 20px; margin-bottom: 4px; }
.kartu-masuk .kecil { text-align: center; display: block; margin-bottom: 18px; }
.kartu-masuk label { display: block; font-size: 12px; color: var(--redup); margin: 10px 0 4px; }
.kartu-masuk button { width: 100%; margin-top: 18px; }

@media (max-width: 700px) {
  body { flex-direction: column; }
  .samping { width: 100%; min-width: 0; min-height: 0; border-right: none; border-bottom: 1px solid var(--garis); }
  .konten { padding: 16px 12px; }
}
