:root{
  --bg:#f6f7ff;
  --card:#ffffff;
  --text:#111827;
  --muted:#6b7280;
  --border:#e5e7eb;
  --accent:#6366f1;
  --soft:#eef2ff;
  --danger:#ef4444;
  --shadow: 0 12px 28px rgba(17,24,39,.08);
}

/* warna mapel */
:root{
  --bi:#2563eb;   /* Bahasa Indonesia */
  --mtk:#f59e0b;  /* Matematika */
  --bing:#10b981; /* Bahasa Inggris */
  --p1:#8b5cf6;   /* Pilihan 1 */
  --p2:#ec4899;   /* Pilihan 2 */
}

*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial;background:var(--bg);color:var(--text)}
.wrap{max-width:980px;margin:0 auto;padding:14px}
.card{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:14px;box-shadow:var(--shadow)}
h1{margin:0 0 6px;font-size:20px}
.muted{color:var(--muted)}
.small{font-size:12px}

.form{display:grid;gap:10px;margin-top:10px}
label{font-weight:800;font-size:13px}
input{width:100%;padding:12px;border:1px solid var(--border);border-radius:14px;outline:none;font-size:15px}
input:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(99,102,241,.12)}

.btn{
  background:var(--accent);color:#fff;border:none;border-radius:14px;
  padding:12px 14px;font-weight:900;cursor:pointer;font-size:15px;
}
.btn:hover{filter:brightness(.98)}
.btn.secondary{background:#111827}
.btn.ghost{background:#fff;color:#111827;border:1px solid var(--border)}

.alert{background:var(--soft);border:1px solid rgba(99,102,241,.25);padding:12px;border-radius:14px;margin:12px 0;font-weight:800}
.alert.danger{background:#fff1f2;border-color:#fecdd3;color:#9f1239}

.chip{
  display:inline-flex;align-items:center;gap:8px;padding:10px 12px;border-radius:999px;
  border:1px solid var(--border);text-decoration:none;color:var(--text);font-weight:900;background:#fafafa;
}
.chip:hover{border-color:rgba(99,102,241,.5)}

.top-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:10px}
.top-actions .grow{flex:1}

.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:12px}
.kartu{border:1px solid var(--border);border-radius:16px;padding:12px;background:#fcfcff}
.kartu-title{font-weight:1000;margin-bottom:10px;font-size:14px;display:flex;gap:8px;align-items:center}

.kv{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px dashed rgba(229,231,235,.9)}
.kv:last-child{border-bottom:0}
.kv span{color:var(--muted);font-weight:800}
.kv b{font-weight:1000}

/* baris nilai */
.nilai-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:10px 10px;border-radius:14px;margin-bottom:10px;
  background:#ffffff;border:1px solid var(--border);
  position:relative;
}
.nilai-row:last-child{margin-bottom:0}
.nilai-row::before{
  content:"";position:absolute;left:0;top:10px;bottom:10px;width:6px;border-radius:999px;background:#c7d2fe;
}
.nilai-row[data-mapel="bi"]::before{background:var(--bi)}
.nilai-row[data-mapel="mtk"]::before{background:var(--mtk)}
.nilai-row[data-mapel="bing"]::before{background:var(--bing)}
.nilai-row[data-mapel="p1"]::before{background:var(--p1)}
.nilai-row[data-mapel="p2"]::before{background:var(--p2)}

.left{padding-left:6px}
.mapel{font-weight:1000;font-size:15px}
.score{font-weight:1100;font-size:20px}
.pred{margin-top:6px}

/* badge predikat */
.b{
  display:inline-flex;padding:6px 10px;border-radius:999px;border:1px solid var(--border);
  font-weight:1000;font-size:12px;background:#fff;
}
.b.ist{border-color:#c7d2fe;background:#eef2ff;color:#3730a3}
.b.baik{border-color:#bbf7d0;background:#ecfdf5;color:#166534}
.b.memadai{border-color:#fed7aa;background:#fff7ed;color:#9a3412}

.hr{height:1px;background:var(--border);margin:12px 0;border:0}

/* HP */
@media (max-width:820px){
  .wrap{padding:12px}
  .grid{grid-template-columns:1fr}
  h1{font-size:20px}
  .score{font-size:22px}
}
.badge-wait {
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid #fed7aa;
  background:#fff7ed;
  color:#9a3412;
  font-weight:900;
  font-size:13px;
}
.btn-cert{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:12px 16px;
  border-radius:16px;                 /* bukan pill banget */
  background:linear-gradient(135deg, rgba(99,102,241,.16), rgba(124,58,237,.10));
  border:1px solid rgba(99,102,241,.25);
  color:#1f2a44;
  font-weight:1000;
  font-size:14px;
  text-decoration:none;
  box-shadow: 0 8px 18px rgba(17,24,39,.06);
  transition:.2s ease;
}

.btn-cert:hover{
  transform: translateY(-1px);
  box-shadow: 0 12px 24px rgba(17,24,39,.08);
  border-color: rgba(99,102,241,.35);
}

.btn-cert:active{
  transform: translateY(0px) scale(.99);
}

.btn-cert .icon{
  width:34px;height:34px;
  display:inline-flex;
  align-items:center;justify-content:center;
  border-radius:12px;
  background:rgba(99,102,241,.18);
  border:1px solid rgba(99,102,241,.22);
  font-size:16px;
}
.btn-out{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:12px 16px;
  border-radius:16px;
  background:#fff;
  border:1px solid var(--border);
  color:#111827;
  font-weight:1000;
  text-decoration:none;
  box-shadow: 0 8px 18px rgba(17,24,39,.04);
  transition:.2s ease;
}
.btn-out:hover{
  transform: translateY(-1px);
  box-shadow: 0 12px 24px rgba(17,24,39,.06);
}
.btn-out .icon{
  width:34px;height:34px;
  display:inline-flex;
  align-items:center;justify-content:center;
  border-radius:12px;
  background:#f3f4f6;
  border:1px solid var(--border);
  font-size:16px;
}
.footer{
  text-align:center;
  margin-top:14px;
  padding-top:10px;
  font-size:13px;
  font-weight:700;
  color:#6b7280;
  letter-spacing:.3px;
}
