/* Only this stylesheet owns workspace geometry. Content modules own their interiors. */
/* 标题条尽量矮：它每高一像素课件区就矮一像素 */
.workspace-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap;box-sizing:border-box;width:100%;min-height:32px;margin:0;padding:2px 12px;background:var(--bg)}
.workspace-heading-title{position:static!important;margin:0!important;padding:0!important;min-width:0;max-width:none!important;flex:1 1 180px;font-size:15px;line-height:1.3;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis}
.workspace-view{margin-left:auto;display:flex;gap:3px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
/* 手机：标题和状态一行，分栏开关单独一行、横向滚，不再叠成三四行把课件往下挤 */
@media(max-width:600px){.workspace-heading{flex-wrap:wrap;row-gap:4px}.workspace-heading>.workspace-view{order:3;flex:1 0 100%;flex-wrap:wrap;justify-content:flex-start;margin-left:0;row-gap:4px}.workspace-view>*{flex:none;max-width:100%}.workspace-heading>#livemark{margin-left:auto}}
/* 目录栏标题窄了也不折成两行 */
.page-rail-head strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
/* 笔记栏底部：常用的摆出来，下载和不常用的收进菜单（展开在原地，不会被面板裁掉） */
.note-menu{display:inline-block}.note-menu>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:13px;background:var(--surface);user-select:none}.note-menu>summary::-webkit-details-marker{display:none}.note-menu>summary::after{content:'▾';font-size:10px;opacity:.7}.note-menu[open]>summary{background:var(--brand-soft);color:var(--brand);border-color:transparent}.note-menu-items{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:6px 0 2px 6px}.note-menu-items>button{width:auto}
.workspace-view button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:3px 10px;font-size:12px;color:var(--text-dim)}
.workspace-view button[aria-pressed=true]{background:var(--brand-soft);color:var(--brand);border-color:transparent}
html:has(body.has-workspace-frame){height:100%;overflow:clip}
body.has-workspace-frame{height:100dvh;overflow:hidden}
.workspace-frame{display:flex;flex-direction:column;min-width:0;min-height:180px;overflow:hidden;box-sizing:border-box;isolation:isolate}
.workspace-frame>.workspace-heading{position:relative;flex:none;z-index:40;margin:0!important}
.workspace-frame>.workspace-row{display:flex;align-items:stretch;flex-direction:row;gap:0;flex:1;min-width:0;min-height:0;height:auto!important;padding:0 4px 4px;margin:0!important;overflow:hidden}
.workspace-row>.workspace-col{margin:0!important;box-sizing:border-box;position:relative!important;inset:auto!important;flex:0 0 auto!important;min-width:0!important;min-height:0!important;max-width:none!important;overflow:hidden;border-radius:8px;z-index:auto!important}
.workspace-row>.workspace-col:not(.workspace-col-main){height:auto!important;max-height:none!important;align-self:stretch;overflow:auto}
.workspace-row>.workspace-col-main{display:flex;flex-direction:column;isolation:isolate}
.workspace-row>.workspace-col[hidden],.page-rail[hidden],.has-workspace-frame.rail-closed .page-rail{display:none!important}
.workspace-row>.workspace-col>.gutter{display:none!important}
.workspace-row>:not(.workspace-col):not(.workspace-divider){display:none!important}
.workspace-row>.workspace-divider{position:relative!important;flex:none;z-index:35;cursor:col-resize;touch-action:none;background:transparent}
.workspace-divider::before{content:'';position:absolute;inset:0 -5px;background:transparent}
.workspace-divider::after{content:'';position:absolute;top:0;bottom:0;left:0;width:1px;background:var(--line);opacity:1}
.workspace-divider:hover::after,.workspace-divider:focus-visible::after{background:var(--brand)}
.workspace-frame>.workspace-stacked{flex-direction:column;overflow-y:auto}
/* 堆叠时每栏守住自己的一块：课件区给足一屏的六成，其余栏不超过 45vh，各自内部滚动 */
.workspace-stacked>.workspace-col{width:100%!important;flex-shrink:0!important;min-height:240px!important;max-height:45vh;overflow:auto}
.workspace-stacked>.workspace-col-main{min-height:60vh!important;max-height:none}
.workspace-focused>.workspace-col:not(.workspace-col-main){display:none!important}
/* 扩大课件区只收起别的栏；弹幕入口在课件区自己的工具行里，照样要在 */
.workspace-focused #pageNotesPanel,.workspace-focused #pageNoteDivider,.workspace-focused #script,.workspace-focused #interact{display:none!important}
.workspace-focused .workspace-col-main{grid-template-columns:minmax(0,1fr)!important}
.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;gap:6px}
.has-page-rail.rail-closed{--outline-space:0px}
body.has-workspace-frame .rail-main{margin-left:0!important}
body.has-workspace-frame>.workspace-context{display:none!important}
.has-page-rail:not(.has-workspace-frame):not(.workspace-entry):not(.rail-closed) .rail-main{margin-left:calc(var(--outline-width,210px) + 28px)!important}
.workspace-col-main .workspace-tools,.workspace-col-main .workspace-stage-tools,.workspace-col-main #studentPaging,.workspace-col-main #classToolbar,.workspace-col-main .inkbar{position:relative!important;inset:auto!important;min-width:0;max-width:100%;width:100%;box-sizing:border-box;overflow-x:auto;overflow-y:hidden;flex:none;white-space:nowrap;margin:0!important}
.workspace-stage-tools{grid-column:1/-1;grid-row:1;display:flex;flex-direction:column;align-items:stretch;gap:4px;overflow:hidden!important}
.workspace-stage-tools>#live{min-width:0;max-width:100%;overflow:auto;white-space:nowrap;flex-wrap:nowrap}
/* 授课台：语音/弹幕和翻页、计时并成一行，不再叠两层占高度 */
.workspace-stage-tools.teach-stage-tools,.workspace-stage-tools.stage-tools-row{flex-direction:row;align-items:center;flex-wrap:nowrap;overflow-x:auto!important;gap:8px}
.teach-stage-tools>*,.stage-tools-row>*{flex:none}.teach-stage-tools>#live{overflow:visible}.teach-stage-tools>.classroom-communication-bar,.stage-tools-row>.classroom-communication-bar{padding:2px 0;width:auto!important;max-width:none;overflow:visible}
/* 学生端翻页条内容多：占满剩余宽度，自己横向滚，不把整行撑出去 */
.stage-tools-row>#studentPaging{flex:1 1 auto;min-width:0;width:auto!important;border:0!important;background:transparent!important;padding-top:0!important;padding-bottom:0!important}
.workspace-row>#room:has(#classToolbar){display:grid!important;grid-template-rows:auto minmax(0,1fr) auto!important}
.workspace-row>#room:has(#classToolbar)>#boardwrap,.workspace-row>#room:has(#classToolbar)>#script,.workspace-row>#room:has(#classToolbar)>#interact{grid-row:2!important;min-width:0;min-height:0}
.workspace-row>#room>#classToolbar{grid-column:1/-1;grid-row:3;min-height:38px}
#boardwrap:has(>#stageGrid){display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}
#boardwrap>#stageGrid{flex:1;min-height:0!important;height:auto!important}
.workspace-col-main #classroomTools{min-width:0;max-width:100%;width:100%;box-sizing:border-box;margin:0!important;padding:3px;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;flex:none}
.workspace-col-main #classroomTools>*{flex:none}.workspace-col-main #classroomTools form{min-width:120px}
.workspace-col-main #classViewControls{flex:none;max-width:100%}
#seminarStage>.workspace-stage-tools{flex-direction:row;align-items:center;flex-wrap:nowrap;overflow-x:auto!important;min-height:36px}
#seminarStage>.workspace-stage-tools>*{flex:none}
#boardcolumn.notes-split{flex:1;min-height:0;overflow:hidden!important}
#boardcolumn.notes-split>.page-stage-area{display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden}
#pageStageArea>#screen,#pageStageArea>#boardwrap{flex:1!important;min-height:0!important;height:auto;overflow:auto;margin:0!important}
#pageStageArea>#seminarSocial{flex:none;margin:0;padding:4px 0;max-height:90px;overflow:auto}
#boardcolumn.notes-split>#pageNotesPanel{min-height:0!important;max-height:none!important;box-sizing:border-box;overflow:auto;margin:0!important}
#pageNotesPanel>summary,#pageNotesPanel>.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;font-weight:600}
#pageNotesPanel[hidden],#pageNoteDivider[hidden]{display:none!important}
#boardcolumn.notes-split>.notes-divider{position:relative!important;flex:none;height:2px!important;min-height:2px!important;margin:0!important;padding:0!important;border-radius:0!important;z-index:30;cursor:row-resize;touch-action:none;background:var(--line)}
.notes-divider::before{content:'';position:absolute;inset:-5px 0;cursor:row-resize;touch-action:none}
.notes-divider:hover{background:var(--brand)!important}
.workspace-col .page-number-control{max-width:100%;min-width:0;box-sizing:border-box;flex-wrap:wrap;white-space:normal!important}
.workspace-col .page-number-control input{max-width:100%}
#stageGrid>.stage-gutter{z-index:35;touch-action:none}#stageGrid>.stage-gutter::before{content:'';position:absolute;inset:0 -5px;background:transparent}

