/* =====================================================================
   Halaman murid — gaya hero Virtual Run
   ===================================================================== */
.wrap{width:100%;max-width:1180px;margin:0 auto;padding:0 1.25rem}

/* Navbar ink */
.nav-ink{background:var(--ink);position:relative;z-index:5}
.nav-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:64px}
.nav-brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:#fff;min-width:0}
.nav-brand b{display:block;font:800 1.08rem var(--fon-tajuk);letter-spacing:-.02em;line-height:1.1}
.nav-brand b span{color:var(--brand-cerah)}
.nav-brand small{display:block;color:rgba(255,255,255,.66);font-size:.74rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52vw}
.nav-pill{display:inline-flex;align-items:center;gap:.4rem;color:rgba(255,255,255,.86);font-size:.82rem;font-weight:600;padding:.4rem .8rem;border:1px solid rgba(255,255,255,.2);border-radius:999px;white-space:nowrap}
.nav-pill .i{width:16px;height:16px;color:var(--brand-cerah)}

/* Hero */
.hero{position:relative;color:#fff;overflow:hidden;
  background:
    radial-gradient(900px 520px at 88% 12%,rgba(var(--brand-rgb),.38),transparent 62%),
    radial-gradient(700px 420px at 0% 110%,rgba(var(--brand-rgb),.18),transparent 60%),
    linear-gradient(135deg,#0B1A2B 0%,#10243A 55%,#0B1A2B 100%)}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.35;
  background-image:radial-gradient(rgba(255,255,255,.12) 1px,transparent 1.2px);background-size:22px 22px;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 55%);mask-image:linear-gradient(90deg,transparent 0%,#000 55%)}
.hero-grid>*{min-width:0}
.hero-grid{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:3rem;align-items:center;padding-top:3.5rem;padding-bottom:4rem;min-height:calc(100vh - 64px - 40px);max-height:none}
.hero-lencana{display:inline-flex;align-items:center;gap:.45rem;padding:.38rem .85rem;border:1px solid rgba(var(--brand-rgb),.65);background:rgba(var(--brand-rgb),.16);
  color:#fff;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.hero-lencana::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--brand-cerah)}
.hero-tajuk{margin-top:1.1rem;color:#fff;font-family:var(--fon-hero);font-weight:800;font-size:clamp(2.7rem,6vw,4.7rem);line-height:1.02;letter-spacing:-.005em;text-shadow:0 3px 18px rgba(0,0,0,.25)}
.hero-garis{width:76px;height:5px;background:var(--brand);border-radius:999px;margin-top:1.3rem}
.hero-lead{margin-top:1.1rem;color:rgba(255,255,255,.9);max-width:34rem;font-size:1.06rem;line-height:1.6}
.hero-butiran{display:grid;grid-template-columns:repeat(3,1fr);margin-top:1.9rem;border:1px solid rgba(255,255,255,.22);background:rgba(11,26,43,.62);
  -webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);border-radius:16px;overflow:hidden;max-width:40rem}
.hero-butiran>div{position:relative;min-height:78px;padding:.85rem .9rem .85rem 3.1rem;border-right:1px solid rgba(255,255,255,.13)}
.hero-butiran>div:last-child{border-right:0}
.hero-butiran p{font-size:.64rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;margin:0 0 .2rem;color:rgba(255,255,255,.72)}
.hero-butiran strong{display:block;font-size:.84rem;line-height:1.3;color:#fff;font-weight:600}
.hero-butiran .i{position:absolute;left:.95rem;top:1rem;width:22px;height:22px;color:var(--brand-cerah)}

/* Kad borang */
.panel{padding:1.75rem;color:var(--text);box-shadow:var(--shadow-lg);border:0}
.panel-kepala{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1.1rem}
.panel-kepala h2{font-size:1.15rem}
.steps{display:flex;gap:.35rem;margin:0;padding:0;list-style:none}
.steps li{width:26px;height:6px;border-radius:99px;background:var(--border)}
.steps li.on{background:var(--brand)}
#ic{font-size:1.3rem;letter-spacing:.12em;font-variant-numeric:tabular-nums;min-height:54px;font-weight:600}
.err-line{color:var(--bad);font-size:.9rem;min-height:1.4em;margin:-.4rem 0 .8rem;font-weight:500}
.found{text-align:center;animation:rise2 .25s ease-out}
@keyframes rise2{from{opacity:0;transform:translateY(8px)}}
.found .tick{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--ok-soft);color:var(--ok);margin-bottom:.6rem}
.found .tick .i{width:28px;height:28px}
.who{font:800 1.2rem var(--fon-tajuk);color:var(--ink);letter-spacing:-.01em}
.cls{color:var(--muted);margin:.15rem 0 1rem;font-size:.93rem}
.idbox{margin:0 0 1rem;padding:.9rem 1rem;border-radius:12px;background:var(--brand-soft);border:1.5px dashed rgba(var(--brand-rgb),.45);text-align:left}
.idbox small{display:block;color:var(--brand-teks);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;margin-bottom:.15rem}
.idbox code{font-size:1.02rem;font-weight:700;color:var(--ink);word-break:break-all;user-select:all}
.note{display:flex;gap:.7rem;text-align:left;margin-top:1rem;padding:.85rem 1rem;border-radius:12px;background:var(--surface-alt);color:var(--text);font-size:.88rem;line-height:1.5}
.note .i{color:var(--brand-teks);margin-top:1px}
.panel-pautan{display:flex;justify-content:space-between;gap:.5rem;flex-wrap:wrap;margin-top:.75rem}
.linkbtn{background:none;border:0;color:var(--muted);font:500 .88rem var(--fon-teks);text-decoration:underline;text-underline-offset:2px;cursor:pointer;min-height:44px;padding:0 .25rem}
.linkbtn:hover{color:var(--ink)}
.panel-selamat{display:flex;align-items:center;gap:.45rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border);font-size:.78rem;color:var(--muted)}
.panel-selamat .i{width:16px;height:16px;color:var(--ok)}

.keluar-dulu{text-align:left;margin:0 0 .9rem;padding:.75rem .9rem;border:1.5px solid var(--border);border-radius:12px;background:#fff}
.keluar-dulu b{display:block;font-size:.9rem;color:var(--ink)}
.keluar-dulu small{display:block;font-size:.8rem;color:var(--muted);line-height:1.45}
.keluar-dulu:has(input:checked){border-color:rgba(var(--brand-rgb),.5);background:var(--brand-soft)}
.toast.lama{animation:none}
#btn-keluar{margin-bottom:.6rem}
.keluar-nota{display:flex;align-items:center;justify-content:center;gap:.4rem;margin:-.2rem 0 .6rem;font-size:.84rem;color:var(--ok-teks);font-weight:600}
.keluar-nota .i{width:16px;height:16px}
.btn.ink.selesai,.btn.ink.selesai:hover{background:#F0FDF4;border-color:#BBF7D0;color:var(--ok-teks)}

.langkah-senarai{list-style:none;margin:0 0 .2rem;padding:0;display:grid;gap:.75rem;text-align:left}
.langkah small{display:block;margin:.35rem .2rem 0;font-size:.8rem;color:var(--muted);line-height:1.45}
.langkah-btn{justify-content:flex-start;text-align:left}
.langkah-btn .n:not(:empty){display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.22);font-size:.8rem;font-weight:800;flex:none}
.langkah-btn.outline-ink .n:not(:empty){background:var(--surface-alt);color:var(--ink)}
.langkah.selesai .langkah-btn,.langkah.selesai .langkah-btn:hover{background:#F0FDF4;border-color:#BBF7D0;color:var(--ok-teks)}
.langkah.selesai .langkah-btn .n{background:var(--ok);color:#fff;font-size:0}
.langkah.selesai .langkah-btn .n::after{content:"✓";font-size:.8rem}
.langkah.selesai small{color:var(--ok-teks)}

/* Bantuan */
.seksyen{padding:4rem 0 1rem}
.seksyen-kepala{text-align:center;margin-bottom:2rem}
.seksyen-kepala .kicker{display:block;font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--brand-teks);margin-bottom:.5rem}
.seksyen-kepala h2{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:800}
.bantuan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.bantuan{padding:1.5rem;height:100%}
.bantuan-ikon{display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:var(--brand-soft);color:var(--brand-teks);margin-bottom:.9rem}
.bantuan h3{font-size:1.02rem;margin-bottom:.4rem}
.bantuan p{color:var(--muted);font-size:.92rem;line-height:1.6}

/* Footer */
.footer-ink{background:var(--ink);color:rgba(255,255,255,.74);margin-top:4rem}
.footer-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding:2rem 0;font-size:.88rem}
.footer-row b{color:#fff;font-family:var(--fon-tajuk)}
.footer-row a{color:rgba(255,255,255,.74)}
.footer-row a:hover{color:#fff}
.hak-cipta a{white-space:nowrap}
.footer-row .btn-pentadbir{font:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;padding:.65rem 1.1rem;border:1px solid rgba(255,255,255,.35);border-radius:10px;background:rgba(255,255,255,.07);color:#fff;font-weight:600;text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s}
.footer-row .btn-pentadbir:hover,.footer-row .btn-pentadbir:focus-visible{background:var(--brand);border-color:var(--brand);color:#fff}
.btn-pentadbir .i{width:18px;height:18px}
@media (max-width:640px){.footer-row{flex-direction:column;align-items:flex-start}.footer-row a.btn-pentadbir{width:100%;justify-content:center}}
.blocked{padding:2rem;text-align:center;color:var(--muted)}
.blocked .i{width:32px;height:32px;margin-bottom:.5rem;color:var(--brand-teks)}

@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr;gap:1.75rem;padding-top:2.25rem;padding-bottom:2.5rem;min-height:0}
  .hero-butiran{display:flex;overflow-x:auto;scroll-snap-type:x proximity;margin-top:1.4rem}
  .hero-butiran>div{flex:0 0 200px;scroll-snap-align:start}
  .bantuan-grid{grid-template-columns:1fr}
  .seksyen{padding-top:2.75rem}
}
@media (max-width:560px){
  .hero-butiran{display:grid;grid-template-columns:1fr;overflow:visible}
  .hero-butiran>div{min-height:0;padding:.7rem .9rem .7rem 3.1rem;border-right:0;border-bottom:1px solid rgba(255,255,255,.13)}
  .hero-butiran>div:last-child{border-bottom:0}
  .hero-butiran .i{top:.8rem}
}
@media (max-width:480px){
  .wrap{padding-left:1rem;padding-right:1rem}   /* jangan buang padding atas/bawah .hero-grid */
  .panel{padding:1.35rem}
  .hero-tajuk{font-size:2.6rem}
  .nav-pill{display:none}
}

/* ---------- Carian pilih kelas & nama (sekolah rendah) ---------- */
.mod-tab{display:grid;grid-template-columns:1fr 1fr;gap:.35rem;padding:.3rem;margin-bottom:1rem;border-radius:12px;background:var(--surface-alt)}
.mod-tab button{display:flex;align-items:center;justify-content:center;gap:.4rem;min-height:44px;border:0;border-radius:9px;background:transparent;color:var(--muted);font:600 .95rem var(--fon-teks);cursor:pointer}
.mod-tab button .i{width:18px;height:18px}
.mod-tab button.on{background:var(--surface);color:var(--brand-teks);box-shadow:0 1px 3px rgba(var(--ink-rgb),.12)}
.nama-ui .nm-soalan{display:flex;align-items:center;gap:.6rem;margin:0 0 .85rem;font:700 1.05rem var(--fon-teks);color:var(--ink)}
.nama-ui .nm-soalan small{font-weight:500;color:var(--muted)}
.nm-n{display:inline-grid;place-items:center;flex:none;width:30px;height:30px;border-radius:50%;background:var(--brand);color:#fff;font-size:.9rem}
.nm-n .i{width:16px;height:16px}
.nm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:.6rem}
.nm-kelas{min-height:64px;padding:.6rem .5rem;border:2px solid var(--border);border-radius:14px;background:var(--surface);color:var(--ink);font:600 1rem var(--fon-teks);cursor:pointer;transition:border-color .15s,transform .1s}
.nm-kelas b{display:block;font-size:1.2rem;line-height:1.15;color:var(--brand-teks);overflow-wrap:anywhere}
.nm-kelas .nm-t{display:block;font-size:.78rem;font-weight:600;color:var(--muted);margin-bottom:.1rem}
.ada-tahap #nm-kelas-grid .nm-t{display:none}
.nm-kelas:hover,.nm-kelas:focus-visible,.nm-tahap:hover,.nm-tahap:focus-visible{border-color:var(--brand);transform:translateY(-1px)}
.nm-tahap{min-height:76px;padding:.6rem .5rem;border:2px solid var(--border);border-radius:14px;background:var(--surface);color:var(--ink);font:600 1rem var(--fon-teks);cursor:pointer;transition:border-color .15s,transform .1s}
.nm-tahap b{display:block;font-size:1.3rem;line-height:1.15;color:var(--brand-teks);overflow-wrap:anywhere}
.nm-tahap small{display:block;margin-top:.15rem;font-size:.8rem;color:var(--muted)}
.nm-cari-kelas{margin-bottom:.7rem}
.nm-senarai{display:grid;gap:.45rem;max-height:min(52vh,460px);overflow:auto;margin-top:.7rem;padding:.15rem .25rem .25rem 0}
.nm-orang{display:flex;align-items:center;gap:.75rem;width:100%;min-height:56px;padding:.5rem .8rem;border:2px solid var(--border);border-radius:14px;background:var(--surface);color:var(--ink);font:600 1.02rem var(--fon-teks);text-align:left;cursor:pointer}
.nm-orang:hover,.nm-orang:focus-visible{border-color:var(--brand);background:var(--brand-soft)}
.nm-orang.loading{opacity:.6;pointer-events:none}
.nm-huruf{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:50%;background:var(--brand-soft);color:var(--brand-teks);font-weight:800}
.nama-ui .err-line{margin:.85rem 0 0;line-height:1.45}
.nama-ui .err-line:empty{margin:0;min-height:0}
.kod-input.kod-6{max-width:320px;letter-spacing:.3em;padding-left:.3em}
.kod-input.kod-8{max-width:360px;letter-spacing:.12em;padding-left:.12em;font-size:1.7rem}
.kod-input{max-width:220px;margin:0 auto 1rem;display:block;text-align:center;font:800 2rem/1 var(--fon-teks);letter-spacing:.5em;padding-left:.5em}
.kod-input.kod-ic{max-width:none;margin:0;font-size:1.5rem;padding-top:.7rem;padding-bottom:.7rem}
.ic-kelas-ok{display:flex;align-items:center;gap:.45rem;margin:0 0 .9rem;padding:.55rem .75rem;border-radius:10px;background:var(--ok-soft);color:var(--ok-teks);font-size:.9rem}
.ic-kelas-ok .i{width:16px;height:16px;flex:none}
.pautan-btn{margin-left:auto;background:none;border:0;padding:0;font:inherit;font-weight:600;color:var(--brand-teks);text-decoration:underline;cursor:pointer}
.nm-dipilih{margin:-.25rem 0 .9rem;padding:.6rem .85rem;border-radius:10px;background:var(--brand-soft);color:var(--brand-teks);font-weight:700}
#nm-kembali{margin-top:.6rem}
/* Sahkan lokasi (pilih nama melalui lokasi sekolah) */
.lokasi-ui{margin:0 0 1.1rem;padding:1rem;border:1px dashed var(--border-strong);border-radius:12px;background:var(--brand-soft)}
.lokasi-ui>p:first-child{display:flex;gap:.55rem;align-items:flex-start;margin:0 0 .8rem;font-size:.92rem;color:var(--text)}
.lokasi-ui>p:first-child .i{flex:none;width:20px;height:20px;color:var(--brand-teks);margin-top:.1rem}
.lokasi-ui .err-line{margin:.6rem 0 0}
/* Pakej Free: label "Dikuasakan oleh" */
.dikuasakan{display:flex;justify-content:center;padding:.7rem 16px 1.1rem;border-top:1px solid rgba(255,255,255,.08)}
.dikuasakan a{display:inline-flex;gap:.35rem;align-items:center;padding:.4rem .9rem;border-radius:999px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.85);font-size:.82rem;text-decoration:none}
.dikuasakan a:hover{background:rgba(255,255,255,.16);color:#fff}
.footer-row .btn-pentadbir[hidden]{display:none}
