/* =====================================================================
   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}
.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:480px){
  .wrap{padding:0 1rem}
  .panel{padding:1.35rem}
  .hero-tajuk{font-size:2.6rem}
  .nav-pill{display:none}
}
