/* assets/css/academy.css — Academy learner UI (Phase 36): lesson list + immersive player. */
.academy-page{position:relative;max-width:880px;margin:0 auto 60px;padding:0 20px;}

/* --- list page --- */
.acd-hero{text-align:center;padding:10px 0 6px;}
.acd-hero-icon{font-size:2.6rem;color:var(--primary);margin-bottom:10px;}
.acd-title{font-size:2.4rem;margin:0 0 8px;}
.acd-sub{max-width:520px;margin:0 auto 26px;color:var(--text-muted);line-height:1.6;}
.acd-sub strong{color:var(--primary);}
.acd-loading{text-align:center;color:var(--text-muted);padding:30px 0;}
.acd-level-chip{background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;border-radius:10px;padding:3px 10px;font-size:0.85rem;font-weight:800;}
/* 47: collapsible chapter sections (Busuu-style grouping of a level's lessons). */
.acd-chapter{margin:0 0 14px;border:1px solid var(--card-border);border-radius:16px;background:rgba(255,255,255,0.45);overflow:hidden;}
.acd-chapter-head{display:flex;align-items:center;gap:12px;width:100%;padding:14px 18px;border:none;background:transparent;cursor:pointer;font:inherit;text-align:left;}
.acd-chapter-head:hover{background:rgba(111,95,228,0.05);}
.acd-chapter-title{flex:1;font-family:var(--font-display);font-weight:800;font-size:1.05rem;color:var(--text-color);}
.acd-chapter-meta{font-size:0.8rem;font-weight:800;color:var(--primary);background:rgba(111,95,228,0.1);border-radius:999px;padding:2px 10px;}
.acd-chapter-chevron{color:var(--text-muted);transition:transform 0.2s ease;}
.acd-chapter.is-open .acd-chapter-chevron{transform:rotate(180deg);}
.acd-chapter-body{display:none;padding:0 14px 14px;}
.acd-chapter.is-open .acd-chapter-body{display:block;}
.acd-exam-wrap{margin-top:4px;}
.acd-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.acd-lesson-card{
    display:flex;
    align-items:center;
    gap:14px;
    padding:16px 18px;
    background:rgba(255,255,255,0.65);
    border:1px solid rgba(255,255,255,0.85);
    border-radius:18px;
    box-shadow:0 8px 24px rgba(111,95,228,0.10);
    text-decoration:none;
    color:var(--text-color);
    transition:transform 0.15s ease,box-shadow 0.15s ease;
}
.acd-lesson-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(111,95,228,0.18);}
.acd-lesson-card.is-done{border-color:rgba(16,185,129,0.4);}
.acd-lesson-card.is-locked{opacity:0.8;}
.acd-card-icon{font-size:1.4rem;color:var(--primary);width:30px;text-align:center;flex-shrink:0;}
/* 44.6/47: within-level lesson number — the DESIGNED order (each lesson builds on the previous).
   Sits inline just left of the title (was a badge on the icon). */
