/* ───── แดชบอร์ดความคืบหน้า ───── */
.dash{background:linear-gradient(145deg,var(--bg2),var(--quran))}
.dash-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.dash-star{flex:0 0 auto;text-align:center;background:var(--acc);color:#fff;
  border-radius:14px;padding:10px 16px;min-width:88px}
.dash-star span{display:block;font-size:1.7rem;font-weight:800;line-height:1.2}
.dash-star small{font-size:.7rem;opacity:.9}
.dash-bar{flex:1;min-width:160px}
.pbar{height:11px;border-radius:99px;background:var(--line);overflow:hidden;margin-bottom:5px}
.pbar i{display:block;height:100%;width:0;border-radius:99px;
  background:linear-gradient(90deg,var(--acc),var(--gold));transition:width .5s}
.badges{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}
.badge-c{text-align:center;padding:10px 4px;border-radius:12px;border:1px dashed var(--line);
  background:var(--bg);opacity:.42;transition:.3s}
.badge-c.on{opacity:1;border-style:solid;border-color:var(--gold);
  box-shadow:0 2px 10px rgba(154,123,47,.22)}
.badge-c .bi{font-size:1.7rem;display:block;filter:grayscale(1)}
.badge-c.on .bi{filter:none;animation:pop .45s}
.badge-c b{display:block;font-size:.76rem;margin-top:3px;color:var(--ink)}
.badge-c small{font-size:.66rem;color:var(--ink2);line-height:1.5;display:block}
@keyframes pop{0%{transform:scale(.4)}60%{transform:scale(1.25)}100%{transform:scale(1)}}

/* ───── เมนูเกม ───── */
.gmenu{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.gcard{position:relative;text-align:center;background:var(--bg);border:1px solid var(--line);
  border-radius:16px;padding:16px 10px 13px;cursor:pointer;font-family:inherit;color:var(--ink);
  transition:.2s;display:flex;flex-direction:column;gap:3px;align-items:center}
.gcard:active{transform:scale(.96)}
.gcard .gi{font-size:2rem;line-height:1}
.gcard b{font-size:.9rem}
.gcard small{font-size:.72rem;color:var(--ink2);line-height:1.5}
.gstar{position:absolute;top:7px;right:9px;font-size:.72rem;color:var(--gold);font-weight:700}

/* ───── เวทีเกม ───── */
.hidden{display:none}
.stage-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding-bottom:10px;margin-bottom:12px;border-bottom:2px solid var(--line)}
.stage-title{font-weight:700;color:var(--acc);font-size:1.02rem}
.btn.sm{padding:6px 13px;font-size:.8rem}
.btn.ghost{background:transparent;color:var(--acc);border:1px solid var(--acc)}
.hud{display:flex;justify-content:space-between;align-items:center;gap:10px;
  font-size:.82rem;color:var(--ink2);margin-bottom:10px}
.hud b{color:var(--acc)}
.feedback{margin:12px 0;padding:11px 13px;border-radius:12px;font-size:.88rem;
  line-height:1.8;animation:fade .25s}
.feedback.ok{background:var(--quran);border-right:4px solid var(--acc)}
.feedback.no{background:var(--warn);border-right:4px solid #C0563C}

/* ───── เติมคำ ───── */
.fill-line{font-family:"UthmanicHafs",serif;font-size:1.6rem;direction:rtl;text-align:center;
  line-height:2.6;margin:14px 0;color:var(--ink)}
.blank{display:inline-block;min-width:86px;border-bottom:3px dashed var(--gold);
  color:var(--gold);padding:0 8px}
.blank.filled{border-bottom-style:solid;color:var(--acc)}
.where{text-align:center;font-size:.82rem;color:var(--ink2)}

/* ───── ทายจำนวน ───── */
.num-q{text-align:center;font-size:1.1rem;font-weight:700;margin:16px 0;color:var(--acc)}
.nums{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:14px 0}
.nbtn{aspect-ratio:1;border-radius:14px;border:1px solid var(--line);background:var(--bg);
  font-size:1.3rem;font-weight:800;color:var(--ink);cursor:pointer;font-family:inherit}
.nbtn:active{transform:scale(.93)}
.nbtn.ok{background:var(--acc);color:#fff;border-color:var(--acc)}
.nbtn.no{background:var(--warn);border-color:#C0563C}

/* ───── การ์ดความจำ ───── */
.memo{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}
.mcard{aspect-ratio:.85;border-radius:13px;border:1px solid var(--line);background:var(--acc);
  color:#fff;cursor:pointer;display:grid;place-items:center;padding:6px;
  font-family:inherit;font-size:1.5rem;transition:.25s}
.mcard.flip{background:var(--bg);color:var(--ink);border-color:var(--gold)}
.mcard.done{background:var(--quran);border-color:var(--acc);opacity:.55;pointer-events:none}
.mcard .mtxt{display:none;line-height:1.5}
.mcard.flip .mtxt,.mcard.done .mtxt{display:block}
.mcard.flip .mback,.mcard.done .mback{display:none}
.mcard .mtxt.ar{font-family:"UthmanicHafs",serif;font-size:1.25rem;direction:rtl}
.mcard .mtxt.th{font-size:.74rem}

/* ───── ถูกหรือผิด ───── */
.tf-q{font-size:1.02rem;line-height:1.95;text-align:center;margin:16px 0;
  background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:16px 14px}
.tf-btns{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tfb{padding:15px;border-radius:14px;border:0;font-size:1rem;font-weight:700;
  cursor:pointer;font-family:inherit;color:#fff}
.tfb.yes{background:var(--acc)} .tfb.no{background:#C0563C}
.tfb:active{transform:scale(.95)}
.tfb:disabled{opacity:.45}

/* ───── หน้าจบเกม ───── */
.finish{text-align:center;padding:16px 8px}
.finish .fi{font-size:3.4rem;animation:pop .5s}
.finish h3{margin:.3em 0;color:var(--acc);font-size:1.2rem}
.finish .fs{font-size:1.5rem;font-weight:800;color:var(--gold);margin:.2em 0}
.finish .row{justify-content:center}

@media(max-width:380px){
  .gmenu,.badges{grid-template-columns:repeat(2,1fr)}
  .memo{grid-template-columns:repeat(3,1fr)}
  .nums{grid-template-columns:repeat(3,1fr)}
}