:root{
  --blue:#1E6FE8; --blue-d:#1556BD; --orange:#FF8A00; --green:#1FA347; --red:#EE2B33; --yellow:#FFC414; --navy:#13297A;
  --teal:#0E9C93; --purple:#7A4BD8;
  --bg:#EEF5FF; --surface:#FFFFFF; --ink:#13214A; --muted:#4F5C82; --line:#D3E0F5; --rule:#C9DCFA; --soft:#E3EEFF;
  --ok:#14883A; --bad:#D6262E;
  --r-lg:28px; --r-md:18px; --r-sm:12px;
  --f-head:"Baloo 2","Baloo Bhaijaan 2",ui-rounded,"Arial Rounded MT Bold",system-ui,sans-serif;
  --f-body:"Nunito",ui-rounded,system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-ar:"Baloo Bhaijaan 2","Noto Naskh Arabic",Tahoma,sans-serif;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){--bg:#0D1838;--surface:#16264F;--ink:#F1F5FF;--muted:#B5C2E6;--line:#2A3E72;--rule:#1D2F60;--soft:#1C2F61;--ok:#4BD27A;--bad:#FF6B70}
}
:root[data-theme="dark"]{--bg:#0D1838;--surface:#16264F;--ink:#F1F5FF;--muted:#B5C2E6;--line:#2A3E72;--rule:#1D2F60;--soft:#1C2F61;--ok:#4BD27A;--bad:#FF6B70}
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 80px)}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
button{font:inherit;color:inherit;cursor:pointer}
h1,h2,h3,h4{font-family:var(--f-head);line-height:1.1;margin:0 0 .4em;letter-spacing:-.01em}
h2{font-size:clamp(1.7rem,4.5vw,2.4rem);font-weight:800}
h3{font-size:1.3rem;font-weight:800}
p{margin:0 0 1em}
[dir="rtl"],.ar{font-family:var(--f-ar)}
:focus-visible{outline:4px solid var(--yellow);outline-offset:3px;border-radius:10px}
.wrap{width:min(1180px,100% - 32px);margin-inline:auto}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- header ---------- */
.top{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding-top:env(safe-area-inset-top,0px);margin-top:calc(-1 * env(safe-area-inset-top,0px));border-bottom:2px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:14px;min-height:68px}
.brand{display:flex;align-items:center;flex:none;text-decoration:none}
.brand img{height:44px;width:auto}
:root[data-theme="dark"] .brand,.dark-pill{background:#fff;border-radius:14px;padding:3px 8px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .brand{background:#fff;border-radius:14px;padding:3px 8px}}
.nav{display:none;gap:4px;margin-inline-start:8px}
.nav a{text-decoration:none;font-family:var(--f-head);font-weight:700;font-size:1.05rem;padding:8px 12px;border-radius:12px}
.nav a:hover{background:var(--soft)}
.nav a[aria-current="page"]{background:var(--ink);color:var(--bg)}
.top-actions{margin-inline-start:auto;display:flex;gap:8px;align-items:center}
.icon-btn{border:2px solid var(--line);background:var(--surface);border-radius:14px;min-width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 12px;font-family:var(--f-head);font-weight:800;font-size:1.05rem;text-decoration:none}
.star-pill{background:var(--yellow);border-color:#E3A900;color:#4A3300}
@media(min-width:960px){.nav{display:flex}}

/* bottom tab bar (mobile) */
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--surface);border-top:2px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);padding-bottom:env(safe-area-inset-bottom,0px)}
.tabbar a{display:flex;flex-direction:column;align-items:center;gap:0;text-decoration:none;padding:8px 2px 6px;font-family:var(--f-head);font-weight:700;font-size:.82rem;color:var(--muted)}
.tabbar a span{font-size:1.45rem;line-height:1.1}
.tabbar a[aria-current="page"]{color:var(--blue)}
main{padding-bottom:96px}
@media(min-width:960px){.tabbar{display:none}main{padding-bottom:40px}}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:0 26px;border:0;border-radius:18px;font-family:var(--f-head);font-weight:800;font-size:1.15rem;text-decoration:none;color:#fff;background:var(--blue);box-shadow:inset 0 -6px 0 rgba(0,0,0,.2);transition:transform .12s}
.btn:active{transform:translateY(2px);box-shadow:inset 0 -3px 0 rgba(0,0,0,.2)}
.btn.y{background:var(--yellow);color:#3D2A00}
.btn.g{background:var(--green)}
.btn.o{background:var(--orange)}
.btn.ghost{background:var(--surface);color:var(--ink);border:2px solid var(--line);box-shadow:inset 0 -5px 0 var(--line)}
.btn.sm{min-height:44px;padding:0 16px;font-size:1rem;border-radius:14px}
.btn[disabled]{opacity:.5;cursor:not-allowed}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;background:var(--blue);color:#fff;
  background-image:linear-gradient(rgba(255,255,255,.11) 2px,transparent 2px),linear-gradient(90deg,rgba(255,80,80,.35) 3px,transparent 3px);
  background-size:100% 34px,100% 100%;background-position:0 0,10px 0;background-repeat:repeat,no-repeat}
