:root { --sisi: 240px; --biru: #1d4ed8; --gelap: #0f172a; }
body { background: #f1f5f9; font-size: .925rem; }
.sisi { position: fixed; inset: 0 auto 0 0; width: var(--sisi); background: var(--gelap); color: #cbd5e1;
  padding-bottom: 1rem; overflow-y: auto; z-index: 1030; transition: transform .2s; }
.sisi .merek { color: #fff; font-weight: 700; padding: 1.1rem 1rem; font-size: 1.05rem; border-bottom: 1px solid #1e293b; margin-bottom: .5rem; }
.sisi a { display: block; color: #cbd5e1; text-decoration: none; padding: .55rem 1rem; border-left: 3px solid transparent; }
.sisi a i { width: 1.4rem; }
.sisi a:hover { background: #1e293b; color: #fff; }
.sisi a.aktif { background: #1e293b; color: #fff; border-left-color: #3b82f6; }
.sisi .pemisah { border-top: 1px solid #1e293b; margin: .75rem 0; }
.isi { margin-left: var(--sisi); min-height: 100vh; }
.atas { display: flex; align-items: center; gap: .75rem; background: #fff; padding: .85rem 1.25rem; border-bottom: 1px solid #e2e8f0; position: sticky; top: 0; z-index: 1020; }
.atas h1 { font-size: 1.15rem; margin: 0; font-weight: 600; }
.konten { padding: 1.25rem; }
.kartu { background: #fff; border: 1px solid #e2e8f0; border-radius: .6rem; padding: 1rem 1.1rem; }
.angka { font-size: 1.7rem; font-weight: 700; line-height: 1.1; }
.angka-label { color: #64748b; font-size: .8rem; text-transform: uppercase; letter-spacing: .03em; }
.table thead th { font-size: .78rem; text-transform: uppercase; color: #475569; background: #f8fafc; white-space: nowrap; }
.table td { vertical-align: middle; }
.kode { font-family: ui-monospace, Consolas, monospace; font-size: .85rem; }
.login-wadah { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #0f172a, #1d4ed8); }
.login-kartu { width: 100%; max-width: 380px; background: #fff; border-radius: .8rem; padding: 2rem; box-shadow: 0 20px 50px rgba(0,0,0,.25); }
@media (max-width: 991.98px) {
  .sisi { transform: translateX(-100%); }
  .sisi.buka { transform: none; }
  .isi { margin-left: 0; }
  .konten { padding: .9rem; }
}
