:root{--cream:#fcf2e7;--ink:#2d1a12;--brown:#884823;--line:#eac5a8;--muted:#66615f;--paper:rgba(255,253,249,.94)}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--cream) url("../images/background.200ac232aac4.png") center top/cover fixed no-repeat;color:var(--ink);font:16px/1.55 'Segoe UI',Arial,sans-serif}a{color:inherit}button,input{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #406aa0;outline-offset:4px}.topbar{max-width:1440px;min-height:78px;margin:0 auto;padding:14px 38px;background:linear-gradient(110deg,#854723,#925631,#7c401f);border-radius:0 0 28px 28px;display:flex;align-items:center;justify-content:space-between;gap:24px;color:#fff8ed}.brand{display:flex;align-items:center;gap:24px;text-decoration:none;font:38px/1.2 Georgia,'Times New Roman',serif}.brand svg{width:64px;height:42px;fill:none;stroke:currentColor;stroke-width:1.5}.header-note{font-size:14px;color:#f1dccb}.account{display:flex;align-items:center;gap:24px}.account form{margin:0}.logout{border:0;border-left:1px solid #c19370;background:none;color:inherit;padding:6px 0 6px 24px}.logout span{margin-left:8px}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Georgia,'Times New Roman',serif;color:#24150f}h1{font-size:clamp(34px,3.5vw,54px);line-height:1.15;margin-bottom:12px}h2{font-size:30px;line-height:1.25;margin-bottom:20px}h3{font-size:20px;font-weight:500;margin-bottom:8px}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:14px;font-weight:600;color:var(--brown);margin-bottom:16px}.intro{font-size:20px;color:var(--muted);margin-bottom:34px}.panel{border:1px solid var(--line);border-radius:16px;background:var(--paper);box-shadow:0 12px 30px #9b603008}.login-layout{padding:64px 24px 32px}.login-panel{max-width:730px;margin:auto;padding:46px 70px 32px;text-align:center}.login-panel h1{font-size:44px}.login-panel .intro{font-size:18px}.login-form{text-align:left;margin:30px 0 24px}.login-form label{display:block;margin:20px 0 8px;font-weight:600}.login-form input:not([type=hidden]){width:100%;border:1px solid #cfc5bd;border-radius:10px;background:#fffdfa;min-height:54px;padding:12px 16px;color:var(--ink)}.primary{width:100%;margin-top:32px;min-height:56px;border:1px solid #794122;border-radius:30px;background:linear-gradient(110deg,#874a29,#965c36);color:#fff8ed;font-size:19px}.primary:hover{background:#753d21}.primary span{margin-left:25px;font-size:25px}.hint{font-size:14px;color:var(--muted);line-height:1.6}.hint strong{font-weight:500}.error{padding:12px 16px;border:1px solid #ba6554;border-radius:8px;background:#fff0e9;color:#8a2a1d}.workspace{max-width:1672px;margin:auto;display:grid;grid-template-columns:270px 1fr;min-height:calc(100vh - 140px)}.sidebar{padding:38px 20px;border-right:1px solid #ead5c1;display:flex;flex-direction:column;justify-content:space-between}.sidebar nav a{display:flex;align-items:center;gap:20px;padding:16px 22px;text-decoration:none;border-radius:12px;font-size:19px}.sidebar .active{background:#f8e2cf}.sidebar svg{width:28px;fill:none;stroke:var(--brown);stroke-width:1.6}.side-motto{margin:220px 22px 24px;font-size:25px;color:#a36f4b}.side-motto span{display:block;border-left:1px solid #b47c52;padding-left:18px;margin-top:16px;text-transform:uppercase;letter-spacing:.13em;font-size:13px}.dashboard{padding:48px 44px 20px;max-width:1360px}.empty-panel{padding:26px 30px;margin-bottom:22px}.empty{padding:14px 15px 30px;text-align:center}.empty svg{width:48px;height:48px;fill:none;stroke:#a87852;stroke-width:1.4;margin-bottom:14px}.empty p{color:var(--muted);margin-bottom:0}.empty.compact{padding:10px 15px 18px}.stage-note{font-size:14px;color:#71665e}footer{padding:18px 32px;color:#986a47;text-align:center;font-size:15px}footer span{margin-left:16px;text-transform:uppercase;letter-spacing:.12em;font-size:12px}.skip{position:absolute;left:12px;top:-100px;background:white;padding:12px;z-index:5}.skip:focus{top:12px}@media(max-width:1000px){.topbar{border-radius:0 0 20px 20px;padding:16px 24px}.brand{font-size:30px;gap:12px}.header-note{display:none}.workspace{grid-template-columns:200px 1fr}.sidebar{padding:28px 12px}.sidebar nav a{padding:14px 12px;gap:10px;font-size:17px}.dashboard{padding:36px 24px}.login-layout{padding-top:44px}.login-panel{padding:38px 40px}.account{gap:12px}.logout{padding-left:12px}}@media(max-width:700px){.topbar{flex-wrap:wrap}.brand{font-size:27px}.brand svg{width:42px}.account{margin-left:auto;font-size:14px}.workspace{display:block}.sidebar{border-right:0;padding:16px 24px 0}.sidebar nav a{display:inline-flex}.side-motto{display:none}.dashboard{padding:26px 20px}.login-panel{padding:32px 24px}.login-panel h1{font-size:35px}.login-layout{padding:30px 16px}.empty-panel{padding:22px}.intro{font-size:18px}footer span{display:block;margin:8px 0 0}}

/* Student profiles — stage 2. */
.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px}.login-form select{width:100%;min-height:54px;background:#fffdfa;border:1px solid #cfc5bd;border-radius:10px;padding:10px 14px;font:inherit;color:var(--ink)}select:focus-visible{outline:3px solid #406aa0;outline-offset:4px}.student-entry{padding-top:36px}.student-entry .login-panel{max-width:810px;padding-top:36px}.student-entry .intro{margin-bottom:18px}.student-entry .login-form{margin-top:0}.code-entry{margin-top:24px;border-top:1px solid var(--line)}.code-entry .hint{text-align:left;margin:8px 0 0}.code-entry input{text-transform:uppercase;letter-spacing:.14em}.subtle-link{font-size:15px;color:var(--brown);text-underline-offset:4px}.button-link{display:block;text-decoration:none;padding:12px 20px;text-align:center}.student-code{font:600 clamp(24px,3.4vw,38px)/1.4 Consolas,monospace;letter-spacing:.13em;border:1px dashed #c39675;border-radius:12px;background:#faf0e3;padding:20px;margin:22px 0;color:#784221;user-select:all;overflow-wrap:anywhere}.profile-details{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:0 0 32px}.profile-details dt{color:var(--muted);font-size:15px}.profile-details dd{margin:4px 0 0;font-size:22px;overflow-wrap:anywhere}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:24px}.stat{padding:22px 26px}.stat strong{display:block;font:42px/1.4 Georgia,serif}.stat small{display:block;font-size:14px;color:var(--muted)}.success{color:#3e8851}.table-scroll{overflow-x:auto}.students-table{width:100%;border-collapse:collapse;font-size:15px;min-width:780px}.students-table th{font-size:14px;background:#f7ebdf;font-weight:600;text-align:left}.students-table td,.students-table th{padding:15px 12px;border-bottom:1px solid #e7ddd2}.students-table td:nth-child(2){overflow-wrap:anywhere;max-width:260px}.students-table time{white-space:nowrap}.count{font:16px 'Segoe UI',sans-serif;padding:6px 12px;background:#f4deca;border-radius:20px;vertical-align:middle}.error p{margin:0}.primary:disabled{opacity:.65;cursor:wait}@media(max-width:1100px){.stat-grid{gap:12px}.stat{padding:20px 16px}}@media(max-width:700px){.form-pair,.profile-details{grid-template-columns:1fr;gap:0}.profile-details{gap:18px}.stat-grid{grid-template-columns:1fr}.student-entry .login-panel{padding:28px 22px}.student-code{letter-spacing:.07em;padding:14px}.stat strong{font-size:34px}}

/* Course structure — stage 3 */
.flash-messages{max-width:1160px;margin:20px auto 0;padding:0 24px}.flash{padding:14px 20px;border:1px solid #b9ceb2;border-radius:10px;background:#f1f6ed;margin-bottom:8px}.flash.error{border-color:#c5947c;background:#fff0e5}.back-link{display:block;margin:0 0 24px;color:var(--brown);text-underline-offset:4px}.heading-row{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}.heading-row h2{margin-bottom:10px}.heading-row h2 a{text-decoration:none}.actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:24px}.action{display:inline-block;border:1px solid #854a29;border-radius:12px;background:linear-gradient(110deg,#854723,#935a34);color:#fff8ed;padding:12px 22px;min-height:48px;font:inherit;text-align:center;text-decoration:none;cursor:pointer}.action:hover{filter:brightness(.93)}.action.secondary{background:#fffaf4;color:#7d4224}.action.danger{background:#943d2e}.course-card{padding:28px 30px;margin-bottom:24px}.course-card p{overflow-wrap:anywhere}.course-form{padding:32px 40px;max-width:1000px;margin-top:28px}.form-field{margin-bottom:24px}.form-field label{display:block;font-weight:600;margin-bottom:8px}.form-field input,.form-field select,.form-field textarea{font:inherit;color:var(--ink);width:100%;min-height:50px;padding:12px 15px;background:#fffdfa;border:1px solid #cfc5bd;border-radius:9px}.form-field textarea{resize:vertical}.form-field ul{padding-left:22px;margin:0}.structure-panel{padding:28px}.structure-actions{margin-top:4px;margin-bottom:24px;gap:28px}.structure-actions a{color:var(--brown);text-underline-offset:4px}.module-card{border:1px solid #e6d1bf;border-radius:12px;margin:20px 0;background:#fffdf9;overflow:hidden}.module-card summary{display:flex;align-items:center;gap:16px;list-style:none;background:#f8ede2;padding:20px;cursor:pointer}.module-card summary::-webkit-details-marker{display:none}.module-summary{flex:1;min-width:0}.module-summary strong{display:block;font:25px/1.3 Georgia,serif;overflow-wrap:anywhere}.module-summary>span{display:block;color:var(--muted);margin-top:6px;font-size:15px;overflow-wrap:anywhere}.chevron{font-size:24px}.module-card:not([open]) .chevron{transform:rotate(-90deg)}.drag-handle{cursor:grab;color:#7c7167;font-size:24px;user-select:none;padding:3px 6px}.dragging{opacity:.45}.module-tools{padding:12px 20px;display:flex;align-items:center;gap:18px;font-size:14px;flex-wrap:wrap;border-bottom:1px solid #eee1d4}.module-tools form{margin-left:auto}.module-tools a{color:#805330}.danger-link{color:#aa402a!important}.module-tools button,.row-tools button{font:inherit;border:1px solid #dfc8b6;border-radius:6px;background:#fff9f1;color:#7c482b;min-height:34px;min-width:34px;cursor:pointer}.module-tools button:disabled,.row-tools button:disabled{opacity:.35;cursor:default}.lesson-row{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid #eee1d4}.lesson-number{background:#fae6d4;border-radius:50%;min-width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center}.lesson-title{flex:1;min-width:0;text-decoration:none;overflow-wrap:anywhere}.lesson-title small{display:block;color:var(--muted);font-size:14px}.row-tools{display:flex;align-items:center;gap:10px}.row-tools>a{font-size:24px;line-height:1;text-decoration:none}.row-tools form{display:flex;gap:4px}.status-pill{display:inline-block;background:#eee8e1;border-radius:20px;padding:4px 12px;font-size:13px;color:#625a54;white-space:nowrap}.status-pill.published{background:#e3efdf;color:#367344}.add-lesson{display:block;padding:14px;text-align:center;background:#faeee2;text-decoration:none;color:#884b27}.empty-module{padding:20px;color:var(--muted);margin:0}.publication-form{margin-top:32px;border-top:1px solid var(--line);padding-top:24px}.assignment-list{border:1px solid var(--line);padding:20px;border-radius:12px;margin:24px 0}.assignment-list label{display:flex;gap:14px;padding:12px;border-bottom:1px solid #ead9c9;align-items:center}.assignment-list input{width:20px;height:20px;accent-color:var(--brown)}.notice{padding:16px;background:#faebd7;border-radius:10px}.student-module-heading{margin:28px 0 10px;font-family:Georgia,serif;font-size:24px}.student-lesson-row{display:flex;align-items:center;gap:18px;padding:16px 0;border-bottom:1px solid #ead9c9}.student-lesson-row>span:nth-child(2){flex:1;overflow-wrap:anywhere}progress{accent-color:var(--brown);width:100%;height:10px}.cohort-hint{margin-top:16px!important}@media(max-width:1150px){.lesson-row{flex-wrap:wrap}.row-tools{margin-left:auto}.course-form{padding:28px}.structure-panel{padding:20px}.module-tools{gap:12px}}@media(max-width:700px){.heading-row{gap:12px}.course-form,.course-card{padding:24px 20px}.module-summary strong{font-size:21px}.student-lesson-row{flex-wrap:wrap}.lesson-row{padding:12px 10px}.status-pill{font-size:12px}.structure-panel{padding:12px}.module-card summary{padding:16px 12px}}
/* Lesson builder and shared material rendering — stage 4 */
.builder-layout{max-width:1500px;margin:30px auto;padding:0 24px}.builder-panel{padding:28px}.builder-top{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;flex-wrap:wrap}.builder-top h1{font-size:38px;margin-bottom:12px}.builder-top .actions{margin:0}.builder-top .action{padding:10px 16px;font-size:15px}.builder-columns{display:grid;grid-template-columns:230px minmax(0,1fr);gap:24px;margin:24px 0}.block-palette{align-self:start;position:sticky;top:16px;background:#fffaf4;padding:20px 14px;border:1px solid #ead5c2;border-radius:12px}.block-palette h2{font:23px Georgia,serif;margin-bottom:20px}.block-palette button{display:block;width:100%;border:0;border-radius:8px;background:transparent;text-align:left;padding:10px 8px;color:#4b2c1c;font:16px 'Segoe UI',sans-serif;cursor:pointer}.block-palette button:hover{background:#f6e2cf}.block-palette .eyebrow{font-size:12px;margin:20px 0 8px}.block-palette .hint{font-size:13px;margin:20px 0 0}.editor-card{margin-bottom:16px;overflow:hidden;background:#fffdf9}.editor-card-head{display:flex;align-items:center;gap:12px;padding:16px;background:#fffaf4;border-bottom:1px solid #eee0d3;flex-wrap:wrap}.editor-card-head h2{font:600 17px 'Segoe UI',sans-serif;margin:0;flex:1}.block-index{color:#8b6b52;font-size:14px}.block-tools{display:flex;gap:5px}.mini-button{border:1px solid #dfcbb9;border-radius:7px;min-height:32px;padding:5px 9px;background:#fffbf5;color:#805032;font:14px 'Segoe UI',sans-serif;cursor:pointer}.mini-button:hover{background:#f3e0cf}.mini-button:disabled{opacity:.35;cursor:default}.editor-card-body{padding:20px}.builder-field{margin:0 0 16px}.builder-field label,.rich-label{display:block;font-weight:600;font-size:15px;margin-bottom:8px}.builder-field input,.builder-field textarea,.option-editor input[type=text]{display:block;min-height:44px;width:100%;padding:10px 12px;border:1px solid #d4c9bf;border-radius:8px;background:#fff;font:16px 'Segoe UI',sans-serif;color:var(--ink)}.builder-field textarea{resize:vertical}.rich-editor{border:1px solid #d4c9bf;background:white;min-height:140px;padding:16px;border-radius:0 0 8px 8px;outline-offset:3px}.rich-toolbar{display:flex;flex-wrap:wrap;gap:6px;background:#f6ebdf;border:1px solid #d4c9bf;padding:8px;border-bottom:0;border-radius:8px 8px 0 0}.rich-editor:focus{outline:2px solid #5680a4}.option-editor{display:flex;gap:10px;align-items:center;margin-bottom:10px}.option-editor input[type=radio],.option-editor input[type=checkbox]{min-width:19px;height:19px;accent-color:#804820}.task-settings{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:22px;padding-top:18px;border-top:1px solid #eddfd3}.task-settings .builder-field{max-width:160px;margin:0}.required-setting{display:flex;gap:10px;align-items:center;font-size:15px}.required-setting input{width:20px;height:20px;accent-color:#894b26}.allowed-types{border:1px solid #e7d3c0;border-radius:8px;padding:12px;margin:16px 0}.allowed-types label{display:inline-flex;align-items:center;gap:5px;margin:6px 12px 6px 0}.asset-preview img{display:block;max-width:100%;max-height:270px;border-radius:10px;margin-top:12px}.asset-preview audio{width:min(100%,500px)}.builder-panel #save-status{font-size:14px;color:#6a675f;margin:16px 0}.builder-panel [hidden]{display:none!important}.lesson-layout{max-width:1450px;margin:32px auto;display:grid;grid-template-columns:290px minmax(0,1fr);gap:20px;padding:0 24px}.lesson-navigation{padding:26px;align-self:start;position:sticky;top:20px}.lesson-navigation h2{font-size:25px;overflow-wrap:anywhere}.lesson-navigation>a:not(.back-link){display:block;text-decoration:none;border-radius:9px;padding:11px 12px;margin-bottom:6px;overflow-wrap:anywhere}.current-lesson{background:#f5dfc9;font-weight:600}.nav-module{margin:20px 0 10px;color:#825438;font-weight:600}.lesson-content{padding:36px 40px}.lesson-content h1{font-size:40px}.lesson-block{padding:25px;margin:20px 0;box-shadow:none;background:#fffdf9;overflow-wrap:anywhere}.lesson-block h2{font-size:27px}.lesson-image{max-width:100%;max-height:650px;object-fit:contain;border-radius:10px;display:block;margin:auto}.lesson-block audio{width:100%}.lesson-video{width:100%;aspect-ratio:16/9;border:0;border-radius:12px;margin-bottom:15px}.media-caption{font-size:15px;color:#6c6761;margin:14px 0 0}.rich-output p:last-child{margin-bottom:0}.rich-output ul,.rich-output ol{padding-left:28px}.task-top{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}.task-top h2{font:600 19px 'Segoe UI',sans-serif;margin-bottom:14px}.task-prompt{white-space:pre-wrap}.answer-options{border:0;padding:0;margin:12px 0}.answer-options label{display:flex;align-items:flex-start;gap:10px;margin:14px 0}.answer-options input{margin-top:5px;accent-color:#834a25}.answer-input{width:100%;border:1px solid #d5cbbf;border-radius:9px;padding:13px;font:16px 'Segoe UI',sans-serif;resize:vertical}.student-upload-preview{padding:25px;border:1px dashed #ccad95;border-radius:10px;text-align:center;background:#fdf7ef}.student-upload-preview p{margin-bottom:8px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.course-publish-form{margin:20px 0}.course-publish-form .hint{margin:12px 0}@media(max-width:1100px){.builder-columns{grid-template-columns:190px minmax(0,1fr);gap:16px}.builder-panel{padding:20px}.block-tools{flex-wrap:wrap}.lesson-layout{grid-template-columns:220px minmax(0,1fr)}.lesson-content{padding:28px 24px}.lesson-block{padding:20px}.builder-top h1{font-size:32px}}@media(max-width:760px){.builder-layout{padding:0 12px}.builder-columns{grid-template-columns:1fr}.block-palette{position:static}.block-palette button{display:inline-block;width:auto;padding:10px}.block-palette .hint{display:none}.lesson-layout{grid-template-columns:1fr;padding:0 12px}.lesson-navigation{position:static}.lesson-content{padding:24px 18px}.lesson-content h1{font-size:32px}.builder-panel{padding:16px}.editor-card-body{padding:16px}.block-tools{width:100%}}

/* Saved answers and supplementary course materials. */
.lesson-progress{padding:12px 0 20px}.lesson-progress progress{width:100%;height:12px}
.answer-options label.correct-option{background:#e9f2e7;border:1px solid #639b6d;border-radius:8px;padding:10px}
.answer-options label.incorrect-option{background:#fbede7;border:1px solid #bb806b;border-radius:8px;padding:10px}
.answer-options[disabled]{opacity:1}.answer-options[disabled] input{opacity:1}
.submitted-answer{white-space:normal;overflow-wrap:anywhere;padding:16px;background:#f8f1e8;border:1px solid #decfc0;border-radius:8px}
.review-note{color:#32689c}.task-filled{display:block;color:#416f4b;min-height:1.4em;margin-bottom:8px}
.answer-actions{margin-top:24px;gap:14px}.saved-file{overflow-wrap:anywhere}.remove-file{font-size:14px;margin-top:12px}
.answer-task input[type=file]{display:block;width:100%;margin-top:8px}.submitted-notice{margin-bottom:24px}

/* Teacher review desk, matching the warm course interface. */
.review-dashboard{max-width:none;min-width:0}.review-columns{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,1fr);gap:20px;align-items:start}
.review-list,.review-detail{padding:22px;min-width:0}.review-list h2,.review-detail h2{font-size:28px;margin-top:0}
.review-filters{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.review-filters a{padding:9px 13px;background:#f7eee5;border-radius:9px;text-decoration:none}.review-filters .active{background:#89502d;color:#fff}
.review-table{width:100%;border-collapse:collapse;font-size:14px}.review-table th{background:#f7eee5;text-align:left;padding:13px 8px}.review-table td{padding:15px 8px;border-bottom:1px solid #e6d9ca;vertical-align:top}.review-table small{display:block;margin-top:5px;color:#766b60}.review-table a{text-decoration:none}.review-table .selected-work{background:#f9e7d7}
.review-status{display:inline-block;padding:6px 10px;border-radius:20px;font-size:13px;white-space:nowrap}.review-status.new{color:#915722;background:#fff1df}.review-status.checked{color:#2d7044;background:#e8f1e5}
.review-prompt{padding:14px;background:#f6eee5;border-radius:8px;overflow-wrap:anywhere}.review-detail h3{margin-top:22px}.file-name{overflow-wrap:anywhere}
.review-form{margin-top:24px}.review-form label{display:block;font-weight:600;margin:16px 0 8px}.review-form input:not([type=hidden]){padding:12px;width:110px;border:1px solid #cabeb2;border-radius:8px;font:inherit}.review-form textarea{width:100%;box-sizing:border-box;padding:12px;border:1px solid #cabeb2;border-radius:8px;font:inherit;resize:vertical}.review-buttons{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.review-buttons button{font-size:14px}
.teacher-feedback{margin-top:18px;padding:14px 18px;background:#edf4e9;border-left:3px solid #719766;border-radius:8px;overflow-wrap:anywhere}.teacher-feedback h3{font-size:17px}.review-attempt{max-width:1040px;margin:32px auto;padding:32px}
@media(max-width:1250px){.review-columns{grid-template-columns:1fr}.review-list .table-scroll{max-height:440px}.review-detail{max-width:none}}

/* Lesson reviews and shared progress */
.review-exercise{padding:24px 0;border-top:1px solid #e6d8cc}.review-exercise textarea{width:100%;min-height:100px}.review-exercise .submitted-answer{margin:16px 0}.review-detail{margin-top:24px}.selected-work{background:#f9e7d8}.students-table small{display:block;margin-top:6px;color:#777;font-size:12px}.progress-columns{display:grid;grid-template-columns:minmax(0,2.4fr) minmax(240px,1fr);gap:22px;align-items:start}.progress-course{padding:24px;margin-bottom:24px}.progress-course progress{width:100%;height:12px;accent-color:#875130}.recent-lessons{padding:22px}.recent-lesson{padding:15px 0;border-bottom:1px solid #e6d8cc}.progress-status{color:#777}.progress-status.checked{color:#2d8048}.progress-status.in-progress{color:#326cba}.progress-status.pending{color:#9c601c}.student-lesson-row{flex-wrap:wrap}.review-row{cursor:pointer}.review-row:focus{outline:2px solid #875130}
@media(max-width:1250px){.progress-columns{grid-template-columns:1fr}}

.dashboard,.progress-columns>*,.stat-grid>*{min-width:0}.progress-course,.recent-lessons,.review-detail{overflow-wrap:anywhere}.review-exercise textarea{box-sizing:border-box}.progress-columns .table-scroll{max-width:100%}


.progress-course .students-table{min-width:0;width:100%;table-layout:fixed}.progress-course .students-table th,.progress-course .students-table td{white-space:normal;padding:12px 9px}.progress-course .students-table th:first-child{width:33%}


.brand .brand-logo{width:86px;height:30px;flex-shrink:0;stroke:none}.photo-answer{margin-top:16px}.photo-answer input[type=file]{max-width:100%}

/* Choice tables: preserve readable column widths, scroll on smaller screens. */
.answer-grid-scroll{max-width:100%;overflow-x:auto;margin:12px 0}.grid-answer-fieldset{min-width:0;border:0;padding:0}.answer-grid{border-collapse:collapse;width:100%}.answer-grid th,.answer-grid td{padding:14px;min-width:95px;text-align:center;border-bottom:1px solid #ead5c1}.answer-grid th:first-child{text-align:left;min-width:130px}.answer-grid input{width:20px;height:20px;accent-color:#874a29}.answer-grid label{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px;border-radius:8px}.grid-row-editor{border:1px solid #ead5c1;border-radius:8px;padding:14px;margin:16px 0}.grid-key-option{display:inline-flex;gap:6px;margin:8px 14px 8px 0}.grid-key-option input{width:18px;height:18px}.editor-card-body .option-editor .builder-field{flex:1;min-width:0}.lesson-row .row-tools{flex-wrap:wrap}

/* Preserve explicit line breaks in materialized learning text. */
.rich-output, .rich-editor { white-space: pre-line; }
.legal-text { overflow-wrap: anywhere; line-height: 1.7; }
footer nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; margin-top: 1rem; }

/* Scenario course fields follow the existing teacher form proportions. */
#scenario-course-form .panel{padding:24px;margin:20px 0}
#scenario-course-form textarea{display:block;width:100%;min-height:90px;padding:12px;border:1px solid #cfc5bd;border-radius:10px;background:#fffdfa;color:var(--ink);font:inherit;resize:vertical}
#scenario-course-form input[type=checkbox]{display:inline-block;width:20px;min-height:20px;height:20px;padding:0;margin:0 10px 0 0;vertical-align:middle;accent-color:var(--brown)}
#scenario-course-form .action{margin:6px 6px 6px 0}

.scenario-name{font:26px Georgia,serif;background:none;border:0;color:var(--ink);padding:0;text-align:left}.scenario-properties label{display:inline-block;margin:10px}.scenario-properties input:not([type=checkbox]){padding:8px;max-width:100%}.material-panel{padding:20px;margin:18px 0}.material-panel table{width:100%;border-collapse:collapse}.material-panel td,.material-panel th{padding:6px;text-align:left}.material-panel input{width:100%;padding:8px;border:1px solid var(--line);border-radius:6px}.material-panel button{margin:6px}.material-panel select{max-width:100%}.material-rule{padding:12px;margin:12px 0;background:#fff8ef;border-radius:8px}.material-rule label{display:block;margin:8px 0}.material-rule input[type=number]{width:90px}.material-placeholder{padding:12px;border:1px dashed var(--line);border-radius:8px}.scenario-properties input[type=checkbox]{width:18px;height:18px}

/* The document scrolls normally; only the material list has its own scroll. */
.builder-layout{min-width:0;--editor-top-height:0px;--editor-sticky-height:0px}
.builder-top{position:sticky;top:0;z-index:20;background:#fffdf9;padding:10px 0;border-bottom:1px solid #ead5c2}
.builder-top h1{overflow-wrap:anywhere}
.builder-columns>div{min-width:0}
.builder-layout #used-material{position:sticky;top:var(--editor-top-height);z-index:19;background:#fffdf9;padding:8px 12px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px}
.builder-layout #used-material[hidden]{display:none}
.material-content{flex:1;min-width:0}.material-content[open]{flex-basis:100%}
.material-content summary{font-weight:600;font-size:18px;cursor:pointer;padding:8px 0}
.material-scroll{max-height:clamp(64px,calc(48dvh - var(--editor-top-height) - 112px),200px);overflow:auto;padding:0 8px 12px 0;overscroll-behavior:contain}
.builder-layout #used-material>.action{margin:0;padding:8px 12px;min-height:38px;font-size:14px}
.builder-layout .block-palette{top:calc(var(--editor-sticky-height) + 12px)}
.builder-layout .editor-card,.builder-layout input,.builder-layout textarea,.builder-layout [contenteditable]{scroll-margin-top:calc(var(--editor-sticky-height) + 16px)}
.attachment-item{padding:12px 0;border-bottom:1px solid #ead5c2}
.attachment-item>.mini-button{display:block;margin-top:10px}
.review-open-lesson{position:sticky;top:8px;z-index:5;background:#fffdf9;padding:12px;border:1px solid #ead5c2;border-radius:8px}
#builder-preview{width:min(1200px,96vw);height:92dvh;padding:0;border:1px solid #ead5c2;border-radius:12px}
#builder-preview[open]{display:flex;flex-direction:column}#builder-preview::backdrop{background:#281a1199}
.preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;flex-shrink:0;flex-wrap:wrap}
#builder-preview iframe{border:0;width:100%;flex:1;min-height:0}
@media(max-width:760px){.builder-top{gap:8px}.builder-top h1{font-size:26px;margin-bottom:8px}.builder-top .actions{gap:6px}.builder-top .action{padding:8px;font-size:14px;min-height:38px}.builder-layout #used-material{padding:6px 8px;gap:4px}.material-content summary{font-size:16px}.builder-layout .material-content{flex-basis:100%}.builder-layout .block-palette{position:static}}

/* Limited, shared block and rich-text palettes. */
.block-color-blue{--block-tint:#edf5fc}.block-color-green{--block-tint:#edf6ee}.block-color-peach{--block-tint:#fff0e5}.block-color-lilac{--block-tint:#f3eef9}.block-color-yellow{--block-tint:#fff8db}
.lesson-block[class*=block-color-]:not(.block-color-default),.editor-card[class*=block-color-]:not(.block-color-default){background:var(--block-tint)}
.editor-card[class*=block-color-]:not(.block-color-default) .editor-card-head{background:var(--block-tint)}
.block-colors summary{cursor:pointer;padding:5px;border:1px solid #dfcbb9;border-radius:7px;list-style:none}.block-color-menu{display:flex;flex-wrap:wrap;gap:4px;max-width:220px;padding:6px}.block-color-menu button{background:var(--block-tint,#fffdf9)}
.block-colors[open]{max-width:100%}.rich-toolbar{flex-wrap:wrap}.rich-toolbar select{max-width:100%;padding:6px;border:1px solid #dfcbb9;border-radius:7px;background:#fffaf4;color:var(--ink)}
.text-color-default{color:#2d1a12}.text-color-brown{color:#805032}.text-color-red{color:#a12622}.text-color-blue{color:#245b96}.text-color-green{color:#28633c}.text-color-purple{color:#70408b}
@counter-style lesson-russian{system:alphabetic;symbols:"а" "б" "в" "г" "д" "е" "ё" "ж" "з" "и" "й" "к" "л" "м" "н" "о" "п" "р" "с" "т" "у" "ф" "х" "ц" "ч" "ш" "щ" "ъ" "ы" "ь" "э" "ю" "я";suffix:". "}
@counter-style lesson-korean{system:alphabetic;symbols:"가" "나" "다" "라" "마" "바" "사" "아" "자" "차" "카" "타" "파" "하";suffix:". "}
:is(.rich-editor,.rich-output) ol[data-list-style=russian]{list-style-type:lesson-russian}
:is(.rich-editor,.rich-output) ol[data-list-style=english]{list-style-type:lower-alpha}
:is(.rich-editor,.rich-output) ol[data-list-style=korean]{list-style-type:lesson-korean}
.course-editor-top{position:sticky;top:0;z-index:20;background:#fffdf9;padding:12px 0}.course-editor-top h1{flex:1;margin:0;font-size:28px}.editor-back{white-space:nowrap}
@media(max-width:760px){.course-editor-top{gap:8px}.course-editor-top h1{font-size:22px}.course-editor-top .action{padding:8px;min-height:38px}.block-tools{flex-wrap:wrap}}
