.content-main { max-width: 1200px; }
#module-dialog { width:min(620px,calc(100% - 32px));max-height:calc(100svh - 32px);overflow-y:auto; }
.module-cover-selection { margin-top:24px;padding-top:20px;border-top:1px solid var(--line); }
.module-cover-selection h3 { font-size:15px;margin-bottom:14px; }
.module-cover-editor-layout { display:grid;grid-template-columns:120px minmax(0,1fr);gap:18px;align-items:start; }
.module-cover-preview-frame { position:relative;aspect-ratio:4/5;background:radial-gradient(ellipse at 0 0,rgb(var(--sc-lavender-rgb) / 0.102),transparent 80%),var(--sc-night);border:1px solid rgb(var(--sc-lavender-rgb) / 0.212);border-radius:8px;overflow:hidden;display:grid;place-items:center; }
.module-actions { flex-wrap:wrap; }
.module-cover-preview-frame img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover; }
.module-cover-preview-frame span { color:var(--sc-muted);font-size:12px; }
.module-cover-editor-controls { min-width:0; }
.module-cover-editor-controls label { display:block;font-size:12px;margin-bottom:8px;color:var(--sc-cream); }
.module-cover-editor-controls input { width:100%;min-height:44px;color:var(--ink);font-size:12px; }
.module-cover-editor-controls :is(p,button) { font-size:12px;line-height:1.5; }
#module-cover-help { color:var(--sc-muted);margin-top:12px; }
#module-cover-details { overflow-wrap:anywhere;color:var(--sc-cream);margin-top:8px; }
@media(max-width:430px) { .module-cover-editor-layout { grid-template-columns:minmax(0,1fr); }.module-cover-preview-frame { width:120px;justify-self:center; } }
.view-as-student { margin-top: 18px; }
.view-as-student[aria-disabled="true"] { opacity: .55; }
.content-preview-entry { display: flex; justify-content: center; margin: 0 0 32px; }
.course-editor { display: grid; grid-template-columns: minmax(240px,280px) minmax(0,1fr); border: 1px solid var(--line); border-top: 2px solid var(--gold); background: var(--sc-surface); }
.module-column { border-right: 1px solid var(--line); padding: 24px 20px; min-width: 0; }
.lesson-column { padding: 26px 28px; min-width: 0; }
.editor-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.editor-section-heading :is(h2,h3) { font-size: 17px; font-weight: 500; }
.editor-section-heading .access-link { flex-shrink: 0; }
.course-editor-page button.access-link { background: transparent; border: 0; padding: 0; cursor: pointer; }
.course-editor-page .editor-form-error { color: #e2a598; }
.module-list,.lesson-list { list-style: none; margin: 0; padding: 0; }
.module-item { padding: 14px 0; border-bottom: 1px solid var(--line); }
.module-item:first-child { padding-top: 0; }
.module-item:last-child { border-bottom: 0; }
.module-select { width: 100%; min-height: 48px; text-align: left; color: var(--ink); background: transparent; border: 1px solid transparent; border-left: 2px solid transparent; padding: 10px 12px; cursor: pointer; display: flex; flex-direction: column; gap: 6px; overflow-wrap: anywhere; }
.module-select[aria-current="true"] { border-color: rgb(var(--sc-lavender-rgb) / 0.212); border-left-color: var(--gold); background: rgb(var(--sc-lavender-rgb) / 0.047); }
.module-number,.module-position { font-family: Poppins,Arial,sans-serif; font-size: 11px; color: var(--muted); }
.module-select-title { font-size: 14px; line-height: 1.5; }
.module-select .content-state { align-self: flex-start; }
.module-order { display: flex; justify-content: flex-end; gap: 4px; margin-top: 4px; }
.order-button { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid var(--line); background: transparent; color: var(--sc-cream); cursor: pointer; }
.order-button svg { width: 17px; height: 17px; }
.editor-empty { padding: 20px 0; font-size: 14px; color: var(--muted); }
.editor-empty span { display: block; font-size: 12px; margin-top: 9px; line-height: 1.5; }
.editor-footnote { margin-top: 22px; font-size: 11px; color: var(--muted); }
.module-placeholder { text-align: center; padding: 84px 12px; }
.module-placeholder h2 { color: var(--ink); font-size: 22px; font-weight: 500; margin-bottom: 10px; }
.module-heading { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.module-heading > div:first-child { min-width: 0; }
.module-heading h2 { font-size: clamp(22px,2.7vw,28px); line-height: 1.3; font-weight: 500; margin: 8px 0 12px; overflow-wrap: anywhere; }
.module-description { color: var(--muted); font-size: 13px; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; margin-bottom: 14px; }
.module-actions { display: flex; flex-direction: column; align-items: flex-end; flex-shrink: 0; }
.content-state { display: inline-block; padding: 4px 8px; border: 1px solid rgb(var(--sc-lavender-rgb) / 0.212); color: var(--sc-muted); font-size: 10px; font-family: Poppins,Arial,sans-serif; line-height: 1.5; }
.content-state[data-state="published"] { color: var(--sc-gold); border-color: rgb(var(--sc-lavender-rgb) / 0.400); background: rgb(var(--sc-lavender-rgb) / 0.071); }
.module-publication { padding: 16px 0; border-block: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.module-publication p { font-size: 12px; color: var(--muted); max-width: 310px; }
.module-publication .button { font-size: 11px; padding-inline: 14px; flex-shrink: 0; }
.lessons-section { margin-top: 26px; }
.lesson-item { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 18px 0; border-top: 1px solid var(--line); }
.lesson-info { min-width: 0; flex: 1; }
.lesson-title-button { border: 0; padding: 4px 0; background: transparent; color: var(--ink); font-size: 14px; line-height: 1.5; text-align: left; min-height: 44px; cursor: pointer; overflow-wrap: anywhere; }
.lesson-title-button[aria-current="true"] { color: var(--gold); }
.lesson-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 11px; color: var(--muted); }
.lesson-actions { display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: 4px 8px; max-width: 245px; }
.lesson-actions .access-link { font-size: 11px; }
.lesson-editor { margin-top: 24px; padding-top: 26px; border-top: 2px solid rgb(var(--sc-lavender-rgb) / 0.333); }
.course-editor-page fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.course-editor-page form .form-field { margin-bottom: 20px; }
.course-editor-page textarea { width: 100%; min-height: 100px; padding: 13px 14px; border: 1px solid rgb(var(--sc-lavender-rgb) / 0.220); border-radius: 4px; background: var(--sc-night); color: var(--ink); font: 16px/1.5 Poppins,Arial,sans-serif; resize: vertical; }
.course-editor-page textarea:disabled { opacity: .55; }
.course-editor-page textarea:focus-visible { outline: 2px solid var(--sc-gold); outline-offset: 5px; }
.field-optional { font-size: 11px; color: var(--muted); font-weight: 400; }
.video-selection { padding: 18px; border: 1px dashed rgb(var(--sc-lavender-rgb) / 0.333); background: var(--sc-night); }
.video-selection-heading { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 16px; }
.video-selection-heading label { font-size: 13px; }
.video-selection-note { font-size: 10px; color: var(--gold); }
.video-selection input[type="file"] { display: block; width: 100%; color: var(--muted); font: 12px Poppins,Arial,sans-serif; padding-block: 2px; }
.video-selection input::file-selector-button { margin-right: 12px; min-height: 44px; padding: 10px 14px; border: 1px solid rgb(var(--sc-lavender-rgb) / 0.333); border-radius: 3px; background: var(--sc-surface); color: var(--ink); font: 12px Poppins,Arial,sans-serif; cursor: pointer; }
#video-help { color: var(--muted); font-size: 11px; margin-top: 15px; line-height: 1.5; }
.video-details { color: var(--sc-cream); font-size: 12px; margin-top: 16px; overflow-wrap: anywhere; }
.video-selection-actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 8px; }
.materials-selection { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--line); min-width: 0; }
.materials-selection h4 { margin: 0; font-size: 14px; font-weight: 500; }
.materials-input-label { display: block; margin-bottom: 10px; color: var(--muted); font-size: 12px; }
.materials-selection input[type="file"] { display: block; width: 100%; min-width: 0; color: var(--muted); font: 12px Poppins,Arial,sans-serif; }
.materials-selection input::file-selector-button { margin-right: 12px; min-height: 44px; padding: 10px 14px; border: 1px solid rgb(var(--sc-lavender-rgb) / 0.333); border-radius: 3px; background: var(--sc-surface); color: var(--ink); font: 12px Poppins,Arial,sans-serif; cursor: pointer; }
#materials-help { margin-top: 14px; color: var(--muted); font-size: 11px; line-height: 1.5; }
.materials-status { margin-top: 16px; color: var(--sc-cream); font-size: 12px; }
.material-editor-list { list-style: none; margin: 12px 0 0; padding: 0; }
.material-editor-item { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.material-editor-info { min-width: 0; overflow-wrap: anywhere; }
.material-editor-info strong { display: block; font-size: 13px; font-weight: 500; }
.material-editor-info span { display: block; margin-top: 4px; font-size: 11px; color: var(--muted); }
.material-editor-item .access-link { flex-shrink: 0; }
.lesson-save-actions { display: flex; align-items: center; gap: 18px; margin-top: 22px; }
.lesson-save-actions .button { flex-shrink: 0; }
.lesson-save-actions > span { font-size: 11px; color: var(--muted); }
.lesson-editor .editor-form-error { margin-top: 16px; font-size: 13px; }
.course-editor-page .danger-link { color: #d6a699; }
.course-editor-page dialog form { margin-top: 24px; }
.course-editor-page .video-preview-dialog { width: min(900px,calc(100% - 32px)); max-width: min(900px,calc(100% - 32px)); }
.video-preview-dialog .editor-section-heading { margin-bottom: 16px; }
.video-preview-dialog h2 { font-size: 19px; min-width: 0; overflow-wrap: anywhere; }
.video-preview-dialog video { display: block; width: 100%; max-height: 65dvh; background: #000; }
.course-editor-page :is(.module-select,.order-button,.lesson-title-button) { transition: opacity var(--motion-feedback) var(--ease-out),transform var(--motion-feedback) var(--ease-out); }
html[data-input="pointer"] .course-editor-page :is(.module-select,.order-button,.lesson-title-button):not(:disabled):active { transform: scale(.98); }
html[data-input="keyboard"] .course-editor-page :is(.module-select,.order-button,.lesson-title-button) { transition: none; }
@media (hover: hover) and (pointer: fine) {
  html[data-input="pointer"] .course-editor-page :is(.module-select,.order-button,.lesson-title-button):not(:disabled):hover { opacity: .82; }
}
@media (max-width: 1000px) {
  .course-editor { grid-template-columns: 240px minmax(0,1fr); }
  .lesson-column { padding-inline: 22px; }
  .module-publication { align-items: flex-start; flex-direction: column; gap: 12px; }
  .module-publication p { max-width: none; }
  .lesson-item { flex-direction: column; gap: 10px; }
  .lesson-actions { max-width: none; width: 100%; justify-content: flex-start; }
}
@media (max-width: 760px) {
  .course-editor { grid-template-columns: minmax(0,1fr); }
  .module-column { border-right: 0; border-bottom: 1px solid var(--line); padding: 20px; }
  .lesson-column { padding: 24px 20px; }
  .module-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
  .module-item { border-bottom: 0; padding: 0; }
  .module-order { margin-top: 8px; }
  .editor-footnote { margin-top: 12px; }
  .module-placeholder { padding-block: 42px; }
  .lesson-save-actions { align-items: flex-start; flex-direction: column; gap: 12px; }
  .course-editor-page dialog { padding: 22px; }
}
@media (max-width: 440px) {
  .module-list { grid-template-columns: minmax(0,1fr); }
  .module-item { display: flex; gap: 8px; align-items: center; }
  .module-order { flex-direction: column; margin: 0; }
  .module-select { flex: 1; min-width: 0; }
  .module-heading { flex-direction: column; gap: 10px; }
  .module-actions { flex-direction: row; justify-content: flex-start; gap: 20px; }
  .lesson-column { padding-inline: 16px; }
  .video-selection { padding: 14px; }
  .lesson-save-actions .button { width: 100%; }
  .course-editor-page .dialog-actions { flex-wrap: wrap; }
  .course-editor-page .dialog-actions .button { flex: 1; white-space: normal; }
}
@media (prefers-reduced-motion: reduce) {
  .course-editor-page :is(.module-select,.order-button,.lesson-title-button) { transform: none !important; transition: opacity var(--motion-reduced) var(--ease-out) !important; }
}
/* Upload status remains usable while the editing fieldset is locked. */
.content-access-actions{display:flex;justify-content:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.course-upload-progress{margin-top:20px;padding:18px;border:1px solid var(--line,var(--sc-royal));border-radius:8px}
.course-upload-progress p{font-size:14px;overflow-wrap:anywhere;margin:0 0 12px}
.course-upload-progress progress{display:block;width:100%;height:8px;accent-color:var(--gold,var(--sc-gold));margin:0 0 10px}
.course-upload-progress progress::-webkit-progress-bar{background:var(--sc-raised);border-radius:10px}
.course-upload-progress progress::-webkit-progress-value{background:var(--sc-gold);border-radius:10px}
.course-upload-progress progress::-moz-progress-bar{background:var(--sc-gold);border-radius:10px}

/* The form follows the author's task: information, video, optional PDFs, publish. */
.module-column .editor-section-heading { margin-bottom:8px; }
.module-column-help { font-size:12px;line-height:1.5;color:var(--muted);margin-bottom:16px; }
.module-add-button { width:100%;min-height:44px;font-size:12px;padding:12px;justify-content:center;margin-bottom:22px; }
.module-select-meta { display:flex;gap:8px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:11px; }
.module-select-title { font-size:15px;font-weight:500; }
.module-actions { gap:6px; }
.module-publication { background:rgb(var(--sc-lavender-rgb) / 0.027);border:1px solid rgb(var(--sc-lavender-rgb) / 0.141);padding:16px;border-radius:8px; }
.lessons-section > .editor-section-heading .button { min-height:44px;font-size:12px;padding:10px 14px; }
.lesson-item { padding:16px;border:1px solid rgb(var(--sc-lavender-rgb) / 0.141);border-radius:8px;background:var(--sc-night);margin-bottom:10px; }
.lesson-item:has(.lesson-title-button[aria-current="true"]) { border-color:rgb(var(--sc-lavender-rgb) / 0.439);background:rgb(var(--sc-lavender-rgb) / 0.031); }
.lesson-title-button { font-size:15px;font-weight:500; }
.lesson-actions { align-items:center;gap:8px 14px;max-width:285px; }
.lesson-edit-action { font-size:12px;min-height:44px;padding:10px 14px; }
.lesson-more { font-size:12px;color:var(--muted); }
.lesson-more > summary { cursor:pointer;min-height:44px;padding-block:12px; }
.lesson-secondary-actions { display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:12px;border:1px solid var(--line);border-radius:6px;max-width:250px; }
.lesson-secondary-actions > .access-link { min-height:44px;font-size:12px; }
.lesson-editor { margin-top:30px;padding:24px;border:1px solid rgb(var(--sc-lavender-rgb) / 0.376);border-top:3px solid var(--gold);border-radius:10px;background:var(--sc-night); }
.lesson-editor-heading { display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:26px; }
.lesson-editor-heading > div:first-child { min-width:0; }
.lesson-editor-context { color:var(--sc-muted);font-size:12px;line-height:1.5;overflow-wrap:anywhere;margin-bottom:8px; }
.lesson-editor-heading h3 { font-size:clamp(21px,2.3vw,26px);line-height:1.3;font-weight:500; }
.lesson-editor-heading-actions { display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:4px 14px; }
.lesson-editor-heading-actions .access-link { min-height:44px; }
.content-state[data-state="pending"] { color:var(--sc-cream);border-color:rgb(var(--sc-lavender-rgb) / 0.376); }
.lesson-form-section { padding:20px;border:1px solid rgb(var(--sc-lavender-rgb) / 0.169);border-radius:8px;background:var(--sc-surface); }
.lesson-form-section + .lesson-form-section { margin-top:16px; }
.lesson-step-heading { display:flex;align-items:flex-start;gap:12px;margin-bottom:20px; }
.lesson-step-heading > :is(div,.lesson-step-copy) { flex:1;min-width:0; }
.lesson-step-heading :is(h4,.materials-title) { display:block;font-size:15px;font-weight:500;line-height:1.5;margin:0;color:var(--sc-cream); }
.lesson-step-heading :is(p,.lesson-step-description) { display:block;font-size:12px;color:var(--sc-muted);line-height:1.5;margin:4px 0 0; }
.lesson-step-number { flex-shrink:0;display:grid;place-items:center;width:28px;height:28px;border:1px solid rgb(var(--sc-lavender-rgb) / 0.322);border-radius:7px;color:var(--sc-gold);font-size:12px;background:rgb(var(--sc-lavender-rgb) / 0.035); }
.lesson-information .form-field:last-child { margin-bottom:0; }
.video-selection { border-style:solid; }
.file-picker { display:inline-flex;position:relative;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 16px;border:1px solid rgb(var(--sc-lavender-rgb) / 0.408);border-radius:6px;background:var(--sc-raised);color:var(--sc-cream);font-size:13px;font-weight:500;cursor:pointer;overflow:hidden; }
.file-picker svg { width:18px;height:18px;flex-shrink:0; }
.course-editor-page .file-picker input[type="file"] { position:absolute;inset:0;display:block;width:100%;height:100%;opacity:0;margin:0;padding:0;cursor:pointer;font-size:16px; }
.file-picker:focus-within { outline:2px solid var(--sc-gold);outline-offset:4px; }
.file-picker:has(input:disabled) { opacity:.5;cursor:default; }
#video-help,#materials-help { font-size:12px;line-height:1.5; }
.video-details { font-size:13px;line-height:1.5;padding:12px 14px;border:1px solid rgb(var(--sc-lavender-rgb) / 0.141);border-radius:6px;background:var(--sc-night); }
.video-details[data-state="missing"] { color:var(--muted); }
.video-selection-actions { gap:8px 20px;margin-top:4px; }
.video-selection-actions .access-link { font-size:12px;min-height:44px; }
.materials-selection { padding-top:20px; }
.materials-selection > summary { list-style:none;cursor:pointer;align-items:center;margin:0; }
.materials-selection > summary::-webkit-details-marker { display:none; }
.materials-chevron { flex-shrink:0;width:18px;height:18px;color:var(--sc-cream); }
.materials-selection[open] .materials-chevron { transform:rotate(180deg); }
.materials-selection-body { padding-top:20px;margin-top:20px;border-top:1px solid var(--line); }
.materials-selection .field-optional { text-align:right;white-space:nowrap; }
.materials-status { font-size:12px;line-height:1.5; }
.lesson-save-actions { display:flex;flex-direction:column;align-items:stretch;gap:18px;margin-top:24px;padding:20px;border:1px solid rgb(var(--sc-lavender-rgb) / 0.341);border-radius:8px;background:rgb(var(--sc-lavender-rgb) / 0.039); }
.lesson-publication-copy h4 { color:var(--sc-cream);font-size:16px;font-weight:500;margin-bottom:8px; }
.lesson-publication-copy p { font-size:12px;color:var(--sc-muted);line-height:1.5; }
.lesson-publication-buttons { display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px; }
.lesson-publication-buttons .button { min-height:48px;padding:14px 18px;font-size:13px; }
.lesson-publication-result { font-size:13px;color:var(--sc-gold);line-height:1.5;border-top:1px solid rgb(var(--sc-lavender-rgb) / 0.188);padding-top:14px; }
@media (max-width:1000px) { .lesson-actions { max-width:none; } }
@media (max-width:760px) { .lesson-editor { padding:18px; }.lesson-editor-heading { flex-direction:column;gap:8px; }.lesson-editor-heading-actions { width:100%;justify-content:space-between; }.lesson-form-section { padding:18px; } }
@media (max-width:560px) {
  .lessons-section > .editor-section-heading { flex-wrap:wrap;gap:12px; }
  .lessons-section > .editor-section-heading .button { width:100%;justify-content:center; }
  .lesson-form-section { padding:16px; }
  .lesson-save-actions { padding:16px; }
  .lesson-publication-buttons { flex-direction:column; }
  .lesson-publication-buttons .button { width:100%;justify-content:center; }
  .materials-selection > summary { flex-wrap:wrap;gap:8px 10px; }
  .materials-selection .field-optional { margin-left:38px;text-align:left; }
  .materials-chevron { margin-left:auto; }
  .video-selection-note { font-size:11px; }
  .file-picker { width:100%; }
}
@media (max-width:440px) { .lesson-editor { padding:14px; }.module-actions { gap:8px 18px; }.lesson-item { padding:14px; } }

.module-select { flex-direction:row;align-items:center;gap:12px; }
.module-select-copy { flex:1;min-width:0;display:flex;flex-direction:column;gap:6px; }
.module-thumbnail { position:relative;display:grid;place-items:center;width:48px;aspect-ratio:4/5;flex-shrink:0;overflow:hidden;border:1px solid rgb(var(--sc-lavender-rgb) / 0.231);border-radius:5px;background:var(--sc-night); }
.module-thumbnail-number { font-size:16px;font-variant-numeric:tabular-nums;color:var(--sc-muted); }
.module-thumbnail-image { position:absolute;inset:0;width:100%;height:100%;object-fit:cover; }
.module-select[data-cover-ready="true"] .module-thumbnail-number { visibility:hidden; }
.lesson-save-actions .lesson-published-preview { align-self:flex-end;min-height:44px;font-size:13px;padding:12px 16px; }
@media (max-width:560px) { .lesson-save-actions .lesson-published-preview { width:100%;align-self:stretch;justify-content:center; } }
@media (max-width:440px) { .module-thumbnail { width:44px; }.module-select { gap:10px;padding-inline:10px; } }