/* Five-region frame: private notes/speaker material lives beside the stage. */
.workspace-row>.workspace-col#pageNotesPanel{display:flex;flex-direction:column;margin:0!important;padding:8px;max-height:none!important;height:auto!important;min-width:0!important}
.workspace-row>.workspace-col#pageNotesPanel[hidden]{display:none!important}
.workspace-row>.workspace-col#pageNotesPanel textarea{flex:1;min-height:100px;width:100%;box-sizing:border-box}
#boardcolumn.notes-in-region{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}
#boardcolumn.notes-in-region>#screen,#boardcolumn.notes-in-region>#boardwrap{flex:1;min-height:0!important;max-height:none!important}
#boardcolumn.notes-in-region>#seminarSocial{flex:none;max-height:100px;overflow:auto}
.workspace-row>#script.workspace-col{display:flex!important;flex-direction:column;min-width:0!important;overflow:auto}
.workspace-row>#script.workspace-col[hidden]{display:none!important}
.workspace-row>#room:has(#classToolbar):not(:has(>#script)){grid-template-columns:minmax(0,1fr)!important}
.workspace-row>#boardcolumn.workspace-col{display:flex!important;flex-direction:column;min-height:0!important;max-height:none!important}
.workspace-row>#boardcolumn.workspace-col>#boardwrap{flex:1;min-height:0!important;max-height:none!important}
.workspace-divider::before{inset:0 -2px}
.region-dragging iframe{pointer-events:none}

