@font-face{font-family:Vazirmatn;src:url('/fonts/Vazirmatn.woff2') format('woff2');font-weight:100 900;font-display:swap}
/* Site-wide design: the homepage's black-and-orange language (public/landing.css) applied to every page.
   Colours live in the tokens below; rules use the tokens, never raw light colours. Text pairs are checked for
   WCAG contrast: body text (--soft) is above 11:1 on every surface, meta text (--dim) above 4.5:1.
   Book figures and lesson diagrams are drawn in dark ink on white, so they sit on a light "paper" card. */
:root{
 color-scheme:dark;
 --bg:#0a0a0b;--raise:#121214;--raise-2:#18181b;--field:#0e0e10;
 --line:#ffffff14;--line-2:#ffffff26;--line-3:#66666f;
 --ink:#f4f4f5;--soft:#d4d4d8;--muted:#a8a8b0;--dim:#8e8e97;
 --orange:#ff6b1a;--orange-2:#ff8f4d;--orange-ink:#ffb088;--orange-tint:#ff6b1a1a;--orange-line:#ff6b1a59;--glow:#ff6b1a59;--on-orange:#0a0a0b;
 --paper:#fafaf9;--paper-ink:#18181b;
 --ok:#86efac;--ok-bg:#22c55e1f;--ok-line:#22c55e4d;
 --warn:#fcd34d;--warn-bg:#f59e0b14;--warn-line:#f59e0b47;--warn-bar:#f5b544;
 --danger:#fca5a5;--danger-bg:#ef44441f;--danger-line:#ef444466;--danger-fill:#f87171;
 --radius:20px;--shadow:0 30px 80px -40px #000;
 --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",Vazirmatn,monospace;
 font-family:Vazirmatn,Tahoma,sans-serif;font-size:16px
}

/* Base */
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:120px;background:var(--bg);scrollbar-color:#3f3f46 var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);line-height:1.9;min-height:100vh;display:flex;flex-direction:column}
body>main{flex:1 0 auto}
main{overflow-x:clip}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{touch-action:manipulation}
button{cursor:pointer}
button:disabled{cursor:default;opacity:.5}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--orange);outline-offset:4px}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px}
::selection{background:var(--orange);color:var(--bg)}
h1,h2,h3,p{margin-top:0}
h1{font-size:clamp(2.3rem,4.1vw,4.2rem);line-height:1.5;letter-spacing:0;font-weight:900;color:var(--ink)}
h2{font-size:1.85rem;line-height:1.6;letter-spacing:0;font-weight:800;color:var(--ink)}
h3{font-size:1.17rem;line-height:1.8;font-weight:750;color:var(--ink)}
p{color:var(--muted)}
small,.small{font-size:.85rem;color:var(--dim)}
.skip{position:absolute;top:-80px;right:20px;background:var(--orange);color:var(--bg);padding:12px;z-index:99}
.skip:focus{top:12px}
.wrap{max-width:1400px;margin:auto;padding:0 48px}
.muted{color:var(--muted)}
.stack{display:grid;gap:14px}
.hidden{display:none!important}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85em;background:#ffffff0f;border:1px solid var(--line);color:var(--ink);border-radius:6px;padding:1px 6px}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.06em}
summary{cursor:pointer;padding:8px 0;color:var(--orange-2)}
summary::marker{color:var(--orange)}

