:root {
  --aula-ink: #102a43;
  --aula-navy: #062b5f;
  --aula-teal: #008c95;
  --aula-gold: #e4ad55;
  --aula-mist: #edf7f5;
  --aula-cream: #fbfaf5;
  --aula-line: rgba(16, 42, 67, 0.14);
  --aula-shadow: 0 24px 70px rgba(6, 43, 95, 0.13);
}
.skip-link { position:fixed; left:16px; top:-80px; z-index:10000; padding:12px 18px; background:#fff; color:var(--aula-navy); border-radius:8px; }
.skip-link:focus { top:16px; }
.aula-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.aula-page { background:var(--aula-cream); }
body[data-aula-state="loading"] .aula-hero,
body[data-aula-state="loading"] .aula-dashboard-section { display:none; }
body:not([data-aula-state="loading"]) .aula-loading-state { display:none; }
.aula-loading-state { min-height:calc(100vh - 84px); padding:80px 0; display:grid; place-items:center; color:#fff; background:radial-gradient(circle at 50% 28%,rgba(0,140,149,.22),transparent 34%),linear-gradient(135deg,#041d3f,#062b5f 58%,#075d66); }
.aula-loading-card { width:min(520px,calc(100% - 40px)); padding:34px; border:1px solid rgba(255,255,255,.16); border-radius:24px; background:rgba(255,255,255,.08); box-shadow:0 26px 70px rgba(0,0,0,.18); text-align:center; }
.aula-loading-card h1 { margin:0; font-family:var(--serif); font-size:clamp(2.2rem,5vw,3.8rem); line-height:1; }
.aula-loading-card p:last-child { margin:16px 0 0; color:rgba(255,255,255,.72); }
.aula-hero { padding:92px 0 80px; color:#fff; background:radial-gradient(circle at 82% 20%,rgba(118,208,207,.18),transparent 27%),linear-gradient(135deg,#041d3f,#062b5f 56%,#075d66); }
.aula-hero-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(310px,.72fr); gap:72px; align-items:center; }
.aula-eyebrow,.card-kicker { margin:0 0 12px; color:var(--aula-gold); font-size:.78rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.aula-hero h1 { max-width:760px; margin:0; font-family:var(--serif); font-size:clamp(2.4rem,4.4vw,4.2rem); font-weight:600; line-height:.98; }
.aula-lead { max-width:720px; margin:28px 0 0; color:rgba(255,255,255,.78); font-size:1.1rem; }
.aula-hero-actions,.card-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.aula-trust { margin:18px 0 0; color:rgba(255,255,255,.62); font-size:.82rem; }
.aula-hero-panel { padding:34px; border:1px solid rgba(255,255,255,.16); border-radius:24px; background:rgba(255,255,255,.08); box-shadow:0 30px 80px rgba(0,0,0,.18); backdrop-filter:blur(18px); }
.aula-hero-panel>span { color:var(--aula-gold); font-size:.76rem; font-weight:800; text-transform:uppercase; }
.aula-hero-panel h2 { margin:14px 0 10px; font-family:var(--serif); font-size:2.2rem; line-height:1.08; }
.aula-hero-panel p { color:rgba(255,255,255,.75); }
.aula-hero-panel ul { margin:24px 0 0; padding:20px 0 0; border-top:1px solid rgba(255,255,255,.14); list-style:none; }
.aula-hero-panel li { margin:9px 0; color:rgba(255,255,255,.82); }
.aula-hero-panel li::before { margin-right:10px; color:var(--aula-gold); content:"✓"; }
.aula-dashboard-section { padding:84px 0 110px; }
body[data-aula-state="member"] .aula-dashboard-section { padding-top:46px; }
.aula-system-banner { margin-bottom:24px; padding:15px 18px; border:1px solid #d7b66e; border-radius:12px; background:#fff8df; color:#5d4617; font-size:.88rem; }
.aula-guest-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.aula-principle-card { min-height:260px; padding:30px; border:1px solid var(--aula-line); border-radius:20px; background:#fff; box-shadow:0 18px 45px rgba(6,43,95,.06); }
.aula-principle-card>span { color:var(--aula-teal); font-weight:850; }
.aula-principle-card h2 { margin:60px 0 12px; font-family:var(--serif); font-size:2rem; }
.aula-principle-card p { color:#5d7080; }
.member-heading { display:flex; justify-content:space-between; gap:30px; align-items:end; margin-bottom:34px; }
.member-heading h2 { margin:8px 0; font-family:var(--serif); font-size:clamp(1.9rem,3vw,2.8rem); font-weight:600; }
.member-heading h2:focus-visible { outline:3px solid rgba(0,140,149,.35); outline-offset:8px; border-radius:8px; }
.member-heading p { margin:0; color:#617383; }
.aula-text-button { padding:0; border:0; color:var(--aula-teal); background:transparent; font-weight:800; text-decoration:underline; text-underline-offset:5px; cursor:pointer; }
.dashboard-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr); gap:22px; }
.dashboard-courses { display:grid; gap:22px; }
.continue-card,.weekly-card { padding:34px; border:1px solid var(--aula-line); border-radius:22px; background:#fff; box-shadow:var(--aula-shadow); }
.continue-card h3 { margin:0; font-family:var(--serif); font-size:clamp(1.65rem,2.6vw,2.5rem); line-height:1.05; }
.continue-card>div>p:not(.card-kicker) { max-width:650px; color:#607383; }
.progress-block { margin-top:32px; }
.progress-meta { display:flex; justify-content:space-between; margin-bottom:9px; font-size:.85rem; }
.progress-track { height:10px; border-radius:999px; background:#dfeceb; overflow:hidden; }
.progress-track span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--aula-teal),#4ebebd); transition:width .35s ease; }
.enrollment-status { margin:18px 0 0; padding:14px 16px; border:1px solid rgba(196,132,45,.28); border-radius:12px; color:#5f431e; background:#fff6e7; font-size:.9rem; }
.wellbeing-dashboard-card { border-color:rgba(18,61,81,.24); background:linear-gradient(145deg,#fff,#f1f7f3); }
.wellbeing-dashboard-card .card-kicker { color:#9a4b35; }
.wellbeing-dashboard-card .progress-track span { background:linear-gradient(90deg,#006d75,#68a58f); }
.local-course-note { margin:20px 0 0; padding:14px 16px; border-left:4px solid #b75f43; border-radius:0 10px 10px 0; color:#526a74; background:#fff7ed; font-size:.82rem; line-height:1.5; }
.weekly-card dl { margin:0; }
.weekly-card dl div { padding:19px 0; border-bottom:1px solid var(--aula-line); }
.weekly-card dt { color:#627482; font-size:.76rem; font-weight:800; text-transform:uppercase; }
.weekly-card dd { margin:5px 0 0; color:var(--aula-ink); font-family:var(--serif); font-size:1.25rem; }
.weekly-card .aula-text-button { margin-top:24px; }
.button-quiet { color:var(--aula-navy); background:transparent; border:1px solid rgba(6,43,95,.22); }
.aula-dialog { width:min(520px,calc(100% - 28px)); max-height:90vh; padding:0; border:0; border-radius:24px; color:var(--aula-ink); box-shadow:0 30px 100px rgba(0,0,0,.32); }
.aula-dialog::backdrop { background:rgba(4,29,63,.72); backdrop-filter:blur(5px); }
.dialog-close-row { display:flex; justify-content:end; margin:0; padding:14px 16px 0; }
.dialog-close-row button { width:38px; height:38px; border:0; border-radius:50%; background:#eff5f5; color:var(--aula-navy); font-size:1.5rem; cursor:pointer; }
.dialog-body { padding:8px 34px 36px; }
.dialog-body h2 { margin:0; font-family:var(--serif); font-size:2.3rem; }
.dialog-body>p:not(.aula-eyebrow) { color:#657682; }
.auth-tabs { display:grid; grid-template-columns:1fr 1fr; margin:25px 0 18px; padding:4px; border-radius:12px; background:#edf3f3; }
.auth-tabs button { padding:10px; border:0; border-radius:9px; background:transparent; color:#5a6c79; font-weight:800; cursor:pointer; }
.auth-tabs button[aria-selected="true"] { color:var(--aula-navy); background:#fff; box-shadow:0 5px 15px rgba(6,43,95,.08); }
#aula-main label:not(.consent-row):not(.setting-row) { display:grid; gap:7px; margin:15px 0; font-size:.82rem; font-weight:800; }
#aula-main input[type="email"],#aula-main input[type="password"],#aula-main input[type="text"],#aula-main input:not([type]) { width:100%; min-height:48px; padding:10px 12px; border:1px solid #c9d8da; border-radius:10px; background:#fff; font:inherit; }
.consent-row,.setting-row { display:flex; gap:12px; align-items:flex-start; margin:18px 0; font-size:.83rem; color:#536875; }
.setting-row { justify-content:space-between; align-items:center; padding:14px 0; border-bottom:1px solid var(--aula-line); font-size:1rem; font-weight:700; }
.form-status { min-height:24px; margin:10px 0; font-size:.85rem; }
.form-status.error { color:#a12323; }
.form-status.success { color:#176742; }
.button-full { width:100%; justify-content:center; }
.reset-password-button { display:block; margin:18px auto 0; }
.consent-row a { color:var(--aula-teal); font-weight:800; }
html.aula-large-text { font-size:112.5%; }
html.aula-high-contrast { filter:contrast(1.14); }
html.aula-reduced-motion *,html.aula-reduced-motion *::before,html.aula-reduced-motion *::after { scroll-behavior:auto!important; animation:none!important; transition:none!important; }

.course-shell-page { min-height:100vh; background:#f3f7f6; }
.course-topbar { position:sticky; top:0; z-index:80; min-height:72px; display:flex; align-items:center; color:#fff; background:rgba(4,29,63,.97); border-bottom:1px solid rgba(255,255,255,.12); }
.course-topbar-inner { width:min(1440px,calc(100% - 36px)); margin:auto; display:grid; grid-template-columns:auto 1fr auto; gap:22px; align-items:center; }
.course-brand { display:flex; gap:12px; align-items:center; color:#fff; text-decoration:none; }
.course-brand img { width:42px; height:42px; object-fit:contain; border-radius:8px; background:#fff; padding:4px; }
.course-brand span { font-weight:800; }
.course-title-mini { min-width:0; text-align:center; }
.course-title-mini strong { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.course-title-mini span { color:rgba(255,255,255,.6); font-size:.76rem; }
.course-exit { color:#fff; font-size:.82rem; font-weight:800; text-decoration:none; }
.course-layout { width:min(1440px,100%); min-height:calc(100vh - 72px); margin:auto; display:grid; grid-template-columns:340px minmax(0,1fr); }
.course-sidebar { position:sticky; top:72px; height:calc(100vh - 72px); padding:28px 22px; border-right:1px solid var(--aula-line); background:#fff; overflow:auto; }
.course-progress-card { padding:20px; border-radius:16px; color:#fff; background:linear-gradient(135deg,var(--aula-navy),#087078); }
.course-progress-card p { margin:0; color:rgba(255,255,255,.66); font-size:.76rem; text-transform:uppercase; }
.course-progress-card strong { display:block; margin:5px 0 12px; font-family:var(--serif); font-size:1.6rem; }
.module-nav { margin-top:22px; }
.module-nav button { width:100%; padding:14px 12px; border:0; border-bottom:1px solid var(--aula-line); display:grid; grid-template-columns:34px 1fr auto; gap:10px; align-items:center; text-align:left; color:#4d6270; background:transparent; cursor:pointer; }
.module-nav button:hover,.module-nav button[aria-current="step"] { color:var(--aula-navy); background:#edf7f5; }
.module-number { width:28px; height:28px; border-radius:50%; display:grid; place-items:center; background:#e7f0ef; font-size:.72rem; font-weight:850; }
.module-nav button[aria-current="step"] .module-number { color:#fff; background:var(--aula-teal); }
.module-nav small { display:block; color:#71818b; }
.course-main { min-width:0; padding:50px clamp(24px,6vw,88px) 100px; }
.lesson-frame { min-width:0; max-width:920px; margin:auto; }
.lesson-context { display:flex; justify-content:space-between; gap:20px; margin-bottom:20px; color:#687c88; font-size:.8rem; font-weight:800; text-transform:uppercase; }
.lesson-frame h1 { margin:0; font-family:var(--serif); font-size:clamp(2rem,3.6vw,3.4rem); font-weight:600; line-height:1.02; }
.lesson-objective { margin:22px 0 34px; padding-left:20px; border-left:4px solid var(--aula-teal); color:#526a78; font-size:1.06rem; }
.student-guide { margin:0 0 34px; padding:24px; border:1px solid #c8d9d7; border-radius:18px; background:#f8fbfa; box-shadow:0 12px 35px rgba(23,59,77,.06); }
.student-guide-heading { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; }
.student-guide-eyebrow { margin:0 0 5px!important; color:#6f4d27!important; font-size:.74rem!important; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.student-guide h2,.activity-orientation h2 { margin:0; color:var(--aula-navy); font-family:var(--serif); font-size:1.45rem; }
.experience-type { flex:0 0 auto; padding:7px 11px; border-radius:999px; color:#173b4d; background:#e3efec; font-size:.74rem; font-weight:850; }
.student-guide--private .experience-type { background:#f2e9d7; }
.student-guide--evaluated .experience-type { color:#fff; background:#8d4d39; }
.student-guide-grid { margin:20px 0 0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 24px; }
.student-guide-grid>div { padding-top:12px; border-top:1px solid rgba(23,59,77,.12); }
.student-guide-grid dt { color:#173b4d; font-size:.76rem; font-weight:850; letter-spacing:.04em; text-transform:uppercase; }
.student-guide-grid dd { margin:5px 0 0; color:#4b6571; font-size:.9rem; line-height:1.5; }
.student-guide-grid .student-guide-keep { grid-column:1/-1; }
.activity-orientation { margin:34px 0 14px; padding:18px 20px; border-left:5px solid #276f73; border-radius:0 14px 14px 0; background:#edf6f3; }
.activity-orientation--private { border-left-color:#b58a43; background:#faf5e9; }
.activity-orientation--evaluated { border-left-color:#9a4b35; background:#fff3ed; }
.activity-orientation h2 { font-size:1.28rem; }
.activity-orientation p { margin:8px 0 0; color:#49636f; font-size:.9rem; }
.lesson-card { min-width:0; margin:24px 0; padding:28px; border:1px solid var(--aula-line); border-radius:20px; background:#fff; box-shadow:0 15px 45px rgba(6,43,95,.06); }
.lesson-card h2 { margin:0 0 14px; font-family:var(--serif); font-size:1.8rem; }
.lesson-card p:last-child { margin-bottom:0; }
.scenario-card { color:#fff; background:linear-gradient(145deg,#062b5f,#075d66); }
.scenario-card p { color:rgba(255,255,255,.82); }
.lesson-figure { margin:28px 0; overflow:hidden; border:1px solid var(--aula-line); border-radius:20px; background:#fff; box-shadow:0 15px 45px rgba(6,43,95,.06); }
.lesson-figure picture { display:block; aspect-ratio:16/9; overflow:hidden; background:#dfe9e8; }
.lesson-figure img { display:block; width:100%; height:100%; object-fit:cover; }
.lesson-figure figcaption { padding:14px 18px; color:#526a78; font-size:.86rem; line-height:1.5; }
.lesson-figure--portrait picture { aspect-ratio:auto; display:flex; justify-content:center; align-items:center; padding:18px; background:#f5f0e6; }
.lesson-figure--portrait img { width:auto; max-width:100%; height:auto; max-height:820px; object-fit:contain; }
.lesson-figure--contain picture { aspect-ratio:auto; padding:18px; background:#f5f0e6; }
.lesson-figure--contain img { width:100%; height:auto; object-fit:contain; }
.study-card>h2 { margin-bottom:4px; }
.study-section { padding:26px 0; border-top:1px solid var(--aula-line); }
.study-section:first-of-type { margin-top:18px; }
.study-section:last-child { padding-bottom:0; }
.study-section h3 { margin:0 0 12px; color:var(--aula-navy); font-family:var(--serif); font-size:1.45rem; line-height:1.2; }
.study-section p { max-width:76ch; color:#3f5868; line-height:1.72; }
.study-steps { margin:18px 0 0; padding:18px 22px 18px 42px; border-left:4px solid var(--aula-teal); border-radius:0 12px 12px 0; color:#3f5868; background:#edf7f5; }
.study-steps li { margin:8px 0; }
.guiding-questions { margin-top:18px; padding:18px 20px; border-left:4px solid var(--aula-teal); border-radius:0 12px 12px 0; background:#edf7f5; }
.guiding-questions h4 { margin:0; color:var(--aula-navy); font-size:.98rem; }
.guiding-questions ul { margin:10px 0 0; padding-left:22px; }
.guiding-questions li { margin:7px 0; }
.answer-contrast { margin-top:20px; display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.answer-contrast>div { padding:18px; border:1px solid var(--aula-line); border-radius:14px; }
.answer-contrast h4 { margin:0 0 8px; font-size:.9rem; }
.answer-contrast p { margin:0; font-style:italic; }
.contrast-insufficient { border-left:5px solid #b26a17!important; background:#fff8e9; }
.contrast-adequate { border-left:5px solid #087078!important; background:#eef9f6; }
.worked-example { border-color:rgba(228,173,85,.48); background:#fffdf5; }
.worked-example p { max-width:76ch; }
.comparison-card { padding-bottom:24px; }
.responsive-table { width:100%; max-width:100%; margin-top:20px; overflow-x:auto; border:1px solid var(--aula-line); border-radius:14px; }
.responsive-table table { width:100%; min-width:920px; border-collapse:collapse; font-size:.82rem; }
.responsive-table caption { padding:14px; color:#526a78; background:#f3f7f6; text-align:left; font-size:.78rem; }
.responsive-table th,.responsive-table td { padding:13px 12px; border-top:1px solid var(--aula-line); vertical-align:top; text-align:left; line-height:1.45; }
.responsive-table thead th { border-top:0; color:#fff; background:var(--aula-navy); }
.responsive-table tbody th { width:160px; color:var(--aula-navy); background:#f4f8f7; }
.key-list { margin:0; padding:0; list-style:none; }
.key-list li { padding:12px 0 12px 30px; border-bottom:1px solid var(--aula-line); position:relative; }
.key-list li::before { position:absolute; left:0; color:var(--aula-teal); font-weight:900; content:"✓"; }
.activity-card { border-color:rgba(0,140,149,.28); background:#f7fdfc; }
.personal-choice-card { border-color:rgba(181,138,67,.4); background:#fffdf7; }
.personal-choice-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
.activity-instructions { margin:18px 0; padding:18px 20px; border:1px solid #c9e1df; border-radius:14px; background:#fff; }
.activity-instructions h3 { margin:0; color:var(--aula-navy); font-size:1rem; }
.activity-instructions ol { margin:12px 0 0; padding-left:23px; }
.activity-instructions li { margin:8px 0; padding-left:4px; }
.activity-start { margin-top:4px; }
.activity-options { display:grid; gap:10px; margin-top:18px; }
.activity-option { width:100%; padding:15px; border:1px solid #c7dfe0; border-radius:12px; display:flex; gap:12px; align-items:flex-start; color:var(--aula-ink); background:#fff; text-align:left; cursor:pointer; }
.activity-option:hover,.activity-option:focus-visible { border-color:var(--aula-teal); }
.activity-option.is-selected { border-color:var(--aula-teal); background:#e7f7f5; }
.option-letter { width:28px; height:28px; flex:0 0 28px; border-radius:50%; display:grid; place-items:center; color:var(--aula-navy); background:#e7f0ef; font-size:.78rem; font-weight:850; }
.activity-option.is-selected .option-letter { color:#fff; background:var(--aula-teal); }
.attempt-count { color:#607482; font-size:.8rem; }
.activity-feedback { margin-top:16px; padding:18px; border:1px solid var(--aula-line); border-radius:12px; background:#fff; }
.activity-feedback.is-correct { border-left:6px solid #087078; background:#eef9f6; }
.activity-feedback.needs-review { border-left:6px solid #b26a17; background:#fff8e9; }
.feedback-heading { display:flex; gap:8px; align-items:center; margin-top:0; color:var(--aula-navy); font-size:1.05rem; }
.review-pointer { padding-top:12px; border-top:1px solid rgba(16,42,67,.12); }
.activity-feedback-actions,.activity-primary-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.privacy-warning { margin:18px 0; padding:15px 17px; border:1px solid #d6b66e; border-radius:12px; color:#59431c; background:#fff8df; }
.reflection-label { display:block; margin:20px 0 8px; color:var(--aula-navy); font-weight:800; }
.reflection-input { width:100%; min-height:240px; padding:16px; border:1px solid #b7cdd0; border-radius:12px; background:#fff; font:inherit; line-height:1.6; resize:vertical; }
.word-meta { display:flex; justify-content:space-between; gap:16px; margin-top:8px; color:#607482; font-size:.82rem; }
.word-counter { white-space:nowrap; color:var(--aula-navy); }
.word-counter.is-ready::before { margin-right:5px; content:"✓"; }
.word-counter.is-over { color:#8a4a08; }
.activity-save-status { min-height:24px; margin:12px 0 0; color:#365969; font-size:.86rem; }
.activity-save-status.is-error { color:#8f2d2d; font-weight:700; }
.self-review,.model-answer-control { margin-top:22px; padding-top:20px; border-top:1px solid var(--aula-line); }
.self-review fieldset { margin:16px 0 0; padding:20px; border:1px solid #c9dedd; border-radius:14px; background:#fff; }
.self-review legend { padding:0 8px; color:var(--aula-navy); font-family:var(--serif); font-size:1.25rem; font-weight:700; }
.self-review fieldset>p { color:#526a78; font-size:.86rem; }
.criterion-row { padding:13px 0; border-top:1px solid var(--aula-line); display:flex; gap:12px; align-items:flex-start; cursor:pointer; }
.criterion-row input { width:20px; height:20px; flex:0 0 20px; margin-top:2px; accent-color:var(--aula-teal); }
.criterion-row small { display:block; margin-top:4px; color:#607482; font-weight:400; line-height:1.45; }
.model-answer { margin-top:16px; padding:22px; border:1px solid rgba(228,173,85,.5); border-radius:14px; background:#fffdf5; }
.model-answer h3 { margin:0 0 12px; color:var(--aula-navy); font-family:var(--serif); font-size:1.35rem; }
.model-answer p { color:#3f5868; line-height:1.65; }
.model-answer-note { padding-top:12px; border-top:1px solid rgba(16,42,67,.12); font-size:.85rem; }
.confidence-row { display:grid; grid-template-columns:auto 1fr auto; gap:12px; align-items:center; margin:18px 0; color:#607482; font-size:.78rem; }
.lesson-actions { display:flex; justify-content:space-between; gap:14px; margin-top:34px; }
.completion-requirements { margin-top:28px; padding:16px 18px; border:1px solid #d4e2e1; border-radius:12px; color:#3f5868; background:#fff; }
.completion-requirements:empty { display:none; }
.completion-requirements strong { color:var(--aula-navy); }
.completion-requirements>strong { display:block; margin-bottom:8px; font-family:var(--serif); font-size:1.25rem; }
.completion-requirements p { margin:6px 0; }
.completion-ready { color:#23624f; font-weight:750; }
.completion-requirements ul { margin:8px 0 0; padding-left:20px; }
.completion-requirements li { margin:5px 0; }
.synthesis-card { border-color:rgba(0,140,149,.24); background:linear-gradient(145deg,#f4fbfa,#fff); }
.references-panel { margin-top:34px; padding-top:22px; border-top:1px solid var(--aula-line); }
.references-panel summary { color:var(--aula-teal); font-weight:800; cursor:pointer; }
.references-panel li { margin:12px 0; color:#617481; font-size:.82rem; }
.references-panel a { display:inline-block; margin-left:8px; color:var(--aula-navy); font-weight:800; text-underline-offset:3px; }
.lesson-frame button:focus-visible,.lesson-frame a:focus-visible,.lesson-frame summary:focus-visible,.lesson-frame textarea:focus-visible,.lesson-frame input:focus-visible,.responsive-table:focus-visible { outline:3px solid #e4ad55; outline-offset:3px; }
.lesson-frame button:disabled { cursor:not-allowed; opacity:.58; }
.mobile-course-menu { display:none; }

.course-progress-card small { display:block; margin-top:12px; color:rgba(255,255,255,.72); font-size:.72rem; line-height:1.45; }
.course-wellbeing {
  --aula-navy:#173b4d;
  --aula-teal:#276f73;
  --aula-gold:#efb46f;
  --aula-mist:#eef4ec;
  --aula-cream:#fbf7ef;
  --aula-line:rgba(23,59,77,.16);
  --aula-shadow:0 24px 70px rgba(23,59,77,.12);
  --wellbeing-sage:#6f8a64;
  --wellbeing-turquoise:#49b7bc;
  --wellbeing-terracotta:#d97745;
  background:#fbf7ef;
}
.course-wellbeing .course-topbar { background:rgba(23,59,77,.98); }
.course-wellbeing .course-progress-card { background:linear-gradient(145deg,#173b4d,#416e67); }
.course-wellbeing .scenario-card { background:linear-gradient(145deg,#173b4d,#315d66); }
.course-wellbeing .card-kicker { color:#9a4b35; }
.course-wellbeing .scenario-card .card-kicker,
.course-wellbeing .video-lesson-card .card-kicker { color:#ffd29e; }
.course-wellbeing .lesson-frame { max-width:880px; }
.course-wellbeing .lesson-frame p,
.course-wellbeing .lesson-frame li { max-width:70ch; }
.course-wellbeing .participation-agreement { margin:-14px 0 34px; padding:12px 16px; border-left:3px solid #6f8a64; color:#526a74; background:#f3f0e8; font-size:.88rem; line-height:1.55; }
.course-wellbeing .participation-agreement--after-opening { margin:-18px 0 34px; }
.course-wellbeing .study-card,
.course-wellbeing .worked-example,
.course-wellbeing .observation-card,
.course-wellbeing .retrieval-card,
.course-wellbeing .synthesis-card,
.course-wellbeing .lesson-resources { margin:38px 0; padding:34px 0; border-width:1px 0 0; border-radius:0; background:transparent; box-shadow:none; }
.course-wellbeing .observation-card { border-left:0; }
.course-wellbeing .worked-example { border-color:rgba(183,95,67,.28); }
.course-wellbeing .retrieval-card { border-color:rgba(111,138,100,.38); }
.course-wellbeing .synthesis-card { border-color:rgba(23,59,77,.22); }
.course-wellbeing .references-panel { margin-top:34px; }
.initial-decision-card { border-color:rgba(183,95,67,.34); background:linear-gradient(145deg,#fffaf5,#fff); }
.video-locked-card { overflow:hidden; border:1px solid rgba(18,61,81,.22); background:#f5f0e6; }
.video-poster-preview { margin:18px 0 0; overflow:hidden; border-radius:14px; aspect-ratio:16/9; background:#173b4d; }
.video-poster-preview img { width:100%; height:100%; display:block; object-fit:cover; }
.video-preview-copy { margin:14px 0 0; color:#415d67; font-weight:800; }
.video-lesson-card { color:#fff; border-color:#173b4d; background:linear-gradient(145deg,#173b4d,#315d66); }
.video-lesson-card h2 { color:#fff; }
.video-before-block { margin:18px 0; padding:18px; border:1px solid rgba(255,255,255,.24); border-radius:14px; background:rgba(255,255,255,.08); }
.video-before-block h3 { margin:0 0 8px; color:#fff; font-family:var(--serif); font-size:1.35rem; }
.video-before-block p { color:rgba(255,255,255,.86); }
.video-before-block ol { margin:12px 0; padding-left:24px; color:rgba(255,255,255,.9); }
.video-before-block li { margin:8px 0; }
.video-accessibility-note { padding-top:12px; border-top:1px solid rgba(255,255,255,.18); font-size:.86rem; }
.video-notice { padding:16px 18px; border-left:5px solid #efb46f; border-radius:0 10px 10px 0; color:#173746!important; background:#fff4df; }
.video-player-frame { width:100%; max-width:900px; margin:16px auto 0; overflow:hidden; position:relative; border-radius:14px; aspect-ratio:16/9; background:#071d25; }
.video-lesson-card video { width:100%; height:100%; max-height:min(65vh,506px); border-radius:14px; display:block; object-fit:contain; background:#071d25; }
.video-play-overlay { position:absolute; inset:0; z-index:2; width:100%; min-height:100%; padding:24px; border:0; display:flex; justify-content:center; gap:16px; align-items:center; color:#fff; background:linear-gradient(180deg,rgba(7,29,37,.18),rgba(7,29,37,.78)); cursor:pointer; }
.video-play-overlay:hover { background:linear-gradient(180deg,rgba(7,29,37,.08),rgba(7,29,37,.68)); }
.video-play-overlay[hidden] { display:none; }
.video-play-overlay>span:last-child { display:grid; gap:3px; text-align:left; }
.video-play-overlay strong { font-size:1.05rem; }
.video-play-overlay small { color:rgba(255,255,255,.82); font-size:.78rem; }
.video-play-icon { width:58px; height:58px; flex:0 0 58px; border:2px solid rgba(255,255,255,.82); border-radius:50%; display:grid; place-items:center; padding-left:4px; background:rgba(23,59,77,.76); font-size:1.4rem; }
.video-player-frame.has-error { outline:3px solid #efb46f; outline-offset:2px; }
.video-player-frame.has-error video { opacity:.35; }
.video-controls-extra { margin-top:12px; display:flex; flex-wrap:wrap; gap:10px; align-items:center; color:rgba(255,255,255,.82); font-size:.84rem; }
.video-controls-extra select { min-height:40px; padding:6px 34px 6px 10px; border:1px solid rgba(255,255,255,.32); border-radius:8px; color:#173b4d; background:#fff; font:inherit; }
.video-controls-extra span { margin-left:auto; }
.video-description { margin-top:16px; padding:16px 18px; border:1px solid rgba(255,255,255,.22); border-radius:12px; background:rgba(255,255,255,.06); }
.video-description summary { color:#fff; font-weight:800; cursor:pointer; }
.video-description p { color:rgba(255,255,255,.82); }
.video-clarification { margin:16px 0; padding:16px 18px; border-radius:12px; color:#173746!important; background:#eaf4ef; }
.video-load-error { margin:14px 0 0; padding:14px 16px; border-left:5px solid #d97745; border-radius:0 10px 10px 0; color:#6a2d1a!important; background:#fff1e8; }
.video-load-error a { color:#173b4d; font-weight:800; }
.video-load-error p { color:#6a2d1a!important; }
.video-error-actions { margin-top:12px; display:flex; flex-wrap:wrap; gap:9px; }
.video-load-error .button-quiet { color:#173b4d; border-color:rgba(23,59,77,.32); background:#fff; }
.video-lesson-card .resource-link { color:#fff; border-color:rgba(255,255,255,.45); }
.video-access-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.video-followup-note { margin:18px 0 34px; color:#526a74; font-size:.9rem; }
.observation-card { border-left:7px solid #b75f43; background:#fffaf5; }
.observation-card li { margin:10px 0; color:#365460; }
.corrected-infographic { border-color:rgba(73,183,188,.45); background:linear-gradient(145deg,#f3faf6,#fff); }
.infographic-stat { margin:20px 0; padding:20px; display:flex; gap:18px; align-items:center; border-radius:16px; color:#fff; background:#173b4d; }
.infographic-stat>strong { min-width:110px; color:#efb46f; font-family:var(--serif); font-size:3.6rem; line-height:1; }
.infographic-stat p { margin:0; color:#fff; font-weight:800; }
.infographic-stat span { color:rgba(255,255,255,.72); font-size:.86rem; }
.infographic-disclaimer { padding:13px 15px; border-left:4px solid #b75f43; color:#5b473e; background:#fff5e9; font-size:.88rem; }
.infographic-concepts { margin-top:18px; display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.infographic-concepts section { padding:17px; border:1px solid var(--aula-line); border-radius:12px; background:#fff; }
.infographic-concepts h3 { margin:0 0 8px; color:#173b4d; font-family:var(--serif); font-size:1.2rem; }
.infographic-concepts p { margin:0; color:#526a74; font-size:.88rem; line-height:1.55; }
.spaced-practice-card { background:#eef4f1; }
.spaced-practice-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.spaced-practice-grid article { padding:18px; border:1px solid var(--aula-line); border-radius:13px; background:#fff; }
.spaced-practice-grid strong { color:#9a4b35; font-size:.8rem; text-transform:uppercase; }
.spaced-practice-grid h3 { margin:7px 0; color:#173b4d; font-size:1.06rem; }
.spaced-practice-grid p { color:#526a74; font-size:.86rem; }
.resource-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.resource-download { min-height:74px; padding:16px; border:1px solid var(--aula-line); border-radius:12px; display:flex; gap:12px; align-items:center; color:#173b4d; background:#fff; text-decoration:none; }
.resource-download:hover { border-color:#006d75; background:#eef8f4; }
.resource-download span { width:34px; height:34px; flex:0 0 34px; border-radius:50%; display:grid; place-items:center; color:#fff; background:#006d75; font-size:1.2rem; }
.resource-download strong { line-height:1.25; }

.aula-featured-course { margin-top:48px; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr); overflow:hidden; border:1px solid var(--aula-line); border-radius:28px; background:#fff; box-shadow:var(--aula-shadow); }
.aula-featured-course-copy { padding:clamp(30px,5vw,58px); }
.aula-featured-course h3 { margin:0; font-family:var(--serif); font-size:clamp(2rem,3.4vw,3.2rem); font-weight:600; line-height:1; }
.aula-featured-course-copy>p:not(.card-kicker) { max-width:720px; margin-top:22px; color:#5c7180; font-size:1.06rem; }
.aula-feature-list { margin:28px 0 0; padding:0; display:grid; gap:10px; list-style:none; }
.aula-feature-list li { padding-left:28px; position:relative; }
.aula-feature-list li::before { position:absolute; left:0; color:var(--aula-teal); font-weight:900; content:"✓"; }
.aula-featured-course-panel { padding:42px; color:#fff; background:linear-gradient(145deg,#062b5f,#087078); }
.aula-featured-course-panel>span { color:var(--aula-gold); font-size:.78rem; font-weight:850; text-transform:uppercase; }
.aula-featured-course-panel ol { margin:28px 0 0; padding:0; counter-reset:feature; list-style:none; }
.aula-featured-course-panel li { min-height:62px; padding:16px 0 16px 54px; border-top:1px solid rgba(255,255,255,.14); position:relative; color:rgba(255,255,255,.84); }
.aula-featured-course-panel li::before { position:absolute; left:0; top:13px; width:36px; height:36px; border:1px solid rgba(255,255,255,.25); border-radius:50%; display:grid; place-items:center; counter-increment:feature; content:counter(feature); font-size:.75rem; font-weight:850; }
.aula-featured-course + .aula-featured-course { margin-top:28px; }
.wellbeing-featured-course .aula-featured-course-panel { background:linear-gradient(145deg,#123d51,#376c6a); }
.wellbeing-featured-course .card-kicker { color:#9a4b35; }
.wellbeing-program-hero { background:radial-gradient(circle at 82% 20%,rgba(239,180,111,.22),transparent 27%),linear-gradient(135deg,#102f3e,#123d51 56%,#376c6a); }
.course-program-wellbeing .section-label { color:#9a4b35; }
.course-care-note { margin-top:22px; padding:16px; border-left:4px solid #b75f43; border-radius:0 10px 10px 0; color:#415d67; background:#fff7ed; }

@media (max-width:960px) {
  .aula-hero-grid,.dashboard-grid,.aula-featured-course { grid-template-columns:1fr; }
  .aula-guest-grid { grid-template-columns:1fr; }
  .course-topbar-inner { grid-template-columns:auto auto minmax(0,1fr) auto; gap:12px; }
  .course-layout { grid-template-columns:1fr; }
  .course-sidebar { position:fixed; top:72px; bottom:0; left:0; z-index:70; width:min(340px,88vw); height:auto; transform:translateX(-105%); transition:transform .25s ease; box-shadow:20px 0 60px rgba(0,0,0,.18); }
  .course-sidebar.is-open { transform:translateX(0); }
  .mobile-course-menu { display:inline-flex; padding:8px 10px; border:1px solid rgba(255,255,255,.25); border-radius:8px; color:#fff; background:transparent; }
  .course-title-mini { text-align:left; }
}
@media (max-width:680px) {
  .aula-hero { padding:68px 0 60px; }
  .aula-loading-state { min-height:calc(100vh - 72px); padding:56px 0; }
  .aula-loading-card { padding:26px; }
  body[data-aula-state="member"] .aula-dashboard-section { padding-top:30px; }
  .aula-hero-grid { gap:34px; }
  .aula-hero-panel,.continue-card,.weekly-card { padding:24px; }
  .member-heading { align-items:start; flex-direction:column; }
  .course-brand span { display:none; }
  .course-exit { font-size:0; }
  .course-exit::after { font-size:1.1rem; content:"×"; }
  .course-main { padding:34px 20px 80px; }
  .lesson-card { padding:22px; }
  .lesson-frame h1 { font-size:clamp(2rem,10vw,2.8rem); }
  .student-guide { padding:20px; }
  .student-guide-heading { flex-direction:column; }
  .student-guide-grid,.personal-choice-options { grid-template-columns:1fr; }
  .student-guide-grid .student-guide-keep { grid-column:auto; }
  .lesson-figure--portrait picture { padding:10px; }
  .lesson-figure--portrait img { width:100%; max-height:none; }
  .answer-contrast { grid-template-columns:1fr; }
  .word-meta { align-items:flex-start; flex-direction:column; }
  .confidence-row { grid-template-columns:1fr; }
  .confidence-row span:last-child { text-align:right; }
  .activity-feedback-actions,.activity-primary-actions { align-items:stretch; flex-direction:column; }
  .activity-feedback-actions .button,.activity-primary-actions .button { width:100%; justify-content:center; }
  .references-panel a { margin:6px 0 0; display:block; }
  .lesson-actions { flex-direction:column-reverse; }
  .lesson-actions .button { width:100%; justify-content:center; }
  .infographic-stat { align-items:flex-start; flex-direction:column; }
  .infographic-concepts,.spaced-practice-grid,.resource-grid { grid-template-columns:1fr; }
  .video-controls-extra span { width:100%; margin-left:0; }
  .video-play-overlay { padding:16px; }
  .video-play-icon { width:48px; height:48px; flex-basis:48px; }
  .video-error-actions { align-items:stretch; flex-direction:column; }
  .video-error-actions .button { width:100%; justify-content:center; }
}
@media (prefers-reduced-motion:reduce) {
  .course-shell-page *,.course-shell-page *::before,.course-shell-page *::after { scroll-behavior:auto!important; animation:none!important; transition:none!important; }
}