.preparation-frame .workspace-col-main{overflow:auto!important;display:block!important}
.preparation-frame .prep-columns{display:none}
.preparation-frame .workspace-col .grid,.preparation-frame .prep-ai{display:block}
.preparation-frame .workspace-col input,.preparation-frame .workspace-col textarea{max-width:100%;box-sizing:border-box}
.preparation-frame .workspace-col{padding:8px}
.preparation-frame #prepNotesRegion textarea{min-height:300px;width:100%}

.workspace-row>.workspace-col#pageNotesPanel button{max-width:100%;white-space:normal;overflow-wrap:anywhere}.workspace-row>.workspace-col#pageNotesPanel>summary,.workspace-row>.workspace-col#pageNotesPanel>.panel-heading{flex:none}.workspace-col #personalMaterials select{max-width:100%}

.workspace-row>#boardcolumn.workspace-col>.toolbar{flex:none;max-height:40%;overflow:auto;margin:0}.workspace-row>#boardcolumn.workspace-col>.toolbar input{max-width:100%;box-sizing:border-box}.workspace-row>#boardcolumn.workspace-col>p.hint{flex:none;font-size:12px;margin:4px}

.preparation-frame main.wrap,.materials-frame main{padding-top:6px}.workspace-heading>#message,.workspace-heading>#status{flex-basis:100%;margin:0;min-height:0;font-size:12px}.workspace-heading>#message:empty,.workspace-heading>#status:empty{display:none}.preparation-frame .workspace-col button{max-width:100%;white-space:normal;overflow-wrap:anywhere}

