/* ==========================================================================
   Shell + pages
   ========================================================================== */
body{background:var(--bg)}
.hdr{position:fixed;inset:0 0 auto 0;height:var(--header);z-index:60;display:flex;align-items:center;gap:12px;padding:0 16px;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:700;font-size:var(--fs-md);min-height:44px;margin-inline-end:auto;white-space:nowrap}
.brand .logo{width:34px;height:34px}
.srch{position:relative;flex:0 1 380px;min-width:0}
.srch .ic{position:absolute;inset-inline-start:14px;inset-block-start:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.srch input{padding-inline-start:40px;border-radius:var(--r-pill);background:var(--surface-2);border-color:transparent}
.srch input:focus{background:var(--surface)}
.sr{position:absolute;inset-inline:0;top:calc(100% + 8px);background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-lg);padding:6px;z-index:70;max-height:60vh;overflow:auto}
.sr-i{display:flex;gap:12px;align-items:center;padding:8px 10px;border-radius:var(--r-sm);text-decoration:none;min-height:44px}
.sr-i:hover,.sr-i.sel{background:var(--violet-soft)}.sr-i small{display:block;color:var(--muted);font-size:var(--fs-xs)}.sr-i b{font-size:var(--fs-sm)}
.sr-none{padding:14px;color:var(--muted);font-size:var(--fs-sm)}
.hdr .btn-ghost{min-height:44px}
#menu-btn{display:none}
.sidebar{position:fixed;inset-block:var(--header) 0;inset-inline-start:0;width:var(--sidebar);overflow-y:auto;padding:16px 12px 24px;border-inline-end:1px solid var(--line);background:var(--bg);z-index:50}
.nv{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 12px;border-radius:var(--r-sm);text-decoration:none;font-size:var(--fs-sm);font-weight:500;color:var(--text-2)}
.nv:hover{background:var(--surface-2);color:var(--text)}
.nv.on{background:var(--violet-soft);color:var(--violet);font-weight:700}
.nv span{flex:1}.nv em,.nv-f summary em{font-style:normal;font-size:var(--fs-xs);color:var(--muted);font-weight:600}
.nv-h{font-size:var(--fs-xs);font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);padding:18px 12px 6px}
.nv-f summary{display:flex;align-items:center;min-height:40px;padding:0 12px 0 28px;font-size:var(--fs-sm);font-weight:600;color:var(--text-2);cursor:pointer;list-style:none;border-radius:var(--r-sm);justify-content:space-between;position:relative}
html[dir=rtl] .nv-f summary{padding:0 28px 0 12px}
.nv-f summary::-webkit-details-marker{display:none}
.nv-f summary::before{content:'';position:absolute;inset-inline-start:12px;top:50%;width:6px;height:6px;border:solid var(--muted);border-width:0 2px 2px 0;transform:translateY(-70%) rotate(-45deg);transition:transform .2s}
html[dir=rtl] .nv-f summary::before{transform:translateY(-70%) rotate(135deg)}
.nv-f[open] summary::before{transform:translateY(-80%) rotate(45deg)}
.nv-f summary:hover{background:var(--surface-2)}
.nv-f ul{padding-inline-start:12px;margin-block:2px 6px}
.nv-l{display:flex;align-items:center;gap:10px;min-height:40px;padding:0 12px;border-radius:var(--r-sm);font-size:var(--fs-sm);text-decoration:none;color:var(--text-2)}
.nv-l:hover{background:var(--surface-2);color:var(--text)}.nv-l.on{background:var(--violet-soft);color:var(--violet);font-weight:700}
.nv-n{min-width:22px;font-size:var(--fs-xs);color:var(--subtle);font-variant-numeric:tabular-nums}
.nv-ok{margin-inline-start:auto;color:var(--success);display:grid}
.nav-bd{display:none}
.main{margin-inline-start:var(--sidebar);padding:calc(var(--header) + 28px) clamp(16px,3vw,40px) 40px;min-height:100svh;max-width:calc(var(--sidebar) + 1400px)}
.foot{margin-inline-start:var(--sidebar);padding:24px clamp(16px,3vw,40px) 40px;color:var(--muted);font-size:var(--fs-sm);border-top:1px solid var(--line);display:grid;gap:4px}
@media (max-width:1179px){
  #menu-btn{display:inline-grid}
  .sidebar{transform:translateX(-102%);transition:transform .3s var(--ease);width:min(86vw,320px);box-shadow:var(--shadow-lg);background:var(--surface)}
  html[dir=rtl] .sidebar{transform:translateX(102%)}
  html.nav-open .sidebar{transform:none}
  html.nav-open .nav-bd{display:block;position:fixed;inset:var(--header) 0 0 0;background:rgba(13,13,16,.45);z-index:45}
  .main,.foot{margin-inline-start:0}
}
@media (max-width:720px){.brand span{display:none}.srch{flex:1}.hdr{padding:0 10px;gap:8px}.hdr .btn-ghost{padding:0 12px}}
@media (max-width:420px){.hdr .btn-ghost{min-width:44px;padding:0 8px}}