.hero .wrap{display:grid;gap:12px;padding:34px 0 0;align-items:end}
.tiles{display:flex;flex-wrap:wrap;gap:10px 12px;margin:0 0 18px;font-size:clamp(2.3rem,9vw,4.8rem);font-weight:800;line-height:1}
.tiles .t{display:inline-block;padding:.12em .32em .02em;border-radius:.26em;box-shadow:inset 0 -.1em 0 rgba(0,0,0,.2),0 .08em 0 rgba(0,0,0,.12)}
.t1{background:var(--orange);transform:rotate(-3deg)}
.t2{background:var(--green);transform:rotate(2deg)}
.t3{background:var(--yellow);color:#3D2A00;transform:rotate(-1.5deg)}
.t4{background:var(--red);transform:rotate(2.5deg)}
.hero p.lead{font-size:1.15rem;max-width:34ch;font-weight:700;color:#EAF2FF;margin-bottom:22px}
.hero .ctas{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:26px}
.hero .ctas .btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.7);box-shadow:none}
.hero-mascot{position:relative;justify-self:center;width:min(330px,78vw)}
.bubble{position:absolute;z-index:2;top:2%;inset-inline-end:0;background:#fff;color:var(--ink);font-family:var(--f-head);font-weight:800;font-size:1.05rem;line-height:1.2;padding:10px 14px;border-radius:18px;max-width:170px;box-shadow:0 6px 0 rgba(0,0,0,.12)}
.bubble::after{content:"";position:absolute;inset-inline-start:18px;bottom:-12px;border:12px solid transparent;border-top-color:#fff;border-bottom:0}
.hero-ground{height:18px;background:var(--yellow);box-shadow:inset 0 -6px 0 rgba(0,0,0,.15)}
@media(min-width:820px){.hero{background-position:0 0,56px 0}.hero .wrap{grid-template-columns:1.25fr .9fr;padding-top:56px}.hero-mascot{width:min(400px,100%)}}
@media (prefers-reduced-motion:no-preference){
  .hero-mascot img{animation:hop 1s cubic-bezier(.3,1.6,.5,1) .15s both}
  @keyframes hop{from{transform:translateY(40px) scale(.9);opacity:0}to{transform:none;opacity:1}}
}

/* ---------- sections ---------- */
.sec{padding:44px 0 8px}
.sec-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:18px}
.sec-head p{color:var(--muted);margin:0;font-weight:700}
.more{font-family:var(--f-head);font-weight:800;color:var(--blue);text-decoration:none;white-space:nowrap}
.more:hover{text-decoration:underline}

/* level tiles */
.levels{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
@media(min-width:720px){.levels{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1100px){.levels{grid-template-columns:repeat(6,1fr)}}
.lvl{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:236px;padding:14px 14px 0;border-radius:var(--r-lg);color:#fff;text-decoration:none;overflow:hidden;box-shadow:inset 0 -8px 0 rgba(0,0,0,.18)}
.lvl .num{font-family:var(--f-head);font-weight:800;font-size:4.2rem;line-height:.85}
.lvl .nm{font-family:var(--f-head);font-weight:800;font-size:1.15rem;line-height:1.1}
.lvl .ar{font-size:.95rem;opacity:.9}
.lvl>span{position:relative;z-index:1}
.lvl img{position:absolute;inset-inline-end:-8px;bottom:6px;height:46%;width:auto;filter:drop-shadow(0 4px 0 rgba(0,0,0,.15))}
.lvl.on::after{content:"Mon niveau";position:absolute;top:12px;inset-inline-end:12px;background:#fff;color:var(--ink);font-family:var(--f-head);font-weight:800;font-size:.8rem;padding:2px 10px;border-radius:99px}

/* rows of cards */
.row{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.scroller{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(230px,72%);gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px}
.scroller>*{scroll-snap-align:start}
@media(min-width:720px){.scroller{grid-auto-flow:row;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));overflow:visible}}
.card{display:flex;flex-direction:column;background:var(--surface);border:2px solid var(--line);border-radius:var(--r-md);text-decoration:none;overflow:hidden;min-height:100%}
.card:hover{border-color:var(--blue)}
.card .band{display:flex;align-items:center;justify-content:center;height:110px;font-size:3.4rem;color:#fff}
.card .body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px;flex:1}
.card h3{font-size:1.18rem;margin:0}
.card .desc{color:var(--muted);font-size:.95rem;margin:0}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:6px}
.tag{font-size:.8rem;font-weight:800;padding:2px 10px;border-radius:99px;background:var(--soft);color:var(--ink)}
.done-mark{color:var(--ok);font-weight:800;font-size:.85rem}

/* feature split */
.split{display:grid;gap:18px;align-items:center}
@media(min-width:820px){.split{grid-template-columns:1.2fr 1fr}}
.panel{background:var(--surface);border:2px solid var(--line);border-radius:var(--r-lg);padding:20px}

/* video facade */
.player{position:relative;aspect-ratio:16/9;border-radius:var(--r-lg);overflow:hidden;background:var(--navy);color:#fff}
.player iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.facade{position:absolute;inset:0;width:100%;border:0;padding:0;display:grid;place-items:center;text-align:start;color:#fff;background:linear-gradient(135deg,var(--c1,#1E6FE8),var(--c2,#13297A))}
.facade img{position:absolute;inset-inline-end:4%;bottom:0;height:88%;width:auto}
.facade .ttl{position:absolute;inset-inline-start:5%;top:8%;max-width:55%;font-family:var(--f-head);font-weight:800;font-size:clamp(1.1rem,3.6vw,2rem);line-height:1.05}
.play{width:78px;height:78px;border-radius:50%;background:var(--red);display:grid;place-items:center;box-shadow:inset 0 -6px 0 rgba(0,0,0,.25),0 6px 18px rgba(0,0,0,.25)}
.play::before{content:"";margin-left:7px;border-left:26px solid #fff;border-top:16px solid transparent;border-bottom:16px solid transparent}
.vmsg{position:absolute;inset:auto 12px 12px 12px;background:rgba(0,0,0,.65);padding:10px 14px;border-radius:12px;font-weight:700}

/* next-steps strip (recommendations) */
.reco{display:grid;gap:10px}
.reco a{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;background:var(--surface);border:2px solid var(--line);text-decoration:none;font-weight:800}
.reco a:hover{border-color:var(--blue)}
.reco .ic{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:1.5rem;flex:none;background:var(--soft)}
.reco small{display:block;color:var(--muted);font-weight:700}

/* breadcrumbs */
.crumbs{display:flex;flex-wrap:wrap;gap:6px;font-size:.92rem;font-weight:700;color:var(--muted);padding:16px 0 4px;margin:0;list-style:none}
.crumbs li+li::before{content:"›";margin-inline-end:6px}
[dir="rtl"] .crumbs li+li::before{content:"‹"}
.crumbs a{text-decoration:none;color:var(--blue)}

.page-head{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:8px 0 10px}
.page-head .pose{width:86px;justify-self:end}
@media(min-width:720px){.page-head .pose{width:160px}}
.page-head p{color:var(--muted);font-weight:700;max-width:60ch}

/* chips / filters */
.chips{display:flex;gap:8px;overflow-x:auto;padding:4px 0 12px}
.chip{flex:none;border:2px solid var(--line);background:var(--surface);border-radius:99px;padding:8px 16px;font-family:var(--f-head);font-weight:800;font-size:1rem;min-height:44px}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}

/* ---------- game / quiz stage ---------- */
.stage{max-width:760px;margin:0 auto;padding:10px 0 30px}
.stage-top{display:flex;align-items:center;gap:12px;margin:10px 0 14px}
.dots{display:flex;gap:6px;flex:1}
.dots i{flex:1;height:12px;border-radius:99px;background:var(--line)}
.dots i.ok{background:var(--green)}
.dots i.ko{background:var(--red)}
.dots i.cur{background:var(--yellow)}
.qcard{position:relative;background:var(--surface);border:3px solid var(--line);border-radius:var(--r-lg);padding:22px 18px 18px;text-align:center}
.qlabel{font-family:var(--f-head);font-weight:800;color:var(--muted);font-size:1.05rem;margin-bottom:6px}
.qbig{font-family:var(--f-head);font-weight:800;font-size:clamp(2.2rem,9vw,3.6rem);line-height:1.1;margin:6px 0 10px;word-break:break-word}
.qbig.ar{font-family:var(--f-ar)}
.qvis{font-size:2rem;letter-spacing:.06em;line-height:1.3;margin-bottom:6px}
.choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}
.choice{min-height:76px;border:3px solid var(--line);background:var(--surface);border-radius:20px;font-family:var(--f-head);font-weight:800;font-size:clamp(1.4rem,5vw,2rem);box-shadow:inset 0 -6px 0 var(--line);padding:6px 10px}
.choice.ar{font-family:var(--f-ar);font-size:clamp(1.8rem,7vw,2.6rem)}
.choice:hover:not([disabled]){border-color:var(--blue)}
.choice.ok{background:var(--green);border-color:var(--green);color:#fff;box-shadow:inset 0 -6px 0 rgba(0,0,0,.2)}
.choice.ko{background:var(--red);border-color:var(--red);color:#fff;box-shadow:inset 0 -6px 0 rgba(0,0,0,.2)}
.choice[disabled]{cursor:default}
.feedback{min-height:56px;margin-top:14px;display:flex;align-items:center;justify-content:center;gap:12px;font-family:var(--f-head);font-weight:800;font-size:1.2rem}
.feedback.ok{color:var(--ok)} .feedback.ko{color:var(--bad)}
.react{position:absolute;inset-inline-end:2px;top:-46px;width:66px;pointer-events:none}
.qcard .qlabel{padding:0 64px}
@media(min-width:720px){.react{width:130px;inset-inline-end:-70px;top:-40px}.qcard .qlabel{padding:0}}
@media (prefers-reduced-motion:no-preference){.pop{animation:pop .35s cubic-bezier(.3,1.7,.5,1)}@keyframes pop{from{transform:scale(.6)}to{transform:none}}}
.coin{display:inline-grid;place-items:center;width:58px;height:58px;border-radius:50%;margin:4px;font-family:var(--f-head);font-weight:800;font-size:1.2rem;color:#4A3300;background:radial-gradient(circle at 35% 30%,#FFE58A,#E0A800);box-shadow:inset 0 -4px 0 rgba(0,0,0,.18)}
.coin.s{background:radial-gradient(circle at 35% 30%,#F4F6FA,#A9B3C6);color:#26314F}
.coin.b{width:64px;height:64px;background:radial-gradient(circle at 35% 30%,#FFE58A 0 44%,#B8BFCD 46%);}
.frac{display:inline-flex;flex-direction:column;align-items:center;line-height:1}
.frac b{display:block;padding:0 6px}
.frac b:first-child{border-bottom:3px solid currentColor;padding-bottom:2px;margin-bottom:2px}

/* order (sentence) */
.slots{min-height:72px;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center;padding:12px;border:3px dashed var(--line);border-radius:18px;margin-top:12px}
.word{border:3px solid var(--line);background:var(--surface);border-radius:14px;padding:8px 14px;font-family:var(--f-head);font-weight:800;font-size:1.3rem;min-height:52px;box-shadow:inset 0 -4px 0 var(--line)}
.bank{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:12px}

/* memory */
.mem{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:520px;margin:0 auto}
.mcard{aspect-ratio:1;border-radius:16px;border:0;font-size:clamp(1.8rem,8vw,2.6rem);background:var(--blue);color:transparent;box-shadow:inset 0 -6px 0 rgba(0,0,0,.2);position:relative}
.mcard::after{content:"?";position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-family:var(--f-head);font-weight:800}
.mcard.up,.mcard.found{background:var(--surface);color:inherit;box-shadow:inset 0 0 0 3px var(--line)}
.mcard.up::after,.mcard.found::after{content:none}
.mcard.found{box-shadow:inset 0 0 0 3px var(--green);opacity:.75}

/* results */
.result{text-align:center}
.result img{width:180px;margin:0 auto}
.big-stars{font-size:3rem;letter-spacing:.1em;margin:4px 0}
.big-stars .off{filter:grayscale(1);opacity:.3}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}
.stat{background:var(--soft);border-radius:16px;padding:10px}
.stat b{display:block;font-family:var(--f-head);font-size:2rem;line-height:1}
.stat span{font-size:.85rem;font-weight:800;color:var(--muted)}
.errors{text-align:start;margin:14px 0;padding:0;list-style:none;display:grid;gap:8px}
.errors li{background:var(--soft);border-radius:14px;padding:10px 14px;font-weight:700}
.errors li b{color:var(--ok)}
.tip{display:flex;gap:12px;align-items:center;text-align:start;background:color-mix(in srgb,var(--yellow) 22%,var(--surface));border-radius:18px;padding:12px 14px;font-weight:700;margin:12px 0}
.tip img{width:64px;flex:none;margin:0}
.actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:14px}

/* songs */
.lyrics{font-family:var(--f-head);font-weight:700;font-size:1.35rem;line-height:1.5;margin:14px 0 0;padding:0;list-style:none}
.lyrics li{padding:2px 10px;border-radius:10px}
.lyrics li.now{background:var(--yellow);color:#3D2A00}
.lyrics.ar{font-family:var(--f-ar);font-size:1.6rem;text-align:right}

/* progress */
.prog-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media(min-width:720px){.prog-grid{grid-template-columns:repeat(4,1fr)}}
.meter{height:22px;background:var(--line);border-radius:99px;overflow:hidden;margin:8px 0}
.meter i{display:block;height:100%;background:var(--green);border-radius:99px}
.badges{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media(min-width:720px){.badges{grid-template-columns:repeat(4,1fr)}}
.badge{text-align:center;padding:16px 10px;border-radius:20px;background:var(--surface);border:2px solid var(--line)}
.badge .em{font-size:2.2rem;line-height:1.2}
.badge.locked{opacity:.45;filter:grayscale(1)}
.badge h3{margin:4px 0 0;font-size:1.15rem}
.badge small{color:var(--muted);font-weight:700}

/* lists, articles */
.lesson{display:grid;gap:8px;background:var(--surface);border:2px solid var(--line);border-radius:var(--r-md);padding:14px 16px}
.lesson h3{margin:0;font-size:1.2rem}
.lesson .links{display:flex;flex-wrap:wrap;gap:8px}
.note{background:var(--soft);border-radius:16px;padding:12px 16px;font-weight:700;color:var(--muted);font-size:.95rem}
.prose{max-width:68ch}
.prose h2{margin-top:1.2em;font-size:1.6rem}
.prose li{margin-bottom:.4em}

/* forms */
.field{display:grid;gap:4px;margin-bottom:12px}
.field label{font-weight:800}
.field input,.search-box input{font:inherit;font-size:1.05rem;min-height:52px;padding:0 14px;border-radius:14px;border:2px solid var(--line);background:var(--surface);color:var(--ink)}
.check{display:flex;gap:10px;align-items:flex-start;font-size:.92rem;font-weight:700;margin-bottom:12px}
.check input{width:24px;height:24px;flex:none;margin-top:2px}
.search-box{display:flex;gap:8px;margin:6px 0 10px}
.search-box input{flex:1;min-width:0}
.newsletter{background:var(--green);color:#fff;border-radius:var(--r-lg);padding:22px;display:grid;gap:16px;overflow:hidden;position:relative}
.newsletter .field input{border-color:transparent}
.newsletter .note{background:rgba(255,255,255,.15);color:#fff}
@media(min-width:820px){.newsletter{grid-template-columns:1fr 1fr;padding:30px}}

/* footer */
footer{margin-top:50px;background:var(--navy);color:#DCE6FF;padding:34px 0 30px}
footer .cols{display:grid;gap:22px;grid-template-columns:repeat(2,1fr)}
@media(min-width:820px){footer .cols{grid-template-columns:1.4fr repeat(3,1fr)}}
footer h4{color:#fff;font-size:1.1rem}
footer a{display:block;text-decoration:none;padding:3px 0;font-weight:700}
footer a:hover{text-decoration:underline}
footer .flogo{background:#fff;border-radius:16px;padding:6px 10px;display:inline-block;margin-bottom:10px}
footer .flogo img{height:44px;width:auto}
footer small{display:block;margin-top:24px;opacity:.8}

/* modal / worksheet */
dialog{border:0;border-radius:var(--r-lg);padding:0;width:min(820px,100% - 20px);max-height:calc(100% - 40px);background:var(--surface);color:var(--ink)}
dialog::backdrop{background:rgba(10,20,50,.55)}
.dlg-bar{position:sticky;top:0;display:flex;gap:8px;justify-content:space-between;align-items:center;padding:12px 14px;background:var(--surface);border-bottom:2px solid var(--line);z-index:2}
.sheet{background:#fff;color:#13214A;margin:14px;padding:26px;border-radius:8px;border:1px solid #D3E0F5;font-family:var(--f-body)}
.sheet .sh-head{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:3px solid #1E6FE8;padding-bottom:10px;margin-bottom:14px}
.sheet .sh-head img{height:42px;width:auto}
.sheet h2{font-size:1.6rem;margin:0 0 4px}
.sheet .line{display:flex;gap:18px;font-weight:700;margin-bottom:14px;flex-wrap:wrap}
.sheet ol{display:grid;grid-template-columns:repeat(2,1fr);gap:14px 30px;font-size:1.25rem;font-weight:700;padding-left:22px}
.sheet .trace{font-family:var(--f-ar);font-size:2.6rem;color:#C9D6EE;letter-spacing:.25em;direction:rtl;border-bottom:2px dashed #C9D6EE;margin:6px 0 10px}
.sheet .trace-lat{font-family:var(--f-head);font-size:2.4rem;color:#C9D6EE;letter-spacing:.3em;border-bottom:2px dashed #C9D6EE;margin:6px 0 10px}
.sheet .foot{margin-top:16px;font-size:.85rem;color:#4F5C82;display:flex;justify-content:space-between;align-items:center}
.sheet .foot img{height:54px;width:auto}
@media print{
  body *{visibility:hidden}
  .sheet,.sheet *{visibility:visible}
  .sheet{position:absolute;left:0;top:0;margin:0;border:0;width:100%}
}
.ad-slot{display:none}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* référentiel : catégories et validation */
.tag.rb.OFFICIEL{background:#D4F2DE;color:#0B5B26}
.tag.rb.PEDA{background:#E0EBFF;color:#123E86}
.tag.rb.LUDIQUE{background:#FFE9D1;color:#7A3B00}
.tag.rb.pending{background:#FFF1C2;color:#5A4300}
.refline{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:.92rem;font-weight:700;background:var(--soft);border-radius:14px;padding:8px 12px;margin:10px 0}
.refline.pending{background:#FFF1C2;color:#5A4300}

/* ===== Interface arabe (de droite à gauche) ===== */
[dir="rtl"] body{font-family:var(--f-ar)}
[lang="ar"] h1,[lang="ar"] h2,[lang="ar"] h3,[lang="ar"] h4,[lang="ar"] .btn,[lang="ar"] .nav a,[lang="ar"] .tabbar a,[lang="ar"] .chip,[lang="ar"] .more,[lang="ar"] .bubble,[lang="ar"] .tiles{font-family:var(--f-ar)}
[lang="ar"] *{letter-spacing:0!important}
[lang="ar"] .lvl.on::after{content:"مستواي"}
[dir="rtl"] .hero{background-position:0 0,calc(100% - 10px) 0}
@media(min-width:820px){[dir="rtl"] .hero{background-position:0 0,calc(100% - 56px) 0}}
.tiles .t:empty{display:none}
.lang-btn{font-family:var(--f-ar);font-weight:800}
[dir="rtl"] .lang-btn{font-family:var(--f-head)}
bdi{unicode-bidi:isolate}
[lang="ar"] .tiles{line-height:1.25}
[lang="ar"] .tiles .t{padding:.1em .3em .14em}
