.app-toast[data-v-85847133]{z-index:9999;cursor:pointer;border:2px solid var(--line,#b9dcb4);background:var(--panel,#fff);max-width:min(92vw,28rem);color:var(--text,#1d2b1d);border-radius:10px;padding:12px 16px;font-size:15px;line-height:1.45;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 4px 20px #00000026}.app-toast.error[data-v-85847133]{color:#5c1010;background:#ffebee;border-color:#c62828}.top-bar-trigger{z-index:999;cursor:pointer;background:#7ab87a73;border:none;border-radius:0 0 8px 8px;width:80px;height:12px;padding:0;transition:background .2s,height .2s;display:block;position:fixed;top:0;left:50%;transform:translate(-50%)}.top-bar-trigger:hover,.top-bar-trigger:active{background:#7ab87ab3;height:16px}.top-bar-trigger:after{content:"";background:#fffc;border-radius:2px;width:24px;height:4px;position:absolute;top:3px;left:50%;transform:translate(-50%)}:root{--primary:#bfe6ba;--bg:#f6fbf5;--panel:#fff;--line:#b9dcb4;--text:#1d2b1d;--muted:#607060}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif}#app{height:100vh}.loading{place-items:center;height:100%;display:grid}.classroom-page{grid-template-rows:1fr;grid-template-columns:1fr minmax(220px,300px);gap:6px;height:100%;padding:6px;display:grid}.panel-overlay{z-index:500;background:#00000040;display:none;position:fixed;inset:0}.panel-overlay.open{display:block}.classroom-page>*{min-height:0}.top-bar{z-index:1000;opacity:0;pointer-events:none;background:#f6fbf5f7;border-bottom:1px solid #cde7ca;border-radius:0 0 10px 10px;flex-wrap:wrap;gap:6px;padding:8px 12px;transition:transform .25s,opacity .25s;display:flex;position:fixed;top:0;left:0;right:0;transform:translateY(-100%);box-shadow:0 4px 12px #0000001f}.top-bar.open{opacity:1;pointer-events:auto;transform:translateY(0)}.top-box{background:#fcfffb;border:1px solid #cde7ca;border-radius:8px;align-items:center;gap:10px;min-height:48px;padding:8px 12px;display:flex}.top-box strong{letter-spacing:.06em}.mode-box{justify-content:space-between}.mode-box .label{color:var(--muted);font-size:12px}.status-box{justify-content:space-between}.top-bar button{border-radius:8px;min-height:32px;font-size:13px}.top-box .ghost{color:var(--text);background:#eef8ec;border:1px solid #cde7ca;text-decoration:none}.top-box .ghost:hover{background:#e3f2e0}.top-box button:focus-visible{outline:none;box-shadow:inset 0 0 0 2px #8dbc87}.top-bar .ws-pill{color:var(--muted);font-size:12px}button.ghost{background:0 0;border-color:#0000;padding:4px 6px;text-decoration:underline}.top-bar-overlay{z-index:999;display:none!important}.top-bar-overlay.open{display:block!important}.panel-toggle-group{align-items:center;gap:2px;display:none}.panel-toggle{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;line-height:1;transition:background .15s,border-color .15s;display:inline-flex}.panel-toggle:hover{background:#eef8ec;border-color:#cde7ca}.panel-toggle.active{background:#d9f0d6;border-color:#7eb078}.teaching-area{grid-area:1/1}.toolbar-area{grid-area:2/2}.login-page{background:var(--panel);border:2px solid var(--line);border-radius:12px;max-width:520px;margin:48px auto;padding:24px}.login-page h1{margin-top:0}.login-actions{gap:12px;margin:20px 0;display:flex}.muted{color:var(--muted)}.muted.small{margin:0 0 8px;font-size:12px}.hint{color:var(--muted);font-size:12px}.mode-readonly{margin:0;font-size:14px}.mode-status{color:var(--muted);margin:6px 0 0;font-size:13px}.moves{word-break:break-all;margin:10px 0 0;font-size:14px}.tool-list.disabled{opacity:.5;pointer-events:none}.teaching-area,.toolbar-area,.right-panel .stage-area,.right-panel .roster-area,.right-panel .chat-area,.right-area>.chat-area{background:var(--panel);border:2px solid var(--line);border-radius:10px}.teaching-area{flex-direction:column;min-height:0;padding:12px;display:flex}.teaching-area header{justify-content:space-between;align-items:center;min-height:40px;display:flex}.teaching-area header h2{margin:0}button{color:var(--text);cursor:pointer;background:#eef8ec;border:1px solid #9fcd98;border-radius:8px;padding:6px 10px}button.active{background:var(--primary)}.mode-switch button+button{margin-left:8px}.teaching-canvas{background:linear-gradient(#f8fdf8,#eaf7e7);border:1px dashed #9fc598;border-radius:8px;flex:1;place-items:center;min-height:0;margin-top:10px;display:grid}.whiteboard-placeholder{color:#2f4f2f;text-align:center;font-size:24px}.whiteboard-placeholder p{margin:0}.whiteboard-placeholder small{color:var(--muted);font-size:13px}.chessboard-panel{flex-direction:column;width:100%;min-width:0;max-width:100%;height:100%;min-height:0;padding:8px;display:flex}.chess-workbench{justify-content:center;align-items:center;width:100%;min-width:0;height:100%;min-height:0;display:flex;container-type:size}.chessboard-grid{aspect-ratio:1;border:2px solid #7f9f7a;border-radius:6px;grid-template-rows:repeat(8,minmax(0,1fr));grid-template-columns:repeat(8,1fr);width:min(100cqh,100%);min-width:0;max-width:100%;height:min(100cqh,100%);max-height:100%;display:grid;position:relative;overflow:visible}.chess-mask-canvas{z-index:5;pointer-events:none;touch-action:none;width:100%;height:100%;position:absolute;inset:0}.chess-mask-canvas.interactive{pointer-events:auto;cursor:crosshair}.square{color:#1b1b1b;background:#f0d9b5;border:none;border-radius:0;outline:none;place-items:center;width:100%;height:100%;min-height:0;padding:0;display:grid;position:relative;overflow:hidden}.square.dark{background:#b58863}.square:focus-visible{box-shadow:inset 0 0 0 2px #5fa458}.square.selected{box-shadow:inset 0 0 0 4px #2f7d32}.square.readonly{cursor:default}.square.move-hint-quiet:after{content:"";pointer-events:none;z-index:1;background:#ffffff8c;border-radius:50%;width:min(28%,22px);height:min(28%,22px);position:absolute;box-shadow:0 0 0 2px #2f7d328c}.square.move-hint-capture:after{content:"";box-sizing:border-box;pointer-events:none;z-index:3;border:3px solid #2f7d32e6;border-radius:6px;position:absolute;inset:8%}.square .piece{pointer-events:none;z-index:2;place-items:center;font-size:clamp(34px,5.8vw,58px);line-height:1;display:grid;position:absolute;inset:0}.square .coord{color:#1e1e1ebf;z-index:4;font-size:10px;position:absolute;bottom:2px;right:3px}.chess-error{color:#a23636;margin:8px 0 0;font-size:13px}.toolbar-area{flex-direction:column;padding:10px 2px;display:flex}.toolbar-area h3{writing-mode:vertical-rl;letter-spacing:2px;margin:0 auto 8px}.toolbar-sections{gap:10px;display:grid}.toolbar-special{border:1px solid #d5e9d2;border-radius:8px;gap:6px;padding:6px 4px;display:grid}.toolbar-drawing{border:1px solid #d5e9d2;border-radius:8px;gap:6px;padding:6px;display:grid}.toolbar-special.disabled,.toolbar-drawing.disabled{opacity:.55}.section-title{color:var(--muted);text-align:center;margin:0;font-size:12px}.tool-list{gap:6px;display:grid}.tool-list button{padding:8px}.toolbar-special button{width:100%;padding:8px 4px;font-size:12px}.toolbar-special button.active{background:#d9f0d6;border-color:#7eb078}.mask-action-row{gap:4px;display:flex}.mask-action-row button{flex:1;min-width:0}.tray-piece{white-space:nowrap;background:#eef8ec;border:1px solid #b8d9b3;border-radius:4px;min-height:32px;padding:2px 6px;font-size:14px;font-weight:600}.tray-piece.active{background:#d9f0d6;border-color:#7eb078}svg{width:16px;height:16px}.color-picker{margin-top:10px;font-size:12px;display:block}.color-picker input{width:100%;margin-top:4px}.right-area{flex-direction:column;grid-area:1/2;gap:8px;min-height:0;display:flex}.right-area.full-height>.chat-area{display:none}.right-panel{flex:1;grid-template-rows:auto minmax(0,1fr);gap:8px;min-height:0;display:grid}.right-area>.chat-area{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.right-panel-tabs{flex-shrink:0;gap:2px;padding:2px 4px;display:flex}.right-panel-tab{cursor:pointer;text-align:center;white-space:nowrap;background:#f5fbf5;border:1px solid #cde7ca;border-radius:5px;flex:1;min-height:26px;padding:3px 4px;font-size:11px;line-height:1.2}.right-panel-tab.active{background:#d9f0d6;border-color:#7eb078;font-weight:600}.right-panel-content{flex-direction:column;flex:1;min-height:0;display:flex}.right-panel-content>.stage-area,.right-panel-content>.roster-area{flex:1;min-height:0;display:none}.right-panel-content>.active{flex-direction:column;flex:1;min-height:0;display:flex}.stage-area,.avatar-area,.chat-area{min-height:0;padding:4px}.chat-area{flex-direction:column;min-height:0;padding:4px;display:flex;overflow:hidden}.roster-area{padding:2px}.roster-grid{grid-template-columns:repeat(2,1fr);gap:3px}.roster-card{min-height:56px;padding:4px 4px 28px}.roster-name{font-size:10px}.roster-icons n-icon{font-size:12px!important}.act-btn{width:20px;height:20px}.act-btn.reset-btn{width:auto;padding:0 3px}.act-label{font-size:9px}.roster-video{width:32px;min-width:28px;max-width:40px}.stage-videos{gap:4px}.stage-videos.single-user .stage-video-card{flex:0 80%;max-width:80%}.video-mock{aspect-ratio:4/3}.video-mock-name{font-size:11px}.stage-toggles{gap:2px;padding:3px 2px 0}.toggle-btn{min-height:28px;padding:4px;font-size:10px}.chess-turn-bar{padding:2px 4px;font-size:10px}.chat-area h3{margin:0 0 8px}.video-mock{aspect-ratio:4/3;text-align:center;background:#f3fbf2;border:1px dashed #94bd8d;border-radius:8px;place-items:center;padding:8px;display:grid}.video-mock p{color:var(--muted);margin:0}.video-mock small{color:var(--muted)}.chat-list{background:#f9fef8;border:1px solid #d8ecd5;border-radius:6px;flex:1;min-height:0;padding:4px;overflow:auto}.chat-list p{margin:2px 0;font-size:11px}.chat-list .system{color:var(--muted)}.chat-input{flex-shrink:0;gap:4px;margin-top:4px;display:flex}.chat-input input{border:1px solid #b8ddb2;border-radius:6px;flex:1;padding:4px 6px;font-size:12px}.chat-input button{padding:4px 8px;font-size:11px}@media (orientation:landscape) and (width<=780px){.classroom-page{grid-template-columns:1fr minmax(130px,160px);gap:4px;padding:4px}.right-panel-tab{min-height:26px;padding:4px 2px;font-size:10px}.roster-grid{grid-template-columns:1fr}.video-mock{aspect-ratio:1}.teaching-area{padding:4px}.teaching-area header h2{font-size:12px}}