.acd-card-iconwrap{position:relative;flex-shrink:0;display:flex;align-items:center;}
.acd-card-num{display:inline-block;min-width:20px;text-align:center;font-size:0.72rem;font-weight:800;color:var(--primary);background:rgba(111,95,228,0.13);border-radius:999px;padding:1px 6px;margin-right:7px;vertical-align:middle;}
.acd-card-main{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;}
.acd-card-title{font-weight:800;}
.acd-card-crown{color:var(--secondary);font-size:0.8em;}
.acd-card-sub{font-size:0.85rem;color:var(--text-muted);}
.acd-card-meta{font-size:0.75rem;color:var(--text-muted);font-weight:700;}
.acd-card-state{font-size:1.15rem;flex-shrink:0;}
/* 46 R1: exam cooldown chip (in place of the state icon while an exam is locked). */
.acd-cooldown{flex-shrink:0;font-size:0.75rem;font-weight:800;color:#b45309;background:rgba(244,162,60,0.16);border-radius:999px;padding:5px 11px;white-space:nowrap;}
.acd-cooldown i{margin-right:4px;}
.acd-card-state.is-done{color:var(--success,#10b981);}
.acd-card-state.is-progress{color:var(--secondary);}

/* --- player shell: nav + footer vanish for focus (page scroll stays normal) --- */
body.lesson-immersive header{display:none !important;}
body.lesson-immersive footer{display:none !important;}
body.lesson-immersive main#app-root{margin-top:14px !important;}
.acd-player-head{display:flex;align-items:center;gap:14px;margin-bottom:10px;}
.acd-player-titles{flex:1;min-width:0;}
.acd-player-title{font-size:1.6rem !important;margin:0;}
.acd-player-sub{margin:2px 0 0;color:var(--text-muted);font-size:0.92rem;}
/* Admin draft-preview marker: the run-through is visual only, nothing is recorded. */
.acd-preview-badge{
    display:inline-block;
    margin-left:10px;
    vertical-align:middle;
    font-size:0.68rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:0.05em;
    color:var(--secondary);
    background:rgba(244,162,60,0.14);
    border:1px solid rgba(244,162,60,0.4);
    border-radius:999px;
    padding:3px 10px;
}
.acd-player-actions{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.acd-progress-label{font-size:0.8rem;font-weight:800;color:var(--text-muted);}
/* 46 R2: exam total-timer countdown; turns red in the final 30s. */
.acd-exam-timer{font-size:0.85rem;font-weight:800;color:var(--primary);background:rgba(111,95,228,0.1);border-radius:999px;padding:5px 11px;white-space:nowrap;}
.acd-exam-timer i{margin-right:4px;}
.acd-exam-timer.is-low{color:#dc2626;background:rgba(220,38,38,0.12);}
/* 46 R3: exam integrity — no per-question reveal (neutralise any right/wrong colour the kinds paint,
   leaving the picked control as a plain selection), plus the honor-code gate and tab-switch toast. */
body.exam-active .acd-blocks .is-right,body.exam-active .acd-blocks .is-wrong{border-color:var(--card-border) !important;background:rgba(111,95,228,0.08) !important;color:var(--text-color) !important;box-shadow:none !important;}
.acd-honor{max-width:460px;margin:0 auto;text-align:center;}
.acd-honor h2{margin:6px 0 10px;}
.acd-honor-check{display:flex;align-items:center;gap:10px;justify-content:center;margin:0 0 18px;font-weight:700;text-align:left;}
.acd-exam-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:900;font-weight:700;color:#fff;background:rgba(220,38,38,0.94);border-radius:999px;padding:10px 18px;box-shadow:0 10px 30px rgba(220,38,38,0.35);}
.acd-exam-toast i{margin-right:6px;}
/* 46 R5: printable exam certificate. */
.acd-cert-overlay{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:20px;overflow:auto;background:rgba(30,20,60,0.5);backdrop-filter:blur(3px);}
.acd-cert{
    width:100%;
    max-width:560px;
    text-align:center;
    padding:38px 34px;
    background:linear-gradient(135deg,#fffdf7,#fef5e6);
    border:3px solid var(--secondary);
    border-radius:18px;
    box-shadow:0 24px 60px rgba(30,20,60,0.3);
    color:#3a2f5b;
}
.acd-cert-seal{font-size:2.8rem;color:var(--secondary);margin-bottom:10px;}
.acd-cert-eyebrow{font-size:0.8rem;font-weight:800;text-transform:uppercase;letter-spacing:0.18em;color:#b45309;margin:0 0 14px;}
.acd-cert-name{font-family:'Baloo 2',sans-serif;font-size:2rem;font-weight:800;margin:0 0 10px;}
.acd-cert-body{font-size:1.05rem;line-height:1.6;margin:0 0 18px;}
.acd-cert-date{font-weight:700;color:#6b5f8a;margin:0 0 6px;}
.acd-cert-brand{font-weight:800;color:var(--primary);margin:0;}
.acd-cert-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;}
.academy-page .chat-icon-btn.acd-exit{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,0.75);border:1px solid rgba(111,95,228,0.22);}
.acd-exit:hover{border-color:var(--danger);color:var(--danger);}
.acd-progressbar{height:6px;border-radius:999px;background:rgba(111,95,228,0.15);overflow:hidden;margin-bottom:16px;}
.acd-progressfill{height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,var(--primary),var(--secondary));transition:width 0.4s ease;}
.acd-card{padding:24px 26px;border-radius:24px;}
.acd-card:hover{transform:none;}

/* --- blocks --- */
.acd-block{position:relative;padding:18px 0;border-bottom:1px dashed rgba(111,95,228,0.16);animation:acd-in 0.4s ease;}
/* 53-finale: sort / dictation / spot_the_error */
.acd-sort-pool{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:14px;}
.acd-sort-pool.is-nudge{outline:2px dashed rgba(229,83,60,0.5);outline-offset:4px;border-radius:8px;}
.acd-sort-chip{padding:6px 12px;border-radius:999px;border:1px solid rgba(111,95,228,0.3);background:#fff;cursor:pointer;font:inherit;}
.acd-sort-chip.is-picked{border-color:var(--primary);box-shadow:0 0 0 2px rgba(111,95,228,0.25);}
.acd-sort-chip.is-right{border-color:#37c26b;background:rgba(55,194,107,0.1);}
.acd-sort-chip.is-wrong{border-color:#e5533c;background:rgba(229,83,60,0.1);}
.acd-sort-bucket{border:1px dashed rgba(111,95,228,0.3);border-radius:12px;padding:10px;margin:8px 0;cursor:pointer;}
.acd-sort-blabel{font-weight:700;font-size:0.85rem;color:var(--text-muted);}
.acd-sort-bin{display:flex;flex-wrap:wrap;gap:8px;min-height:34px;margin-top:6px;}
.acd-dict-play{display:flex;align-items:center;gap:10px;justify-content:center;margin-bottom:12px;}
.acd-dict-cue{color:var(--text-muted);font-size:0.88rem;}
.acd-spot-line{font-size:1.1rem;line-height:2;text-align:center;}
.acd-spot-w{font:inherit;background:none;border:none;cursor:pointer;padding:2px 3px;border-radius:6px;border-bottom:1px dotted rgba(111,95,228,0.35);}
.acd-spot-w:hover{background:rgba(111,95,228,0.08);}
.acd-spot-w.is-right{background:rgba(55,194,107,0.15);border-bottom-color:#37c26b;}
.acd-spot-w.is-wrong{background:rgba(229,83,60,0.12);border-bottom-color:#e5533c;}
/* 58.4 fill_table: inflection-drill rows */
.acd-ftable{max-width:420px;margin:0 auto;}
.acd-ftable-lemma{font-weight:700;font-size:1.1rem;text-align:center;margin-bottom:10px;}
.acd-ftable-row {
    display:flex;
    align-items:center;
    gap:10px;
    padding:6px 0;
    border-bottom:1px dashed rgba(111,95,228,0.14);
}
.acd-ftable-label{flex:1;color:var(--text-muted);font-size:0.88rem;text-align:left;}
.acd-ftable-given{flex:1;font-weight:600;text-align:left;}
.acd-ftable-input{flex:1;min-width:0;}
/* 58.1 tap-word: any word in stories/dialogues/examples opens a dictionary popover */
.acd-tapw{cursor:pointer;border-bottom:1px dotted rgba(111,95,228,0.35);}
.acd-tapw:hover{border-bottom-style:solid;background:rgba(111,95,228,0.08);border-radius:3px;}
.acd-tapw-pop {
    position:absolute;
    z-index:60;
    width:250px;
    background:#fff;
    border:1px solid rgba(111,95,228,0.22);
    border-radius:12px;
    box-shadow:0 10px 28px rgba(40,30,90,0.16);
    padding:12px 14px;
    text-align:left;
    font-size:0.9rem;
}
.acd-tapw-word{font-weight:700;font-size:1.02rem;margin-right:6px;}
.acd-tapw-note{font-size:0.78rem;color:var(--text-muted);margin-bottom:5px;}
.acd-tapw-meaning{color:var(--text-muted);margin-top:2px;}
.acd-tapw-pos{font-size:0.68rem;text-transform:uppercase;letter-spacing:0.04em;color:var(--primary);margin-left:4px;}
.acd-tapw-gender{font-size:0.72rem;font-weight:700;color:var(--primary);}
.acd-tapw-card + .acd-tapw-card{border-top:1px dashed rgba(111,95,228,0.18);margin-top:8px;padding-top:8px;}
.acd-tapw-load{text-align:center;color:var(--text-muted);padding:4px 0;}
.acd-block:last-child{border-bottom:none;}
@keyframes acd-in{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:translateY(0);}}
@media(prefers-reduced-motion:reduce){.acd-block{animation:none;}}
.acd-block-tag{
    display:inline-block;
    font-size:0.68rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:0.06em;
    color:var(--primary);
    background:rgba(111,95,228,0.10);
    border-radius:999px;
    padding:3px 10px;
    margin-bottom:10px;
}
.acd-h{font-size:1.25rem;margin:0 0 8px;}
.acd-block p{margin:0 0 10px;line-height:1.65;}
.acd-ul{margin:0 0 10px;padding-left:22px;line-height:1.65;}
.acd-ul li{margin-bottom:4px;}
/* Grammar sections: same text payload, distinct tag so rules stand out from narrative blocks.
   (The old full-height green left border read as clutter on long pages — user feedback.) */
.acd-block-grammar .acd-block-tag{color:#0d9463;background:rgba(16,185,129,0.12);}
.acd-tip{display:flex;gap:12px;background:rgba(244,162,60,0.10);border:1px solid rgba(244,162,60,0.30);border-radius:14px;padding:12px 16px;}
.acd-tip i{color:var(--secondary);margin-top:3px;}
.acd-tip p{margin:0;}
/* Stale-client fallback: a block type/kind this build doesn't know renders this, never a blank page. */
.acd-update-note{display:flex;gap:12px;align-items:center;background:rgba(108,99,255,0.08);border:1px dashed rgba(108,99,255,0.35);border-radius:14px;padding:14px 16px;color:var(--text-muted,#666);}
.acd-update-note i{color:var(--primary);}
.acd-update-note p{margin:0;}
.acd-audio{border:none;background:none;color:var(--primary);cursor:pointer;font-size:0.95rem;padding:2px 6px;}
.acd-audio:hover{color:var(--secondary);}

.acd-words{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.acd-word{display:flex;gap:12px;background:var(--bg-color);border:1px solid var(--card-border);border-radius:14px;padding:10px;align-items:center;}
.acd-word-img{width:64px;height:52px;object-fit:cover;border-radius:10px;flex-shrink:0;}
.acd-word-body{display:flex;flex-direction:column;min-width:0;}
.acd-word-term{font-weight:800;font-size:1.05rem;}
.acd-word-gloss{color:var(--text-muted);font-size:0.9rem;}
.acd-word-ex{color:var(--text-muted);font-size:0.8rem;font-style:italic;margin-top:2px;}
.acd-gender{font-size:0.62rem;font-weight:800;border-radius:6px;padding:1px 6px;vertical-align:2px;margin:0 2px;}
.acd-gender.is-m{background:rgba(59,130,246,0.15);color:#2563eb;}
.acd-gender.is-f{background:rgba(236,72,153,0.15);color:#db2777;}
.acd-gender.is-mf{background:rgba(111,95,228,0.15);color:var(--primary);}

.acd-examples{display:flex;flex-direction:column;gap:10px;}
.acd-example{display:flex;gap:10px;align-items:flex-start;}
.acd-example-body{display:flex;flex-direction:column;}
.acd-example-line{font-weight:700;}
.acd-example-gloss{color:var(--text-muted);font-size:0.88rem;}

.acd-dialogue{display:flex;flex-direction:column;gap:10px;}
.acd-turn{display:flex;flex-direction:column;max-width:78%;}
.acd-turn.is-right{align-self:flex-end;align-items:flex-end;}
.acd-turn-speaker{font-size:0.72rem;font-weight:800;color:var(--text-muted);margin-bottom:2px;}
.acd-turn-bubble{background:rgba(255,255,255,0.9);border:1px solid var(--card-border);border-radius:16px;padding:8px 14px;font-weight:600;}
.acd-turn.is-right .acd-turn-bubble{background:linear-gradient(135deg,var(--primary),#8f7bf0);color:#fff;border:none;}
.acd-turn.is-right .acd-turn-bubble .acd-audio{color:#fff;}
.acd-turn-gloss{font-size:0.8rem;color:var(--text-muted);margin-top:2px;}
/* The turn currently being narrated by the auto-play chain. */
.acd-turn.is-speaking .acd-turn-bubble{box-shadow:0 0 0 2.5px var(--primary),0 6px 18px rgba(111,95,228,0.25);}
.acd-turn.is-right.is-speaking .acd-turn-bubble{box-shadow:0 0 0 2.5px var(--secondary),0 6px 18px rgba(244,130,92,0.30);}

/* 53 contrast: two tinted columns + the rule that separates them. The opposing tints ARE the
   teaching — the learner has to read the two sides as distinct things, not one list. */
.acd-contrast{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;}
.acd-ct-side{display:flex;flex-direction:column;gap:8px;border-radius:14px;padding:14px 16px;border:1px solid var(--card-border);}
.acd-ct-side.is-left{background:rgba(111,95,228,0.06);border-color:rgba(111,95,228,0.22);}
.acd-ct-side.is-right{background:rgba(244,162,60,0.07);border-color:rgba(244,162,60,0.26);}
.acd-ct-label{font-size:1.15rem;font-weight:800;}
.acd-ct-side.is-left .acd-ct-label{color:var(--primary);}
.acd-ct-side.is-right .acd-ct-label{color:var(--secondary);}
.acd-ct-note{font-size:0.85rem;color:var(--text-muted);}
.acd-ct-item{display:flex;gap:10px;align-items:flex-start;}
.acd-ct-item-body{display:flex;flex-direction:column;}
.acd-ct-l2{font-weight:700;}
.acd-ct-gloss{color:var(--text-muted);font-size:0.85rem;}
.acd-ct-vs{align-self:center;font-size:0.72rem;font-weight:800;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-muted);}
.acd-ct-why{display:flex;gap:10px;margin:14px 0 0;font-weight:600;}
.acd-ct-why i{color:var(--primary);margin-top:3px;}

/* 53 image_choice: the photo IS the prompt. Before the image pass has run there is no photo, so the
   gloss stands in and the item degrades to a plain meaning-choice — never an unanswerable blank. */
.acd-ic-stim{display:flex;justify-content:center;margin:0 0 14px;}
.acd-ic-img{width:100%;max-width:320px;height:200px;object-fit:cover;border-radius:16px;display:block;}
.acd-ic-fallback{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:1.25rem;font-weight:800;}
.acd-ic-fallback i{color:var(--secondary);}

/* 53 story: continuous prose. Glosses hide behind the shared Translations toggle — reading for
   meaning is the whole point, so the English must not sit there for free. */
.acd-story{display:flex;flex-direction:column;gap:10px;}
.acd-story-line{display:flex;gap:10px;align-items:flex-start;}
.acd-story-body{display:flex;flex-direction:column;}
.acd-story-l2{font-weight:700;}
.acd-story-gloss{font-size:0.8rem;color:var(--text-muted);margin-top:2px;}
.acd-story.is-glosses-hidden .acd-story-gloss{display:none;}

/* "View the dialogue" recall button on exercise pages that quiz a previous dialogue, + its popup. */
.acd-dlg-ref{
    display:inline-flex;
    align-items:center;
    gap:7px;
    margin:0 0 10px 10px;
    padding:4px 12px;
    border:1px solid rgba(111,95,228,0.3);
    border-radius:999px;
    background:rgba(255,255,255,0.8);
    color:var(--primary);
    font:inherit;
    font-size:0.78rem;
    font-weight:800;
    cursor:pointer;
}
.acd-dlg-ref:hover{border-color:var(--primary);background:rgba(111,95,228,0.08);}
.acd-dlg-modal{
    position:fixed;
    inset:0;
    z-index:10005;
    background:rgba(42,39,64,0.45);
    backdrop-filter:blur(4px);
    -webkit-backdrop-filter:blur(4px);
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
    animation:acd-in 0.2s ease;
}
.acd-dlg-modal.hidden{display:none;}
.acd-dlg-modal-card{
    width:min(560px,100%);
    max-height:min(640px,86vh);
    overflow-y:auto;
    background:var(--card-bg);
    border-radius:20px;
    padding:18px 22px 22px;
    box-shadow:0 30px 80px rgba(0,0,0,0.35);
}
.acd-dlg-modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.acd-dlg-modal-close{border:none;background:none;font-size:1.2rem;color:var(--text-muted);cursor:pointer;padding:4px 8px;}
.acd-dlg-modal-close:hover{color:var(--danger);}

.acd-ex-prompt{font-weight:700;font-size:1.02rem;}
.acd-ex-prompt i{color:var(--primary);margin-right:6px;}
.acd-ex-options{display:flex;flex-direction:column;gap:8px;max-width:420px;}
.acd-ex-option{
    text-align:left;
    padding:11px 16px;
    border:1.5px solid var(--card-border);
    border-radius:12px;
    background:rgba(255,255,255,0.85);
    color:var(--text-color);
    font:inherit;
    font-weight:600;
    cursor:pointer;
    transition:border-color 0.15s ease,transform 0.1s ease;
}
.acd-ex-option:hover:not(:disabled){border-color:var(--primary);}
.acd-ex-option.is-right{border-color:var(--success,#10b981);background:rgba(16,185,129,0.12);}
.acd-ex-option.is-wrong{border-color:#ef4444;background:rgba(239,68,68,0.10);}
.acd-ex-option:disabled{cursor:default;opacity:0.85;}
.acd-ex-typing{display:flex;gap:8px;max-width:420px;}
.acd-ex-input{flex:1;padding:10px 14px;border:1.5px solid var(--card-border);border-radius:12px;font:inherit;background:rgba(255,255,255,0.9);}
.acd-ex-input.is-right{border-color:var(--success,#10b981);}
.acd-ex-input.is-wrong{border-color:#ef4444;}
/* Inline gap (user feedback): the blank sits IN the sentence, styled like a cloze slot — typing fills it in place; width is preset to the answer so nothing reflows. */
.acd-gap-inline{
    flex:none;
    display:inline-block;
    padding:2px 8px;
    border:none;
    border-bottom:2.5px dotted rgba(111,95,228,0.5);
    border-radius:6px 6px 0 0;
    background:rgba(111,95,228,0.05);
    font:inherit;
    font-weight:700;
    text-align:center;
}
.acd-gap-inline:focus{outline:none;border-bottom-color:var(--primary);background:rgba(111,95,228,0.12);}
.acd-gap-inline.is-right{border-bottom-style:solid;border-bottom-color:var(--success,#10b981);background:rgba(16,185,129,0.12);color:#0d9463;}
.acd-gap-inline.is-wrong{border-bottom-style:solid;border-bottom-color:#ef4444;background:rgba(239,68,68,0.12);}
.acd-ex-typing-inline{max-width:none;}
.acd-ex-note{font-size:0.88rem;font-weight:700;color:#ef4444;margin-top:8px;}
.acd-ex-note.is-good{color:var(--success,#10b981);}
.acd-ex-note.is-coach{color:#b45309;}
.acd-ex-note em{color:var(--text-muted);font-weight:600;}

/* --- 40A2: grammar-page extensions on text blocks --- */
.acd-rules{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:8px;}
.acd-rules li{display:flex;gap:10px;align-items:flex-start;line-height:1.55;}
.acd-rules li i{color:var(--secondary);margin-top:4px;flex-shrink:0;}
.acd-table{width:100%;max-width:460px;border-collapse:collapse;margin:0 0 12px;background:rgba(255,255,255,0.7);border-radius:14px;overflow:hidden;}
.acd-table th{text-align:left;font-size:0.75rem;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-muted);padding:8px 14px;background:rgba(111,95,228,0.08);}
.acd-table td{padding:9px 14px;border-top:1px solid rgba(111,95,228,0.10);font-weight:600;}
.acd-table td:first-child{color:var(--text-muted);font-weight:700;}
.acd-table-say{width:40px;text-align:right;}
.acd-literal{color:var(--text-muted);font-weight:500;}
.acd-example-img{width:56px;height:46px;object-fit:cover;border-radius:10px;flex-shrink:0;}

/* Inline warm-up check (teach-then-check on the SAME screen — ungraded, gates Continue). */
.acd-check{margin-top:16px;padding:14px 16px;background:rgba(111,95,228,0.06);border:1px solid rgba(111,95,228,0.18);border-radius:14px;}
.acd-check-prompt{font-weight:700;margin:0 0 10px;}
.acd-check-prompt i{color:var(--primary);margin-right:6px;}
.acd-check-opts{display:flex;gap:8px;flex-wrap:wrap;}
.acd-check-opt{
    padding:9px 18px;
    border:1.5px solid var(--card-border);
    border-radius:12px;
    background:rgba(255,255,255,0.9);
    color:var(--text-color);
    font:inherit;
    font-weight:700;
    cursor:pointer;
    transition:border-color 0.15s ease;
}
.acd-check-opt:hover:not(:disabled){border-color:var(--primary);}
.acd-check-opt.is-right{border-color:var(--success,#10b981);background:rgba(16,185,129,0.12);}
.acd-check-opt.is-wrong{border-color:#ef4444;background:rgba(239,68,68,0.10);animation:acd-shake 0.35s ease;}
.acd-check-opt:disabled{cursor:default;opacity:0.85;}
.acd-check-note{font-size:0.85rem;font-weight:700;color:#ef4444;margin:8px 0 0;}
.acd-check-note.is-good{color:var(--success,#10b981);}

/* Universal audio pill: play/pause + progress line + speed toggle, on the blessed singleton. */
.acd-pill{display:flex;align-items:center;gap:10px;max-width:340px;background:linear-gradient(135deg,var(--primary),#8f7bf0);border-radius:999px;padding:6px 12px 6px 6px;margin:0 0 14px;}
.acd-pill-play{width:34px;height:34px;border:none;border-radius:50%;background:rgba(255,255,255,0.22);color:#fff;cursor:pointer;font-size:0.85rem;flex-shrink:0;}
.acd-pill-play:hover{background:rgba(255,255,255,0.34);}
.acd-pill-track{flex:1;height:4px;border-radius:999px;background:rgba(255,255,255,0.28);overflow:hidden;}
.acd-pill-fill{height:100%;width:0;background:#fff;border-radius:999px;transition:width 0.2s linear;}
.acd-pill-speed{border:none;background:rgba(255,255,255,0.22);color:#fff;border-radius:999px;padding:3px 10px;font-size:0.72rem;font-weight:800;cursor:pointer;flex-shrink:0;}
.acd-pill-speed:hover{background:rgba(255,255,255,0.34);}

/* cloze_bank: dotted slots + tappable chip bank with ghost placeholders (no reflow). */
.acd-cz-line{font-size:1.15rem;font-weight:600;line-height:2.1;margin:0 0 14px;}
.acd-cz-slot{
    display:inline-block;
    min-width:76px;
    min-height:42px;
    margin:0 4px;
    padding:4px 10px;
    border:none;
    border-bottom:2.5px dotted rgba(111,95,228,0.5);
    border-radius:6px 6px 0 0;
    background:rgba(111,95,228,0.05);
    font:inherit;
    font-weight:700;
    text-align:center;
    cursor:pointer;
    vertical-align:middle;
}
.acd-cz-slot.is-active{border-bottom-color:var(--primary);background:rgba(111,95,228,0.12);}
.acd-cz-slot.is-filled{border-bottom-style:solid;}
.acd-cz-slot.is-right{border-bottom-color:var(--success,#10b981);background:rgba(16,185,129,0.12);color:#0d9463;cursor:default;}
.acd-cz-slot.is-wrong{border-bottom-color:#ef4444;background:rgba(239,68,68,0.12);animation:acd-shake 0.35s ease;}
.acd-cz-bank{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px;}
.acd-cz-chip,.acd-or-chip{
    padding:9px 16px;
    border:1.5px solid var(--card-border);
    border-radius:12px;
    background:rgba(255,255,255,0.9);
    color:var(--text-color);
    font:inherit;
    font-weight:700;
    cursor:pointer;
    transition:border-color 0.15s ease,opacity 0.15s ease;
}
.acd-cz-chip:hover:not(:disabled),.acd-or-chip:hover:not(:disabled){border-color:var(--primary);}
.acd-cz-chip.is-ghost,.acd-or-chip.is-ghost{opacity:0.25;border-style:dashed;cursor:default;}

/* order: assembly tray + source chips; correct chips flip green left→right (transition-delay set inline). */
.acd-or-tray{display:flex;gap:8px;flex-wrap:wrap;min-height:52px;border:1.5px dashed rgba(111,95,228,0.35);border-radius:14px;padding:8px;margin:0 0 12px;}
.acd-or-bank{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px;}
.acd-or-item{transition:border-color 0.25s ease,background 0.25s ease;}
.acd-or-item.is-right,.acd-cz-chip.is-right{border-color:var(--success,#10b981);background:rgba(16,185,129,0.12);}
.acd-or-tray.is-shake{animation:acd-shake 0.35s ease;}

/* true_false: stimulus card + two wide verdict buttons. */
.acd-tf-stim{margin:0 0 12px;}
.acd-tf-img{width:100%;max-width:340px;height:170px;object-fit:cover;border-radius:14px;margin:0 0 10px;display:block;}
.acd-tf-sentence{font-size:1.15rem;font-weight:700;margin:0 0 4px;}
.acd-tf-statement{font-weight:700;color:var(--text-muted);margin:0 0 12px;}
.acd-tf-opts{flex-direction:row;max-width:420px;}
.acd-tf-btn{flex:1;text-align:center;font-weight:800;}
.acd-tf-btn i{margin-right:6px;}

/* listen_choice: audio-first — the sentence stays hidden until answered (or "Show text"). */
.acd-lc-sentence{font-size:1.1rem;font-weight:700;margin:0 0 12px;}
.acd-lc-show{
    display:inline-flex;
    align-items:center;
    gap:7px;
    margin-top:10px;
    padding:4px 12px;
    border:1px solid rgba(111,95,228,0.3);
    border-radius:999px;
    background:none;
    color:var(--text-muted);
    font:inherit;
    font-size:0.78rem;
    font-weight:700;
    cursor:pointer;
}
.acd-lc-show:hover{color:var(--primary);border-color:var(--primary);}

/* 40C: presentation card ("Something new!") — photo/gradient hero + pill + bold L2 + small L1. */
.acd-cardpres{max-width:460px;}
.acd-cardpres-img{width:100%;height:200px;object-fit:cover;border-radius:16px;margin:0 0 12px;display:block;}
/* Shared "no photo" treatment: gradient + centred white star, replacing placeholder.webp. `.is-space`
   is global (academy.css is a shell asset on every page), so lesson cards, the vocab grid AND the SRS
   media all reuse it — each just sets its own star size. */
.is-space{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#6f5fe4 0%,#8f7bf0 55%,#f4a23c 130%);color:rgba(255,255,255,0.85);}
.acd-cardpres-img.is-space{font-size:2rem;}
.acd-word-img.is-space{font-size:1.3rem;}
.acd-cardpres-l2{font-size:1.35rem;font-weight:800;margin:0 0 4px;}
.acd-cardpres-cell{font-size:0.68rem;font-weight:800;text-transform:uppercase;letter-spacing:0.05em;color:var(--primary);background:rgba(111,95,228,0.10);border-radius:999px;padding:3px 10px;vertical-align:3px;margin-left:6px;}
.acd-cardpres-gloss{color:var(--text-muted);margin:0;}

/* 40C: tap_word — tokenized sentences, tap the word matching the prompt. */
.acd-tw{display:flex;flex-direction:column;gap:14px;}
.acd-tw-row{display:flex;gap:8px;align-items:flex-start;}
.acd-tw-tokens{display:flex;flex-wrap:wrap;gap:6px;}
.acd-tw-chip{
    padding:6px 10px;
    border:1.5px solid transparent;
    border-radius:10px;
    background:rgba(255,255,255,0.7);
    color:var(--text-color);
    font:inherit;
    font-weight:600;
    cursor:pointer;
    transition:border-color 0.15s ease;
}
.acd-tw-chip:hover:not(:disabled){border-color:var(--primary);}
.acd-tw-chip.is-right{border-color:var(--success,#10b981);background:rgba(16,185,129,0.12);}
.acd-tw-chip.is-wrong{border-color:#ef4444;background:rgba(239,68,68,0.10);animation:acd-shake 0.35s ease;}

/* 40C: anagram — dashed letter slots for ONLY the new morpheme, the known remainder is printed. */
.acd-an-line{display:flex;align-items:center;gap:4px;flex-wrap:wrap;font-size:1.2rem;font-weight:700;margin:0 0 14px;}
.acd-an-given{color:var(--text-muted);margin:0 6px;}
.acd-an-slot{
    width:40px;
    height:46px;
    border:none;
    border-bottom:2.5px dashed rgba(111,95,228,0.5);
    border-radius:8px 8px 0 0;
    background:rgba(111,95,228,0.05);
    font:inherit;
    font-size:1.2rem;
    font-weight:800;
    text-align:center;
    cursor:pointer;
}
.acd-an-slot.is-filled{border-bottom-style:solid;}
.acd-an-slot.is-right{border-bottom-color:var(--success,#10b981);background:rgba(16,185,129,0.12);color:#0d9463;cursor:default;}
.acd-an-slot.is-wrong{border-bottom-color:#ef4444;background:rgba(239,68,68,0.12);animation:acd-shake 0.35s ease;}
.acd-an-tiles{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px;}
.acd-an-tile{
    width:44px;
    height:46px;
    border:1.5px solid var(--card-border);
    border-radius:10px;
    background:rgba(255,255,255,0.9);
    font:inherit;
    font-size:1.15rem;
    font-weight:800;
    cursor:pointer;
    transition:border-color 0.15s ease,opacity 0.15s ease;
}
.acd-an-tile:hover:not(:disabled){border-color:var(--primary);}
.acd-an-tile.is-ghost{opacity:0.25;border-style:dashed;cursor:default;}

/* 40C: match reuses the SRS .matching-* look; lesson-side sizing tweak only. */
.acd-mt .matching-text{font-size:0.95rem;}
.acd-mt .matching-item{padding:12px 14px;}

/* 40D: speak (pronunciation bonus) — mic button + per-word scored re-wrap (pron-w-* in chat.css). */
.acd-sp-sentence{font-size:1.25rem;font-weight:800;margin:0 0 4px;}
.acd-sp-gloss{color:var(--text-muted);margin:0 0 14px;}
.acd-sp-fallback{color:var(--text-muted);font-weight:600;}
.acd-sp-fallback i{color:var(--primary);margin-right:6px;}
.acd-sp-mic{
    display:inline-flex;
    align-items:center;
    gap:9px;
    padding:11px 22px;
    border:none;
    border-radius:999px;
    background:linear-gradient(135deg,var(--primary),#8f7bf0);
    color:#fff;
    font:inherit;
    font-weight:800;
    cursor:pointer;
}
.acd-sp-mic.is-listening{animation:acd-mic-pulse 1.1s ease infinite;}
@keyframes acd-mic-pulse{0%,100%{box-shadow:0 0 0 0 rgba(111,95,228,0.45);}50%{box-shadow:0 0 0 12px rgba(111,95,228,0);}}
.acd-sp-result{margin-top:14px;background:rgba(255,255,255,0.75);border-radius:12px;padding:10px 14px;}
.acd-sp-scored{font-size:1.1rem;font-weight:700;margin:0 0 4px;}
.acd-sp-meta{color:var(--text-muted);font-size:0.88rem;margin:0;}

/* 40D: dialogue chat-reveal — bubbles arrive as narrated; a tap reveals early; glosses toggle. */
.acd-turn.is-pending{opacity:0.15;cursor:pointer;transition:opacity 0.3s ease;}
.acd-turn.is-typing{opacity:0.55;}
.acd-turn.is-typing .acd-turn-bubble{animation:acd-typing 0.9s ease infinite;}
@keyframes acd-typing{0%,100%{transform:translateY(0);}50%{transform:translateY(-3px);}}
.acd-dialogue.is-glosses-hidden .acd-turn-gloss{display:none;}
.acd-dlg-tools{display:flex;gap:8px;margin-top:12px;}
.acd-dlg-tool{
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:4px 12px;
    border:1px solid rgba(111,95,228,0.3);
    border-radius:999px;
    background:rgba(255,255,255,0.8);
    color:var(--text-muted);
    font:inherit;
    font-size:0.78rem;
    font-weight:700;
    cursor:pointer;
}
.acd-dlg-tool:hover{color:var(--primary);border-color:var(--primary);}

/* 40D: review-skills chip on completed cards + the grammar lightbulb. */
.acd-card-review{color:var(--primary);font-size:1rem;flex-shrink:0;padding:4px;cursor:pointer;}
.acd-card-review:hover{color:var(--secondary);}
.acd-grammar-btn{color:var(--secondary);}
.acd-grammar-btn:hover{border-color:var(--secondary) !important;color:var(--secondary) !important;}

/* 40D: the rocket rides the progress fill's edge (pure CSS; reduced-motion kills the glide). */
.acd-progressbar{overflow:visible;}
.acd-progressfill{position:relative;}
.acd-progressfill::after{content:'🚀';position:absolute;right:-12px;top:50%;transform:translateY(-50%) rotate(45deg);font-size:1.6rem;line-height:1;filter:drop-shadow(0 1px 3px rgba(111,95,228,0.4));}

/* 40C: debris-check banner + post-lesson chain screens. */
.acd-miss-bar{background:rgba(244,162,60,0.10);border-color:rgba(244,162,60,0.4);}
.acd-miss-bar i{color:var(--secondary);}
.acd-done-words{display:flex;flex-direction:column;gap:8px;max-width:420px;margin:0 auto 16px;text-align:left;}
.acd-done-word{display:flex;align-items:center;gap:10px;background:var(--bg-color);border:1px solid var(--card-border);border-radius:12px;padding:8px 12px;cursor:pointer;}
.acd-done-word-term{font-weight:800;}
.acd-done-word-gloss{color:var(--text-muted);font-size:0.88rem;flex:1;}
.acd-done-streak{font-size:1.2rem;font-weight:800;color:var(--secondary);margin:0 0 10px;}
.acd-done-streak i{margin-right:6px;}

/* 40C/43R1: list-card category chip — kind-derived for checkpoints/exams, admin-set for lessons. */
.acd-cat-chip{font-size:0.66rem;font-weight:800;text-transform:uppercase;letter-spacing:0.05em;border-radius:999px;padding:2px 8px;margin-right:4px;}
.acd-cat-chip.is-checkpoint{color:#b45309;background:rgba(244,162,60,0.16);}
.acd-cat-chip.is-exam{color:#92400e;background:rgba(217,119,6,0.20);}
/* 45: difficulty pills (one level on screen) + demoted funnel category filter. */
.acd-listtop{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin:0 0 22px;}
.acd-levelpills{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;}
.acd-levelpill{font:inherit;font-size:0.9rem;font-weight:800;min-width:52px;padding:7px 16px;border-radius:999px;border:1.5px solid var(--card-border);background:rgba(255,255,255,0.6);color:var(--text-color);cursor:pointer;transition:transform 0.12s ease,box-shadow 0.12s ease;}
.acd-levelpill:hover:not(:disabled){border-color:var(--primary);transform:translateY(-1px);}
.acd-levelpill.is-active{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 6px 16px rgba(111,95,228,0.28);}
.acd-levelpill:disabled{opacity:0.4;cursor:not-allowed;}
.acd-pill-check{font-size:0.72em;color:#34d399;margin-left:2px;}
.acd-levelpill.is-active .acd-pill-check{color:#fff;}
.acd-funnel{position:relative;}
.acd-funnel-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1.5px solid var(--card-border);background:rgba(255,255,255,0.6);color:var(--text-color);cursor:pointer;font-size:0.95rem;}
.acd-funnel-btn:hover{border-color:var(--primary);}
.acd-funnel-btn.is-filtered{background:var(--primary);border-color:var(--primary);color:#fff;}
.acd-funnel-menu{position:absolute;top:48px;right:0;z-index:20;display:flex;flex-direction:column;min-width:180px;padding:6px;background:#fff;border:1px solid var(--card-border);border-radius:14px;box-shadow:0 12px 30px rgba(111,95,228,0.18);}
.acd-funnel-opt{font:inherit;font-size:0.88rem;font-weight:700;text-align:left;padding:9px 12px;border:none;border-radius:9px;background:transparent;color:var(--text-color);cursor:pointer;}
.acd-funnel-opt:hover{background:rgba(111,95,228,0.08);}
.acd-funnel-opt.is-active{background:rgba(111,95,228,0.12);color:var(--primary);}

/* 45 R2: recommended-next hero — holographic "continue" CTA pinned above the pills. */
.acd-next-wrap{margin:0 0 20px;}
.acd-next-card{
    position:relative;
    display:block;
    overflow:hidden;
    padding:16px 20px;
    border-radius:20px;
    text-decoration:none;
    color:var(--text-color);
    border:1.5px solid rgba(111,95,228,0.25);
    background:linear-gradient(120deg,#efeaff,#f3ebff,#ffeaf5,#efeaff);
    background-size:300% 300%;
    box-shadow:0 12px 34px rgba(111,95,228,0.18);
    animation:acd-holo 9s ease infinite;
    transition:transform 0.15s ease,box-shadow 0.15s ease;
}
.acd-next-card::before{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:linear-gradient(115deg,transparent 32%,rgba(255,255,255,0.55) 50%,transparent 68%);
    transform:translateX(-100%);
    animation:acd-sheen 4s ease-in-out infinite;
}
.acd-next-card:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(111,95,228,0.26);}
.acd-next-inner{position:relative;z-index:1;display:flex;flex-direction:column;gap:8px;}
.acd-next-eyebrow{font-size:0.72rem;font-weight:800;text-transform:uppercase;letter-spacing:0.08em;color:var(--primary);}
.acd-next-eyebrow i{margin-right:5px;}
.acd-next-row{display:flex;align-items:center;gap:14px;}
.acd-next-icon{
    flex-shrink:0;
    width:48px;
    height:48px;
    line-height:48px;
    text-align:center;
    font-size:1.35rem;
    color:var(--primary);
    background:rgba(255,255,255,0.6);
    border-radius:14px;
}
.acd-next-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;}
.acd-next-title{font-size:1.15rem;font-weight:800;}
.acd-next-meta{font-size:0.8rem;font-weight:700;color:var(--text-muted);}
.acd-next-cta{
    flex-shrink:0;
    font-weight:800;
    color:#fff;
    background:var(--primary);
    padding:10px 18px;
    border-radius:999px;
    box-shadow:0 6px 16px rgba(111,95,228,0.3);
}
.acd-next-cta i{margin-left:4px;}
.acd-next-exam .acd-next-icon,.acd-next-checkpoint .acd-next-icon{color:#b45309;}
.acd-next-card.is-caught-up{background:rgba(255,255,255,0.6);border-color:rgba(16,185,129,0.35);animation:none;box-shadow:0 8px 24px rgba(16,185,129,0.12);}
.acd-next-card.is-caught-up::before{display:none;}
.acd-next-card.is-caught-up .acd-next-icon{color:var(--success,#10b981);}
.acd-lesson-card.is-recommended{border-color:var(--primary);box-shadow:0 0 0 2px rgba(111,95,228,0.35),0 8px 24px rgba(111,95,228,0.14);}
/* 45 R3: skip-ahead nudge modal (soft, always override-able). */
.acd-nudge-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(30,20,60,0.45);backdrop-filter:blur(3px);}
/* 47: the global h2 is display:flex (icon headings), which ignores text-align:center — so centered
   dialog/overlay titles left-align. Force these back to block so they actually centre. */
.acd-nudge-title,.acd-done-title,.acd-honor h2,.acd-exitconfirm-title{display:block;text-align:center;}
.acd-nudge-modal{
    max-width:400px;
    width:100%;
    text-align:center;
    padding:26px 24px;
    background:var(--card-bg,#fff);
    border-radius:20px;
    box-shadow:0 24px 60px rgba(30,20,60,0.3);
}
.acd-nudge-icon{font-size:2.2rem;color:var(--primary);margin-bottom:12px;}
.acd-nudge-title{margin:0 0 8px;font-size:1.25rem;}
.acd-nudge-body{margin:0 0 20px;color:var(--text-muted);line-height:1.55;}
.acd-nudge-actions{display:flex;flex-direction:column;gap:10px;}
.acd-nudge-take{justify-content:center;}
.acd-nudge-anyway{justify-content:center;}
@keyframes acd-holo{0%{background-position:0% 50%;}50%{background-position:100% 50%;}100%{background-position:0% 50%;}}
@keyframes acd-sheen{0%{transform:translateX(-100%);}55%,100%{transform:translateX(120%);}}

/* Exam pass screen — the badge-earned line (46 R0 removed level gating, but this class stays). */
.acd-done-unlock{margin:0 0 6px;font-weight:800;color:#0d9463;text-align:center;}
.acd-done-unlock i{margin-right:6px;}

/* 43 R3: exam fail screen — score bar vs the pass-mark line. */
.acd-exam-bar{position:relative;max-width:420px;height:14px;margin:14px auto 18px;border-radius:999px;background:rgba(111,95,228,0.12);overflow:visible;}
.acd-exam-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--primary),#f472b6);}
.acd-exam-markline{position:absolute;top:-5px;bottom:-5px;width:3px;border-radius:2px;background:#b45309;}
.acd-cat-chip.is-grammar{color:#0d9463;background:rgba(16,185,129,0.12);}
.acd-cat-chip.is-vocab{color:var(--primary);background:rgba(111,95,228,0.10);}
.acd-cat-chip.is-conversation{color:#0369a1;background:rgba(14,165,233,0.12);}
.acd-cat-chip.is-culture{color:#be185d;background:rgba(236,72,153,0.10);}

/* 41/44.7: milestone test nodes — checkpoints and exams span the FULL grid width and read as
   "put your skills to the test" banners, not ordinary lesson tiles. Exams outrank checkpoints. */
.acd-lesson-card.is-testnode{grid-column:1/-1;gap:16px;position:relative;overflow:hidden;}
/* Content sits above the right-side decorative watermark (positioned children paint over it). */
.acd-lesson-card.is-testnode .acd-card-iconwrap,.acd-lesson-card.is-testnode .acd-card-main,.acd-lesson-card.is-testnode .acd-card-state,.acd-lesson-card.is-testnode .acd-card-review{position:relative;z-index:1;}
.acd-testnode-deco{position:absolute;top:50%;right:-6px;transform:translateY(-50%) rotate(-8deg);pointer-events:none;z-index:0;}
.acd-lesson-card.is-checkpoint .acd-testnode-deco{font-size:5.5rem;color:rgba(244,162,60,0.14);}
.acd-lesson-card.is-exam .acd-testnode-deco{font-size:7rem;right:-10px;color:rgba(217,119,6,0.17);}
.acd-lesson-card.is-checkpoint{border-color:rgba(244,162,60,0.6);background:linear-gradient(135deg,rgba(255,250,238,0.95),rgba(255,241,214,0.9));padding:18px 22px;}
.acd-lesson-card.is-checkpoint:hover{box-shadow:0 14px 32px rgba(244,162,60,0.24);}
.acd-lesson-card.is-checkpoint .acd-card-icon{color:#b45309;background:rgba(244,162,60,0.18);border-radius:50%;width:46px;height:46px;line-height:46px;font-size:1.25rem;}
.acd-lesson-card.is-checkpoint .acd-card-title{font-size:1.05rem;}
.acd-lesson-card.is-exam{border:2px solid rgba(217,119,6,0.6);background:linear-gradient(135deg,rgba(255,247,230,0.97),rgba(255,231,196,0.92));padding:22px 24px;box-shadow:0 12px 34px rgba(217,119,6,0.22);}
.acd-lesson-card.is-exam:hover{box-shadow:0 18px 42px rgba(217,119,6,0.32);}
.acd-lesson-card.is-exam .acd-card-icon{color:#92400e;background:rgba(217,119,6,0.2);border-radius:50%;width:54px;height:54px;line-height:54px;font-size:1.55rem;}
.acd-lesson-card.is-exam .acd-card-title{font-size:1.22rem;letter-spacing:0.01em;}
.acd-done-shaky{max-width:420px;margin:0 auto 16px;text-align:left;background:rgba(244,162,60,0.08);border:1px solid rgba(244,162,60,0.35);border-radius:14px;padding:12px 16px;}
.acd-done-shaky-cap{font-size:0.85rem;font-weight:800;color:#b45309;margin:0 0 8px;}
.acd-done-shaky-link{display:flex;align-items:center;gap:8px;color:var(--primary);font-weight:700;text-decoration:none;padding:4px 0;}
.acd-done-shaky-link span{color:var(--text-muted);font-weight:600;font-size:0.85rem;}
.acd-done-shaky-link:hover{color:var(--secondary);}

/* Resume bar (40B): shown once when a started lesson reopens at the saved step. */
.acd-resume-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;background:rgba(111,95,228,0.08);border:1px solid rgba(111,95,228,0.25);border-radius:12px;padding:8px 14px;margin-bottom:12px;font-size:0.85rem;font-weight:700;}
.acd-resume-bar i{color:var(--primary);margin-right:5px;}
.acd-resume-restart{border:none;background:none;color:var(--primary);font:inherit;font-size:0.8rem;font-weight:800;cursor:pointer;text-decoration:underline;}
.acd-resume-restart:hover{color:var(--secondary);}

/* Feedback bar: non-modal strip docked above the footer — the exercise stays visible above it. */
.acd-feedback{margin-top:16px;}
.acd-feedback.hidden{display:none;}
.acd-fb{border-radius:16px;padding:14px 16px;animation:acd-fb-in 0.3s ease;}
.acd-fb.is-good{background:rgba(16,185,129,0.10);border:1px solid rgba(16,185,129,0.35);}
.acd-fb.is-miss{background:rgba(244,162,60,0.10);border:1px solid rgba(244,162,60,0.40);}
.acd-fb-verdict{display:block;font-weight:800;margin-bottom:8px;}
.acd-fb.is-good .acd-fb-verdict{color:#0d9463;}
.acd-fb.is-miss .acd-fb-verdict{color:#b45309;}
.acd-fb-card{display:flex;gap:10px;align-items:flex-start;background:rgba(255,255,255,0.75);border-radius:12px;padding:10px 14px;}
.acd-fb-text{display:flex;flex-direction:column;min-width:0;}
.acd-fb-sentence{font-weight:700;font-size:1.05rem;}
.acd-fb-sentence strong{color:var(--primary);}
.acd-fb-gloss{color:var(--text-muted);font-size:0.88rem;}
.acd-fb-why{margin:8px 0 0;font-size:0.88rem;font-weight:600;color:var(--text-muted);}
.acd-fb-why i{color:var(--primary);margin-right:5px;}
@keyframes acd-fb-in{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}
@keyframes acd-shake{0%,100%{transform:translateX(0);}25%{transform:translateX(-5px);}50%{transform:translateX(5px);}75%{transform:translateX(-3px);}}

/* listen_first dialogues: lines blur until narrated (or "Show all" — the muted-phone escape). */
.acd-turn.is-blurred .acd-turn-bubble,.acd-turn.is-blurred .acd-turn-gloss{filter:blur(6px);user-select:none;}
.acd-dlg-showall{
    display:inline-flex;
    align-items:center;
    gap:7px;
    margin:0 0 10px;
    padding:4px 12px;
    border:1px solid rgba(111,95,228,0.3);
    border-radius:999px;
    background:rgba(255,255,255,0.8);
    color:var(--text-muted);
    font:inherit;
    font-size:0.78rem;
    font-weight:700;
    cursor:pointer;
}
.acd-dlg-showall:hover{color:var(--primary);border-color:var(--primary);}

/* Back sits left, Continue right; Back only appears past page 1 (justify handles the solo case
   because Continue keeps margin-left auto). */
.acd-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:16px;}
.acd-back{min-width:110px;justify-content:center;}
.acd-continue{min-width:170px;justify-content:center;margin-left:auto;}
.acd-continue:disabled{opacity:0.5;cursor:not-allowed;transform:none;box-shadow:none;}

/* --- completion + pro gate --- */
.acd-done{text-align:center;padding:26px 0 8px;}
.acd-done-medal{font-size:3rem;color:var(--secondary);margin-bottom:10px;}
.acd-done-title{margin:0 0 6px;text-align:center;}
.acd-done-score{color:var(--text-muted);margin:0 0 4px;}
.acd-done-xp{color:var(--primary);font-weight:800;margin:0 0 14px;}
.acd-done-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}
.acd-progate{text-align:center;padding:30px 10px;}
.acd-progate i{font-size:2.4rem;color:var(--secondary);margin-bottom:12px;}
.acd-progate p{max-width:440px;margin:0 auto 16px;color:var(--text-muted);line-height:1.6;}

/* 47: session loading skeleton — shimmer bars (holographic sheen) where the title + content land. */
.acd-skel{display:flex;flex-direction:column;gap:12px;padding:8px 0;}
.acd-skel-bar{display:block;height:16px;width:100%;border-radius:8px;background:linear-gradient(100deg,rgba(111,95,228,0.09) 30%,rgba(139,125,240,0.22) 50%,rgba(111,95,228,0.09) 70%);background-size:220% 100%;animation:acd-skel-sheen 1.25s ease-in-out infinite;}
.acd-skel-title{height:26px;width:60%;}
.acd-skel-sub{height:12px;width:40%;}
.acd-skel-head{height:22px;width:50%;margin-bottom:4px;}
.acd-skel-panel{display:block;height:120px;width:100%;border-radius:16px;background:linear-gradient(100deg,rgba(111,95,228,0.09) 30%,rgba(139,125,240,0.22) 50%,rgba(111,95,228,0.09) 70%);background-size:220% 100%;animation:acd-skel-sheen 1.25s ease-in-out infinite;}
@keyframes acd-skel-sheen{0%{background-position:200% 0;}100%{background-position:-100% 0;}}

/* Phase 90: curriculum flight deck. The player keeps its proven interaction model; the overview
   now reads as a course trajectory instead of an ornamental title followed by a card catalogue. */
.academy-page{max-width:1220px;margin:0 auto 70px;padding:0 24px;}
.acd-command-head{
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:16px;
    margin:2px 0 18px;
    padding:0 4px;
}
.acd-command-icon{display:grid;place-items:center;width:52px;height:52px;border:1px solid rgba(111,95,228,0.14);border-radius:16px;background:linear-gradient(145deg,rgba(255,255,255,0.84),rgba(242,238,255,0.72));color:var(--primary);font-size:1.35rem;box-shadow:0 10px 26px rgba(55,40,120,0.08);}
.acd-command-copy{display:flex;flex-direction:column;min-width:0;}
.acd-command-eyebrow,.acd-curriculum-head small{color:var(--primary);font-size:0.7rem;font-weight:800;letter-spacing:0.16em;text-transform:uppercase;}
.acd-command-copy h1{margin:1px 0 0;font-size:1.85rem;line-height:1.05;}
.acd-command-copy>span:last-child{margin-top:4px;color:var(--text-muted);font-size:0.9rem;}
.acd-command-copy strong{color:var(--text-color);}
.acd-command-telemetry{display:grid;grid-template-columns:auto auto;align-items:end;gap:4px 24px;min-width:280px;padding:11px 16px;border:1px solid rgba(111,95,228,0.12);border-radius:15px;background:rgba(255,255,255,0.48);}
.acd-command-telemetry>span:not(.acd-course-track){display:flex;flex-direction:column;}
.acd-command-telemetry small{color:var(--text-muted);font-size:0.62rem;font-weight:800;letter-spacing:0.09em;text-transform:uppercase;}
.acd-command-telemetry strong{font-size:0.84rem;}
.acd-course-track{grid-column:1/-1;height:3px;overflow:hidden;border-radius:999px;background:rgba(111,95,228,0.1);}
.acd-course-track>span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--primary),var(--secondary));transition:width 0.35s ease;}
.acd-next-wrap{margin:0 0 18px;}
.acd-next-card{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(260px,0.58fr);
    align-items:stretch;
    gap:0;
    padding:0;
    overflow:hidden;
    border:1px solid rgba(111,95,228,0.18);
    border-radius:24px;
    background:linear-gradient(118deg,rgba(247,245,255,0.93),rgba(255,250,248,0.9));
    box-shadow:0 18px 46px rgba(56,41,119,0.12);
    animation:none;
}
.acd-next-card::before{inset:10px;border:1px solid rgba(132,116,238,0.15);border-radius:16px;background:none;transform:none;animation:none;}
.acd-next-card:hover{transform:translateY(-1px);box-shadow:0 22px 52px rgba(56,41,119,0.16);}
.acd-next-command{position:relative;z-index:1;display:flex;align-items:center;gap:18px;min-width:0;padding:27px 30px;}
.acd-next-icon{display:grid;place-items:center;width:62px;height:62px;line-height:normal;border:1px solid rgba(111,95,228,0.16);border-radius:18px;background:rgba(255,255,255,0.68);font-size:1.55rem;box-shadow:0 10px 25px rgba(111,95,228,0.12);}
.acd-next-text{gap:5px;}
.acd-next-eyebrow{letter-spacing:0.13em;}
.acd-next-title{font-family:var(--font-display);font-size:1.55rem;line-height:1.05;}
.acd-next-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:0.82rem;}
.acd-next-progress{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;gap:10px;padding:24px 28px;border-left:1px solid rgba(111,95,228,0.11);background:rgba(245,242,255,0.45);}
.acd-next-progress-copy{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--text-muted);font-size:0.76rem;font-weight:700;}
.acd-next-progress-copy strong{color:var(--text-color);}
.acd-next-track{height:6px;overflow:hidden;border-radius:999px;background:rgba(111,95,228,0.1);}
.acd-next-track>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),var(--secondary));}
.acd-next-cta{align-self:flex-start;display:inline-flex;align-items:center;gap:7px;margin-top:2px;padding:9px 16px;border:1px solid rgba(111,95,228,0.16);border-radius:11px;background:rgba(111,95,228,0.09);box-shadow:none;color:var(--primary);font-size:0.86rem;}
.acd-next-card.is-caught-up{background:linear-gradient(118deg,rgba(246,255,251,0.88),rgba(251,249,255,0.9));box-shadow:0 16px 42px rgba(16,185,129,0.08);}
.acd-next-skeleton,.acd-groups-skeleton{display:flex;flex-direction:column;gap:10px;padding:28px;border:1px solid rgba(111,95,228,0.12);border-radius:22px;background:rgba(255,255,255,0.5);}
.acd-next-skeleton span,.acd-groups-skeleton span{height:12px;border-radius:999px;background:linear-gradient(100deg,rgba(111,95,228,0.07) 30%,rgba(139,125,240,0.18) 50%,rgba(111,95,228,0.07) 70%);background-size:220% 100%;animation:acd-skel-sheen 1.25s ease-in-out infinite;}
.acd-next-skeleton span:nth-child(1){width:18%;}
.acd-next-skeleton span:nth-child(2){width:43%;height:24px;}
.acd-next-skeleton span:nth-child(3){width:68%;}
.acd-curriculum{position:relative;padding:22px;border:1px solid rgba(111,95,228,0.14);border-radius:24px;background:linear-gradient(145deg,rgba(255,255,255,0.72),rgba(251,248,255,0.6));box-shadow:0 18px 46px rgba(56,41,119,0.08);}
.acd-curriculum-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 2px 17px;}
.acd-curriculum-head>span:first-child{display:flex;flex-direction:column;gap:2px;}
.acd-curriculum-head strong{font-family:var(--font-display);font-size:1.2rem;}
.acd-curriculum-head>span:last-child{color:var(--text-muted);font-size:0.78rem;font-weight:700;}
.acd-listtop{display:flex;align-items:stretch;justify-content:space-between;gap:14px;flex-wrap:nowrap;margin:0 0 20px;padding:0;}
.acd-levelpills{display:grid;grid-template-columns:repeat(6,minmax(96px,1fr));gap:8px;flex:1;}
.acd-levelpill{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:0;padding:10px 12px;border:1px solid rgba(111,95,228,0.12);border-radius:13px;background:rgba(255,255,255,0.48);box-shadow:none;text-align:left;}
.acd-levelpill:hover:not(:disabled){border-color:rgba(111,95,228,0.28);background:rgba(111,95,228,0.05);transform:none;}
.acd-levelpill.is-active{border-color:rgba(111,95,228,0.32);background:linear-gradient(145deg,rgba(111,95,228,0.14),rgba(255,255,255,0.72));box-shadow:inset 3px 0 0 var(--primary);color:var(--text-color);}
.acd-level-code{font-size:0.85rem;font-weight:800;}
.acd-level-name{overflow:hidden;max-width:100%;color:var(--text-muted);font-size:0.68rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap;}
.acd-level-count{color:var(--text-muted);font-size:0.61rem;font-weight:600;}
.acd-levelpill.is-active .acd-level-code{color:var(--primary);}
.acd-levelpill.is-active .acd-pill-check,.acd-levelpill.is-active .fa-circle-check{color:#34a779;}
.acd-filter-state{display:flex;align-items:center;gap:9px;padding-left:12px;border-left:1px solid rgba(111,95,228,0.1);color:var(--text-muted);font-size:0.72rem;white-space:nowrap;}
.acd-filter-state strong{color:var(--text-color);}
.acd-funnel-btn{width:38px;height:38px;border:1px solid rgba(111,95,228,0.15);border-radius:11px;background:rgba(255,255,255,0.55);}
.acd-funnel-btn.is-filtered{background:rgba(111,95,228,0.11);border-color:rgba(111,95,228,0.25);color:var(--primary);}
.acd-groups{display:flex;flex-direction:column;gap:12px;}
.acd-chapter{margin:0;border:1px solid rgba(111,95,228,0.11);border-radius:17px;background:rgba(255,255,255,0.4);}
.acd-chapter.is-current{border-color:rgba(111,95,228,0.24);box-shadow:0 8px 24px rgba(111,95,228,0.07);}
.acd-chapter-head{gap:14px;padding:14px 16px;}
.acd-chapter-index{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border:1px solid rgba(111,95,228,0.13);border-radius:11px;background:rgba(111,95,228,0.06);color:var(--primary);font-size:0.72rem;font-weight:800;}
.acd-chapter-copy{display:flex;flex:1;flex-direction:column;min-width:0;}
.acd-chapter-title{font-size:0.96rem;font-weight:700;}
.acd-chapter-detail{color:var(--text-muted);font-size:0.69rem;font-weight:600;}
.acd-chapter-track{width:min(340px,70%);height:3px;margin-top:6px;overflow:hidden;border-radius:999px;background:rgba(111,95,228,0.09);}
.acd-chapter-track>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),var(--secondary));}
.acd-chapter-body{padding:0 12px 12px;}
.acd-cards{gap:9px;}
.acd-lesson-card{gap:12px;min-height:86px;padding:13px 14px;border:1px solid rgba(111,95,228,0.1);border-radius:14px;background:rgba(255,255,255,0.55);box-shadow:none;}
.acd-lesson-card:hover{transform:none;border-color:rgba(111,95,228,0.25);background:rgba(255,255,255,0.82);box-shadow:0 9px 24px rgba(56,41,119,0.08);}
.acd-lesson-card.is-recommended{border-color:rgba(111,95,228,0.32);box-shadow:inset 3px 0 0 var(--primary);}
.acd-card-iconwrap{display:grid;place-items:center;width:43px;height:43px;flex:0 0 43px;border:1px solid rgba(111,95,228,0.11);border-radius:12px;background:rgba(111,95,228,0.05);}
.acd-card-icon{width:auto;font-size:1.05rem;}
.acd-card-num{position:absolute;top:-7px;right:-7px;min-width:19px;margin:0;padding:1px 5px;border:1px solid rgba(255,255,255,0.8);font-size:0.6rem;}
.acd-card-main{gap:4px;}
.acd-card-title{font-size:0.93rem;}
.acd-card-sub{overflow:hidden;font-size:0.72rem;text-overflow:ellipsis;white-space:nowrap;}
.acd-card-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:0.67rem;}
.acd-card-end{display:flex;align-items:center;gap:5px;flex:0 0 auto;}
.acd-card-status{color:var(--text-muted);font-size:0.66rem;font-weight:700;}
.acd-card-state.is-ready{color:rgba(111,95,228,0.24);font-size:0.8rem;}
.acd-card-review{padding:3px;font-size:0.86rem;}
.acd-final-sector{display:flex;flex-direction:column;gap:8px;margin-top:2px;}
.acd-final-label{padding-left:4px;color:#9a640b;font-size:0.66rem;font-weight:800;letter-spacing:0.12em;text-transform:uppercase;}
.acd-lesson-card.is-testnode{min-height:78px;gap:13px;padding:14px 16px;border-width:1px;}
.acd-lesson-card.is-checkpoint,.acd-lesson-card.is-exam{border-color:rgba(218,145,40,0.24);background:linear-gradient(135deg,rgba(255,252,244,0.8),rgba(255,246,232,0.65));box-shadow:none;}
.acd-lesson-card.is-checkpoint .acd-card-icon,.acd-lesson-card.is-exam .acd-card-icon{width:auto;height:auto;line-height:normal;border-radius:0;background:none;font-size:1.1rem;}
.acd-testnode-copy{margin-left:auto;color:#9a640b;font-size:0.66rem;font-weight:800;letter-spacing:0.08em;text-transform:uppercase;}
.acd-empty-state{display:flex;flex-direction:column;align-items:center;gap:5px;padding:34px;color:var(--text-muted);text-align:center;}
.acd-empty-state i{margin-bottom:5px;color:var(--primary);font-size:1.4rem;}
.acd-empty-state strong{color:var(--text-color);}
.acd-player{max-width:880px;margin:0 auto;}
.acd-player-eyebrow{display:block;margin-bottom:2px;color:var(--primary);font-size:0.62rem;font-weight:800;letter-spacing:0.13em;text-transform:uppercase;}

@media(max-width:980px){
    .acd-command-telemetry{min-width:240px;}
    .acd-levelpills{grid-template-columns:repeat(3,minmax(100px,1fr));}
    .acd-listtop{align-items:center;}
}
@media(max-width:640px){
    .academy-page{padding:0 14px;margin-bottom:46px;}
    .acd-command-head{grid-template-columns:auto minmax(0,1fr);gap:11px;margin-bottom:14px;padding:0;}
    .acd-command-icon{width:44px;height:44px;border-radius:13px;font-size:1.12rem;}
    .acd-command-copy h1{font-size:1.55rem;}
    .acd-command-copy>span:last-child{font-size:0.76rem;}
    .acd-command-telemetry{grid-column:1/-1;grid-template-columns:1fr 1fr;min-width:0;width:100%;padding:9px 12px;}
    .acd-next-card{grid-template-columns:1fr;border-radius:20px;}
    .acd-next-command{gap:13px;padding:21px 20px 15px;}
    .acd-next-icon{width:48px;height:48px;border-radius:14px;font-size:1.2rem;}
    .acd-next-title{font-size:1.22rem;}
    .acd-next-meta{font-size:0.72rem;}
    .acd-next-progress{padding:15px 20px 20px;border-top:1px solid rgba(111,95,228,0.1);border-left:none;background:transparent;}
    .acd-next-cta{align-self:stretch;justify-content:center;}
    .acd-curriculum{padding:16px 12px;border-radius:20px;}
    .acd-curriculum-head{margin:0 4px 13px;}
    .acd-curriculum-head strong{font-size:1.06rem;}
    .acd-curriculum-head>span:last-child{font-size:0.68rem;}
    .acd-listtop{flex-direction:column;align-items:stretch;gap:10px;}
    .acd-levelpills{display:flex;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;padding:1px 1px 5px;scrollbar-width:none;}
    .acd-levelpills::-webkit-scrollbar{display:none;}
    .acd-levelpill{min-width:104px;flex:0 0 104px;}
    .acd-filter-state{justify-content:space-between;padding:0;border-left:none;}
    .acd-chapter-head{gap:9px;padding:12px 10px;}
    .acd-chapter-index{width:34px;height:34px;flex-basis:34px;}
    .acd-chapter-meta{display:none;}
    .acd-chapter-track{width:92%;}
    .acd-chapter-body{padding:0 8px 8px;}
    .acd-cards{grid-template-columns:1fr;}
    .acd-lesson-card{min-height:80px;padding:11px;}
    .acd-card-sub{max-width:180px;}
    .acd-card-status{display:none;}
    .acd-testnode-copy{display:none;}
    .acd-player{padding-top:2px;}
    .acd-player-head{align-items:flex-start;}
    .acd-player-actions{gap:6px;}
    .acd-progress-label{display:none;}
    .acd-words{grid-template-columns:1fr;}
    .acd-title{font-size:1.9rem;}
    .acd-card{padding:18px 16px;}
    .acd-player-title{font-size:1.3rem !important;}
    .acd-turn{max-width:92%;}
    /* Paradigm tables restack into pill-pairs — the page must never scroll sideways. */
    .acd-table{max-width:100%;}
    .acd-table thead{display:none;}
    .acd-table tr{display:flex;align-items:center;flex-wrap:wrap;gap:2px 10px;padding:4px 0;}
    .acd-table td{border-top:none;padding:4px 6px;}
    .acd-table td:first-child::after{content:'→';color:var(--text-muted);margin-left:10px;font-weight:400;}
    .acd-table-say{margin-left:auto;}
    .acd-tf-opts{flex-direction:column;}
    .acd-cz-line{font-size:1.05rem;}
    /* Contrast stacks — side by side in ~180px columns is unreadable, and the tints carry the
       "two things" cue perfectly well vertically. */
    .acd-contrast{grid-template-columns:1fr;}
    .acd-ct-vs{justify-self:center;}
}
@media(prefers-reduced-motion:reduce){
    .acd-fb{animation:none;}
    .acd-check-opt.is-wrong,.acd-cz-slot.is-wrong,.acd-or-tray.is-shake{animation:none;}
    .acd-pill-fill,.acd-or-item{transition:none;}
    .acd-turn.is-pending{opacity:1;cursor:default;}
    .acd-turn.is-typing .acd-turn-bubble,.acd-sp-mic.is-listening{animation:none;}
    .acd-progressfill{transition:none;}
    .acd-next-card,.acd-next-card::before{animation:none;}
    .acd-course-track>span{transition:none;}
    .acd-next-skeleton span,.acd-groups-skeleton span{animation:none;}
    .acd-skel-bar,.acd-skel-panel{animation:none;}
    .acd-chapter-chevron{transition:none;}
}
/* 46 R5: print only the certificate — hide the rest of the app while it's open. */
@media print{
    body.cert-open > *:not(#acd-cert-overlay){display:none !important;}
    #acd-cert-overlay{position:static;padding:0;background:none;backdrop-filter:none;}
    .acd-cert-actions{display:none !important;}
    .acd-cert{box-shadow:none;max-width:100%;}
}
