/* Student workspace. Deliberately independent from the ebook reader's cascade. */
:root {
  color-scheme: dark;
  --student-bg: #111416;
  --student-panel: #1b1f22;
  --student-nav: #0b0e10;
  --student-line: #363b3e;
  --student-text: #f3f0e8;
  --student-muted: #b9bfbe;
  --student-gold: #d8b979;
  --student-success: #b7d8c0;
  --student-radius: 12px;
  --student-sidebar: 208px;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.55;
  background: var(--student-bg);
  color: var(--student-text);
  accent-color: var(--student-gold);
  scrollbar-color: #666a69 var(--student-bg);
}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; min-width: 0; }
img, video { display: block; max-width: 100%; }
a { color: inherit; text-underline-offset: 4px; }
button, input { font: inherit; }
button, summary { cursor: pointer; }
button:disabled { cursor: default; opacity: .65; }
h1, h2, h3, p { margin: 0; }
h1, h2, h3 { line-height: 1.22; overflow-wrap: anywhere; }
h1 { font-size: 2rem; letter-spacing: -.025em; }
h2 { font-size: 1.5rem; letter-spacing: -.02em; }
h3 { font-size: 1.125rem; }
p { overflow-wrap: anywhere; }
::selection { color: var(--student-nav); background: var(--student-gold); }
:focus-visible { outline: 2px solid var(--student-gold); outline-offset: 4px; }
.student-icon { flex: 0 0 20px; width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.student-skip-link { position: fixed; left: 16px; top: 12px; z-index: 100; padding: 12px 18px; background: var(--student-gold); color: #111416; transform: translateY(-160%); }
.student-skip-link:focus { transform: none; }
.learning-head { position: fixed; inset: 0 auto 0 0; z-index: 40; width: var(--student-sidebar); padding: 28px 16px 20px; display: flex; flex-direction: column; background: var(--student-nav); border-right: 1px solid #292e30; }
.learning-brand { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.learning-brand img { width: 154px; height: auto; filter: invert(1); }
.learning-brand small { display: none; }
.learning-head nav { display: grid; gap: 6px; margin-top: 42px; }
.learning-head nav a { min-height: 48px; display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 8px; color: var(--student-muted); text-decoration: none; font-weight: 600; font-size: .9375rem; }
.learning-head nav a.on { background: #292921; color: #edcf92; }
.student-support { display: flex; align-items: center; gap: 10px; margin-top: auto; min-height: 48px; padding: 10px 12px; color: var(--student-muted); font-size: .875rem; text-decoration: none; }
.student-menu { display: grid; gap: 12px; padding: 18px 8px 0; margin-top: 16px; border-top: 1px solid #292e30; }
.student-menu > span { overflow-wrap: anywhere; font-size: .875rem; }
.student-menu button { display: flex; gap: 10px; align-items: center; width: fit-content; min-height: 44px; padding: 8px 0; color: var(--student-muted); background: none; border: 0; font-size: .875rem; }
.learning-shell, .lesson-shell { min-width: 0; margin-left: var(--student-sidebar); padding: 32px 32px 56px; }
.button, .welcome-action { display: inline-flex; justify-content: center; align-items: center; gap: 14px; min-height: 46px; padding: 11px 18px; border: 1px solid transparent; border-radius: 8px; background: var(--student-gold); color: #171b1d; font-size: .9375rem; font-weight: 700; text-decoration: none; }
.button.secondary { border-color: #717773; color: var(--student-text); background: transparent; }
.button.is-done { border-color: #596c5e; color: var(--student-success); }
.form-message { font-size: .875rem; color: var(--student-muted); }
.form-message[data-state="error"] { color: #ffb8aa; }
.back-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin: -10px 0 12px; color: var(--student-muted); font-size: .875rem; text-decoration: none; }
progress { display: block; width: 100%; height: 5px; overflow: hidden; border: 0; border-radius: 4px; background: #3b4142; }
progress::-webkit-progress-bar { background: #3b4142; }
progress::-webkit-progress-value { background: var(--student-gold); }
progress::-moz-progress-bar { background: var(--student-gold); }
.section-title { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.section-title > span { max-width: 44ch; color: var(--student-muted); font-size: .875rem; }
.eyebrow { display: none; }

/* The greeting introduces the workspace without pushing the course below it. */
.learning-welcome { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 220px; gap: 24px; min-height: 220px; padding: 24px; border-radius: var(--student-radius); overflow: hidden; background: var(--student-panel); }
.learning-welcome__portrait { position: absolute; inset: 0 0 0 auto; width: 260px; }
.learning-welcome__portrait img { width: 100%; height: 100%; object-fit: cover; object-position: 69% 30%; }
.learning-welcome__copy { position: relative; padding-right: 16px; }
.learning-welcome__copy h1 { font-family: Georgia, 'Times New Roman', serif; font-size: 2.25rem; font-weight: 400; }
.learning-welcome__copy > p { max-width: 49ch; margin-top: 10px; color: var(--student-muted); }
.welcome-action { margin-top: 20px; }
.learning-overview { grid-column: 1; position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; padding-top: 16px; border-top: 1px solid var(--student-line); }
.learning-overview > p { color: var(--student-muted); font-size: .875rem; }
.learning-overview > strong { font-size: 1rem; font-variant-numeric: tabular-nums; }
.learning-overview > strong small { font: inherit; }
.learning-overview > progress { flex: 1; min-width: 40px; width: auto; }
.learning-overview > div { display: flex; flex-wrap: wrap; gap: 16px; width: 100%; }
.learning-overview > div span { display: flex; gap: 6px; color: var(--student-muted); font-size: .8125rem; }
.learning-overview > div b { color: var(--student-text); }
.my-courses, .live-agenda, .curriculum { margin-top: 32px; }
.course-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.course-card { display: flex; flex-direction: column; min-width: 0; overflow: hidden; background: var(--student-panel); border-radius: var(--student-radius); text-decoration: none; }
.course-card:only-child { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(200px, .65fr) minmax(0, 1fr); }
.course-card__image { display: flex; align-items: flex-end; position: relative; min-height: 175px; padding: 18px; background: #222827 url('/media/sala') center / cover; }
.course-card__image::before { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgb(0 0 0 / .8), transparent 65%); }
.course-image-mark { display: none; }
.course-badge { position: relative; color: #fff; font-size: .8125rem; }
.course-card__body { min-width: 0; display: flex; flex-direction: column; gap: 12px; padding: 24px; }
.course-card__top { color: var(--student-muted); font-size: .8125rem; }
.course-card__body h3 { font-size: 1.5rem; letter-spacing: -.025em; }
.course-card__body > p { color: var(--student-muted); font-size: .9375rem; line-height: 1.6; }
.course-meta { display: flex; justify-content: space-between; gap: 10px; padding-top: 8px; color: var(--student-muted); font-size: .8125rem; }
.course-meta strong { color: var(--student-gold); font-variant-numeric: tabular-nums; }
.course-continue { display: flex; align-items: center; justify-content: space-between; min-height: 44px; margin-top: auto; color: var(--student-gold); font-size: .9375rem; font-weight: 700; }
.course-continue em { font-style: normal; }
.empty-learning { padding: 28px 0; border-block: 1px solid var(--student-line); }
.empty-learning p { margin-top: 8px; color: var(--student-muted); }
.portal-library-preview { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px 0; margin-top: 24px; border-top: 1px solid var(--student-line); }
.portal-library-preview h2 { font-size: 1.125rem; }
.portal-library-preview p { margin-top: 6px; color: var(--student-muted); font-size: .875rem; }
.live-agenda-grid { display: grid; gap: 12px; }
.live-agenda-card { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; align-items: center; gap: 16px; padding: 16px; background: var(--student-panel); border-radius: 10px; }
.live-agenda-card time { display: grid; text-align: center; color: var(--student-gold); }
.live-agenda-card time b { font-size: 1.5rem; }
.live-agenda-card time span { font-size: .8125rem; }
.live-agenda-card > div > * { display: block; }
.live-agenda-card small, .live-agenda-card > div > span { color: var(--student-muted); font-size: .8125rem; }
.live-agenda-card > a, .live-agenda-card > em { min-height: 44px; padding: 10px; color: var(--student-gold); font-size: .875rem; font-style: normal; }

/* Course detail: overview followed immediately by the actual curriculum. */
.course-hero { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 190px; gap: 20px; padding: 24px; overflow: hidden; border-radius: var(--student-radius); background: var(--student-panel); }
.course-hero__portrait { display: none; }
.course-hero h1 { font-size: 1.875rem; }
.course-hero__content > p { max-width: 68ch; margin-top: 12px; color: var(--student-muted); font-size: .9375rem; }
.course-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 20px; }
.course-access-status { color: var(--student-muted); font-size: .8125rem; }
.course-hero__progress { align-self: center; padding-left: 20px; border-left: 1px solid var(--student-line); }
.course-hero__progress > span { font-size: .875rem; color: var(--student-muted); }
.course-hero__progress > strong { display: block; margin: 8px 0 16px; font-size: 2rem; font-weight: 500; }
.course-hero__progress > strong small { font-size: 1rem; }
.course-hero__progress > p { margin-top: 12px; font-size: .8125rem; color: var(--student-muted); }
.course-study-layout { display: grid; grid-template-columns: minmax(0, 1fr) 230px; align-items: start; gap: 28px; }
.course-study-summary { grid-column: 2; grid-row: 1; }
.course-study-summary > p, .unlock-note { margin-top: 10px; color: var(--student-muted); font-size: .875rem; }
.course-study-summary dl { margin: 16px 0 0; }
.course-study-summary dl > div { display: flex; justify-content: space-between; gap: 10px; padding: 8px 0; font-size: .875rem; }
.course-study-summary dt { color: var(--student-muted); }
.course-study-summary dd { margin: 0; }
.unlock-note { padding-top: 16px; border-top: 1px solid var(--student-line); }
.unlock-note b, .unlock-note span { display: block; }
.unlock-note b { margin-bottom: 8px; color: var(--student-text); }
.module-stack { grid-column: 1; grid-row: 1; display: grid; gap: 12px; min-width: 0; }
.module-card { min-width: 0; overflow: hidden; border: 1px solid var(--student-line); border-radius: var(--student-radius); }
.module-summary { display: grid; grid-template-columns: 32px minmax(0, 1fr) 24px; align-items: center; gap: 12px; min-height: 80px; padding: 18px; list-style: none; background: var(--student-panel); }
.module-summary::-webkit-details-marker { display: none; }
.module-index { color: var(--student-gold); font-size: 1rem; font-variant-numeric: tabular-nums; }
.module-heading > * { display: block; }
.module-heading > span { margin-bottom: 4px; font-size: .8125rem; color: var(--student-muted); }
.module-heading > strong { font-size: 1.0625rem; line-height: 1.4; overflow-wrap: anywhere; }
.module-heading > small { margin-top: 6px; color: var(--student-muted); font-size: .875rem; }
.module-toggle { display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; }
.module-toggle::after { content: ''; width: 8px; height: 8px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); }
.module-card[open] .module-toggle::after { transform: rotate(225deg); }
.lesson-row { display: grid; grid-template-columns: 30px minmax(0, 1fr); align-items: center; gap: 4px 12px; padding: 16px 18px; border-top: 1px solid var(--student-line); text-decoration: none; }
.lesson-row small, .lesson-row strong { display: block; }
.lesson-row small { color: var(--student-muted); font-size: .8125rem; margin-bottom: 4px; }
.lesson-row strong { font-size: .9375rem; line-height: 1.45; overflow-wrap: anywhere; }
.lesson-row > b { grid-column: 2; font-weight: 500; font-size: .8125rem; color: var(--student-gold); }
.lesson-row.is-locked > b { color: var(--student-muted); }
.lesson-row.is-complete > b { color: var(--student-success); }
.lesson-play { width: 28px; height: 28px; display: grid; place-items: center; color: var(--student-gold); }
.lesson-play--recorded::before, .lesson-play--live::before { content: ''; border-block: 6px solid transparent; border-left: 9px solid currentColor; }
.lesson-play--complete::before { content: ''; width: 10px; height: 6px; border-left: 2px solid var(--student-success); border-bottom: 2px solid var(--student-success); transform: rotate(-45deg); }
.lesson-play--locked::before { content: ''; width: 12px; height: 11px; border: 1.5px solid #a2aaa9; border-radius: 2px; }
.lesson-play--locked::after { content: ''; position: absolute; width: 8px; height: 7px; margin-top: -15px; border: 1.5px solid #a2aaa9; border-bottom: 0; border-radius: 6px 6px 0 0; }

/* Player retains its controls and protection at every viewport. */
.lesson-breadcrumb { margin-bottom: 14px; }
.lesson-breadcrumb .back-link { margin: -8px 0 0; }
.lesson-breadcrumb > span { display: none; }
.lesson-layout { display: grid; grid-template-columns: minmax(0, 1fr) 288px; align-items: start; gap: 24px; }
.lesson-main, .lesson-aside { min-width: 0; }
.video-stage { position: relative; border-radius: var(--student-radius); overflow: hidden; background: #080b0d; }
.video-frame { width: 100%; aspect-ratio: 16 / 9; }
.video-frame video, .video-frame iframe { display: block; width: 100%; height: 100%; border: 0; background: #080b0d; }
.video-placeholder { display: flex; flex-direction: column; justify-content: center; align-items: center; height: 100%; gap: 12px; padding: 20px; text-align: center; background: #1b2022; }
.video-private-label { display: flex; gap: 6px; align-items: center; font-size: .75rem; color: var(--student-muted); }
.play-large { display: grid; place-items: center; width: 64px; height: 64px; flex-shrink: 0; border: 0; border-radius: 50%; color: #141718; background: var(--student-gold); }
.play-large > span { margin-left: 4px; border-block: 9px solid transparent; border-left: 14px solid currentColor; }
.video-placeholder > strong { font-size: 1rem; }
.video-placeholder > p { font-size: .875rem; color: var(--student-muted); }
.stage-fullscreen { position: absolute; z-index: 25; right: 12px; top: 12px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid #646969; border-radius: 8px; background: #141819; color: #fff; }
.stage-fullscreen > span { width: 18px; height: 18px; background: linear-gradient(currentColor, currentColor) left top/6px 1px no-repeat, linear-gradient(currentColor, currentColor) left top/1px 6px no-repeat, linear-gradient(currentColor, currentColor) right top/6px 1px no-repeat, linear-gradient(currentColor, currentColor) right top/1px 6px no-repeat, linear-gradient(currentColor, currentColor) left bottom/6px 1px no-repeat, linear-gradient(currentColor, currentColor) left bottom/1px 6px no-repeat, linear-gradient(currentColor, currentColor) right bottom/6px 1px no-repeat, linear-gradient(currentColor, currentColor) right bottom/1px 6px no-repeat; }
.video-stage:fullscreen { display: grid; place-items: center; width: 100%; height: 100%; border-radius: 0; }
.video-stage:fullscreen .video-frame { width: min(100vw, 177.77vh); }
.lesson-title { padding: 20px 0; }
.lesson-title__meta { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 10px; color: var(--student-muted); font-size: .8125rem; }
.lesson-title h1 { font-size: 1.5rem; line-height: 1.35; }
.lesson-title > p { max-width: 70ch; margin-top: 12px; color: var(--student-muted); }
.lesson-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin-top: 20px; }
.lesson-actions .form-message { flex: 1 1 220px; }
.lesson-navigation { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; padding-top: 16px; border-top: 1px solid var(--student-line); }
.lesson-navigation > a { min-height: 44px; text-decoration: none; }
.lesson-navigation small, .lesson-navigation strong { display: block; }
.lesson-navigation small { color: var(--student-gold); font-size: .8125rem; }
.lesson-navigation strong { margin-top: 6px; font-size: .875rem; font-weight: 400; overflow-wrap: anywhere; }
.lesson-navigation .next { text-align: right; }
.lesson-navigation:not(:has(a)) { display: none; }
.lesson-aside { position: sticky; top: 24px; }
.lesson-course-progress { padding-bottom: 20px; }
.lesson-course-progress > span { font-size: .9375rem; font-weight: 600; }
.lesson-course-progress > strong { float: right; font-size: .9375rem; color: var(--student-gold); }
.lesson-course-progress > strong small { font: inherit; }
.lesson-course-progress progress { margin: 12px 0 8px; }
.lesson-course-progress > p { color: var(--student-muted); font-size: .8125rem; }
.lesson-outline { border: 1px solid var(--student-line); border-radius: 10px; overflow: hidden; }
.lesson-outline h2 { padding: 16px; font-size: 1rem; line-height: 1.4; }
.lesson-outline > a, .lesson-outline > span { display: flex; gap: 10px; align-items: flex-start; padding: 14px 16px; text-decoration: none; border-top: 1px solid var(--student-line); }
.lesson-outline .current { background: #2c302a; }
.lesson-outline .current b { color: var(--student-gold); }
.lesson-outline b { min-width: 20px; font-size: .75rem; line-height: 1.8; color: var(--student-muted); font-variant-numeric: tabular-nums; }
.lesson-outline em { min-width: 0; font-size: .875rem; font-style: normal; line-height: 1.5; overflow-wrap: anywhere; }
.lesson-outline .locked { color: var(--student-muted); }
.outline-all { display: inline-flex; gap: 8px; align-items: center; min-height: 44px; margin-top: 12px; color: var(--student-gold); font-size: .875rem; text-decoration: none; }
.live-room { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 16px; min-height: 350px; padding: 32px; text-align: center; }
.live-room h2 { font-size: 1.5rem; }
.live-room time, .live-room small { color: var(--student-muted); }
.live-room small { font-size: .875rem; }

/* The library is an actual bookshelf, not another marketing hero. */
.library-hero { display: block; }
.library-hero__portrait { display: none; }
.library-hero h1 { font-size: 2rem; }
.library-hero p:not(.eyebrow) { max-width: 64ch; margin-top: 12px; color: var(--student-muted); }
.library-hero aside { margin-top: 16px; color: var(--student-muted); font-size: .875rem; }
.library-hero aside strong { color: var(--student-gold); margin-right: 5px; }
.ebook-library-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.ebook-library-card { display: grid; grid-template-columns: 128px minmax(0, 1fr); min-width: 0; overflow: hidden; border-radius: 12px; background: var(--student-panel); text-decoration: none; }
.ebook-cover { position: relative; background: #ddd5c5; }
.ebook-cover img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.ebook-cover > span, .ebook-cover > small, .ebook-cover > b, .ebook-cover > i { display: none; }
.ebook-library-copy { display: flex; flex-direction: column; gap: 10px; min-width: 0; padding: 20px; }
.ebook-library-copy > small { color: var(--student-muted); font-size: .8125rem; }
.ebook-library-copy > strong { font-size: 1.125rem; line-height: 1.4; overflow-wrap: anywhere; }
.ebook-library-copy > p { color: var(--student-muted); font-size: .875rem; }
.ebook-library-copy > em { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: auto; min-height: 44px; font-size: .875rem; font-style: normal; font-weight: 700; color: var(--student-gold); }

/* Login: the official portrait and a calm, readable form. */
.learning-login { min-height: 100dvh; display: grid; grid-template-columns: 1.05fr 1fr; }
.portal-visual { position: relative; display: flex; flex-direction: column; min-width: 0; min-height: 100dvh; padding: 36px; overflow: hidden; background: #0b0e10; }
.student-login-portrait { position: absolute; inset: 0; }
.student-login-portrait img { width: 100%; height: 100%; object-fit: cover; object-position: 70% center; }
.portal-visual::after { content: ''; position: absolute; inset: 35% 0 0; background: linear-gradient(transparent, rgb(0 0 0 / .88)); pointer-events: none; }
.portal-visual > .learning-brand { position: relative; z-index: 1; }
.portal-visual .learning-brand img { width: 190px; }
.student-login-cinema, .student-login-seal, .login-learning-line, .professor-signature { display: none; }
.login-portrait-copy { position: relative; z-index: 1; margin-top: auto; padding-top: 250px; }
.login-portrait-copy h1 { max-width: 430px; font-family: Georgia, 'Times New Roman', serif; font-size: 2.5rem; font-weight: 400; line-height: 1.15; }
.login-portrait-copy > p { max-width: 48ch; margin-top: 16px; color: #d1d3ce; font-size: 1rem; }
.portrait-foot { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 18px; padding-top: 24px; color: #c6c9c4; font-size: .8125rem; }
.portrait-foot i { display: none; }
.learning-login__form { color-scheme: light; display: grid; place-items: center; padding: 48px; background: #f4f1e9; color: #222729; }
.login-panel { width: 100%; max-width: 440px; }
.secure-pill { display: inline-flex; align-items: center; gap: 8px; color: #4a6152; font-size: .8125rem; margin-bottom: 24px; }
.secure-pill i { width: 7px; height: 7px; background: #516d59; border-radius: 50%; }
.login-panel h2 { font-size: 2rem; font-weight: 600; letter-spacing: -.035em; }
.login-panel > p { margin-top: 14px; color: #626760; }
.login-panel form { margin-top: 30px; }
.login-panel label { display: block; margin-bottom: 8px; font-size: .9375rem; font-weight: 600; }
.access-input-wrap > span { display: none; }
.access-input-wrap input { width: 100%; min-width: 0; min-height: 52px; padding: 13px 14px; border: 1px solid #868c86; border-radius: 8px; color: #222729; background: #fffefa; caret-color: #75541e; }
.access-input-wrap input::placeholder { color: #6b7069; opacity: 1; }
.learning-login__form :focus-visible { outline-color: #806023; }
.login-submit { width: 100%; margin-top: 16px; background: #222a28; color: #fff; border-radius: 8px; }
.login-panel .form-message { margin-top: 12px; color: #535d52; min-height: 1.5em; }
.login-panel .form-message[data-state="error"] { color: #a02d23; }
.login-trust { display: flex; flex-wrap: wrap; gap: 10px 16px; margin-top: 24px; padding-top: 20px; border-top: 1px solid #d4d8cf; color: #626760; font-size: .8125rem; }
.login-trust b { color: #486050; }
.support { margin-top: 28px; color: #626760; font-size: .875rem; }
.support a { display: inline-flex; align-items: center; min-height: 44px; color: #344338; font-weight: 600; }

/* Protection remains visible but does not take part in layout or intercept taps. */
.identity-watermark { position: fixed; z-index: 30; left: var(--watermark-left, 70%); top: var(--watermark-top, 80%); max-width: min(260px, 65vw); padding: 6px 9px; border-radius: 4px; background: rgb(12 15 17 / .76); color: #e4e3db; font-size: .625rem; line-height: 1.35; pointer-events: none; user-select: none; opacity: 0; transform: translate(-50%, -50%); }
.identity-watermark.is-visible { opacity: .66; }
.identity-watermark strong, .identity-watermark span { display: block; }
.identity-watermark strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.identity-watermark span { font-size: .5625rem; }
.identity-watermark--media { position: absolute; }
.video-stage:has(.video-placeholder) .identity-watermark--media { visibility: hidden; }
.identity-watermark--footer { position: static; max-width: none; margin: 0 32px 24px calc(var(--student-sidebar) + 32px); padding: 0; background: transparent; transform: none; opacity: .8; color: var(--student-muted); }
.identity-watermark--footer strong { overflow-wrap: anywhere; white-space: normal; }

@media (hover: hover) {
  .learning-head nav a:hover, .student-support:hover { background: #202625; color: #f3f0e8; }
  .button:hover:not(:disabled), .welcome-action:hover { filter: brightness(1.08); }
  .course-card:hover, .ebook-library-card:hover { background: #252b2d; }
  .lesson-row[href]:hover, .lesson-outline a:hover { background: #252b2d; }
  .student-menu button:hover, .back-link:hover, .outline-all:hover { color: #fff; }
}
@media (prefers-reduced-motion: no-preference) {
  a, button, .module-toggle::after { transition: background-color 160ms ease-out, color 160ms ease-out, transform 160ms ease-out; }
  button:active:not(:disabled) { transform: scale(.98); }
  .identity-watermark { transition: opacity 200ms ease-out; }
}
@media (max-width: 1199px) {
  :root { --student-sidebar: 184px; }
  .learning-head { padding-inline: 12px; }
  .learning-brand img { width: 145px; }
  .learning-shell, .lesson-shell { padding: 24px; }
  .lesson-layout { grid-template-columns: minmax(0, 1fr) 260px; gap: 20px; }
  .course-study-layout { grid-template-columns: minmax(0, 1fr); }
  .course-study-summary { grid-column: 1; grid-row: 2; padding-top: 20px; border-top: 1px solid var(--student-line); }
  .course-study-summary dl { display: flex; flex-wrap: wrap; gap: 12px 32px; }
  .course-study-summary dl > div { gap: 16px; }
  .course-study-summary > p, .unlock-note { max-width: 65ch; }
  .ebook-library-grid { grid-template-columns: minmax(0, 1fr); }
  .course-hero { grid-template-columns: minmax(0, 1fr); }
  .course-hero__progress { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 16px; padding: 16px 0 0; border-left: 0; border-top: 1px solid var(--student-line); }
  .course-hero__progress > strong { margin: 0; font-size: 1rem; }
  .course-hero__progress progress, .course-hero__progress > p { grid-column: 1 / -1; margin: 0; }
}
@media (max-width: 1023px) {
  .learning-head { position: sticky; inset: auto; top: 0; width: 100%; padding: 10px 24px 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 16px; border-right: 0; border-bottom: 1px solid #343a3c; }
  .learning-head .learning-brand img { width: 132px; }
  .learning-head nav { grid-column: 1 / -1; grid-row: 2; display: flex; gap: 16px; margin-top: 8px; }
  .learning-head nav a { border-radius: 0; min-height: 46px; padding: 8px 4px; border-bottom: 2px solid transparent; }
  .learning-head nav a.on { border-bottom-color: var(--student-gold); background: none; }
  .learning-head { grid-template-columns: minmax(0, 1fr) auto auto; }
  .student-support { grid-column: 2; grid-row: 1; display: flex; min-width: 44px; min-height: 44px; margin: 0; padding: 12px; font-size: 0; }
  .student-menu { grid-column: 3; grid-row: 1; display: block; margin: 0; padding: 0; border: 0; }
  .student-menu > span { display: none; }
  .student-menu button { padding: 8px; }
  .learning-shell, .lesson-shell { margin-left: 0; }
  .identity-watermark--footer { margin-inline: 24px; }
  .lesson-layout { grid-template-columns: minmax(0, 1fr) 260px; }
  .lesson-aside { position: static; }
  .learning-login__form { padding: 32px; }
  .portal-visual { padding: 28px; }
  .login-portrait-copy h1 { font-size: 2rem; }
}
@media (max-width: 767px) {
  .learning-head { padding-inline: 16px; }
  .learning-head nav { gap: 24px; }
  .learning-head nav a { gap: 8px; font-size: .875rem; }
  .learning-shell, .lesson-shell { padding: 20px 16px 36px; }
  h1 { font-size: 1.75rem; }
  h2 { font-size: 1.375rem; }
  .section-title { display: block; margin-bottom: 16px; }
  .section-title > span { display: block; margin-top: 8px; }
  .learning-welcome { grid-template-columns: minmax(0, 1fr); gap: 16px; padding: 20px; min-height: 0; }
  .learning-welcome__portrait { inset: 0 0 auto auto; width: 116px; height: 132px; }
  .learning-welcome__portrait img { object-position: 68% 23%; }
  .learning-welcome__copy { padding: 0; }
  .learning-welcome__copy h1 { max-width: calc(100% - 96px); min-height: 70px; padding-top: 4px; font-size: 1.875rem; }
  .learning-welcome__copy > p { position: relative; margin-top: 16px; padding-top: 8px; background: var(--student-panel); font-size: .9375rem; }
  .welcome-action { display: flex; margin-top: 16px; }
  .learning-overview { gap: 8px 12px; }
  .learning-overview > div { gap: 12px; }
  .my-courses, .live-agenda, .curriculum { margin-top: 28px; }
  .course-grid { grid-template-columns: minmax(0, 1fr); }
  .course-card:only-child { display: flex; }
  .course-card__image { min-height: 140px; }
  .course-card__body { padding: 20px; }
  .course-card__body h3 { font-size: 1.375rem; }
  .course-hero { padding: 20px; }
  .course-hero h1 { font-size: 1.625rem; }
  .course-hero__actions { align-items: stretch; flex-direction: column; }
  .course-hero__actions .button { width: 100%; }
  .module-summary { grid-template-columns: 24px minmax(0, 1fr) 20px; padding: 16px 12px; gap: 10px; }
  .module-heading > small { font-size: .8125rem; }
  .lesson-row { padding: 14px 12px; gap: 4px 8px; }
  .lesson-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .video-placeholder { gap: 8px; padding: 12px; }
  .video-private-label { font-size: .6875rem; }
  .play-large { width: 48px; height: 48px; }
  .video-placeholder > strong { display: none; }
  .video-placeholder > p { max-width: 29ch; font-size: .75rem; }
  .stage-fullscreen { top: 8px; right: 8px; }
  .lesson-title h1 { font-size: 1.375rem; }
  .lesson-actions { align-items: stretch; }
  .lesson-actions .button { width: 100%; }
  .lesson-aside { border-top: 1px solid var(--student-line); padding-top: 24px; }
  .lesson-course-progress { padding-bottom: 16px; }
  .portal-library-preview { flex-direction: column; align-items: stretch; }
  .live-agenda-card { grid-template-columns: 42px minmax(0, 1fr); gap: 12px; }
  .live-agenda-card > a, .live-agenda-card > em { grid-column: 2; }
  .library-hero h1 { font-size: 1.75rem; }
  .ebook-library-card { grid-template-columns: 104px minmax(0, 1fr); }
  .ebook-library-copy { padding: 16px; }
  .ebook-library-copy > p { display: none; }
  .learning-login { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr; }
  .portal-visual { height: 230px; min-height: 230px; padding: 20px; }
  .portal-visual .learning-brand img { width: 146px; }
  .student-login-portrait img { object-position: 64% 32%; }
  .portal-visual::after { inset: 40% 0 0; }
  .login-portrait-copy { padding-top: 30px; }
  .login-portrait-copy h1 { max-width: 57%; font-size: 1.625rem; }
  .login-portrait-copy > p, .portrait-foot { display: none; }
  .learning-login__form { display: block; padding: 28px 24px 36px; }
  .login-panel { max-width: none; }
  .secure-pill { margin-bottom: 18px; }
  .login-panel h2 { font-size: 1.75rem; }
  .login-panel form { margin-top: 24px; }
  .login-trust { margin-top: 20px; }
  .support { margin-top: 20px; }
  .identity-watermark--footer { margin-inline: 16px; }
}
@media (min-width: 1600px) {
  .learning-shell, .lesson-shell { padding-inline: 40px; }
  .course-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .course-card:only-child { grid-column: span 2; }
  .lesson-layout { grid-template-columns: minmax(0, 1fr) 340px; gap: 32px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto; transition: none; animation: none; }
}
