:root{--biru:#0b2545;--biru2:#13315c;--aksen:#1d4ed8;--aksen2:#2563eb;--abu:#64748b;--garis:#e2e8f0;--latar:#f4f6fa;--putih:#fff;--teks:#0f172a;--merah:#b91c1c;--hijau:#047857;--rad:12px}
*{box-sizing:border-box}
html,body{margin:0}
body{font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--teks);background:var(--latar)}
a{color:var(--aksen)}
h1,h2,h3{line-height:1.25;margin:0 0 .5em}
.wadah{max-width:1080px;margin:0 auto;padding:0 16px}
.atas{background:var(--biru);color:#fff}
.atas .wadah{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px}
.merek{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:700;letter-spacing:.2px}
.merek img{width:30px;height:30px}
.merek small{display:block;font-weight:400;opacity:.75;font-size:12px}
.tombol{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:10px;padding:10px 16px;font:600 14px system-ui,sans-serif;cursor:pointer;text-decoration:none;background:var(--aksen);color:#fff;min-height:42px}
.tombol:hover{background:var(--aksen2)}
.tombol.putih{background:#fff;color:var(--biru)}
.tombol.garis{background:transparent;color:var(--biru);border:1px solid var(--garis)}
.atas .tombol.garis,.hero .tombol.garis{color:#fff;border-color:rgba(255,255,255,.4)}
.tombol.merah{background:#fff;color:var(--merah);border:1px solid #fecaca}
.tombol.kecil{padding:6px 10px;min-height:34px;font-size:13px}
.tombol:disabled{opacity:.5;cursor:default}
/* beranda */
.hero{background:linear-gradient(160deg,var(--biru),var(--biru2));color:#fff;padding:48px 0 56px}
.hero h1{font-size:30px;max-width:640px}
.hero p{opacity:.85;max-width:600px;font-size:16px}
.hero .aksi{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.bagian{padding:36px 0}
.bagian h2{font-size:22px;color:var(--biru)}
.grid3{display:grid;gap:14px;grid-template-columns:1fr}
.kartu{background:var(--putih);border:1px solid var(--garis);border-radius:var(--rad);padding:18px}
.kartu h3{font-size:16px;color:var(--biru)}
.kartu p{margin:0;color:var(--abu)}
.ikon{width:38px;height:38px;border-radius:10px;background:#e0e7ff;color:var(--aksen);display:flex;align-items:center;justify-content:center;font-weight:700;margin-bottom:10px}
.izin{background:#fff7ed;border:1px dashed #fdba74;color:#9a3412;border-radius:6px;padding:1px 6px;font-size:13px;white-space:nowrap}
.kaki{background:var(--biru);color:rgba(255,255,255,.75);padding:22px 0;font-size:13px}
/* login */
.tengah{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(160deg,var(--biru),var(--biru2))}
.kotak-login{background:#fff;border-radius:16px;padding:26px 22px;width:100%;max-width:380px;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.kotak-login .merek{color:var(--biru);margin-bottom:18px}
label{display:block;font-size:13px;font-weight:600;color:#334155;margin:12px 0 4px}
input,select,textarea{width:100%;font:15px system-ui,sans-serif;padding:10px 12px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:var(--teks)}
input:focus,select:focus,textarea:focus{outline:2px solid #93c5fd;border-color:var(--aksen)}
textarea{min-height:110px;resize:vertical}
.pesan{margin-top:12px;font-size:14px;min-height:20px}
.pesan.err{color:var(--merah)}
.pesan.ok{color:var(--hijau)}
.lebar{width:100%;margin-top:16px}
/* aplikasi */
.isi{padding-top:18px;padding-bottom:40px}
.baris{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.baris.antara{justify-content:space-between}
.judul-hal{font-size:20px;color:var(--biru);margin:0}
.redup{color:var(--abu);font-size:13px}
.daftar{display:grid;gap:10px;margin-top:12px}
.item{background:#fff;border:1px solid var(--garis);border-radius:var(--rad);padding:14px;display:flex;justify-content:space-between;gap:10px;align-items:center;cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit}
.item:hover{border-color:#93c5fd}
.item b{color:var(--biru)}
.lencana{display:inline-block;font-size:12px;font-weight:600;border-radius:999px;padding:2px 9px;background:#e0e7ff;color:#3730a3}
.lencana.hijau{background:#d1fae5;color:#065f46}
.lencana.abu{background:#f1f5f9;color:#475569}
.lencana.oranye{background:#ffedd5;color:#9a3412}
.tab{display:flex;gap:6px;overflow-x:auto;margin:14px 0 4px}
.tab button{border:1px solid var(--garis);background:#fff;border-radius:999px;padding:7px 14px;font:600 13px system-ui,sans-serif;color:#334155;cursor:pointer;white-space:nowrap}
.tab button.aktif{background:var(--biru);color:#fff;border-color:var(--biru)}
.angka{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:12px 0}
.angka div{background:#fff;border:1px solid var(--garis);border-radius:10px;padding:10px 12px}
.angka span{display:block;font-size:12px;color:var(--abu)}
.angka b{font-size:17px;color:var(--biru);word-break:break-word}
.teks-panjang{white-space:pre-wrap;margin:0}
.lampiran{display:grid;gap:8px}
.lampiran a{display:flex;justify-content:space-between;gap:8px;padding:10px 12px;border:1px solid var(--garis);border-radius:10px;background:#fff;text-decoration:none;color:var(--teks)}
.grafik{background:#fff;border:1px solid var(--garis);border-radius:var(--rad);padding:12px;margin-top:12px}
.grafik svg{width:100%;height:auto;display:block}
.grafik .garis-g{stroke:#e2e8f0}
.grafik .label-g{fill:#64748b;font-size:12px}
.grafik .garis-data{fill:none;stroke:var(--aksen);stroke-width:2.5}
.grafik .titik{fill:#fff;stroke:var(--aksen);stroke-width:2}
.grafik .area{fill:#dbeafe;opacity:.6}
.kosong{background:#fff;border:1px dashed #cbd5e1;border-radius:var(--rad);padding:22px;text-align:center;color:var(--abu)}
.panel{background:#fff;border:1px solid var(--garis);border-radius:var(--rad);padding:16px;margin-top:14px}
.panel h3{font-size:16px;color:var(--biru)}
.dua{display:grid;gap:0 12px;grid-template-columns:1fr}.dua.tetap{grid-template-columns:1fr 1fr}
.kembali{background:none;border:0;color:var(--aksen);font:600 14px system-ui,sans-serif;cursor:pointer;padding:6px 0}
.cek{display:flex;align-items:center;gap:8px;margin-top:12px;font-weight:600}
.cek input{width:auto}
.tersembunyi{display:none!important}
.akun-baris{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--garis);word-break:break-all}
@media(min-width:720px){
  .hero{padding:72px 0 80px}.hero h1{font-size:40px}
  .grid3{grid-template-columns:repeat(3,1fr)}
  .angka{grid-template-columns:repeat(4,1fr)}
  .dua{grid-template-columns:1fr 1fr}
  .judul-hal{font-size:24px}
}

.grafik select{width:auto;padding:6px 10px;font-size:14px}
.lain-judul{margin-top:18px}

.profil{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.profil h3{margin:0 0 6px}.foto-profil{width:220px;max-width:100%;height:auto;border-radius:12px;background:#fff;object-fit:contain}@media(max-width:600px){.profil{flex-direction:column;text-align:center}}
