:root{
  --dasar:#05060f; --panel:#0a0d1c; --panel2:#0d1122;
  --tinta:#eef2ff; --redup:#8b93b8; --garis:rgba(120,140,200,.16);
  --sian:#22d3ee; --hijau:#2be88a; --emas:#fbbf24; --biru:#3d8bff;
  --merah:#ff3d55; --ungu:#a855f7;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
}
*{box-sizing:border-box} html,body{margin:0;height:100%}
body{background:
    radial-gradient(1000px 520px at 88% -6%, rgba(61,139,255,.12), transparent 60%),
    radial-gradient(760px 460px at 6% 8%, rgba(168,85,247,.10), transparent 55%),
    var(--dasar);
  color:var(--tinta); font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  -webkit-font-smoothing:antialiased; line-height:1.5}
a{color:var(--sian)}

.tbl{font:inherit;cursor:pointer;border:1px solid var(--garis);background:rgba(255,255,255,.04);color:var(--tinta);
  padding:8px 13px;border-radius:10px;font-size:12.5px;font-weight:600;text-decoration:none;display:inline-block;transition:border-color .15s,background .15s}
.tbl:hover{border-color:rgba(120,140,200,.4)}
.tbl.utama{background:linear-gradient(120deg,rgba(34,211,238,.18),rgba(61,139,255,.22));border-color:rgba(34,211,238,.45);color:#dff3ff}
.tbl.bahaya{color:#ffd0d6} .tbl.bahaya:hover{border-color:var(--merah)}
.tbl.lebar{width:100%}
input{font:inherit;width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--garis);background:var(--panel2);color:var(--tinta);font-size:14px}
input:focus{outline:none;border-color:var(--biru)}
label{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--redup);margin:12px 0 6px}

/* ---- Login ---- */
.pusat{display:grid;place-items:center;min-height:100vh;padding:20px}
.masuk{width:100%;max-width:360px;background:linear-gradient(180deg,var(--panel2),var(--panel));
  border:1px solid var(--garis);border-radius:16px;padding:30px 26px;text-align:center}
.masuk .logo{font-size:38px}
.masuk h1{font-size:16px;letter-spacing:.16em;margin:6px 0 2px;font-weight:800;
  background:linear-gradient(100deg,var(--sian),var(--biru) 55%,var(--ungu));-webkit-background-clip:text;background-clip:text;color:transparent}
.masuk .sub{color:var(--redup);font-size:12px;margin:0 0 18px;font-family:var(--mono);letter-spacing:.1em}
.masuk label,.masuk input{text-align:left}
.masuk .lebar{margin-top:18px}
.masuk .err{background:rgba(255,61,85,.12);border:1px solid rgba(255,61,85,.4);border-radius:9px;padding:9px 12px;font-size:13px;margin:0 0 12px}
.masuk .kaki{color:var(--redup);font-size:10.5px;margin:16px 0 0;font-family:var(--mono);letter-spacing:.08em}

/* ---- Tata letak: sidebar kartu melayang + isi kartu ---- */
.tata{display:flex;gap:16px;height:100vh;padding:16px;align-items:stretch}
.sisi{flex:0 0 214px;display:flex;flex-direction:column;gap:12px;padding:14px 12px;min-height:0;
  border:1px solid var(--garis);border-radius:16px;background:rgba(10,13,28,.86);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.sisi .merek{display:flex;align-items:center;gap:9px;padding:2px 4px 12px;border-bottom:1px solid var(--garis)}
.sisi .merek b{margin:0;font-size:14px;font-weight:800;letter-spacing:.12em;
  background:linear-gradient(100deg,var(--sian),var(--biru) 55%,var(--ungu));-webkit-background-clip:text;background-clip:text;color:transparent}
.titik{width:9px;height:9px;border-radius:50%;background:var(--sian);box-shadow:0 0 10px var(--sian);flex:none}
.nav{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding-right:2px}
.nav .grup{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--redup);padding:12px 8px 4px}
.nav .item{display:flex;align-items:center;gap:9px;padding:9px 11px;border:1px solid var(--garis);border-radius:9px;
  background:rgba(255,255,255,.03);color:var(--redup);text-decoration:none;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;transition:color .18s,border-color .18s}
.nav .item:hover{color:var(--tinta);border-color:rgba(120,140,200,.36)}
.nav .item.aktif{color:#cfe9ff;border-color:rgba(61,139,255,.5);
  background:linear-gradient(120deg,rgba(34,211,238,.14),rgba(61,139,255,.16))}
.nav .item .ik{font-size:14px;width:18px;text-align:center;flex:none}
.keluar{margin-top:4px}

.isi{flex:1;display:flex;flex-direction:column;min-width:0;
  border:1px solid var(--garis);border-radius:16px;background:linear-gradient(180deg,var(--panel2),var(--panel));overflow:hidden}
.atas{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--garis);background:rgba(5,6,15,.5)}
.atas b{font-size:13.5px}
.atas .burger{display:none}
.atas #tautanBaru{margin-left:auto}
.atas #tombolBeranda{display:none}

/* ---- Beranda: kotak-kotak ---- */
.beranda{flex:1;overflow-y:auto;padding:clamp(16px,3vw,26px)}
.beranda[hidden]{display:none}
.beranda-grup{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--redup);margin:6px 2px 12px}
.beranda-grup:not(:first-child){margin-top:26px}
.petak{display:grid;grid-template-columns:repeat(auto-fill,minmax(184px,1fr));gap:14px}
.kotak{display:flex;flex-direction:column;gap:9px;padding:18px 16px;border-radius:14px;text-decoration:none;color:var(--tinta);
  background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--garis);transition:transform .12s,border-color .12s}
.kotak:hover{transform:translateY(-2px);border-color:rgba(34,211,238,.5)}
.kotak-ik{font-size:30px;line-height:1}
.kotak-judul{font-weight:700;font-size:14px}
.kotak-buka{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;color:var(--sian);margin-top:2px}

/* ---- Bingkai ---- */
.bingkai{position:relative;flex:1;min-height:0;background:#fff}
.bingkai[hidden]{display:none}
.bingkai iframe{width:100%;height:100%;border:0;display:block;position:relative;z-index:1;background:#fff}
.tirai{position:absolute;inset:0;display:grid;place-items:center;background:var(--dasar);z-index:0}
.tirai[hidden]{display:none}
.tirai-isi{text-align:center;max-width:340px;padding:20px}
.tirai-ikon{font-size:44px}
.tirai-isi b{display:block;margin:6px 0 4px}
.tirai .sub{color:var(--redup);font-size:13px;margin:0 0 16px}

@media (max-width:760px){
  .tata{padding:10px;gap:0}
  .sisi{position:fixed;z-index:60;left:0;top:0;bottom:0;border-radius:0;transform:translateX(-100%);transition:transform .2s;width:250px}
  .sisi.buka{transform:none;box-shadow:0 0 44px rgba(0,0,0,.7)}
  .atas .burger{display:inline-block}
}
