*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;background:#f4f7fa;color:#0b2a4a}header{background:#0b2a4a;color:white;padding:18px 28px;display:flex;gap:24px;align-items:center}.brand{font-size:28px;font-weight:800}.brand span{color:#d7a43b;font-style:italic}main{padding:18px 28px}.card{background:#fff;border:1px solid #d7e0e8;border-radius:14px;padding:20px;box-shadow:0 4px 16px rgba(11,42,74,.06)}.auth{max-width:520px;margin:50px auto}.hidden{display:none!important}.warning{background:#fff3cd;border:1px solid #f0d98a;padding:12px;border-radius:10px;margin-bottom:16px}.grid{display:grid;grid-template-columns:250px minmax(500px,1fr) 300px;gap:20px}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.pill{display:inline-block;background:#eaf2f7;color:#1f5a8a;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700}.muted,.small{color:#617486}.row{display:flex;gap:10px}.lessonCards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.lessonCard{border:1px solid #d7e0e8;border-radius:12px;padding:16px;background:#fbfdfe}.lessonCard button{margin-top:10px}.stage{padding:10px;border-radius:9px;margin:8px 0;background:#f0f5f8;cursor:pointer}.stage.current{outline:2px solid #1d7a7a}.stage.locked{opacity:.45;cursor:not-allowed}.teacherOnly{background:#fff4d6;border:1px solid #e6ca73;border-radius:10px;padding:14px;margin:16px 0}.case{border-left:5px solid #1d7a7a;background:#fbfdfe;padding:16px 18px;margin:16px 0;border-radius:10px}.prompts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.prompts div{background:#f0f5f8;border-radius:10px;padding:12px;font-weight:700}.criteria{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin-top:12px}.criteria div{background:#f0f5f8;padding:10px;border-radius:9px}.control{display:flex;justify-content:space-between;align-items:center;border:1px solid #d7e0e8;border-radius:10px;padding:12px;margin:10px 0}button{border:0;border-radius:9px;background:#1d7a7a;color:#fff;padding:10px 14px;font-weight:700;cursor:pointer}.secondary{background:#eaf2f7;color:#0b2a4a}button:disabled{opacity:.45;cursor:not-allowed}label{display:block;font-weight:700;margin:14px 0}input,textarea{width:100%;border:1px solid #c9d5df;border-radius:9px;padding:10px;font:inherit;margin-top:6px}textarea{min-height:110px}ol{padding-left:26px}ol li{padding:8px 0;border-bottom:1px solid #e3ebf0;font-weight:700}@media(max-width:1000px){.grid{grid-template-columns:1fr}.grid>aside:last-child{order:-1}}
/* v0.8 usability refinement */
.stage{display:flex;justify-content:space-between;gap:10px;align-items:center}
.stageStatus{font-size:10px;text-transform:uppercase;letter-spacing:.04em;font-weight:800;color:#617486}
.stage.current .stageStatus{color:#1d7a7a}
.stage.locked .stageStatus{color:#8c98a3}
.revealRoadmap{margin-top:12px}
.revealRoadmapTitle{font-weight:800;margin-bottom:8px}
.revealRoadmapRow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;border:1px solid #d7e0e8;border-radius:10px;margin:8px 0;background:white}
.revealRoadmapRow.revealed{border-left:4px solid #1d7a7a}
.revealRoadmapRow.next{border-left:4px solid #d7a43b}
.revealRoadmapRow.locked{opacity:.58}
.revealStageName{font-weight:700}
.revealStatus{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#617486;margin-top:3px}
.revealRoadmapButton{white-space:nowrap}


/* =========================================================
   v0.12 — Integrated Live Classroom
   ========================================================= */

.danger{background:#a92b2b}
.liveDock{margin-bottom:16px;padding:14px 16px}
.liveDockHeader{display:flex;justify-content:space-between;align-items:center;gap:14px}
.liveDockHeader .pill{margin-right:10px}
.liveBadge{display:inline-block;margin-left:8px;background:#edf2f6;color:#617486;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:700}
.liveBadge.connected{background:#e7f5ef;color:#17654e}
.liveJoinArea{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-top:12px}
.liveJoinArea p{margin:0 12px 4px 0}
.livePinArea{background:transparent!important;border:0!important;padding:0!important;margin:0!important}
.livePinArea label{margin:0;min-width:230px}
.liveDock.collapsed #liveJoinArea,
.liveDock.collapsed #liveConnectedArea{display:none!important}

.liveVideoRow{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:14px;margin-top:14px}
.liveVideoGrid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:10px;min-height:170px}
.liveVideoTile{position:relative;background:#10202f;border-radius:10px;overflow:hidden;min-height:165px}
.liveVideoTile video-player-container{display:block;width:100%;height:100%;min-height:165px}
.liveVideoTile video-player{display:block;width:100%;height:100%;object-fit:cover}
.liveVideoLabel{position:absolute;left:8px;bottom:8px;background:rgba(0,0,0,.7);color:#fff;padding:4px 7px;border-radius:6px;font-size:12px}
.liveParticipants{border-left:1px solid #e1e8ee;padding-left:14px}
.liveParticipant{padding:8px 0;border-bottom:1px solid #e4ebf0}
.liveControls{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.liveDevicesPanel{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:10px;margin-top:10px;padding:10px;background:#f5f8fa;border-radius:10px}
.liveDevicesPanel label{margin:0}
.liveDevicesPanel select{width:100%;padding:8px;border:1px solid #c9d5df;border-radius:8px;margin-top:5px}

.shareNotice{margin-top:10px;border:1px solid #a8ddca;background:#eefaf5;border-radius:10px;padding:10px 12px;display:flex;justify-content:space-between;align-items:center;gap:12px}

/* Remote share is intentionally white rather than black. */
.remoteShareSection{margin-bottom:16px;background:#fff}
.remoteShareHeader{display:flex;justify-content:space-between;align-items:center}
#remoteShareContainer{
  display:block;
  width:100%;
  min-height:0;
  background:#fff;
  border:1px solid #e1e8ee;
  border-radius:10px;
  overflow:hidden;
}
#remoteShareContainer video-player{
  display:block;
  width:100%;
  height:auto;
  max-height:68vh;
  aspect-ratio:auto;
  object-fit:contain;
  background:#fff;
}

/* When receiving a share, the shared material becomes the primary visual,
   while live video stays visible but secondary. */
body.gfRemoteShareActive .liveVideoGrid{
  grid-template-columns:repeat(2,minmax(120px,220px));
}
body.gfRemoteShareActive .liveVideoTile,
body.gfRemoteShareActive .liveVideoTile video-player-container{
  min-height:120px;
}
body.gfRemoteShareActive .grid{
  margin-top:0;
}

@media(max-width:1000px){
  .liveVideoRow{grid-template-columns:1fr}
  .liveParticipants{border-left:0;border-top:1px solid #e1e8ee;padding-left:0;padding-top:10px}
  .liveDevicesPanel{grid-template-columns:1fr}
}

/* v0.13 compact + sticky live classroom */
#liveDock{position:sticky;top:8px;z-index:80;box-shadow:0 7px 20px rgba(11,42,74,.12)}
#liveDock.mode-compact{padding:9px 12px}
#liveDock.mode-compact .liveVideoRow{grid-template-columns:minmax(0,1fr) 180px;gap:9px;margin-top:8px}
#liveDock.mode-compact .liveVideoGrid{grid-template-columns:repeat(2,minmax(140px,1fr));gap:8px;min-height:105px}
#liveDock.mode-compact .liveVideoTile,#liveDock.mode-compact .liveVideoTile video-player-container{height:105px;min-height:105px}
#liveDock.mode-compact .liveControls{margin-top:6px}
#liveDock.mode-compact .liveParticipant{padding:3px 0}
#liveDock.mode-compact .liveParticipants{font-size:11px}
#liveDock.mode-expanded .liveVideoGrid{min-height:270px}
#liveDock.mode-expanded .liveVideoTile,#liveDock.mode-expanded .liveVideoTile video-player-container{height:270px;min-height:270px}
#liveDock.mode-collapsed{padding:6px 10px}
#liveDock.mode-collapsed #liveJoinArea,#liveDock.mode-collapsed #liveConnectedArea{display:none!important}
#liveDock .activeMode{box-shadow:inset 0 0 0 2px rgba(11,42,74,.22)}
body.gfRemoteShareActive #liveDock.mode-compact .liveVideoTile,
body.gfRemoteShareActive #liveDock.mode-compact .liveVideoTile video-player-container{height:82px;min-height:82px}
body.gfRemoteShareActive #liveDock.mode-compact .liveVideoGrid{min-height:82px}
body.gfRemoteShareActive #remoteShareContainer,
body.gfRemoteShareActive #remoteShareContainer video-player{background:#fff!important}

/* v0.13 Priority 10 MFPU accordion */
#p10{list-style:none;padding-left:0;margin:0}
.priorityItem{border-bottom:1px solid #e4ebf0;padding:4px 0}
.priorityToggle{width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;text-align:left;border:0;background:transparent;color:#0b2a4a;padding:4px 0;cursor:pointer}
.priorityToggle:hover{color:#1d7a7a}
.priorityChevron{font-size:18px;color:#1d7a7a;flex:0 0 auto}
.priorityDetails{margin:5px 0 3px;padding:8px 9px;background:#f5f8fa;border-left:3px solid #1d7a7a;border-radius:6px;font-size:12px;line-height:1.45}
.priorityDetails>div+div{margin-top:4px}
@media(max-width:900px){#liveDock{top:4px}#liveDock.mode-compact .liveVideoRow{grid-template-columns:1fr}#liveDock.mode-compact .liveParticipants{display:none}}

/* v0.13.1 — media controls moved into sticky header; colors unchanged */
.liveHeaderActions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}
.liveHeaderActions .row{gap:8px}
#liveDock.mode-compact .liveVideoRow{margin-top:6px;margin-bottom:0}
#liveDock.mode-compact #liveConnectedArea{padding-bottom:0}
#liveDock.mode-compact .liveMediaMsg:empty{display:none}
@media(max-width:1180px){
 .liveDockHeader{align-items:flex-start}
 .liveHeaderActions{gap:7px}
 .liveHeaderActions button{padding-left:10px;padding-right:10px}
}


/* =========================================================
   v0.13.2 — Reliable remote screen-share viewport
   ========================================================= */

/* Keep the remote share area visibly open as soon as a share begins.
   The white background is intentional so unused aspect-ratio space
   blends into the GUILDFluent classroom rather than appearing black. */
#remoteShareSection{
  background:#fff;
}

#remoteShareContainer{
  display:block;
  width:100%;
  min-height:430px;
  background:#fff!important;
  border:1px solid #e1e8ee;
  border-radius:10px;
  overflow:hidden;
}

#remoteShareContainer video-player{
  display:block;
  width:100%;
  min-height:430px;
  height:auto;
  max-height:72vh;
  object-fit:contain;
  background:#fff!important;
}

/* During an active remote share, make the shared content area dominant
   without hiding the compact sticky video strip. */
body.gfRemoteShareActive #remoteShareSection{
  display:block!important;
}

body.gfRemoteShareActive #remoteShareContainer{
  min-height:430px;
}

body.gfRemoteShareActive #remoteShareContainer video-player{
  min-height:430px;
}

@media(max-width:900px){
  #remoteShareContainer,
  #remoteShareContainer video-player,
  body.gfRemoteShareActive #remoteShareContainer,
  body.gfRemoteShareActive #remoteShareContainer video-player{
    min-height:280px;
  }
}

/* =========================================================
   v0.13.3 — Screen share + Priority 10 workspace
   ========================================================= */

.shareWorkspace{
  display:grid;
  grid-template-columns:minmax(0,1fr) 260px;
  gap:14px;
  align-items:start;
  margin-bottom:16px;
}

.shareWorkspace.hidden{display:none!important}

#sharePrioritySlot #priorityCard{
  position:sticky;
  top:155px;
  max-height:calc(100vh - 175px);
  overflow:auto;
}

/* Use the known-working 16:9 rendering geometry, but white instead of black.
   Width now determines height, so the share is large enough to read without
   consuming the whole viewport. */
#remoteShareContainer{
  display:block;
  width:100%;
  min-height:0!important;
  aspect-ratio:16 / 9;
  background:#fff!important;
  border:1px solid #e1e8ee;
  border-radius:10px;
  overflow:hidden;
}

#remoteShareContainer video-player{
  display:block;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  aspect-ratio:16 / 9;
  object-fit:contain;
  background:#fff!important;
}

/* When sharing, keep the sticky live video especially slim so the whole
   shared screen and Priority 10 can fit much more naturally in one view. */
body.gfRemoteShareActive #liveDock.mode-compact .liveVideoTile,
body.gfRemoteShareActive #liveDock.mode-compact .liveVideoTile video-player-container{
  height:72px;
  min-height:72px;
}
body.gfRemoteShareActive #liveDock.mode-compact .liveVideoGrid{
  min-height:72px;
}

@media(max-width:1050px){
  .shareWorkspace{grid-template-columns:minmax(0,1fr) 220px}
}

@media(max-width:820px){
  .shareWorkspace{grid-template-columns:1fr}
  #sharePrioritySlot #priorityCard{
    position:static;
    max-height:none;
  }
}

/* =========================================================
   v0.13.3.2 — Unified classroom grid
   ========================================================= */

/* One geometry for the entire lesson:
   Lesson Map | Main Workspace | Priority 10 */
.classroomGrid{
  display:grid;
  grid-template-columns:250px minmax(500px,1fr) 300px;
  gap:20px;
  align-items:start;
}

.classroomMain{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:16px;
}

/* The share viewer and normal lesson content now have exactly the same
   left/right edges because they live in the same centre column. */
#remoteShareSection,
#lessonContentCard{
  width:100%;
  min-width:0;
}

/* Priority 10 is a permanent right-hand rail while a lesson is open.
   It no longer moves into/out of separate share containers. */
#priorityCard{
  align-self:stretch;
  min-width:0;
}

body.gfRemoteShareActive #priorityCard{
  position:sticky;
  top:155px;
  max-height:calc(100vh - 175px);
  overflow:auto;
}

/* Keep the preferred v0.13.3 share proportions. */
#remoteShareContainer{
  display:block;
  width:100%;
  min-height:0!important;
  aspect-ratio:16 / 9;
  background:#fff!important;
  border:1px solid #e1e8ee;
  border-radius:10px;
  overflow:hidden;
}

#remoteShareContainer video-player{
  display:block;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  aspect-ratio:16 / 9;
  object-fit:contain;
  background:#fff!important;
}

/* Retire the old separate share-workspace layout if any legacy class remains. */
.shareWorkspace,
#sharePrioritySlot{
  display:none!important;
}

@media(max-width:1100px){
  .classroomGrid{
    grid-template-columns:220px minmax(0,1fr) 260px;
    gap:14px;
  }
}

@media(max-width:850px){
  .classroomGrid{
    grid-template-columns:1fr;
  }
  #priorityCard,
  body.gfRemoteShareActive #priorityCard{
    position:static;
    max-height:none;
    overflow:visible;
  }
}


/* =========================================================
   v0.13.3.4 — Top-edge alignment refinement
   =========================================================
   When no screen share is active, the hidden share section must not create
   vertical spacing above the lesson-content card. All three classroom cards
   therefore begin on the same top edge.
*/
.classroomMain > .hidden{
  display:none !important;
}

.classroomMain #lessonContentCard:first-child,
.classroomMain #remoteShareSection.hidden + #lessonContentCard{
  margin-top:0 !important;
}

.classroomGrid > #lessonMapCard,
.classroomGrid > .classroomMain,
.classroomGrid > #priorityCard{
  margin-top:0 !important;
}


/* =========================================================
   v0.13.3.5 — Actual classroom-column alignment fix
   =========================================================
   The centre column uses a <main> element. The site's global main selector
   adds padding:18px 28px, which was pushing the centre lesson card down and
   inward relative to Lesson Map and Priority 10.
*/
main.classroomMain{
  padding:0 !important;
  margin:0 !important;
}

