/* ======================================================================
   AI ACADEMY PRO — premium dark glassmorphism design system (RTL Arabic)
   ====================================================================== */
:root{
  --void:#070912; --ink0:#0b0f1e; --ink1:#11162b; --panel:rgba(22,28,52,.55);
  --panel-solid:#141a30; --line:rgba(255,255,255,.09); --line2:rgba(255,255,255,.15);
  --text:#eef1fb; --text2:#aeb6d4; --muted:#727aa0;
  --primary:#6d5efc; --primary2:#8b7dff; --cyan:#27e0c8; --teal:#16c0a8;
  --gold:#ffcb5b; --green:#36d399; --coral:#ff6b6b; --pink:#ff5ea8; --blue:#4aa8ff;
  --grad: linear-gradient(120deg,#6d5efc,#27e0c8);
  --grad2: linear-gradient(120deg,#ff5ea8,#6d5efc);
  --r:20px; --r-sm:13px;
  --glass-bd:1px solid rgba(255,255,255,.10);
  --shadow:0 20px 60px rgba(0,0,0,.45);
  --glow:0 0 40px rgba(109,94,252,.35);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;font-family:"Segoe UI",Tahoma,system-ui,"Noto Kufi Arabic","Noto Sans Arabic",sans-serif;
  color:var(--text);background:var(--void);scroll-behavior:smooth}
body{overflow-x:hidden}
button,input,select,textarea{font-family:inherit}
button{cursor:pointer;border:none;background:none;color:inherit}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.hidden{display:none!important}
::-webkit-scrollbar{width:10px;height:10px} ::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:8px}
::selection{background:rgba(109,94,252,.4)}

/* mesh-gradient orbs (cheap, GPU) */
.orb{position:fixed;border-radius:50%;filter:blur(70px);opacity:.42;pointer-events:none;z-index:0;will-change:transform}
.orb.a{width:520px;height:520px;background:radial-gradient(circle,#6d5efc,transparent 65%);top:-120px;inset-inline-start:-100px;animation:float1 18s ease-in-out infinite}
.orb.b{width:460px;height:460px;background:radial-gradient(circle,#27e0c8,transparent 65%);bottom:-140px;inset-inline-end:-120px;animation:float2 22s ease-in-out infinite}
.orb.c{width:380px;height:380px;background:radial-gradient(circle,#ff5ea8,transparent 65%);top:40%;inset-inline-start:55%;opacity:.3;animation:float1 26s ease-in-out infinite}
@keyframes float1{0%,100%{transform:translate(0,0)}50%{transform:translate(40px,50px)}}
@keyframes float2{0%,100%{transform:translate(0,0)}50%{transform:translate(-50px,-40px)}}
@media (prefers-reduced-motion:reduce){ .orb{animation:none} *{scroll-behavior:auto} }

/* glass primitives */
.glass{background:var(--panel);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:var(--glass-bd);border-radius:var(--r);box-shadow:var(--shadow)}
.chipframe{background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:var(--r-sm)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:800;font-size:15px;
  padding:13px 26px;border-radius:14px;background:var(--grad);color:#fff;box-shadow:var(--glow);transition:transform .12s,box-shadow .2s,filter .2s;position:relative;overflow:hidden}
.btn:hover{transform:translateY(-2px);box-shadow:0 0 50px rgba(109,94,252,.55)} .btn:active{transform:scale(.97)}
.btn.full{width:100%} .btn.lg{padding:16px 34px;font-size:17px}
.btn.ghost{background:rgba(255,255,255,.05);border:1px solid var(--line2);box-shadow:none;color:var(--text)}
.btn.ghost:hover{background:rgba(255,255,255,.1)}
.btn.sm{padding:9px 16px;font-size:13px;border-radius:11px;box-shadow:none}
.btn.cyan{background:linear-gradient(120deg,#16c0a8,#27e0c8);box-shadow:0 0 36px rgba(39,224,200,.4)}
.btn.gold{background:linear-gradient(120deg,#ffb13b,#ffcb5b);color:#231a05;box-shadow:0 0 30px rgba(255,203,91,.35)}
.btn:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.4);transform:none}

h1,h2,h3{margin:0 0 6px;line-height:1.2}
h1{font-size:30px;font-weight:900} h2{font-size:23px;font-weight:800} h3{font-size:18px;font-weight:800}
.sub{color:var(--text2);font-size:15px;line-height:1.7;margin:0}
.gradtext{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.center{text-align:center}
.tag{display:inline-block;font-size:12px;font-weight:800;padding:5px 12px;border-radius:999px;background:rgba(109,94,252,.18);color:var(--primary2);border:1px solid rgba(109,94,252,.3)}

/* scroll reveal */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.08s} .reveal.d2{transition-delay:.16s} .reveal.d3{transition-delay:.24s} .reveal.d4{transition-delay:.32s}

/* ================= LANDING ================= */
#landing{position:relative;z-index:1}
.lp-nav{position:fixed;top:0;inset-inline:0;z-index:50;display:flex;align-items:center;gap:14px;padding:16px 28px;
  backdrop-filter:blur(12px);background:rgba(7,9,18,.5);border-bottom:1px solid var(--line)}
.lp-nav .logo{display:flex;align-items:center;gap:10px;font-weight:900;font-size:19px}
.lp-nav .logo img{width:34px;height:34px}
.lp-nav .sp{flex:1}
.lp-links{display:flex;gap:22px;font-size:14px;color:var(--text2)}
.lp-links a:hover{color:var(--text)}
.hero{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:120px 24px 60px;position:relative}
.hero-grid{max-width:1180px;width:100%;display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.hero h1{font-size:clamp(34px,5.5vw,62px);font-weight:900;letter-spacing:-1px}
.hero .sub{font-size:clamp(15px,2vw,19px);max-width:560px;margin:18px 0 28px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.hero-stats{display:flex;gap:28px;margin-top:34px;flex-wrap:wrap}
.hero-stats .n{font-size:28px;font-weight:900}.hero-stats .l{font-size:12px;color:var(--muted);font-weight:700}
.hero-visual{position:relative;height:440px;display:flex;align-items:center;justify-content:center}
.hero-visual img.bot{width:100%;max-width:420px;filter:drop-shadow(0 30px 60px rgba(109,94,252,.5));animation:bob 6s ease-in-out infinite;position:relative;z-index:2}
@keyframes bob{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-18px) rotate(1deg)}}
.float-card{position:absolute;z-index:3;padding:12px 15px;font-size:13px;font-weight:800;animation:bob 7s ease-in-out infinite}
.float-card .mini{font-size:11px;color:var(--text2);font-weight:600}
.fc1{top:8%;inset-inline-start:-6%;animation-delay:.5s} .fc2{bottom:14%;inset-inline-end:-4%;animation-delay:1.2s}
.fc3{top:46%;inset-inline-end:-8%;animation-delay:2s}
.section{max-width:1120px;margin:0 auto;padding:80px 24px;position:relative;z-index:1}
.section-head{text-align:center;max-width:640px;margin:0 auto 46px}
.section-head h2{font-size:clamp(26px,4vw,40px)}
.bento{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.bento .glass{padding:26px}
.bento .ico{width:54px;height:54px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:26px;background:rgba(109,94,252,.16);margin-bottom:14px}
.bento h3{font-size:18px} .bento .big{grid-row:span 2}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;counter-reset:s}
.step{padding:24px;position:relative}
.step .num{font-size:13px;font-weight:900;color:var(--primary2);margin-bottom:8px}
.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.tier{padding:30px;text-align:center}
.tier.pop{border:1px solid rgba(109,94,252,.5);box-shadow:0 0 50px rgba(109,94,252,.3)}
.tier .price{font-size:38px;font-weight:900;margin:10px 0}
.tier ul{list-style:none;padding:0;margin:18px 0;text-align:start} .tier li{padding:7px 0;color:var(--text2);font-size:14px}
.tier li::before{content:"✦";color:var(--cyan);margin-inline-end:8px}
.cta-band{max-width:900px;margin:60px auto;text-align:center;padding:50px 30px}
.lp-foot{text-align:center;padding:40px;color:var(--muted);font-size:13px;border-top:1px solid var(--line)}
@media(max-width:880px){
  .hero-grid{grid-template-columns:1fr;text-align:center} .hero-visual{height:320px;order:-1}
  .hero-cta,.hero-stats{justify-content:center}
  .bento,.steps,.tiers{grid-template-columns:1fr} .bento .big{grid-row:auto}
  .lp-links{display:none}
}

/* ================= APP SHELL ================= */
#app{position:relative;z-index:1;min-height:100%;display:none;flex-direction:column}
#app.on{display:flex}
.appbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;flex-wrap:wrap;gap:10px 12px;padding:12px 20px;
  background:rgba(7,9,18,.6);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.appbar .lo-chip{margin-inline-start:auto}
.appbar .logo{display:flex;align-items:center;gap:9px;font-weight:900;font-size:17px}
.appbar .logo img{width:30px;height:30px}
.appbar .sp{flex:1}
.chip{display:flex;align-items:center;gap:6px;font-weight:800;font-size:13px;padding:6px 12px;border-radius:11px;background:rgba(255,255,255,.05);border:1px solid var(--line)}
.chip.rating{background:rgba(109,94,252,.15);border-color:rgba(109,94,252,.35)}
.chip.streak{color:var(--gold)} .chip.rt .v{color:var(--primary2)}
.navbtns{display:flex;gap:4px}
.navbtn{font-size:13px;font-weight:700;color:var(--text2);padding:8px 13px;border-radius:10px}
.navbtn.active{background:rgba(109,94,252,.2);color:#fff} .navbtn:hover:not(.active){background:rgba(255,255,255,.05)}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--grad);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:15px;color:#fff}
.appmain{flex:1;overflow-y:auto}
.wrap{max-width:1040px;margin:0 auto;padding:26px 18px 80px}
.page{display:none}.page.active{display:block;animation:fade .3s}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* auth */
.authwrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;position:relative;z-index:1}
.authcard{width:100%;max-width:420px;padding:34px 28px;text-align:center}
.authcard .logo-c{width:76px;height:76px;margin:0 auto 8px;filter:drop-shadow(0 10px 24px rgba(109,94,252,.5))}
.field{text-align:start;margin:12px 0}
.field label{display:block;font-size:12px;font-weight:800;color:var(--text2);margin-bottom:6px}
.field input{width:100%;padding:13px 14px;border:1px solid var(--line2);border-radius:12px;font-size:15px;background:rgba(255,255,255,.04);color:var(--text)}
.field input:focus{outline:none;border-color:var(--primary);background:rgba(109,94,252,.08)}
.err{color:var(--coral);font-size:13px;font-weight:700;min-height:18px;margin:4px 0}
.switchrow{margin-top:14px;font-size:14px;color:var(--text2)} .switchrow a{color:var(--primary2);font-weight:800;cursor:pointer}
.divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;margin:16px 0}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:var(--line)}

/* dashboard hero */
.dhero{display:flex;align-items:center;gap:20px;padding:26px;margin-bottom:20px;position:relative;overflow:hidden}
.dhero::after{content:"";position:absolute;inset-inline-end:-40px;top:-40px;width:220px;height:220px;background:radial-gradient(circle,rgba(109,94,252,.4),transparent 70%);pointer-events:none}
.dhero img{width:92px;height:92px;filter:drop-shadow(0 10px 20px rgba(0,0,0,.5))}
.rankwrap{display:flex;align-items:center;gap:14px;margin-top:10px}
.rankbadge{padding:7px 16px;border-radius:12px;font-weight:900;font-size:15px;color:#fff;border:1px solid var(--line2)}
.ratingbar{flex:1;height:9px;background:rgba(255,255,255,.08);border-radius:8px;overflow:hidden;min-width:120px}
.ratingbar>div{height:100%;background:var(--grad)}
.statgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px}
.statbox{padding:18px;text-align:center}
.statbox .n{font-size:26px;font-weight:900} .statbox .l{font-size:12px;color:var(--text2);font-weight:700;margin-top:2px}
.statbox .n.p{color:var(--primary2)}.statbox .n.c{color:var(--cyan)}.statbox .n.g{color:var(--gold)}.statbox .n.gr{color:var(--green)}
.sectiontitle{display:flex;align-items:center;justify-content:space-between;margin:8px 2px 14px}

/* track cards */
.trackgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.trackcard{padding:22px;cursor:pointer;transition:transform .15s,box-shadow .2s;position:relative;overflow:hidden}
.trackcard:hover{transform:translateY(-4px)}
.trackcard .glow{position:absolute;inset-inline-start:0;top:0;bottom:0;width:5px}
.trackcard .thead{display:flex;align-items:center;gap:14px;margin-bottom:10px}
.trackcard img{width:56px;height:56px}
.trackcard .ds{color:var(--text2);font-size:13.5px;line-height:1.6;margin:0 0 14px}
.tbar{height:7px;background:rgba(255,255,255,.08);border-radius:6px;overflow:hidden}
.tbar>div{height:100%;border-radius:6px}
.tmeta{display:flex;justify-content:space-between;font-size:12px;color:var(--text2);font-weight:700;margin-top:8px}

/* level rows */
.levelhead{display:flex;align-items:center;gap:16px;margin-bottom:18px}
.levelhead img{width:64px;height:64px}
.levellist{display:flex;flex-direction:column;gap:12px}
.levelrow{display:flex;align-items:center;gap:14px;padding:15px 18px;cursor:pointer;transition:transform .1s,border-color .2s}
.levelrow:hover{transform:translateX(-3px)} .levelrow.locked{opacity:.5;filter:grayscale(.5)}
.levelrow.done{border-color:rgba(54,211,153,.4)}
.lvnum{width:42px;height:42px;border-radius:12px;background:rgba(109,94,252,.2);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:17px;flex:none;color:var(--primary2)}
.levelrow.done .lvnum{background:rgba(54,211,153,.2);color:var(--green)} .levelrow.locked .lvnum{background:rgba(255,255,255,.06);color:var(--muted)}
.lvinfo{flex:1}.lvinfo .nm{font-weight:800;font-size:16px}.lvinfo .meta{font-size:12px;color:var(--text2)}
.lvbadge{font-size:11px;font-weight:800;padding:4px 11px;border-radius:9px;flex:none;border:1px solid var(--line)}
.b-lock{color:var(--muted)}.b-open{color:var(--cyan);background:rgba(39,224,200,.12);border-color:rgba(39,224,200,.3)}
.b-done{color:var(--green);background:rgba(54,211,153,.12);border-color:rgba(54,211,153,.3)}

/* lesson */
.lesson{padding:28px}.lesson .acttag{margin-bottom:12px}
.lesson p{font-size:16px;line-height:2;color:var(--text);margin:0 0 16px}

/* challenge */
.qcard{max-width:640px;margin:0 auto;padding:26px}
.qtop{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;color:var(--text2);font-weight:800;margin-bottom:10px}
.difftag{font-size:11px;font-weight:800;padding:3px 10px;border-radius:8px}
.diff1{background:rgba(39,224,200,.14);color:var(--cyan)}.diff2{background:rgba(109,94,252,.16);color:var(--primary2)}.diff3{background:rgba(255,107,107,.14);color:var(--coral)}
.timerwrap{height:7px;background:rgba(255,255,255,.08);border-radius:6px;overflow:hidden;margin-bottom:18px}
.timerbar{height:100%;background:var(--grad);width:100%;transition:width .25s linear}
.qtext{font-size:20px;font-weight:800;line-height:1.6;margin-bottom:18px}
.opts{display:flex;flex-direction:column;gap:11px}
.opt{display:flex;align-items:center;gap:12px;padding:15px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid var(--line2);font-size:16px;font-weight:700;text-align:start;color:var(--text);transition:.13s;width:100%}
.opt .k{width:27px;height:27px;border-radius:8px;background:rgba(109,94,252,.25);color:var(--primary2);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;flex:none}
.opt:hover:not(.disabled){border-color:var(--primary);background:rgba(109,94,252,.1)}
.opt.correct{background:rgba(54,211,153,.16);border-color:var(--green)} .opt.correct .k{background:var(--green);color:#fff}
.opt.wrong{background:rgba(255,107,107,.16);border-color:var(--coral)} .opt.wrong .k{background:var(--coral);color:#fff}
.opt.dim{opacity:.4} .opt.disabled{pointer-events:none}
.why{background:rgba(109,94,252,.1);border-inline-start:4px solid var(--primary);border-radius:12px;padding:14px 16px;font-size:15px;line-height:1.7;margin-top:16px;display:none}
.why.show{display:block;animation:fade .3s}
.qfoot{display:flex;gap:10px;margin-top:18px} .qfoot .btn{flex:1}

/* activities */
.actbox{max-width:640px;margin:0 auto}
.acttag{display:inline-block;font-size:12px;font-weight:800;padding:4px 12px;border-radius:9px;background:rgba(39,224,200,.14);color:var(--cyan);margin-bottom:12px}
.actprompt{font-size:17px;font-weight:800;line-height:1.7;margin-bottom:18px}
.actfeedback{margin-top:14px;max-height:0;overflow:hidden;border-radius:12px;font-size:15px;font-weight:700;line-height:1.6;transition:.25s;padding:0 15px}
.actfeedback.show{max-height:240px;padding:14px 15px}
.actfeedback.good{background:rgba(54,211,153,.14);color:#7ff0c0;border-inline-start:4px solid var(--green)}
.actfeedback.bad{background:rgba(255,107,107,.12);color:#ffb3b3;border-inline-start:4px solid var(--coral)}
.orderlist,.bitems{display:flex;flex-direction:column;gap:10px}.pool{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px;min-height:20px}
.chipc{display:flex;align-items:center;gap:10px;padding:13px 15px;border-radius:13px;background:rgba(255,255,255,.05);border:1px solid var(--line2);font-size:15px;font-weight:700;cursor:pointer;transition:.12s;color:var(--text)}
.chipc:hover{border-color:var(--primary)} .chipc.sel{border-color:var(--primary);background:rgba(109,94,252,.18)}
.chipc.small{padding:8px 12px;font-size:13px} .chipc.ok{background:rgba(54,211,153,.16);border-color:var(--green)} .chipc.bad{background:rgba(255,107,107,.16);border-color:var(--coral)}
.chipnum{width:26px;height:26px;border-radius:8px;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;flex:none}
.buckets{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:8px}
.bucket{background:rgba(255,255,255,.03);border:2px dashed var(--line2);border-radius:15px;padding:12px;min-height:88px;cursor:pointer;transition:.12s}
.bucket:hover{border-color:var(--primary)} .bhead{font-weight:800;font-size:13px;color:var(--text2);text-align:center;margin-bottom:8px}
.bitems{flex-direction:row;flex-wrap:wrap;gap:8px}.poolempty{color:var(--muted);font-size:13px;padding:8px}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px;margin-bottom:14px}
.cleantable{width:100%;border-collapse:collapse;font-size:15px}
.cleantable th{background:rgba(255,255,255,.04);padding:11px;font-weight:800;color:var(--text2);border-bottom:1px solid var(--line)}
.cleantable td.cell{padding:13px;text-align:center;border-bottom:1px solid var(--line);border-inline-start:1px solid var(--line);cursor:pointer;font-weight:600;transition:.1s}
.cleantable td.cell:hover{background:rgba(109,94,252,.12)}
.cell.picked{background:rgba(255,203,91,.18);box-shadow:inset 0 0 0 2px var(--gold)}
.cell.ok{background:rgba(54,211,153,.18)!important;box-shadow:inset 0 0 0 2px var(--green)}
.cell.bad{background:rgba(255,107,107,.18)!important;box-shadow:inset 0 0 0 2px var(--coral)}
.cell.miss{background:rgba(255,203,91,.14)!important;box-shadow:inset 0 0 0 2px var(--gold)}
.simcanvas{width:100%;height:auto;background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:14px;margin-bottom:10px;direction:ltr}
.simrow{display:flex;align-items:center;gap:14px;margin-bottom:6px;font-weight:800;font-size:14px}
.simrow input[type=range]{flex:1;accent-color:var(--primary)}
.simreadout{text-align:center;font-weight:800;font-size:15px;padding:8px;border-radius:10px;margin-bottom:8px}
.simreadout.good{background:rgba(54,211,153,.16);color:#7ff0c0}.simreadout.bad{background:rgba(255,107,107,.14);color:#ffb3b3}
.actsteps{display:flex;gap:7px;justify-content:center;margin:14px 0}
.actdot{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.15)}.actdot.active{background:var(--primary)}.actdot.done{background:var(--green)}

/* leaderboard / profile / radar */
.lbrow{display:flex;align-items:center;gap:13px;padding:12px 16px;margin-bottom:9px}
.lbrow.me{border-color:rgba(109,94,252,.5);box-shadow:0 0 24px rgba(109,94,252,.2)}
.lbrank{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;font-weight:900;flex:none}
.lbrank.r1{background:rgba(255,203,91,.25);color:var(--gold)}.lbrank.r2{background:rgba(174,182,212,.2)}.lbrank.r3{background:rgba(255,138,76,.2);color:#ff8a4c}
.lbname{flex:1;font-weight:800}.lbxp{font-weight:900;color:var(--primary2)}
.radar{display:block;margin:0 auto}
.traitgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:14px}
.trait{padding:14px}.trait .tn{font-size:13px;color:var(--text2);font-weight:700}.trait .tv{font-size:22px;font-weight:900;color:var(--primary2)}
.trait .tbar{margin-top:8px}
.badgegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:12px;margin-top:14px}
.badge{padding:16px 8px;text-align:center}.badge .ico{font-size:28px}.badge .nm{font-size:12px;font-weight:800;margin-top:6px}.badge.locked{opacity:.3;filter:grayscale(1)}
.archetype{display:inline-block;padding:8px 18px;border-radius:12px;background:var(--grad2);color:#fff;font-weight:900;font-size:15px}

/* admin / analytics dashboard */
.admincard{margin-bottom:16px;padding:20px}
.adminrow{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0}
.adminrow input,.adminrow textarea,.adminrow select{flex:1;min-width:120px;padding:9px 11px;border:1px solid var(--line2);border-radius:10px;background:rgba(255,255,255,.04);color:var(--text);font-size:14px}
textarea{resize:vertical;min-height:54px;width:100%}
.metricgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:18px}
.metric{padding:16px;text-align:center}.metric .n{font-size:26px;font-weight:900;color:var(--cyan)}.metric .l{font-size:12px;color:var(--text2);font-weight:700;margin-top:2px}
.funnelbar{display:flex;flex-direction:column;gap:8px}
.funnelstep{display:flex;align-items:center;gap:10px}.funnelstep .lab{width:130px;font-size:13px;font-weight:700;color:var(--text2)}
.funnelstep .fb{flex:1;height:26px;background:rgba(255,255,255,.05);border-radius:8px;overflow:hidden}
.funnelstep .fb>div{height:100%;background:var(--grad);display:flex;align-items:center;padding-inline-start:10px;font-size:12px;font-weight:800;color:#fff}

/* fx */
.toast{position:fixed;z-index:99;top:16px;left:50%;transform:translateX(-50%);background:var(--panel-solid);border:1px solid var(--line2);color:var(--text);padding:11px 20px;border-radius:14px;font-weight:800;box-shadow:var(--shadow);opacity:0;transition:.3s}
.toast.show{opacity:1}
.fxlayer{position:fixed;inset:0;pointer-events:none;z-index:60}
.floatxp{position:absolute;font-weight:900;font-size:24px;color:var(--cyan);animation:rise 1.1s ease-out forwards}
@keyframes rise{to{transform:translateY(-80px);opacity:0}}
.star{position:absolute;font-size:24px;animation:burst 1s ease-out forwards}
@keyframes burst{0%{transform:translate(0,0) scale(.3);opacity:1}100%{transform:translate(var(--dx),var(--dy)) scale(1);opacity:0}}
#dev{position:fixed;top:2px;inset-inline-start:2px;color:#0f0;font:11px monospace;z-index:100;display:none;background:rgba(0,0,0,.5);padding:1px 5px;border-radius:4px}
@media(max-width:640px){ .statgrid{grid-template-columns:repeat(2,1fr)} .buckets{grid-template-columns:1fr} .dhero{flex-direction:column;text-align:center} .navbtns{gap:2px}.navbtn{padding:7px 9px} }

/* ===================== FULL-APP ADDITIONS ===================== */
/* language toggle as an appbar chip */
.chip.langbtn{cursor:pointer;font-weight:800;border:1px solid var(--line2);background:rgba(255,255,255,.05);color:var(--text);font-size:13px}
.chip.langbtn:hover{background:rgba(255,255,255,.1)}
.switchrow .langbtn{cursor:pointer;color:var(--cyan)}

/* daily challenge card */
.dailycard{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:16px 20px;margin-bottom:18px;
  border:1px solid var(--line2);background:linear-gradient(120deg,rgba(109,94,252,.12),rgba(39,224,200,.08))}
.dailycard.done{background:rgba(54,211,153,.08)}
.dailymain{display:flex;align-items:center;gap:14px}
.dailyico{font-size:30px;filter:drop-shadow(0 0 10px rgba(109,94,252,.5))}
.dailyt{font-weight:800;font-size:17px}
.dailyside{display:flex;align-items:center;gap:14px}
.dailystreak{font-weight:800;color:var(--gold)} .dailystreak span{display:block;font-size:11px;color:var(--text2);font-weight:600}

/* ---- code challenge ---- */
.codebox{display:block}
.codestate{font-size:17px}
.codestatement{color:var(--text2);line-height:1.9;margin:10px 0 12px;font-size:15px}
.skillrow{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}
.skillchip{font-size:12px;padding:4px 11px;border-radius:20px;background:rgba(109,94,252,.16);border:1px solid var(--line2);color:var(--primary2)}
.examples{background:rgba(0,0,0,.22);border:1px solid var(--line);border-radius:var(--r-sm);padding:11px 14px;margin-bottom:12px}
.exhead{font-size:12px;color:var(--muted);margin-bottom:6px;font-weight:700}
.excase{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;color:var(--text);margin:3px 0;direction:ltr;text-align:left}
.excase code{color:var(--cyan)} .exarrow{color:var(--muted);margin:0 6px} .exmore{font-size:12px;color:var(--muted);margin-top:5px}
.editorhost{height:300px;border:1px solid var(--line2);border-radius:var(--r-sm);overflow:hidden;background:#0e1330;margin-bottom:10px}
.monaco-host{width:100%;height:100%}
.code-fallback{width:100%;height:300px;background:#0e1330;color:#e7eaf6;border:none;outline:none;resize:vertical;
  font-family:ui-monospace,Menlo,Consolas,monospace;font-size:14px;line-height:1.5;padding:12px;tab-size:4}
.coderow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.runstate{font-size:13px;color:var(--text2)} .runstate.busy{color:var(--gold)}
.console{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;white-space:pre-wrap;direction:ltr;text-align:left;
  min-height:0;border-radius:var(--r-sm)} .console:not(:empty){padding:10px 12px;background:rgba(0,0,0,.3);border:1px solid var(--line);margin-bottom:10px}
.cerr{color:var(--coral)} .cout{color:var(--text)} .chint{color:var(--gold)}
.testresults{display:none} .testresults.show{display:block;border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--line);margin-bottom:12px}
.testresults.good{border-color:rgba(54,211,153,.5)} .testresults.bad{border-color:rgba(255,107,107,.4)}
.rhead{padding:9px 13px;font-weight:800;font-size:14px;background:rgba(255,255,255,.04)}
.testresults.good .rhead{color:var(--green)} .testresults.bad .rhead{color:var(--coral)}
.rcase{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:7px 13px;border-top:1px solid var(--line);font-size:13px}
.rcase code{font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--cyan);direction:ltr}
.ci{font-size:11px;color:var(--muted);min-width:54px}
.rok{color:var(--green);font-weight:800} .rbad{color:var(--coral);font-size:12px;direction:ltr;text-align:left}
/* AI review panel */
.reviewpanel{display:none} .reviewpanel.show{display:block;border:1px solid var(--line2);border-radius:var(--r-sm);
  background:linear-gradient(120deg,rgba(109,94,252,.1),rgba(39,224,200,.06));padding:15px 17px;margin-bottom:12px}
.rvhead{display:flex;align-items:center;justify-content:space-between;gap:10px;font-weight:800;font-size:15px;flex-wrap:wrap}
.rvscore{font-size:13px;color:var(--cyan);background:rgba(0,0,0,.25);padding:3px 11px;border-radius:20px}
.rvsub{color:var(--text2);font-size:13px;margin:6px 0 10px}
.rvmeta{margin-bottom:8px} .rvchip{font-size:12px;background:rgba(0,0,0,.22);border:1px solid var(--line);padding:4px 10px;border-radius:20px}
.rvgroup{margin-top:8px} .rvtitle{font-weight:800;font-size:13px;margin-bottom:4px}
.rvtitle.good{color:var(--green)} .rvtitle.warn{color:var(--gold)}
.rvgroup ul{margin:0;padding-inline-start:20px} .rvgroup li{color:var(--text2);font-size:13px;line-height:1.8;margin:2px 0}
.refsolution{background:#0e1330;border:1px solid var(--line2);border-radius:var(--r-sm);padding:12px 14px;direction:ltr;text-align:left;
  font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;color:#e7eaf6;white-space:pre-wrap;margin-bottom:10px}
.refhead{color:var(--muted);font-size:11px;margin-bottom:6px}
.codefoot{display:flex;flex-direction:column;gap:10px}

/* certificate banner + list */
.certbanner{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center;padding:14px 18px;margin:14px 0;
  border:1px solid rgba(255,203,91,.45);background:rgba(255,203,91,.08);text-align:start}
.certbanner .certico{font-size:34px}
.certt{font-weight:800;font-size:16px;color:var(--gold)}
.certlist{display:flex;flex-direction:column;gap:10px}
.certrow{display:flex;align-items:center;gap:12px;padding:12px 14px}
.certrow .certico{font-size:26px}
.certinfo{flex:1} .certinfo .nm{font-weight:800} .certinfo .meta{font-size:12px;color:var(--muted)}

/* English LTR refinements (logical props handle most of it) */
html[lang="en"] .excase,html[lang="en"] .console,html[lang="en"] .refsolution{text-align:left}

@media(max-width:640px){ .editorhost,.code-fallback{height:240px} .dailycard{align-items:flex-start} }

/* ===================== CERT PREP + READINESS + EXAM ===================== */
/* exam-readiness card */
.rdcard .rdtop{display:flex;gap:14px;margin:14px 0;flex-wrap:wrap}
.rdcard .rdscore{flex:1;min-width:90px;text-align:center;background:rgba(255,255,255,.04);border-radius:14px;padding:12px 8px}
.rdcard .rdbig{font-size:26px;font-weight:800;line-height:1}
.rdcard .rdlbl{font-size:11px;opacity:.75;margin-top:6px}
.rddoms{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.rdrow{display:grid;grid-template-columns:1fr 90px auto;gap:10px;align-items:center;font-size:12px}
.rdname .rdw{opacity:.6;font-size:11px}
.rdbar{height:8px;border-radius:6px;background:rgba(255,255,255,.08);overflow:hidden}
.rdbar>div{height:100%;border-radius:6px;transition:width .5s}
.rdpct{font-variant-numeric:tabular-nums;white-space:nowrap}
.rdpct .rdcov{opacity:.5;font-size:10px;margin-inline-start:4px}
.rdweak{margin-top:12px;font-size:13px}
/* multi-select question */
.multitag{font-size:11px;padding:3px 9px;border-radius:20px;background:rgba(109,94,252,.18);border:1px solid var(--line2);color:var(--primary2)}
.multihint{font-size:12px;margin-bottom:8px;color:var(--gold)}
.opt.multi .k{font-size:16px}
.opt.multi.sel{border-color:var(--cyan);background:rgba(39,224,200,.12)}
/* exam timer */
.examtimer{font-variant-numeric:tabular-nums;font-weight:800;color:var(--gold);font-size:13px}
/* hands-on lab card */
.labcard{margin:14px 0;padding:14px 16px;border:1px dashed var(--line2);background:rgba(39,224,200,.05)}
.labhd{font-weight:800;margin-bottom:8px}
.labsteps{margin:0;padding-inline-start:20px} .labsteps li{color:var(--text2);line-height:1.9;margin:3px 0}
.labrow{margin-top:10px;font-size:14px;color:var(--text2)}

/* ===================== AI TUTOR (lesson only) ===================== */
.tutorbox{margin-top:16px;padding:14px 16px;border:1px solid var(--line2)}
.tutorhd{display:flex;align-items:center;justify-content:space-between;font-weight:800;margin-bottom:10px}
.tutorstate{font-size:11px;font-weight:700;padding:3px 9px;border-radius:20px;background:rgba(255,255,255,.05)}
.tutorstate.on{color:var(--green)} .tutorstate.off{color:var(--muted)}
.tutormsgs{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow-y:auto;margin-bottom:10px;min-height:0}
.tmsg{max-width:88%;padding:9px 13px;border-radius:14px;font-size:14px;line-height:1.7;white-space:pre-wrap;word-break:break-word}
.tmsg.u{align-self:flex-end;background:linear-gradient(120deg,#6d5efc,#27e0c8);color:#fff;border-bottom-right-radius:4px}
.tmsg.a{align-self:flex-start;background:rgba(255,255,255,.06);border:1px solid var(--line);border-bottom-left-radius:4px}
html[lang="ar"] .tmsg.u{border-bottom-right-radius:14px;border-bottom-left-radius:4px}
.tutorchips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.chipbtn{font-size:12px;padding:6px 12px;border-radius:20px;background:rgba(109,94,252,.14);border:1px solid var(--line2);color:var(--primary2);cursor:pointer}
.chipbtn:hover{background:rgba(109,94,252,.24)}
.tutorinput{display:flex;gap:8px}
.tutorinput input{flex:1;background:rgba(0,0,0,.25);border:1px solid var(--line2);border-radius:12px;padding:10px 13px;color:var(--text);font-size:14px;outline:none}
.tutorinput input:focus{border-color:var(--primary2)}
.tutornote{font-size:11px;color:var(--muted);margin-top:6px;min-height:0}
.consentrow{display:flex;align-items:center;gap:9px;font-size:14px;color:var(--text2);margin:7px 0;cursor:pointer}
.consentrow input{width:16px;height:16px;accent-color:var(--primary)}

/* ===================== MISTAKE RECAP + FLASHCARDS ===================== */
.recapgroup{padding:0;margin-bottom:12px;overflow:hidden}
.recaphd{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;font-weight:800;cursor:pointer}
.recaphd .rcn{font-size:12px;color:var(--coral);background:rgba(255,107,107,.15);border-radius:20px;padding:2px 10px}
.recapbody{display:none;border-top:1px solid var(--line)} .recapbody.show{display:block}
.recapq{padding:13px 16px;border-top:1px solid var(--line)}
.recapq:first-child{border-top:none}
.rq{font-weight:700;margin-bottom:7px;line-height:1.7}
.rwrong{color:var(--coral);font-size:13px;margin:2px 0} .rright{color:var(--green);font-size:13px;margin:2px 0}
.rwhy{color:var(--text2);font-size:13px;line-height:1.8;margin:7px 0 9px}
/* flashcards */
.flashcard{min-height:170px;display:flex;flex-direction:column;justify-content:center;gap:14px;padding:22px;margin:8px 0 14px;
  border:1px solid var(--line2);border-radius:var(--r);background:rgba(255,255,255,.03)}
.flashfront{font-size:19px;font-weight:800;line-height:1.7} .flashfront.dimfront{opacity:.5;font-size:16px}
.flashback{font-size:16px;color:var(--cyan);line-height:1.8;border-top:1px solid var(--line);padding-top:14px}
/* navigable exam: nav bar + question palette + flag */
.examnav{display:flex;gap:8px;justify-content:space-between;margin-top:12px}
.flagtag{color:var(--gold)!important;background:rgba(255,203,91,.15)!important}
.exampalette{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.palbtn{width:34px;height:34px;border-radius:9px;border:1px solid var(--line2);background:rgba(255,255,255,.04);color:var(--text2);
  font-weight:800;font-size:12px;cursor:pointer;font-variant-numeric:tabular-nums}
.palbtn:hover{border-color:var(--primary2)}
.palbtn.ans{background:rgba(39,224,200,.16);border-color:rgba(39,224,200,.5);color:var(--cyan)}
.palbtn.flag{background:rgba(255,203,91,.16);border-color:rgba(255,203,91,.5);color:var(--gold)}
.palbtn.cur{outline:2px solid var(--primary2);outline-offset:1px;color:var(--text)}

/* ---- secure admin panel (server-backed) ---- */
.admintabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.adtable{width:100%;border-collapse:collapse;font-size:13px;margin-top:6px}
.adtable th,.adtable td{text-align:start;padding:7px 8px;border-bottom:1px solid var(--line2);vertical-align:middle}
.adtable th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.adtable .urow{display:flex;flex-wrap:wrap;gap:5px}
.adtable input{width:100%;max-width:90px}

/* logout chip in the app bar */
.lo-chip{cursor:pointer;border:none;font:inherit;font-weight:800}
.lo-chip:hover{background:rgba(255,90,90,.18);color:#ff9a9a}