/* Only a compact entry row consumes stage height. Composition uses the top layer. */
#seminarSocial.compact-danmaku{display:flex;align-items:center;gap:4px;flex-wrap:nowrap!important;flex:none!important;min-height:34px!important;max-height:38px!important;margin:0!important;padding:2px!important;overflow:visible!important}
#seminarSocial.compact-danmaku>.danmaku-compose-toggle{height:30px;min-height:30px;padding:3px 8px;white-space:nowrap}
#seminarSocial.compact-danmaku>#danmakuToggle{width:30px;height:30px;min-height:30px;padding:4px;flex:none}
.danmaku-compose-popup{position:fixed;inset:auto;margin:0;padding:10px;box-sizing:border-box;overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);box-shadow:var(--shadow);z-index:1000;min-width:0}
.danmaku-compose-popup::backdrop{background:transparent}
.danmaku-compose-popup>*{max-width:100%;min-width:0;box-sizing:border-box}.danmaku-compose-popup input{width:100%;margin:6px 0}.danmaku-compose-popup button{white-space:normal;overflow-wrap:anywhere}
.danmaku-compose-heading{display:flex;align-items:center;justify-content:space-between;gap:4px}.danmaku-compose-heading button{padding:2px 6px}.danmaku-compose-popup #danmakuStatus{display:block;font-size:12px;margin-top:6px}
.danmaku-compose-popup #danmakuFaceList{position:static!important;width:100%!important;max-width:100%!important;max-height:260px;overflow:auto}

/* Toolbar items must not shrink into vertical text and steal the lesson height. */
.workspace-col-main .workspace-tools>*,.workspace-col-main .inkbar>*,.workspace-col-main #classToolbar>*{flex:0 0 auto}
.workspace-col-main .workspace-tools button,.workspace-col-main .workspace-stage-tools button,.workspace-col-main .inkbar button,.workspace-col-main #classToolbar button{white-space:nowrap;overflow-wrap:normal}
.workspace-col-main .workspace-tools{flex-wrap:nowrap!important;max-height:64px}

/* No danmaku footer: reuse the existing communication row and fill to the bottom. */
#seminarStage>#screen,#seminarStage>#boardcolumn{flex:1 1 0;min-height:0!important;max-height:none!important;height:auto!important}
#boardcolumn.notes-in-region>#screen{flex:1 1 0;min-height:0!important;max-height:none!important;height:auto!important}
#seminarStage>.workspace-stage-tools>#seminarSocial{width:auto;min-width:0;flex:0 0 auto!important}