/* v0.14.0 — full listening/activity renderer */
.sourceBox{
  margin:14px 0;
  padding:12px 14px;
  background:#f4f8fb;
  border:1px solid #d7e0e8;
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.sourceButton{
  display:inline-block;
  padding:9px 12px;
  border-radius:8px;
  background:#1d7a7a;
  color:#fff;
  font-weight:700;
  text-decoration:none;
}
.sourceButton:hover{filter:brightness(.95)}
.lessonCallout{
  margin:12px 0;
  padding:11px 13px;
  border-left:4px solid #d7a43b;
  background:#fff8e8;
  border-radius:8px;
}
.activityQuestion{margin-top:16px}
.optionList{display:grid;gap:8px;margin:12px 0}
.optionRow{
  display:flex;
  align-items:flex-start;
  gap:10px;
  background:#f7fafc;
  border:1px solid #e1e8ee;
  border-radius:9px;
  padding:10px 12px;
  cursor:pointer;
}
.optionRow input{margin-top:3px}
.lessonItems{display:grid;gap:8px;margin:12px 0}
.lessonItem{padding:10px 12px;background:#f7fafc;border-radius:9px;border:1px solid #e1e8ee}
.successCheck{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.successCheck span{background:#edf6f2;border-radius:999px;padding:6px 9px;font-size:12px}
.exampleList{display:grid;gap:7px;margin:10px 0}
.exampleList div{background:#f7fafc;border-radius:8px;padding:9px 11px}
.pronunciationBox,.modelSentence{margin:10px 0;padding:10px 12px;background:#f5f8fa;border-radius:8px}


/* =========================================================
   v0.14.1 — Listening answer-option alignment
   =========================================================
   Keep each checkbox visually attached to its answer text.
   The answer unit is right-aligned within the option row,
   while wrapped text remains readable and aligned with itself.
*/
.optionRow{
  display:flex !important;
  justify-content:flex-end !important;
  align-items:flex-start !important;
  gap:10px !important;
}

.optionRow input[type="checkbox"]{
  flex:0 0 auto !important;
  margin:3px 0 0 0 !important;
}

.optionRow span{
  flex:0 1 auto !important;
  width:auto !important;
  max-width:70% !important;
  text-align:left !important;
  margin:0 !important;
}


/* =========================================================
   v0.14.2 — LEFT-aligned listening answer options
   =========================================================
   Corrects v0.14.1: checkbox + answer text are grouped at the
   LEFT edge of each answer box. Wrapped lines align beneath
   the answer text, not beneath the checkbox.
*/
.optionRow{
  display:grid !important;
  grid-template-columns:18px minmax(0,1fr) !important;
  justify-content:stretch !important;
  align-items:start !important;
  column-gap:10px !important;
}

.optionRow input[type="checkbox"]{
  width:16px !important;
  height:16px !important;
  margin:3px 0 0 0 !important;
  justify-self:start !important;
}

.optionRow span{
  width:auto !important;
  max-width:none !important;
  min-width:0 !important;
  margin:0 !important;
  text-align:left !important;
  line-height:1.3 !important;
}

.guidedActivity{display:grid;gap:14px;margin-top:14px}.guidedSection{border:1px solid #d9e4ea;border-radius:12px;padding:16px;background:#fff}.guidedSection h2{margin:0 0 7px;font-size:1.08rem}.guidedInstruction{margin:0 0 12px;line-height:1.45}.guidedItems{display:grid;gap:8px}.guidedItem{background:#f3f7f9;border-radius:9px;padding:10px 12px}.guidedMatches{display:grid;gap:10px}.guidedMatch{display:grid;grid-template-columns:minmax(190px,.8fr) minmax(0,1.4fr);gap:12px;padding:12px;background:#f3f7f9;border-radius:9px}.guidedChoices{display:grid;gap:6px}.guidedExample{margin-top:10px;padding:10px 12px;border-left:4px solid #168b87;background:#f6fbfb}.guidedResponses{display:grid;gap:10px;margin-top:12px}.teacherProcedure,.teacherAnswers,.teacherFollowup{margin-top:12px}.teacherProcedure li,.teacherAnswers li,.teacherFollowup li{margin:5px 0;line-height:1.4}@media(max-width:800px){.guidedMatch{grid-template-columns:1fr}}


/* v0.14.5 — verified stage-response save */
.guidedResponseRow{
  display:flex;
  align-items:center;
  gap:12px;
  width:100%;
}
.guidedResponseRow > b{
  flex:0 0 86px;
  min-width:86px;
  white-space:nowrap;
  overflow:visible;
}
.guidedResponseRow > .stageResponseInput{
  flex:1 1 auto;
  min-width:0;
}
.stageResponseInput{
  width:100%;
  box-sizing:border-box;
  padding:9px 10px;
  border:1px solid #cddae2;
  border-radius:7px;
  background:#fff;
  font:inherit;
}
.stageResponseInput:focus{
  outline:2px solid rgba(22,139,135,.18);
  border-color:#168b87;
}
.stageResponseInput[readonly]{
  background:#f5f8fa;
  color:#314555;
}
.stageResponseStatus{
  margin:3px 0 0 32px;
  min-height:18px;
}
.stageResponseStatus.saving{color:#6c7f8d}
.stageResponseStatus.saved{color:#16705a;font-weight:700}
.stageResponseStatus.error{color:#a92b2b;font-weight:700}


/* v0.14.7 — reusable persistent response controls */
.guidedSelectable,
.guidedChoiceOption{
  display:flex;
  align-items:flex-start;
  gap:10px;
  cursor:pointer;
}
.guidedSelectable input,
.guidedChoiceOption input{
  margin-top:3px;
  flex:0 0 auto;
}
.guidedChoiceOption{
  padding:6px 0;
}
.guidedChoiceOption input:disabled,
.guidedSelectable input:disabled{
  cursor:default;
}


/* =========================================================
   v0.14.8 — response-control formatting correction
   Global form styles set input width:100%; choice controls must
   explicitly opt out of that rule.
   ========================================================= */
.stageChoiceInput,
.optionRow .stageChoiceInput,
.guidedSelectable .stageChoiceInput,
.guidedChoiceOption .stageChoiceInput{
  width:16px !important;
  min-width:16px !important;
  max-width:16px !important;
  height:16px !important;
  min-height:16px !important;
  padding:0 !important;
  margin:3px 0 0 0 !important;
  border-radius:3px;
  flex:0 0 16px !important;
  justify-self:start !important;
}

.optionRow{
  grid-template-columns:18px minmax(0,1fr) !important;
  justify-content:stretch !important;
}
.optionRow span{
  width:auto !important;
  max-width:none !important;
  min-width:0 !important;
  text-align:left !important;
}

.guidedSelectable{
  display:grid !important;
  grid-template-columns:18px minmax(0,1fr) !important;
  column-gap:10px !important;
  align-items:start !important;
  margin:0 !important;
  width:auto !important;
}
.guidedSelectable span{
  min-width:0 !important;
  width:auto !important;
  line-height:1.35 !important;
  font-weight:400 !important;
}

.guidedChoiceOption{
  display:grid !important;
  grid-template-columns:18px minmax(0,1fr) !important;
  column-gap:10px !important;
  align-items:start !important;
  margin:0 !important;
  width:auto !important;
}
.guidedChoiceOption span{
  min-width:0 !important;
  width:auto !important;
  line-height:1.35 !important;
  font-weight:400 !important;
}

.teacherProblemOptions,
.teacherRetrievalPrompts{
  margin-top:14px;
}
.teacherOptionCards{
  display:grid;
  gap:8px;
  margin-top:8px;
}
.teacherOptionCard{
  background:#fffaf0;
  border:1px solid #ead59d;
  border-radius:8px;
  padding:10px 12px;
  line-height:1.4;
}


/* =========================================================
   v0.15.0 — internal teacher assessment prototype
   ========================================================= */
.assessmentPanel{
  margin-top:18px;
  padding:16px;
  border:1px solid #bfd2df;
  border-radius:12px;
  background:#f8fbfd;
}
.assessmentHeader{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
}
.assessmentHeader h3{margin:6px 0 4px}
.assessmentStatus{
  font-size:12px;
  font-weight:700;
  color:#4d6575;
  white-space:nowrap;
}
.assessmentStatus.error,.assessmentError{color:#a92b2b}
.assessmentScaleNote{
  margin:12px 0;
  padding:9px 11px;
  background:#eef4f7;
  border-radius:8px;
  line-height:1.4;
}
.assessmentGrid{
  display:grid;
  grid-template-columns:repeat(5,minmax(120px,1fr));
  gap:10px;
}
.assessmentField{
  display:block;
  margin:0 !important;
  font-weight:700;
}
.assessmentField>span{
  display:block;
  margin-bottom:5px;
  line-height:1.25;
}
.assessmentField select{
  width:100%;
  padding:8px;
  border:1px solid #c9d5df;
  border-radius:8px;
  background:#fff;
}
.assessmentSupport{
  display:grid;
  grid-template-columns:minmax(180px,280px) 1fr;
  gap:12px;
  align-items:end;
  margin-top:14px;
}
.promptCounter{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
  padding-bottom:1px;
}
.promptCounter button{padding:8px 10px}
.assessmentCapabilities{
  margin-top:16px;
}
.assessmentCapabilities h4,.assessmentTags h4{margin:0 0 8px}
.capabilityRow{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 180px;
  gap:12px;
  align-items:center;
  margin:7px 0 !important;
  font-weight:400 !important;
}
.capabilityRow select{
  width:100%;
  padding:7px;
  border:1px solid #c9d5df;
  border-radius:8px;
  background:#fff;
}
.assessmentTags{margin-top:16px}
.tagChecks{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px 12px;
}
.assessmentTag{
  display:grid !important;
  grid-template-columns:18px minmax(0,1fr);
  gap:8px;
  align-items:start;
  margin:0 !important;
  font-weight:400 !important;
}
.assessmentTag input{
  width:16px !important;
  height:16px !important;
  min-width:16px !important;
  padding:0 !important;
  margin:2px 0 0 0 !important;
}
.assessmentWide{margin-top:14px !important}
.assessmentWide textarea{
  box-sizing:border-box;
  min-height:72px;
}
.assessmentActions{margin-top:12px}
.assessmentLoading{margin-top:14px;color:#607989;font-style:italic}
@media(max-width:1100px){
  .assessmentGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .assessmentGrid,.assessmentSupport,.tagChecks,.capabilityRow{grid-template-columns:1fr}
}

/* v0.15.1 — explicit assessment save feedback */
.assessmentStatus.saving{color:#6d6d6d}
.assessmentStatus.saved{color:#26713b}
.assessmentActions button:disabled{opacity:.72;cursor:wait}

/* =========================================================
   v0.15.2 — low-friction live evidence recording
   ========================================================= */
.postReviewDetails{margin-top:14px;border-top:1px solid #d9e4ea;padding-top:10px}
.postReviewDetails summary{cursor:pointer;font-weight:800;padding:7px 0}
.postReviewBody{padding-top:10px}
.promptReviewNote{font-size:13px;color:#607989;padding:8px 0}
.liveEvidencePanel{background:#fff;border:1px solid #c8d9e3;border-radius:10px;padding:14px}
.liveEvidenceTop{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.liveEvidenceTop h3{margin:5px 0 4px}
.recordingClock{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.recordingClock.isLive{color:#a92b2b}
.liveEvidenceActions,.liveEvidenceCounts{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:10px}
.liveEvidenceCounts{font-size:13px}
.flagButton{background:#f2f5f7;color:#243b4a;border:1px solid #bdcbd4}
.promptButton{background:#fff4dd;color:#5a4211;border:1px solid #e0c57f}
.liveEvidenceMsg{margin-top:8px;font-size:13px}
.learnerRecordingConsent{position:fixed;inset:0;background:rgba(20,35,45,.55);z-index:99999;display:grid;place-items:center;padding:20px}
.consentCard{width:min(520px,94vw);background:#fff;border-radius:14px;padding:22px;box-shadow:0 18px 60px rgba(0,0,0,.25)}
.consentCard h3{margin-top:0}
.consentActions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.learnerRecordingIndicator{position:fixed;right:18px;bottom:18px;z-index:99998;background:#fff4f4;color:#9b2020;border:1px solid #e1b3b3;border-radius:999px;padding:9px 13px;font-size:13px;font-weight:800;box-shadow:0 4px 18px rgba(0,0,0,.12)}
@media(max-width:700px){.liveEvidenceTop{display:block}.recordingClock{margin-top:8px}}

/* v0.15.4 — audio verification + recording history */
.audioWarning{margin:10px 0;padding:9px 11px;background:#fff3df;border:1px solid #e2c47f;border-radius:8px;color:#6a4a11;font-weight:700}
.recordingHistory{margin-top:16px;padding-top:12px;border-top:1px solid #d9e4ea}
.recordingHistory h4{margin:0 0 8px}
.recordingHistoryRow{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid #edf1f4}
.recordingHistoryRow button{padding:7px 10px}
.historyWarning{color:#a85c00;font-weight:700}
[data-history-audio]{margin-top:10px}
[data-history-audio] audio{width:100%}
.learnerMicMeter{position:fixed;right:18px;bottom:62px;z-index:99998;background:#fff;border:1px solid #cbd9e2;border-radius:10px;padding:9px 12px;box-shadow:0 4px 18px rgba(0,0,0,.12);display:grid;grid-template-columns:auto 120px auto;gap:8px;align-items:center;font-size:12px}
.micBar{height:8px;background:#e7eef2;border-radius:99px;overflow:hidden}
.micFill{height:100%;width:0;background:#1d7a7a;transition:width .08s linear}
@media(max-width:700px){.recordingHistoryRow{display:block}.recordingHistoryRow button{margin-top:6px}.learnerMicMeter{left:12px;right:12px;grid-template-columns:auto 1fr}}

/* v0.15.5 — Zoom-pipeline evidence capture */
.learnerMicMeter [data-mic-text]{min-width:165px}

/* =========================================================
   v0.15.7 — post-performance review
   ========================================================= */
.reviewRecordingCard{border:1px solid #d5e1e7;border-radius:9px;margin:9px 0;background:#fbfdfe}
.reviewRecordingCard>summary{cursor:pointer;padding:11px 12px;display:flex;justify-content:space-between;gap:12px;align-items:center}
.reviewSummaryMeta{font-size:12px;color:#607989;white-space:nowrap}
.reviewRecordingBody{padding:0 12px 13px;border-top:1px solid #e5edf1}
.reviewPlayerRow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0 8px}
[data-history-audio] audio{width:100%;margin:5px 0 10px}
.evidenceMarkers,.structuredObservations{margin-top:14px;padding-top:12px;border-top:1px solid #e3ebef}
.evidenceMarkers h5,.structuredObservations h5{margin:0 0 8px;font-size:14px}
.evidenceMarker{display:flex;gap:10px;align-items:center;margin:6px 0}
.markerJump{min-width:118px;text-align:left;padding:7px 9px;border-radius:7px}
.markerJump.flag{background:#f2f5f7;color:#243b4a;border:1px solid #bdcbd4}
.markerJump.prompt{background:#fff4dd;color:#5a4211;border:1px solid #e0c57f}
.observationRow{display:grid;grid-template-columns:170px 200px 1fr 36px;gap:7px;margin:7px 0;align-items:center}
.observationRow select,.observationRow input{width:100%;min-width:0}
.iconButton{padding:7px 9px;background:#fff;border:1px solid #d2dde3;color:#617784}
.reviewBottomGrid{display:grid;grid-template-columns:220px 1fr;gap:12px;margin-top:14px}
.reviewBottomGrid textarea{min-height:70px}
.reviewActions{display:flex;align-items:center;gap:10px;margin-top:10px}
@media(max-width:800px){
 .reviewRecordingCard>summary{display:block}
 .reviewSummaryMeta{display:block;margin-top:4px}
 .observationRow{grid-template-columns:1fr}
 .reviewBottomGrid{grid-template-columns:1fr}
}

/* v0.15.8 — lesson-wide observations */
.stageEvidenceToolbar{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:9px;margin:10px 0;padding:9px 0;border-top:1px dashed #d9e3e8}
.stageEvidenceToolbar [data-stage-observation-editor]{grid-column:1/-1}
.compactButton{padding:6px 9px;font-size:12px}
.textButton{border:0;background:transparent;color:#557181;padding:5px 4px;text-decoration:underline;font-size:12px}
.quickObservationEditor{margin:5px 0;padding:10px;border:1px solid #d5e1e7;border-radius:8px;background:#f8fbfc}
.quickObservationGrid{display:grid;grid-template-columns:170px 210px 1fr;gap:7px}
.quickObservationGrid select,.quickObservationGrid input{width:100%;min-width:0}
.quickObservationActions{display:flex;gap:9px;align-items:center;margin-top:8px}
.evidenceMarker{align-items:flex-start;flex-wrap:wrap;padding:7px 0;border-bottom:1px solid #edf2f4}
.markerMeta{display:flex;flex-direction:column;gap:2px;flex:1;min-width:180px}
.markerActions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.markerObservationEditor{width:100%}
.observationLinked{font-size:12px;font-weight:700;color:#356a52}
.reviewedNoObs{font-size:12px;color:#74838c}
.evidenceMarker.hasObservation{background:#fbfdfb}
@media(max-width:800px){.quickObservationGrid{grid-template-columns:1fr}}

/* v0.15.8a — explicit No Observation Needed save feedback */
.markerDismissStatus{font-size:12px;min-width:54px}
.markerActions button:disabled{opacity:.7;cursor:wait}

/* v0.15.9 — secure transcription pilot UI */
.transcriptPanel{margin-top:14px;padding:12px;border:1px solid #d7e2e8;border-radius:9px;background:#fcfefe}
.transcriptHeader{display:flex;justify-content:space-between;gap:12px;align-items:center}
.transcriptHeader h5{margin:0 0 3px;font-size:14px}
.transcriptStatus{font-size:12px;font-weight:700;color:#617784}
.transcriptStatus.ready{color:#2f6d48}
.transcriptStatus.busy{color:#705b1e}
.transcriptStatus.error,.transcriptError{color:#a12e2e}
.transcriptActions{display:flex;gap:7px;flex-wrap:wrap}
.transcriptText{margin-top:10px;padding:10px 11px;background:#fff;border:1px solid #e5ecef;border-radius:7px;line-height:1.55;white-space:pre-wrap}
.transcriptMeta{margin-top:6px;font-size:12px}
.transcriptError{margin-top:8px;font-size:12px}
@media(max-width:700px){.transcriptHeader{display:block}.transcriptActions{margin-top:8px}}

/* v0.15.10 — timestamped transcript evidence review */
.timedTranscript{line-height:2.05}
.transcriptTime{display:inline-block;margin:0 6px 0 3px;padding:1px 5px;border-radius:5px;background:#edf3f6;color:#536a77;font-size:11px;font-weight:700;vertical-align:middle}
.transcriptWord{border:0!important;background:transparent!important;color:inherit!important;padding:1px 2px!important;margin:0!important;min-width:0!important;font:inherit!important;line-height:inherit!important;border-radius:3px!important;cursor:pointer!important;box-shadow:none!important}
.transcriptWord:hover{background:#e9f2f7!important;text-decoration:underline}
.transcriptWord.atMarker{background:#fff1bd!important;font-weight:700!important}
.markerTranscript{margin:8px 0 10px;padding:9px 10px;background:#f7fafb;border-left:3px solid #9fb5c1;border-radius:5px}
.markerTranscriptLabel{font-size:11px;font-weight:700;color:#617784;margin-bottom:4px}
.markerTranscriptWords{line-height:1.75}
.observationTranscriptEvidence{margin-bottom:9px;padding:9px 10px;background:#f7fafb;border:1px solid #dce7ec;border-radius:6px;font-size:12px;line-height:1.45}
.observationTranscriptEvidence b{display:block;margin-bottom:4px}
.observationTranscriptEvidence .muted{display:block;margin-top:4px;font-size:11px}

/* v0.15.10a — observation save confirmation */
.quickObservationActions [data-qo-save]{min-width:132px}
.quickObservationActions [data-qo-save].saveConfirmed{font-weight:700}
.quickObservationActions [data-qo-status][data-kind="validation"],
.quickObservationActions [data-qo-status][data-kind="error"]{font-weight:600}
.quickObservationActions [data-qo-status][data-kind="saved"]{font-weight:700}

/* v0.15.10b — saved observation visibility + stay-open workflow */
.linkedObservationList{width:100%;margin:8px 0 10px;display:grid;gap:7px}
.linkedObservationCard{padding:9px 10px;border:1px solid #d9e5ea;border-radius:7px;background:#fff}
.linkedObservationHead{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:4px}
.observationType{font-size:12px;font-weight:700;padding:2px 6px;border-radius:5px;background:#eef4f7}
.observationCategory{font-size:12px;font-weight:700;color:#526d7b}
.linkedObservationNote{font-size:13px;line-height:1.45}
.linkedObservationSource{font-size:11px;margin-top:4px}

/* v0.15.10c — explicit teacher performance scale */
.assessmentScaleLegend{
  display:grid;
  grid-template-columns:repeat(3,minmax(180px,1fr));
  gap:6px 10px;
  margin-top:9px;
}
.assessmentScaleLegend span{
  padding:7px 8px;
  border:1px solid #dce6eb;
  border-radius:6px;
  background:#fff;
  font-size:12px;
  line-height:1.35;
}
.assessmentScaleLegend .scaleAnchor{
  font-weight:700;
  border-width:2px;
}
.assessmentScaleGuidance{
  margin-top:9px;
  font-size:12px;
  line-height:1.45;
}
@media(max-width:850px){
  .assessmentScaleLegend{grid-template-columns:1fr}
}

/* v0.15.11 — programme-level learner evidence summary */
.cardInset{margin:18px 0;padding:18px;border:1px solid #d8e4e9;border-radius:10px;background:#f8fbfc}
.evidenceSummary h2{margin:5px 0 4px}.evidenceSummaryHeader{display:flex;justify-content:space-between;gap:15px}
.summaryMetrics{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:9px;margin:15px 0}
.summaryMetrics>div{background:#fff;border:1px solid #dce6eb;border-radius:8px;padding:11px}
.summaryMetrics b{display:block;font-size:22px}.summaryMetrics span{font-size:11px;color:#61737d}
.summarySection{margin-top:17px}.summarySection h3{margin-bottom:8px}
.evidenceDetail{background:#fff;border:1px solid #dce6eb;border-radius:7px;margin:7px 0;padding:0}
.evidenceDetail summary{cursor:pointer;padding:10px 11px;font-weight:700}
.evidenceDetailBody{border-top:1px solid #e5ecef;padding:10px 11px}
.ratingChips,.evidenceCounts{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:8px}
.ratingChips span,.evidenceCounts span{font-size:11px;padding:4px 6px;background:#f1f5f7;border-radius:5px}
.summaryObservation{padding:8px 0;border-top:1px solid #edf1f3;font-size:12px;line-height:1.45}.summaryObservation:first-of-type{border-top:0}
.recurrenceNotice{margin:12px 0;padding:11px;border:1px solid #d9e2e7;border-left:4px solid #7b8e98;border-radius:7px;background:#fff}
.recurrenceNotice>span{display:block;margin-top:4px}
@media(max-width:900px){.summaryMetrics{grid-template-columns:repeat(2,1fr)}}

/* v0.15.12 — programme priorities / Needs Analysis fulfilment */
.prioritySummaryHeader{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.prioritySummaryHeader h2{margin:5px 0 4px}
.priorityList{display:grid;gap:9px;margin-top:12px}
.priorityCard{background:#fff;border:1px solid #dce6eb;border-radius:8px;padding:11px}
.priorityCardMain{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}
.priorityTitle{font-weight:700;font-size:14px}
.priorityNotes{margin-top:5px;font-size:12px;line-height:1.45}
.priorityStatusBlock{min-width:210px}
.priorityStatusBlock select{width:100%}
.priorityMeta{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;font-size:11px;color:#5f727d}
.priorityActions{margin-top:5px}
.priorityEditor{margin:12px 0;padding:12px;background:#fff;border:1px solid #dce6eb;border-radius:8px}
.priorityEditorGrid{display:grid;grid-template-columns:2fr 1.2fr 1fr 1.3fr;gap:9px}
.priorityEditor label span,.priorityEditorWide span{display:block;font-size:11px;font-weight:700;margin-bottom:4px}
.priorityEditor input,.priorityEditor select,.priorityEditor textarea{width:100%}
.priorityEditorWide{display:block;margin-top:9px}
.priorityEditorWide textarea{min-height:70px}
.priorityEditorActions{display:flex;align-items:center;gap:9px;margin-top:9px}
@media(max-width:900px){.priorityEditorGrid{grid-template-columns:1fr}.priorityCardMain,.prioritySummaryHeader{display:block}.priorityStatusBlock{margin-top:9px;min-width:0}}

/* v0.15.12b — streamlined Learner Programme Focus */
.prioritySummary .priorityCardMain{display:block}
.prioritySummary .priorityNotes{margin-top:8px}

/* v0.15.13 — Teacher Brief */
.teacherBriefPanel{margin:10px 0}
.teacherBriefGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.briefBlock{background:#fff;border:1px solid #dbe5ec;border-radius:9px;padding:12px}
.briefBlock h3{margin:0 0 8px}.briefBlock ul{margin:6px 0 0;padding-left:19px}.briefBlock li{margin:5px 0}
.briefWide{grid-column:1/-1}.briefMetrics{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.briefMetric{display:inline-block;background:#eef5f8;border-radius:7px;padding:6px 8px;font-size:.9em}
@media(max-width:800px){.teacherBriefGrid{grid-template-columns:1fr}.briefWide{grid-column:auto}}

/* v0.15.14 — derived Next Lesson Prep */
.nextLessonPrep{border-style:solid}
.nextLessonPrepHead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.nextLessonTitle{margin-top:3px}
.nextLessonPrepGrid{display:grid;grid-template-columns:1.1fr 1.2fr .8fr;gap:12px;margin-top:10px}
.nextLessonPrepGrid>div{padding:10px;border:1px solid #e1e9ed;border-radius:8px;background:#fbfdfe}
.nextLessonPrepGrid h4{margin:0 0 7px}
.nextLessonPrepGrid ul{margin:5px 0 0;padding-left:18px}
.nextLessonPrepGrid li{margin:5px 0}
@media(max-width:900px){.nextLessonPrepGrid{grid-template-columns:1fr}}

/* v0.15.15 — formal Performance Change */
.performanceChange{margin:10px 0}
.performanceChange>h2{margin-bottom:4px}
.performanceLesson{background:#fff;border:1px solid #dbe5ec;border-radius:10px;padding:12px;margin-top:12px}
.performanceLessonHead{display:flex;justify-content:space-between;align-items:center;gap:12px}
.performanceLessonHead h3{margin:0}
.performanceTableWrap{overflow-x:auto;margin-top:10px}
.performanceTable{width:100%;border-collapse:collapse;min-width:720px}
.performanceTable th,.performanceTable td{padding:8px 10px;border-bottom:1px solid #e3eaee;text-align:left;vertical-align:top}
.performanceTable th{font-size:.88em;background:#f5f9fb}
.performanceTable td:not(:first-child),.performanceTable th:not(:first-child){text-align:center}
.performanceTable .changeCell{font-weight:700}
.performanceTable .supportRow td{background:#fbfdfe}
.performanceInterpretation{margin:10px 0 2px}


/* v0.15.17 — programme-level KPI layer */
.programmeOutcomes{margin:10px 0}.programmeOutcomes>h2{margin:5px 0 4px}
.programmeKpiMetrics{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:9px;margin:15px 0}
.programmeKpiMetrics>div{background:#fff;border:1px solid #dce6eb;border-radius:8px;padding:11px}
.programmeKpiMetrics b{display:block;font-size:22px}.programmeKpiMetrics span{font-size:11px;color:#61737d}
.programmeFocusContext{background:#fff;border:1px solid #dce6eb;border-radius:8px;padding:11px;margin:10px 0 14px}
.programmeFocusContext>div{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.programmeFocusChip{display:inline-block;background:#eef5f8;border-radius:7px;padding:6px 8px;font-size:.9em;font-weight:700}
.programmeKpiTableWrap{overflow-x:auto}.programmeKpiTable{width:100%;border-collapse:collapse;min-width:760px;background:#fff}
.programmeKpiTable th,.programmeKpiTable td{padding:9px 10px;border-bottom:1px solid #e3eaee;text-align:left;vertical-align:top}
.programmeKpiTable th{font-size:.88em;background:#f5f9fb}.programmeKpiTable td:not(:first-child),.programmeKpiTable th:not(:first-child){text-align:center}
.programmeKpiNote{margin:12px 0;padding:10px 11px;background:#fff;border:1px solid #dce6eb;border-radius:8px}
@media(max-width:900px){.programmeKpiMetrics{grid-template-columns:repeat(2,1fr)}}
\n/* v0.15.18 — teacher-only report preview */\n.reportPreview{margin:10px 0}\n.reportPreview h2{margin-bottom:4px}\n.reportPreviewGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}\n.reportBlock{background:#fff;border:1px solid #dbe5ec;border-radius:9px;padding:12px}\n.reportBlock h3{margin:0 0 8px}\n.reportWide{grid-column:1/-1}\n.reportLessonSummary{padding:9px 0;border-top:1px solid #edf1f3}\n.reportLessonSummary:first-child{border-top:0;padding-top:0}\n.reportLessonSummary h4{margin:0 0 5px}\n@media(max-width:850px){.reportPreviewGrid{grid-template-columns:1fr}.reportWide{grid-column:auto}}\n
/* v0.15.19 — progressive disclosure for secondary teacher analytics */
.gfAnalyticsFold{
  margin:10px 0;
  border:1px solid #d6e1e8;
  border-radius:10px;
  background:#f8fbfc;
  overflow:hidden;
}
.gfAnalyticsFold>summary{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:48px;
  padding:10px 14px;
  cursor:pointer;
  list-style:none;
  user-select:none;
}
.gfAnalyticsFold>summary::-webkit-details-marker{display:none}
.gfAnalyticsFold>summary::before{
  content:"▸";
  font-size:15px;
  line-height:1;
  transition:transform .12s ease;
}
.gfAnalyticsFold[open]>summary::before{transform:rotate(90deg)}
.gfAnalyticsFoldTitle{font-weight:700;color:#082e54}
.gfAnalyticsFoldSummary{font-size:13px;color:#587086}
.gfAnalyticsFoldHint{
  margin-left:auto;
  font-size:12px;
  font-weight:700;
  color:#0c5a8c;
  text-transform:uppercase;
  letter-spacing:.02em;
}
.gfAnalyticsFold[open] .gfAnalyticsFoldHint{font-size:0}
.gfAnalyticsFold[open] .gfAnalyticsFoldHint::after{content:"Hide";font-size:12px}
.gfAnalyticsFoldBody{padding:0 10px 10px}
.gfAnalyticsFoldBody>.cardInset,
.gfAnalyticsFoldBody>section{margin-top:0}

/* v0.15.20 — compact full teacher dashboard */
.gfAnalyticsFold{margin:7px 0}
.gfAnalyticsFold>summary{min-height:42px;padding:8px 12px}
.gfAnalyticsFoldTitle{font-size:14px}
.gfAnalyticsFoldSummary{font-size:12px}

/* v0.15.21 — Programme Attention */
.programmeAttention{
  margin-top:12px;
  padding:11px 12px;
  border:1px solid #d9c98c;
  border-radius:9px;
  background:#fffdf4;
}
.programmeAttentionHead{
  font-weight:800;
  color:#6a5210;
  margin-bottom:6px;
}
.programmeAttentionItem{
  padding:6px 0;
  border-top:1px solid #eee5c5;
  line-height:1.4;
}
.programmeAttentionItem:first-of-type{border-top:0}

/* v0.15.22 — BE01 digital role-play architecture */
.teacherRoleContext{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.teacherLearnerMirror,.teacherOnlyRole{border:1px solid #d9e4eb;border-radius:10px;padding:12px;background:#fff}
.teacherOnlyRole{background:#fff8df;border-color:#e6cf85}
.teacherLearnerMirrorBody .pill{display:none}
.teacherLearnerMirrorBody h1{font-size:1.15rem;margin:6px 0}
.teacherLearnerMirrorBody .sourceBox{display:none}
.teacherHiddenInfo,.teacherRevealWhen{margin-top:10px}
.teacherHiddenInfo ul,.teacherRevealWhen ul{margin:6px 0 0 20px}
.priorityClosed #p10{display:none}
.priorityClosed::after{content:"Priority 10 closed for this activity — retrieve and adapt language independently.";display:block;padding:12px;border:1px solid #d8e2e8;border-radius:8px;background:#f7fafb;color:#536b7e;line-height:1.4}
@media(max-width:900px){.teacherRoleContext{grid-template-columns:1fr}}

/* v0.15.22c — BE01 content/role view fix */
.teacherRoleContext{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.teacherLearnerMirror,.teacherOnlyRole{border:1px solid #d9e4eb;border-radius:10px;padding:12px;background:#fff}
.teacherOnlyRole{background:#fff8df;border-color:#e6cf85}
.teacherLearnerMirrorBody .pill:first-child{display:none}
.teacherLearnerMirrorBody h1{font-size:1.15rem;margin:6px 0}
.teacherHiddenInfo,.teacherRevealWhen{margin-top:10px}
.teacherHiddenInfo ul,.teacherRevealWhen ul{margin:6px 0 0 20px}
.priorityClosed #p10{display:none}
.priorityClosed::after{content:"Priority 10 closed for this activity — retrieve and adapt language independently.";display:block;padding:12px;border:1px solid #d8e2e8;border-radius:8px;background:#f7fafb;color:#536b7e;line-height:1.4}
@media(max-width:900px){.teacherRoleContext{grid-template-columns:1fr}}

/* v0.15.23 — BE01 B1 audit revision */
.stageActivityTextarea{width:100%;min-height:130px;resize:vertical}
.assessmentActions{position:sticky;bottom:0;z-index:5;padding:10px 0 4px;background:linear-gradient(to bottom,rgba(255,255,255,.88),#fff 28%)}
.assessmentActions button.unsavedSave{font-weight:700;box-shadow:0 0 0 3px rgba(35,91,121,.15)}
.assessmentStatus{font-weight:600}
.teacherProcedure{margin:10px 0}
.teacherProcedure ol{margin:7px 0 0 22px}
.teacherLearnerMirror .stageChoiceInput,.teacherLearnerMirror .stageResponseInput{pointer-events:none}

/* v0.15.27 — permanent Lesson Library / admin interface */
.libraryHeader{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
.libraryHeader h1{margin-bottom:6px}
.librarySummary{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:10px;margin:18px 0}
.libraryMetric{border:1px solid #d7e0e8;border-radius:10px;padding:12px;background:#fbfdfe;display:flex;flex-direction:column}
.libraryMetric b{font-size:24px;color:#0b2a4a}
.libraryMetric span{font-size:12px;color:#617486;font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.libraryFilters{display:grid;grid-template-columns:minmax(240px,2fr) minmax(160px,1fr) minmax(120px,.7fr);gap:14px;align-items:end;margin:8px 0 12px}
.libraryFilters label{margin:0}
.libraryFilters select{width:100%;border:1px solid #c9d5df;border-radius:9px;padding:10px;font:inherit;margin-top:6px;background:#fff}
.libraryLegend{display:flex;gap:18px;align-items:center;margin:12px 0 14px;flex-wrap:wrap}
.libraryLegend span{display:inline-flex;align-items:center;gap:6px}
.statusDot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#9ba8b3}
.statusDot.ready{background:#2e7d32}.statusDot.in_development{background:#d18b00}.statusDot.not_built{background:#9ba8b3}.statusDot.retired{background:#8b4358}
.libraryTableHolder{overflow:auto;border:1px solid #d7e0e8;border-radius:11px}
.libraryTable{width:100%;border-collapse:collapse;min-width:900px;background:#fff}
.libraryTable th{position:sticky;top:0;background:#eef4f7;color:#0b2a4a;text-align:left;padding:11px;border-bottom:1px solid #cad7df;z-index:1}
.libraryTable td{vertical-align:top;padding:12px;border-bottom:1px solid #e4ebef;border-right:1px solid #edf2f5}
.libraryTable tbody tr:last-child td{border-bottom:0}
.libraryLessonCell{width:35%;min-width:310px;background:#fbfdfe}
.libraryCode{font-weight:800;color:#1f5a8a;margin-bottom:4px}.libraryTitle{font-weight:700;line-height:1.3}
.libraryVersionCell{min-width:180px}.libraryVersionCell.empty{background:#fafbfc;color:#9ba8b3}
.libraryStatus{display:flex;gap:7px;align-items:center;margin-bottom:7px}
.libraryStatus.ready b{color:#2e7d32}.libraryStatus.in_development b{color:#9a6800}.libraryStatus.retired b{color:#8b4358}
.libraryVersionId{margin-top:7px;color:#8293a1}.libraryEmpty{padding:18px}
@media(max-width:850px){.librarySummary{grid-template-columns:repeat(2,1fr)}.libraryFilters{grid-template-columns:1fr}.libraryHeader{flex-direction:column}}

/* v0.15.28 — teacher-visible, read-only Library version inspection */
.libraryVersionClickable{cursor:pointer;transition:background .12s ease,box-shadow .12s ease}
.libraryVersionClickable:hover{background:#f7fbfd;box-shadow:inset 0 0 0 1px #cddce5}
.libraryInspectHint{margin-top:9px;color:#1f5a8a;font-weight:700}
.libraryDetailPanel{margin-top:18px;border:1px solid #cfdce5;border-radius:12px;padding:18px;background:#fff}
.libraryDetailHeader{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}
.libraryDetailHeader h2{margin:8px 0 4px}
.libraryReadOnlyNotice{margin:14px 0 18px;padding:10px 12px;border-left:4px solid #1f5a8a;background:#eef6fb;font-weight:700;color:#24445d}
.libraryDetailMetrics{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px;margin-bottom:18px}
.libraryDetailMetrics>div{border:1px solid #dce5eb;border-radius:9px;padding:10px;background:#fbfdfe;display:flex;flex-direction:column}
.libraryDetailMetrics span{font-size:12px;text-transform:uppercase;color:#718391;font-weight:700}
.libraryDetailMetrics b{margin-top:4px}
.libraryStageList{border:1px solid #dce5eb;border-radius:10px;overflow:hidden}
.libraryStageRow{display:grid;grid-template-columns:48px 1fr;gap:10px;padding:10px 12px;border-bottom:1px solid #e7edf1;align-items:start}
.libraryStageRow:last-child{border-bottom:0}
.libraryStageNo{width:34px;height:34px;border-radius:50%;background:#eef4f7;display:flex;align-items:center;justify-content:center;font-weight:800;color:#1f5a8a}
.libraryStageMain b{display:block;margin-bottom:3px}
.libraryNoStages{padding:18px;border:1px dashed #cfd9df;border-radius:10px;background:#fafcfd}
.libraryReadOnlyFooter{margin-top:16px;color:#6f8190}
@media(max-width:850px){
  .libraryDetailMetrics{grid-template-columns:repeat(2,1fr)}
  .libraryDetailHeader{flex-direction:column}
}

/* v0.15.33 clean Development Review */
.developmentModeNotice{margin:14px 0;padding:12px 14px;border-left:4px solid #d49a18;background:#fff7df;color:#5d460d}
.developmentModeLesson{display:flex;justify-content:space-between;gap:18px;align-items:center;border:1px solid #dce5eb;border-radius:11px;padding:15px;margin:10px 0;background:#fff}
.developmentModeLesson h3{margin:8px 0 5px}.developmentModeActions{display:flex;gap:8px;flex-wrap:wrap}
.developmentReviewBanner{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:0 0 12px;padding:11px 14px;border:1px solid #d49a18;border-radius:10px;background:#fff7df;color:#5d460d}
.developmentReviewBanner>div{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.developmentReviewVersion{font-size:12px;font-weight:700}
.developmentReviewControl{margin-top:18px;padding:15px;border:1px solid #d49a18;border-radius:10px;background:#fffaf0}

/* v0.15.39 — compact ordering choices */
.guidedChoices.compactChoices{
  display:flex;
  flex-wrap:wrap;
  gap:8px 14px;
  align-items:center;
  margin-top:8px;
}
.guidedChoices.compactChoices .guidedChoiceOption{
  display:inline-flex;
  align-items:center;
  gap:5px;
  width:auto;
  min-width:42px;
  padding:6px 8px;
}


/* =========================================================
   v0.15.41 — BE03 + expanded Priority 10 TEFL guide
   ========================================================= */
.priorityDetails{
  font-size:12.5px;
  line-height:1.5;
  padding:10px 11px;
}
.priorityDetails .priorityField + .priorityField{margin-top:7px}
.priorityDetails .priorityField b{color:#0b2a4a}
.priorityToggle b{line-height:1.3}

.guidedResponseRow > b.responsePromptLabel{
  flex:0 0 190px;
  min-width:190px;
  white-space:normal;
  line-height:1.3;
}
.teacherLanguageSupport{margin-top:14px}
.teacherLanguageSupportGrid{display:grid;gap:8px;margin-top:8px}
.teacherLanguageSupportCard{
  padding:10px 12px;
  border:1px solid #e2d29f;
  border-radius:8px;
  background:#fffaf0;
  line-height:1.45;
}
.teacherLanguageSupportCard>div+div{margin-top:4px}

@media(max-width:900px){
  .guidedResponseRow{display:grid;grid-template-columns:1fr}
  .guidedResponseRow > b.responsePromptLabel{
    min-width:0;
    flex-basis:auto;
  }
}

/* v0.15.42 */
.priorityFlyout{position:fixed;z-index:10000;background:#fff;border:1px solid #cbd8e2;border-radius:12px;box-shadow:0 14px 40px rgba(11,42,74,.22);overflow:hidden}.priorityFlyoutHeader{display:flex;justify-content:space-between;gap:14px;padding:14px 16px;background:#f4f8fb;border-bottom:1px solid #dbe5ec;color:#0b2a4a;font-size:16px}.priorityFlyoutClose{border:0;background:transparent;color:#0b2a4a;font-size:24px;cursor:pointer}.priorityFlyoutBody{padding:14px 16px;overflow:auto;max-height:calc(100vh - 120px);line-height:1.5}.priorityFlyoutBody .priorityField+.priorityField{margin-top:10px}.centralPriority10{margin-top:16px}.centralPriorityItem{border:1px solid #d9e4ea;border-radius:10px;background:#f8fbfd;padding:12px 14px;margin:10px 0}.centralPriorityPhrase{font-weight:800;color:#0b2a4a;margin-bottom:8px;font-size:16px}.centralPriorityGuide>div+div{margin-top:6px}

/* v0.15.44 — expanded teacher role-card rendering */
.teacherRoleBlock{margin-top:14px;padding-top:12px;border-top:1px solid #eadcae}
.teacherRoleBlock>ol,.teacherRoleBlock>ul{margin:8px 0 0}
.teacherParticipantGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:8px}
.teacherParticipantCard{background:#fff;border:1px solid #ead59d;border-radius:8px;padding:10px 11px}
.teacherParticipantCard>div{font-size:12px;color:#617486;margin-top:2px}
.teacherParticipantCard p{margin:7px 0 0;line-height:1.4}
@media(max-width:900px){.teacherParticipantGrid{grid-template-columns:1fr}}
.stakeholderGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.stakeholderCard{background:#f7f9fb;border:1px solid #cfd9e2;border-radius:10px;padding:14px}.stakeholderName{font-weight:800;font-size:17px;color:#082c55}.stakeholderRole{font-size:12px;font-weight:700;color:#65798d;margin:2px 0 9px;text-transform:uppercase}.stakeholderCard p{margin:7px 0;line-height:1.45}@media(max-width:900px){.stakeholderGrid{grid-template-columns:1fr}}
/* v0.15.49 — compact personalised teacher priority panel */
.gfPriorityFloat{position:sticky;float:right;top:8px;z-index:22;width:min(260px,38%);margin:0 0 9px 11px;border:1px solid #b8c8d8;border-radius:9px;background:#fff;box-shadow:0 4px 13px rgba(15,42,67,.12);overflow:hidden}.gfPriorityHead{width:100%;border:0;background:#eef4f8;padding:7px 9px;display:flex;justify-content:space-between;gap:7px;font:inherit;font-size:11px;font-weight:800;color:#173b5e;cursor:pointer;text-align:left}.gfPriorityBody{padding:5px 8px 7px}.gfPrioritySource{font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:#6c7d8c;font-weight:700;margin-bottom:3px}.gfPriorityRow{padding:4px 0;border-top:1px solid #edf1f4}.gfPriorityRow:first-of-type{border-top:0}.gfPriorityRow b,.gfPriorityRow span{display:block;font-size:10px;line-height:1.25}.gfPriorityRow b{color:#183a59}.gfPriorityRow span{color:#536777;margin-top:1px}.gfPriorityEmpty{font-size:10px;color:#657887}.gfPriorityFloat.collapsed .gfPriorityBody{display:none}.gfPriorityFloat.collapsed .gfPriorityChevron{transform:rotate(-90deg)}@media(max-width:850px){.gfPriorityFloat{float:none;position:relative;top:auto;width:100%;margin:0 0 9px}}

/* v0.15.51 — subordinate personalised New Language + transcript access */
.newLanguageCard{margin-top:14px;padding-top:12px;border-top:1px solid #d7e1e8}.newLanguageCard.hidden{display:none}.newLanguageHead{width:100%;border:0;background:#eef4f7;border-radius:8px;padding:8px 10px;display:flex;justify-content:space-between;font-weight:700;color:#173b5e;cursor:pointer}.newLanguageCard>p{font-size:11px;line-height:1.35;color:#607080;margin:7px 2px}.newLanguageCard ul{list-style:none;padding:0;margin:0}.newLanguageCard li{padding:6px 2px;border-bottom:1px solid #edf1f3;font-size:11px;line-height:1.3}.newLanguageCard li span{display:block;color:#66737d;margin-top:2px}.newLanguageCard.collapsed>p,.newLanguageCard.collapsed ul{display:none}.transcriptRevealBox,.teacherTranscriptControl{margin:14px 0;padding:12px 14px;border:1px solid #c9d9e4;border-radius:10px;background:#f7fafc}.transcriptRevealBox.locked{background:#f5f5f5;color:#66737d}.transcriptRevealBox p,.teacherTranscriptControl p{margin:5px 0 8px;font-size:12px}.teacherTranscriptControl{border-left:4px solid #2c7a8a}

/* v0.15.53 — reusable carry-forward / presentation reference panel (BE03 B2 pattern generalised) */
.gfReferenceFloat{position:sticky;float:right;top:8px;z-index:22;width:min(300px,42%);margin:0 0 10px 12px;border:1px solid #b8c8d8;border-radius:9px;background:#fff;box-shadow:0 4px 13px rgba(15,42,67,.12);overflow:hidden}
.gfReferenceHead{width:100%;border:0;background:#eef4f8;padding:8px 10px;display:flex;justify-content:space-between;gap:7px;font:inherit;font-size:11px;font-weight:800;color:#173b5e;cursor:pointer;text-align:left}
.gfReferenceBody{padding:7px 9px 9px}.gfReferenceSource{font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:#6c7d8c;font-weight:700;margin-bottom:4px}.gfReferenceRow{padding:5px 0;border-top:1px solid #edf1f4}.gfReferenceRow:first-of-type{border-top:0}.gfReferenceRow b,.gfReferenceRow span{display:block;font-size:10px;line-height:1.3}.gfReferenceRow b{color:#183a59}.gfReferenceRow span{color:#536777;margin-top:1px}.gfReferenceEmpty{font-size:10px;color:#657887}.gfReferenceFloat.collapsed .gfReferenceBody{display:none}.gfReferenceFloat.collapsed .gfReferenceChevron{transform:rotate(-90deg)}
.gfReferenceImage{display:block;width:100%;height:auto;border:1px solid #d7e0e8;border-radius:6px;margin:5px 0 7px}.gfReferenceOpen{font-size:10px;font-weight:700}.teacherLearnerFeedback{margin:12px 0;padding:12px;border:1px solid #e0c36c;border-radius:10px;background:#fff8df}.teacherLearnerFeedback label{margin:8px 0}.teacherLearnerFeedback label span{display:block;font-size:11px;font-weight:800}.teacherLearnerFeedback textarea{min-height:62px}.stageObservationList{width:100%;margin-top:8px;display:grid;gap:7px}.stageObservationCard{padding:9px 10px;border:1px solid #d9e5ea;border-radius:7px;background:#fff;box-shadow:0 1px 2px rgba(15,42,67,.04)}.stageObservationHead{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:4px}.stageObservationNote{font-size:13px;line-height:1.45;color:#243746}.stageObservationEmpty{display:block;padding:3px 0;font-size:11px}
#studentNotes{min-height:240px;resize:vertical}
@media(max-width:850px){.gfReferenceFloat{float:none;position:relative;top:auto;width:100%;margin:0 0 10px}}
/* v0.15.55 — canonical teacher-only saved observation bank from BE11 v0.6/v0.7 */
.lessonObservationBank{margin-top:12px;border:1px solid #cfdbe6;border-radius:10px;background:#f8fbfd;overflow:hidden}
.lessonObservationBank>summary{cursor:pointer;padding:10px 12px;font-weight:700;color:#17365D;list-style-position:inside}
.lessonObservationBankBody{padding:0 12px 12px;max-height:280px;overflow:auto}
.lessonObservationRow{padding:9px 0;border-top:1px solid #dce5ec}
.lessonObservationMeta{font-size:.82rem;color:#365F91;margin-bottom:3px}
.lessonObservationNote{font-size:.94rem;line-height:1.35;color:#17365D}

/* v0.15.57 — presentation reference panels must be comfortably readable during the task */
.gfPresentationReference{width:min(520px,50%)!important}
.gfPresentationReference .gfReferenceHead{font-size:12px;padding:9px 11px}
.gfPresentationReference .gfReferenceSource{font-size:10px}
.gfPresentationReference .gfReferenceOpen{font-size:11px}
@media(max-width:1100px){.gfPresentationReference{width:min(460px,52%)!important}}
@media(max-width:850px){.gfPresentationReference{width:100%!important}}


/* Homework Engine Stage B v0.1 */
.homeworkShell{max-width:1180px;margin:0 auto}.homeworkHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.homeworkHeader h1,.homeworkDetailHead h1{margin:.35rem 0}.homeworkAssign{margin:0 0 20px;padding:18px}.homeworkAssignGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0}.homeworkAssignGrid label{display:flex;flex-direction:column;gap:6px}.homeworkAssignGrid select,.homeworkAssignGrid input{width:100%}.homeworkSummary{display:flex;gap:16px;flex-wrap:wrap;margin:8px 0 14px}.homeworkSummary span{background:#f4f7fa;border:1px solid #d8e0e8;border-radius:9px;padding:8px 11px}.homeworkList{display:grid;gap:9px}.homeworkRow{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left;background:#fff;border:1px solid #d9e0e7;border-radius:10px;padding:14px 16px;color:inherit}.homeworkRow:hover{border-color:#9aa8b5;background:#fbfcfd}.homeworkRow span:first-child{display:flex;flex-direction:column;gap:4px}.homeworkRow small{font-weight:400;color:#66717c}.homeworkStatus{white-space:nowrap;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:700;background:#eef2f5}.status-submitted{background:#fff4d8}.status-complete{background:#e8f4ec}.status-revision_requested{background:#fdecec}.status-in_progress{background:#edf3fb}.homeworkEmpty{text-align:center;padding:34px 12px}.homeworkBack{margin-bottom:14px}.homeworkDetailHead{padding-bottom:12px;border-bottom:1px solid #e2e7ec}.homeworkTasks{display:grid;gap:14px;margin:18px 0}.homeworkTask{border:1px solid #dbe2e8;border-radius:11px;padding:16px;background:#fff}.homeworkTaskHead{display:flex;gap:11px;align-items:flex-start;margin-bottom:10px}.homeworkTaskHead h3{margin:0 0 3px}.homeworkTaskNo{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:#172a3a;color:#fff;font-weight:700;flex:0 0 auto}.homeworkInfo,.homeworkReference,.homeworkStageC{background:#f6f8fa;border-radius:9px;padding:13px}.homeworkResponseInput{width:100%;min-height:150px;resize:vertical}.homeworkChoices{display:grid;gap:8px}.homeworkChoices label{display:flex;align-items:flex-start;gap:8px;padding:7px 8px;border-radius:7px;background:#f8fafb}.homeworkSaveState{min-height:18px;margin-top:5px;font-size:12px;color:#6b7680}.homeworkSubmitBox,.homeworkReviewBox,.homeworkReviewNotice{border:1px solid #d5dde5;border-radius:11px;padding:16px;margin:18px 0;background:#f8fafb}.homeworkReviewNotice{background:#f2f7fb}.homeworkTaskFeedback{margin-top:13px;padding:11px 12px;background:#f2f7fb;border-left:4px solid #7f94a7;border-radius:6px}.homeworkFeedbackFields{border-top:1px solid #dde4ea;padding-top:12px;margin-top:12px}.homeworkFeedbackFields label{display:block;margin-top:8px}.homeworkFeedbackFields textarea,.homeworkReviewBox>label textarea{width:100%;min-height:90px}.buttonLink{display:inline-block;padding:8px 11px;border-radius:7px;background:#172a3a;color:white;text-decoration:none;font-weight:700}@media(max-width:760px){.homeworkHeader{display:block}.homeworkHeader .row{margin-top:10px}.homeworkAssignGrid{grid-template-columns:1fr}.homeworkRow{align-items:flex-start;flex-direction:column}.homeworkStatus{align-self:flex-start}}

/* Homework Engine Stage B v0.1b — inline marking */
.homeworkInlineMarking{margin-top:14px;padding:13px 14px;background:#f7f9fb;border:1px solid #d7e0e8;border-radius:8px}
.homeworkInlineMarkingTitle{font-weight:700;margin-bottom:8px}
.homeworkInlineMarking label{display:block;margin-top:9px}
.homeworkInlineMarking textarea{width:100%;min-height:88px;margin-top:5px}
.homeworkReviewBox h2{margin:.45rem 0 .3rem}
.homeworkTaskFeedback p:last-child{margin-bottom:0}

/* Homework Engine Stage C — learner-initiated audio */
.homeworkAudioRecorder{margin-top:10px;padding:13px 14px;border:1px solid #d7e0e8;border-radius:9px;background:#f8fafb}
.homeworkAudioConsent{display:flex;align-items:flex-start;gap:9px;padding:10px 11px;background:#fff;border:1px solid #dce3e9;border-radius:7px;line-height:1.45}
.homeworkAudioConsent input{margin-top:3px;flex:0 0 auto}
.homeworkAudioControls{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:12px}
.homeworkAudioTimer{font-variant-numeric:tabular-nums;font-weight:700;min-width:48px}
.homeworkAudioDraft{margin-top:12px;padding-top:12px;border-top:1px solid #dde4ea}
.homeworkAudioDraft audio,.homeworkAudioPlayback audio{display:block;width:min(100%,560px);margin:8px 0}
.homeworkAudioPlayback{padding:11px 12px;border:1px solid #dce3e9;border-radius:8px;background:#f7f9fb}
.homeworkAudioKept{margin-bottom:12px;background:#f2f7fb}
.homeworkAudioMissing{padding:10px 12px;background:#f6f8fa;border-radius:7px;color:#64717d}

/* Homework Engine Stage C v0.1a — standalone browser microphone recorder */
.homeworkAudioConsent{display:grid!important;grid-template-columns:20px minmax(0,1fr)!important;align-items:start!important;column-gap:10px!important;width:100%!important;box-sizing:border-box!important}
.homeworkAudioConsent input{width:16px!important;height:16px!important;margin:2px 0 0 0!important;justify-self:start!important}
.homeworkAudioConsent span{display:block!important;min-width:0!important;white-space:normal!important;overflow-wrap:normal!important;word-break:normal!important;text-align:left!important}
.homeworkAudioPermission{margin:9px 0 0;padding:8px 10px;border-radius:7px;background:#eef4f8;color:#33485b;font-size:12px;line-height:1.4}
.homeworkAudioLive{margin-top:12px;padding:12px;border:1px solid #d7e0e8;border-radius:8px;background:#fff}
.homeworkAudioLiveHead{display:flex;align-items:center;gap:8px;font-variant-numeric:tabular-nums}
.homeworkRecDot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#b42318;box-shadow:0 0 0 4px rgba(180,35,24,.10)}
.homeworkMicRow{display:grid;grid-template-columns:minmax(160px,auto) minmax(120px,1fr);align-items:center;gap:12px;margin-top:10px;font-size:12px;color:#4c5f70}
.homeworkMicMeter{height:8px;border-radius:999px;background:#e5ebf0;overflow:hidden}
.homeworkMicMeter span{display:block;width:2%;height:100%;border-radius:999px;background:currentColor;transition:width .08s linear}
.homeworkAudioCheck{margin:7px 0 10px;font-size:12px;color:#4c5f70;line-height:1.4}
@media(max-width:700px){.homeworkMicRow{grid-template-columns:1fr}.homeworkAudioConsent{grid-template-columns:20px minmax(0,1fr)!important}}

/* Homework audio v0.15.60b — microphone selection / no-signal recovery */
.homeworkMicSelectRow{display:grid;grid-template-columns:minmax(90px,auto) minmax(220px,420px) minmax(220px,1fr);align-items:center;gap:10px;margin:10px 0;padding:10px 11px;border:1px solid #dce3e9;border-radius:7px;background:#fff}
.homeworkMicSelectRow select{width:100%;min-width:0;padding:7px 9px;border:1px solid #cbd6df;border-radius:6px;background:#fff;color:inherit}
.homeworkMicSelectRow .small{line-height:1.35;color:#53687a}
@media(max-width:850px){.homeworkMicSelectRow{grid-template-columns:1fr}.homeworkMicSelectRow select{max-width:none}}

/* v0.15.61 — production homework support rail + corrected choice alignment */
.homeworkDetailLayout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}
.homeworkDetailMain{min-width:0}
.homeworkSupportRail{position:sticky;top:18px;border:1px solid #cbd8e2;border-radius:11px;background:#fff;box-shadow:0 4px 13px rgba(15,42,67,.09);overflow:hidden;min-width:0}
.homeworkSupportHead{width:100%;border:0;border-radius:0;background:#eef4f8;padding:11px 12px;display:flex;justify-content:space-between;align-items:center;gap:10px;font:inherit;font-weight:800;color:#173b5e;cursor:pointer;text-align:left}
.homeworkSupportBody{padding:10px 11px 12px}
.homeworkSupportHint{margin:0 0 9px;font-size:11px;line-height:1.4;color:#607080}
.homeworkPriorityList{list-style:none;padding:0;margin:0;display:grid;gap:5px}
.homeworkPriorityList li{margin:0;padding:0}
.homeworkPriorityToggle{width:100%;border:1px solid #dce5ec;border-radius:8px;background:#fff;padding:8px 9px;display:flex;align-items:flex-start;justify-content:space-between;gap:8px;text-align:left;color:#173b5e;cursor:pointer;font:inherit;font-size:11px;line-height:1.3}
.homeworkPriorityToggle:hover{background:#f7fafc;border-color:#b9c9d6}
.homeworkSupportRail.collapsed .homeworkSupportBody{display:none}
.homeworkReferenceLauncher{width:100%;margin-top:10px;background:#fff;color:#173b5e;border:1px solid #b8c8d8;padding:8px 10px;font-size:11px;font-weight:800}
.homeworkReferenceFloat{position:fixed!important;right:22px;top:120px;z-index:10002;max-height:calc(100vh - 150px);overflow:auto;width:min(520px,calc(100vw - 44px))!important;margin:0!important;float:none!important}
.homeworkReferenceFloatItem+.homeworkReferenceFloatItem{border-top:1px solid #dce5ec;margin-top:12px;padding-top:12px}
.homeworkReferenceFloatItem p{font-size:12px;line-height:1.45}
/* Choice rows are a single compact clickable unit. Do not inherit generic label spacing/justification. */
.homeworkChoices label{display:grid!important;grid-template-columns:20px minmax(0,1fr)!important;align-items:start!important;justify-content:start!important;column-gap:9px!important;width:100%!important;padding:10px 11px!important;cursor:pointer;text-align:left!important}
.homeworkChoices label input.homeworkChoiceInput{grid-column:1!important;margin:2px 0 0 0!important;width:auto!important;min-width:0!important;justify-self:start!important;align-self:start!important}
.homeworkChoices label input.homeworkChoiceInput + *{grid-column:2}
/* text node follows the input, so prevent global label rules from stretching or centring contents */
.homeworkChoices label{font-weight:600;color:#17365d;line-height:1.3}
@media(max-width:980px){.homeworkDetailLayout{grid-template-columns:1fr}.homeworkSupportRail{position:static;order:-1}.homeworkSupportRail.collapsed .homeworkSupportBody{display:none}}
.homeworkChoiceText{grid-column:2!important;display:block!important;min-width:0!important;text-align:left!important;justify-self:start!important}

/* v0.15.61a — Lesson Reference remains independently visible when Priority 10 is collapsed */
.homeworkReferenceLauncher{display:block;width:calc(100% - 16px);margin:8px;background:#fff;color:#173b5e;border:1px solid #b8c8d8;border-radius:8px;padding:9px 10px;font-size:11px;font-weight:800;text-align:left}
.homeworkSupportRail.collapsed .homeworkReferenceLauncher{display:block}

/* v0.15.61b — Lesson reference is a visually separate sibling control */
.homeworkReferenceLauncher{
  width:100%;
  margin:10px 0 0;
  border:0;
  border-top:10px solid #f4f7fa;
  border-radius:0 0 10px 10px;
  background:#eef4f8;
  color:#173b5e;
  padding:11px 12px;
  font-size:14px;
  font-weight:800;
  text-align:left;
  position:relative;
  box-sizing:border-box;
}
.homeworkReferenceLauncher::after{
  content:'＋';
  position:absolute;
  right:12px;
  top:20px;
  font-size:16px;
  line-height:1;
  font-weight:800;
}
.homeworkReferenceLauncher:hover{background:#e7f0f6}

/* v0.15.62 — selective teacher-directed revision */
.homeworkRevisionRequired{display:grid!important;grid-template-columns:20px minmax(0,1fr);gap:9px;align-items:start;margin:10px 0 12px;padding:10px 11px;border:1px solid #cfdbe5;border-radius:8px;background:#fff;cursor:pointer}
.homeworkRevisionRequired input{margin:3px 0 0;width:auto!important;min-width:0!important}
.homeworkRevisionRequired span{display:grid;gap:2px}
.homeworkRevisionRequired small{font-weight:400;line-height:1.35;color:#5e6f7e}
.homeworkRevisionRequired:has(input:checked){border-color:#9aaec0;background:#f1f6fa}
.homeworkCarryForwardNotice{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin:10px 0;padding:9px 11px;border-left:4px solid #8ca1b4;border-radius:6px;background:#f5f8fa;color:#27445f}
.homeworkCarryForwardNotice span{font-size:12px;color:#5e6f7e}


/* v0.15.62a — revision / re-mark attention states */
.homeworkTaskTitleRow{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.homeworkTaskTitleRow h3{margin:0}
.homeworkAttentionBadge{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;font-size:10px;line-height:1.2;font-weight:800;letter-spacing:.02em;text-transform:uppercase}
.homeworkTaskNeedsRevision{border:2px solid #b1781f!important;background:#fffaf1;box-shadow:0 0 0 3px rgba(177,120,31,.08)}
.homeworkTaskNeedsRevision .homeworkTaskHead{margin:-1px -1px 10px;padding:10px;border-radius:8px 8px 0 0;background:#fff3d9}
.homeworkAttentionBadgeRevision{background:#f3dfb6;color:#6f4708}
.homeworkTaskNeedsRemark{border:2px solid #557b99!important;background:#f7fbfe;box-shadow:0 0 0 3px rgba(85,123,153,.08)}
.homeworkTaskNeedsRemark .homeworkTaskHead{margin:-1px -1px 10px;padding:10px;border-radius:8px 8px 0 0;background:#eaf3f8}
.homeworkAttentionBadgeRemark{background:#d8e8f2;color:#274e6a}

/* v0.15.62b — make learner revision state unmistakable */
.homeworkTaskNeedsRevision{position:relative}
.homeworkTaskNeedsRevision::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:#b1781f;border-radius:9px 0 0 9px}
.homeworkTaskNeedsRevision .homeworkAttentionBadgeRevision{font-weight:700;text-transform:uppercase;letter-spacing:.03em}

*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;background:#f4f7fa;color:#0b2a4a}header{background:#0b2a4a;color:white;padding:18px 28px;display:flex;gap:24px;align-items:center}.brand{font-size:28px;font-weight:800}.brand span{color:#d7a43b;font-style:italic}main{padding:18px 28px}.card{background:#fff;border:1px solid #d7e0e8;border-radius:14px;padding:20px;box-shadow:0 4px 16px rgba(11,42,74,.06)}.auth{max-width:520px;margin:50px auto}.hidden{display:none!important}.warning{background:#fff3cd;border:1px solid #f0d98a;padding:12px;border-radius:10px;margin-bottom:16px}.grid{display:grid;grid-template-columns:250px minmax(500px,1fr) 300px;gap:20px}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.pill{display:inline-block;background:#eaf2f7;color:#1f5a8a;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700}.muted,.small{color:#617486}.row{display:flex;gap:10px}.lessonCards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.lessonCard{border:1px solid #d7e0e8;border-radius:12px;padding:16px;background:#fbfdfe}.lessonCard button{margin-top:10px}.stage{padding:10px;border-radius:9px;margin:8px 0;background:#f0f5f8;cursor:pointer}.stage.current{outline:2px solid #1d7a7a}.stage.locked{opacity:.45;cursor:not-allowed}.teacherOnly{background:#fff4d6;border:1px solid #e6ca73;border-radius:10px;padding:14px;margin:16px 0}.case{border-left:5px solid #1d7a7a;background:#fbfdfe;padding:16px 18px;margin:16px 0;border-radius:10px}.prompts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.prompts div{background:#f0f5f8;border-radius:10px;padding:12px;font-weight:700}.criteria{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin-top:12px}.criteria div{background:#f0f5f8;padding:10px;border-radius:9px}.control{display:flex;justify-content:space-between;align-items:center;border:1px solid #d7e0e8;border-radius:10px;padding:12px;margin:10px 0}button{border:0;border-radius:9px;background:#1d7a7a;color:#fff;padding:10px 14px;font-weight:700;cursor:pointer}.secondary{background:#eaf2f7;color:#0b2a4a}button:disabled{opacity:.45;cursor:not-allowed}label{display:block;font-weight:700;margin:14px 0}input,textarea{width:100%;border:1px solid #c9d5df;border-radius:9px;padding:10px;font:inherit;margin-top:6px}textarea{min-height:110px}ol{padding-left:26px}ol li{padding:8px 0;border-bottom:1px solid #e3ebf0;font-weight:700}@media(max-width:1000px){.grid{grid-template-columns:1fr}.grid>aside:last-child{order:-1}}
/* v0.8 usability refinement */
.stage{display:flex;justify-content:space-between;gap:10px;align-items:center}
.stageStatus{font-size:10px;text-transform:uppercase;letter-spacing:.04em;font-weight:800;color:#617486}
.stage.current .stageStatus{color:#1d7a7a}
.stage.locked .stageStatus{color:#8c98a3}
.revealRoadmap{margin-top:12px}
.revealRoadmapTitle{font-weight:800;margin-bottom:8px}
.revealRoadmapRow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;border:1px solid #d7e0e8;border-radius:10px;margin:8px 0;background:white}
.revealRoadmapRow.revealed{border-left:4px solid #1d7a7a}
.revealRoadmapRow.next{border-left:4px solid #d7a43b}
.revealRoadmapRow.locked{opacity:.58}
.revealStageName{font-weight:700}
.revealStatus{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#617486;margin-top:3px}
.revealRoadmapButton{white-space:nowrap}


/* =========================================================
   v0.12 — Integrated Live Classroom
   ========================================================= */

.danger{background:#a92b2b}
.liveDock{margin-bottom:16px;padding:14px 16px}
.liveDockHeader{display:flex;justify-content:space-between;align-items:center;gap:14px}
.liveDockHeader .pill{margin-right:10px}
.liveBadge{display:inline-block;margin-left:8px;background:#edf2f6;color:#617486;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:700}
.liveBadge.connected{background:#e7f5ef;color:#17654e}
.liveJoinArea{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-top:12px}
.liveJoinArea p{margin:0 12px 4px 0}
.livePinArea{background:transparent!important;border:0!important;padding:0!important;margin:0!important}
.livePinArea label{margin:0;min-width:230px}
.liveDock.collapsed #liveJoinArea,
.liveDock.collapsed #liveConnectedArea{display:none!important}

.liveVideoRow{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:14px;margin-top:14px}
.liveVideoGrid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:10px;min-height:170px}
.liveVideoTile{position:relative;background:#10202f;border-radius:10px;overflow:hidden;min-height:165px}
.liveVideoTile video-player-container{display:block;width:100%;height:100%;min-height:165px}
.liveVideoTile video-player{display:block;width:100%;height:100%;object-fit:cover}
.liveVideoLabel{position:absolute;left:8px;bottom:8px;background:rgba(0,0,0,.7);color:#fff;padding:4px 7px;border-radius:6px;font-size:12px}
.liveParticipants{border-left:1px solid #e1e8ee;padding-left:14px}
.liveParticipant{padding:8px 0;border-bottom:1px solid #e4ebf0}
.liveControls{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.liveDevicesPanel{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:10px;margin-top:10px;padding:10px;background:#f5f8fa;border-radius:10px}
.liveDevicesPanel label{margin:0}
.liveDevicesPanel select{width:100%;padding:8px;border:1px solid #c9d5df;border-radius:8px;margin-top:5px}

.shareNotice{margin-top:10px;border:1px solid #a8ddca;background:#eefaf5;border-radius:10px;padding:10px 12px;display:flex;justify-content:space-between;align-items:center;gap:12px}

/* Remote share is intentionally white rather than black. */
.remoteShareSection{margin-bottom:16px;background:#fff}
.remoteShareHeader{display:flex;justify-content:space-between;align-items:center}
#remoteShareContainer{
  display:block;
  width:100%;
  min-height:0;
  background:#fff;
  border:1px solid #e1e8ee;
  border-radius:10px;
  overflow:hidden;
}
#remoteShareContainer video-player{
  display:block;
  width:100%;
  height:auto;
  max-height:68vh;
  aspect-ratio:auto;
  object-fit:contain;
  background:#fff;
}

/* When receiving a share, the shared material becomes the primary visual,
   while live video stays visible but secondary. */
body.gfRemoteShareActive .liveVideoGrid{
  grid-template-columns:repeat(2,minmax(120px,220px));
}
body.gfRemoteShareActive .liveVideoTile,
body.gfRemoteShareActive .liveVideoTile video-player-container{
  min-height:120px;
}
body.gfRemoteShareActive .grid{
  margin-top:0;
}

@media(max-width:1000px){
  .liveVideoRow{grid-template-columns:1fr}
  .liveParticipants{border-left:0;border-top:1px solid #e1e8ee;padding-left:0;padding-top:10px}
  .liveDevicesPanel{grid-template-columns:1fr}
}

/* v0.13 compact + sticky live classroom */
#liveDock{position:sticky;top:8px;z-index:80;box-shadow:0 7px 20px rgba(11,42,74,.12)}
#liveDock.mode-compact{padding:9px 12px}
#liveDock.mode-compact .liveVideoRow{grid-template-columns:minmax(0,1fr) 180px;gap:9px;margin-top:8px}
#liveDock.mode-compact .liveVideoGrid{grid-template-columns:repeat(2,minmax(140px,1fr));gap:8px;min-height:105px}
#liveDock.mode-compact .liveVideoTile,#liveDock.mode-compact .liveVideoTile video-player-container{height:105px;min-height:105px}
#liveDock.mode-compact .liveControls{margin-top:6px}
#liveDock.mode-compact .liveParticipant{padding:3px 0}
#liveDock.mode-compact .liveParticipants{font-size:11px}
#liveDock.mode-expanded .liveVideoGrid{min-height:270px}
#liveDock.mode-expanded .liveVideoTile,#liveDock.mode-expanded .liveVideoTile video-player-container{height:270px;min-height:270px}
#liveDock.mode-collapsed{padding:6px 10px}
#liveDock.mode-collapsed #liveJoinArea,#liveDock.mode-collapsed #liveConnectedArea{display:none!important}
#liveDock .activeMode{box-shadow:inset 0 0 0 2px rgba(11,42,74,.22)}
body.gfRemoteShareActive #liveDock.mode-compact .liveVideoTile,
body.gfRemoteShareActive #liveDock.mode-compact .liveVideoTile video-player-container{height:82px;min-height:82px}
body.gfRemoteShareActive #liveDock.mode-compact .liveVideoGrid{min-height:82px}
body.gfRemoteShareActive #remoteShareContainer,
body.gfRemoteShareActive #remoteShareContainer video-player{background:#fff!important}

/* v0.13 Priority 10 MFPU accordion */
#p10{list-style:none;padding-left:0;margin:0}
.priorityItem{border-bottom:1px solid #e4ebf0;padding:4px 0}
.priorityToggle{width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;text-align:left;border:0;background:transparent;color:#0b2a4a;padding:4px 0;cursor:pointer}
.priorityToggle:hover{color:#1d7a7a}
.priorityChevron{font-size:18px;color:#1d7a7a;flex:0 0 auto}
.priorityDetails{margin:5px 0 3px;padding:8px 9px;background:#f5f8fa;border-left:3px solid #1d7a7a;border-radius:6px;font-size:12px;line-height:1.45}
.priorityDetails>div+div{margin-top:4px}
@media(max-width:900px){#liveDock{top:4px}#liveDock.mode-compact .liveVideoRow{grid-template-columns:1fr}#liveDock.mode-compact .liveParticipants{display:none}}

/* v0.13.1 — media controls moved into sticky header; colors unchanged */
.liveHeaderActions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}
.liveHeaderActions .row{gap:8px}
#liveDock.mode-compact .liveVideoRow{margin-top:6px;margin-bottom:0}
#liveDock.mode-compact #liveConnectedArea{padding-bottom:0}
#liveDock.mode-compact .liveMediaMsg:empty{display:none}
@media(max-width:1180px){
 .liveDockHeader{align-items:flex-start}
 .liveHeaderActions{gap:7px}
 .liveHeaderActions button{padding-left:10px;padding-right:10px}
}


/* =========================================================
   v0.13.2 — Reliable remote screen-share viewport
   ========================================================= */

/* Keep the remote share area visibly open as soon as a share begins.
   The white background is intentional so unused aspect-ratio space
   blends into the GUILDFluent classroom rather than appearing black. */
#remoteShareSection{
  background:#fff;
}

#remoteShareContainer{
  display:block;
  width:100%;
  min-height:430px;
  background:#fff!important;
  border:1px solid #e1e8ee;
  border-radius:10px;
  overflow:hidden;
}

#remoteShareContainer video-player{
  display:block;
  width:100%;
  min-height:430px;
  height:auto;
  max-height:72vh;
  object-fit:contain;
  background:#fff!important;
}

/* During an active remote share, make the shared content area dominant
   without hiding the compact sticky video strip. */
body.gfRemoteShareActive #remoteShareSection{
  display:block!important;
}

body.gfRemoteShareActive #remoteShareContainer{
  min-height:430px;
}

body.gfRemoteShareActive #remoteShareContainer video-player{
  min-height:430px;
}

@media(max-width:900px){
  #remoteShareContainer,
  #remoteShareContainer video-player,
  body.gfRemoteShareActive #remoteShareContainer,
  body.gfRemoteShareActive #remoteShareContainer video-player{
    min-height:280px;
  }
}

/* =========================================================
   v0.13.3 — Screen share + Priority 10 workspace
   ========================================================= */

.shareWorkspace{
  display:grid;
  grid-template-columns:minmax(0,1fr) 260px;
  gap:14px;
  align-items:start;
  margin-bottom:16px;
}

.shareWorkspace.hidden{display:none!important}

#sharePrioritySlot #priorityCard{
  position:sticky;
  top:155px;
  max-height:calc(100vh - 175px);
  overflow:auto;
}

/* Use the known-working 16:9 rendering geometry, but white instead of black.
   Width now determines height, so the share is large enough to read without
   consuming the whole viewport. */
#remoteShareContainer{
  display:block;
  width:100%;
  min-height:0!important;
  aspect-ratio:16 / 9;
  background:#fff!important;
  border:1px solid #e1e8ee;
  border-radius:10px;
  overflow:hidden;
}

#remoteShareContainer video-player{
  display:block;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  aspect-ratio:16 / 9;
  object-fit:contain;
  background:#fff!important;
}

/* When sharing, keep the sticky live video especially slim so the whole
   shared screen and Priority 10 can fit much more naturally in one view. */
body.gfRemoteShareActive #liveDock.mode-compact .liveVideoTile,
body.gfRemoteShareActive #liveDock.mode-compact .liveVideoTile video-player-container{
  height:72px;
  min-height:72px;
}
body.gfRemoteShareActive #liveDock.mode-compact .liveVideoGrid{
  min-height:72px;
}

@media(max-width:1050px){
  .shareWorkspace{grid-template-columns:minmax(0,1fr) 220px}
}

@media(max-width:820px){
  .shareWorkspace{grid-template-columns:1fr}
  #sharePrioritySlot #priorityCard{
    position:static;
    max-height:none;
  }
}

/* =========================================================
   v0.13.3.2 — Unified classroom grid
   ========================================================= */

/* One geometry for the entire lesson:
   Lesson Map | Main Workspace | Priority 10 */
.classroomGrid{
  display:grid;
  grid-template-columns:250px minmax(500px,1fr) 300px;
  gap:20px;
  align-items:start;
}

.classroomMain{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:16px;
}

/* The share viewer and normal lesson content now have exactly the same
   left/right edges because they live in the same centre column. */
#remoteShareSection,
#lessonContentCard{
  width:100%;
  min-width:0;
}

/* Priority 10 is a permanent right-hand rail while a lesson is open.
   It no longer moves into/out of separate share containers. */
#priorityCard{
  align-self:stretch;
  min-width:0;
}

body.gfRemoteShareActive #priorityCard{
  position:sticky;
  top:155px;
  max-height:calc(100vh - 175px);
  overflow:auto;
}

/* Keep the preferred v0.13.3 share proportions. */
#remoteShareContainer{
  display:block;
  width:100%;
  min-height:0!important;
  aspect-ratio:16 / 9;
  background:#fff!important;
  border:1px solid #e1e8ee;
  border-radius:10px;
  overflow:hidden;
}

#remoteShareContainer video-player{
  display:block;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  aspect-ratio:16 / 9;
  object-fit:contain;
  background:#fff!important;
}

/* Retire the old separate share-workspace layout if any legacy class remains. */
.shareWorkspace,
#sharePrioritySlot{
  display:none!important;
}

@media(max-width:1100px){
  .classroomGrid{
    grid-template-columns:220px minmax(0,1fr) 260px;
    gap:14px;
  }
}

@media(max-width:850px){
  .classroomGrid{
    grid-template-columns:1fr;
  }
  #priorityCard,
  body.gfRemoteShareActive #priorityCard{
    position:static;
    max-height:none;
    overflow:visible;
  }
}


/* =========================================================
   v0.13.3.4 — Top-edge alignment refinement
   =========================================================
   When no screen share is active, the hidden share section must not create
   vertical spacing above the lesson-content card. All three classroom cards
   therefore begin on the same top edge.
*/
.classroomMain > .hidden{
  display:none !important;
}

.classroomMain #lessonContentCard:first-child,
.classroomMain #remoteShareSection.hidden + #lessonContentCard{
  margin-top:0 !important;
}

.classroomGrid > #lessonMapCard,
.classroomGrid > .classroomMain,
.classroomGrid > #priorityCard{
  margin-top:0 !important;
}


/* =========================================================
   v0.13.3.5 — Actual classroom-column alignment fix
   =========================================================
   The centre column uses a <main> element. The site's global main selector
   adds padding:18px 28px, which was pushing the centre lesson card down and
   inward relative to Lesson Map and Priority 10.
*/
main.classroomMain{
  padding:0 !important;
  margin:0 !important;
}

/* v0.14.0 — full listening/activity renderer */
.sourceBox{
  margin:14px 0;
  padding:12px 14px;
  background:#f4f8fb;
  border:1px solid #d7e0e8;
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.sourceButton{
  display:inline-block;
  padding:9px 12px;
  border-radius:8px;
  background:#1d7a7a;
  color:#fff;
  font-weight:700;
  text-decoration:none;
}
.sourceButton:hover{filter:brightness(.95)}
.lessonCallout{
  margin:12px 0;
  padding:11px 13px;
  border-left:4px solid #d7a43b;
  background:#fff8e8;
  border-radius:8px;
}
.activityQuestion{margin-top:16px}
.optionList{display:grid;gap:8px;margin:12px 0}
.optionRow{
  display:flex;
  align-items:flex-start;
  gap:10px;
  background:#f7fafc;
  border:1px solid #e1e8ee;
  border-radius:9px;
  padding:10px 12px;
  cursor:pointer;
}
.optionRow input{margin-top:3px}
.lessonItems{display:grid;gap:8px;margin:12px 0}
.lessonItem{padding:10px 12px;background:#f7fafc;border-radius:9px;border:1px solid #e1e8ee}
.successCheck{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.successCheck span{background:#edf6f2;border-radius:999px;padding:6px 9px;font-size:12px}
.exampleList{display:grid;gap:7px;margin:10px 0}
.exampleList div{background:#f7fafc;border-radius:8px;padding:9px 11px}
.pronunciationBox,.modelSentence{margin:10px 0;padding:10px 12px;background:#f5f8fa;border-radius:8px}


/* =========================================================
   v0.14.1 — Listening answer-option alignment
   =========================================================
   Keep each checkbox visually attached to its answer text.
   The answer unit is right-aligned within the option row,
   while wrapped text remains readable and aligned with itself.
*/
.optionRow{
  display:flex !important;
  justify-content:flex-end !important;
  align-items:flex-start !important;
  gap:10px !important;
}

.optionRow input[type="checkbox"]{
  flex:0 0 auto !important;
  margin:3px 0 0 0 !important;
}

.optionRow span{
  flex:0 1 auto !important;
  width:auto !important;
  max-width:70% !important;
  text-align:left !important;
  margin:0 !important;
}


/* =========================================================
   v0.14.2 — LEFT-aligned listening answer options
   =========================================================
   Corrects v0.14.1: checkbox + answer text are grouped at the
   LEFT edge of each answer box. Wrapped lines align beneath
   the answer text, not beneath the checkbox.
*/
.optionRow{
  display:grid !important;
  grid-template-columns:18px minmax(0,1fr) !important;
  justify-content:stretch !important;
  align-items:start !important;
  column-gap:10px !important;
}

.optionRow input[type="checkbox"]{
  width:16px !important;
  height:16px !important;
  margin:3px 0 0 0 !important;
  justify-self:start !important;
}

.optionRow span{
  width:auto !important;
  max-width:none !important;
  min-width:0 !important;
  margin:0 !important;
  text-align:left !important;
  line-height:1.3 !important;
}

.guidedActivity{display:grid;gap:14px;margin-top:14px}.guidedSection{border:1px solid #d9e4ea;border-radius:12px;padding:16px;background:#fff}.guidedSection h2{margin:0 0 7px;font-size:1.08rem}.guidedInstruction{margin:0 0 12px;line-height:1.45}.guidedItems{display:grid;gap:8px}.guidedItem{background:#f3f7f9;border-radius:9px;padding:10px 12px}.guidedMatches{display:grid;gap:10px}.guidedMatch{display:grid;grid-template-columns:minmax(190px,.8fr) minmax(0,1.4fr);gap:12px;padding:12px;background:#f3f7f9;border-radius:9px}.guidedChoices{display:grid;gap:6px}.guidedExample{margin-top:10px;padding:10px 12px;border-left:4px solid #168b87;background:#f6fbfb}.guidedResponses{display:grid;gap:10px;margin-top:12px}.teacherProcedure,.teacherAnswers,.teacherFollowup{margin-top:12px}.teacherProcedure li,.teacherAnswers li,.teacherFollowup li{margin:5px 0;line-height:1.4}@media(max-width:800px){.guidedMatch{grid-template-columns:1fr}}


/* v0.14.5 — verified stage-response save */
.guidedResponseRow{
  display:flex;
  align-items:center;
  gap:12px;
  width:100%;
}
.guidedResponseRow > b{
  flex:0 0 86px;
  min-width:86px;
  white-space:nowrap;
  overflow:visible;
}
.guidedResponseRow > .stageResponseInput{
  flex:1 1 auto;
  min-width:0;
}
.stageResponseInput{
  width:100%;
  box-sizing:border-box;
  padding:9px 10px;
  border:1px solid #cddae2;
  border-radius:7px;
  background:#fff;
  font:inherit;
}
.stageResponseInput:focus{
  outline:2px solid rgba(22,139,135,.18);
  border-color:#168b87;
}
.stageResponseInput[readonly]{
  background:#f5f8fa;
  color:#314555;
}
.stageResponseStatus{
  margin:3px 0 0 32px;
  min-height:18px;
}
.stageResponseStatus.saving{color:#6c7f8d}
.stageResponseStatus.saved{color:#16705a;font-weight:700}
.stageResponseStatus.error{color:#a92b2b;font-weight:700}


/* v0.14.7 — reusable persistent response controls */
.guidedSelectable,
.guidedChoiceOption{
  display:flex;
  align-items:flex-start;
  gap:10px;
  cursor:pointer;
}
.guidedSelectable input,
.guidedChoiceOption input{
  margin-top:3px;
  flex:0 0 auto;
}
.guidedChoiceOption{
  padding:6px 0;
}
.guidedChoiceOption input:disabled,
.guidedSelectable input:disabled{
  cursor:default;
}


/* =========================================================
   v0.14.8 — response-control formatting correction
   Global form styles set input width:100%; choice controls must
   explicitly opt out of that rule.
   ========================================================= */
.stageChoiceInput,
.optionRow .stageChoiceInput,
.guidedSelectable .stageChoiceInput,
.guidedChoiceOption .stageChoiceInput{
  width:16px !important;
  min-width:16px !important;
  max-width:16px !important;
  height:16px !important;
  min-height:16px !important;
  padding:0 !important;
  margin:3px 0 0 0 !important;
  border-radius:3px;
  flex:0 0 16px !important;
  justify-self:start !important;
}

.optionRow{
  grid-template-columns:18px minmax(0,1fr) !important;
  justify-content:stretch !important;
}
.optionRow span{
  width:auto !important;
  max-width:none !important;
  min-width:0 !important;
  text-align:left !important;
}

.guidedSelectable{
  display:grid !important;
  grid-template-columns:18px minmax(0,1fr) !important;
  column-gap:10px !important;
  align-items:start !important;
  margin:0 !important;
  width:auto !important;
}
.guidedSelectable span{
  min-width:0 !important;
  width:auto !important;
  line-height:1.35 !important;
  font-weight:400 !important;
}

.guidedChoiceOption{
  display:grid !important;
  grid-template-columns:18px minmax(0,1fr) !important;
  column-gap:10px !important;
  align-items:start !important;
  margin:0 !important;
  width:auto !important;
}
.guidedChoiceOption span{
  min-width:0 !important;
  width:auto !important;
  line-height:1.35 !important;
  font-weight:400 !important;
}

.teacherProblemOptions,
.teacherRetrievalPrompts{
  margin-top:14px;
}
.teacherOptionCards{
  display:grid;
  gap:8px;
  margin-top:8px;
}
.teacherOptionCard{
  background:#fffaf0;
  border:1px solid #ead59d;
  border-radius:8px;
  padding:10px 12px;
  line-height:1.4;
}


/* =========================================================
   v0.15.0 — internal teacher assessment prototype
   ========================================================= */
.assessmentPanel{
  margin-top:18px;
  padding:16px;
  border:1px solid #bfd2df;
  border-radius:12px;
  background:#f8fbfd;
}
.assessmentHeader{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
}
.assessmentHeader h3{margin:6px 0 4px}
.assessmentStatus{
  font-size:12px;
  font-weight:700;
  color:#4d6575;
  white-space:nowrap;
}
.assessmentStatus.error,.assessmentError{color:#a92b2b}
.assessmentScaleNote{
  margin:12px 0;
  padding:9px 11px;
  background:#eef4f7;
  border-radius:8px;
  line-height:1.4;
}
.assessmentGrid{
  display:grid;
  grid-template-columns:repeat(5,minmax(120px,1fr));
  gap:10px;
}
.assessmentField{
  display:block;
  margin:0 !important;
  font-weight:700;
}
.assessmentField>span{
  display:block;
  margin-bottom:5px;
  line-height:1.25;
}
.assessmentField select{
  width:100%;
  padding:8px;
  border:1px solid #c9d5df;
  border-radius:8px;
  background:#fff;
}
.assessmentSupport{
  display:grid;
  grid-template-columns:minmax(180px,280px) 1fr;
  gap:12px;
  align-items:end;
  margin-top:14px;
}
.promptCounter{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
  padding-bottom:1px;
}
.promptCounter button{padding:8px 10px}
.assessmentCapabilities{
  margin-top:16px;
}
.assessmentCapabilities h4,.assessmentTags h4{margin:0 0 8px}
.capabilityRow{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 180px;
  gap:12px;
  align-items:center;
  margin:7px 0 !important;
  font-weight:400 !important;
}
.capabilityRow select{
  width:100%;
  padding:7px;
  border:1px solid #c9d5df;
  border-radius:8px;
  background:#fff;
}
.assessmentTags{margin-top:16px}
.tagChecks{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px 12px;
}
.assessmentTag{
  display:grid !important;
  grid-template-columns:18px minmax(0,1fr);
  gap:8px;
  align-items:start;
  margin:0 !important;
  font-weight:400 !important;
}
.assessmentTag input{
  width:16px !important;
  height:16px !important;
  min-width:16px !important;
  padding:0 !important;
  margin:2px 0 0 0 !important;
}
.assessmentWide{margin-top:14px !important}
.assessmentWide textarea{
  box-sizing:border-box;
  min-height:72px;
}
.assessmentActions{margin-top:12px}
.assessmentLoading{margin-top:14px;color:#607989;font-style:italic}
@media(max-width:1100px){
  .assessmentGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .assessmentGrid,.assessmentSupport,.tagChecks,.capabilityRow{grid-template-columns:1fr}
}

/* v0.15.1 — explicit assessment save feedback */
.assessmentStatus.saving{color:#6d6d6d}
.assessmentStatus.saved{color:#26713b}
.assessmentActions button:disabled{opacity:.72;cursor:wait}

/* =========================================================
   v0.15.2 — low-friction live evidence recording
   ========================================================= */
.postReviewDetails{margin-top:14px;border-top:1px solid #d9e4ea;padding-top:10px}
.postReviewDetails summary{cursor:pointer;font-weight:800;padding:7px 0}
.postReviewBody{padding-top:10px}
.promptReviewNote{font-size:13px;color:#607989;padding:8px 0}
.liveEvidencePanel{background:#fff;border:1px solid #c8d9e3;border-radius:10px;padding:14px}
.liveEvidenceTop{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.liveEvidenceTop h3{margin:5px 0 4px}
.recordingClock{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.recordingClock.isLive{color:#a92b2b}
.liveEvidenceActions,.liveEvidenceCounts{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:10px}
.liveEvidenceCounts{font-size:13px}
.flagButton{background:#f2f5f7;color:#243b4a;border:1px solid #bdcbd4}
.promptButton{background:#fff4dd;color:#5a4211;border:1px solid #e0c57f}
.liveEvidenceMsg{margin-top:8px;font-size:13px}
.learnerRecordingConsent{position:fixed;inset:0;background:rgba(20,35,45,.55);z-index:99999;display:grid;place-items:center;padding:20px}
.consentCard{width:min(520px,94vw);background:#fff;border-radius:14px;padding:22px;box-shadow:0 18px 60px rgba(0,0,0,.25)}
.consentCard h3{margin-top:0}
.consentActions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.learnerRecordingIndicator{position:fixed;right:18px;bottom:18px;z-index:99998;background:#fff4f4;color:#9b2020;border:1px solid #e1b3b3;border-radius:999px;padding:9px 13px;font-size:13px;font-weight:800;box-shadow:0 4px 18px rgba(0,0,0,.12)}
@media(max-width:700px){.liveEvidenceTop{display:block}.recordingClock{margin-top:8px}}

/* v0.15.4 — audio verification + recording history */
.audioWarning{margin:10px 0;padding:9px 11px;background:#fff3df;border:1px solid #e2c47f;border-radius:8px;color:#6a4a11;font-weight:700}
.recordingHistory{margin-top:16px;padding-top:12px;border-top:1px solid #d9e4ea}
.recordingHistory h4{margin:0 0 8px}
.recordingHistoryRow{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid #edf1f4}
.recordingHistoryRow button{padding:7px 10px}
.historyWarning{color:#a85c00;font-weight:700}
[data-history-audio]{margin-top:10px}
[data-history-audio] audio{width:100%}
.learnerMicMeter{position:fixed;right:18px;bottom:62px;z-index:99998;background:#fff;border:1px solid #cbd9e2;border-radius:10px;padding:9px 12px;box-shadow:0 4px 18px rgba(0,0,0,.12);display:grid;grid-template-columns:auto 120px auto;gap:8px;align-items:center;font-size:12px}
.micBar{height:8px;background:#e7eef2;border-radius:99px;overflow:hidden}
.micFill{height:100%;width:0;background:#1d7a7a;transition:width .08s linear}
@media(max-width:700px){.recordingHistoryRow{display:block}.recordingHistoryRow button{margin-top:6px}.learnerMicMeter{left:12px;right:12px;grid-template-columns:auto 1fr}}

/* v0.15.5 — Zoom-pipeline evidence capture */
.learnerMicMeter [data-mic-text]{min-width:165px}

/* =========================================================
   v0.15.7 — post-performance review
   ========================================================= */
.reviewRecordingCard{border:1px solid #d5e1e7;border-radius:9px;margin:9px 0;background:#fbfdfe}
.reviewRecordingCard>summary{cursor:pointer;padding:11px 12px;display:flex;justify-content:space-between;gap:12px;align-items:center}
.reviewSummaryMeta{font-size:12px;color:#607989;white-space:nowrap}
.reviewRecordingBody{padding:0 12px 13px;border-top:1px solid #e5edf1}
.reviewPlayerRow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0 8px}
[data-history-audio] audio{width:100%;margin:5px 0 10px}
.evidenceMarkers,.structuredObservations{margin-top:14px;padding-top:12px;border-top:1px solid #e3ebef}
.evidenceMarkers h5,.structuredObservations h5{margin:0 0 8px;font-size:14px}
.evidenceMarker{display:flex;gap:10px;align-items:center;margin:6px 0}
.markerJump{min-width:118px;text-align:left;padding:7px 9px;border-radius:7px}
.markerJump.flag{background:#f2f5f7;color:#243b4a;border:1px solid #bdcbd4}
.markerJump.prompt{background:#fff4dd;color:#5a4211;border:1px solid #e0c57f}
.observationRow{display:grid;grid-template-columns:170px 200px 1fr 36px;gap:7px;margin:7px 0;align-items:center}
.observationRow select,.observationRow input{width:100%;min-width:0}
.iconButton{padding:7px 9px;background:#fff;border:1px solid #d2dde3;color:#617784}
.reviewBottomGrid{display:grid;grid-template-columns:220px 1fr;gap:12px;margin-top:14px}
.reviewBottomGrid textarea{min-height:70px}
.reviewActions{display:flex;align-items:center;gap:10px;margin-top:10px}
@media(max-width:800px){
 .reviewRecordingCard>summary{display:block}
 .reviewSummaryMeta{display:block;margin-top:4px}
 .observationRow{grid-template-columns:1fr}
 .reviewBottomGrid{grid-template-columns:1fr}
}

/* v0.15.8 — lesson-wide observations */
.stageEvidenceToolbar{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:9px;margin:10px 0;padding:9px 0;border-top:1px dashed #d9e3e8}
.stageEvidenceToolbar [data-stage-observation-editor]{grid-column:1/-1}
.compactButton{padding:6px 9px;font-size:12px}
.textButton{border:0;background:transparent;color:#557181;padding:5px 4px;text-decoration:underline;font-size:12px}
.quickObservationEditor{margin:5px 0;padding:10px;border:1px solid #d5e1e7;border-radius:8px;background:#f8fbfc}
.quickObservationGrid{display:grid;grid-template-columns:170px 210px 1fr;gap:7px}
.quickObservationGrid select,.quickObservationGrid input{width:100%;min-width:0}
.quickObservationActions{display:flex;gap:9px;align-items:center;margin-top:8px}
.evidenceMarker{align-items:flex-start;flex-wrap:wrap;padding:7px 0;border-bottom:1px solid #edf2f4}
.markerMeta{display:flex;flex-direction:column;gap:2px;flex:1;min-width:180px}
.markerActions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.markerObservationEditor{width:100%}
.observationLinked{font-size:12px;font-weight:700;color:#356a52}
.reviewedNoObs{font-size:12px;color:#74838c}
.evidenceMarker.hasObservation{background:#fbfdfb}
@media(max-width:800px){.quickObservationGrid{grid-template-columns:1fr}}

/* v0.15.8a — explicit No Observation Needed save feedback */
.markerDismissStatus{font-size:12px;min-width:54px}
.markerActions button:disabled{opacity:.7;cursor:wait}

/* v0.15.9 — secure transcription pilot UI */
.transcriptPanel{margin-top:14px;padding:12px;border:1px solid #d7e2e8;border-radius:9px;background:#fcfefe}
.transcriptHeader{display:flex;justify-content:space-between;gap:12px;align-items:center}
.transcriptHeader h5{margin:0 0 3px;font-size:14px}
.transcriptStatus{font-size:12px;font-weight:700;color:#617784}
.transcriptStatus.ready{color:#2f6d48}
.transcriptStatus.busy{color:#705b1e}
.transcriptStatus.error,.transcriptError{color:#a12e2e}
.transcriptActions{display:flex;gap:7px;flex-wrap:wrap}
.transcriptText{margin-top:10px;padding:10px 11px;background:#fff;border:1px solid #e5ecef;border-radius:7px;line-height:1.55;white-space:pre-wrap}
.transcriptMeta{margin-top:6px;font-size:12px}
.transcriptError{margin-top:8px;font-size:12px}
@media(max-width:700px){.transcriptHeader{display:block}.transcriptActions{margin-top:8px}}

/* v0.15.10 — timestamped transcript evidence review */
.timedTranscript{line-height:2.05}
.transcriptTime{display:inline-block;margin:0 6px 0 3px;padding:1px 5px;border-radius:5px;background:#edf3f6;color:#536a77;font-size:11px;font-weight:700;vertical-align:middle}
.transcriptWord{border:0!important;background:transparent!important;color:inherit!important;padding:1px 2px!important;margin:0!important;min-width:0!important;font:inherit!important;line-height:inherit!important;border-radius:3px!important;cursor:pointer!important;box-shadow:none!important}
.transcriptWord:hover{background:#e9f2f7!important;text-decoration:underline}
.transcriptWord.atMarker{background:#fff1bd!important;font-weight:700!important}
.markerTranscript{margin:8px 0 10px;padding:9px 10px;background:#f7fafb;border-left:3px solid #9fb5c1;border-radius:5px}
.markerTranscriptLabel{font-size:11px;font-weight:700;color:#617784;margin-bottom:4px}
.markerTranscriptWords{line-height:1.75}
.observationTranscriptEvidence{margin-bottom:9px;padding:9px 10px;background:#f7fafb;border:1px solid #dce7ec;border-radius:6px;font-size:12px;line-height:1.45}
.observationTranscriptEvidence b{display:block;margin-bottom:4px}
.observationTranscriptEvidence .muted{display:block;margin-top:4px;font-size:11px}

/* v0.15.10a — observation save confirmation */
.quickObservationActions [data-qo-save]{min-width:132px}
.quickObservationActions [data-qo-save].saveConfirmed{font-weight:700}
.quickObservationActions [data-qo-status][data-kind="validation"],
.quickObservationActions [data-qo-status][data-kind="error"]{font-weight:600}
.quickObservationActions [data-qo-status][data-kind="saved"]{font-weight:700}

/* v0.15.10b — saved observation visibility + stay-open workflow */
.linkedObservationList{width:100%;margin:8px 0 10px;display:grid;gap:7px}
.linkedObservationCard{padding:9px 10px;border:1px solid #d9e5ea;border-radius:7px;background:#fff}
.linkedObservationHead{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:4px}
.observationType{font-size:12px;font-weight:700;padding:2px 6px;border-radius:5px;background:#eef4f7}
.observationCategory{font-size:12px;font-weight:700;color:#526d7b}
.linkedObservationNote{font-size:13px;line-height:1.45}
.linkedObservationSource{font-size:11px;margin-top:4px}

/* v0.15.10c — explicit teacher performance scale */
.assessmentScaleLegend{
  display:grid;
  grid-template-columns:repeat(3,minmax(180px,1fr));
  gap:6px 10px;
  margin-top:9px;
}
.assessmentScaleLegend span{
  padding:7px 8px;
  border:1px solid #dce6eb;
  border-radius:6px;
  background:#fff;
  font-size:12px;
  line-height:1.35;
}
.assessmentScaleLegend .scaleAnchor{
  font-weight:700;
  border-width:2px;
}
.assessmentScaleGuidance{
  margin-top:9px;
  font-size:12px;
  line-height:1.45;
}
@media(max-width:850px){
  .assessmentScaleLegend{grid-template-columns:1fr}
}

/* v0.15.11 — programme-level learner evidence summary */
.cardInset{margin:18px 0;padding:18px;border:1px solid #d8e4e9;border-radius:10px;background:#f8fbfc}
.evidenceSummary h2{margin:5px 0 4px}.evidenceSummaryHeader{display:flex;justify-content:space-between;gap:15px}
.summaryMetrics{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:9px;margin:15px 0}
.summaryMetrics>div{background:#fff;border:1px solid #dce6eb;border-radius:8px;padding:11px}
.summaryMetrics b{display:block;font-size:22px}.summaryMetrics span{font-size:11px;color:#61737d}
.summarySection{margin-top:17px}.summarySection h3{margin-bottom:8px}
.evidenceDetail{background:#fff;border:1px solid #dce6eb;border-radius:7px;margin:7px 0;padding:0}
.evidenceDetail summary{cursor:pointer;padding:10px 11px;font-weight:700}
.evidenceDetailBody{border-top:1px solid #e5ecef;padding:10px 11px}
.ratingChips,.evidenceCounts{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:8px}
.ratingChips span,.evidenceCounts span{font-size:11px;padding:4px 6px;background:#f1f5f7;border-radius:5px}
.summaryObservation{padding:8px 0;border-top:1px solid #edf1f3;font-size:12px;line-height:1.45}.summaryObservation:first-of-type{border-top:0}
.recurrenceNotice{margin:12px 0;padding:11px;border:1px solid #d9e2e7;border-left:4px solid #7b8e98;border-radius:7px;background:#fff}
.recurrenceNotice>span{display:block;margin-top:4px}
@media(max-width:900px){.summaryMetrics{grid-template-columns:repeat(2,1fr)}}

/* v0.15.12 — programme priorities / Needs Analysis fulfilment */
.prioritySummaryHeader{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.prioritySummaryHeader h2{margin:5px 0 4px}
.priorityList{display:grid;gap:9px;margin-top:12px}
.priorityCard{background:#fff;border:1px solid #dce6eb;border-radius:8px;padding:11px}
.priorityCardMain{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}
.priorityTitle{font-weight:700;font-size:14px}
.priorityNotes{margin-top:5px;font-size:12px;line-height:1.45}
.priorityStatusBlock{min-width:210px}
.priorityStatusBlock select{width:100%}
.priorityMeta{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;font-size:11px;color:#5f727d}
.priorityActions{margin-top:5px}
.priorityEditor{margin:12px 0;padding:12px;background:#fff;border:1px solid #dce6eb;border-radius:8px}
.priorityEditorGrid{display:grid;grid-template-columns:2fr 1.2fr 1fr 1.3fr;gap:9px}
.priorityEditor label span,.priorityEditorWide span{display:block;font-size:11px;font-weight:700;margin-bottom:4px}
.priorityEditor input,.priorityEditor select,.priorityEditor textarea{width:100%}
.priorityEditorWide{display:block;margin-top:9px}
.priorityEditorWide textarea{min-height:70px}
.priorityEditorActions{display:flex;align-items:center;gap:9px;margin-top:9px}
@media(max-width:900px){.priorityEditorGrid{grid-template-columns:1fr}.priorityCardMain,.prioritySummaryHeader{display:block}.priorityStatusBlock{margin-top:9px;min-width:0}}

/* v0.15.12b — streamlined Learner Programme Focus */
.prioritySummary .priorityCardMain{display:block}
.prioritySummary .priorityNotes{margin-top:8px}

/* v0.15.13 — Teacher Brief */
.teacherBriefPanel{margin:10px 0}
.teacherBriefGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.briefBlock{background:#fff;border:1px solid #dbe5ec;border-radius:9px;padding:12px}
.briefBlock h3{margin:0 0 8px}.briefBlock ul{margin:6px 0 0;padding-left:19px}.briefBlock li{margin:5px 0}
.briefWide{grid-column:1/-1}.briefMetrics{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.briefMetric{display:inline-block;background:#eef5f8;border-radius:7px;padding:6px 8px;font-size:.9em}
@media(max-width:800px){.teacherBriefGrid{grid-template-columns:1fr}.briefWide{grid-column:auto}}

/* v0.15.14 — derived Next Lesson Prep */
.nextLessonPrep{border-style:solid}
.nextLessonPrepHead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.nextLessonTitle{margin-top:3px}
.nextLessonPrepGrid{display:grid;grid-template-columns:1.1fr 1.2fr .8fr;gap:12px;margin-top:10px}
.nextLessonPrepGrid>div{padding:10px;border:1px solid #e1e9ed;border-radius:8px;background:#fbfdfe}
.nextLessonPrepGrid h4{margin:0 0 7px}
.nextLessonPrepGrid ul{margin:5px 0 0;padding-left:18px}
.nextLessonPrepGrid li{margin:5px 0}
@media(max-width:900px){.nextLessonPrepGrid{grid-template-columns:1fr}}

/* v0.15.15 — formal Performance Change */
.performanceChange{margin:10px 0}
.performanceChange>h2{margin-bottom:4px}
.performanceLesson{background:#fff;border:1px solid #dbe5ec;border-radius:10px;padding:12px;margin-top:12px}
.performanceLessonHead{display:flex;justify-content:space-between;align-items:center;gap:12px}
.performanceLessonHead h3{margin:0}
.performanceTableWrap{overflow-x:auto;margin-top:10px}
.performanceTable{width:100%;border-collapse:collapse;min-width:720px}
.performanceTable th,.performanceTable td{padding:8px 10px;border-bottom:1px solid #e3eaee;text-align:left;vertical-align:top}
.performanceTable th{font-size:.88em;background:#f5f9fb}
.performanceTable td:not(:first-child),.performanceTable th:not(:first-child){text-align:center}
.performanceTable .changeCell{font-weight:700}
.performanceTable .supportRow td{background:#fbfdfe}
.performanceInterpretation{margin:10px 0 2px}


/* v0.15.17 — programme-level KPI layer */
.programmeOutcomes{margin:10px 0}.programmeOutcomes>h2{margin:5px 0 4px}
.programmeKpiMetrics{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:9px;margin:15px 0}
.programmeKpiMetrics>div{background:#fff;border:1px solid #dce6eb;border-radius:8px;padding:11px}
.programmeKpiMetrics b{display:block;font-size:22px}.programmeKpiMetrics span{font-size:11px;color:#61737d}
.programmeFocusContext{background:#fff;border:1px solid #dce6eb;border-radius:8px;padding:11px;margin:10px 0 14px}
.programmeFocusContext>div{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.programmeFocusChip{display:inline-block;background:#eef5f8;border-radius:7px;padding:6px 8px;font-size:.9em;font-weight:700}
.programmeKpiTableWrap{overflow-x:auto}.programmeKpiTable{width:100%;border-collapse:collapse;min-width:760px;background:#fff}
.programmeKpiTable th,.programmeKpiTable td{padding:9px 10px;border-bottom:1px solid #e3eaee;text-align:left;vertical-align:top}
.programmeKpiTable th{font-size:.88em;background:#f5f9fb}.programmeKpiTable td:not(:first-child),.programmeKpiTable th:not(:first-child){text-align:center}
.programmeKpiNote{margin:12px 0;padding:10px 11px;background:#fff;border:1px solid #dce6eb;border-radius:8px}
@media(max-width:900px){.programmeKpiMetrics{grid-template-columns:repeat(2,1fr)}}
\n/* v0.15.18 — teacher-only report preview */\n.reportPreview{margin:10px 0}\n.reportPreview h2{margin-bottom:4px}\n.reportPreviewGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}\n.reportBlock{background:#fff;border:1px solid #dbe5ec;border-radius:9px;padding:12px}\n.reportBlock h3{margin:0 0 8px}\n.reportWide{grid-column:1/-1}\n.reportLessonSummary{padding:9px 0;border-top:1px solid #edf1f3}\n.reportLessonSummary:first-child{border-top:0;padding-top:0}\n.reportLessonSummary h4{margin:0 0 5px}\n@media(max-width:850px){.reportPreviewGrid{grid-template-columns:1fr}.reportWide{grid-column:auto}}\n
/* v0.15.19 — progressive disclosure for secondary teacher analytics */
.gfAnalyticsFold{
  margin:10px 0;
  border:1px solid #d6e1e8;
  border-radius:10px;
  background:#f8fbfc;
  overflow:hidden;
}
.gfAnalyticsFold>summary{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:48px;
  padding:10px 14px;
  cursor:pointer;
  list-style:none;
  user-select:none;
}
.gfAnalyticsFold>summary::-webkit-details-marker{display:none}
.gfAnalyticsFold>summary::before{
  content:"▸";
  font-size:15px;
  line-height:1;
  transition:transform .12s ease;
}
.gfAnalyticsFold[open]>summary::before{transform:rotate(90deg)}
.gfAnalyticsFoldTitle{font-weight:700;color:#082e54}
.gfAnalyticsFoldSummary{font-size:13px;color:#587086}
.gfAnalyticsFoldHint{
  margin-left:auto;
  font-size:12px;
  font-weight:700;
  color:#0c5a8c;
  text-transform:uppercase;
  letter-spacing:.02em;
}
.gfAnalyticsFold[open] .gfAnalyticsFoldHint{font-size:0}
.gfAnalyticsFold[open] .gfAnalyticsFoldHint::after{content:"Hide";font-size:12px}
.gfAnalyticsFoldBody{padding:0 10px 10px}
.gfAnalyticsFoldBody>.cardInset,
.gfAnalyticsFoldBody>section{margin-top:0}

/* v0.15.20 — compact full teacher dashboard */
.gfAnalyticsFold{margin:7px 0}
.gfAnalyticsFold>summary{min-height:42px;padding:8px 12px}
.gfAnalyticsFoldTitle{font-size:14px}
.gfAnalyticsFoldSummary{font-size:12px}

/* v0.15.21 — Programme Attention */
.programmeAttention{
  margin-top:12px;
  padding:11px 12px;
  border:1px solid #d9c98c;
  border-radius:9px;
  background:#fffdf4;
}
.programmeAttentionHead{
  font-weight:800;
  color:#6a5210;
  margin-bottom:6px;
}
.programmeAttentionItem{
  padding:6px 0;
  border-top:1px solid #eee5c5;
  line-height:1.4;
}
.programmeAttentionItem:first-of-type{border-top:0}

/* v0.15.22 — BE01 digital role-play architecture */
.teacherRoleContext{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.teacherLearnerMirror,.teacherOnlyRole{border:1px solid #d9e4eb;border-radius:10px;padding:12px;background:#fff}
.teacherOnlyRole{background:#fff8df;border-color:#e6cf85}
.teacherLearnerMirrorBody .pill{display:none}
.teacherLearnerMirrorBody h1{font-size:1.15rem;margin:6px 0}
.teacherLearnerMirrorBody .sourceBox{display:none}
.teacherHiddenInfo,.teacherRevealWhen{margin-top:10px}
.teacherHiddenInfo ul,.teacherRevealWhen ul{margin:6px 0 0 20px}
.priorityClosed #p10{display:none}
.priorityClosed::after{content:"Priority 10 closed for this activity — retrieve and adapt language independently.";display:block;padding:12px;border:1px solid #d8e2e8;border-radius:8px;background:#f7fafb;color:#536b7e;line-height:1.4}
@media(max-width:900px){.teacherRoleContext{grid-template-columns:1fr}}

/* v0.15.22c — BE01 content/role view fix */
.teacherRoleContext{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.teacherLearnerMirror,.teacherOnlyRole{border:1px solid #d9e4eb;border-radius:10px;padding:12px;background:#fff}
.teacherOnlyRole{background:#fff8df;border-color:#e6cf85}
.teacherLearnerMirrorBody .pill:first-child{display:none}
.teacherLearnerMirrorBody h1{font-size:1.15rem;margin:6px 0}
.teacherHiddenInfo,.teacherRevealWhen{margin-top:10px}
.teacherHiddenInfo ul,.teacherRevealWhen ul{margin:6px 0 0 20px}
.priorityClosed #p10{display:none}
.priorityClosed::after{content:"Priority 10 closed for this activity — retrieve and adapt language independently.";display:block;padding:12px;border:1px solid #d8e2e8;border-radius:8px;background:#f7fafb;color:#536b7e;line-height:1.4}
@media(max-width:900px){.teacherRoleContext{grid-template-columns:1fr}}

/* v0.15.23 — BE01 B1 audit revision */
.stageActivityTextarea{width:100%;min-height:130px;resize:vertical}
.assessmentActions{position:sticky;bottom:0;z-index:5;padding:10px 0 4px;background:linear-gradient(to bottom,rgba(255,255,255,.88),#fff 28%)}
.assessmentActions button.unsavedSave{font-weight:700;box-shadow:0 0 0 3px rgba(35,91,121,.15)}
.assessmentStatus{font-weight:600}
.teacherProcedure{margin:10px 0}
.teacherProcedure ol{margin:7px 0 0 22px}
.teacherLearnerMirror .stageChoiceInput,.teacherLearnerMirror .stageResponseInput{pointer-events:none}

/* v0.15.27 — permanent Lesson Library / admin interface */
.libraryHeader{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
.libraryHeader h1{margin-bottom:6px}
.librarySummary{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:10px;margin:18px 0}
.libraryMetric{border:1px solid #d7e0e8;border-radius:10px;padding:12px;background:#fbfdfe;display:flex;flex-direction:column}
.libraryMetric b{font-size:24px;color:#0b2a4a}
.libraryMetric span{font-size:12px;color:#617486;font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.libraryFilters{display:grid;grid-template-columns:minmax(240px,2fr) minmax(160px,1fr) minmax(120px,.7fr);gap:14px;align-items:end;margin:8px 0 12px}
.libraryFilters label{margin:0}
.libraryFilters select{width:100%;border:1px solid #c9d5df;border-radius:9px;padding:10px;font:inherit;margin-top:6px;background:#fff}
.libraryLegend{display:flex;gap:18px;align-items:center;margin:12px 0 14px;flex-wrap:wrap}
.libraryLegend span{display:inline-flex;align-items:center;gap:6px}
.statusDot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#9ba8b3}
.statusDot.ready{background:#2e7d32}.statusDot.in_development{background:#d18b00}.statusDot.not_built{background:#9ba8b3}.statusDot.retired{background:#8b4358}
.libraryTableHolder{overflow:auto;border:1px solid #d7e0e8;border-radius:11px}
.libraryTable{width:100%;border-collapse:collapse;min-width:900px;background:#fff}
.libraryTable th{position:sticky;top:0;background:#eef4f7;color:#0b2a4a;text-align:left;padding:11px;border-bottom:1px solid #cad7df;z-index:1}
.libraryTable td{vertical-align:top;padding:12px;border-bottom:1px solid #e4ebef;border-right:1px solid #edf2f5}
.libraryTable tbody tr:last-child td{border-bottom:0}
.libraryLessonCell{width:35%;min-width:310px;background:#fbfdfe}
.libraryCode{font-weight:800;color:#1f5a8a;margin-bottom:4px}.libraryTitle{font-weight:700;line-height:1.3}
.libraryVersionCell{min-width:180px}.libraryVersionCell.empty{background:#fafbfc;color:#9ba8b3}
.libraryStatus{display:flex;gap:7px;align-items:center;margin-bottom:7px}
.libraryStatus.ready b{color:#2e7d32}.libraryStatus.in_development b{color:#9a6800}.libraryStatus.retired b{color:#8b4358}
.libraryVersionId{margin-top:7px;color:#8293a1}.libraryEmpty{padding:18px}
@media(max-width:850px){.librarySummary{grid-template-columns:repeat(2,1fr)}.libraryFilters{grid-template-columns:1fr}.libraryHeader{flex-direction:column}}

/* v0.15.28 — teacher-visible, read-only Library version inspection */
.libraryVersionClickable{cursor:pointer;transition:background .12s ease,box-shadow .12s ease}
.libraryVersionClickable:hover{background:#f7fbfd;box-shadow:inset 0 0 0 1px #cddce5}
.libraryInspectHint{margin-top:9px;color:#1f5a8a;font-weight:700}
.libraryDetailPanel{margin-top:18px;border:1px solid #cfdce5;border-radius:12px;padding:18px;background:#fff}
.libraryDetailHeader{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}
.libraryDetailHeader h2{margin:8px 0 4px}
.libraryReadOnlyNotice{margin:14px 0 18px;padding:10px 12px;border-left:4px solid #1f5a8a;background:#eef6fb;font-weight:700;color:#24445d}
.libraryDetailMetrics{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px;margin-bottom:18px}
.libraryDetailMetrics>div{border:1px solid #dce5eb;border-radius:9px;padding:10px;background:#fbfdfe;display:flex;flex-direction:column}
.libraryDetailMetrics span{font-size:12px;text-transform:uppercase;color:#718391;font-weight:700}
.libraryDetailMetrics b{margin-top:4px}
.libraryStageList{border:1px solid #dce5eb;border-radius:10px;overflow:hidden}
.libraryStageRow{display:grid;grid-template-columns:48px 1fr;gap:10px;padding:10px 12px;border-bottom:1px solid #e7edf1;align-items:start}
.libraryStageRow:last-child{border-bottom:0}
.libraryStageNo{width:34px;height:34px;border-radius:50%;background:#eef4f7;display:flex;align-items:center;justify-content:center;font-weight:800;color:#1f5a8a}
.libraryStageMain b{display:block;margin-bottom:3px}
.libraryNoStages{padding:18px;border:1px dashed #cfd9df;border-radius:10px;background:#fafcfd}
.libraryReadOnlyFooter{margin-top:16px;color:#6f8190}
@media(max-width:850px){
  .libraryDetailMetrics{grid-template-columns:repeat(2,1fr)}
  .libraryDetailHeader{flex-direction:column}
}

/* v0.15.33 clean Development Review */
.developmentModeNotice{margin:14px 0;padding:12px 14px;border-left:4px solid #d49a18;background:#fff7df;color:#5d460d}
.developmentModeLesson{display:flex;justify-content:space-between;gap:18px;align-items:center;border:1px solid #dce5eb;border-radius:11px;padding:15px;margin:10px 0;background:#fff}
.developmentModeLesson h3{margin:8px 0 5px}.developmentModeActions{display:flex;gap:8px;flex-wrap:wrap}
.developmentReviewBanner{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:0 0 12px;padding:11px 14px;border:1px solid #d49a18;border-radius:10px;background:#fff7df;color:#5d460d}
.developmentReviewBanner>div{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.developmentReviewVersion{font-size:12px;font-weight:700}
.developmentReviewControl{margin-top:18px;padding:15px;border:1px solid #d49a18;border-radius:10px;background:#fffaf0}

/* v0.15.39 — compact ordering choices */
.guidedChoices.compactChoices{
  display:flex;
  flex-wrap:wrap;
  gap:8px 14px;
  align-items:center;
  margin-top:8px;
}
.guidedChoices.compactChoices .guidedChoiceOption{
  display:inline-flex;
  align-items:center;
  gap:5px;
  width:auto;
  min-width:42px;
  padding:6px 8px;
}


/* =========================================================
   v0.15.41 — BE03 + expanded Priority 10 TEFL guide
   ========================================================= */
.priorityDetails{
  font-size:12.5px;
  line-height:1.5;
  padding:10px 11px;
}
.priorityDetails .priorityField + .priorityField{margin-top:7px}
.priorityDetails .priorityField b{color:#0b2a4a}
.priorityToggle b{line-height:1.3}

.guidedResponseRow > b.responsePromptLabel{
  flex:0 0 190px;
  min-width:190px;
  white-space:normal;
  line-height:1.3;
}
.teacherLanguageSupport{margin-top:14px}
.teacherLanguageSupportGrid{display:grid;gap:8px;margin-top:8px}
.teacherLanguageSupportCard{
  padding:10px 12px;
  border:1px solid #e2d29f;
  border-radius:8px;
  background:#fffaf0;
  line-height:1.45;
}
.teacherLanguageSupportCard>div+div{margin-top:4px}

@media(max-width:900px){
  .guidedResponseRow{display:grid;grid-template-columns:1fr}
  .guidedResponseRow > b.responsePromptLabel{
    min-width:0;
    flex-basis:auto;
  }
}

/* v0.15.42 */
.priorityFlyout{position:fixed;z-index:10000;background:#fff;border:1px solid #cbd8e2;border-radius:12px;box-shadow:0 14px 40px rgba(11,42,74,.22);overflow:hidden}.priorityFlyoutHeader{display:flex;justify-content:space-between;gap:14px;padding:14px 16px;background:#f4f8fb;border-bottom:1px solid #dbe5ec;color:#0b2a4a;font-size:16px}.priorityFlyoutClose{border:0;background:transparent;color:#0b2a4a;font-size:24px;cursor:pointer}.priorityFlyoutBody{padding:14px 16px;overflow:auto;max-height:calc(100vh - 120px);line-height:1.5}.priorityFlyoutBody .priorityField+.priorityField{margin-top:10px}.centralPriority10{margin-top:16px}.centralPriorityItem{border:1px solid #d9e4ea;border-radius:10px;background:#f8fbfd;padding:12px 14px;margin:10px 0}.centralPriorityPhrase{font-weight:800;color:#0b2a4a;margin-bottom:8px;font-size:16px}.centralPriorityGuide>div+div{margin-top:6px}

/* v0.15.44 — expanded teacher role-card rendering */
.teacherRoleBlock{margin-top:14px;padding-top:12px;border-top:1px solid #eadcae}
.teacherRoleBlock>ol,.teacherRoleBlock>ul{margin:8px 0 0}
.teacherParticipantGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:8px}
.teacherParticipantCard{background:#fff;border:1px solid #ead59d;border-radius:8px;padding:10px 11px}
.teacherParticipantCard>div{font-size:12px;color:#617486;margin-top:2px}
.teacherParticipantCard p{margin:7px 0 0;line-height:1.4}
@media(max-width:900px){.teacherParticipantGrid{grid-template-columns:1fr}}
.stakeholderGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.stakeholderCard{background:#f7f9fb;border:1px solid #cfd9e2;border-radius:10px;padding:14px}.stakeholderName{font-weight:800;font-size:17px;color:#082c55}.stakeholderRole{font-size:12px;font-weight:700;color:#65798d;margin:2px 0 9px;text-transform:uppercase}.stakeholderCard p{margin:7px 0;line-height:1.45}@media(max-width:900px){.stakeholderGrid{grid-template-columns:1fr}}
/* v0.15.49 — compact personalised teacher priority panel */
.gfPriorityFloat{position:sticky;float:right;top:8px;z-index:22;width:min(260px,38%);margin:0 0 9px 11px;border:1px solid #b8c8d8;border-radius:9px;background:#fff;box-shadow:0 4px 13px rgba(15,42,67,.12);overflow:hidden}.gfPriorityHead{width:100%;border:0;background:#eef4f8;padding:7px 9px;display:flex;justify-content:space-between;gap:7px;font:inherit;font-size:11px;font-weight:800;color:#173b5e;cursor:pointer;text-align:left}.gfPriorityBody{padding:5px 8px 7px}.gfPrioritySource{font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:#6c7d8c;font-weight:700;margin-bottom:3px}.gfPriorityRow{padding:4px 0;border-top:1px solid #edf1f4}.gfPriorityRow:first-of-type{border-top:0}.gfPriorityRow b,.gfPriorityRow span{display:block;font-size:10px;line-height:1.25}.gfPriorityRow b{color:#183a59}.gfPriorityRow span{color:#536777;margin-top:1px}.gfPriorityEmpty{font-size:10px;color:#657887}.gfPriorityFloat.collapsed .gfPriorityBody{display:none}.gfPriorityFloat.collapsed .gfPriorityChevron{transform:rotate(-90deg)}@media(max-width:850px){.gfPriorityFloat{float:none;position:relative;top:auto;width:100%;margin:0 0 9px}}

/* v0.15.51 — subordinate personalised New Language + transcript access */
.newLanguageCard{margin-top:14px;padding-top:12px;border-top:1px solid #d7e1e8}.newLanguageCard.hidden{display:none}.newLanguageHead{width:100%;border:0;background:#eef4f7;border-radius:8px;padding:8px 10px;display:flex;justify-content:space-between;font-weight:700;color:#173b5e;cursor:pointer}.newLanguageCard>p{font-size:11px;line-height:1.35;color:#607080;margin:7px 2px}.newLanguageCard ul{list-style:none;padding:0;margin:0}.newLanguageCard li{padding:6px 2px;border-bottom:1px solid #edf1f3;font-size:11px;line-height:1.3}.newLanguageCard li span{display:block;color:#66737d;margin-top:2px}.newLanguageCard.collapsed>p,.newLanguageCard.collapsed ul{display:none}.transcriptRevealBox,.teacherTranscriptControl{margin:14px 0;padding:12px 14px;border:1px solid #c9d9e4;border-radius:10px;background:#f7fafc}.transcriptRevealBox.locked{background:#f5f5f5;color:#66737d}.transcriptRevealBox p,.teacherTranscriptControl p{margin:5px 0 8px;font-size:12px}.teacherTranscriptControl{border-left:4px solid #2c7a8a}

/* v0.15.53 — reusable carry-forward / presentation reference panel (BE03 B2 pattern generalised) */
.gfReferenceFloat{position:sticky;float:right;top:8px;z-index:22;width:min(300px,42%);margin:0 0 10px 12px;border:1px solid #b8c8d8;border-radius:9px;background:#fff;box-shadow:0 4px 13px rgba(15,42,67,.12);overflow:hidden}
.gfReferenceHead{width:100%;border:0;background:#eef4f8;padding:8px 10px;display:flex;justify-content:space-between;gap:7px;font:inherit;font-size:11px;font-weight:800;color:#173b5e;cursor:pointer;text-align:left}
.gfReferenceBody{padding:7px 9px 9px}.gfReferenceSource{font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:#6c7d8c;font-weight:700;margin-bottom:4px}.gfReferenceRow{padding:5px 0;border-top:1px solid #edf1f4}.gfReferenceRow:first-of-type{border-top:0}.gfReferenceRow b,.gfReferenceRow span{display:block;font-size:10px;line-height:1.3}.gfReferenceRow b{color:#183a59}.gfReferenceRow span{color:#536777;margin-top:1px}.gfReferenceEmpty{font-size:10px;color:#657887}.gfReferenceFloat.collapsed .gfReferenceBody{display:none}.gfReferenceFloat.collapsed .gfReferenceChevron{transform:rotate(-90deg)}
.gfReferenceImage{display:block;width:100%;height:auto;border:1px solid #d7e0e8;border-radius:6px;margin:5px 0 7px}.gfReferenceOpen{font-size:10px;font-weight:700}.teacherLearnerFeedback{margin:12px 0;padding:12px;border:1px solid #e0c36c;border-radius:10px;background:#fff8df}.teacherLearnerFeedback label{margin:8px 0}.teacherLearnerFeedback label span{display:block;font-size:11px;font-weight:800}.teacherLearnerFeedback textarea{min-height:62px}.stageObservationList{width:100%;margin-top:8px;display:grid;gap:7px}.stageObservationCard{padding:9px 10px;border:1px solid #d9e5ea;border-radius:7px;background:#fff;box-shadow:0 1px 2px rgba(15,42,67,.04)}.stageObservationHead{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:4px}.stageObservationNote{font-size:13px;line-height:1.45;color:#243746}.stageObservationEmpty{display:block;padding:3px 0;font-size:11px}
#studentNotes{min-height:240px;resize:vertical}
@media(max-width:850px){.gfReferenceFloat{float:none;position:relative;top:auto;width:100%;margin:0 0 10px}}
/* v0.15.55 — canonical teacher-only saved observation bank from BE11 v0.6/v0.7 */
.lessonObservationBank{margin-top:12px;border:1px solid #cfdbe6;border-radius:10px;background:#f8fbfd;overflow:hidden}
.lessonObservationBank>summary{cursor:pointer;padding:10px 12px;font-weight:700;color:#17365D;list-style-position:inside}
.lessonObservationBankBody{padding:0 12px 12px;max-height:280px;overflow:auto}
.lessonObservationRow{padding:9px 0;border-top:1px solid #dce5ec}
.lessonObservationMeta{font-size:.82rem;color:#365F91;margin-bottom:3px}
.lessonObservationNote{font-size:.94rem;line-height:1.35;color:#17365D}

/* v0.15.57 — presentation reference panels must be comfortably readable during the task */
.gfPresentationReference{width:min(520px,50%)!important}
.gfPresentationReference .gfReferenceHead{font-size:12px;padding:9px 11px}
.gfPresentationReference .gfReferenceSource{font-size:10px}
.gfPresentationReference .gfReferenceOpen{font-size:11px}
@media(max-width:1100px){.gfPresentationReference{width:min(460px,52%)!important}}
@media(max-width:850px){.gfPresentationReference{width:100%!important}}


/* Homework Engine Stage B v0.1 */
.homeworkShell{max-width:1180px;margin:0 auto}.homeworkHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.homeworkHeader h1,.homeworkDetailHead h1{margin:.35rem 0}.homeworkAssign{margin:0 0 20px;padding:18px}.homeworkAssignGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0}.homeworkAssignGrid label{display:flex;flex-direction:column;gap:6px}.homeworkAssignGrid select,.homeworkAssignGrid input{width:100%}.homeworkSummary{display:flex;gap:16px;flex-wrap:wrap;margin:8px 0 14px}.homeworkSummary span{background:#f4f7fa;border:1px solid #d8e0e8;border-radius:9px;padding:8px 11px}.homeworkList{display:grid;gap:9px}.homeworkRow{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left;background:#fff;border:1px solid #d9e0e7;border-radius:10px;padding:14px 16px;color:inherit}.homeworkRow:hover{border-color:#9aa8b5;background:#fbfcfd}.homeworkRow span:first-child{display:flex;flex-direction:column;gap:4px}.homeworkRow small{font-weight:400;color:#66717c}.homeworkStatus{white-space:nowrap;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:700;background:#eef2f5}.status-submitted{background:#fff4d8}.status-complete{background:#e8f4ec}.status-revision_requested{background:#fdecec}.status-in_progress{background:#edf3fb}.homeworkEmpty{text-align:center;padding:34px 12px}.homeworkBack{margin-bottom:14px}.homeworkDetailHead{padding-bottom:12px;border-bottom:1px solid #e2e7ec}.homeworkTasks{display:grid;gap:14px;margin:18px 0}.homeworkTask{border:1px solid #dbe2e8;border-radius:11px;padding:16px;background:#fff}.homeworkTaskHead{display:flex;gap:11px;align-items:flex-start;margin-bottom:10px}.homeworkTaskHead h3{margin:0 0 3px}.homeworkTaskNo{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:#172a3a;color:#fff;font-weight:700;flex:0 0 auto}.homeworkInfo,.homeworkReference,.homeworkStageC{background:#f6f8fa;border-radius:9px;padding:13px}.homeworkResponseInput{width:100%;min-height:150px;resize:vertical}.homeworkChoices{display:grid;gap:8px}.homeworkChoices label{display:flex;align-items:flex-start;gap:8px;padding:7px 8px;border-radius:7px;background:#f8fafb}.homeworkSaveState{min-height:18px;margin-top:5px;font-size:12px;color:#6b7680}.homeworkSubmitBox,.homeworkReviewBox,.homeworkReviewNotice{border:1px solid #d5dde5;border-radius:11px;padding:16px;margin:18px 0;background:#f8fafb}.homeworkReviewNotice{background:#f2f7fb}.homeworkTaskFeedback{margin-top:13px;padding:11px 12px;background:#f2f7fb;border-left:4px solid #7f94a7;border-radius:6px}.homeworkFeedbackFields{border-top:1px solid #dde4ea;padding-top:12px;margin-top:12px}.homeworkFeedbackFields label{display:block;margin-top:8px}.homeworkFeedbackFields textarea,.homeworkReviewBox>label textarea{width:100%;min-height:90px}.buttonLink{display:inline-block;padding:8px 11px;border-radius:7px;background:#172a3a;color:white;text-decoration:none;font-weight:700}@media(max-width:760px){.homeworkHeader{display:block}.homeworkHeader .row{margin-top:10px}.homeworkAssignGrid{grid-template-columns:1fr}.homeworkRow{align-items:flex-start;flex-direction:column}.homeworkStatus{align-self:flex-start}}

/* Homework Engine Stage B v0.1b — inline marking */
.homeworkInlineMarking{margin-top:14px;padding:13px 14px;background:#f7f9fb;border:1px solid #d7e0e8;border-radius:8px}
.homeworkInlineMarkingTitle{font-weight:700;margin-bottom:8px}
.homeworkInlineMarking label{display:block;margin-top:9px}
.homeworkInlineMarking textarea{width:100%;min-height:88px;margin-top:5px}
.homeworkReviewBox h2{margin:.45rem 0 .3rem}
.homeworkTaskFeedback p:last-child{margin-bottom:0}

/* Homework Engine Stage C — learner-initiated audio */
.homeworkAudioRecorder{margin-top:10px;padding:13px 14px;border:1px solid #d7e0e8;border-radius:9px;background:#f8fafb}
.homeworkAudioConsent{display:flex;align-items:flex-start;gap:9px;padding:10px 11px;background:#fff;border:1px solid #dce3e9;border-radius:7px;line-height:1.45}
.homeworkAudioConsent input{margin-top:3px;flex:0 0 auto}
.homeworkAudioControls{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:12px}
.homeworkAudioTimer{font-variant-numeric:tabular-nums;font-weight:700;min-width:48px}
.homeworkAudioDraft{margin-top:12px;padding-top:12px;border-top:1px solid #dde4ea}
.homeworkAudioDraft audio,.homeworkAudioPlayback audio{display:block;width:min(100%,560px);margin:8px 0}
.homeworkAudioPlayback{padding:11px 12px;border:1px solid #dce3e9;border-radius:8px;background:#f7f9fb}
.homeworkAudioKept{margin-bottom:12px;background:#f2f7fb}
.homeworkAudioMissing{padding:10px 12px;background:#f6f8fa;border-radius:7px;color:#64717d}

/* Homework Engine Stage C v0.1a — standalone browser microphone recorder */
.homeworkAudioConsent{display:grid!important;grid-template-columns:20px minmax(0,1fr)!important;align-items:start!important;column-gap:10px!important;width:100%!important;box-sizing:border-box!important}
.homeworkAudioConsent input{width:16px!important;height:16px!important;margin:2px 0 0 0!important;justify-self:start!important}
.homeworkAudioConsent span{display:block!important;min-width:0!important;white-space:normal!important;overflow-wrap:normal!important;word-break:normal!important;text-align:left!important}
.homeworkAudioPermission{margin:9px 0 0;padding:8px 10px;border-radius:7px;background:#eef4f8;color:#33485b;font-size:12px;line-height:1.4}
.homeworkAudioLive{margin-top:12px;padding:12px;border:1px solid #d7e0e8;border-radius:8px;background:#fff}
.homeworkAudioLiveHead{display:flex;align-items:center;gap:8px;font-variant-numeric:tabular-nums}
.homeworkRecDot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#b42318;box-shadow:0 0 0 4px rgba(180,35,24,.10)}
.homeworkMicRow{display:grid;grid-template-columns:minmax(160px,auto) minmax(120px,1fr);align-items:center;gap:12px;margin-top:10px;font-size:12px;color:#4c5f70}
.homeworkMicMeter{height:8px;border-radius:999px;background:#e5ebf0;overflow:hidden}
.homeworkMicMeter span{display:block;width:2%;height:100%;border-radius:999px;background:currentColor;transition:width .08s linear}
.homeworkAudioCheck{margin:7px 0 10px;font-size:12px;color:#4c5f70;line-height:1.4}
@media(max-width:700px){.homeworkMicRow{grid-template-columns:1fr}.homeworkAudioConsent{grid-template-columns:20px minmax(0,1fr)!important}}

/* Homework audio v0.15.60b — microphone selection / no-signal recovery */
.homeworkMicSelectRow{display:grid;grid-template-columns:minmax(90px,auto) minmax(220px,420px) minmax(220px,1fr);align-items:center;gap:10px;margin:10px 0;padding:10px 11px;border:1px solid #dce3e9;border-radius:7px;background:#fff}
.homeworkMicSelectRow select{width:100%;min-width:0;padding:7px 9px;border:1px solid #cbd6df;border-radius:6px;background:#fff;color:inherit}
.homeworkMicSelectRow .small{line-height:1.35;color:#53687a}
@media(max-width:850px){.homeworkMicSelectRow{grid-template-columns:1fr}.homeworkMicSelectRow select{max-width:none}}

/* Scoped BE10 layout: inherits the installed classroom fonts and three-column shell. */
.be10-root{color:#17365d;line-height:1.5;font-size:16px;min-width:0}
.be10-root h1{font-size:1.45rem;line-height:1.3;margin:0 0 18px}
.be10-root h3{font-size:1.05rem;margin:0 0 12px}
.be10-root p{margin:12px 0 18px;white-space:pre-line}
.be10-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:18px 0 26px}
.be10-field{display:flex;flex-direction:column;gap:8px;margin:10px 0;font-weight:600;min-width:0}
.be10-field textarea,.be10-field select{box-sizing:border-box;width:100%;font:inherit;font-weight:400;line-height:1.55;padding:12px;border:1px solid #9aaabd;border-radius:6px;background:white;color:#17365d;resize:vertical;min-height:100px}
.be10-field select{min-height:44px}
.be10-field textarea[readonly]{background:#f7f9fb}
.be10-save-status{font-size:.78rem;min-height:1.1em;font-weight:400;color:#526779}
.be10-disclosure{border:1px solid #c6d2df;border-radius:6px;margin:14px 0;background:#f5f8fb;overflow:hidden}
.be10-disclosure>summary{display:flex;gap:14px;justify-content:space-between;align-items:center;cursor:pointer;padding:12px 14px;color:#17365d;font-weight:700;list-style:none}
.be10-disclosure>summary::-webkit-details-marker{display:none}
.be10-affordance{font-size:.8rem;white-space:nowrap;font-weight:500}
.be10-affordance:after{content:'▾ Open'}
.be10-disclosure[open]>summary .be10-affordance:after{content:'▴ Close'}
.be10-disclosure-body{padding:4px 16px 14px;min-width:0}
.be10-disclosure-body p:last-child{margin-bottom:4px}
.be10-reference-row{display:grid;grid-template-columns:minmax(110px,28%) minmax(0,1fr);gap:14px;border-top:1px solid #d7e0e9;padding:12px 0;white-space:pre-wrap;overflow-wrap:anywhere}
.be10-learner-reference{background:#fff}
.be10-operating{background:#fff2cc;border:1px solid #d6c79e;padding:14px 16px;margin-bottom:12px;line-height:1.55}
.be10-operating>b{display:block;margin-bottom:6px}
.be10-prewrap{white-space:pre-wrap}
.be10-table-wrap{overflow-x:auto;margin:18px 0}
.be10-table{width:100%;border-collapse:collapse;line-height:1.5}
.be10-table th,.be10-table td{padding:12px;border:1px solid #bdcbd8;text-align:left;vertical-align:top;white-space:pre-wrap}
.be10-table th{background:#dfe8f1;font-weight:700}
.be10-vocab-row,.be10-contributor,.be10-evidence-item{border:1px solid #c5d2de;padding:16px;margin:16px 0;border-radius:6px;background:#fff}
.be10-vocab-row label,.be10-check{display:flex;align-items:flex-start;gap:10px;margin:10px 0}
.be10-root input[type=checkbox]{width:18px;height:18px;min-width:18px;margin:3px 0 0;accent-color:#17365d}
.be10-choice-row{display:flex;gap:12px;flex-wrap:wrap}
.be10-choice-row label{display:flex;align-items:flex-start;gap:8px;max-width:100%;font-size:.85rem}
.be10-lenses{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}
.be10-lenses span{padding:14px;background:#edf2f7;border:1px solid #c5d2de;font-weight:600}
.be10-notice,.be10-route{background:#edf2f7;border-left:4px solid #365f91;padding:14px}
.be10-changed{margin:20px 0}
.be10-source,.be10-muted{font-size:.88rem;color:#526779}
.be10-error{color:#a02121!important}
.be10-root button{margin:8px 8px 8px 0;min-height:40px;white-space:normal}
.be10-support-hidden{visibility:hidden!important;pointer-events:none!important}
.be10-active #priorityCard .priorityItem{list-style:none}
.be10-active #priorityCard .be10-disclosure{font-size:.9rem}
.be10-active #priorityCard .be10-disclosure-body{line-height:1.5}
.be10-active #priorityCard .be10-disclosure-body p{margin:10px 0}
.be10-active #studentNotes{min-height:180px;line-height:1.5}
.be10-active .lessonObservationBank{background:#edf3f8;border:1px solid #bdcddd;color:#17365d}
.be10-active .lessonObservationRow{padding:12px 0;border-bottom:1px solid #cfdae5}
.be10-active .lessonObservationMeta{font-size:.8rem;color:#526779;margin-bottom:6px}
.be10-homework-support{float:right;width:min(300px,32%);margin:0 0 24px 24px;font-size:.9rem;line-height:1.5}
@media(max-width:900px){.be10-grid{grid-template-columns:1fr}.be10-reference-row{grid-template-columns:1fr;gap:6px}.be10-homework-support{float:none;width:auto;margin:0 0 20px}}
@media(max-width:600px){.be10-lenses{grid-template-columns:1fr}.be10-root{font-size:15px}.be10-disclosure>summary{padding:12px 10px}}

.be10-route-controls{position:sticky;top:10px;z-index:4;background:#fff8e6;border:1px solid #d6c79e;padding:10px;box-shadow:0 2px 7px #17365d12}

/* v0.3: use the installed BE23 components; compact task-specific response sizing. */
.be10-root{font-size:inherit;line-height:1.4}
.be10-root h1{margin-bottom:12px}
.be10-root p{margin:8px 0 12px}
.be10-grid{gap:10px;margin:10px 0 14px}
.be10-field{gap:5px;margin:6px 0}
.be10-field textarea{min-height:68px;padding:8px;line-height:1.4}
.be10-field select{padding:7px;min-height:36px}
.be10-save-status{min-height:0;font-size:10px;line-height:1.2}
.be10-save-status:empty{display:none}
.be10-vocab-row{display:grid;grid-template-columns:minmax(120px,30%) 1fr;gap:10px;padding:9px 0;margin:0;border:0;border-bottom:1px solid #e4ebf0;border-radius:0}
.be10-vocab-row label{margin:0}.be10-vocab-row small{display:block;color:#526779;margin-top:3px}
.be10-evidence-item{padding:10px;margin:8px 0}
.be10-lenses{gap:8px;margin:10px 0}.be10-lenses span{padding:9px}
.be10-root .gfV07Rows p{font-size:12px;line-height:1.35;margin:7px 0}
.be10-root .gfV07Rows span{white-space:pre-wrap}
.be10-root .gfV07Panel{margin:0}
.be10-listening{width:100%;table-layout:fixed;border-collapse:collapse;font-size:12px}
.be10-listening th{background:#eef4f7;text-align:left;padding:7px;color:#24445d}
.be10-listening th:first-child{width:10%}
.be10-listening td,.be10-listening th{border:1px solid #d7e2e8;vertical-align:top;overflow-wrap:anywhere}
.be10-listening td{padding:4px}
.be10-listening .be10-field{margin:0;gap:2px}
.be10-listening .be10-field>span:first-child{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.be10-listening textarea{height:76px;min-height:76px;padding:5px;font-size:12px}
[data-be10-stage="6"] .be10-field textarea{height:48px;min-height:48px}
[data-be10-stage="10"] .be10-field textarea,[data-be10-stage="13"] .be10-field textarea{min-height:100px}
[data-be10-stage="12"] .be10-field textarea{min-height:76px}
.be10-disclosure{margin:9px 0}.be10-disclosure>summary{padding:8px 10px}.be10-disclosure-body{padding:3px 10px 9px}
@media(max-width:650px){.be10-listening-wrap{overflow-x:auto}.be10-listening{min-width:540px}.be10-vocab-row{grid-template-columns:1fr}}

/* B1 v0.4: familiar vocabulary table and one planning reference. */
.be10-pdv-table{font-size:12px;line-height:1.35;table-layout:fixed}.be10-pdv-table th,.be10-pdv-table td{padding:8px}
.be10-pdv-table th:first-child{width:9%}.be10-pdv-table th:nth-child(2){width:20%}.be10-pdv-table th:nth-child(3){width:36%}.be10-pdv-table th:nth-child(4){width:35%}
.be10-teacher-key{font-size:13px;margin:12px 0}.be10-teacher-key th{width:30%}
.be10-teacher-key td{line-height:1.4}


/* BE10 B1 CLEAN ONLINE v1.0 */
.be10v2-root{display:grid;gap:14px}.be10v2-root h1{margin-bottom:0}.be10v2-field{margin:0;display:grid;gap:5px}.be10v2-field small{font-weight:400;color:#617486}.be10v2-field textarea{min-height:92px}.be10v2-filter,.be10v2-builder,.be10v2-map{display:grid;gap:10px}.be10v2-filter>div,.be10v2-builder>div,.be10v2-map>div,.be10v2-pdv>div,.be10v2-extrow{border:1px solid #d7e0e8;border-radius:10px;padding:12px;background:#f8fbfd}.be10v2-filter p,.be10v2-builder p{margin-top:0}.be10v2-filter select,.be10v2-extrow select{width:100%;padding:9px;border:1px solid #c9d5df;border-radius:8px}.be10v2-timeline{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.be10v2-timeline>div{padding:10px;border-radius:9px;background:#f0f5f8;text-align:center}.be10v2-timeline span{display:block;margin-top:6px;font-weight:700}.be10v2-pdv{display:grid;gap:8px}.be10v2-pdv span,.be10v2-pdv small{display:block;margin-top:4px}.be10v2-p10table{overflow:auto}.be10v2-p10table table{width:100%;border-collapse:collapse;font-size:12px}.be10v2-p10table th,.be10v2-p10table td{border:1px solid #d7e0e8;padding:8px;vertical-align:top}.be10v2-map>div{display:grid;grid-template-columns:150px 1fr;gap:6px 12px}.be10v2-map>div b{grid-row:1/4}.be10v2-map textarea{min-height:75px}.be10v2-map em{font-size:12px;color:#617486}.be10v2-opening,.be10v2-change{border-left:5px solid #d7a43b;background:#fff8e8;padding:14px;border-radius:9px}.be10v2-locked{padding:14px;border:1px dashed #c9d5df;border-radius:9px;color:#617486}.be10v2-prompts{display:flex;flex-wrap:wrap;gap:7px}.be10v2-prompts span{background:#eef4f7;border-radius:999px;padding:6px 9px;font-size:12px}.be10v2-feedback{display:grid;grid-template-columns:1fr 1fr;gap:10px}.be10v2-feedback h3{grid-column:1/-1}.be10v2-feedback textarea{min-height:85px}.be10v2-carry{border:1px solid #d7e0e8;border-radius:9px;padding:9px}.be10v2-carry>div{display:grid;grid-template-columns:minmax(140px,35%) 1fr;gap:10px;padding:7px;border-top:1px solid #e4ebf0}.be10v2-carry span{white-space:pre-wrap}.be10v2-route{border-top:2px solid #e1e8ee;padding-top:14px}.be10v2-route button{margin-right:7px}.be10v2-route button.selected{box-shadow:inset 0 0 0 3px rgba(255,255,255,.5)}.be10v2-extension{border:2px solid #d7a43b;border-radius:12px;padding:16px;background:#fffdf7;display:grid;gap:10px}.be10v2-extrow{display:grid;grid-template-columns:minmax(0,1fr) 180px 140px;gap:10px;align-items:center}.be10v2-extrow input{margin:0}.be10v2-teach ul{margin-top:6px;padding-left:20px}.be10v2-teach li{margin:5px 0}.be10v2-script{margin-top:12px;border:1px solid #e6ca73;border-radius:9px;padding:10px}.be10v2-p10-hidden{visibility:hidden}.be10v2-active #studentNotes{min-height:70px}@media(max-width:900px){.be10v2-timeline{grid-template-columns:1fr 1fr}.be10v2-map>div,.be10v2-extrow{grid-template-columns:1fr}.be10v2-map>div b{grid-row:auto}.be10v2-feedback{grid-template-columns:1fr}}


/* =========================================================
   BE10 B1 v1.1 — conformity with established online lessons
   ========================================================= */
.be10v2-active #stageList .stage,
.be10v2-active #stageList .stage *{text-transform:none!important}
.be10v2-root h1{text-transform:none!important}
.be10v2-pdvrow{display:grid!important;grid-template-columns:24px minmax(0,1fr);gap:10px;align-items:start;margin:0!important;border:1px solid #d7e0e8;border-radius:10px;padding:11px 12px;background:#f8fbfd}
.be10v2-pdvrow input{width:18px;height:18px;margin:2px 0 0!important}
.be10v2-pdvrow span{display:block!important;margin:0!important}
.be10v2-pdvrow small{display:block;margin-top:4px;color:#526779;font-weight:400}
.be10v2-pdvrail{margin-top:14px}
.be10v2-pdvrail summary{cursor:pointer;font-weight:800;color:#0b2a4a}
.be10v2-root .gfV07Grid{align-items:start}
.be10v2-root .gfV07Side,.gfV07Grid>.gfV07Side{display:grid;gap:10px;align-content:start}
.be10v2-root .gfV07Panel,.gfV07Side .gfV07Panel{margin:0}
.be10v2-root .gfV07Panel>summary,.gfV07Side .gfV07Panel>summary{display:flex;justify-content:space-between;gap:12px;align-items:center}
.gfDisclosureCue{font-size:11px;color:#617486;white-space:nowrap}
.be10v2-teacherfeedback{display:grid;gap:5px;margin:10px 0!important}
.be10v2-teacherfeedback textarea{min-height:72px}
.be10v2-feedback{display:none!important}
.be10v2-change b{text-transform:none}
@media(max-width:900px){.gfV07Grid{grid-template-columns:1fr!important}.gfV07Side{position:static!important}}

/* BE10 B1 v1.3 extension pathway */
.be10v2-extension-step{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:start;margin:18px 0 10px}
.be10v2-extension-step>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#eef4f7;font-weight:800;color:#0b2a4a}
.be10v2-extension-step p{margin:3px 0 0;color:#526779}
.be10v2-extension-performance{margin-top:10px;padding:14px;border:1px solid #d7e0e8;border-radius:12px;background:#fbfcfd}
.be10v2-extension-performance h3{margin-top:0}
.be10v2-extension-return{margin-top:14px}
.be10v2-route-open{margin:8px 0 0}

/* BE10 B2 clean v1.0 */
.be10v2-root .be10v2-builder label{display:block;font-weight:700;margin-top:8px}.be10v2-root .be10v2-builder label textarea{display:block;width:100%;box-sizing:border-box;min-height:70px;margin-top:5px;font:inherit;font-weight:400;padding:9px;border:1px solid #b9c7d4;border-radius:6px;resize:vertical}

/* BE10 C1 v1.0.2 — explicit performance sequence */
.be10v2-step{display:flex;gap:12px;align-items:flex-start;margin:14px 0 8px;padding:12px 14px;border:1px solid #d9e4ea;border-radius:12px;background:#f8fbfc}
.be10v2-stepnum{flex:0 0 30px;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;border:1px solid #9fb8c3;background:#fff}
.be10v2-step h3{margin:1px 0 4px;font-size:1rem}
.be10v2-step p{margin:0}

/* GUILDFluent BE13 B1 Development Review v1.2 */
.be13Panel{margin:0 0 12px;border:1px solid #d7e0e8;border-radius:10px;background:#fff;overflow:hidden}
.be13Panel>summary{cursor:pointer;padding:10px 12px;font-weight:800;background:#f5f8fa;display:flex;justify-content:space-between;gap:10px}
.be13PanelBody{padding:11px 12px}.be13EvidenceRow{margin-top:6px;padding:8px 9px;background:#f7fafc;border-radius:7px}.be13CarryRow{display:grid;gap:3px;padding:8px 0;border-bottom:1px solid #edf1f4}.be13CarryRow:last-child{border-bottom:0}.be13CarryRow span{white-space:pre-wrap}
.be13PDV{margin-top:16px;padding-top:12px;border-top:1px solid #d7e0e8}.be13PDV summary{cursor:pointer;font-weight:800}.be13PDV .gfV07PDVItem{display:grid;gap:3px;padding:7px 0;border-bottom:1px solid #e4ebf0}
.be13-active #stageContent .guidedSection:has(.guidedSelectable){border:0;padding:0;background:transparent}.be13-active #stageContent .guidedSection:has(.guidedSelectable) .guidedItems{gap:8px}.be13-active #stageContent .guidedSection:has(.guidedSelectable) .guidedItem{padding:9px 12px;border-radius:8px}
.be13P10Wrap{overflow-x:auto;margin-top:14px;border:1px solid #d8e2e8;border-radius:10px}.be13P10Table{width:100%;min-width:1180px;border-collapse:collapse;font-size:.93rem}.be13P10Table th,.be13P10Table td{padding:10px 9px;text-align:left;vertical-align:top;border-bottom:1px solid #e3eaee;border-right:1px solid #e8eef1;line-height:1.35}.be13P10Table th{background:#eef5f7;font-weight:800}.be13P10Table th:first-child,.be13P10Table td:first-child{width:38px;text-align:center}.be13P10Table tr:last-child td{border-bottom:0}.be13P10Table th:last-child,.be13P10Table td:last-child{border-right:0}
.be13TranscriptNote{margin-top:0;padding:9px 10px;background:#f6fafb;border-left:4px solid #168b87}.be13TranscriptLine{margin:8px 0;line-height:1.45}.be13LearnerFeedback{margin-top:18px}.be13LearnerFeedback .be13Panel{margin-top:8px}.be13Script{margin-top:14px;padding:10px 12px;border:1px solid #d7e0e8;border-radius:9px;background:#f7fafc}.be13Script summary{cursor:pointer;font-weight:800}.be13Script p{margin:8px 0;line-height:1.4}
@media(max-width:950px){.be13Grid{grid-template-columns:1fr!important}}

.be13SourceBlock+.be13NotesBlock{margin-top:12px;padding-top:10px;border-top:1px solid #e2e9ed}.be13SourceLabel{font-size:.74rem;font-weight:800;letter-spacing:.06em;color:#5d6b75;margin:0 0 6px}.be13NotesBlock .be13CarryRow b{color:#173f5f}

/* v1.2.1 — canonical teacher-only Saved lesson observations bank */
.be13ObservationBank{margin:0 0 14px;}
.be13ObservationBank .lessonObservationBank{background:#eef3f8;border:1px solid #c7d3df;border-radius:10px;overflow:hidden;}
.be13ObservationBank .lessonObservationBank>summary{cursor:pointer;display:flex;justify-content:space-between;gap:12px;padding:12px 14px;font-weight:700;color:#17365D;list-style:none;}
.be13ObservationBank .lessonObservationBank>summary::-webkit-details-marker{display:none;}
.be13ObservationBankBody{padding:0 14px 12px;}
.be13ObservationBank .lessonObservationRow{background:#fff;border:1px solid #d7e0e8;border-radius:8px;padding:10px 12px;margin-top:8px;}
.be13ObservationBank .lessonObservationMeta{font-size:.86rem;color:#526274;margin-bottom:5px;}

/* v1.0.4 — corrected P10 responsive treatment.
   Preserve natural row height; fit the seven-column teaching reference without
   the fixed-layout regression introduced in v1.0.3. */
.be13P10Wrap{
  width:100%;
  max-width:100%;
  overflow-x:auto;
}
.be13P10Table{
  width:100%;
  min-width:0;
  table-layout:auto;
  border-collapse:collapse;
  font-size:.84rem;
}
.be13P10Table th,.be13P10Table td{
  padding:8px 6px;
  vertical-align:top;
  line-height:1.3;
  white-space:normal;
  overflow-wrap:break-word;
  word-break:normal;
  hyphens:none;
}
.be13P10Table th:nth-child(1),.be13P10Table td:nth-child(1){width:3%}
.be13P10Table th:nth-child(2),.be13P10Table td:nth-child(2){width:18%}
.be13P10Table th:nth-child(3),.be13P10Table td:nth-child(3){width:18%}
.be13P10Table th:nth-child(4),.be13P10Table td:nth-child(4){width:17%}
.be13P10Table th:nth-child(5),.be13P10Table td:nth-child(5){width:17%}
.be13P10Table th:nth-child(6),.be13P10Table td:nth-child(6){width:13%}
.be13P10Table th:nth-child(7),.be13P10Table td:nth-child(7){width:14%}

/* Observation bank remains adjacent to the observation capture workflow. */
#be13-observation-bank{margin-top:10px;margin-bottom:0}

/* GUILDFluent BE14 B1 Development Review v0.5 */
.be14Grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,36%);gap:18px;align-items:start}
.be14Side{position:sticky;top:12px;display:grid;gap:12px}
.be14Panel{border:1px solid #d9e3ea;border-radius:12px;background:#f8fbfd;overflow:hidden}
.be14Panel summary{cursor:pointer;padding:11px 13px;font-weight:700;color:#17365d;display:flex;justify-content:space-between;gap:12px}
.be14PanelBody{padding:0 13px 13px}.be14BoardRow{display:grid;grid-template-columns:120px 1fr;gap:10px;padding:8px 0;border-top:1px solid #e3ebf0}
.be14BoardRow:first-child{border-top:0}.be14BoardRow span{min-width:0}.be14Cue{font-size:.8em;font-weight:500}
.be14P10Wrap{overflow-x:auto}.be14P10Table{width:100%;border-collapse:collapse;font-size:.9rem}.be14P10Table th,.be14P10Table td{border:1px solid #dbe4ea;padding:8px;vertical-align:top}.be14P10Table th{background:#17365d;color:white;text-align:left}

/* Match the established subordinate PDV treatment rather than enlarging it. */
.be14PDV{margin-top:12px!important;border-top:1px solid #dbe4ea;padding-top:8px!important;font-size:.86rem!important}
.be14PDV summary{font-size:.9rem!important;font-weight:700;line-height:1.2;cursor:pointer;color:#17365d}
.be14PDV .gfV07PDVIntro{font-size:.78rem!important;line-height:1.3;margin:6px 0 8px}
.be14PDVItem{padding:5px 0!important}
.be14PDVItem b{font-size:.84rem!important;line-height:1.2}
.be14PDVItem span{font-size:.76rem!important;line-height:1.25!important}

.be14Script{margin-top:14px;border:1px solid #d9e3ea;border-radius:10px;padding:10px}.be14Script summary{font-weight:700;cursor:pointer}.be14Script p{margin:.55em 0}
.be14ReferenceNote{font-size:.86rem;line-height:1.4;margin:.35rem 0 .75rem}
.be14TranscriptLine{font-size:.88rem;line-height:1.42;margin:.55rem 0}
.be14RecordingReference{background:#f6f9fb}.be14CaseReference{background:#f7fafc}.be14ChangeReference{background:#fffaf0}
.be14TeacherState{display:grid;gap:10px;margin-bottom:14px;padding:12px;border:1px solid #cbdbe5;border-radius:12px;background:#f3f8fb}
.be14TeacherPrivate{background:#f7f3fb}
.be14ObservationBank{background:#eef4f8}
.be14LearnerFeedback,.be14TeacherFeedback{margin-top:16px;padding:14px;border:1px solid #cbdbe5;border-radius:12px;background:#f5f9fc}
.be14TeacherFeedback{margin-top:0;margin-bottom:14px}
.be14TeacherFeedback label{display:grid;gap:5px;margin:10px 0}
.be14TeacherFeedback textarea{width:100%;box-sizing:border-box;min-height:58px;padding:8px;border:1px solid #cbd6df;border-radius:8px;font:inherit}
.be14TeacherStatus{font-size:.82rem;color:#526575;margin-top:6px}
.be14FeedbackBox{display:grid;grid-template-columns:90px 1fr;gap:10px;padding:9px 0;border-top:1px solid #e1e8ed}
.be14FeedbackBox:first-child{border-top:0}
@media(max-width:1050px){.be14Grid{grid-template-columns:1fr}.be14Side{position:static}}

/* BE14 B2 corrected baseline — uses the approved BE14 core component language. */
.be14-active .be14B2PDV{margin-top:12px}
.be14-active .be14B2PDV .be14PDVItem b{font-size:.84rem}
.be14-active .be14B2PDV .be14PDVItem span{font-size:.76rem;line-height:1.25}


/* Core reference/carry-over readability rule v0.3.
   Standard readable font is preserved; containers grow with content.
   Longer responses switch to label-above-content rather than shrinking text. */
:root{--gf-support-column:36%}
.be14BoardRow span,.be10v2-carry>div span{white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal}
.be14BoardRow.gfLongCarry{grid-template-columns:1fr;gap:4px}
.be14BoardRow.gfLongCarry b{font-size:.82rem;color:#17365d}
.be14BoardRow.gfLongCarry span{display:block;line-height:1.42}
.be10v2-carry>div.gfLongCarry{grid-template-columns:1fr;gap:4px}
.be10v2-carry>div.gfLongCarry b{font-size:.82rem}

/* BE14 C1 v0.2 — uses the approved core 36% support geometry */
.be14C1P10 .be14P10Item{border-bottom:1px solid #dce5ec;padding:7px 0}
.be14C1P10 .be14P10Item summary{font-weight:700;cursor:pointer;line-height:1.25}
.be14C1P10 .be14P10Item p{margin:3px 0 8px;font-size:.84rem;line-height:1.35}
.be14C1PDV .be14PdvItem{padding:7px 0;border-bottom:1px solid #e1e8ee}
.be14C1PDV .be14PdvItem b{display:block;font-size:.84rem}
.be14C1PDV .be14PdvItem span{display:block;font-size:.79rem;line-height:1.32;margin-top:2px}
.be14Transcript{max-height:440px;overflow:auto;padding-right:5px}
.be14Transcript p{font-size:.82rem;line-height:1.4;margin:0 0 9px}
.be14Muted{font-size:.8rem;color:#64748b;margin-top:0}
.be14Changed{margin-top:10px;padding:12px;border:1px solid #e5d4ad;border-radius:12px;background:#fffaf0}

/* BE14 C1 v0.4 — granular changed-information reveal */
.be14TeacherReveal{margin:0 0 16px;padding:14px;border:1px solid #c8d8e5;border-radius:14px;background:#f5f9fc}
.be14TeacherReveal h3{margin:8px 0 6px}
.be14TeacherReveal p{margin:0 0 10px;line-height:1.4}

/* BE14 C1 v0.9 carry-forward visibility safeguard */
.be14CarryEmpty{padding:10px 12px;color:#64748b;font-style:italic;line-height:1.4;}

/* BE14 B1 v0.6 */
.be14CarryEmpty{padding:10px 12px;color:#64748b;font-style:italic;line-height:1.4}

/* =========================================================
   BE15 B1 — Persuasion / Value Proposition / Objections v0.1
   ========================================================= */
.be15-active .be15P10Wrap{overflow-x:auto;margin-top:14px}
.be15-active .be15P10Table{width:100%;border-collapse:collapse;font-size:13px}
.be15-active .be15P10Table th,.be15-active .be15P10Table td{border:1px solid #d7e0e8;padding:9px 10px;vertical-align:top;text-align:left}
.be15-active .be15P10Table th{background:#0b2a4a;color:#fff}
.be15-active .be15CarryLabel{font-size:11px;font-weight:800;letter-spacing:.06em;color:#617486;margin-bottom:8px}
.be15-active .be15Panel{border:1px solid #d7e0e8;border-radius:10px;background:#fbfdfe;margin:8px 0;overflow:hidden}
.be15-active .be15Panel>summary{list-style:none;display:flex;justify-content:space-between;gap:12px;cursor:pointer;padding:11px 13px;font-weight:800;color:#0b2a4a}
.be15-active .be15Panel>summary::-webkit-details-marker{display:none}
.be15-active .be15Cue{font-size:11px;color:#1d7a7a;white-space:nowrap}
.be15-active .be15PanelBody{padding:0 13px 12px}
.be15-active .be15CarryRow{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(0,1.7fr);gap:12px;padding:9px 0;border-top:1px solid #e6edf2}
.be15-active .be15CarryRow:first-child{border-top:0}
.be15-active .be15CarryRow span{line-height:1.45}
.be15-active .be15SolutionCard{border:1px solid #d7e0e8;border-left:5px solid #1d7a7a;border-radius:10px;padding:15px 16px;margin:14px 0;background:#fbfdfe}
.be15-active .be15SolutionGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}
.be15-active .be15SolutionGrid>div{background:#f0f5f8;border-radius:8px;padding:9px 10px}
.be15-active .be15PDVGrid{display:grid;gap:8px;margin:10px 0}
.be15-active .be15PDVGrid>div{display:grid;grid-template-columns:150px 1fr;gap:6px 12px;border:1px solid #e1e8ee;border-radius:9px;padding:10px 12px;background:#f7fafc}
.be15-active .be15PDVGrid small{grid-column:2;color:#617486}
.be15-active .be15PDVItem{display:flex;flex-direction:column;gap:2px}
.be15-active .be15PDVItem small{color:#617486}
.be15-active .be15Script{margin-top:14px;border:1px solid #d7e0e8;border-radius:9px;padding:10px 12px;background:#fbfdfe}
.be15-active .be15Script summary{cursor:pointer;font-weight:800}
.be15-active .be15TeacherPrivate{border:1px solid #e6ca73;background:#fff8e8;border-radius:10px;padding:13px;margin-bottom:14px}
@media(max-width:900px){.be15-active .be15SolutionGrid{grid-template-columns:1fr}.be15-active .be15CarryRow,.be15-active .be15PDVGrid>div{grid-template-columns:1fr}.be15-active .be15PDVGrid small{grid-column:1}}

/* BE15 B1 v0.2 — live KEEP / ADJUST feedback */
.be15FeedbackGrid{display:grid;gap:10px;margin:12px 0}
.be15FeedbackGrid>div{display:grid;grid-template-columns:100px minmax(0,1fr);gap:12px;padding:11px 12px;border:1px solid #d7e0e8;border-radius:10px;background:#fbfdfe}
.be15FeedbackGrid>div>b{color:#1d7a7a}
.be15TeacherFeedback{margin:0 0 16px;padding:14px;border:1px solid #d7e0e8;border-radius:12px;background:#f7fafc}
.be15TeacherFeedback label{margin:10px 0}
.be15LearnerFeedback{margin-top:18px;padding-top:14px;border-top:1px solid #dfe7ed}

/* BE15 B1 v0.4 — canonical BE14 carry-forward geometry.
   Main lesson area = remaining ~64%; support/carry-over column = 36%.
   Carry-over is available beside the task that uses it, not below the task. */
.be15-active .be15Grid{grid-template-columns:minmax(0,1fr) minmax(290px,var(--gf-support-column,36%))}
.be15-active .be15Side{position:sticky;top:12px;display:grid;gap:12px;align-content:start}
.be15-active .be15CarryLabel{margin:0 0 2px}
.be15-active .be15Side .be15Panel{margin:0}
@media(max-width:1050px){
  .be15-active .be15Grid{grid-template-columns:1fr}
  .be15-active .be15Side{position:static}
}

/* BE15 B2 v0.1 intentionally reuses the approved BE15/BE14 64/36 support geometry and components. */

/* BE15 B2 v0.2 refinements */
.be15-active .be15Grid .be15Main .be15LearnerFeedback{margin-top:0}
.be15-active .be15Main .be15FeedbackGrid{margin-top:10px}

/* BE15 B2 v0.3 progressive SPIN master-table architecture */
.be15MasterMount{margin:14px 0 18px;min-width:0}
.be15MasterPanel{border:1px solid #b9cbd7;border-radius:12px;background:#fff;overflow:hidden}
.be15MasterPanel>summary{cursor:pointer;padding:12px 14px;background:#eaf2f6;color:#0b2a4a;font-weight:800;display:flex;justify-content:space-between;gap:12px}
.be15MasterBody,.be15MasterProgress{padding:0}
.be15MasterHead{padding:14px 16px 8px}.be15MasterHead h2{margin:5px 0 3px}.be15MasterHead p{margin:0;color:#536a7a}
.be15MasterScroll{overflow-x:auto;padding:0 14px 14px}
.be15MasterTable{border-collapse:separate;border-spacing:0;width:100%;min-width:720px;table-layout:fixed;font-size:12px}
.be15MasterTable th,.be15MasterTable td{border-right:1px solid #d8e2e8;border-bottom:1px solid #d8e2e8;padding:10px;vertical-align:top;line-height:1.4}
.be15MasterTable thead th{background:#eef4f7;color:#173b56;text-align:left;border-top:1px solid #d8e2e8}
.be15MasterTable tr>*:first-child{border-left:1px solid #d8e2e8}
.be15MasterTable thead th:first-child{width:150px}.be15MasterTable tbody th{background:#f8fafb;text-align:left;font-weight:700;width:150px}
.be15MasterTable thead th b{display:block;font-size:15px}.be15MasterTable thead th span{display:block;font-size:10px;margin-top:2px}
.be15MasterTable tbody th span{display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;border-radius:50%;background:#e6eef3;margin-right:6px}
.be15MasterTable td em{color:#83929c;font-size:11px}
.be15ReferenceShelf{margin:12px 0;border:1px solid #d5e0e6;border-radius:10px;background:#fff}
.be15ReferenceShelf>summary{cursor:pointer;padding:10px 12px;font-weight:800;color:#294d67;background:#f5f8fa}
.be15ReferenceShelfBody{padding:10px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.be15TranscriptRef p{font-size:11px;line-height:1.4}
@media(max-width:1050px){.be15ReferenceShelfBody{grid-template-columns:1fr}.be15MasterTable{min-width:680px}}

/* BE15 B2 v0.3.1 — master-table containment fix */
.be15MasterTable{
  table-layout:fixed;
}
.be15MasterTable th,
.be15MasterTable td{
  min-width:0;
  max-width:100%;
  overflow:hidden;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:break-word;
  hyphens:auto;
}
.be15MasterTable th *,
.be15MasterTable td *{
  max-width:100%;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.be15MasterTable td em{
  display:block;
  width:100%;
  overflow-wrap:anywhere;
}

/* BE15 B2 v0.4.2 teacher-view cleanup */
.be15ObservationBank{margin-top:12px;border:1px solid #d8c47c;border-radius:9px;background:#fffaf0}
.be15ObservationBank>summary{cursor:pointer;padding:9px 11px;font-weight:800}
.be15ObservationBankBody{padding:0 11px 10px}
.be15ObservationRow{padding:8px 0;border-top:1px solid #eadfb9}
.be15ObservationRow:first-child{border-top:0}

/* BE16 B1 online Development Review v0.3 */
.be16P10Wrap{overflow-x:auto;margin-top:16px}.be16P10{width:100%;border-collapse:collapse;font-size:.94rem}.be16P10 th,.be16P10 td{border:1px solid #d8dee8;padding:10px;vertical-align:top;text-align:left}.be16P10 th{font-weight:700}.be16PDVGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.be16PDVGrid>div{border:1px solid #d8dee8;border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:5px}.be16PDVGrid small{opacity:.78}.be16TeacherScript{margin-top:16px;border:1px solid #d8dee8;border-radius:10px;padding:10px 14px}.be16TeacherPrivate{margin:0 0 16px;padding:14px;border-radius:10px;background:#fff7cf;border:1px solid #eadc91}.be16PathRow{padding:8px 0;border-bottom:1px solid rgba(0,0,0,.08)}
.be16Grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,36%);gap:18px;align-items:start}.be16Main{min-width:0}.be16Side{min-width:0;position:sticky;top:12px}.be16CarryLabel{font-size:.75rem;font-weight:800;letter-spacing:.06em;margin-bottom:8px;opacity:.72}.be16Panel{border:1px solid #d8dee8;border-radius:10px;margin:0 0 10px;background:#fff}.be16Panel>summary{cursor:pointer;padding:10px 12px;font-weight:800;display:flex;justify-content:space-between;gap:12px}.be16PanelBody{padding:0 12px 12px}.be16CarryRow,.be16CarryBlock{padding:8px 0;border-top:1px solid #e3e7ee;display:grid;gap:3px}.be16CarryRow:first-child,.be16CarryBlock:first-child{border-top:0}.be16CarryRow span{overflow-wrap:anywhere}.be16Cue{font-size:.78rem;white-space:nowrap;opacity:.65}.be16ReferenceNote{font-size:.9rem;opacity:.8}.be16FeedbackGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:10px 0 16px}.be16FeedbackGrid>div{border:1px solid #d8dee8;border-radius:9px;padding:10px;display:grid;gap:5px}.be16TeacherFeedback{margin-bottom:14px;padding:12px;border:1px solid #eadc91;border-radius:10px;background:#fff7cf}.be16TeacherFeedback label{display:grid;gap:5px;margin:8px 0}.be16TeacherFeedback textarea{width:100%;box-sizing:border-box}.be16ObservationBank{margin-top:12px;border:1px solid #d8c47c;border-radius:9px;background:#fffaf0}.be16ObservationBank>summary{cursor:pointer;padding:9px 11px;font-weight:800}.be16ObservationBankBody{padding:0 11px 10px}.be16ObservationRow{padding:8px 0;border-top:1px solid #eadfb9}.be16ObservationRow:first-child{border-top:0}.be16OptionalCapture{opacity:.86}
@media(max-width:900px){.be16PDVGrid,.be16FeedbackGrid{grid-template-columns:1fr}.be16Grid{grid-template-columns:1fr}.be16Side{position:static}}

/* BE16 B1 v0.5 */
.be16VerticalBullets{margin:.25rem 0 .1rem 1.25rem;padding:0}.be16VerticalBullets li{margin:.28rem 0;line-height:1.45}

/* BE16 B2 v0.3 */
.be16B2Stacked{margin:.3rem 0 .15rem 1.3rem;padding:0}.be16B2Stacked li{display:list-item;margin:.32rem 0;line-height:1.45}
.be16B2PriorityMain ol{padding-left:1.5rem}.be16B2PriorityMain li{margin:.55rem 0}
.be16B2PdvMini{margin-top:1rem;border-top:1px solid #d9e1e8;padding-top:.7rem}.be16B2PdvMini summary{font-weight:700;cursor:pointer}.be16B2PdvTerm{padding:.25rem 0}
.be16B2Transcript{margin-bottom:1rem}.be16B2TranscriptBody p{margin:.42rem 0;line-height:1.45}
.be16B2Roles ul{margin:.4rem 0 .1rem 1.25rem}.be16B2Roles li{margin:.25rem 0}
.be16B2ObsReview{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(0,0,0,.12)}.obsReviewItem{padding:.45rem 0;border-bottom:1px solid rgba(0,0,0,.08)}

/* BE16 B2 v0.4: same proven list presentation as B1 */
.be16VerticalBullets{margin:.3rem 0 .15rem 1.35rem!important;padding:0!important}
.be16VerticalBullets li{display:list-item!important;margin:.35rem 0!important;line-height:1.45!important}

/* BE16 B2 v0.5 — standard carry-over reference treatment */
.be16B2StageWithReference{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}
.be16B2StageWithReference #stageContent{min-width:0}
.be16B2TranscriptCarry{min-width:0}
.be16ReferenceLabel{font-size:.78rem;font-weight:800;letter-spacing:.08em;color:#52677a;margin:0 0 .5rem}
.be16B2TranscriptCarry .be16Panel{margin:0}
.be16B2TranscriptCarry .be16PanelBody{max-height:520px;overflow:auto}
.be16B2TranscriptCarry .be16PanelBody p{margin:.45rem 0;line-height:1.4}
@media(max-width:1050px){.be16B2StageWithReference{grid-template-columns:1fr}.be16B2TranscriptCarry{order:2}}

/* BE16 B2 v0.6 — Section 4 carry-over panel, matching established reference layout */
.be16B2S4Grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}
.be16B2S4Main{min-width:0}.be16B2S4Carry{min-width:0}
.be16B2S4Carry .be16Panel{margin:0}
.be16B2S4Carry .be16PanelBody{max-height:520px;overflow:auto}
.be16B2S4Carry .be16PanelBody p{margin:.45rem 0;line-height:1.4}
@media(max-width:1050px){.be16B2S4Grid{grid-template-columns:1fr}.be16B2S4Carry{order:2}}

/* BE04 B1 v0.2 structured factual blocks */
.be04Fact{margin:8px 0 12px}.be04Fact>b{display:block;margin-bottom:4px}.be04Fact ul,.be16VerticalBullets{margin:6px 0 0 22px;padding:0}.be04Fact li,.be16VerticalBullets li{margin:4px 0}.be04FactLine{margin:5px 0}.be04SemanticLabel{font-weight:700;margin:8px 0 6px;color:var(--ink,#182230)}

/* BE04 B1 v0.3 Section 10 actual input labels */
.be04ActualFieldLabel{font-weight:700!important;line-height:1.2!important;min-width:0!important;width:100%!important;max-width:360px!important;margin-right:18px!important}

/* BE04 B1 v0.4: compact information + non-overlapping semantic plan labels */
.be04PlanRow{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:7px!important}
.be04PlanRow .be04ActualFieldLabel{display:block!important;width:auto!important;max-width:none!important;margin:0!important;white-space:normal!important;overflow:visible!important}
.be04PlanRow textarea,.be04PlanRow input[type="text"]{width:100%!important;max-width:none!important;margin:0!important;box-sizing:border-box!important}

/* BE04 B1 v0.5 — compact Section 10 chairing-plan rows */
.be04PlanRow{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
  gap:7px!important;
  height:auto!important;
  min-height:0!important;
  padding-top:0!important;
  padding-bottom:0!important;
  margin:0 0 22px 0!important;
}
.be04PlanRow .be04ActualFieldLabel{
  display:block!important;
  position:static!important;
  width:auto!important;
  max-width:none!important;
  min-height:0!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  line-height:1.25!important;
  white-space:normal!important;
}
.be04PlanRow textarea,
.be04PlanRow input[type="text"]{
  position:static!important;
  display:block!important;
  width:100%!important;
  max-width:none!important;
  min-height:44px!important;
  height:auto!important;
  margin:0!important;
  box-sizing:border-box!important;
}

/* BE04 B1 v0.6 — root-cause fix for Section 10 spacing.
   The original horizontal response label has flex-basis:86px.
   Once stacked vertically that 86px became vertical blank space. */
.be04PlanRow > b.be04ActualFieldLabel{
  flex:0 0 auto!important;
  flex-basis:auto!important;
  min-width:0!important;
  width:auto!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
}
.be04PlanRow{
  gap:6px!important;
  margin:0 0 20px 0!important;
}
.be04PlanRow > .stageResponseInput{
  flex:0 0 auto!important;
  margin:0!important;
}



/* ===== BE05 B1 Online v0.2 ===== */
.be05-active .be05P10Wrap{overflow-x:auto;margin:14px 0 18px}
.be05-active .be05P10Table{width:100%;border-collapse:collapse;font-size:.93rem}
.be05-active .be05P10Table th,.be05-active .be05P10Table td{border:1px solid #d7e0e8;padding:9px 10px;vertical-align:top}
.be05-active .be05P10Table th{background:#eaf2f6;color:#0b2a4a;text-align:left}
.be05-active .be05PDVItem{display:grid;gap:2px}
.be05-active .be05PDVItem small{color:#617486}
.be05-active .be05Grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,var(--gf-support-column,36%));gap:18px;align-items:start}
.be05-active .be05Side{position:sticky;top:12px;display:grid;gap:12px;align-content:start}
.be05CarryLabel{font-size:.76rem;font-weight:800;letter-spacing:.05em;color:#617486;margin:0 0 2px}
.be05Panel{border:1px solid #b9cbd7;border-radius:12px;background:#fff;overflow:hidden;margin:0}
.be05Panel>summary{cursor:pointer;padding:11px 13px;background:#eaf2f6;color:#0b2a4a;font-weight:800;display:flex;justify-content:space-between;gap:12px}
.be05PanelBody{padding:12px 13px}
.be05CarryRow{display:grid;grid-template-columns:minmax(130px,35%) minmax(0,1fr);gap:12px;padding:8px 0;border-bottom:1px solid #e6edf2}
.be05CarryRow:last-child{border-bottom:0}
.be05CaseGroup{padding:4px 0 9px}
.be05CaseGroup ul{margin:6px 0 0 18px;padding:0}
.be05FeedbackGrid{display:grid;gap:10px;margin:12px 0}
.be05FeedbackGrid>div{display:grid;grid-template-columns:100px minmax(0,1fr);gap:12px;padding:11px 12px;border:1px solid #d7e0e8;border-radius:10px;background:#fbfdfe}
.be05FeedbackGrid>div>b{color:#1d7a7a}
.be05TeacherFeedback{margin:0 0 16px;padding:14px;border:1px solid #d7e0e8;border-radius:12px;background:#f7fafc}
.be05TeacherFeedback label{display:block;margin:10px 0}
.be05TeacherFeedback textarea{width:100%;box-sizing:border-box}
.be05LearnerFeedback{margin-top:18px;padding-top:14px;border-top:1px solid #dfe7ed}
.be05ObservationBank{margin-top:12px;border:1px solid #d8c47c;border-radius:9px;background:#fffaf0}
.be05ObservationBank>summary{cursor:pointer;padding:9px 11px;font-weight:800}
.be05ObservationBankBody{padding:0 11px 10px}
.be05ObservationRow{padding:9px 0;border-top:1px solid #eadfb9}
.be05ObservationRow:first-child{border-top:0}
@media(max-width:1050px){.be05-active .be05Grid{grid-template-columns:1fr}.be05-active .be05Side{position:static}}
@media(max-width:700px){.be05CarryRow,.be05FeedbackGrid>div{grid-template-columns:1fr}}



.be05MessageField{display:block;margin:12px 0}.be05MessageField textarea{width:100%;box-sizing:border-box;margin-top:5px}.be05V3Review{margin-top:16px}
\n\n/* v0.15.76 — full read-only Teacher View inside Lesson Library */
.libraryTeacherViewNotice{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:16px 0;padding:12px 14px;border:1px solid #b9d7d7;border-left:4px solid #1d7a7a;border-radius:10px;background:#f3fafa}
.libraryTeacherViewNotice span{color:#617486}
#libraryLessonMount{margin-top:16px}
#libraryLessonMount #lessonShell{display:block}
#libraryLessonMount .classroomGrid{margin-top:0}
#libraryLessonMount .libraryPreviewLesson #notesHeading,
#libraryLessonMount .libraryPreviewLesson #studentNotes{display:none!important}
#libraryLessonMount #teacherGuide :disabled,#libraryLessonMount #teacherControls :disabled{opacity:.72;cursor:not-allowed}


/* =========================================================
   v0.15.80 — Shared Classroom Standards pilot
   GF-OBS-01 · canonical saved-observation review
   ========================================================= */
.gfSavedObservationBank{
  margin:8px 0 30px;
  border:1px solid #d8e1e8;
  border-radius:12px;
  background:#eef3f6;
  overflow:hidden;
  clear:both;
}
.gfSavedObservationBank>summary{
  cursor:pointer;
  font-weight:800;
  padding:9px 12px;
  color:#12314d;
  list-style:none;
}
.gfSavedObservationBank>summary::-webkit-details-marker{display:none}
.gfSavedObservationBank>summary:before{content:"▸ ";font-weight:800}
.gfSavedObservationBank[open]>summary:before{content:"▾ "}
.gfSavedObservationBankBody{
  padding:0 12px 10px;
  background:#f7f9fb;
  border-top:1px solid #d8e1e8;
}
.gfSavedObservationRow{padding:8px 0;border-bottom:1px solid #dfe6eb}
.gfSavedObservationRow:last-child{border-bottom:0}


/* =========================================================
   v0.15.81 — GF-PDV-01 canonical persistent PDV treatment
   Distinct from Priority 10; open by default; learner-collapsible.
   ========================================================= */
#priorityCard details.gfPDVStandard{
  margin:14px 0 2px!important;
  padding:0!important;
  border:1px solid #c7d7df!important;
  border-left:4px solid #6f8798!important;
  border-radius:10px!important;
  background:#f2f6f8!important;
  overflow:hidden;
}
#priorityCard details.gfPDVStandard>summary{
  cursor:pointer;
  padding:10px 11px!important;
  background:#e6eef2!important;
  color:#17365d!important;
  font-weight:800!important;
  font-size:12px!important;
  line-height:1.25;
  list-style-position:inside;
}
#priorityCard details.gfPDVStandard .gfV07PDVIntro{
  margin:0!important;
  padding:9px 11px 6px;
  color:#617486;
  background:#f7fafb;
}
#priorityCard details.gfPDVStandard .gfV07PDVItem{
  padding:7px 11px!important;
  border-bottom:1px solid #dce5ea!important;
  background:#f7fafb;
}
#priorityCard details.gfPDVStandard .gfV07PDVItem:last-child{border-bottom:0!important}
#priorityCard details.gfPDVStandard .gfV07PDVItem b{color:#17365d}
#priorityCard details.gfPDVStandard .gfV07PDVItem span,
#priorityCard details.gfPDVStandard .gfV07PDVItem small{color:#526779}

/* v0.15.82 — GF-FEEDBACK-01 canonical performance/re-run presentation */
.gfFeedbackTeacher{margin:0 0 16px;padding:14px;border:1px solid #d7e0e7;border-radius:12px;background:#f7f9fb}
.gfFeedbackTeacher h3{margin:7px 0 5px;color:#17365d}
.gfFeedbackTeacher label{display:block;margin-top:10px;color:#17365d}
.gfFeedbackTeacher textarea{width:100%;box-sizing:border-box;margin-top:4px;border:1px solid #cbd6de;border-radius:8px;padding:8px 10px;font:inherit;background:#fff}
.gfFeedbackLearner{margin:0 0 18px;padding:16px;border:1px solid #d7e0e7;border-radius:12px;background:#f7f9fb}
.gfFeedbackLearner h2{margin:6px 0 12px;color:#17365d}
.gfFeedbackGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.gfFeedbackCard{display:flex;flex-direction:column;gap:5px;padding:11px 12px;border:1px solid #dce4ea;border-radius:9px;background:#fff}
.gfFeedbackCard b{font-size:12px;letter-spacing:.04em;color:#17365d}
.gfFeedbackCard span{line-height:1.45}
@media(max-width:900px){.gfFeedbackGrid{grid-template-columns:1fr}}

/* =========================================================
   v0.15.90 — GF-CARRY-01 canonical carry-over/reference identity
   ========================================================= */
#stageContent details.gfCarryOverStandard{
  border-color:#d5e0e7!important;
  background:#f7fafc!important;
  border-radius:10px!important;
  overflow:hidden;
}
#stageContent details.gfCarryOverStandard>summary{
  cursor:pointer;
  color:#17365d!important;
  font-weight:800!important;
  background:#edf3f6!important;
}
#stageContent details.gfCarryOverStandard[open]>summary{
  border-bottom:1px solid #dbe5ea;
}


/* v0.15.92 — consolidated legacy BE13 review styles; external file retired */
/* GUILDFluent BE13 B1 Development Review v1.2 */
.be13Panel{margin:0 0 12px;border:1px solid #d7e0e8;border-radius:10px;background:#fff;overflow:hidden}
.be13Panel>summary{cursor:pointer;padding:10px 12px;font-weight:800;background:#f5f8fa;display:flex;justify-content:space-between;gap:10px}
.be13PanelBody{padding:11px 12px}.be13EvidenceRow{margin-top:6px;padding:8px 9px;background:#f7fafc;border-radius:7px}.be13CarryRow{display:grid;gap:3px;padding:8px 0;border-bottom:1px solid #edf1f4}.be13CarryRow:last-child{border-bottom:0}.be13CarryRow span{white-space:pre-wrap}
.be13PDV{margin-top:16px;padding-top:12px;border-top:1px solid #d7e0e8}.be13PDV summary{cursor:pointer;font-weight:800}.be13PDV .gfV07PDVItem{display:grid;gap:3px;padding:7px 0;border-bottom:1px solid #e4ebf0}
.be13-active #stageContent .guidedSection:has(.guidedSelectable){border:0;padding:0;background:transparent}.be13-active #stageContent .guidedSection:has(.guidedSelectable) .guidedItems{gap:8px}.be13-active #stageContent .guidedSection:has(.guidedSelectable) .guidedItem{padding:9px 12px;border-radius:8px}
.be13P10Wrap{overflow-x:auto;margin-top:14px;border:1px solid #d8e2e8;border-radius:10px}.be13P10Table{width:100%;min-width:1180px;border-collapse:collapse;font-size:.93rem}.be13P10Table th,.be13P10Table td{padding:10px 9px;text-align:left;vertical-align:top;border-bottom:1px solid #e3eaee;border-right:1px solid #e8eef1;line-height:1.35}.be13P10Table th{background:#eef5f7;font-weight:800}.be13P10Table th:first-child,.be13P10Table td:first-child{width:38px;text-align:center}.be13P10Table tr:last-child td{border-bottom:0}.be13P10Table th:last-child,.be13P10Table td:last-child{border-right:0}
.be13TranscriptNote{margin-top:0;padding:9px 10px;background:#f6fafb;border-left:4px solid #168b87}.be13TranscriptLine{margin:8px 0;line-height:1.45}.be13LearnerFeedback{margin-top:18px}.be13LearnerFeedback .be13Panel{margin-top:8px}.be13Script{margin-top:14px;padding:10px 12px;border:1px solid #d7e0e8;border-radius:9px;background:#f7fafc}.be13Script summary{cursor:pointer;font-weight:800}.be13Script p{margin:8px 0;line-height:1.4}
@media(max-width:950px){.be13Grid{grid-template-columns:1fr!important}}

.be13SourceBlock+.be13NotesBlock{margin-top:12px;padding-top:10px;border-top:1px solid #e2e9ed}.be13SourceLabel{font-size:.74rem;font-weight:800;letter-spacing:.06em;color:#5d6b75;margin:0 0 6px}.be13NotesBlock .be13CarryRow b{color:#173f5f}

/* v1.2.1 — canonical teacher-only Saved lesson observations bank */
.be13ObservationBank{margin:0 0 14px;}
.be13ObservationBank .lessonObservationBank{background:#eef3f8;border:1px solid #c7d3df;border-radius:10px;overflow:hidden;}
.be13ObservationBank .lessonObservationBank>summary{cursor:pointer;display:flex;justify-content:space-between;gap:12px;padding:12px 14px;font-weight:700;color:#17365D;list-style:none;}
.be13ObservationBank .lessonObservationBank>summary::-webkit-details-marker{display:none;}
.be13ObservationBankBody{padding:0 14px 12px;}
.be13ObservationBank .lessonObservationRow{background:#fff;border:1px solid #d7e0e8;border-radius:8px;padding:10px 12px;margin-top:8px;}
.be13ObservationBank .lessonObservationMeta{font-size:.86rem;color:#526274;margin-bottom:5px;}

/* v1.0.4 — corrected P10 responsive treatment.
   Preserve natural row height; fit the seven-column teaching reference without
   the fixed-layout regression introduced in v1.0.3. */
.be13P10Wrap{
  width:100%;
  max-width:100%;
  overflow-x:auto;
}
.be13P10Table{
  width:100%;
  min-width:0;
  table-layout:auto;
  border-collapse:collapse;
  font-size:.84rem;
}
.be13P10Table th,.be13P10Table td{
  padding:8px 6px;
  vertical-align:top;
  line-height:1.3;
  white-space:normal;
  overflow-wrap:break-word;
  word-break:normal;
  hyphens:none;
}
.be13P10Table th:nth-child(1),.be13P10Table td:nth-child(1){width:3%}
.be13P10Table th:nth-child(2),.be13P10Table td:nth-child(2){width:18%}
.be13P10Table th:nth-child(3),.be13P10Table td:nth-child(3){width:18%}
.be13P10Table th:nth-child(4),.be13P10Table td:nth-child(4){width:17%}
.be13P10Table th:nth-child(5),.be13P10Table td:nth-child(5){width:17%}
.be13P10Table th:nth-child(6),.be13P10Table td:nth-child(6){width:13%}
.be13P10Table th:nth-child(7),.be13P10Table td:nth-child(7){width:14%}

/* Observation bank remains adjacent to the observation capture workflow. */
#be13-observation-bank{margin-top:10px;margin-bottom:0}


/* GF-QA-01 — Development Mode Library Recovery */
.developmentHistorical{margin:22px 0 8px;border:1px solid #cfd8df;border-radius:11px;background:#f7f9fb;padding:10px 12px}
.developmentHistorical>summary{cursor:pointer;font-weight:700;color:#455765;padding:4px 2px}
.developmentHistoricalBody{margin-top:10px}
.developmentHistorical .developmentModeLesson{background:#fafafa;opacity:.88}

/* GF-RECOVERY-01 — Library recovery inventory tooling */
.developmentInventoryTools{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:12px 0 18px;padding:12px 14px;border:1px solid #d7e0e8;border-radius:10px;background:#f7f9fb;font-size:13px;}
.developmentInventoryTools button{white-space:nowrap;}
@media(max-width:800px){.developmentInventoryTools{align-items:stretch;flex-direction:column}.developmentInventoryTools button{width:100%}}

/* v0.15.98 — GF-OBS-01 v2 */
.gfSavedObservationMeta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px}
.gfObservationDelete{font-size:12px;padding:0;min-height:auto}

/* =========================================================
   v0.15.99 — GF-OBS-01 visual refinement
   Canonical teacher observation capture + saved bank treatment.
   ========================================================= */
#teacherGuide .stageEvidenceToolbar{
  grid-template-columns:1fr;
  gap:5px;
  margin:10px 0 4px;
  padding:9px 0 0;
}
#teacherGuide .stageEvidenceToolbar > [data-stage-add-observation]{
  width:100%;
  min-height:38px;
  padding:9px 12px;
  text-align:left;
  border:1px solid #d8e1e8;
  border-radius:12px;
  background:#eef3f6;
  color:#12314d;
  font-weight:800;
  box-shadow:none;
}
#teacherGuide .stageEvidenceToolbar > [data-stage-add-observation]:hover{
  background:#e8eef2;
}
#teacherGuide .stageEvidenceToolbar [data-stage-observation-editor]{
  margin-top:1px;
}
#teacherGuide .gfSavedObservationBank{
  margin:4px 0 22px;
  border-color:#d8e1e8;
  background:#eef3f6;
}
#teacherGuide .gfSavedObservationBank>summary{
  min-height:38px;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  padding:9px 12px;
  background:#eef3f6;
}
#teacherGuide .gfSavedObservationBank>summary:before{
  margin-right:4px;
}
#teacherGuide .gfSavedObservationBankBody{
  padding:3px 12px 8px;
}
#teacherGuide .gfSavedObservationRow{
  padding:11px 0 10px;
}
#teacherGuide .gfSavedObservationRow > .small:first-child{
  margin-bottom:6px;
  line-height:1.35;
}
#teacherGuide .gfSavedObservationRow > .small:first-child + div{
  margin:0 0 8px;
  font-size:14px;
  line-height:1.5;
  color:#243746;
}
#teacherGuide .gfSavedObservationMeta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:20px;
}

/* v0.15.101 — GF-OBS-01 compact matched controls, clean patch on v0.15.99 */
#teacherGuide .stageEvidenceToolbar > [data-stage-add-observation]{
  width:min(420px,100%);
  min-height:38px;
  padding:9px 12px;
  font-size:16px;
  line-height:1.2;
  font-weight:800;
}
#teacherGuide .gfSavedObservationBank{
  width:min(420px,100%);
}
#teacherGuide .gfSavedObservationBank[open]{
  width:100%;
}
#teacherGuide .gfSavedObservationBank>summary{
  font-size:16px;
  line-height:1.2;
  font-weight:800;
  white-space:nowrap;
}

/* v0.15.101 GF-OBS-01 final visual refinement: matched compact control width */
#teacherGuide .stageEvidenceToolbar > [data-stage-add-observation],
#teacherGuide .gfSavedObservationBank:not([open]){
  width:310px;
  min-width:310px;
  max-width:100%;
  box-sizing:border-box;
}
#teacherGuide .stageEvidenceToolbar > [data-stage-add-observation]{
  font-size:16px;
  line-height:1.2;
  font-weight:800;
}
#teacherGuide .gfSavedObservationBank:not([open]){
  display:block;
}
#teacherGuide .gfSavedObservationBank>summary{
  box-sizing:border-box;
  width:100%;
}
#teacherGuide .gfSavedObservationBank[open]{
  width:100%;
  max-width:100%;
}

/* v0.15.102 — canonical P10 main-body fallback */
.gfCanonicalP10Body{margin:0 0 18px}.gfCanonicalP10Intro{margin-bottom:12px}.gfCanonicalP10Intro h2{margin:0 0 8px}.gfCanonicalP10TableWrap{overflow-x:auto;border:1px solid #d8e2e8;border-radius:10px;background:#fff}.gfCanonicalP10Table{width:100%;border-collapse:collapse;font-size:13px}.gfCanonicalP10Table th,.gfCanonicalP10Table td{padding:10px 9px;border-right:1px solid #e3eaee;border-bottom:1px solid #e3eaee;vertical-align:top;text-align:left}.gfCanonicalP10Table th:last-child,.gfCanonicalP10Table td:last-child{border-right:0}.gfCanonicalP10Table tbody tr:last-child td{border-bottom:0}.gfCanonicalP10Table th{background:#eef4f7;font-weight:800}


/* v0.15.108 — GF-TG-01 canonical Teacher Guide */
.gfTG01{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:12px;align-items:start;margin-top:4px}
.gfTG01Single{display:block}
.gfTG01Col{display:grid;gap:10px;align-content:start}
.gfTG01Block{margin:0;padding:10px 11px;border:1px solid #eadcae;border-radius:9px;background:rgba(255,255,255,.58)}
.gfTG01Block h4{margin:0 0 6px;font-size:11px;line-height:1.2;letter-spacing:.045em;color:#6d5616}
.gfTG01Block p{margin:0;font-size:12px;line-height:1.42}
.gfTG01Block ul,.gfTG01Block ol{margin:0;padding-left:20px}
.gfTG01Block li{margin:0;padding:3px 0;border:0;font-size:12px;line-height:1.38;font-weight:400}
.gfTG01Run li{font-weight:600}
.gfTG01Rescue{border-left:4px solid #d7a43b}
.gfTG01Listen{background:rgba(255,255,255,.35)}
@media(max-width:900px){.gfTG01{grid-template-columns:1fr}.gfTG01Right{margin-top:0}}

/* GF-DECK-01 CANDIDATE v0.1 — NOT APPROVED FOR GENERAL PRODUCTION USE */
.gfDeck01{margin:18px 0 24px;border:1px solid #cfd9e2;border-radius:14px;background:#f7fafc;overflow:hidden}
.gfDeckModebar{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 16px;background:#fff;border-bottom:1px solid #dbe4eb}
.gfDeckModebar>div:first-child{display:grid;gap:5px}.gfDeckModes{display:flex;gap:7px;flex-wrap:wrap}.gfDeckModes button{background:#eaf2f7;color:#0b2a4a}.gfDeckModes button.activeMode{background:#1d7a7a;color:#fff;box-shadow:inset 0 0 0 2px rgba(11,42,74,.18)}
.gfDeckBody{padding:16px}.gfDeckBrief{background:#fff;border:1px solid #d7e0e8;border-radius:10px;margin-bottom:16px;padding:0 14px}.gfDeckBrief summary{cursor:pointer;font-weight:800;padding:12px 0}.gfDeckBrief>div{display:grid;grid-template-columns:145px 1fr;gap:12px;padding:8px 0;border-top:1px solid #edf1f4}.gfDeckBrief span{line-height:1.45}
.gfDeckBuildIntro{display:flex;justify-content:space-between;gap:16px;align-items:start}.gfDeckBuildIntro h2{margin-bottom:5px}.gfDeckSave{font-size:12px;font-weight:700;min-width:80px;text-align:right}.gfDeckSave.saving{color:#8a6416}.gfDeckSave.saved{color:#17654e}.gfDeckSave.error{color:#a92b2b}
.gfDeckPool{background:#eef4f7;border:1px solid #d7e0e8;border-radius:12px;padding:14px;margin:14px 0 18px}.gfDeckPool h3{margin:0 0 4px}.gfDeckPoolGrid,.gfDeckAssigned{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.gfDeckAssigned h4{grid-column:1/-1;margin:5px 0 0}
.gfDeckItem{background:#fff;border:1px solid #d7e0e8;border-radius:9px;padding:10px;min-width:0}.gfDeckItem p{font-size:13px;line-height:1.4}.gfDeckItem img{display:block;width:100%;max-height:160px;object-fit:contain;margin:8px 0;background:#fff}.gfDeckItemTop{display:flex;justify-content:space-between;gap:8px;margin-bottom:6px}.gfDeckKind,.gfDeckLocation{font-size:10px;text-transform:uppercase;letter-spacing:.04em;font-weight:800;color:#617486}.gfDeckItem label{font-size:11px;margin:8px 0 0}.gfDeckItem select{width:100%;margin-top:4px;padding:7px;border:1px solid #c9d5df;border-radius:7px;background:#fff}
.gfDeckStoryboard{display:grid;gap:18px}.gfDeckBuildSlide{background:#fff;border:1px solid #cbd7e1;border-radius:13px;padding:14px;box-shadow:0 4px 12px rgba(11,42,74,.05)}.gfDeckSlideHeader{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px;font-weight:800;color:#617486}.gfDeckSlideHeader button{padding:6px 9px}
.gfDeckFace{aspect-ratio:16/9;background:#fff;border:2px solid #0b2a4a;border-radius:5px;padding:7%;display:flex;flex-direction:column;justify-content:center;overflow:hidden;box-shadow:0 5px 14px rgba(11,42,74,.08)}.gfDeckFace h2,.gfDeckFace h3{margin:0 0 4%;color:#0b2a4a}.gfDeckFace h2{font-size:clamp(24px,4vw,42px)}.gfDeckFace h3{font-size:clamp(20px,3vw,32px)}.gfDeckFace p{margin:1.5% 0;line-height:1.35}.gfDeckTitleFace{border-left:12px solid #d7a43b}.gfDeckKeyLine{font-size:clamp(17px,2.2vw,26px);font-weight:800;color:#1d7a7a}.gfDeckVisualGrid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:5%;align-items:center}.gfDeckVisualGrid img{width:100%;max-height:300px;object-fit:contain}.gfDeckVisualPlaceholder{aspect-ratio:4/3;border:2px dashed #b8c6d1;border-radius:8px;display:grid;place-items:center;color:#617486;text-align:center;padding:12px}.gfDeckCompare{display:grid;grid-template-columns:1fr 1fr;gap:5%}.gfDeckCompare>div{border-top:5px solid #1d7a7a;padding-top:10px}.gfDeckConclusion{border-bottom:12px solid #d7a43b}
.gfDeckEditGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.gfDeckEditGrid label{margin:0;font-size:11px;letter-spacing:.03em}.gfDeckEditGrid label:first-child{grid-column:1/-1}.gfDeckEditGrid textarea{min-height:100px}.gfDeckNotes textarea{background:#fffaf0;border-color:#dec98c}
.gfDeckSingle{max-width:920px;margin:0 auto}.gfDeckSingle .gfDeckFace{width:100%;min-height:0}.gfDeckProgress{text-align:center;color:#617486;font-weight:700;margin-bottom:10px}.gfDeckRehearsalNotes{margin:12px 0;background:#fffaf0;border:1px solid #dec98c;border-radius:10px;padding:0 12px}.gfDeckRehearsalNotes summary{cursor:pointer;font-weight:800;padding:11px 0}.gfDeckRehearsalNotes div{padding:0 0 12px;white-space:pre-wrap;line-height:1.5}.gfDeckPresent .gfDeckFace{box-shadow:0 8px 24px rgba(11,42,74,.14)}.gfDeckNav{display:flex;justify-content:space-between;gap:12px;margin-top:14px}
.gfDeckTeacher{margin:14px 0;padding:14px;border:1px solid #d9bf6d;border-radius:10px;background:#fff7dd}.gfDeckTeacher details{background:#fff;border:1px solid #eadba9;border-radius:8px;margin-top:10px;padding:0 10px}.gfDeckTeacher summary{cursor:pointer;font-weight:800;padding:10px 0}.gfDeckPlacement,.gfDeckTeacherNote{display:grid;gap:4px;padding:9px 0;border-top:1px solid #eee3bd}.gfDeckPlacement span{font-size:12px}.gfDeckTeacherNote p{margin:2px 0;white-space:pre-wrap}
@media(max-width:900px){.gfDeckModebar,.gfDeckBuildIntro{align-items:stretch;flex-direction:column}.gfDeckBrief>div{grid-template-columns:1fr;gap:3px}.gfDeckEditGrid,.gfDeckVisualGrid,.gfDeckCompare{grid-template-columns:1fr}.gfDeckFace{aspect-ratio:auto;min-height:300px}.gfDeckPoolGrid,.gfDeckAssigned{grid-template-columns:1fr}}

/* GF-DECK-01 CANDIDATE v0.2 — scenario evidence + placeable assets */
.gfDeckEvidence{background:#fff;border:1px solid #d7e0e8;border-radius:10px;margin:0 0 16px;padding:0 14px}.gfDeckEvidence summary{cursor:pointer;font-weight:800;padding:12px 0}.gfDeckEvidence>.small{margin-top:0}.gfDeckEvidenceGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;padding:0 0 14px}.gfDeckEvidenceGrid section{background:#f6f9fb;border:1px solid #e0e7ed;border-radius:8px;padding:10px 12px}.gfDeckEvidenceGrid h4{margin:0 0 6px;color:#0b2a4a}.gfDeckEvidenceGrid ul{margin:0;padding-left:18px}.gfDeckEvidenceGrid li{margin:4px 0;line-height:1.35}
.gfDeckBuildSlide .gfDeckFaceCompact{width:min(100%,560px);margin:0 auto;padding:5%;box-shadow:0 3px 9px rgba(11,42,74,.07)}.gfDeckBuildSlide .gfDeckFaceCompact h2{font-size:clamp(20px,2.5vw,30px)}.gfDeckBuildSlide .gfDeckFaceCompact h3{font-size:clamp(18px,2.2vw,26px)}.gfDeckBuildSlide .gfDeckFaceCompact .gfDeckKeyLine{font-size:clamp(15px,1.7vw,20px)}
.gfDeckSlideHeader>span{display:grid;gap:2px;color:#0b2a4a}.gfDeckSlideHeader>span small{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#738394}.gfDeckFaceAsset{display:block;max-width:55%;max-height:42%;object-fit:contain;margin:3% auto 0}
.gfDeckDestinations{position:sticky;top:8px;z-index:4;display:flex;align-items:center;gap:6px;flex-wrap:wrap;background:#f7fafc;border:1px dashed #9dafbd;border-radius:10px;padding:8px 10px;margin:-7px 0 14px;opacity:.72}.gfDeckDestinations.active{background:#fff7dd;border-color:#c89c32;box-shadow:0 5px 16px rgba(11,42,74,.12);opacity:1}.gfDeckDestinations span{font-size:11px;font-weight:800;margin-right:3px}.gfDeckDestinations button{font-size:11px;padding:6px 8px;background:#fff;color:#0b2a4a;border:1px solid #c8d4de}.gfDeckDestinations .gfDeckDropReady,.gfDeckBuildSlide.gfDeckDropReady{outline:3px solid #d7a43b;outline-offset:2px}.gfDeckItem[draggable="true"]{cursor:grab}.gfDeckItem.dragging{opacity:.45}.gfDeckItem:active{cursor:grabbing}
.gfDeckProgress span{font-weight:500}.gfDeckAssigned{margin-top:10px}.gfDeckAssigned .gfDeckItem{max-width:300px}.gfDeckEditGrid label:first-child{grid-column:1/-1}
@media(max-width:900px){.gfDeckEvidenceGrid{grid-template-columns:1fr}.gfDeckBuildSlide .gfDeckFaceCompact{width:100%;min-height:220px}.gfDeckDestinations{position:static}.gfDeckFaceAsset{max-width:75%}}

/* GF-DECK-01 candidate v0.3 — consistent slide body layout */
.gfDeckFace{justify-content:flex-start;text-align:left}
.gfDeckFace h3{width:100%;margin:0 0 5%;text-align:left}
.gfDeckSlideBody{flex:1;min-height:0;width:100%;display:flex;align-items:flex-start}
.gfDeckTextOnly{display:block}
.gfDeckAudienceCopy{white-space:pre-wrap;text-align:left;font-size:clamp(15px,1.75vw,21px);line-height:1.45;font-weight:600;color:#18334d;overflow-wrap:anywhere}
.gfDeckTextOnly .gfDeckAudienceCopy{width:100%;max-width:92%}
.gfDeckHasAsset{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:7%;align-items:start}
.gfDeckAssetRight{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
.gfDeckAssetPane{width:100%;min-width:0;display:grid;gap:10px;align-content:start;justify-items:start}
.gfDeckAssetPane img{display:block;width:100%;max-height:240px;object-fit:contain;object-position:left top;margin:0}
.gfDeckEmbeddedAsset{width:100%;border:1px solid #cbd7e1;border-radius:7px;padding:10px;background:#f7fafc;text-align:left}
.gfDeckAssetSide{display:flex;justify-content:center;align-items:center;gap:6px;margin:8px 0 0;font-size:11px;font-weight:800;color:#617486}
.gfDeckAssetSide button{font-size:11px;padding:5px 8px}
.gfDeckAssetSide button.active{background:#0b2a4a;color:#fff;border-color:#0b2a4a}
.gfDeckVisualPlaceholder{display:none!important}
.gfDeckBuildSlide .gfDeckFaceCompact .gfDeckAudienceCopy{font-size:clamp(14px,1.35vw,18px)}
.gfDeckBuildSlide .gfDeckFaceCompact .gfDeckAssetPane img{max-height:180px}
@media(max-width:900px){.gfDeckHasAsset,.gfDeckAssetRight{grid-template-columns:1fr}.gfDeckAssetPane img{max-height:220px}.gfDeckAssetSide{justify-content:flex-start;flex-wrap:wrap}}
