/* Homework issuance is separate from the queue of submitted solutions. */
.homework-plan-section { margin-bottom: 24px; padding: 22px; border: 1px solid rgba(255,255,255,.12); border-radius: 20px; background: rgba(255,255,255,.025); min-width: 0; }
.homework-plan-heading { display: flex; justify-content: space-between; align-items: start; gap: 16px; }
.homework-plan-heading h2, .homework-plan-heading h3 { margin: 0 0 8px; }
.homework-plan-heading p, .homework-plan-meta, .homework-plan-field small, .homework-plan-sources { color: var(--muted); line-height: 1.6; }
.homework-plan-heading p { margin: 0; }
.homework-plan-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(260px,100%),1fr)); gap: 10px; max-height: 390px; overflow: auto; }
.homework-plan-row { display: grid; gap: 6px; min-width: 0; padding: 15px; border: 1px solid rgba(255,255,255,.12); border-radius: 12px; color: inherit; background: rgba(255,255,255,.035); text-align: left; cursor: pointer; overflow-wrap: anywhere; }
.homework-plan-row small { color: var(--muted); }
.homework-plan-composer { display: grid; gap: 18px; margin-top: 20px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.12); min-width: 0; }
.homework-plan-field { display: grid; gap: 8px; min-width: 0; line-height: 1.5; }
.homework-plan-field textarea, .homework-plan-field input, .homework-plan-field select { width: 100%; min-width: 0; max-width: 100%; padding: 12px; border: 1px solid rgba(255,255,255,.18); border-radius: 10px; color: inherit; background: #1d1720; font: inherit; font-size: 16px; }
.homework-plan-field textarea { resize: vertical; line-height: 1.6; }
.homework-plan-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.homework-plan-actions button, .homework-plan-composer button { white-space: normal; min-height: 44px; }
.homework-plan-preview summary, .homework-plan-exceptions summary { padding: 10px 0; cursor: pointer; font-weight: 700; }
.homework-plan-exceptions[open] { display: grid; gap: 14px; }
.homework-plan-meta.is-error { color: #ffc7cf; }
.homework-plan-conflict { display: grid; gap: 12px; padding: 16px; border: 1px solid #b79b64; border-radius: 12px; }
#teacher-tab-homework.is-review-mode .homework-plan-section { display: none; }
@media (max-width: 640px) {
  .homework-plan-section { padding: 14px; }
  .homework-plan-heading { flex-wrap: wrap; }
  .homework-plan-actions { display: grid; }
  .homework-plan-actions button { width: 100%; }
}

.homework-plan-composer .teacher-secondary-button, .homework-plan-composer .teacher-primary-button { padding: 10px 14px; border: 1px solid rgba(255,255,255,.2); border-radius: 10px; color: inherit; background: rgba(255,255,255,.06); font: inherit; cursor: pointer; }
.homework-plan-composer .teacher-primary-button { background: #755338; color: #fff; border-color: #aa7d49; }
.homework-plan-composer button:disabled { opacity: .5; cursor: default; }
.homework-plan-learned, .homework-plan-files { padding: 15px; border: 1px solid rgba(213,183,121,.25); border-radius: 12px; background: rgba(213,183,121,.035); }
.homework-plan-learned p { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.65; margin: 8px 0; }
.homework-plan-learned small, .homework-plan-files small { color: var(--muted, #b9aebc); line-height: 1.5; }
.homework-plan-attachment { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 12px 0; overflow-wrap: anywhere; }
.homework-plan-attachment span { min-width: 0; }
.homework-plan-field input[type=file] { padding: 8px; font-size: 13px; }
.homework-plan-field textarea:disabled { opacity: .75; }
.homework-panel { display: none; min-width: 0; overflow-y: auto; overscroll-behavior: contain; padding: 16px; }
body.is-teacher .homework-panel.is-active { display: block; }
body:not(.is-teacher) #dock-homework-tab { display: none; }
.homework-panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 18px; }
.homework-panel-heading h2 { margin: 0; font-size: 20px; }
.homework-panel-heading a { color: var(--muted, #b9aebc); font-size: 12px; }
.homework-panel-tabs { display: flex; gap: 8px; margin-bottom: 15px; }
.homework-panel-tabs button { flex: 1; padding: 11px; color: inherit; border-radius: 10px; border: 1px solid #645348; background: transparent; cursor: pointer; }
.homework-panel-tabs button[aria-selected=true] { background: #594731; }
.homework-panel .teacher-homework-shortcut { width: 100%; }
.homework-panel .teacher-homework-panel { padding: 0; border: 0; background: transparent; }
.homework-panel .homework-plan-composer { gap: 14px; }
.homework-panel .homework-plan-heading { flex-wrap: wrap; }
.homework-panel .homework-plan-actions { display: grid; }
.homework-panel .teacher-homework-review-entry { display: grid; }
.homework-plan-section .hidden, .homework-panel .hidden { display: none !important; }
.lesson-dock-tab--homework span { font-weight: 750; font-size: 13px; letter-spacing: .02em; }

.homework-panel { max-height: calc(100dvh - 12px); height: calc(100dvh - 12px); border: 1px solid rgba(255,255,255,.12); border-radius: 18px; background: #171318; }
body.materials-collapsed .homework-panel.is-active { display: none; }
@media (max-width: 900px) { .homework-panel { max-height: 75dvh; height: auto; } }

.homework-plan-learned button { margin-top: 10px; padding: 6px 10px !important; min-height: 36px; font-size: 12px !important; }
.homework-panel .homework-plan-heading { display: none; }
.homework-panel .homework-plan-composer { margin-top: 12px; padding-top: 12px; }
@media (max-width: 1100px) {
  .lesson-dock.is-homework-mode .lesson-dock-tabs { min-height: 0; flex-direction: row; gap: 8px; padding: 8px; overflow-x: auto; }
  .lesson-dock.is-homework-mode .lesson-dock-tab { flex: 0 0 48px; height: 48px; }
  .lesson-dock.is-homework-mode .homework-panel { width: 100%; max-height: 85dvh; height: auto; }
}

.homework-plan-learned-summary { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.homework-plan-learned .homework-plan-ai { min-height: 44px; padding: 10px 12px !important; font-size: 14px !important; width: 100%; }
.homework-plan-options summary, .homework-plan-private summary, .homework-plan-context-details summary { cursor: pointer; min-height: 44px; padding: 12px 0; font-size: 13px; color: var(--muted, #b9aebc); }
.homework-plan-context-details #homework-plan-refresh-context { min-height: 44px; }
.homework-panel *, .homework-plan-section * { box-sizing: border-box; }

@media (max-width: 1100px) { .lesson-dock.is-homework-mode .materials-resize-handle { display: none; } }

.homework-panel .teacher-homework-panel { max-height: none; overflow: visible; }
.homework-panel .teacher-homework-student-select { min-height: 44px; }

.explorer-board-row .board-library-homework { grid-column: 2 / -1; width: auto; min-height: 44px; padding: 4px 8px; text-align: left; font-size: 12px; }
.material-row-menu .material-homework-button { min-height: 44px; }

#teacher-tab-homework.is-review-mode > .homework-panel-tabs { display: none; }

/* A single folder collects chosen tasks and attachments before one send. */
.homework-plan-yellow-folder { padding: 14px; border: 1px solid #b78a39; border-radius: 14px; background: rgba(213,164,62,.065); min-width: 0; }
.homework-plan-yellow-folder > header { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.homework-plan-yellow-folder > header .teacher-homework-shortcut-icon { flex: 0 0 30px; width: 30px; height: 25px; }
.homework-plan-yellow-folder > small, .homework-plan-candidates > small { display: block; line-height: 1.5; color: var(--muted, #b9aebc); }
.homework-plan-candidates, .homework-plan-selected-tasks { display: grid; gap: 10px; min-width: 0; }
.homework-plan-pick-options { display: grid; grid-template-columns: minmax(70px, .4fr) minmax(0, 1fr); gap: 10px; }
.homework-plan-pick-options select { width: 100%; min-width: 0; min-height: 44px; padding: 8px; border: 1px solid #776b7b; border-radius: 9px; background: #27222b; color: #faf5fc; font: inherit; }
.homework-plan-candidate-navigation { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.homework-plan-candidate-navigation button { min-width: 44px; min-height: 44px; }
.homework-plan-candidate-card { min-width: 0; padding: 10px; border: 1px solid rgba(255,255,255,.16); border-radius: 12px; }
.homework-plan-task-source { display: block; color: var(--muted, #b9aebc); overflow-wrap: anywhere; line-height: 1.4; margin-bottom: 8px; }
.homework-plan-source-difficulty { display: block; margin: -2px 0 8px; font-size: 12px; line-height: 1.5; color: var(--muted, #b9aebc); overflow-wrap: anywhere; }
.homework-plan-geometry-methods { min-width: 0; margin-bottom: 8px; font-size: 12px; color: var(--muted, #b9aebc); }
.homework-plan-geometry-methods > summary { cursor: pointer; padding: 12px 0; min-height: 44px; box-sizing: border-box; }
.homework-plan-geometry-labels { margin: 0 0 8px; line-height: 1.5; overflow-wrap: anywhere; }
.homework-plan-candidate-card .homework-plan-task-choice { border-color: transparent; padding: 4px; background: transparent; }
.homework-plan-candidate-card .homework-plan-candidate-replace { min-height: 44px; margin-top: 6px; font-size: 12px; }
.homework-plan-task-choice, .homework-plan-selected-task { padding: 12px; text-align: left; color: inherit; background: rgba(255,255,255,.025); border: 1px solid rgba(255,255,255,.16); border-radius: 10px; min-width: 0; overflow-wrap: anywhere; }
.homework-plan-task-choice { display: grid; gap: 8px; cursor: pointer; width: 100%; font: inherit; }
.homework-plan-task-choice[aria-pressed=true] { border-color: #8b9b66; }
.homework-plan-task-condition { white-space: pre-wrap; line-height: 1.6; overflow-x: auto; max-width: 100%; }
.homework-plan-task-condition teacherdeck-math, .homework-plan-task-answer-content teacherdeck-math, .homework-plan-teacher-insight-content teacherdeck-math { max-width: 100%; white-space: normal; }
.homework-plan-selected-task > small { color: var(--muted, #b9aebc); }
.homework-plan-selected-task > button { margin-top: 8px; font-size: 12px !important; }
.homework-plan-file-add { display: block; padding: 12px 0; min-height: 44px; color: #f0d59b; cursor: pointer; }
.homework-plan-manual > summary { min-height: 44px; padding: 12px 0; cursor: pointer; }
.homework-plan-manual button { margin: 10px 0; }
.homework-plan-options[open] > *:not(summary), .homework-plan-private[open] > *:not(summary) { margin-bottom: 14px; }
.homework-plan-empty { color: var(--muted, #b9aebc); line-height: 1.5; }
.materials-homework-drop { margin: 8px 0 16px; width: 100%; }
.materials-homework-drop small { display: block; margin-top: 4px; color: var(--muted, #b9aebc); font-size: 11px; }
.materials-homework-drop.is-drop-target { outline: 2px solid #e5b954; background: #574428; }
.teacher-homework-review-active { display: grid; gap: 10px; padding: 14px; border: 1px solid #b78a39; border-radius: 12px; min-width: 0; overflow-wrap: anywhere; }
.teacher-homework-review-active p { margin: 0; color: var(--muted, #b9aebc); }
.teacher-homework-review-active button { min-height: 44px; padding: 10px; color: inherit; border: 1px solid #8f7350; border-radius: 10px; background: #3c3024; cursor: pointer; }
.homework-review-modes { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.homework-review-modes button { min-height: 44px; border-radius: 10px; padding: 10px; border: 1px solid #685669; background: transparent; color: inherit; cursor: pointer; }
.homework-review-modes button[aria-pressed="true"] { background: #514053; border-color: #c3a4cc; }
.homework-review-mode-status { margin: 0; color: var(--muted, #b9aebc); font-size: 13px; line-height: 1.45; }
.homework-return-details summary { cursor: pointer; padding: 8px 0; }
.homework-return-details[open] { display: grid; gap: 8px; }

.homework-plan-yellow-folder.is-drop-target { outline: 2px solid #e5b954; background: rgba(213,164,62,.18); }

.homework-plan-task-condition.homework-assignment-text { padding: 10px; line-height: 1.5; font-size: 14px; }
.homework-plan-task-condition.homework-assignment-text teacherdeck-math.is-inline, .homework-plan-task-answer-content teacherdeck-math.is-inline, .homework-plan-teacher-insight-content teacherdeck-math.is-inline { display: inline-block; vertical-align: middle; margin: 0 .1em; }
.homework-plan-composer .homework-plan-task-choice[aria-pressed=true]:disabled { opacity: .85; }

.homework-return-comment { display: grid; gap: 7px; margin: 12px 0; min-width: 0; font-size: .85rem; }
.homework-return-comment > span { font-weight: 700; }
.homework-return-comment small { color: var(--muted, #c0b7c1); font-size: .75rem; font-weight: 400; }
.homework-return-comment textarea { box-sizing: border-box; display: block; width: 100%; min-height: 76px; max-height: 240px; padding: 10px 12px; border: 1px solid rgba(255,255,255,.16); border-radius: 12px; background: rgba(0,0,0,.16); color: inherit; font: inherit; line-height: 1.4; resize: vertical; }
.homework-return-comment textarea:focus-visible { outline: 2px solid #ed7c9c; outline-offset: 2px; }
.homework-return-comment textarea:disabled { opacity: .6; }

/* Programming tasks keep their exact indentation; narrow cards scroll the code only. */
.homework-assignment-text .homework-code { display: block; box-sizing: border-box; max-width: 100%; min-width: 0; margin: 10px 0; padding: 12px; border: 1px solid #d9dde3; border-radius: 8px; background: #f3f5f7; color: #202731; overflow-x: auto; white-space: pre; overflow-wrap: normal; word-break: normal; text-align: left; tab-size: 4; line-height: 1.55; font: 13px/1.55 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.homework-assignment-text .homework-code code { padding: 0; border: 0; background: none; color: inherit; font: inherit; white-space: inherit; overflow-wrap: inherit; word-break: inherit; }

.homework-saved-reviews { margin: 12px 0; }
.homework-saved-reviews > summary { cursor: pointer; padding: 10px 0; font-weight: 600; }
.homework-saved-reviews-list { display: flex; gap: 8px; flex-wrap: wrap; padding: 8px 0; }
.homework-saved-reviews-list button { padding: 10px 14px; border-radius: 12px; border: 1px solid #8f819b; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.homework-saved-review { width: min(1200px, 96vw); height: 92dvh; max-width: 100vw; max-height: 100dvh; box-sizing: border-box; border: 1px solid #8f819b; border-radius: 16px; padding: 16px; color: #f5f2f8; background: #201d26; }
.homework-saved-review[open] { display: flex; flex-direction: column; gap: 10px; }
.homework-saved-review::backdrop { background: rgb(0 0 0 / 65%); }
.homework-saved-review-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.homework-saved-review-head h2 { margin: 0; font-size: 20px; }
.homework-saved-review-toolbar { display: flex; gap: 8px; flex-wrap: wrap; }
.homework-saved-review-toolbar :is(select, button) { padding: 9px 12px; min-height: 40px; background: #312b3a; color: inherit; border: 1px solid #8f819b; border-radius: 9px; }
.homework-saved-review-toolbar select { max-width: 100%; flex: 1; min-width: 120px; }
.homework-saved-review-toolbar [aria-pressed="true"] { border-color: #d4b8f3; background: #594169; }
.homework-saved-review-status { margin: 0; font-size: 13px; }
.homework-saved-review-board { flex: 1; min-height: 0; overflow: hidden; border-radius: 10px; }
.homework-saved-review-board teacherdeck-board { display: block; width: 100%; height: 100%; }
.homework-saved-review-python { flex: 1; overflow: auto; min-height: 0; }
.homework-saved-review-python pre { overflow: auto; padding: 14px; background: #141218; border-radius: 10px; white-space: pre; }
.homework-saved-review-python img { max-width: 100%; }
.homework-saved-review [hidden] { display: none !important; }
@media (max-width: 600px) { .homework-saved-review { width: 100vw; height: 100dvh; margin: 0; border-radius: 0; padding: 10px; } }
.homework-saved-review-head button { padding: 9px 14px; border: 1px solid #8f819b; border-radius: 9px; color: inherit; background: #312b3a; font: inherit; cursor: pointer; }

/* Both sources are visible together and share one homework folder. */
.homework-plan-source-hint, .homework-plan-group-status { color: var(--muted, #b9aebc); font-size: 12px; line-height: 1.4; }
.homework-plan-source-hint { margin: 0; }
.homework-plan-candidate-group { display: grid; gap: 10px; align-content: start; min-width: 0; }
.homework-plan-candidate-group > h3 { margin: 0; font-size: 16px; }
.homework-plan-group-status { margin: 0; overflow-wrap: anywhere; }
.homework-plan-selection-reason { margin: 0 0 10px; color: var(--muted, #b9aebc); font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.homework-plan-source-preview { display: grid; gap: 8px; min-width: 0; }
.homework-plan-source-image { display: block; width: 100%; max-width: 100%; height: auto; border-radius: 6px; background: #fff; }
.homework-plan-source-enlarge { display: block; position: relative; width: 100%; padding: 0; border: 0; border-radius: 6px; background: transparent; cursor: zoom-in; }
.homework-plan-source-enlarge::after { content: "⤢"; position: absolute; right: 6px; bottom: 6px; display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid #c8bda6; border-radius: 6px; background: #fffefb; color: #45392b; font: 22px/1 sans-serif; }
.homework-plan-source-enlarge:focus-visible { outline: 3px solid #ddb875; outline-offset: 3px; }
.homework-plan-image-dialog { box-sizing: border-box; width: min(1120px, calc(100vw - 24px)); max-width: none; max-height: calc(100dvh - 24px); margin: auto; padding: 14px; border: 1px solid #c8bda6; border-radius: 12px; background: #fffefb; color: #292126; box-shadow: 0 12px 60px #0008; }
.homework-plan-image-dialog::backdrop { background: #161219c9; }
.homework-plan-image-dialog > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; font: 14px/1.4 system-ui, sans-serif; }
.homework-plan-image-dialog > header strong { min-width: 0; overflow-wrap: anywhere; }
.homework-plan-image-close { flex: 0 0 auto; min-height: 44px; padding: 10px 14px; border: 1px solid #c8bda6; border-radius: 8px; background: #f3ead8; color: #292126; font: inherit; cursor: pointer; }
.homework-plan-image-viewport { max-height: calc(100dvh - 132px); overflow: auto; overscroll-behavior: contain; }
.homework-plan-image-original { display: block; width: max(100%, 780px); max-width: none; height: auto; background: #fff; }
.homework-plan-source-preview + .homework-plan-source-preview { margin-top: 8px; }
.homework-plan-choice-hint:empty { display: none; }
.homework-plan-choice-hint { font-size: 12px; }
.homework-plan-teacher-insight { min-width: 0; margin-top: 10px; }
.homework-plan-teacher-insight-label, .homework-plan-teacher-insight-source { display: block; color: var(--muted, #b9aebc); font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.homework-plan-teacher-insight-label { margin-bottom: 6px; }
.homework-plan-teacher-insight-content.homework-assignment-text { padding: 10px; font-size: 13px; line-height: 1.5; }
.homework-plan-teacher-insight-source { margin-top: 8px; }
.homework-plan-task-answer { min-width: 0; margin-top: 6px; }
.homework-plan-task-answer > summary { cursor: pointer; box-sizing: border-box; min-height: 44px; padding: 12px 0; font-size: 12px; color: var(--muted, #b9aebc); }
.homework-plan-task-answer-content { white-space: pre-wrap; line-height: 1.5; max-width: 100%; overflow-x: auto; overflow-wrap: anywhere; }

.homework-plan-composer { container-type: inline-size; }
@container (min-width: 720px) {
  .homework-plan-candidates { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
}

.homework-plan-provider { max-width: 22rem; }
.homework-plan-provider select { width: 100%; min-height: 42px; }
.homework-plan-provider-hint { display: block; margin: 0 0 10px; color: var(--muted, #bdb5b7); overflow-wrap: anywhere; }
