/* 移动课堂按自身可用尺寸适配，竖屏横向使用时同样执行横屏布局。 */
.mc-shell{display:none}
.mobile-classroom:not(.account-locked) #app,.mobile-classroom .bottom-nav,.mobile-classroom .site-filing{display:none!important}
.mobile-classroom{overflow:hidden}
.mobile-classroom .mc-shell{
 position:fixed;left:var(--mc-view-left,0px);top:var(--mc-view-top,0px);
 width:var(--mc-view-width,100vw);height:var(--mc-view-height,100dvh);
 display:flex;flex-direction:column;min-height:0;box-sizing:border-box;
 padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
 background:#f3f5fa;color:#29354c;z-index:25;font-size:12px;
 container:mc-view / size;-webkit-text-size-adjust:100%;text-size-adjust:100%;
}
.mc-shell *{box-sizing:border-box}
.mc-shell button,.mc-shell select,.mc-dialog button{font:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.mc-shell button:disabled{opacity:.45;cursor:default}
.mc-shell button:focus-visible,.mc-shell select:focus-visible,.mc-dialog button:focus-visible{outline:3px solid #a399eb;outline-offset:2px}
.mc-header{min-height:54px;flex-shrink:0;padding:7px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border-bottom:1px solid #e8ebf3}
.mc-class,.mc-actions{display:flex;align-items:center;gap:10px;min-width:0}
.mc-class{flex:1}.mc-class>div{min-width:0}
.mc-icon{width:32px;height:32px;flex-shrink:0;border-radius:10px;background:#eeecfc;color:#7867c9;display:grid;place-items:center}
.mc-icon svg{width:21px;height:21px}
.mc-class select{font-size:16px;font-weight:650;color:#29354c;width:min(34cqw,250px);height:30px;border:0;background:#f5f5fa;border-radius:7px;padding:3px 7px}
.mc-class p{font-size:9px;color:#9099aa;margin:3px 0 0;max-width:38cqw;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.mc-actions{flex-shrink:0;gap:7px}
.mc-actions button,.mc-footer button{height:34px;padding:0 12px;border:1px solid #e2e5ef;border-radius:9px;color:#6e778e;background:#fff;white-space:nowrap;font-size:11px}
.mc-actions .mc-primary,.mc-primary{background:#7763c9;color:#fff;border:1px solid #7763c9;border-radius:9px;padding:9px 14px;font-weight:600}
.mc-actions .mc-running{background:#fbf4eb;color:#a47740;border-color:#efddc5}
#mcFullscreen{display:flex;align-items:center;justify-content:center;gap:6px}#mcFullscreen svg{width:14px;height:14px}
#mcMore{font-size:14px;min-width:34px;padding:0 8px;letter-spacing:1px}
#mcLive{font-size:10px;color:#72998a;white-space:nowrap;margin-right:4px}
.mc-map{margin:8px 12px 4px;min-height:0;flex:1;display:flex;flex-direction:column;background:#fff;border:1px solid #e5e8f1;border-radius:12px;padding:8px 10px}
.mc-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;margin-bottom:4px;flex-shrink:0}
.mc-heading>strong{font-weight:650}.mc-heading>span{color:#939aab;font-size:10px}.mc-heading b{color:#8270c5;font-weight:600}
.mc-room{display:flex;flex:1;min-height:0;gap:10px;max-height:36cqw;margin-block:auto;width:100%}
.mc-podium{flex:0 0 25px;align-self:center;height:42%;min-height:50px;background:#f4f2fb;border:1px solid #e9e5f5;border-radius:7px;display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;letter-spacing:5px;color:#a399be;font-size:10px}
.mc-seating{min-width:0;min-height:0;flex:1;display:flex;flex-direction:column;overflow:auto;overscroll-behavior:contain}
.mc-direction{height:16px;flex-shrink:0;display:grid;place-items:center;color:#b9bfcd;font-size:8px;letter-spacing:5px}
.mc-seats{flex:1;min-width:0;min-height:0;display:grid;gap:5px 4px}
.mc-seat{container-type:inline-size;min-width:0;min-height:0;display:grid;grid-template-rows:12px minmax(0,1fr);gap:1px;align-items:center;justify-items:stretch;padding:4px 3px 5px;border:1px solid #dce5f2;border-radius:7px;background:#f0f5fc;color:#405675;overflow:hidden;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:pan-x pan-y!important}
.mc-seat-meta{display:flex;align-items:center;justify-content:space-between;gap:2px;height:12px;min-width:0;line-height:1}
.mc-number{position:static;font-size:8px;font-weight:500;color:#a1adc1;letter-spacing:.2px}
.mc-score{font-size:9px;font-weight:600;color:#a2a8bd;font-variant-numeric:tabular-nums}
.mc-has-score{color:#7660bf}
.mc-seat strong{display:block;max-width:100%;min-width:0;margin:0;align-self:center;font-size:clamp(7px,calc(94cqw / var(--mc-name-length,3)),16px);font-weight:600;line-height:1.25;text-align:center;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc-rose{background:#fcf2f6;border-color:#eedee6;color:#795c70}
.mc-shell .mc-empty{opacity:1;background:#fafbfc;border:1px dashed #e8ebf1;color:#c2c7d2}.mc-empty .mc-number{color:#c8cdda}.mc-empty strong{font-weight:400;font-size:9px}
.mc-pressing{box-shadow:inset 0 0 0 2px #9a88d4;background:#f0ebfc}
.mc-footer{height:34px;flex-shrink:0;display:flex;align-items:center;gap:12px;padding:2px 14px 5px;font-size:10px;color:#8f98ac}
#mcFeedback{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc-footer button{height:27px;font-size:10px;color:#8879b3;border-color:#e8e4f2;padding:0 10px}
.mc-footer small{font-size:9px;max-width:34%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#a4acbb}
.mc-menu{position:absolute;right:14px;top:56px;z-index:5;background:#fff;padding:6px;border:1px solid #e6e2f1;box-shadow:0 10px 30px #273b6418;border-radius:12px;min-width:155px}
.mc-menu button{display:block;width:100%;text-align:left;border:0;background:#fff;color:#65708a;padding:13px;border-radius:7px;min-height:42px}.mc-menu button:hover{background:#f6f3fc}
.mc-rotate{display:none}
.mc-dialog{width:min(340px,calc(100% - 36px));max-height:calc(100dvh - 24px);overflow:auto;border:1px solid #e5e1f2;border-radius:18px;padding:20px;color:#29354c;box-shadow:0 20px 90px #20234235;-webkit-text-size-adjust:100%;text-size-adjust:100%}
.mc-dialog::backdrop{background:#1b224650;backdrop-filter:blur(3px)}
.mc-dialog header{display:flex;align-items:center;justify-content:space-between}.mc-dialog header p{font-size:11px;color:#949aaf;margin:0 0 6px}.mc-dialog h2{font-size:21px;margin:0}.mc-dialog header button{border:0;border-radius:50%;background:#f4f5f9;width:34px;height:34px;color:#858ba0;font-size:24px}
.mc-dialog p{font-size:12px;color:#8a91a4;margin:16px 0 12px}.mc-options{display:flex;gap:12px}.mc-options button{flex:1;display:grid;gap:5px;justify-items:center;padding:14px;border-radius:12px;background:#f2effb;color:#7763c9;border:1px solid #e3ddf5;font-size:12px}.mc-options button:last-child{background:#7763c9;color:#fff;border-color:#7763c9}.mc-options strong{font-size:32px}.mc-dialog small{display:block;font-size:10px;color:#a2a8b7;text-align:center;margin-top:16px}
.mc-room[data-podium=right]{flex-direction:row-reverse}.mc-room[data-podium=top]{flex-direction:column}.mc-room[data-podium=bottom]{flex-direction:column-reverse}.mc-room[data-podium=top] .mc-podium,.mc-room[data-podium=bottom] .mc-podium{writing-mode:horizontal-tb;flex-basis:20px;width:30%;height:auto;min-height:20px;letter-spacing:5px}
.mobile-classroom .modal{z-index:100}.mobile-classroom .modal .dialog{max-height:94dvh;overflow:auto}.mobile-classroom .toast{z-index:200}
@container mc-view (max-width:740px){
 #mcLive{display:none}.mc-icon{display:none}.mc-header{padding:6px 10px;min-height:48px}.mc-actions button{padding:0 10px}.mc-class select{font-size:16px;width:33cqw}.mc-class p{font-size:8px;max-width:38cqw}.mc-map{margin:6px 8px 2px;padding:6px 8px}.mc-room{gap:6px}.mc-podium{flex-basis:20px}.mc-seats{gap:4px 3px}.mc-seat{padding:3px 2px 4px;grid-template-rows:10px minmax(0,1fr);border-radius:5px}.mc-seat-meta{height:10px}.mc-number{font-size:7px}.mc-score{font-size:8px}.mc-footer small{display:none}
}
@container mc-view (max-height:340px){
 .mc-header{min-height:44px;padding-block:4px}.mc-class p{display:none}.mc-map{margin-block:4px 2px;padding-block:5px}.mc-heading{font-size:10px;margin-bottom:0}.mc-direction{height:12px;font-size:7px}.mc-seat{grid-template-rows:9px minmax(0,1fr);padding-block:2px}.mc-seat-meta{height:9px}.mc-footer{height:28px;padding-bottom:2px}.mc-footer button{height:24px}.mc-heading>span{font-size:9px}
}
@container mc-view (min-width:900px) and (min-height:550px){
 .mc-header{min-height:76px;padding:12px 24px}.mc-class{gap:14px}.mc-icon{height:42px;width:42px;border-radius:13px}.mc-icon svg{height:25px;width:25px}.mc-class select{font-size:18px;height:35px;width:260px}.mc-class p{font-size:11px;margin-top:4px}.mc-actions{gap:10px}.mc-actions button{height:42px;font-size:13px;padding-inline:16px}#mcMore{width:42px}#mcLive{font-size:12px}.mc-map{margin:18px 24px 8px;padding:18px 20px;border-radius:18px}.mc-heading{font-size:15px;margin-bottom:12px}.mc-heading>span{font-size:12px}.mc-room{gap:18px}.mc-seats{gap:12px 7px}.mc-direction{height:28px;font-size:9px}.mc-podium{flex-basis:36px;font-size:13px}.mc-seat{border-radius:10px;padding:6px 3px 8px;grid-template-rows:14px minmax(0,1fr)}.mc-seat-meta{height:14px}.mc-number{font-size:10px}.mc-score{font-size:12px}.mc-footer{height:48px;padding:4px 25px 10px;font-size:12px}.mc-footer button{height:34px;font-size:12px}.mc-footer small{font-size:11px}.mc-menu{top:70px;right:24px}
}
@container mc-view (min-width:600px) and (min-height:800px) and (max-aspect-ratio:1/1){
 .mc-header{min-height:72px;padding:12px 18px}.mc-map{margin:20px 18px 10px;max-height:74cqw;flex:1;padding:16px;align-self:stretch}.mc-heading{margin-bottom:10px}.mc-footer{margin-top:auto;height:46px;padding-inline:20px}.mc-seat{padding:5px 2px 7px;border-radius:8px}.mc-seats{gap:10px 5px}
}
@media(orientation:portrait){
 .mobile-classroom.mc-rotated .mc-shell{left:calc(var(--mc-view-left,0px) + var(--mc-view-width,100vw));top:var(--mc-view-top,0px);width:var(--mc-view-height,100dvh);height:var(--mc-view-width,100vw);transform:rotate(90deg);transform-origin:top left;padding:env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left) env(safe-area-inset-top)}
 .mobile-classroom.mc-rotated .mc-rotate{display:none}
}
@container mc-view (max-width:599px) and (min-height:450px){
 .mc-rotate{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#f5f6fb;padding:28px;z-index:6}.mc-rotate>span{font-size:56px;color:#9382cb;margin-bottom:22px}.mc-rotate h2{font-size:22px;line-height:1.5;max-width:270px;margin:16px 0 8px}.mc-rotate p{font-size:13px;color:#929bae;line-height:2}.mc-rotate button{margin:10px 0}
}
@media(prefers-reduced-motion:no-preference){.mc-seat{transition:background .12s,border-color .12s}}

.mc-actions #mcLadder{color:#79613b;background:#fff9ed;border-color:#eee0c2}
@container mc-view (max-width:740px){.mc-class select{width:min(29cqw,190px)}.mc-actions{gap:5px}.mc-actions button{padding-inline:8px}#mcFullscreen span{display:none}}
/* 课堂分组：列表与座位图使用同一方案、颜色和积分。 */
.mc-shell [hidden]{display:none!important}.mc-view-switch{display:flex;gap:2px;padding:3px;border-radius:8px;background:#f0edf8}.mc-view-switch button{border:0;border-radius:6px;background:transparent;color:#9990ac;padding:5px 15px;font-size:11px;min-height:28px}.mc-view-switch button[aria-pressed=true]{background:white;color:#7960c2;font-weight:650;box-shadow:0 1px 4px #4c3b6e12}.mc-group-legend{display:flex;gap:12px;overflow:auto;flex-shrink:0;padding:2px 2px 5px;min-height:0;font-size:8px;color:#9599ab;white-space:nowrap}.mc-group-legend span{display:flex;align-items:center;gap:4px}.mc-group-legend i{width:5px;height:5px;border-radius:50%;background:var(--mc-group-color);flex-shrink:0}
.mc-grouped .mc-room{max-height:none}.mc-grouped .mc-seats{position:relative;row-gap:0;column-gap:7px;padding:18px 4px}.mc-grouped .mc-seat{grid-template-rows:8px minmax(0,1fr);padding:2px;gap:0}.mc-grouped .mc-seat-meta{height:8px}.mc-grouped .mc-seat strong{line-height:1.1}.mc-grouped .mc-seat[style*="--mc-group-color"]{border-color:color-mix(in srgb,var(--mc-group-color) 30%,white);background:color-mix(in srgb,var(--mc-group-color) 6%,white)}.mc-frame-layer{position:absolute;inset:0;pointer-events:none;z-index:1}.mc-group-frame{position:absolute;border:1.5px solid var(--mc-group-color);border-radius:7px;pointer-events:none}.mc-frame-label{position:absolute;left:50%;transform:translateX(-50%);max-width:calc(100% + 3px);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;padding:0 4px;border-radius:4px;border:1px solid color-mix(in srgb,var(--mc-group-color) 30%,white);background:white;color:var(--mc-group-color);font-size:9px;line-height:13px;font-weight:600}.mc-label-above .mc-frame-label{bottom:calc(100% + 2px)}.mc-label-below .mc-frame-label{top:calc(100% + 2px)}
.mc-groups{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:2px}.mc-group-note{font-size:10px;color:#a09aaa;margin:3px 0 10px}.mc-group-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mc-group-card{display:flex;flex-direction:column;gap:10px;min-width:0;padding:12px;text-align:left;border:1px solid color-mix(in srgb,var(--mc-group-color) 20%,white);border-top:3px solid var(--mc-group-color);border-radius:11px;background:linear-gradient(135deg,color-mix(in srgb,var(--mc-group-color) 7%,white),white);color:#39445c;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:pan-y!important}.mc-group-head{display:flex;align-items:center;gap:9px;min-width:0}.mc-group-number{display:grid;place-items:center;width:28px;height:28px;flex-shrink:0;border-radius:8px;background:color-mix(in srgb,var(--mc-group-color) 9%,white);color:var(--mc-group-color);font-size:10px}.mc-group-head>div{min-width:0;flex:1}.mc-group-head strong{font-size:14px;display:block;overflow-wrap:anywhere}.mc-group-head small{font-size:9px;color:#a0a0ae;font-weight:400;display:block;margin-top:4px}.mc-group-head>b{font-size:25px;line-height:1;color:var(--mc-group-color);text-align:right;flex-shrink:0}.mc-group-members{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;font-size:10px;color:#8b93a3}.mc-group-members>span{overflow-wrap:anywhere;min-width:0}.mc-group-members .mc-leader{color:var(--mc-group-color);font-weight:600}.mc-leader i{font-size:7px;font-style:normal;margin-left:2px;background:color-mix(in srgb,var(--mc-group-color) 9%,white);padding:1px 2px;border-radius:3px}.mc-group-foot{display:flex;justify-content:space-between;gap:6px;font-size:8px;color:#a2a6b3;padding-top:7px;border-top:1px solid #eceaf2}.mc-group-foot>span:last-child{color:var(--mc-group-color);white-space:nowrap}.mc-no-groups{text-align:center;padding:40px 16px;color:#9489a5;font-size:13px}.mc-no-groups p{font-size:11px;line-height:1.8;color:#a5a0af}.mc-group-card.mc-pressing{box-shadow:inset 0 0 0 2px var(--mc-group-color)}
@container mc-view (max-width:740px){.mc-grouped .mc-seats{column-gap:5px}.mc-view-switch button{padding:3px 12px;min-height:24px}.mc-group-legend{font-size:7px;padding-bottom:3px}.mc-group-card{padding:10px;gap:8px}.mc-group-head strong{font-size:13px}.mc-group-foot{flex-wrap:wrap}.mc-group-note{font-size:9px}.mc-grouped .mc-number{font-size:6px}.mc-grouped .mc-score{font-size:7px}}
@container mc-view (max-height:340px){.mc-grouped .mc-seats{padding-block:16px}.mc-grouped .mc-direction{display:none}.mc-group-legend{display:none}.mc-grouped .mc-seat{grid-template-rows:7px minmax(0,1fr);padding:1px 2px}.mc-grouped .mc-seat-meta{height:7px}}
@container mc-view (min-width:900px) and (min-height:550px){.mc-group-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.mc-group-card{padding:18px;gap:15px}.mc-group-head strong{font-size:17px}.mc-group-head>b{font-size:30px}.mc-group-members{font-size:12px;gap:10px 6px}.mc-group-head small{font-size:10px}.mc-group-foot{font-size:9px}.mc-group-legend{font-size:10px;gap:16px;padding-bottom:9px}.mc-view-switch button{font-size:13px;padding:7px 22px}.mc-frame-label{font-size:11px;line-height:16px}.mc-grouped .mc-seats{padding-block:22px;column-gap:9px}.mc-grouped .mc-seat{grid-template-rows:13px minmax(0,1fr);padding:5px 3px}.mc-grouped .mc-seat-meta{height:13px}}

.mc-grouped .mc-seat strong{font-size:clamp(7px,calc(94cqw / var(--mc-name-length,3)),14px)}

/* 弱网状态在手机紧凑页脚也可见，正常连接沿用简洁布局。 */
.mc-footer #mcConnection[data-state="offline"],.mc-footer #mcConnection[data-state="reconnecting"]{display:inline;flex-shrink:0;max-width:38%;color:#a96131}
