*{box-sizing:border-box}:root{--bg: #f5f6f8;--panel: #ffffff;--text: #1f2937;--muted: #6b7280;--primary: #2563eb;--primary-dark: #1d4ed8;--danger: #dc2626;--ok: #16a34a;--border: #e5e7eb}html,body,#root{margin:0;padding:0;height:100%}body{font-family:Hiragino Kaku Gothic ProN,Yu Gothic UI,Meiryo,system-ui,sans-serif;background:var(--bg);color:var(--text)}h1{font-size:1.4rem;margin:0 0 12px}.page-center{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000000f}.auth-card{width:min(400px,92vw)}.form{display:flex;flex-direction:column;gap:14px}.form label{display:flex;flex-direction:column;gap:4px;font-size:.9rem;color:var(--muted)}input,select,textarea{font:inherit;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text)}input:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:-1px}.btn{font:inherit;padding:10px 16px;border-radius:8px;border:1px solid var(--border);background:#fff;color:var(--text);cursor:pointer;transition:background .15s}.btn:hover{background:#f3f4f6}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover:not(:disabled){background:var(--primary-dark)}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.error{color:var(--danger);font-size:.9rem;margin:0}.muted{color:var(--muted);font-size:.88rem}.app-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap}.app-header h1{font-size:1.1rem;margin:0}.header-left,.header-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.btn.header-action{min-width:112px;padding:8px 12px;text-align:center}.nowrap{white-space:nowrap}.teach .app-header{flex-wrap:nowrap}.teach .header-left{flex-shrink:1;min-width:0;flex-wrap:nowrap}.teach .header-left h1{min-width:40px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teach .header-left .header-action{flex-shrink:0}.header-scroll{min-width:0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin}.header-scroll>*{flex-shrink:0}.chip{font-size:.75rem;padding:2px 10px;border-radius:999px;border:1px solid var(--border);background:#f3f4f6}.chip-live{background:#dcfce7;border-color:#86efac;color:#166534}.chip-draft{background:#fef9c3;border-color:#fde047;color:#854d0e}.chip-ended{background:#e5e7eb;color:#374151}.chip-name{background:transparent;border-color:var(--border);color:var(--muted);font-size:.72rem}.join-resume{border:1px solid var(--border);border-radius:8px;background:#f9fafb;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.join-resume p{margin:0;font-size:.85rem;line-height:1.5}.chip-offline{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.chip-queued{background:#ffedd5;border-color:#fdba74;color:#9a3412}.chip-blank{margin-left:6px;background:#e0e7ff;border-color:#a5b4fc;color:#3730a3}.inline-code{font-family:ui-monospace,Consolas,monospace;font-size:1.05rem;letter-spacing:.12em;background:#eef2ff;padding:2px 8px;border-radius:6px}.rec-on{color:var(--danger);font-weight:600;font-size:.85rem}.rec-off{color:var(--muted);font-size:.85rem}.dashboard-main{max-width:1000px;margin:0 auto;padding:20px 16px}.dashboard-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.dashboard-toolbar h2{margin:0;font-size:1.15rem}.create-form{margin-bottom:18px}.pdf-file-list{display:flex;flex-direction:column;gap:4px;margin-top:6px}.pdf-file-row{display:flex;align-items:center;gap:6px;padding:4px 8px;border:1px solid var(--border);border-radius:6px;background:#fff}.pdf-file-row .btn{padding:2px 8px;font-size:.8rem}.pdf-file-order{min-width:20px;text-align:center;font-weight:600;color:var(--muted)}.pdf-file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem}.create-form h3{margin:0 0 10px}.pdf-picker{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.pdf-picker>span{font-size:.9rem}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.lesson-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.lesson-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.join-code{font-family:ui-monospace,Consolas,monospace;font-size:1.7rem;letter-spacing:.25em;text-align:center;background:#eef2ff;border-radius:8px;padding:8px;margin:10px 0}.lesson-card-actions{display:flex;gap:8px}.lesson-card-actions .btn{text-decoration:none;display:inline-block}.lesson-delete{margin-left:auto;color:var(--muted)}.lesson-delete:hover{color:var(--danger)}.lesson-delete-confirm p{font-size:.85rem;line-height:1.6;margin:0 0 10px}.teach{display:flex;flex-direction:column;height:100vh}.teach-main{flex:1;display:grid;grid-template-columns:1fr 320px;gap:12px;padding:12px;min-height:0}.slide-area{display:flex;flex-direction:column;gap:8px;min-width:0;min-height:0}.toolbar{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;padding-bottom:2px}.toolbar>*{flex-shrink:0}.btn.tool{min-width:72px;padding:6px 8px;font-size:.85rem;text-align:center;white-space:nowrap}.tool-active{background:var(--primary)!important;border-color:var(--primary)!important;color:#fff}.toolbar-sep{width:1px;height:24px;background:var(--border);margin:0 4px}.color-swatch{width:26px;height:26px;border-radius:50%;border:2px solid #fff;outline:1px solid var(--border);cursor:pointer;padding:0}.color-active{outline:3px solid var(--primary)}.slide-container{flex:1;min-height:0;min-width:0;display:flex;align-items:center;justify-content:center;background:#1f2937;border-radius:10px;overflow:hidden}.slide-frame{position:relative;background:#fff;box-shadow:0 2px 12px #0006}.slide-frame canvas{position:absolute;top:0;right:0;bottom:0;left:0;display:block}.slide-overlay{z-index:2}.slide-pointer{z-index:3;pointer-events:none}.text-annotation-editor{position:absolute;z-index:4;margin:0;padding:0;background:transparent;border:1px dashed rgba(0,0,0,.45);border-radius:2px;outline:none;resize:none;overflow:hidden;white-space:pre}.size-slider{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--muted)}.size-slider input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:110px;height:18px;margin:0;background:transparent;cursor:pointer}.size-slider input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:var(--border)}.size-slider input[type=range]::-moz-range-track{height:4px;border-radius:2px;background:var(--border)}.size-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;margin-top:-5px;border:none;border-radius:50%;background:var(--primary)}.size-slider input[type=range]::-moz-range-thumb{width:14px;height:14px;border:none;border-radius:50%;background:var(--primary)}.size-preview{width:22px;height:22px;display:flex;align-items:center;justify-content:center}.size-preview span{display:block;border-radius:50%}.slide-nav{display:flex;align-items:center;justify-content:flex-start;gap:12px;flex-wrap:wrap}.recent-reactions{margin-left:auto;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.recent-label{font-size:.8rem;font-weight:600;color:var(--muted);white-space:nowrap}.sidebar{display:flex;flex-direction:column;gap:12px;min-width:0;min-height:0;overflow-y:auto}.sidebar h3{margin:0 0 8px;font-size:.95rem}.feed-card{flex:1;width:100%;min-height:0;padding:16px;display:flex;flex-direction:column}.small{font-size:.78rem;font-weight:400}.feed-time{color:var(--muted);font-family:ui-monospace,monospace;font-size:.75rem}.feed-name{font-weight:600;white-space:nowrap}.feed-body{word-break:break-word}.suggestion{margin:6px 0 0;background:#fff;border-radius:8px;padding:8px 10px;font-size:.9rem}.insight-list{flex:1;overflow-y:auto;min-height:0;display:flex;flex-direction:column;gap:10px}.insight-card{border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:8px;padding:8px 10px;background:#f9fafb;display:flex;flex-direction:column;gap:6px}.insight-comment{font-size:.85rem}.insight-comment .feed-time{margin-right:6px}.insight-comment-body{margin-top:2px}.insight-comment-body .feed-body{min-width:0}.insight-card-header{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.insight-card-header .insight-slide,.insight-card-type{margin:0}.insight-card-type{flex:0 0 auto}.insight-comment+.insight-comment{border-top:1px dashed var(--border);padding-top:6px}.insight-status{margin:0}.insight-sec{font-size:.85rem}.insight-detail-row{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:start;gap:7px;font-size:.85rem}.insight-detail-row .point-label,.insight-detail-row .point-text{margin-top:0}.insight-more{font-size:.78rem;color:var(--muted)}.insight-more summary{cursor:pointer;width:fit-content}.insight-more .clip-kinds{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.slide-thumb{display:block;border:1px solid var(--border);border-radius:6px;background:#fff}.point-label{display:inline-block;margin-right:6px;margin-bottom:3px;padding:1px 8px;border-radius:6px;background:#e5e7eb;color:#374151;font-size:.75rem;font-weight:600}.point-text{margin:2px 0 0;font-size:.88rem;white-space:pre-wrap;word-break:break-word}.chapter-excluded{opacity:.55}.chapter-title{width:100%;margin:4px 0;padding:6px 8px;border:1px solid var(--border);border-radius:6px;font:inherit;font-weight:600}.chapter-actions{display:flex;align-items:center;gap:8px;margin-top:6px}.chapter-include{display:flex;align-items:center;gap:4px;font-size:.85rem;margin-right:auto}.chapter-actions{flex-wrap:wrap}.chapter-trim{border-top:1px dashed var(--border);padding-top:6px}.chapter-trim .btn{padding:2px 8px;font-size:.8rem}.chapter-field{display:block;margin-top:6px}.chapter-textarea{width:100%;margin-top:2px;padding:6px 8px;border:1px solid var(--border);border-radius:6px;font:inherit;font-size:.88rem;resize:vertical}.chapter-slides{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.slide-thumb{position:relative;display:block;padding:0;border:1px solid var(--border);border-radius:4px;background:#fff;overflow:hidden;line-height:0}button.slide-thumb{cursor:pointer}button.slide-thumb:hover{border-color:var(--primary)}.slide-thumb-canvas{display:block;width:108px;height:auto}.slide-thumb-placeholder{display:block;width:108px;aspect-ratio:16 / 9;background:#f3f4f6}.slide-thumb-selected{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 22%,transparent)}.slide-picker-help{margin:0 0 10px}.slide-picker-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.slide-picker-grid .slide-thumb,.slide-picker-grid .slide-thumb-canvas,.slide-picker-grid .slide-thumb-placeholder{width:100%}.ai-settings-panel>p:first-child{margin-top:0}.ai-settings-list{display:flex;flex-direction:column;gap:8px}.ai-setting-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:9px;padding:9px;border:1px solid var(--border);border-radius:8px;background:#fff}.ai-setting-row>input{margin-top:3px}.ai-setting-row>span,.ai-setting-row>span>span,.ai-setting-row small{display:block}.ai-setting-row>span>span{margin-top:2px;font-size:.84rem}.ai-setting-row small{margin-top:3px;color:var(--muted)}@media(max-width:760px){.slide-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.slide-thumb-no{position:absolute;right:0;bottom:0;padding:0 4px;background:#1f2937bf;color:#fff;font-size:.7rem;line-height:1.4}.slide-controls{display:flex;flex-wrap:wrap;gap:12px}.slide-controls label{display:flex;align-items:center;gap:4px;font-size:.85rem}.slide-controls select{padding:4px 6px;border:1px solid var(--border);border-radius:6px;font:inherit;font-size:.85rem}.slide-row{display:flex;gap:10px;align-items:flex-start}.slide-row-body{flex:1;min-width:0}.slide-chapters{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.slide-chapter-pill{padding:1px 6px;border:1px solid var(--border);border-radius:999px;font-size:.75rem;color:var(--muted)}.watch-note{margin:8px 0 0;padding:8px 10px;border-left:3px solid var(--primary);background:var(--panel);border-radius:0 6px 6px 0;font-size:.9rem;white-space:pre-wrap}.watch-url{flex:1;min-width:0;overflow-wrap:anywhere;font-size:.8rem}.watch{display:flex;flex-direction:column;height:100vh;height:100dvh}.watch-main{flex:1;display:grid;grid-template-columns:1fr 300px;gap:12px;padding:12px;min-height:0}.watch-player{display:flex;flex-direction:column;gap:8px;min-width:0;min-height:0}.watch-chapters{display:flex;flex-direction:column;gap:6px;overflow-y:auto;min-height:0}.watch-chapters h3{margin:0 0 4px;font-size:.95rem}.watch-chapter{display:flex;flex-direction:column;gap:2px;text-align:left;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#fff;cursor:pointer;font:inherit}.watch-chapter:hover{background:#f9fafb}.watch-chapter-active{border-color:var(--primary);background:#eff6ff}.watch-chapter-head{display:flex;flex-direction:column;gap:1px}.watch-chapter-desc{font-size:.82rem;color:var(--muted)}.watch-progress{position:absolute;left:0;bottom:0;height:3px;background:var(--primary);border-radius:2px;pointer-events:none}@media(max-width:860px){.watch-main{grid-template-columns:1fr;grid-template-rows:minmax(280px,1fr) auto;overflow-y:auto}}.screen-page{position:relative;height:100vh;height:100dvh;background:#000;display:flex;overflow:hidden}.screen-page .slide-container{flex:1;background:#000;border-radius:0}.screen-waiting{margin:auto;color:#e5e7eb;text-align:center}.screen-waiting h1{font-size:2rem}.screen-join{display:flex;align-items:center;justify-content:center;gap:40px;margin-top:28px}.screen-qr{width:min(40vh,360px);border-radius:12px}.screen-join-text{text-align:left}.screen-join-code{font-size:3rem;font-weight:700;letter-spacing:.12em;margin:8px 0}.screen-join-url{color:#9ca3af}.screen-join-live{position:absolute;left:3%;bottom:3%;z-index:25;padding:14px 16px;border-radius:12px;background:#111827eb;color:#f9fafb;text-align:center}.screen-join-live-raised{bottom:calc(3% + 96px)}.screen-join-live .screen-qr{width:min(26vh,220px)}.screen-join-live .screen-join-code{font-size:1.8rem;margin:6px 0 2px}.screen-join-live .screen-join-url{font-size:.85rem}.screen-stage{position:relative;flex:1;display:flex;min-width:0}.screen-main{flex:1;display:flex;min-width:0}.screen-sub{position:absolute;--pip-w: min(26vw, 460px);left:calc(2vw + (100% - 4vw - var(--pip-w)) * var(--pip-x, 1));top:calc(2vw + (100% - 4vw - var(--pip-w) * 9 / 16) * var(--pip-y, 1));width:var(--pip-w);aspect-ratio:16 / 9;display:flex;overflow:hidden;border-radius:8px;background:#000;box-shadow:0 6px 24px #0009}.screen-stage-outside{--outside-w: min(22vw, 400px);--outside-h: calc(var(--outside-w) * 9 / 16);--outside-gap-x: calc(var(--outside-w) + min(3vw, 48px));--outside-gap-y: calc(var(--outside-h) + min(3vw, 48px));display:block}.screen-stage-outside .screen-main{position:absolute;display:flex}.screen-stage-outside-left .screen-main{inset:0 0 0 var(--outside-gap-x)}.screen-stage-outside-right .screen-main{inset:0 var(--outside-gap-x) 0 0}.screen-stage-outside-top .screen-main{inset:var(--outside-gap-y) 0 0}.screen-stage-outside-bottom .screen-main{inset:0 0 var(--outside-gap-y)}.screen-outside-video{position:absolute;width:var(--outside-w);aspect-ratio:16 / 9;display:flex;overflow:hidden;border:2px solid rgba(255,255,255,.65);border-radius:8px;background:#000;box-shadow:0 6px 24px #0000008c}.screen-outside-video-left{left:min(1.5vw,24px);top:calc(min(1.5vw,24px) + (100% - var(--outside-h) - min(3vw,48px)) * var(--pip-y, .5))}.screen-outside-video-right{right:min(1.5vw,24px);top:calc(min(1.5vw,24px) + (100% - var(--outside-h) - min(3vw,48px)) * var(--pip-y, .5))}.screen-outside-video-top{top:min(1.5vw,24px);left:calc(min(1.5vw,24px) + (100% - var(--outside-w) - min(3vw,48px)) * var(--pip-x, .5))}.screen-outside-video-bottom{bottom:min(1.5vw,24px);left:calc(min(1.5vw,24px) + (100% - var(--outside-w) - min(3vw,48px)) * var(--pip-x, .5))}.screen-video{width:100%;height:100%;object-fit:contain;background:#000}.screen-hidden{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none}.screen-controls{position:absolute;left:50%;bottom:16px;transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:8px 14px;border-radius:999px;background:#111827d9;z-index:30;transition:opacity .3s,bottom .2s}.screen-controls-raised{bottom:calc(3% + 96px)}.screen-controls-hidden{opacity:0;pointer-events:none}.screen-volume{display:flex;align-items:center;gap:6px;color:#e5e7eb;font-size:.8rem}.classroom-card{display:flex;flex-direction:column;gap:10px}.classroom-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.classroom-head h3{margin:0}.classroom-sec{display:flex;flex-direction:column;gap:6px}.classroom-label{font-size:.8rem;font-weight:600;color:var(--muted)}.classroom-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.classroom-select{max-width:100%;padding:4px 6px}.classroom-check{display:flex;align-items:center;gap:6px;font-size:.85rem}.classroom-selfview{width:100%;aspect-ratio:16 / 9;object-fit:contain;border-radius:6px;background:#000}.participant-list{list-style:none;margin:6px 0 0;padding:0;max-height:220px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.participant-row{display:flex;align-items:center;gap:6px}.participant-name{flex:1;font-size:.85rem}.participant-name.offline{color:var(--muted)}.btn.small{padding:2px 8px;font-size:.78rem}.link-btn{align-self:flex-start;background:none;border:none;padding:0;color:var(--primary);text-decoration:underline;cursor:pointer;font-size:.8rem}.warn{color:#b45309}.chip-muted{background:#e5e7eb;color:#374151}.class-video{position:absolute;--pip-w: min(40vw, 260px);left:calc(14px + (100% - 28px - var(--pip-w)) * var(--pip-x, 1));top:calc(14px + (100% - 28px - var(--pip-w) * 9 / 16) * var(--pip-y, 1));width:var(--pip-w);aspect-ratio:16 / 9;overflow:hidden;border-radius:8px;background:#000;box-shadow:0 4px 16px #0006;cursor:grab;touch-action:none;z-index:5}.class-video:active{cursor:grabbing}.class-video-close{position:absolute;top:2px;right:2px;width:26px;height:26px;border:none;border-radius:6px;background:#0000008c;color:#fff;font-size:1rem;line-height:1;cursor:pointer}.class-video-el{width:100%;height:100%;object-fit:contain}.qr-url-row{display:flex;align-items:center;justify-content:center;gap:10px}.qr-url-row .qr-url{margin:0}.class-page{display:flex;flex-direction:column;height:100vh;height:100dvh}.class-main{position:relative;flex:1;min-height:0;min-width:0;padding:8px;display:flex;flex-direction:column}.class-main .page-center{min-height:0;flex:1}.reaction-bar{position:relative;background:var(--panel);border-top:1px solid var(--border);padding:10px 12px calc(10px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:8px}.flash{position:absolute;top:-34px;left:50%;transform:translate(-50%);background:#1f2937e6;color:#fff;font-size:.8rem;padding:5px 14px;border-radius:999px;white-space:nowrap}.reaction-buttons{display:flex;gap:10px}.reaction-btn{flex:1;font:inherit;font-size:1.05rem;font-weight:700;color:#fff;border:none;border-radius:12px;padding:14px 8px;cursor:pointer;transition:transform .06s}.reaction-btn:active{transform:scale(.96)}.reaction-btn:disabled{opacity:.4}.comment-row{display:flex;gap:8px}.comment-row input{flex:1}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182799;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.modal{background:var(--panel);border-radius:16px;padding:24px;box-shadow:0 10px 40px #0000004d;max-height:92vh;overflow-y:auto}.qr-modal{width:min(480px,94vw);text-align:center;display:flex;flex-direction:column;gap:8px;align-items:center}.qr-modal h2{margin:0;font-size:1.2rem}.qr-step{margin:4px 0 0;font-size:.9rem;color:var(--muted);align-self:flex-start}.qr-image{width:min(320px,70vw);height:auto;border:1px solid var(--border);border-radius:12px}.qr-url{margin:0;font-family:ui-monospace,Consolas,monospace;font-size:1.05rem;background:#eef2ff;padding:6px 12px;border-radius:8px;word-break:break-all}.qr-code-text{width:100%;font-size:2.2rem;margin:4px 0}.review{display:flex;flex-direction:column;height:100vh}.review-main{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:12px;padding:12px}.review-left{display:flex;flex-direction:column;gap:8px;min-width:0;min-height:0}.player{display:flex;align-items:center;gap:12px}.player-time{font-family:ui-monospace,monospace;white-space:nowrap}.scrubber{position:relative;flex:1;padding-bottom:10px}.scrubber input[type=range]{width:100%;padding:0}.scrubber-markers{position:absolute;left:0;right:0;bottom:0;height:10px}.cluster-marker{position:absolute;width:10px;height:10px;border-radius:50%;border:1px solid #fff;transform:translate(-50%);cursor:pointer;padding:0}.review-right{display:flex;flex-direction:column;min-height:0}.tabs{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}.btn.tab{flex:1 0 auto;white-space:nowrap;padding-left:10px;padding-right:10px}.tab-active{background:var(--primary)!important;border-color:var(--primary)!important;color:#fff}.panel-scroll{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:10px}.clip-card{padding:14px}.clip-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}.clip-kinds{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}.kind-pill{color:#fff;font-size:.78rem;font-weight:600;padding:2px 10px;border-radius:999px}.clip-names{margin:4px 0}.clip-comment{margin:4px 0;background:#eff6ff;border-radius:6px;padding:6px 8px;font-size:.88rem}.reaction-times{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:4px}.reaction-time{color:var(--muted);opacity:.75;font-size:.75rem;font-family:ui-monospace,monospace;white-space:nowrap}.clip-target{margin-top:6px;border-left:3px solid var(--border);padding-left:8px}.clip-transcript summary{cursor:pointer;color:var(--primary);font-size:.88rem}.summary-text{white-space:pre-wrap;word-break:break-word;font:inherit;background:#f9fafb;border-radius:8px;padding:10px;max-height:45vh;overflow-y:auto}.bar-chart{display:flex;align-items:flex-end;gap:2px;height:110px;overflow-x:auto;padding-bottom:4px}.bar-col{flex:1;min-width:8px;height:100%;display:flex;align-items:flex-end;cursor:pointer;background:#f3f4f6;border-radius:3px 3px 0 0}.bar-stack{width:100%;display:flex;flex-direction:column-reverse}.bar-chart.rate{height:80px}.student-row summary{cursor:pointer;padding:6px 0}.student-reaction{margin:2px 0 2px 18px;cursor:pointer}.student-reaction:hover{color:var(--primary)}@media(max-width:980px){.review-main{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}.review-right{min-width:0}}@media(max-width:860px){.teach-main{grid-template-columns:1fr;grid-template-rows:minmax(300px,1fr) 220px;overflow-y:auto}.sidebar{max-height:none;min-height:0}}.task-bar{border:1px solid var(--border);border-radius:12px;background:#f9fafb;overflow:hidden}.task-bar-new{border-color:var(--primary);box-shadow:0 0 0 2px #2563eb26}.task-row{display:flex;align-items:center;gap:8px;min-height:44px;padding:4px 8px}.task-dots{display:flex;align-items:center;gap:4px;flex-shrink:0}.task-dot{width:9px;height:9px;border-radius:50%;background:var(--border)}.task-dot.done{background:var(--ok)}.task-dot.current{width:20px;height:20px;background:#dbeafe;border:2px solid var(--primary);color:#1e3a8a;font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center}.task-label{flex:1;min-width:0;display:flex;align-items:center;gap:4px;font:inherit;font-size:.9rem;color:var(--text);background:none;border:none;padding:6px 2px;text-align:left;cursor:pointer}.task-label-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-caret{color:var(--muted);font-size:.7rem}.task-done-btn{flex-shrink:0;font:inherit;font-size:.95rem;font-weight:700;color:#fff;background:var(--ok);border:none;border-radius:10px;padding:9px 20px;cursor:pointer}.task-undo{flex-shrink:0;font:inherit;font-size:.85rem;color:var(--muted);background:none;border:1px solid var(--border);border-radius:10px;padding:8px 14px;cursor:pointer}.task-chips{display:flex;gap:6px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}.task-chips::-webkit-scrollbar{display:none}.task-chip{flex-shrink:0;font:inherit;font-size:.85rem;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:8px 14px;cursor:pointer;white-space:nowrap}.task-chip.done{background:#dcfce7;border-color:var(--ok);color:#14532d}.task-count{flex-shrink:0;font:inherit;font-size:.85rem;color:var(--muted);background:none;border:none;padding:6px 4px;cursor:pointer}.task-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--border);max-height:40vh;overflow-y:auto}.task-list-row{width:100%;display:flex;align-items:center;gap:8px;font:inherit;font-size:.88rem;color:var(--muted);background:none;border:none;border-bottom:1px solid var(--border);padding:10px 12px;text-align:left;cursor:pointer}.task-list-row.done{color:var(--text)}.task-list-row.current{background:#dbeafe;color:#1e3a8a}.task-list-mark{flex-shrink:0;color:var(--ok)}.task-list-row.current .task-list-mark{color:var(--primary)}.task-list-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-list-hint{flex-shrink:0;font-size:.75rem;color:var(--muted)}.task-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.task-panel-head h3{margin:0}.task-mode-row{display:flex;align-items:center;gap:6px;margin:10px 0;flex-wrap:wrap}.chip-on{background:#dbeafe;border-color:#93c5fd;color:#1e40af}.btn-link{font:inherit;font-size:.8rem;color:var(--primary);background:none;border:none;padding:2px 4px;cursor:pointer;text-decoration:underline}.btn-link.danger{color:var(--danger);text-decoration:none;font-size:1rem}.task-edit{margin-bottom:10px}.task-edit-row{display:flex;align-items:center;gap:6px;margin-bottom:6px}.task-edit-row input{flex:1;min-width:0;font:inherit;font-size:.85rem;padding:6px 8px;border:1px solid var(--border);border-radius:8px}.task-funnel{list-style:none;margin:0;padding:0}.task-funnel li{display:flex;align-items:center;gap:8px;margin-bottom:6px}.funnel-label{width:38%;flex-shrink:0;font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.funnel-track{flex:1;height:12px;background:var(--border);border-radius:999px;overflow:hidden}.funnel-fill{display:block;height:100%;background:var(--ok);transition:width .2s}.funnel-num{flex-shrink:0;font-size:.75rem;width:74px;text-align:right}.task-watch{list-style:none;margin:10px 0 0;padding:8px 0 0;border-top:1px solid var(--border)}.task-watch li{display:flex;align-items:center;gap:8px;font-size:.8rem;padding:3px 0}.task-watch li.stalled .watch-idle{background:#fee2e2;color:#991b1b;border-radius:999px;padding:1px 8px}.watch-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.watch-idle{flex-shrink:0;color:var(--muted);font-size:.75rem}.poll-bar{border:1px solid var(--primary);border-radius:12px;background:#eff6ff;padding:8px 10px}.poll-head{display:flex;align-items:baseline;gap:8px;margin-bottom:6px}.poll-q{flex:1;min-width:0;font-size:.9rem;font-weight:700}.poll-answered{flex-shrink:0;font-size:.7rem;color:var(--muted)}.poll-options{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.poll-option{font:inherit;font-size:.9rem;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:9px 16px;cursor:pointer}.poll-option.on{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:700}.poll-hint{font-size:.72rem;color:var(--muted)}.poll-scale{display:flex;align-items:center;gap:6px}.poll-scale-btn{flex:1;font:inherit;font-size:.95rem;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:9px 4px;cursor:pointer}.poll-scale-btn.on{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:700}.poll-end-label{flex-shrink:0;font-size:.72rem;color:var(--muted);max-width:30%}.poll-text-row{display:flex;gap:6px}.poll-text-row input{flex:1;min-width:0;font:inherit;font-size:.9rem;padding:9px 10px;border:1px solid var(--border);border-radius:10px}.poll-result{background:var(--panel);border-color:var(--border)}.poll-pie-row{display:flex;align-items:center;gap:14px}.poll-pie{width:88px;height:88px;flex-shrink:0}.poll-legend{list-style:none;margin:0;padding:0;font-size:.82rem}.poll-legend li{display:flex;align-items:center;gap:6px;padding:2px 0}.legend-dot{width:10px;height:10px;border-radius:2px;flex-shrink:0}.poll-edit{display:flex;flex-direction:column;gap:6px;margin:10px 0;padding:10px;background:#f9fafb;border-radius:10px}.poll-edit input,.poll-edit select{font:inherit;font-size:.85rem;padding:6px 8px;border:1px solid var(--border);border-radius:8px}.poll-type-row{display:flex;gap:4px;flex-wrap:wrap}.poll-type-row .chip{cursor:pointer}.poll-scale-edit{display:flex;flex-direction:column;gap:6px}.poll-scale-edit label{font-size:.8rem;display:flex;align-items:center;gap:6px}.poll-list{list-style:none;margin:0;padding:0}.poll-item{border-top:1px solid var(--border);padding:8px 0}.poll-item.open{background:#eff6ff;border-radius:8px;padding:8px}.poll-item-head{display:flex;align-items:baseline;gap:6px;margin-bottom:6px}.poll-item-q{flex:1;min-width:0;font-size:.85rem}.poll-item-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.poll-count{margin:8px 0 4px}.poll-bars{list-style:none;margin:0;padding:0}.poll-bars li{display:flex;align-items:center;gap:8px;margin-bottom:4px}.poll-bar-label{width:34%;flex-shrink:0;font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.poll-bar-track{flex:1;height:12px;background:var(--border);border-radius:999px;overflow:hidden}.poll-bar-fill{display:block;height:100%;background:var(--primary);transition:width .2s}.poll-bar-num{flex-shrink:0;font-size:.75rem;width:34px;text-align:right}.poll-texts{list-style:none;margin:4px 0 0;padding:0;font-size:.8rem}.poll-texts li{padding:3px 0;border-bottom:1px solid var(--border)}.poll-pending{margin:6px 0 0;font-size:.75rem}.task-mini{align-self:flex-start;font:inherit;font-size:.78rem;color:var(--muted);background:#f9fafb;border:1px solid var(--border);border-radius:999px;padding:5px 12px;cursor:pointer}@media(max-height:500px){.poll-bar{display:flex;align-items:center;gap:10px;padding:6px 10px}.poll-head{margin-bottom:0;flex-shrink:1;min-width:0;max-width:45%}.poll-q{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem}.poll-answered{display:none}.poll-options,.poll-scale,.poll-text-row{flex:1;min-width:0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.poll-options::-webkit-scrollbar,.poll-scale::-webkit-scrollbar{display:none}.poll-option,.poll-scale-btn{padding:7px 14px;white-space:nowrap}.poll-hint{display:none}}.screen-audio-error{position:absolute;left:50%;top:24px;transform:translate(-50%);z-index:30;max-width:min(720px,90vw);display:flex;flex-direction:column;gap:4px;padding:14px 20px;border-radius:10px;background:#7f1d1d;color:#fff;box-shadow:0 6px 20px #00000059;text-align:center}.screen-audio-error strong{font-size:20px}.screen-audio-error span{font-size:14px;opacity:.9}.chip-warn{background:#fef3c7;color:#92400e;border-color:#fcd34d}.check-page{max-width:720px;margin:0 auto;padding:24px 16px 64px}.check-page h1{margin:0 0 4px;font-size:24px}.check-page h2{font-size:16px;margin:28px 0 8px;padding-bottom:6px;border-bottom:1px solid var(--border, #e5e7eb)}.lesson-summary{margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.lesson-summary h4,.lesson-summary p{margin:0 0 8px}.lesson-summary-text{max-height:32vh;overflow-y:auto;margin-bottom:10px;padding:10px 12px;border-radius:8px;background:#f9fafb;line-height:1.65;white-space:pre-wrap;word-break:break-word}.lesson-summary-text h5{margin:12px 0 5px;font-size:.95rem}.lesson-summary-text h5:first-child{margin-top:0}.lesson-summary-text .lesson-summary-bullet{padding-left:1em;text-indent:-1em}.check-tabs-wrap{max-width:900px;margin:0 auto;padding:18px 16px 0}.check-tabs{display:flex;gap:8px;padding-bottom:10px;border-bottom:1px solid var(--border)}.check-tabs .btn{min-width:130px}.cost-estimator{max-width:900px;padding-top:14px}.cost-form h2,.cost-result h2{margin-top:0}.cost-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.cost-fields label{display:flex;flex-direction:column;gap:4px;font-size:.82rem;color:var(--muted)}.cost-fields input,.cost-fields select{width:100%;min-width:0;padding:8px 9px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text);font:inherit}.cost-ai-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px}.cost-ai-grid label{display:flex;align-items:center;gap:7px}.cost-total{display:flex;flex-direction:column;gap:3px;padding:14px 16px;border-left:5px solid var(--primary);border-radius:8px;background:#eff6ff}.cost-total strong{font-size:1.55rem}.cost-total span{color:var(--muted);font-size:.82rem}.cost-table{width:100%;margin-top:12px;border-collapse:collapse}.cost-table th,.cost-table td{padding:8px 6px;border-bottom:1px solid var(--border);text-align:left}.cost-table th{width:48%;font-weight:500}.cost-table td{text-align:right}.cost-details{margin-top:12px;font-size:.86rem}@media(max-width:680px){.cost-fields,.cost-ai-grid{grid-template-columns:1fr}}.check-verdict{display:flex;flex-direction:column;gap:6px;margin:16px 0 8px;padding:16px 18px;border-radius:10px;border-left:6px solid}.check-verdict strong{font-size:20px}.check-verdict span{font-size:14px;line-height:1.6}.check-verdict.check-ok{background:#ecfdf5;border-color:#059669;color:#065f46}.check-verdict.check-warn{background:#fffbeb;border-color:#d97706;color:#92400e}.check-verdict.check-ng{background:#fef2f2;border-color:#dc2626;color:#991b1b}.check-list{list-style:none;margin:0;padding:0}.check-row{display:flex;gap:10px;align-items:baseline;padding:8px 0;border-bottom:1px dotted var(--border, #e5e7eb)}.check-mark{flex:0 0 1.4em;font-weight:700;font-size:18px;text-align:center}.check-row.check-ok .check-mark{color:#059669}.check-row.check-warn .check-mark{color:#d97706}.check-row.check-ng .check-mark{color:#dc2626}.check-row.check-pending .check-mark{color:#9ca3af}.check-label{display:flex;flex-direction:column;gap:2px}.check-detail{font-size:12px;color:var(--muted, #6b7280);word-break:break-all}.check-actions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.check-note{font-size:13px;line-height:1.7;color:var(--muted, #6b7280);margin:8px 0 0}.check-ok-text{color:#059669;font-weight:600}.check-ng-text{color:#dc2626;font-weight:600}.check-ua{margin-top:32px;font-size:12px;color:var(--muted, #6b7280)}.check-ua p{word-break:break-all;margin:6px 0}.teach-format-warn{display:flex;align-items:flex-start;gap:12px;margin:8px 12px;padding:12px 16px;border-radius:8px;background:#fffbeb;border-left:5px solid #d97706;color:#92400e}.teach-format-warn>div{display:flex;flex-direction:column;gap:3px;flex:1}.teach-format-warn strong{font-size:15px}.teach-format-warn span{font-size:13px;line-height:1.6}.check-roles{margin:16px 0 4px}.check-roles-label{display:block;font-size:13px;color:var(--muted, #6b7280);margin-bottom:6px}.check-roles-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px}.check-roles-row .btn.tool{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;text-align:left;height:auto;line-height:1.4;min-width:0;white-space:normal;overflow-wrap:anywhere}.check-role-hint{display:block;width:100%;font-size:11px;line-height:1.35;opacity:.75;font-weight:400;white-space:normal;overflow-wrap:anywhere}.check-row.check-skip .check-mark{color:#d1d5db}.check-row.check-skip .check-label{color:var(--muted, #9ca3af)}.caption-bar{display:flex;align-items:stretch;gap:4px;margin-top:6px;padding:8px 10px;border-radius:8px;background:#111827eb;color:#f9fafb}.caption-bar-text{flex:1;min-width:0;display:block;background:none;border:0;padding:0;color:inherit;font-size:15px;line-height:1.5;text-align:left;cursor:pointer;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.caption-final+.caption-final,.caption-final+.caption-interim{margin-left:.4em}.caption-interim{color:#9ca3af}.caption-waiting{color:#9ca3af;font-size:13px}.caption-bar-actions{display:flex;flex-direction:column;gap:2px}.caption-bar-btn{background:none;border:0;color:#9ca3af;cursor:pointer;font-size:13px;line-height:1;padding:2px 4px}.caption-bar-btn:hover{color:#f9fafb}.caption-bar-large{position:absolute;left:3%;right:3%;bottom:3%;z-index:20;margin:0;padding:14px 18px}.caption-bar-large .caption-bar-text{font-size:clamp(20px,2.6vw,34px);line-height:1.45}.caption-history{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;flex-direction:column;background:var(--bg, #fff)}.caption-history-head{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border, #e5e7eb)}.caption-history-head strong{font-size:16px}.caption-history-head .btn{margin-left:auto}.caption-history-list{flex:1;overflow-y:auto;padding:12px 14px;-webkit-overflow-scrolling:touch}.caption-line{display:flex;gap:10px;margin:0 0 10px;line-height:1.7}.caption-time{flex:0 0 auto;color:var(--muted, #9ca3af);font-variant-numeric:tabular-nums;font-size:12px;padding-top:4px}.caption-line.live{color:var(--muted, #6b7280)}.caption-history-note{margin:0;padding:8px 14px;border-top:1px solid var(--border, #e5e7eb);font-size:12px;color:var(--muted, #6b7280)}.text-frame{position:absolute;border:2px dashed var(--primary);border-radius:4px;pointer-events:none;z-index:3}.text-frame-move,.text-frame-size{position:absolute;pointer-events:auto;border:none;background:var(--primary);color:#fff;font:inherit;padding:0}.text-frame-move{display:flex;align-items:center;gap:5px;padding:0 8px 0 6px;min-height:28px;border-radius:6px;font-size:.8rem;font-weight:700;white-space:nowrap;cursor:move;touch-action:none}.text-frame-move-left{right:100%;top:-2px;bottom:-2px;margin-right:6px}.text-frame-move-right{left:100%;top:-2px;bottom:-2px;margin-left:6px}.text-frame-move-top{bottom:100%;left:-2px;margin-bottom:6px}.text-frame-size-inside{right:1px}.text-frame-grip{width:8px;height:14px;background-image:radial-gradient(#fff 40%,transparent 41%);background-size:4px 5px;opacity:.85}.text-frame-size{right:-9px;top:50%;width:16px;height:16px;margin-top:-8px;border:2px solid #fff;border-radius:50%;cursor:ew-resize;touch-action:none}.float-window{position:fixed;z-index:40;max-height:calc(100vh - 120px);display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 32px #11182738}.float-window-closed{display:none}.float-window-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 8px 8px 14px;border-bottom:1px solid var(--border);cursor:move;touch-action:none;-webkit-user-select:none;user-select:none}.float-window-close{border:none;background:transparent;font-size:1.1rem;line-height:1;padding:4px 8px;border-radius:6px;cursor:pointer;color:var(--muted)}.float-window-close:hover{background:var(--bg);color:var(--text)}.float-window-body{padding:12px 14px 14px;overflow-y:auto}.header-action-on{border-color:var(--primary);color:var(--primary);font-weight:700}.header-tools{display:flex;gap:6px}.header-tools .btn.header-action{flex:0 0 140px;min-width:0;font-size:.85rem;padding:8px 6px}.caption-users{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:1px dashed var(--border);border-radius:8px;font-size:.85rem;color:var(--muted)}.caption-users.on{border-style:solid;border-color:var(--primary);color:var(--primary);font-weight:700}.classroom-sec-divided{padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid var(--border)}.btn-sub{display:block;font-size:.72rem;font-weight:400;opacity:.72;margin-top:1px}.tool-windows{margin-left:auto;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.tool-window-btn{min-width:120px;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:.85rem;padding:7px 10px}.tool-window-badge{background:var(--primary);color:#fff;border-radius:999px;font-size:.7rem;font-weight:700;padding:1px 7px}.monitor-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.monitor-open{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:start;padding-bottom:12px;border-bottom:1px solid var(--border)}.monitor-open-col{display:flex;flex-direction:column;gap:6px;min-width:0}.monitor-open-label{font-size:.78rem;font-weight:700;color:var(--muted)}.monitor-url{font-size:.75rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:6px 8px;overflow-wrap:anywhere}.monitor-qr{width:116px;height:116px;border:1px solid var(--border);border-radius:6px}.layout-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:8px 0 4px}.layout-choice{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;padding:6px;background:var(--panel);border:2px solid var(--border);border-radius:8px;font:inherit;font-size:.78rem;cursor:pointer}.layout-choice-on{border-color:var(--primary);background:#eff6ff}.layout-choice-label{font-weight:700}.lp{position:relative;display:block;width:100%;aspect-ratio:16 / 9;background:#111827;border-radius:4px;overflow:hidden}.lp-main{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.lp-sub{position:absolute;left:calc(5% + 56% * var(--pip-x, 1));top:calc(7% + 45% * var(--pip-y, 1));width:34%;aspect-ratio:16 / 9;border:1px solid rgba(255,255,255,.75);border-radius:2px;overflow:hidden;display:flex;align-items:center;justify-content:center}.lp-sub-drag{cursor:grab;touch-action:none;border-color:#fff;box-shadow:0 0 0 1px #00000059}.lp-sub-drag:active{cursor:grabbing}.lp-outside-slide-left{left:27%}.lp-outside-slide-right{right:27%}.lp-outside-slide-top{top:29%}.lp-outside-slide-bottom{bottom:29%}.lp-outside-cam-left,.lp-outside-cam-right{width:20%;top:calc(5% + 70% * var(--pip-y, .5))}.lp-outside-cam-left{left:3%}.lp-outside-cam-right{left:77%}.lp-outside-cam-top,.lp-outside-cam-bottom{width:28%;left:calc(4% + 64% * var(--pip-x, .5))}.lp-outside-cam-top{top:3%}.lp-outside-cam-bottom{top:81%}.lp-slide{background:#f8fafc;color:var(--muted);font-size:.65rem}.lp-cam{position:relative;display:block;width:100%;height:100%;background:#374151}.lp-cam video{width:100%;height:100%;object-fit:cover;display:block}.lp-cam-off{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#d1d5db;font-size:.65rem}.reaction-edit-row{display:flex;gap:8px;align-items:center;margin:6px 0}.reaction-edit-row input:not([type=color]){flex:1;min-width:0}.reaction-edit-row input[type=color]{width:44px;height:38px;padding:2px;flex-shrink:0}.reaction-edit-row.hidden-row{opacity:.55}.join-qr-row{display:flex;gap:10px;align-items:flex-start}.join-qr-side{display:flex;flex-direction:column;gap:6px;min-width:0}.feed-count{margin-left:8px;background:var(--primary);color:#fff;border-radius:999px;font-size:.72rem;padding:1px 8px}.check-back{margin-bottom:10px}.check-page kbd{background:var(--bg);border:1px solid var(--border);border-bottom-width:2px;border-radius:4px;padding:1px 5px;font-size:.85em}.class-body{flex:1;min-height:0;display:flex;flex-direction:column}@media(orientation:landscape)and (max-height:620px){.class-body{flex-direction:row}.class-body .reaction-bar{width:200px;flex-shrink:0;border-top:none;border-left:1px solid var(--border);overflow-y:auto;padding:8px 10px calc(8px + env(safe-area-inset-bottom))}.class-body .reaction-buttons{flex-direction:column}.class-body .comment-row{flex-direction:column;gap:6px}.class-page .app-header{padding:4px 10px}.class-page .app-header h1{font-size:.95rem}}@media(max-width:700px){.class-main{padding:4px}.class-page .app-header{padding:6px 10px;gap:8px}.class-page .app-header h1{font-size:1rem;max-width:45vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.class-body .reaction-bar{padding:8px 10px calc(8px + env(safe-area-inset-bottom));gap:6px}.reaction-btn{font-size:.95rem;padding:11px 6px}}@media(max-width:760px){.float-window{left:8px!important;right:8px;width:auto!important}.monitor-open,.join-main{grid-template-columns:1fr}}.insight-slide{display:flex;align-items:center;gap:8px;font-size:.75rem;color:var(--muted);margin-bottom:4px}.float-window .recent-reactions{margin-left:0}@media(max-width:1400px){.btn.header-action{min-width:104px;padding:8px 9px}.header-tools .btn.header-action{flex-basis:124px;font-size:.78rem;padding:8px 4px}.teach .header-right{gap:8px}}.insight-card.resolved{opacity:.55;border-left:3px solid var(--ok)}.insight-actions{display:flex;justify-content:flex-end;margin-top:6px}.feed-count-done{background:var(--ok);font-weight:600}.telemetry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.telemetry-card{margin:0}.telemetry-card h3,.telemetry-privacy h3{margin-top:0}.telemetry-card p{margin:7px 0}.telemetry-privacy{border-left:4px solid var(--primary)}.telemetry-note{padding:0 4px 12px}.telemetry-page{min-height:100vh;background:var(--bg)}.telemetry-main{width:min(1100px,calc(100% - 32px));margin:20px auto;display:grid;gap:14px}.telemetry-main>.card,.telemetry-result>.card{margin:0}.telemetry-lesson-select{display:flex;align-items:center;gap:14px}.telemetry-lesson-select span{flex:0 0 auto;font-weight:700}.telemetry-lesson-select select{min-width:0;flex:1}.telemetry-result h2{margin:4px 0 12px}@media(max-width:700px){.telemetry-main{width:min(100% - 16px,1100px);margin:8px auto}.telemetry-lesson-select{align-items:stretch;flex-direction:column}.telemetry-grid{grid-template-columns:1fr}}.review-digest{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.poll-review-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.poll-review-head h3{margin:0}.poll-review-chart{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:10px}.poll-pie{width:132px;height:132px;flex-shrink:0;border-radius:50%}.poll-legend{list-style:none;margin:0;padding:0;flex:1;min-width:180px;font-size:.82rem}.poll-legend li{display:flex;align-items:center;gap:8px;padding:2px 0}.poll-legend-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}.poll-legend-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.poll-legend-value{flex-shrink:0;color:var(--muted)}.poll-review-texts{list-style:none;margin:10px 0 0;padding:0;font-size:.85rem}.poll-review-texts li{display:flex;gap:10px;padding:5px 0;border-top:1px solid var(--border)}.poll-review-name{flex-shrink:0;width:7em;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.poll-bar-row{display:flex;align-items:center;gap:10px;margin:10px 0 6px}.poll-bar-count{flex-shrink:0;font-size:.8rem;color:var(--muted)}