/* Visibility controls are grouped separately from layout actions. */
.layout-control-group{display:flex;align-items:center;gap:4px;flex-wrap:wrap;min-width:0;max-width:100%;padding:3px 6px;box-sizing:border-box}
.layout-control-caption{font-size:11px;color:var(--text-dim,#65728a);white-space:nowrap;margin-right:3px;order:-1}
[data-layout-group="panels"]{background:var(--surface,#fff);border:1px solid var(--line,#d8dfec);border-radius:9px}
[data-layout-group="actions"]{gap:6px}
.workspace-view .layout-panel-toggle,#regions .layout-panel-toggle{display:inline-flex;align-items:center;gap:5px;border:0;border-radius:5px;background:transparent;padding:4px 7px;min-height:28px;color:var(--text-dim,#65728a);font-size:12px;white-space:nowrap}
.layout-panel-toggle::before{content:'';width:8px;height:8px;flex:none;box-sizing:border-box;border:1px solid currentColor;border-radius:50%;opacity:.5}
.workspace-view .layout-panel-toggle[aria-pressed=true],#regions .layout-panel-toggle[aria-pressed=true]{background:var(--brand-soft,#e3ebff);color:var(--brand,#4055b5)}
.layout-panel-toggle[aria-pressed=true]::before{background:currentColor;opacity:1}
.workspace-view .layout-action,#regions .layout-action{border:1px solid var(--line,#d8dfec);border-radius:6px;background:var(--surface,#fff);padding:4px 9px;min-height:28px;font-size:12px;white-space:nowrap;color:var(--text,#263248)}
.workspace-view .layout-action[aria-pressed=true]{border-color:var(--brand,#4055b5);color:var(--brand,#4055b5)}

/* The classroom picker is an entry form, not an active multi-column room. */
/* 各栏标题统一：目录栏、讲稿/笔记栏、AI 栏、辅助栏，教师端和学生端同一个样子——
   同字号、同高度、同一种关闭按钮（原来目录栏是浅蓝方块 ×，AI 栏是素 ×，各写各的） */
.workspace-col .region-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:40px;box-sizing:border-box;margin-top:0}
.workspace-col .region-head>strong:first-child,.workspace-col .region-head>.panel-title{font-size:15px;font-weight:650;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.workspace-col .region-head>button.region-close{flex:none;width:32px;height:32px;min-width:32px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--text-dim);display:inline-flex;align-items:center;justify-content:center;margin-left:auto}
.workspace-col .region-head>button.region-close:hover{background:var(--surface-2);color:var(--text)}
body.has-workspace-frame{overflow-x:hidden}
/* 工作台 / 课程主页 / 助教工作台进了分栏框架：旧侧栏留的左边距和 #main 两列网格都不要了 */
body.standard-frame .rail-main{margin-left:0!important}
body.standard-frame>#main{display:flex;flex-direction:column;min-height:0;overflow:hidden}
body.standard-frame #main>.workspace-frame{flex:1;min-height:0}
body.standard-frame .workspace-row>#left,body.standard-frame .workspace-row>main,body.standard-frame .workspace-row>.wrap{overflow:auto;max-width:none;margin:0}
body.standard-frame .workspace-row>#right{overflow:hidden;display:flex;flex-direction:column}
body.classroom-picker>#workspaceHeading,body.classroom-picker>.page-rail,body.classroom-picker #connchip{display:none!important}
/* 选课页：上课用的那条状态栏此时是空的，留着就是一条灰带 */
body.classroom-picker>header.workspace-context{display:none!important}
body.classroom-picker>#pick{box-sizing:border-box;width:min(560px,calc(100% - 32px));max-width:560px;margin:32px auto!important;padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
body.classroom-picker>#pick h3{margin-top:0}
body.classroom-picker>#pick input,body.classroom-picker>#pick select{box-sizing:border-box;max-width:100%}

/* Entry pages do not own classroom regions until a real workspace is mounted. */
body.workspace-entry>.page-rail,body.workspace-entry #workspaceHeading,body.workspace-entry #connchip,body.workspace-entry .prep-columns>aside{display:none!important}
body.workspace-entry .rail-main{margin-left:auto!important;margin-right:auto!important;max-width:100%;box-sizing:border-box}
body.workspace-entry>#setup{width:min(900px,calc(100% - 32px));margin:32px auto!important}
body.workspace-entry>main{box-sizing:border-box;margin:24px auto!important;width:calc(100% - 32px);max-width:1100px!important}