/* pages */
.ph{margin-bottom:28px;max-width:860px}
.ph h1,.les-main h1{font-size:var(--fs-h1);letter-spacing:-.03em;margin:8px 0 12px;line-height:1.12}
html[lang=ar] .ph h1,html[lang=ar] .les-main h1{line-height:1.4;letter-spacing:0}
.ph h1:focus,.hero-h:focus{outline:none}
.lead{font-size:var(--fs-lg);color:var(--text-2);max-width:68ch}
.blk{margin-bottom:var(--s16)}
.sec-h{margin-bottom:20px}.sec-h h2{font-size:var(--fs-h2);letter-spacing:-.02em;margin:6px 0 8px}.sec-h .lead{font-size:var(--fs-md)}
.bc-page{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:var(--fs-sm);color:var(--muted);margin-bottom:12px;min-height:32px}.bc-page a{color:var(--violet);text-decoration:none;font-weight:500}.bc-page a:hover{text-decoration:underline}.bc-page [aria-current]{color:var(--text);font-weight:600}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.step{border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:22px;display:grid;gap:8px;position:relative}
.step .ic{width:28px;height:28px;color:var(--violet)}.step-n{position:absolute;inset-block-start:16px;inset-inline-end:20px;font-weight:800;font-size:1.6rem;color:var(--surface-3)}
.step b{font-size:var(--fs-lg)}.step p{color:var(--text-2)}
.fams{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.fam{display:grid;gap:8px;border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:22px;text-decoration:none;transition:transform .3s var(--ease),box-shadow .3s,border-color .3s}
.fam:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--line-strong)}
.fam-ic{width:44px;height:44px;border-radius:12px;background:var(--grad-soft);color:var(--violet);display:grid;place-items:center}
.fam b{font-size:var(--fs-lg)}.fam span:not(.fam-ic){color:var(--text-2);font-size:var(--fs-sm)}.fam em{font-style:normal;display:inline-flex;gap:6px;align-items:center;color:var(--violet);font-weight:600;font-size:var(--fs-sm);margin-top:4px}
.lcs{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.lc{display:grid;gap:6px;align-content:start;border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:18px 20px;text-decoration:none;transition:transform .3s var(--ease),box-shadow .3s,border-color .3s;min-height:150px}
.lc:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--line-strong)}
.lc-n{font-size:var(--fs-xs);font-weight:700;color:var(--violet);letter-spacing:.06em}.lc b{font-size:var(--fs-lg);line-height:1.25}.lc-s{color:var(--text-2);font-size:var(--fs-sm)}.lc-f{margin-top:auto;font-size:var(--fs-xs);color:var(--muted);font-weight:600;display:flex;gap:4px;align-items:center;padding-top:6px}
.lab-ic{width:40px;height:40px;border-radius:12px;background:var(--grad-soft);color:var(--violet);display:grid;place-items:center}
.chips-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.chip-b{min-height:44px;padding:0 16px;border-radius:var(--r-pill);border:1px solid var(--line-strong);background:var(--surface);font-weight:600;font-size:var(--fs-sm);color:var(--text-2)}
.chip-b:hover{background:var(--surface-2)}.chip-b[aria-pressed=true]{background:var(--text);color:var(--bg);border-color:var(--text)}

