/* Taman Belajar — halaman MATERI (di atas belajar.css). Mobile-first, tombol besar. */
.hal-materi { padding-bottom: 110px; }
.m-wadah { position: relative; z-index: 1; max-width: 720px; margin: 0 auto; padding: 0 14px 20px; }
.m-bar { padding: 12px 0 4px; }
.m-bar .bar-judul { font-size: 17px; }

/* progres */
.m-progres-baris { display: flex; align-items: center; gap: 10px; margin: 4px 0 8px; }
.m-progres { flex: 1; display: flex; gap: 5px; }
.m-progres i { flex: 1; height: 10px; border-radius: 6px; background: #fff; box-shadow: inset 0 0 0 2px #d5dcec; transition: background .25s; }
.m-progres i.lewat { background: var(--hijau); box-shadow: none; }
.m-progres i.kini { background: var(--mapel); box-shadow: none; }
.m-tahap { font-size: 13px; color: var(--teks-2); font-weight: 900; min-width: 34px; text-align: right; }

/* Bu Gina */
.m-gina-baris { display: flex; align-items: flex-end; gap: 8px; margin: 2px 0 10px; }
.m-maskot { width: 70px; height: 72px; flex: none; }
.m-gina-baris .gelembung-kata { flex: 1; margin-bottom: 6px; min-width: 0; }
.m-baca-tombol { display: flex; flex-direction: column; gap: 6px; flex: none; }
.m-oto.aktif { background: var(--kuning); box-shadow: 0 3px 0 var(--kuning-tua); }

/* layar */
.m-layar { background: var(--kertas); border-radius: 24px; padding: 16px 16px 18px; box-shadow: var(--bayang); border-top: 8px solid var(--mapel); }
.m-layar.masuk { animation: kertas .35s ease-out; }
.m-jenis { margin: 0; font-size: 13px; font-weight: 900; color: var(--mapel); text-transform: uppercase; letter-spacing: .6px; }
.m-h { font-size: clamp(22px, 5.6vw, 30px); margin: 4px 0 8px; font-weight: 900; }
.m-teks p, .m-b-teks p { font-size: 18px; line-height: 1.5; margin: 8px 0; font-weight: 700; }
.m-teks mark, .m-b mark { background: linear-gradient(transparent 55%, rgba(255, 190, 27, .55) 55%); color: inherit; padding: 0 2px; }
.m-b { margin-top: 14px; }
.m-ket { font-size: 14px; color: var(--teks-2); margin: 6px 0 0; text-align: center; }
.m-cap { font-size: 17px; text-align: center; margin: 8px 0 0; }
.m-pengantar { font-size: 17px; margin: 0 0 8px; }
.memuat { text-align: center; }
.m-kosong { background: var(--kertas); border-radius: 24px; padding: 24px; text-align: center; box-shadow: var(--bayang); }

/* pecahan bersusun di teks */
.frac { display: inline-flex; flex-direction: column; align-items: center; vertical-align: middle; line-height: 1; margin: 0 2px; font-weight: 900; }
.frac b { padding: 0 3px 2px; border-bottom: 2.5px solid currentColor; }
.frac i { font-style: normal; padding: 2px 3px 0; }

/* adegan */
.m-adegan { display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap; }
.m-adegan figure { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.m-adegan figcaption { font-size: 15px; font-weight: 900; text-align: center; }
.m-op { font-size: 34px; font-weight: 900; color: var(--teks-2); }
.m-emoji { font-size: 64px; line-height: 1; }
.g-toples { width: 108px; height: auto; }
.g-toples-n { font-size: 30px; font-weight: 900; text-anchor: middle; fill: #1d2b4f; paint-order: stroke; stroke: #fff; stroke-width: 5px; font-family: var(--font); }
.g-adegan { width: 120px; height: auto; }
.g-adegan .tetes { animation: tetes 2.6s ease-in infinite; animation-delay: calc(var(--i) * .4s); }
@keyframes tetes { 0%, 60% { transform: translateY(0); opacity: 1; } 100% { transform: translateY(14px); opacity: 0; } }
.g-adegan .leleh { animation: leleh 2.4s ease-in-out infinite; transform-origin: 60px 60px; }
@keyframes leleh { 50% { transform: scaleY(1.12); } }

/* cek / pilihan */
.m-cek { background: #fff; border-radius: 20px; padding: 14px; box-shadow: inset 0 0 0 3px #e3e9f6; }
.m-tanya { font-size: 19px; font-weight: 900; margin: 0 0 10px; line-height: 1.4; }
.m-tanya.kecil { font-size: 18px; margin-top: 10px; }
.m-label-cek { display: block; font-size: 12px; color: var(--biru-tua); text-transform: uppercase; letter-spacing: .6px; margin-bottom: 4px; }
.m-opsi { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 10px; }
.m-opsi.satu { grid-template-columns: 1fr; }
.m-opsi:not(.satu) .m-pil { overflow-wrap: normal; }   /* kata panjang meluber → materi.js pindah ke satu kolom */
.m-pil { min-height: 58px; font-size: 19px; }
.m-umpan { margin-top: 10px; font-size: 17px; line-height: 1.45; min-height: 0; }
.m-umpan.benar, .m-umpan.salah { padding: 10px 12px; border-radius: 14px; animation: masukLayar .25s; }
.m-umpan.benar { background: #dff8ef; color: #0f6b55; }
.m-umpan.salah { background: #fff0dc; color: #8a4500; }
.m-simpan { color: #e2540f; font-weight: 900; }

/* ringkasan */
.m-rumus { background: #fffbe8; border: 3px dashed var(--kuning); border-radius: 20px; padding: 12px 16px; text-align: left; }
.m-rumus h3 { font-size: 18px; margin-bottom: 4px; }
.m-rumus ol { margin: 0; padding-left: 22px; font-size: 17px; line-height: 1.55; }

/* papan cara.js di dalam materi */
.m-b-papan .papan, .m-papan-kecil { margin-top: 4px; }
.m-papan-kecil { padding: 10px; border-width: 6px; display: flex; justify-content: center; }
.m-papan-kecil .vis { margin: 0; }

/* ---- balok nilai tempat (kelas 2) ---- */
.m-tikar { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; background: #fff; border-radius: 20px; padding: 10px; box-shadow: inset 0 0 0 3px #e3e9f6; }
.m-kol { display: flex; flex-direction: column; align-items: center; gap: 6px; background: #f6f9ff; border-radius: 14px; padding: 8px 6px 10px; min-height: 230px; }
.m-kol h4 { font-size: 15px; color: var(--teks-2); }
.m-isi-p { flex: 1; display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; align-content: flex-start; }
.m-isi-s { flex: 1; display: grid; grid-template-columns: repeat(4, 34px); gap: 6px; justify-content: center; align-content: start; }
.m-batang { display: grid; grid-template-rows: repeat(10, 13px); gap: 2px; width: 22px; padding: 2px; border-radius: 6px; background: rgba(76, 125, 255, .15); }
.m-batang i { background: #4c7dff; border-radius: 3px; }
.m-batang.b i { background: #ff8a4c; }
.m-batang.baru { animation: bintangPop .6s cubic-bezier(.2, 1.6, .4, 1); box-shadow: 0 0 0 3px var(--kuning); }
.m-batang.baru i { background: #28b99a; }
.m-kotak { width: 34px; height: 34px; border-radius: 8px; background: #4c7dff; box-shadow: 0 3px 0 #2f5fe0; display: block; padding: 0; }
.m-kotak.b { background: #ff8a4c; box-shadow: 0 3px 0 #d96a2c; }
button.m-kotak { background: #ffbe1b; box-shadow: 0 3px 0 #e09a00; cursor: pointer; }
button.m-kotak.pilih { background: #28b99a; box-shadow: 0 3px 0 #1a8f76, 0 0 0 3px #fff, 0 0 0 5px #28b99a; transform: scale(.92); }
button.m-kotak:disabled { cursor: default; }
.m-tikar.kenal .m-kotak { background: #ffbe1b; box-shadow: 0 3px 0 #e09a00; }
.m-angka { font-size: 34px; line-height: 1; }
.m-angka.lebih { color: var(--merah); animation: geleng .4s; }
.m-status { font-size: 17px; text-align: center; margin: 10px 0 0; line-height: 1.45; }
.m-besar { font-size: 26px; color: var(--hijau-tua); }
.m-aksi-blok { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 10px; }
.m-aksi-blok .btn { flex: 1 1 150px; }

/* ---- pecahan (kelas 4) ---- */
.pz-isi { fill: #ffd34d; stroke: #c97b3f; stroke-width: 1.2; }
.pz-kosong { fill: #fff4dc; stroke: #c97b3f; stroke-width: 1.2; }
.g-bar { display: flex; height: 42px; border: 3px solid var(--teks); border-radius: 10px; overflow: hidden; background: #fff; }
.g-bar i { flex: 1; border-right: 2px solid rgba(29, 43, 79, .45); }
.g-bar i:last-child { border-right: 0; }
.g-bar i.isi { background: #ffbe1b; }
.m-potong { display: flex; flex-direction: column; gap: 10px; }
.m-potong-gambar { display: flex; align-items: center; justify-content: center; gap: 16px; }
.m-potong-nilai { font-size: 40px; color: var(--teks); }
.m-chip-baris { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.m-chip { min-height: 48px; min-width: 56px; padding: 6px 12px; border-radius: 14px; background: #fff; box-shadow: 0 4px 0 #cfd8ea; font-size: 18px; font-weight: 900; }
.m-chip.aktif { background: var(--biru); color: #fff; box-shadow: 0 4px 0 var(--biru-tua); }
.m-temuan { text-align: center; font-size: 22px; line-height: 1.6; }
.m-temuan b { font-size: 15px; display: block; color: var(--teks-2); }
.m-sama { color: var(--hijau-tua); font-weight: 900; margin: 0 2px; }
.m-arsir { display: flex; height: 64px; border: 3px solid var(--teks); border-radius: 12px; overflow: hidden; background: #fff; }
.m-sel { flex: 1; border-right: 2px solid rgba(29, 43, 79, .45); border-radius: 0; padding: 0; transition: background .12s; }
.m-sel:last-child { border-right: 0; }
.m-sel.isi { background: #ffbe1b; }
.m-hitung { text-align: center; margin: 8px 0 0; font-size: 17px; }

/* ---- wujud zat (IPA kelas 4) ---- */
.m-wujud { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.m-wujud-btn { min-height: 104px; border-radius: 18px; background: #fff; box-shadow: 0 5px 0 #cfd8ea; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; padding: 8px 4px; border: 3px solid transparent; }
.m-wujud-ikon { font-size: 38px; line-height: 1.1; }
.m-wujud-btn b { font-size: 18px; }
.m-wujud-btn small { font-size: 12px; color: var(--teks-2); }
.m-wujud-btn.dilihat small::before { content: "✅ "; }
.m-wujud-btn.dilihat small { color: var(--hijau-tua); }
.m-wujud-btn.aktif { border-color: var(--mapel); transform: translateY(-2px); }
.m-info { margin-top: 12px; }
.m-info-isi { display: grid; grid-template-columns: 120px 1fr; gap: 12px; align-items: start; background: #fff; border-radius: 18px; padding: 12px; box-shadow: inset 0 0 0 3px #e3e9f6; animation: masukLayar .25s; }
.m-info-isi h4 { font-size: 19px; margin: 0 0 4px; }
.m-info-isi ul { margin: 0; padding-left: 20px; font-size: 16px; line-height: 1.5; }
.m-info-isi .m-ket { text-align: left; }
.m-contoh { font-size: 16px; margin: 6px 0 0; line-height: 1.45; }
.m-partikel { width: 120px; height: auto; display: block; }
.mp-wadah { fill: #f2f6ff; stroke: #9fb3d9; stroke-width: 2.5; }
.mp-cair { fill: rgba(106, 168, 255, .25); }
.mp-t { fill: #4c7dff; }
.m-partikel.padat .mp-t { animation: getarP .4s ease-in-out infinite alternate; animation-delay: calc(var(--i) * -.07s); }
.m-partikel.cair .mp-t { fill: #3f7fe0; animation: geserP 1.6s ease-in-out infinite alternate; animation-delay: calc(var(--i) * -.23s); }
.m-partikel.gas .mp-t { fill: #8ea5d6; animation: terbangP 2.4s ease-in-out infinite alternate; animation-delay: calc(var(--i) * -.5s); }
@keyframes getarP { to { transform: translate(1px, -1px); } }
@keyframes geserP { to { transform: translate(5px, -2px); } }
@keyframes terbangP { 33% { transform: translate(14px, 18px); } 66% { transform: translate(-12px, 8px); } to { transform: translate(8px, -12px); } }

.m-benda { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.m-benda-btn { min-height: 52px; padding: 6px 12px; border-radius: 14px; background: #fff; box-shadow: 0 4px 0 #cfd8ea; font-size: 16px; font-weight: 900; display: inline-flex; align-items: center; gap: 6px; border: 3px solid transparent; }
.m-benda-btn span { font-size: 24px; }
.m-benda-btn.aktif { border-color: var(--biru); background: #e8efff; transform: translateY(-2px); }
.m-benda-btn.selesai { opacity: .35; box-shadow: none; text-decoration: line-through; }
.m-keranjang { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 12px; }
.m-ker { min-height: 96px; border-radius: 18px; background: #f6f9ff; border: 3px dashed #b9c6e4; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 4px; padding: 8px 4px; }
.m-ker b { font-size: 15px; }
.m-ker-isi { display: flex; flex-wrap: wrap; justify-content: center; gap: 2px; font-size: 24px; }

.m-diagram-wadah { background: #fff; border-radius: 20px; box-shadow: inset 0 0 0 3px #e3e9f6; padding: 4px 0; margin: 0 -6px; }
.m-diagram { width: 100%; max-width: 460px; height: auto; display: block; margin: 0 auto; overflow: visible; }
.dw-garis { fill: none; stroke-width: 4; stroke-linecap: round; opacity: .75; cursor: pointer; }
.dw-garis.panas { stroke: #ff8a4c; } .dw-garis.dingin { stroke: #4c9dff; }
.dw-garis.aktif { stroke-width: 7; opacity: 1; }
.dw-nama { font-size: 15px; font-weight: 900; text-anchor: middle; fill: var(--teks); font-family: var(--font); }
.dw-label { cursor: pointer; outline: none; }
.dw-label:focus-visible rect { stroke: var(--teks); stroke-width: 4; }
.dw-label rect { stroke-width: 2.5; }
.dw-label.panas rect { fill: #fff1e6; stroke: #ff8a4c; } .dw-label.dingin rect { fill: #e8f2ff; stroke: #4c9dff; }
.dw-label text { font-size: 14px; font-weight: 900; text-anchor: middle; fill: var(--teks); font-family: var(--font); pointer-events: none; }
.dw-label.dilihat rect { stroke-dasharray: none; }
.dw-label.dilihat.panas rect { fill: #ffd8bd; } .dw-label.dilihat.dingin rect { fill: #c9e0ff; }
.dw-label.aktif rect { stroke-width: 4; }
.m-legenda { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 14px; font-size: 13px; margin: 8px 0; }
.m-legenda .panas { color: #c2541a; } .m-legenda .dingin { color: #1f63c4; }
.m-dw-chip .m-chip { font-size: 15px; min-height: 46px; }
.m-dw-chip .m-chip.panas { box-shadow: 0 4px 0 #ffc29e; } .m-dw-chip .m-chip.dingin { box-shadow: 0 4px 0 #a9cbff; }
.m-dw-chip .m-chip.dilihat::before { content: "✅ "; }
.m-dw-chip .m-chip.aktif { background: var(--teks); color: #fff; }
.m-info-kartu { background: #fff; border-radius: 18px; padding: 12px 14px; border-left: 8px solid #ff8a4c; box-shadow: inset 0 0 0 2px #f0e3d8; animation: masukLayar .25s; }
.m-info-kartu.dingin { border-left-color: #4c9dff; box-shadow: inset 0 0 0 2px #dbe7fb; }
.m-info-kartu h4 { font-size: 21px; margin: 0; }
.m-info-kartu h4 small { font-size: 14px; color: var(--teks-2); }
.m-arah { margin: 4px 0 0; font-size: 16px; }

.m-suhu { background: #fff; border-radius: 20px; padding: 12px; box-shadow: inset 0 0 0 3px #e3e9f6; }
.m-suhu-panggung { display: flex; flex-direction: column; align-items: center; border-radius: 16px; padding: 6px; transition: background .4s; background: linear-gradient(#e8f6ff, #fff); }
.m-suhu-panggung[data-w="cair"] { background: linear-gradient(#eef6ff, #fff); }
.m-suhu-panggung[data-w="gas"] { background: linear-gradient(#fff1e6, #fff); }
.m-suhu-svg { width: 150px; height: 150px; overflow: visible; }
.m-suhu-nama { font-size: 20px; }
.m-asap path { animation: asap 1.6s ease-in-out infinite; animation-delay: calc(var(--i) * .35s); opacity: .8; }
@keyframes asap { from { transform: translateY(0); opacity: .85; } to { transform: translateY(-14px); opacity: 0; } }
.m-termo { display: flex; align-items: center; gap: 8px; margin-top: 10px; font-size: 14px; }
.m-termo input { flex: 1; height: 44px; accent-color: #ff8a4c; }

/* layar akhir */
.m-akhir { margin-top: 0; box-shadow: none; border-top: 0; padding: 0; background: transparent; }
.m-skor { font-size: 17px; margin: 0 0 12px; text-align: center; }
.m-akhir-aksi { display: flex; flex-direction: column; gap: 10px; margin: 14px 0 6px; }
.m-akhir-aksi .btn { width: 100%; }
.m-sumber { margin-top: 14px; text-align: left; font-size: 13px; color: var(--teks-2); background: #fff; border-radius: 14px; padding: 8px 12px; }
.m-sumber summary { cursor: pointer; font-weight: 900; min-height: 32px; display: flex; align-items: center; }
.m-sumber ul { padding-left: 18px; margin: 6px 0; line-height: 1.5; }
.m-sumber a { color: var(--biru-tua); overflow-wrap: anywhere; font-weight: 800; }
.m-sumber-awal { margin: 8px 0 4px; border: 2px dashed #b8e6c6; }
.m-sumber-awal[hidden] { display: none; }
.m-sumber-awal > b { display: block; margin: 2px 0 0; color: var(--teks); }

/* lencana Kurikulum Merdeka (layar pertama & terakhir) */
.m-kepala { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 10px; }
.m-kurmer { display: inline-flex; align-items: center; min-height: 28px; padding: 3px 9px; border-radius: 999px; border: 2px solid #b8e6c6;
  background: #e8f8ef; color: var(--hijau-tua); font: inherit; font-size: 11px; font-weight: 800; letter-spacing: .1px; line-height: 1.25; text-align: left; cursor: pointer;
  box-shadow: 0 2px 0 rgba(26, 143, 118, .18); max-width: 100%; }
.m-kurmer:hover, .m-kurmer[aria-expanded="true"] { background: #d6f3e3; border-color: #8fd8ac; }
.m-kurmer:active { transform: translateY(1px); box-shadow: none; }
.m-kurmer:focus-visible { outline: 3px solid var(--kuning); outline-offset: 2px; }

/* navigasi bawah */
.m-nav { position: fixed; left: 0; right: 0; bottom: 0; z-index: 20; background: rgba(246, 241, 227, .94); backdrop-filter: blur(6px); border-top: 2px solid #e6dfc9; padding: 8px 14px calc(10px + env(safe-area-inset-bottom)); }
.m-nav-dalam { max-width: 720px; margin: 0 auto; display: flex; align-items: center; gap: 10px; }
.m-nav-dalam > .btn { flex: none; width: 60px; min-height: 60px; font-size: 20px; }
.m-nav-tengah { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.m-nav-tengah small { font-size: 12px; color: var(--teks-2); text-align: center; min-height: 0; }
.m-nav-tengah small:empty { display: none; }
#btn-lanjut { width: 100%; }
body.hal-materi > div[title="Klik untuk ganti anak"] { bottom: 96px !important; }
body.m-layar-akhir { padding-bottom: 40px; }
body.m-layar-akhir .m-nav { display: none; }
body.m-layar-akhir > div[title="Klik untuk ganti anak"] { bottom: 8px !important; }

@media (max-width: 420px) {
  .m-isi-s { grid-template-columns: repeat(3, 32px); gap: 5px; }
  .m-kotak { width: 32px; height: 32px; }
  .m-info-isi { grid-template-columns: 1fr; justify-items: center; }
  .m-info-isi > div { justify-self: stretch; }
  .m-keranjang .m-ker b { font-size: 13px; }
  .m-teks p { font-size: 17px; }
  .m-wujud-btn b { font-size: 16px; }
}
@media (min-width: 760px) {
  .m-maskot { width: 90px; height: 92px; }
}
@media (prefers-reduced-motion: reduce) {
  .m-partikel .mp-t, .g-adegan .tetes, .m-asap path { animation: none !important; }
}

/* ---- Matematika kelas 1: benda, hitung benda, garis loncat, pasangkan, sisi bangun, susun bilangan ---- */
.m-bd figure { background: #fff; border-radius: 18px; padding: 8px 10px 6px; box-shadow: inset 0 0 0 3px #e3e9f6; }
.m-bd-grup { display: grid; grid-template-columns: repeat(var(--kol), 34px); gap: 2px; justify-content: center; }
.m-bd-grup span { font-size: 28px; line-height: 34px; text-align: center; position: relative; }
.m-bd-grup span.coret { opacity: .35; }
.m-bd-grup span.coret::after { content: "✕"; position: absolute; inset: 0; color: var(--merah); font-size: 30px; font-weight: 900; opacity: 1; }

.m-hb { display: flex; flex-direction: column; gap: 10px; }
.m-hb-kotak { background: #fff7e6; border: 3px dashed #f0c46a; border-radius: 20px; padding: 8px 10px 10px; text-align: center; }
.m-hb-kotak.luar { background: #f6f9ff; border-color: #b9c6e4; }
.m-hb-label { display: block; font-size: 15px; font-weight: 900; color: var(--teks-2); margin-bottom: 4px; }
.m-hb-isi { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; min-height: 52px; }
.m-hb-b { font-size: 32px; line-height: 1; width: 48px; height: 52px; display: inline-flex; flex-direction: column; align-items: center; justify-content: flex-start; }
.m-hb-b small { font-size: 15px; font-weight: 900; color: #fff; background: var(--hijau); border-radius: 10px; padding: 0 6px; margin-top: 2px; }
.m-hb-b.baru { animation: bintangPop .45s cubic-bezier(.2, 1.6, .4, 1); }
.m-hb-btn { font-size: 32px; width: 56px; height: 56px; border-radius: 16px; background: #fff; box-shadow: 0 4px 0 #cfd8ea; padding: 0; position: relative; }
.m-hb-btn:not(:disabled):hover { transform: translateY(-2px); }
.m-hb.kurang .m-hb-btn { background: #fff; }
.m-hb-btn.pergi { opacity: .35; box-shadow: none; transform: translateY(-6px) scale(.85); transition: transform .3s, opacity .3s; }
.m-hb-btn.pergi::after { content: "✕"; position: absolute; inset: 0; display: grid; place-items: center; color: var(--merah); font-size: 34px; font-weight: 900; }
.m-hb-n { text-align: center; font-size: 18px; margin: 0; }
.m-hb-n b { font-size: 34px; color: var(--biru-tua); vertical-align: -3px; }

.m-gl-wadah { background: #fff; border-radius: 20px; padding: 8px 8px 10px; box-shadow: inset 0 0 0 3px #e3e9f6; }
.m-gl { width: 100%; max-width: 520px; height: auto; display: block; margin: 0 auto; overflow: visible; }
.m-gl-sumbu { stroke: var(--teks); stroke-width: 3; stroke-linecap: round; }
.m-gl-tik { stroke: var(--teks); stroke-width: 2; }
.m-gl-l { font-size: 12px; font-weight: 900; text-anchor: middle; fill: var(--teks-2); font-family: var(--font); }
.m-gl-l.kini { fill: var(--biru-tua); font-size: 15px; }
.m-gl-mulai { fill: #9fe3cf; stroke: var(--hijau-tua); stroke-width: 2; }
.m-gl-busur { fill: none; stroke: #ff8a4c; stroke-width: 2.6; stroke-linecap: round; }
.m-gl-no { font-size: 11px; font-weight: 900; text-anchor: middle; fill: #c2541a; font-family: var(--font); }
.m-gl-katak { transition: transform .35s cubic-bezier(.3, 1.4, .5, 1); }
.m-gl-ikon { font-size: 26px; text-anchor: middle; }

.m-pb { background: #fff; border-radius: 20px; padding: 10px 10px 12px; box-shadow: inset 0 0 0 3px #e3e9f6; }
.m-pb-baris { display: flex; align-items: center; gap: 8px; }
.m-pb-baris + .m-pb-baris { margin-top: 20px; }
.m-pb-nama { flex: none; width: 58px; font-size: 15px; text-align: right; overflow-wrap: anywhere; }
.m-pb-sel { flex: 1; min-width: 0; display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: 2px; }
.m-pb-sel > span { height: 40px; display: grid; place-items: center; font-size: 28px; position: relative; }
.m-pb-b { transform: translate(var(--dx), var(--dy)) rotate(calc(var(--dx) * 2deg)); transition: transform .45s ease; }
.m-pb.rapi .m-pb-b { transform: none; }
.m-pb.rapi .m-pb-b.pas.atas::after { content: ""; position: absolute; left: 50%; top: 36px; height: 26px; border-left: 3px dashed var(--hijau); }
.m-pb.rapi .m-pb-b.sisa { background: #fff1c2; border-radius: 12px; box-shadow: 0 0 0 3px var(--kuning); animation: bintangPop .6s cubic-bezier(.2, 1.6, .4, 1); }

.m-bs { background: #fff; border-radius: 20px; padding: 10px; box-shadow: inset 0 0 0 3px #e3e9f6; }
.m-bs .m-chip { font-size: 16px; }
.m-bs .m-chip.dilihat::before { content: "✅ "; }
.m-bs-gambar { display: flex; justify-content: center; margin-top: 6px; }
.m-bs-svg { width: 100%; max-width: 300px; height: auto; display: block; overflow: visible; }
.m-bs-isi { fill: #e8f2ff; }
.m-bs-sisi { cursor: pointer; outline: none; }
.m-bs-sisi .kena { stroke: transparent; stroke-width: 26; stroke-linecap: round; fill: none; }
.m-bs-sisi .garis { stroke: var(--teks); stroke-width: 6; stroke-linecap: round; fill: none; stroke-dasharray: 8 7; transition: stroke .2s; }
.m-bs-sisi:hover .garis, .m-bs-sisi:focus-visible .garis { stroke: var(--biru); }
.m-bs-sisi.dihitung .garis { stroke: #ff8a4c; stroke-width: 8; stroke-dasharray: none; }
.m-bs-no circle { fill: #ff8a4c; stroke: #fff; stroke-width: 2.5; }
.m-bs-no text { fill: #fff; font-size: 14px; font-weight: 900; text-anchor: middle; font-family: var(--font); }
.m-bs-info { display: inline-block; background: #dff8ef; color: #0f6b55; border-radius: 12px; padding: 6px 10px; }

.m-bb .m-kol { min-height: 0; }
.m-bb .m-kol h4 { font-size: 14px; text-align: center; }
.m-bb .m-isi-p, .m-bb .m-isi-s { min-height: 60px; }
.m-bb-tombol { display: flex; gap: 8px; justify-content: center; width: 100%; }
.m-bb-tombol .btn { min-width: 56px; min-height: 52px; padding: 6px 10px; font-size: 26px; line-height: 1; flex: 1 1 0; max-width: 90px; }

@media (max-width: 420px) {
  .m-bd-grup { grid-template-columns: repeat(var(--kol), 30px); }
  .m-bd-grup span { font-size: 25px; line-height: 30px; }
  .m-hb-btn { width: 50px; height: 52px; font-size: 29px; }
  .m-pb-nama { width: 48px; font-size: 14px; }
  .m-pb-sel > span { font-size: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .m-gl-katak, .m-pb-b, .m-hb-btn.pergi { transition: none !important; }
  .m-hb-b.baru, .m-pb.rapi .m-pb-b.sisa { animation: none !important; }
}