/* Header and footer (shared with the homepage) */
.header{position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line);background:#0a0a0bd9;backdrop-filter:blur(18px)}
.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:92px;gap:28px}
.brand{display:flex;align-items:center;gap:13px;flex-shrink:0}
.brand-symbol{display:grid;place-items:center;width:46px;height:46px;flex:none;color:var(--bg);background:var(--orange);border-radius:15px;box-shadow:0 8px 24px -6px var(--glow)}
.brand-symbol svg{width:31px;height:31px}
.brand strong{display:block;font-size:1.03rem;letter-spacing:2px;direction:ltr;line-height:1.6;color:var(--ink)}
.brand small{display:block;font-size:.73rem;letter-spacing:0;color:var(--dim)}
.accent{color:var(--orange)}
nav{display:flex;align-items:center;gap:8px;font-size:.91rem;color:var(--muted)}
nav a{padding:9px 14px;border-radius:10px;transition:background .2s,color .2s}
nav a:hover,nav a.active{color:var(--ink);background:#ffffff0f}
.footer{margin-top:65px;border-top:1px solid var(--line);padding:35px 0;background:var(--bg);color:var(--dim);font-size:.8rem}
.footer .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.footer a:hover{color:var(--orange)}

/* Buttons, links, labels */
.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;background:var(--orange);color:var(--on-orange);border:1px solid var(--orange);font-weight:750;padding:12px 24px;border-radius:999px;line-height:1.7;box-shadow:0 12px 32px -12px var(--glow);transition:transform .2s,background .2s,border-color .2s,color .2s,box-shadow .25s}
.button:hover{background:var(--orange-2);border-color:var(--orange-2);transform:translateY(-2px);box-shadow:0 18px 40px -14px var(--glow)}
.button:disabled{transform:none}
.button.secondary{background:transparent;color:var(--ink);border-color:var(--line-2);box-shadow:none}
.button.secondary:hover{background:transparent;border-color:var(--orange);color:var(--orange)}
.button.subtle{background:#ffffff0d;color:var(--soft);border-color:transparent;box-shadow:none}
.button.subtle:hover{background:#ffffff17;color:var(--orange-2)}
.button.small{font-size:.84rem;padding:9px 16px}
.button .icon{width:18px;height:18px}
.button.small .icon{width:16px;height:16px}
.button.danger{background:var(--danger-fill);border-color:var(--danger-fill);color:var(--on-orange);box-shadow:none}
.button.danger:hover{background:var(--danger);border-color:var(--danger)}
.button.danger-outline{color:var(--danger);border-color:var(--danger-line);background:transparent;box-shadow:none}
.button.danger-outline:hover{background:var(--danger-bg);border-color:var(--danger);color:var(--danger)}
/* The header button keeps the homepage's squarer shape and weight. */
.header .button{border-radius:12px;font-weight:650;box-shadow:none}
.text-link{color:var(--orange);font-size:.9rem;font-weight:600}
.text-link:hover{text-decoration:underline;text-underline-offset:5px}
button.text-link:not(.pill){background:none;border:0;padding:0;text-align:start;line-height:inherit}
.eyebrow{display:flex;align-items:center;gap:12px;font:700 .72rem/1.7 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--orange);margin-bottom:16px}
.eyebrow::before{content:'';width:24px;height:1px;flex:none;background:currentColor}
.tag{font-size:.74rem;color:var(--orange-2);font-weight:650}
.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:27px 0}
.pill{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line-2);border-radius:999px;padding:6px 14px;min-height:36px;font-size:.79rem;background:transparent;color:var(--soft);transition:background .2s,border-color .2s,color .2s}
.pill:hover{border-color:var(--orange);color:var(--orange)}
.pill.selected,.pill[aria-pressed=true]{background:var(--orange);border-color:var(--orange);color:var(--on-orange)}
.badge{display:inline-flex;align-items:center;gap:4px;font-size:.74rem;font-weight:650;line-height:1.7;padding:1px 10px;border-radius:999px;border:1px solid transparent;white-space:nowrap;vertical-align:middle}
.badge.active{background:var(--ok-bg);color:var(--ok);border-color:var(--ok-line)}
.badge.pending{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-line)}
.badge.suspended,.badge.revoked{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-line)}
.badge.rejected,.badge.expired,.badge.neutral{background:#ffffff0d;color:var(--soft);border-color:var(--line-2)}
.badge.admin{background:var(--orange-tint);color:var(--orange-ink);border-color:var(--orange-line)}

/* Forms */
.input,input,select,textarea{border:1px solid var(--line-3);background:var(--field);color:var(--ink);border-radius:12px;padding:12px 14px;min-width:0;transition:border-color .2s}
input:hover,select:hover,textarea:hover{border-color:#86868f}
input:focus,select:focus,textarea:focus{border-color:var(--orange)}
input::placeholder,textarea::placeholder{color:var(--dim);opacity:1;font-size:.88rem}
input[type=search]{flex:1;min-width:180px}
select{cursor:pointer}
select option{background:var(--raise);color:var(--ink)}
textarea{width:100%;resize:vertical}
label{display:block;color:var(--soft);font-size:.9rem;margin:10px 0 7px}
fieldset{min-width:0}

/* Page structure */
.page-heading{position:relative;isolation:isolate;padding:56px 0 26px}
.page-heading::before{content:'';position:absolute;top:-70%;inset-inline-end:-6%;width:min(620px,80vw);aspect-ratio:1;background:radial-gradient(circle,#ff6b1a1f 0,transparent 62%);z-index:-1;pointer-events:none}
.page-heading h1{font-size:clamp(2.2rem,4.4vw,3.4rem);line-height:1.45;margin-bottom:14px}
.page-heading p{max-width:680px;font-size:1.05rem;line-height:2.05}
.breadcrumb{font-size:.8rem;color:var(--dim);margin-bottom:22px}
.breadcrumb a{color:var(--muted);transition:color .2s}
.breadcrumb a:hover{color:var(--orange)}
.section{padding-top:52px;padding-bottom:32px}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:26px}
.section-head h2{margin-bottom:0}
.section-head .eyebrow{margin-bottom:9px}
.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:20px 0 30px;background:var(--raise);border:1px solid var(--line-2);border-radius:var(--radius);padding:14px}
.toolbar input,.toolbar select{background:var(--bg)}
.two-col{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:30px;align-items:start}
.empty{padding:50px 25px;text-align:center;color:var(--muted);border:1px dashed var(--line-2);border-radius:var(--radius);grid-column:1/-1}
.tabs{display:flex;gap:8px;margin:20px 0 30px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:16px}
.tabs a{padding:8px 20px;border:1px solid var(--line-2);border-radius:999px;color:var(--muted);font-size:.9rem;transition:color .2s,border-color .2s,background .2s}
.tabs a:hover{color:var(--ink);border-color:var(--orange-line)}
.tabs a.active{background:var(--orange-tint);border-color:var(--orange);color:var(--orange-ink);font-weight:650}

/* Cards */
.tracks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.track{padding:28px;background:var(--raise);border:1px solid var(--line-2);border-radius:var(--radius);position:relative;display:flex;flex-direction:column;transition:transform .2s,border-color .2s}
.track:hover{border-color:var(--orange-line);transform:translateY(-4px)}
.track h3{margin:6px 0 8px}
.track p{font-size:.91rem;margin-bottom:24px}
.track .text-link{margin-top:auto}
.articles-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.article-card{border:1px solid var(--line-2);border-radius:var(--radius);background:var(--raise);padding:20px;display:flex;flex-direction:column;min-height:290px;overflow:hidden;transition:transform .2s,border-color .2s}
.article-card:hover{border-color:var(--orange-line);transform:translateY(-3px)}
.article-card h3{margin:14px 0 9px;line-height:1.85;font-size:1.06rem;transition:color .2s}
.article-card:hover h3{color:var(--orange-2)}
.article-card p{font-size:.88rem;line-height:2;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.article-card .tag,.package-card .tag{align-self:start;padding:2px 10px;border-radius:999px;background:var(--orange-tint)}
.card-meta{display:flex;justify-content:space-between;gap:12px;margin-top:auto;font-size:.72rem;color:var(--dim);border-top:1px solid var(--line);padding-top:15px}
.article-cover{width:calc(100% + 40px);max-width:none;height:195px;object-fit:cover;margin:-20px -20px 20px;border-bottom:1px solid var(--line);background:var(--raise-2)}
.reading-cover{display:block;width:100%;height:auto;border-radius:16px;border:1px solid var(--line);margin-bottom:28px;background:var(--raise-2)}
.chapter-list{display:flex;flex-direction:column;gap:12px}
.chapter-list>h2{font-size:1.35rem;margin:18px 0 4px}
.chapter-list>h2:first-child{margin-top:0}
.chapter{border:1px solid var(--line-2);border-radius:16px;background:var(--raise);padding:20px 24px;display:flex;gap:20px;align-items:center;transition:border-color .2s}
.chapter:hover{border-color:var(--orange-line)}
.chapter:hover h3{color:var(--orange-2)}
.chapter:first-child{background:var(--orange-tint);border-color:var(--orange-line)}
.chapter .number{font-size:1.25rem;font-weight:800;color:var(--orange);min-width:32px}
.chapter .chapter-text{flex:1;min-width:0}
.chapter h3{margin-bottom:4px;font-size:1.04rem;transition:color .2s}
.chapter p{margin:0;font-size:.77rem;color:var(--dim)}
.chapter p[dir=ltr]{text-align:right}
.chapter .status{font-size:.73rem;color:var(--muted);background:#ffffff0a;border:1px solid var(--line);border-radius:999px;padding:3px 10px;white-space:nowrap}
.chapter-progress{font-size:.83rem;color:var(--orange);white-space:nowrap}
.side-panel{background:var(--raise);border:1px solid var(--line-2);border-radius:var(--radius);padding:22px;min-width:0}
.side-panel h2{font-size:1.14rem}
.side-panel p{font-size:.9rem}
.side-panel input{width:100%;font-size:.88rem;min-width:0}
.side-panel .button{margin-top:10px}
.detail-row{border-top:1px solid var(--line);padding:13px 0}
.detail-row small{display:block;margin-bottom:4px}
.detail-row strong{font-size:.98rem;font-weight:550;color:var(--ink)}
.book-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.book{background:var(--raise);padding:30px;border:1px solid var(--line-2);border-radius:var(--radius)}
.book .title-en{font-family:Georgia,serif;font-size:1.4rem;line-height:1.6;direction:ltr;text-align:right;min-height:80px;font-weight:400;margin-top:8px}
.book dl{font-size:.9rem}
.book dt{color:var(--dim);font-size:.78rem}
.book dd{margin:0 0 15px;color:var(--soft)}
.book dd[dir=ltr]{text-align:right}
.package-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px;margin-bottom:24px}
.package-card{display:flex;flex-direction:column;gap:10px;background:var(--raise);border:1px solid var(--line-2);border-radius:var(--radius);padding:28px}
.package-card h2{font-size:1.3rem;margin:0}
.package-card p{margin:0;font-size:.92rem}
.package-items{margin:4px 0;padding-right:20px;font-size:.9rem;color:var(--soft)}
.package-price{font-size:1.35rem;font-weight:800;color:var(--ink);margin-top:auto;padding-top:12px;border-top:1px solid var(--line)}
.package-row{display:flex;justify-content:space-between;align-items:center;gap:16px;background:var(--raise);border:1px solid var(--line-2);border-radius:14px;padding:14px 18px}
.package-row strong{color:var(--ink)}
.package-row small{display:block;color:var(--dim)}

/* Notes and notices */
.source-note{font-size:.84rem;line-height:2;color:var(--muted);border:1px solid var(--line-2);padding:16px 18px;border-radius:14px;margin-top:18px;background:var(--raise);overflow-wrap:anywhere}
.source-note h2,.source-note h3{color:var(--ink)}
.source-note>h2{font-size:1.25rem;line-height:1.7;margin-bottom:6px}
.source-note>p:last-child{margin-bottom:0}
.source-note p{color:var(--muted)}
.notice{background:var(--warn-bg);border:1px solid var(--warn-line);border-inline-start:3px solid var(--warn-bar);color:var(--soft);border-radius:14px;border-start-start-radius:4px;border-end-start-radius:4px;padding:15px 20px;margin:18px 0;font-size:.88rem}
.notice p{color:inherit;margin:0}
.notice strong{color:var(--ink)}
.notice.info{background:var(--raise);border-color:var(--line-2);border-inline-start-color:var(--orange)}
.source-line{font-size:.83rem;padding:10px 16px;border-inline-start:2px solid var(--orange);margin:15px 0;background:#ffffff08;color:var(--muted);border-radius:10px;border-start-start-radius:0;border-end-start-radius:0}
.message:empty{display:none}
.message,#authored-quiz-result:not(:empty){padding:14px 16px;background:var(--raise-2);border:1px solid var(--line-2);border-inline-start:3px solid var(--orange);color:var(--soft);border-radius:12px;border-start-start-radius:4px;border-end-start-radius:4px;margin-top:15px}
.message p,#authored-quiz-result p{color:var(--soft);margin:8px 0 0}
#authored-quiz-result summary{color:var(--ink)}
#authored-quiz-result a{color:var(--orange-2)}

/* Atlas and 3D viewer */
.atlas-layout{display:grid;grid-template-columns:260px minmax(320px,1fr) 270px;gap:20px;align-items:start;direction:rtl}
.root-pills{display:flex;gap:7px;flex-wrap:wrap;margin:16px 0;direction:ltr}
.root-pills button{min-width:44px}
.muscle-list{max-height:455px;overflow:auto;margin-top:15px;scrollbar-width:thin;scrollbar-color:#3f3f46 transparent}
.muscle-item{display:block;text-align:right;width:100%;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--soft);padding:10px 12px;line-height:1.7;margin-bottom:5px;transition:background .2s,border-color .2s}
.muscle-item small{display:block;direction:ltr;text-align:right;font-size:.73rem}
.muscle-item:hover{background:#ffffff0a;border-color:var(--line-2)}
.muscle-item.selected{background:var(--orange-tint);border-color:var(--orange-line);color:var(--ink)}
.details-name{font-size:1.45rem;font-weight:800;color:var(--ink);line-height:1.6;margin:15px 0}
.visual{border:1px solid var(--line-2);border-radius:var(--radius);overflow:hidden;position:relative;background:radial-gradient(ellipse at 50% 32%,#1b1b1f 0,#111113 50%,#0b0b0c 92%);box-shadow:0 30px 80px -40px #000,inset 0 1px 0 #ffffff0d;color:var(--ink);display:grid;grid-template-rows:auto minmax(0,1fr) auto auto}
.visual-top{display:flex;justify-content:space-between;align-items:center;padding:17px 21px;gap:12px;border-bottom:1px solid var(--line);z-index:2;font-size:.8rem;color:var(--soft)}
.visual-top>span:last-child{font:700 .7rem var(--mono);letter-spacing:.14em;color:var(--orange)}
.atlas-canvas{height:490px;position:relative;direction:ltr;min-width:0;background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);background-size:36px 36px}
.atlas-canvas canvas{display:block;width:100%;height:100%;touch-action:none;filter:drop-shadow(0 0 3px #46444a) drop-shadow(0 0 3px #46444a) drop-shadow(0 0 7px #39373dd9)}
.visual-bottom{display:flex;align-items:center;gap:7px;justify-content:center;z-index:3;flex-wrap:wrap;padding:12px 14px 16px}
.loading{position:absolute;inset:43% 12% auto;text-align:center;font-size:.88rem;color:var(--soft);direction:rtl}
.model-info{background:#0d0d0f;border-top:1px solid var(--line);padding:15px 21px;display:flex;flex-direction:column;gap:4px;min-height:81px}
.model-info strong{font-size:.92rem;color:var(--ink)}
.model-info span{color:var(--muted);font-size:.78rem}
.atlas-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;cursor:pointer;filter:drop-shadow(0 0 3px #46444a) drop-shadow(0 0 3px #46444a) drop-shadow(0 0 7px #39373dd9)}
/* Three stacked drop-shadow filters re-rasterise the whole canvas on every frame; phones go without them. */
@media(pointer:coarse),(max-width:800px){.atlas-canvas canvas,.atlas-poster{filter:none}}
.load-3d{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);display:inline-flex;flex-direction:column;align-items:center;border:1px solid var(--orange);background:var(--orange);color:var(--on-orange);border-radius:999px;padding:9px 24px;font-weight:750;line-height:1.7;box-shadow:0 12px 32px -10px var(--glow);z-index:2;direction:rtl;white-space:nowrap}
.load-3d small{color:#2b1405;font-size:.72rem;font-weight:550}
.load-3d:hover{background:var(--orange-2)}
.name-fa{white-space:nowrap}
.muscle-link{color:inherit;text-decoration:underline dotted var(--orange);text-decoration-thickness:1.5px;text-underline-offset:4px;cursor:pointer;border-radius:4px;transition:background .2s,color .2s}
.muscle-link:hover,.muscle-link:focus-visible{background:var(--orange-tint);color:var(--ink)}
.muscle-panel{position:fixed;inset-block:0;inset-inline-start:0;width:min(430px,100vw);background:var(--raise);color:var(--soft);border-inline-end:1px solid var(--line-2);box-shadow:0 0 70px #000;padding:1.2rem 1.2rem 2rem;overflow:auto;z-index:50;scrollbar-color:#3f3f46 transparent}
.muscle-panel[hidden]{display:none}
.muscle-panel h2{font-size:1.3rem;line-height:1.7;margin:.4rem 0 .6rem;padding-inline-end:2rem}
.muscle-panel h3{font-size:1rem;margin:1.2rem 0 .4rem}
.muscle-panel li{margin-bottom:.4rem;line-height:1.9}
.muscle-panel-close{position:absolute;inset-block-start:.5rem;inset-inline-end:.7rem;width:40px;height:40px;display:grid;place-items:center;font-size:1.6rem;line-height:1;background:none;border:1px solid transparent;border-radius:999px;cursor:pointer;color:var(--muted);transition:color .2s,border-color .2s}
.muscle-panel-close:hover{color:var(--orange);border-color:var(--line-2)}
.muscle-panel>#muscle-panel-body>.loading,.muscle-panel #muscle-panel-body>p.loading{position:static;margin-top:3rem}
.muscle-view{height:320px;margin-block:1rem;position:relative;background:radial-gradient(ellipse at 50% 40%,#18171b 0,#0b0a0d 55%,#040405 95%);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.muscle-view canvas{display:block;width:100%;height:100%}
/* Atlas nerves (public/atlas.js): gold, the colour of the nerves in the 3D model, so cards and model read together. */
.nerve-index{margin:10px 0 4px;border-top:1px solid var(--line);padding-top:4px}
.nerve-index summary{font-weight:650;font-size:.92rem;color:var(--ink)}
.nerve-group{margin:6px 0 10px}
.nerve-group>small{display:block;margin-bottom:6px}
.nerve-pills{display:flex;flex-wrap:wrap;gap:6px}
.nerve-pills .pill{gap:7px;font-size:.76rem;padding:4px 10px;min-height:32px}
.nerve-pills .pill span{font-size:.7rem;color:#f3d27a;background:#e0b8481f;border-radius:6px;padding:0 6px}
.nerve-pills .pill .nerve-name{font-weight:inherit}
.nerve-pills .pill:hover{border-color:#e0b848;color:#f3d27a}
.nerve-pills .pill.selected,.nerve-pills .pill[aria-pressed=true]{color:#1a1303;border-color:#e0b848;background:#e0b848}
.nerve-pills .pill.selected span,.nerve-pills .pill[aria-pressed=true] span{color:#1a1303;background:#fff3}
.nerve-match{margin-top:12px;display:grid;gap:10px}
.nerve-card{border:1px solid #e0b84859;background:#e0b84812;border-radius:12px;padding:11px 13px;display:grid;gap:6px;justify-items:start}
.nerve-card-name{font-weight:650;color:#f3d27a}
.nerve-card small{font-size:.76rem}
.chip-row{display:flex;flex-wrap:wrap;gap:6px}
.chip{border:1px solid #e0b8484d;background:transparent;color:#f0d58a;border-radius:8px;padding:2px 9px;font-size:.78rem;line-height:1.8}
.chip:hover{background:#e0b8481f}
.nerve-play,.pill.nerve-play{background:#e0b848;border-color:#e0b848;color:#1a1303;font-weight:650}
.nerve-play:hover,.pill.nerve-play:hover{background:#ebc659;border-color:#ebc659;color:#1a1303}
.nerve-muscles{margin:8px 0 0;padding-inline-start:22px;display:grid;gap:6px}
.nerve-muscles li{padding:6px 8px;border-radius:10px;border:1px solid transparent;transition:background .5s,border-color .5s}
.nerve-muscles li>small{display:block;font-size:.74rem}
.nerve-muscles li .cite{color:var(--dim)}
.nerve-muscles li.reached{background:#e0b8481f;border-color:#e0b84866}
@media (prefers-reduced-motion:reduce){.nerve-muscles li{transition:none}}

/* Long-form reading: articles, lessons, translations */
.reading{max-width:860px;margin:auto}
.reading h1{font-size:clamp(1.85rem,3.4vw,2.5rem);line-height:1.65;font-weight:850}
.reading>h1+p,.reading>p[dir=ltr]{color:var(--dim)}
.reading .body{border-top:1px solid var(--line);padding-top:32px;margin-top:28px;overflow-wrap:anywhere}
.reading-meta{color:var(--dim);font-size:.83rem}
.body{font-size:1.04rem;line-height:2.2;color:var(--soft)}
.body h2{font-size:1.45rem;line-height:1.7;margin:44px 0 16px}
.body h2:first-child{margin-top:0}
.body h3{font-size:1.18rem;margin:28px 0 10px}
.body h4{font-size:1.04rem;line-height:1.8;margin:24px 0 8px;color:var(--ink)}
.body h5.heading-3{font-size:.96rem;line-height:1.8;margin:20px 0 6px;color:var(--soft)}
.body p,.body li{color:var(--soft)}
.body li{margin-bottom:.35rem}
.body strong{color:var(--ink)}
.body a{color:var(--orange-2);text-decoration:underline;text-decoration-color:#ff8f4d80;text-underline-offset:4px;transition:color .2s,text-decoration-color .2s}
.body a:hover{color:var(--orange);text-decoration-color:currentColor}
.body a.muscle-link{color:inherit;text-decoration:underline dotted var(--orange);text-decoration-thickness:1.5px}
.body a.muscle-link:hover{color:var(--ink)}
.body a.button{color:var(--on-orange);text-decoration:none}
.body a.button.secondary{color:var(--ink)}
.body a.button.secondary:hover{color:var(--orange)}
.body table,.source-note table{border-collapse:collapse;display:block;max-width:100%;overflow-x:auto;font-size:.88rem;margin:1.5rem 0}
.body th,.body td,.source-note th,.source-note td{padding:12px;border:1px solid var(--line-2);color:var(--soft)}
.body th,.source-note th{background:var(--raise-2);color:var(--ink);font-weight:700}
.body blockquote{margin:24px 0;border-inline-start:2px solid var(--orange);padding:12px 24px;background:#ffffff08;border-radius:12px;border-start-start-radius:0;border-end-start-radius:0}
.body ul,.body ol{padding-right:25px}
.body img{max-width:100%;height:auto}
.body details{margin-block:.8rem}
.body figure{margin:32px 0}
/* Figures drawn on white (scanned book pages, lesson diagrams) get a paper card so their dark ink stays legible. */
.body figure img,.translation-page figure img,.authored-diagram{display:block;max-width:100%;height:auto;margin-inline:auto;background:var(--paper);padding:clamp(8px,1.6vw,16px);border-radius:14px;box-shadow:0 0 0 1px var(--line-2),0 24px 60px -36px #000}
.body figcaption{font-size:.9rem;line-height:1.95;color:var(--muted);margin-top:12px}
.body figcaption a{font-size:.85rem}
.body td .muscle-link,.body th .muscle-link{white-space:nowrap}
/* A narrow label column next to a long cell must never break words letter by letter. */
.body th,.body td{min-width:4.5rem}
.translation-page{padding-block:1.75rem;border-bottom:1px solid var(--line)}
.translation-page .source-line{font-size:.82rem;color:var(--muted);margin:0 0 1.25rem}
.translation-page figure{margin:1.75rem 0}
.translation-page figcaption{font-size:.88rem;color:var(--muted);line-height:1.95;margin-top:.75rem}
.translation-page .table-scroll{max-width:100%;overflow-x:auto;margin:1.5rem 0}
.translation-page table{width:100%;border-collapse:collapse;font-size:.9rem;margin:0}
/* Cells keep whole words; a table wider than the column scrolls sideways instead of breaking words mid-way. */
.translation-page th,.translation-page td{border:1px solid var(--line-2);padding:.65rem;text-align:start;vertical-align:top;min-width:6.5rem;overflow-wrap:normal;word-break:normal;hyphens:manual}
.translation-page td[dir="ltr"],.translation-page th[dir="ltr"]{text-align:left}
.translation-page p.reference{unicode-bidi:plaintext;text-align:start}
.translation-page th{background:var(--raise-2);color:var(--ink)}
.source-note details summary,details.source-note>summary{color:var(--orange-2)}
details.source-note section{border-top:1px solid var(--line);padding-top:10px;margin-top:10px}
details.source-note section strong{color:var(--soft)}
.index-list,.index-list ul{list-style:none;margin:0;padding-inline-start:0}
.index-list ul{padding-inline-start:1.4rem;border-inline-start:1px solid var(--line-2);margin-block:.25rem}
.index-list li{padding-block:.2rem;line-height:1.9}
.idx-fa{color:var(--ink)}
.idx-en{color:var(--dim);font-size:.85em}
.body a.idx-page,.idx-page{color:var(--orange-2);text-decoration:underline dotted;text-underline-offset:4px;white-space:nowrap}
.idx-kind{font-size:.8em;color:var(--dim)}
.idx-see{font-style:italic}
.idx-note{display:block;color:var(--dim);font-size:.82em}
.authored-table{max-width:100%;overflow-x:auto;margin-block:1.5rem;border-radius:12px}
.authored-table table{min-width:600px;width:100%;border-collapse:collapse;display:table;margin:0}
/* Lesson tables keep real column widths and scroll inside their box on phones; words never split letter by letter. */
.authored-table th,.authored-table td{padding:.75rem;border:1px solid var(--line-2);vertical-align:top;text-align:start;min-width:9.5rem;overflow-wrap:normal;word-break:normal;hyphens:manual}
.authored-table th{background:var(--raise-2);color:var(--ink)}
.authored-diagram{width:100%;max-height:none}
.authored-lesson figure{margin:1.75rem 0}
.authored-lesson details{margin-block:.7rem;padding:.6rem 1rem;border:1px solid var(--line-2);border-radius:12px;background:var(--raise)}
.authored-lesson details[open]{border-color:var(--orange-line)}
.authored-lesson summary{cursor:pointer;color:var(--ink)}
.authored-lesson details .source-note{background:var(--bg)}
.authored-lesson dt{color:var(--ink);font-weight:700;margin-top:1rem}
.authored-lesson dd{margin-inline-start:0;margin-block-end:1rem;color:var(--soft)}
.authored-lesson dd .source-note{display:inline-block;max-width:100%;padding:0 10px;margin:0;border-radius:999px;font-size:.8rem;line-height:1.9;vertical-align:baseline}
.authored-lesson nav{flex-wrap:wrap;gap:4px 18px}
.authored-lesson nav a{padding:4px 0;background:none}
.authored-lesson nav a:hover{background:none}
.authored-lesson :target{scroll-margin-top:6rem}

/* Self-assessment */
.quiz{border:1px solid var(--line-2);padding:28px;border-radius:var(--radius);margin:32px 0;background:var(--raise)}
.quiz h2{font-size:1.45rem}
.quiz fieldset{border:0;padding:0;margin:0 0 22px;min-width:0}
.quiz legend{margin-bottom:12px;color:var(--ink);font-weight:650;line-height:1.9}
.quiz label{display:flex;align-items:center;gap:12px;background:var(--bg);color:var(--soft);padding:12px 14px;margin:8px 0;border:1px solid var(--line-2);border-radius:12px;cursor:pointer;transition:border-color .2s,background .2s,color .2s}
.quiz label:hover{border-color:var(--orange-line)}
.quiz label:has(input:checked){border-color:var(--orange);background:var(--orange-tint);color:var(--ink)}
.quiz label:has(input:focus-visible){outline:3px solid var(--orange);outline-offset:2px}
.quiz input{accent-color:var(--orange);width:18px;height:18px;flex:none;margin:0}
.quiz input:focus-visible{outline:none}
.progress-track{height:6px;background:#ffffff14;border-radius:10px;overflow:hidden;margin:10px 0}
.progress-track span{display:block;height:100%;background:var(--orange)}

/* Accounts */
.auth{max-width:480px;margin:65px auto;background:var(--raise);padding:40px;border:1px solid var(--line-2);border-radius:24px;box-shadow:var(--shadow)}
.auth h1{font-size:1.9rem;line-height:1.6}
.auth input{width:100%;margin-bottom:10px}
.auth button{width:100%;margin-top:20px}
.auth input,.auth select,.auth textarea{background:var(--bg)}
.auth-wide{max-width:640px}
.auth select,.auth textarea{width:100%;margin-bottom:10px}
.auth .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.auth-help{margin-top:18px;font-size:.88rem}
.auth-help p{margin:6px 0 0;font-size:.85rem}
.auth-switch{margin-top:18px}
.success-mark{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--ok-bg);border:1px solid var(--ok-line);color:var(--ok);font-size:1.6rem;margin-bottom:10px}

/* Admin and studio */
.admin-body{background:var(--bg)}
.admin-shell{display:grid;grid-template-columns:272px minmax(0,1fr);min-height:100vh;background:linear-gradient(270deg,#0e0e10 272px,#ffffff14 272px,#ffffff14 273px,transparent 273px)}
.admin-sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:26px;padding:24px 16px;background:#0e0e10;color:var(--soft);overflow-y:auto;scrollbar-color:#3f3f46 transparent}
.admin-brand{color:var(--ink);padding:0 8px}
.admin-brand small{color:var(--dim)}
.admin-brand .accent{color:var(--orange)}
.admin-nav{display:flex;flex-direction:column;align-items:stretch;gap:4px;font-size:.92rem;color:var(--muted)}
.admin-nav a{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:12px;border:1px solid transparent;transition:background .2s,color .2s,border-color .2s}
.admin-nav a:hover{background:#ffffff0d;color:var(--ink)}
.admin-nav a.active{background:var(--orange-tint);border-color:var(--orange-line);color:var(--ink)}
.admin-nav a.active .icon{color:var(--orange)}
.icon{width:20px;height:20px;flex:none}
.nav-count{margin-inline-start:auto;background:var(--orange);color:var(--on-orange);border-radius:999px;min-width:24px;padding:0 7px;font-size:.75rem;font-weight:700;text-align:center;line-height:1.8}
.admin-sidebar-foot{margin-top:auto;display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--line);padding-top:16px;font-size:.88rem}
.admin-sidebar-foot form{margin:0}
.admin-sidebar-foot a,.admin-sidebar-foot button{display:flex;align-items:center;gap:12px;padding:9px 14px;border-radius:10px;color:var(--muted);background:none;border:0;width:100%;text-align:right}
.admin-sidebar-foot a:hover,.admin-sidebar-foot button:hover{background:#ffffff0d;color:var(--ink)}
.admin-user{padding:2px 14px 10px;min-width:0}
.admin-user strong{display:block;color:var(--ink);font-size:.9rem}
.admin-user small{display:block;color:var(--dim);font-size:.74rem;overflow:hidden;text-overflow:ellipsis}
.admin-main{padding:32px 40px 64px;min-width:0}
.admin-topbar{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:26px}
.admin-topbar h1{font-size:2rem;line-height:1.5;margin:0 0 4px}
.admin-topbar p{margin:0;max-width:760px;font-size:.92rem}
.admin-topbar .eyebrow{margin-bottom:6px}
.admin-topbar .badges{display:inline-flex;gap:6px;vertical-align:middle;margin-left:6px}
.admin-actions{display:flex;gap:10px;flex-wrap:wrap}
.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:26px}
@media(min-width:1600px){.stat-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
.stat{display:flex;flex-direction:column;gap:2px;background:var(--raise);border:1px solid var(--line-2);border-radius:18px;padding:18px 20px;transition:transform .2s,border-color .2s}
.stat:hover{transform:translateY(-2px);border-color:var(--orange-line)}
.stat small{font-size:.82rem;color:var(--muted)}
.stat strong{font-size:2rem;font-weight:800;line-height:1.5;color:var(--ink)}
.stat span{font-size:.76rem;color:var(--dim)}
.stat.accent{background:var(--orange-tint);border-color:var(--orange-line)}
.stat.accent strong{color:var(--orange)}
.stat.accent small,.stat.accent span{color:var(--soft)}
.admin-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:start}
.admin-grid.wide-first{grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr)}
.admin-col{display:flex;flex-direction:column;gap:22px;min-width:0}
.panel{background:var(--raise);border:1px solid var(--line-2);border-radius:var(--radius);padding:22px 24px;min-width:0}
.panel.highlight{border-color:var(--orange-line)}
.panel input,.panel select,.panel textarea{background:var(--bg)}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.panel-head h2{font-size:1.08rem;margin:0}
.panel h3{font-size:1rem;margin:22px 0 4px}
.table-wrap{overflow-x:auto;margin:0 -8px}
.data-table{width:100%;border-collapse:collapse;font-size:.88rem}
.data-table th{text-align:right;font-size:.76rem;font-weight:650;color:var(--dim);padding:10px 8px;border-bottom:1px solid var(--line-2);white-space:nowrap}
.data-table td{padding:14px 8px;border-bottom:1px solid var(--line);vertical-align:top;color:var(--soft)}
.data-table tr:last-child td{border-bottom:0}
.data-table td small{display:block;color:var(--dim);font-size:.76rem}
.person{display:block}
.person strong{display:block;font-weight:650;color:var(--ink);transition:color .2s}
.person:hover strong{color:var(--orange)}
.note-cell{max-width:260px;color:var(--soft);overflow-wrap:anywhere}
.row-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
/* In a table the actions stay a real cell, so the row's divider lines up across every column. */
td.row-actions{display:table-cell;text-align:left}
td.row-actions>*{vertical-align:middle;margin-block:2px}
td.row-actions>*+*{margin-inline-start:8px}
.row-actions .button{white-space:nowrap}
.inline-form{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0}
.inline-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.extend-form select{padding:7px 10px;font-size:.82rem;border-radius:999px}
.danger-zone{border-color:var(--danger-line)}
.status-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.status-tabs a{display:inline-flex;align-items:center;gap:8px;padding:7px 16px;border-radius:999px;border:1px solid var(--line-2);background:transparent;font-size:.88rem;color:var(--muted);transition:color .2s,border-color .2s}
.status-tabs a:hover{color:var(--ink);border-color:var(--orange-line)}
.status-tabs a b{font-weight:650;background:#ffffff14;border-radius:999px;padding:0 8px;font-size:.76rem;color:var(--ink)}
.status-tabs a.active{background:var(--orange-tint);border-color:var(--orange);color:var(--orange-ink)}
.status-tabs a.active b{background:var(--orange);color:var(--on-orange)}
.admin-search{display:flex;gap:10px;margin-bottom:18px}
.admin-search input{flex:1}
.pager{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:18px;font-size:.86rem;color:var(--dim)}
.flash{display:flex;gap:12px;align-items:flex-start;border-radius:16px;padding:16px 20px;margin-bottom:22px;border:1px solid}
.flash>.icon{width:22px;height:22px;margin-top:3px}
.flash p{margin:0;color:inherit;font-weight:600}
.flash>div{flex:1;min-width:0}
.flash.success{background:var(--ok-bg);border-color:var(--ok-line);color:var(--ok)}
.flash.error{background:var(--danger-bg);border-color:var(--danger-line);color:var(--danger)}
.flash ul{margin:8px 0 0;padding-right:20px;font-size:.85rem}
.credential-card{margin-top:14px;background:var(--bg);border:1px dashed var(--ok-line);border-radius:14px;padding:16px;color:var(--ink)}
.credential-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:12px}
.credential-grid small{display:block;color:var(--dim);font-size:.76rem}
.credential-grid strong{font-size:1.02rem;overflow-wrap:anywhere}
.credential-message{font-size:.84rem;background:var(--field);margin-bottom:10px}
.checklist,.simple-list,.timeline{list-style:none;margin:0;padding:0}
.checklist li{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line)}
.checklist li:last-child,.simple-list li:last-child,.timeline li:last-child{border-bottom:0}
.checklist .icon{width:26px;height:26px;border-radius:50%;padding:4px}
.checklist li.ok .icon{background:var(--ok-bg);color:var(--ok)}
.checklist li.todo .icon{background:var(--warn-bg);color:var(--warn)}
.checklist strong{display:block;font-size:.92rem;color:var(--ink)}
.checklist a strong{color:var(--orange-2)}
.checklist small{display:block}
.simple-list li{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--line);font-size:.88rem;color:var(--soft)}
.simple-list li span:last-child{color:var(--dim);text-align:left}
.timeline li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 14px;padding:11px 0;border-bottom:1px solid var(--line);font-size:.87rem;color:var(--soft)}
.timeline li>div{flex:1 1 240px;min-width:0}
.timeline li small{display:block;color:var(--dim)}
.timeline li>span{white-space:nowrap;color:var(--dim)}
.empty-state{padding:26px;text-align:center;color:var(--muted);font-size:.9rem;border:1px dashed var(--line-2);border-radius:14px;background:#ffffff05}
.field{margin-bottom:6px}
.field label{margin:10px 0 0}
.field label input:not([type=checkbox],[type=radio]),.field label select,.field label textarea{display:block;width:100%;margin-top:7px}
.field small{display:block;margin-top:4px;font-size:.78rem}
fieldset.field{border:0;padding:0;margin:10px 0}
fieldset.field legend{color:var(--soft);font-size:.9rem;margin-bottom:6px;padding:0}
.check{display:flex!important;align-items:center;gap:10px;margin:8px 0!important;cursor:pointer}
.check input{width:18px;height:18px;flex:none;accent-color:var(--orange);margin:0}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
.form-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:18px}
.duration{display:flex;gap:8px;margin-top:7px}
.duration select{flex:1.3;min-width:0}
.duration input{flex:1;min-width:0}
.details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;margin:0}
.details.compact{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:14px 0}
.details dt{font-size:.76rem;color:var(--dim)}
.details dd{margin:2px 0 0;font-size:.92rem;color:var(--soft);overflow-wrap:anywhere}
.quote{margin-top:16px;background:#ffffff08;border-inline-start:2px solid var(--orange);border-radius:10px;border-start-start-radius:0;border-end-start-radius:0;padding:12px 16px}
.quote small{color:var(--dim);font-size:.76rem}
.quote p{margin:4px 0 0;color:var(--ink);font-size:.9rem}
.profile-head{display:flex;align-items:center;gap:16px;margin-bottom:22px}
.profile-head h2{margin:0;font-size:1.35rem}
.profile-head p{margin:4px 0 0;display:flex;gap:6px;flex-wrap:wrap}
.avatar{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:var(--orange);color:var(--on-orange);font-size:1.5rem;font-weight:800;flex:none;box-shadow:0 10px 26px -10px var(--glow)}
.package-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}
.package-admin p{font-size:.9rem}
.reading-panel{max-width:860px;font-size:1rem;line-height:2.2;color:var(--soft)}
.reading-panel p,.reading-panel li{color:var(--soft)}
.approve-form{margin-bottom:10px}
.publish-form .check{margin:0!important;font-size:.8rem}
.grant-form{margin-top:18px;padding-top:6px;border-top:1px solid var(--line)}

/* Responsive */
@media(min-width:1151px){.two-col>.side-panel{position:sticky;top:118px}}
@media(max-width:1150px){
 .wrap{padding-inline:30px}
 .header-inner{gap:18px}
 nav{gap:2px}
 nav a{padding:8px 10px}
 .atlas-layout{grid-template-columns:240px minmax(320px,1fr)}
 .atlas-layout>.side-panel:last-child{grid-column:1/-1}
 .atlas-canvas{height:460px}
 .tracks,.articles-grid{gap:16px}
 .track{padding:22px}
}
@media(max-width:1100px){
 .admin-shell{grid-template-columns:1fr;background:none}
 .admin-sidebar{position:sticky;top:0;z-index:30;height:auto;flex-direction:row;align-items:center;gap:10px;padding:10px 14px;overflow-x:auto;border-bottom:1px solid var(--line)}
 .admin-brand{padding:0}
 .admin-brand>div{display:none}
 .admin-nav{flex-direction:row;gap:4px}
 .admin-nav a{white-space:nowrap;padding:9px 12px}
 .admin-sidebar-foot{flex-direction:row;margin:0;border:0;padding:0}
 .admin-user{display:none}
 .admin-sidebar-foot a span,.admin-sidebar-foot button span{display:none}
 .admin-main{padding:24px 20px 50px}
 .admin-grid,.admin-grid.wide-first{grid-template-columns:1fr}
}
@media(max-width:800px){
 html{scroll-padding-top:150px}
 .header-inner{min-height:80px;flex-wrap:wrap;padding-block:14px 9px;gap:10px}
 .brand small{font-size:.7rem}
 .brand-symbol{width:40px;height:40px;border-radius:12px}
 .header-inner>.button{font-size:.79rem;padding:8px 12px}
 .tracks,.articles-grid{grid-template-columns:1fr 1fr}
 .track:last-child{grid-column:1/-1}
 .atlas-layout{grid-template-columns:1fr}
 .atlas-layout>.side-panel:first-child{order:1}
 .atlas-layout>.visual{order:0}
 .atlas-layout>.side-panel:last-child{order:2}
 .muscle-list{max-height:280px}
 .two-col,.book-grid{grid-template-columns:1fr}
 .section-head{align-items:center}
 .section-head h2{font-size:1.55rem}
 .page-heading{padding-top:40px}
 .page-heading h1{font-size:2.15rem}
 .reading h1{font-size:1.85rem}
 .reading .body{padding-top:26px}
 .chapter{padding:18px;gap:13px;flex-wrap:wrap}
 .chapter .status{margin-right:45px}
}
@media(max-width:700px){
 .admin-nav a span{display:none}
 .admin-nav a.active span{display:inline}
 .form-grid,.auth .form-grid,.details{grid-template-columns:1fr}
 .admin-topbar h1{font-size:1.55rem}
 .panel{padding:18px}
 .data-table thead{display:none}
 .data-table,.data-table tbody,.data-table tr,.data-table td{display:block;width:100%}
 .data-table tr{border-bottom:1px solid var(--line);padding:10px 0}
 .data-table tr:last-child{border-bottom:0}
 .data-table td{border:0;padding:5px 0}
 .data-table td[data-label]::before{content:attr(data-label);display:block;font-size:.72rem;color:var(--dim)}
 .row-actions{justify-content:flex-start;padding-top:8px!important}
 td.row-actions{display:block;text-align:start}
 .table-wrap{margin:0}
 .stat strong{font-size:1.6rem}
 .stat-grid{grid-template-columns:1fr 1fr}
 .load-3d{bottom:14px;padding:8px 16px}
 .muscle-panel{inset-block:auto 0;inset-inline:0;width:auto;max-height:78vh;border-radius:20px 20px 0 0;border-inline-end:0;border-block-start:1px solid var(--line-2)}
 .muscle-view{height:240px}
}
@media(max-width:520px){
 .wrap{padding-inline:20px}
 .articles-grid,.tracks{grid-template-columns:1fr}
 .track:last-child{grid-column:auto}
 .model-info{gap:4px}
 .section{padding-top:34px}
 .auth{padding:26px;margin:32px auto}
 .page-heading{padding-top:30px}
 .section-head{align-items:start;gap:14px}
 .section-head>.text-link{font-size:.76rem;max-width:120px}
 .atlas-canvas{height:400px}
 .footer{font-size:.77rem;margin-top:40px}
 .article-card{min-height:230px}
 .article-cover{height:195px}
 .toolbar{padding:11px}
 .toolbar input{width:100%;flex-basis:100%}
 .toolbar select{flex:1}
 .chapter .chapter-progress{width:100%;padding-right:45px}
 .eyebrow{font-size:.66rem;letter-spacing:.12em}
 .brand strong{font-size:.9rem}
 .visual-top{padding:15px;font-size:.72rem}
 .visual-bottom{gap:6px}
 .visual .pill{font-size:.72rem;padding:6px 10px}
 .book{padding:23px}
 .quiz{padding:20px}
 .source-note{padding:14px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}html{scroll-behavior:auto}}

/* Clinical review pages in the admin panel (admin.mjs, clinical-review.mjs). */
.cr-legend{margin:8px 0 0;padding-inline-start:22px;color:var(--soft);font-size:.9rem;line-height:2}
.cr-progress p{margin:6px 0 14px;color:var(--soft)}
.cr-group .panel-head h2 .text-link{font-size:.82rem;margin-inline-start:10px}
.cr-item{border:1px solid var(--line-2);border-radius:16px;background:var(--raise-2);padding:14px 18px 10px;margin:0 0 14px;min-width:0}
.cr-item.is-decided{border-color:var(--ok-line)}
.cr-item legend{padding:0 8px;font-size:.78rem;color:var(--orange-ink);font-weight:650}
.cr-text{border-inline-start:3px solid var(--orange-line);padding:4px 14px;margin:4px 0 12px;color:var(--ink);line-height:2.1;overflow-wrap:break-word}
.cr-text p{color:var(--ink);margin:0 0 4px}.cr-text ul{margin:4px 0;padding-inline-start:20px;color:var(--soft);font-size:.92rem}
.cr-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:2px 18px;margin-bottom:6px}
.cr-options .check{font-size:.88rem;color:var(--soft)}
.cr-item details{margin:6px 0;border-top:1px solid var(--line);padding-top:6px}
.cr-item details summary{font-size:.84rem;color:var(--orange-ink)}
.cr-item .notice{margin:8px 0}
.cr-kind{font-size:.78rem;color:var(--orange-ink);font-weight:650;margin:0 0 4px}
.cr-decisions{margin:6px 0 0;padding-inline-start:20px;color:var(--soft);font-size:.9rem;line-height:2}
.cr-decisions small{color:var(--muted)}

/* Levels and parts of a segmented muscle (muscle page, muscle panel). */
.segment-section{margin:20px 0 6px}
.segment-section h2{font-size:1.15rem;margin-bottom:8px}
.segment-pills{margin:6px 0 12px}
.segment-shown{color:var(--soft);font-size:.92rem;margin:6px 0 10px}
.segment-pills .pill{min-height:32px;padding:4px 11px;font-size:.76rem}
#muscle-details .segment-pills .pill>span{line-height:1.75;text-align:center}
#muscle-details .segment-pills .pill:has(>span){border-radius:14px;padding:6px 12px;width:100%}

/* Root profile of the atlas (public/atlas.js): a root's peripheral nerves (gold, like the nerves of the model) and its
   entries in the details box, the index muscle in orange, and callouts with dashed leader lines on the model. */
.root-back{display:inline-block;margin-bottom:12px;font-size:.82rem}
.root-note{font-size:.8rem;line-height:1.9;color:var(--muted);margin:2px 0 8px}
.root-nerve-group{display:grid;gap:6px;margin:4px 0 10px}
.root-nerve-group>small{margin:0}
.root-nerve{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;text-align:start;border:1px solid #e0b84859;background:#e0b84812;border-radius:12px;padding:7px 11px;color:#f3d27a;font-size:.86rem;line-height:1.75;transition:background .2s,border-color .2s}
.root-nerve:hover{background:#e0b84826;border-color:#e0b848}
.root-nerve>span:first-child{min-width:0}
/* The Persian name moves to its own line as a whole and wraps inside only when longer than a line. */
.root-nerve .name-fa,.root-muscle .name-fa{display:inline-block;white-space:normal}
.root-nerve-count{flex:none;font-size:.7rem;line-height:1.8;color:#f3d27a;background:#e0b8481f;border-radius:6px;padding:0 7px}
.detail-row .root-nerve small,.detail-row .root-muscle small{margin:0;font-size:.72rem;color:var(--muted);overflow-wrap:anywhere}
.detail-row small.root-pending{margin-top:6px;line-height:1.9}
.root-muscles{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:6px}
.root-muscle{display:grid;gap:1px;justify-items:start;border:1px solid var(--line-2);border-radius:12px;padding:7px 11px}
.root-muscle-pick{background:none;border:0;padding:0;color:var(--ink);text-align:start;font-size:.88rem;line-height:1.75}
.root-muscle-pick:hover{color:var(--orange-ink)}
.root-muscle.is-index{border-color:var(--orange);background:var(--orange-tint);box-shadow:0 0 18px -8px var(--glow)}
.index-badge{display:inline-block;font-size:.68rem;font-weight:700;line-height:1.9;color:var(--on-orange);background:var(--orange);border-radius:999px;padding:0 9px}
.muscle-item .index-badge{margin-inline-start:6px;vertical-align:middle}
.atlas-callouts{position:absolute;inset:0;z-index:2;pointer-events:none;direction:ltr;overflow:hidden}
.atlas-callouts[hidden]{display:none}
.callout-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.callout-line{fill:none;stroke:#e4e4e7;stroke-opacity:.8;stroke-width:1.2;stroke-dasharray:4 3}
.callout-dot{fill:#f4f4f5;stroke:#0a0a0b;stroke-width:1}
.callout-line.is-index{stroke:var(--orange);stroke-opacity:1;stroke-width:1.7}
.callout-dot.is-index{fill:var(--orange)}
.callout{position:absolute;top:0;left:0;pointer-events:auto;display:flex;flex-direction:column;align-items:flex-start;max-width:min(200px,30%);padding:4px 9px;border:1px solid var(--line-2);border-radius:10px;background:#0d0d0fe6;color:var(--ink);font-size:.74rem;line-height:1.5;text-align:left;box-shadow:0 8px 20px -10px #000;transition:border-color .2s,background .2s}
.callout:hover,.callout:focus-visible{border-color:var(--orange);background:#18181bf0}
.callout-en{font-weight:650;overflow-wrap:anywhere}
.callout-fa{align-self:stretch;font-size:.68rem;color:var(--muted);text-align:right}
.callout.is-index{border-color:var(--orange);background:#2a1206f0;box-shadow:0 0 0 1px var(--orange),0 0 22px -6px var(--glow)}
.callout.is-index .callout-fa{color:var(--orange-ink)}
.callout-badge{font-size:.62rem;font-weight:700;line-height:1.7;color:var(--on-orange);background:var(--orange);border-radius:999px;padding:0 7px;margin-bottom:2px}
.callout.is-hidden,.callout-line.is-hidden,.callout-dot.is-hidden,.atlas-callouts.labels-off .callout,.atlas-callouts.labels-off .callout-lines{visibility:hidden}
.callout-toggle{position:absolute;top:8px;left:50%;transform:translateX(-50%);pointer-events:auto;min-height:30px;padding:2px 12px;border:1px solid var(--line-2);border-radius:999px;background:#0d0d0fd9;color:var(--soft);font-size:.72rem}
.callout-toggle[aria-pressed=true]{border-color:var(--orange-line);color:var(--orange-ink)}
.callout-toggle:hover{border-color:var(--orange)}
@media(max-width:520px){
 .callout{max-width:30%;padding:3px 7px;font-size:.66rem;line-height:1.45}
 .callout-fa{font-size:.63rem;line-height:1.4}
}
/* Nerve index pills: English (Persian), the Persian name kept whole (it moves to a second line as a whole), with
   rounded corners rather than an oval once a pill wraps. */
.nerve-pills{gap:5px}
.nerve-pills .pill{border-radius:12px;justify-content:space-between;text-align:start;line-height:1.35;padding:3px 8px;min-height:28px;font-size:.72rem}
.nerve-pills .pill .name-fa{display:inline-block;white-space:normal;font-size:.68rem;color:inherit;background:none;padding:0;border-radius:0}
.nerve-pills .pill .nerve-count{flex:none}
.index-note{color:var(--orange-ink)!important}
.callout-line.is-behind{stroke-opacity:.35}
.callout-line.is-index.is-behind{stroke-opacity:.55}

/* Academy quick wins: lock labels, compact edition lists, access banner, muscle index, collapsed chapter lists. */
.chapter .number.lesson{min-width:64px;font-size:1rem;white-space:nowrap}
.chapter.locked{opacity:.86}
.lock-chip{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;color:var(--muted);background:#ffffff0a;border:1px solid var(--line-2);border-radius:999px;padding:3px 10px;white-space:nowrap}
.lock-chip .lock-icon{flex:none}
.chapter.compact{padding:12px 18px;gap:14px;border-radius:12px;flex-wrap:wrap}
.chapter.compact h3{font-size:.95rem;margin-bottom:2px}
.chapter.compact:first-child{background:var(--raise);border-color:var(--line-2)}
.chapter .status.ready{color:var(--orange-ink);border-color:var(--orange-line);background:var(--orange-tint)}
.access-banner{margin:0 0 24px}
.access-banner .actions{margin:14px 0 0}
details.edition{border:1px solid var(--line);border-radius:16px;padding:6px 14px 14px;margin-top:12px}
details.edition>summary,details.next-chapters>summary{cursor:pointer;display:flex;flex-wrap:wrap;gap:8px 14px;align-items:baseline;padding:10px 0;font-weight:650}
details.edition>summary:focus-visible,details.next-chapters>summary:focus-visible{outline:2px solid var(--orange);outline-offset:3px;border-radius:8px}
details.edition>summary small{font-weight:400;color:var(--muted)}
details.next-chapters{margin-top:6px}
details.next-chapters ul{margin:6px 0 0;padding-inline-start:20px;color:var(--muted);font-size:.9rem;columns:2 260px}
.related-links{margin-top:34px}
.muscle-index{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.muscle-index li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;padding:8px 0;border-bottom:1px solid var(--line)}
.muscle-index .muscle-roots{color:var(--muted);font-size:.85rem}

/* A short status on the 3D canvas (public/atlas.js chip()), and a canvas that stops below the sticky header when a tap brings it into view. */
.atlas-chip{position:absolute;z-index:4;inset-inline:0;bottom:12px;margin-inline:auto;width:max-content;max-width:calc(100% - 24px);padding:7px 16px;border:1px solid var(--orange-line);border-radius:999px;background:#0d0d0fe6;color:var(--orange-ink);font-size:.8rem;pointer-events:none}
.atlas-chip[hidden]{display:none}
.visual{scroll-margin-top:72px}
/* Until the hidden-line check of a root has finished, the leader lines are faint, so that points do not visibly jump. */
.atlas-callouts.is-checking .callout-line{stroke-opacity:.3}

/* Interactive figure/table reference links and Lightbox Popup Modal */
.ref-badge{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;margin:0 2px;border-radius:6px;background:var(--raise);color:var(--accent);border:1px solid var(--line-2);font-size:.88em;font-weight:600;cursor:pointer;vertical-align:baseline;transition:all .15s ease;font-family:inherit}
.ref-badge:hover,.ref-badge:focus-visible{background:var(--accent-tint,rgba(56,189,248,.15));border-color:var(--accent);color:#fff;transform:translateY(-1px)}
.ref-badge svg{width:12px;height:12px;opacity:.8;flex:none}
.ref-modal-backdrop{position:fixed;inset:0;z-index:9999;background:rgba(8,11,20,.82);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:16px;opacity:0;pointer-events:none;transition:opacity .2s ease}
.ref-modal-backdrop.is-open{opacity:1;pointer-events:auto}
.ref-modal-card{background:var(--bg-card,#121727);border:1px solid var(--line-2);border-radius:18px;width:min(94vw,920px);max-height:88vh;display:flex;flex-direction:column;box-shadow:0 28px 70px -10px rgba(0,0,0,.7);overflow:hidden;transform:scale(.96);transition:transform .2s cubic-bezier(.16,1,.3,1)}
.ref-modal-backdrop.is-open .ref-modal-card{transform:scale(1)}
.ref-modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid var(--line-2);background:var(--raise)}
.ref-modal-title{font-size:.95rem;font-weight:700;color:var(--ink);margin:0}
.ref-modal-close{background:none;border:none;color:var(--muted);font-size:1.5rem;line-height:1;padding:4px 8px;border-radius:8px;cursor:pointer;transition:color .15s,background .15s}
.ref-modal-close:hover{color:var(--ink);background:rgba(255,255,255,.08)}
.ref-modal-body{padding:18px;overflow-y:auto;overscroll-behavior:contain}
.ref-modal-body figure{margin:0!important}
.ref-modal-body figure img{max-height:65vh;object-fit:contain;width:auto;max-width:100%}
.ref-modal-body .table-scroll,.ref-modal-body .authored-table{margin:0!important;max-height:68vh;overflow:auto}