/* lesson */
.les{display:grid;grid-template-columns:minmax(0,1fr);gap:40px}
@media (min-width:1360px){.les{grid-template-columns:minmax(0,1fr) var(--toc)}}
.les-main{min-width:0;max-width:var(--content-max)}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-top:20px}
.fact{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:14px 16px;display:grid;gap:4px}
.fact span{display:flex;gap:6px;align-items:center;font-size:var(--fs-xs);font-weight:700;color:var(--violet);text-transform:uppercase;letter-spacing:.06em}.fact p{font-size:var(--fs-sm);color:var(--text-2)}
.les-s{margin-bottom:56px;scroll-margin-top:calc(var(--header) + 16px)}
.ex-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.ex-stage{background:repeating-conic-gradient(var(--surface-2) 0 25%,transparent 0 50%) 0 0/20px 20px;border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(12px,3vw,28px);overflow:hidden}
.anat{display:grid;gap:16px}@media (min-width:860px){.anat{grid-template-columns:minmax(220px,300px) 1fr;align-items:start}}
.parts{display:grid;gap:6px}
.part-b{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:0 14px 0 8px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);text-align:start;font-weight:600;font-size:var(--fs-sm)}
.part-b:hover{background:var(--surface-2)}.part-b[aria-pressed=true]{border-color:var(--pink);background:var(--pink-soft);color:var(--text)}
.part-n{display:inline-grid;place-items:center;min-width:26px;height:26px;border-radius:50%;background:var(--violet-soft);color:var(--violet);font-size:var(--fs-xs);font-weight:700;flex:none}
.part-b[aria-pressed=true] .part-n{background:var(--pink);color:#fff}
.part-d{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:20px;min-height:140px;display:grid;gap:8px;align-content:start}
.part-d h3{display:flex;gap:10px;align-items:center;font-size:var(--fs-lg)}.part-d p{color:var(--text-2)}
.st-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:16px}
.st-fig{margin:0;display:grid;gap:8px}.st-fig figcaption{display:flex;gap:8px;align-items:center;font-size:var(--fs-sm);font-weight:600}
.ua{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.ua-c{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:20px;display:grid;gap:12px;align-content:start}
.ua-c.good{border-color:color-mix(in srgb,var(--success) 40%,var(--line))}.ua-c.bad{border-color:color-mix(in srgb,var(--danger) 40%,var(--line))}
.ua-h{display:inline-flex;gap:8px;align-items:center;font-weight:700;font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.05em}.good .ua-h{color:var(--success)}.bad .ua-h{color:var(--danger)}
.ua-cap{font-size:var(--fs-sm);color:var(--muted)}
.behave{margin-bottom:14px;color:var(--text-2)}
.rules{display:grid;gap:10px}.rules li{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);background:var(--surface);border-radius:var(--r-sm);padding:12px 14px}
.tag{flex:none;font-size:var(--fs-xs);font-weight:700;padding:2px 10px;border-radius:var(--r-pill);min-width:74px;text-align:center;margin-top:2px}
.tag-a11y{background:var(--violet-soft);color:var(--violet)}.tag-resp{background:var(--success-soft);color:var(--success)}.tag-rtl{background:var(--pink-soft);color:var(--pink)}.tag-rule{background:var(--surface-3);color:var(--text-2)}
.note{display:flex;gap:8px;align-items:flex-start;margin-top:14px;font-size:var(--fs-sm);color:var(--text-2)}.note a{color:var(--violet);font-weight:600}
.cf{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.cf-c{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:16px;display:grid;gap:4px}.cf-c a{color:var(--violet);font-weight:700;text-decoration:none}.cf-c a:hover{text-decoration:underline}.cf-c p{font-size:var(--fs-sm);color:var(--text-2)}
.xe{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);padding:clamp(16px,3vw,28px);display:grid;gap:16px}
.xe-q,.lab-q{font-size:var(--fs-lg);font-weight:600;line-height:1.45}.lab-q:focus{outline:none}
.opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.opt{display:flex;align-items:center;gap:12px;min-height:52px;padding:10px 14px;border:1px solid var(--line-strong);border-radius:var(--r-sm);cursor:pointer;background:var(--surface);font-size:var(--fs-sm);font-weight:500}
.opt:hover{background:var(--surface-2)}.opt:has(input:checked){border-color:var(--violet);background:var(--violet-soft)}
.opt.right{border-color:var(--success);background:var(--success-soft)}.opt.wrong{border-color:var(--danger);background:var(--danger-soft)}
.opt:has(input:focus-visible){outline:2px solid var(--violet);outline-offset:2px}
.xe-act{display:flex;gap:10px;flex-wrap:wrap}
.fb{border-radius:var(--r);padding:14px 16px;font-size:var(--fs-sm);display:grid;gap:6px}.fb:empty{display:none}
.fb b{display:inline-flex;gap:8px;align-items:center;font-size:var(--fs-md)}.fb.ok{background:var(--success-soft)}.fb.ok b{color:var(--success)}.fb.no{background:var(--danger-soft)}.fb.no b{color:var(--danger)}.fb.model{background:var(--violet-soft)}.fb.model b{color:var(--violet)}
.ta{min-height:110px;padding:12px 14px;resize:vertical;line-height:1.5}
.self{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:6px}.self span{font-weight:600}
.les-end{display:grid;gap:20px;border-top:1px solid var(--line);padding-top:28px}
.pn{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pn a{display:flex;gap:12px;align-items:center;border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:14px 16px;text-decoration:none;font-weight:700;min-height:64px}
.pn a small{display:block;color:var(--muted);font-weight:500;font-size:var(--fs-xs)}.pn .nx{justify-content:space-between;grid-column:2}.pn a:hover{border-color:var(--line-strong);box-shadow:var(--shadow-sm)}
@media (max-width:560px){.pn{grid-template-columns:1fr}.pn .nx{grid-column:auto}}
.toc{display:none}
@media (min-width:1360px){.toc{display:block;position:sticky;top:calc(var(--header) + 28px);align-self:start;font-size:var(--fs-sm)}}
.toc-h{font-size:var(--fs-xs);font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.toc ul{border-inline-start:1px solid var(--line)}.toc a{display:block;padding:6px 14px;color:var(--muted);text-decoration:none;border-inline-start:2px solid transparent;margin-inline-start:-1px;min-height:32px}.toc a:hover{color:var(--text)}.toc a.on{color:var(--violet);border-inline-start-color:var(--violet);font-weight:600}

/* other pages */
.a11y-rules{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:20px}.ar-c{border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:22px;display:grid;gap:8px}.ar-c .ic{width:28px;height:28px;color:var(--violet)}.ar-c p{color:var(--text-2)}.a11y-rules+.note{margin-bottom:32px}
.gl-s{max-width:420px;margin-bottom:24px}.gl{display:grid;gap:10px}.gl-i{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-sm);padding:14px 16px;display:grid;gap:6px}.gl-i.hl{border-color:var(--pink)}
.gl dt{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}.gl dt b{font-size:var(--fs-md)}.gl-ar{color:var(--violet);font-weight:600;font-size:var(--fs-sm)}.gl dd{margin:0;color:var(--text-2);font-size:var(--fs-sm)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:40px}.stat{border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:20px;display:grid;gap:2px}.stat b{font-size:2rem;letter-spacing:-.02em}.stat span{color:var(--muted);font-size:var(--fs-sm)}
.badges{display:flex;flex-wrap:wrap;gap:12px}.bd{display:flex;gap:10px;align-items:center;border:1px dashed var(--line-strong);border-radius:var(--r-pill);padding:10px 18px 10px 14px;color:var(--muted);font-weight:600;font-size:var(--fs-sm)}.bd.on{border-style:solid;border-color:var(--violet);color:var(--violet);background:var(--violet-soft)}
.pr{margin-bottom:14px}.pr-h{display:flex;justify-content:space-between;margin-bottom:6px;font-size:var(--fs-sm)}.pr-h span{color:var(--muted)}
.bar{height:8px;border-radius:4px;background:var(--surface-3);overflow:hidden}.bar i{display:block;height:100%;background:var(--grad);border-radius:4px;transition:width .5s var(--ease)}
.refs{display:grid;gap:10px;margin-bottom:16px}.refs li{border-inline-start:3px solid var(--violet-bright);padding:6px 14px;font-size:var(--fs-sm)}.refs a{color:var(--violet);font-weight:600;display:inline-flex;gap:6px;align-items:center}
.sec-parts{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.sp{display:grid;gap:10px;align-content:start}.sp-h{display:grid;gap:2px}.sp-h a{color:var(--text);text-decoration:none}.sp-h b{font-size:var(--fs-lg)}.sp-h span{font-size:var(--fs-sm);color:var(--muted)}

/* skills lab */
.lab-run{max-width:880px}.lab-top{display:flex;gap:16px;align-items:center;margin-bottom:14px;font-size:var(--fs-sm);font-weight:600;color:var(--muted)}.lab-top .bar{flex:1}
.lab-card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);padding:clamp(16px,3vw,28px);display:grid;gap:16px}
.lab-vis{max-width:480px}
.pool{display:flex;flex-wrap:wrap;gap:10px}.pool-b{display:inline-flex;gap:8px;align-items:center;min-height:44px;padding:0 16px;border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--surface);font-weight:600;font-size:var(--fs-sm)}
.pool-b[aria-pressed=true]{background:var(--violet-soft);border-color:var(--violet);color:var(--violet)}.pool-b.right{background:var(--success-soft);border-color:var(--success);color:var(--success)}.pool-b.wrong{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}
.ord{display:grid;gap:8px}.ord-i{display:flex;gap:12px;align-items:center;border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:8px 8px 8px 12px;background:var(--surface)}.ord-t{flex:1;font-size:var(--fs-sm);font-weight:500}.ord-b{display:flex;gap:4px}.ord-i.right{border-color:var(--success);background:var(--success-soft)}.ord-i.wrong{border-color:var(--danger);background:var(--danger-soft)}
.match{display:grid;gap:12px}.mt{display:grid;grid-template-columns:1fr minmax(180px,260px) 24px;gap:12px;align-items:center;border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 14px}.mt label{font-size:var(--fs-sm);font-weight:500}.mt.right{border-color:var(--success);background:var(--success-soft)}.mt.wrong{border-color:var(--danger);background:var(--danger-soft)}.mt-r{font-size:var(--fs-sm);font-weight:600;display:inline-flex;gap:4px;align-items:center;white-space:nowrap}
@media (max-width:640px){.mt{grid-template-columns:1fr}}
.spot{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.spot-c{display:grid;gap:8px;cursor:pointer;border:2px solid var(--line);border-radius:var(--r);padding:10px;background:var(--surface-2);align-content:start}.spot-c input{position:absolute;opacity:0;pointer-events:none}
.spot-c:has(input:checked){border-color:var(--violet)}.spot-c:has(input:focus-visible){outline:2px solid var(--violet);outline-offset:2px}.spot-c.right{border-color:var(--success);background:var(--success-soft)}.spot-c.wrong{border-color:var(--danger);background:var(--danger-soft)}.spot-h{font-weight:700;font-size:var(--fs-sm)}
.kb-parts{display:flex;flex-wrap:wrap;gap:8px}
.lab-res{text-align:center;display:grid;gap:8px;justify-items:center;padding:16px}.res-n{font-size:3.5rem;font-weight:800;letter-spacing:-.03em;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.res-n small{font-size:1.4rem;color:var(--muted);-webkit-text-fill-color:var(--muted)}
.fb-s:empty{display:none}

/* English component names inside Arabic UI keep their own direction */
.lc b,.nv-l span,.pn a span,.cf-c a,.sp-h b,.part-b span:last-child,.les-main h1,.bc-page span,.bc-page a,.chip-b,.pool-b,.opt span,.mt select,.fam b{unicode-bidi:plaintext}

.dec-grid{display:grid;gap:var(--sp-4,16px);grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
.dec{border:1px solid var(--line);border-radius:var(--r-lg,16px);padding:20px;background:var(--surface)}
.dec h3{font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.dec p{margin:0;line-height:1.6;max-width:62ch}
.dec.prac{border-color:var(--accent,var(--line))}
[lang=ar] .dec h3{letter-spacing:0;text-transform:none}
.anat-show{grid-column:1/-1}.anat-show .frame{--fw:100%}

/* anatomy: showcase and explanation side by side so nothing needs scrolling */
@media (min-width:1000px){
  .anat{grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);grid-template-areas:"show parts" "show detail";align-items:start;column-gap:20px}
  .anat-show{grid-area:show;grid-column:auto;position:sticky;top:104px}
  .anat .parts{grid-area:parts}
  .anat .part-d{grid-area:detail;min-height:0}
}
@media (max-width:999px){
  .anat .parts{grid-auto-flow:column;grid-auto-columns:max-content;overflow-x:auto;padding-bottom:4px;scroll-snap-type:x proximity}
  .anat .parts li{scroll-snap-align:start}
  .anat .part-b{width:auto;white-space:nowrap}
}

/* Academy-only, opt-in recovery of pre-Academy Dashboard guest progress. */
.duig-academy-guest-import{position:fixed;z-index:1100;inset-inline-end:16px;bottom:16px;box-sizing:border-box;width:min(420px,calc(100vw - 32px));max-height:min(70vh,480px);overflow:auto;padding:20px;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg);font:var(--fs-sm)/1.55 var(--font)}
.duig-academy-guest-import strong{display:block;font-weight:700;font-size:1rem;margin-bottom:8px}
.duig-academy-guest-import p{margin:0 0 14px;color:var(--text-2)}
.duig-academy-guest-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.duig-academy-guest-actions .btn{min-height:44px}
.duig-academy-guest-actions button:focus-visible{outline:3px solid var(--violet);outline-offset:3px}
@media(prefers-reduced-motion:reduce){.duig-academy-guest-import *{animation:none!important;transition:none!important}}
