body{background:#f8f9fa;font-family:"Segoe UI",Roboto,sans-serif;margin:0;padding:0}.navbar-teachstage{background:#007bff;color:#fff}.navbar-teachstage .navbar-brand{color:#fff;font-weight:700}.card{border-radius:12px;box-shadow:0 2px 6px rgba(0,0,0,.1)}.btn-primary{border-radius:8px}.scene-area{position:relative;min-height:60vh;border:1px solid #16213d;border-radius:16px;overflow:hidden;background:#0a1427;text-align:center}.scene-stage{width:100%}.scene-stage-frame{position:relative;width:100%;aspect-ratio:16/9;border-radius:18px;overflow:hidden;background:radial-gradient(circle at top,rgba(255,255,255,.08),rgba(10,20,39,.95));box-shadow:0 25px 60px rgba(6,11,25,.6)}.scene-bg{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;z-index:0}.scene-content{position:relative;z-index:1}.scene-content h2{font-size:clamp(1.4rem, 3vw, 3rem);font-weight:600}.scene-content p{font-size:clamp(1rem, 1.8vw, 1.4rem)}#sceneContainer{position:relative;min-height:70vh}#sceneContainer .scene-area{position:relative;z-index:3}#observerCanvas{position:absolute;top:0;left:0;width:100%;height:100%;z-index:2;pointer-events:none}#drawCanvas{position:absolute;inset:0;width:100%;height:100%;z-index:2;cursor:crosshair}.scene-area{overflow:hidden}.scene-visual{position:absolute;inset:0;z-index:1}.soft-login-backdrop{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.45);z-index:1050}.soft-login-card{width:100%;max-width:420px}.hidden{display:none!important}.qa-question-text{white-space:pre-wrap}.qa-like-btn{min-width:80px}.question-card{border:1px solid #e9ecef}.question-card .form-label{font-weight:500;font-size:.9rem}.interaction-card{background:#fff;border:1px solid #e9ecef;border-radius:12px;padding:1.5rem}.interaction-card.overlay-card{background:0 0;border:none;padding:0;color:#fff}.interaction-card.overlay-card .form-control,.interaction-card.overlay-card .form-select{color:#fff}.response-controls{display:flex;flex-wrap:wrap;gap:1rem;padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid #e9ecef}.response-controls.hidden{display:none}.presenter-body{min-height:100vh;margin:0;background:#010818;color:#fff;font-family:Inter,"Segoe UI",sans-serif}.presenter-stage{min-height:100vh;padding:2rem;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at top,#07122c,#010818 60%)}.presenter-scene{position:relative;width:min(90vw,1600px);aspect-ratio:16/9;border-radius:32px;overflow:hidden;box-shadow:0 40px 80px rgba(0,0,0,.65);background:#000}.presenter-overlay{position:absolute;pointer-events:none;z-index:4}.presenter-overlay-top-left{top:1.5rem;left:1.5rem}.presenter-overlay-top-right{top:1.5rem;right:1.5rem;max-width:320px}.presenter-overlay-bottom-right{right:1.5rem;bottom:1.5rem;max-width:360px;pointer-events:auto}.presenter-overlay-floating{position:fixed;pointer-events:auto;z-index:10;top:24px;left:24px}.presenter-overlay.hidden{display:none}.presenter-overlay.draggable{pointer-events:auto;cursor:grab}.presenter-overlay.draggable.dragging{cursor:grabbing}.presenter-overlay .card,.qr-card{background:rgba(7,17,40,.9);border-radius:20px;padding:1rem;box-shadow:0 10px 30px rgba(0,0,0,.4);pointer-events:auto}#presenterQrCode canvas,#presenterQrCode img{width:140px;height:140px;display:block;margin:0 auto .5rem}.qr-card{width:200px;min-height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;position:relative}.presenter-qa-card{width:280px;min-height:180px;background:rgba(2,6,16,.96);border-radius:20px;padding:1rem;box-shadow:0 15px 40px rgba(0,0,0,.45);pointer-events:auto}.presenter-qa-card .text-uppercase{letter-spacing:.2em}#presenterQrLabel{font-variant-numeric:tabular-nums;letter-spacing:.18em;text-align:center;color:#e2e8ff;font-weight:600;text-transform:uppercase}.presenter-overlay h6{font-size:.75rem;letter-spacing:.1em}.presenter-overlay ul{max-height:200px;overflow-y:auto}.live-nav-actions .btn{display:inline-flex;align-items:center;gap:.25rem}.collaborative-board-overlay{position:fixed;inset:0;background:rgba(3,6,18,.9);z-index:6000;padding:1.5rem;display:flex;flex-direction:column;gap:.75rem}.collaborative-board-overlay.hidden{z-index:-1;pointer-events:none}.ts-modal{z-index:6500}.collaborative-board-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem}.collaborative-board-toolbar .btn.active{border-color:#fff;background:#fff;color:#0d6efd}.board-chat-container{display:inline-flex;align-items:center}.shape-tools .shape-tool{width:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%}.shape-tools .shape-tool.active{background:#fff;color:#0d6efd;border-color:#fff}.note-modal{position:absolute;inset:0;background:rgba(3,8,18,.85);display:flex;align-items:center;justify-content:center;z-index:10}.note-modal.hidden{display:none}.note-modal-card{background:#0b1223;color:#fff;padding:1.5rem;border-radius:18px;width:min(420px,100%);position:relative;box-shadow:0 20px 50px rgba(0,0,0,.65)}.note-modal-card .btn-close{filter:invert(1)}.note-color-palette{min-height:40px}.note-color-swatch{width:36px;height:36px;border-radius:10px;border:2px solid transparent;cursor:pointer}.note-color-swatch.active{border-color:#fff}.collaborative-board-stage{flex:1;background:#f4f6ff;border-radius:20px;padding:.5rem;position:relative;overflow:hidden;min-height:320px;touch-action:none}.collaborative-board-handle{filter:drop-shadow(0 6px 10px rgba(0, 0, 0, .15))}.board-options-button{font-size:12px;line-height:1;cursor:pointer}.interaction-card .form-check{margin-bottom:.35rem}.interaction-error,.interaction-status{min-height:1rem}.session-list .list-group-item{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between}.session-info{flex:1 1 260px;min-width:200px}.session-title{font-weight:600;display:flex;align-items:center;gap:.5rem}.session-meta{font-size:.85rem;color:#6c757d}.session-actions{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:flex-end;flex:1 1 320px}.live-nav-center{max-width:520px}.live-nav-timer{min-width:140px;justify-content:center}.scene-picker-trigger{border:none;background:0 0;color:#fff;display:inline-flex;align-items:center;justify-content:center;padding:0;font-size:1.25rem;line-height:1;cursor:pointer;transition:transform .15s ease,color .15s ease}.scene-picker-trigger:focus-visible,.scene-picker-trigger:hover{color:#e0e7ff;transform:scale(1.15)}.scene-picker-trigger:focus{outline:0}.scene-picker-trigger:focus-visible{outline:2px solid rgba(255,255,255,.9);outline-offset:4px;border-radius:999px}.current-scene-name{max-width:240px;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scene-drawing-stack{background:linear-gradient(135deg,#0b1f3f,#060b19);border-radius:18px;padding:1rem;box-shadow:0 20px 45px rgba(6,11,25,.45)}.drawing-toolbar{background:rgba(255,255,255,.05);border-radius:14px;padding:.75rem 1rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;color:#fff}.drawing-toolbar .btn{border-color:rgba(255,255,255,.5);color:#fff}.drawing-toolbar .btn.active,.drawing-toolbar .btn:focus{background:#fff;color:#0b1f3f}.drawing-swatches{display:flex;align-items:center;gap:.5rem}.color-swatch{width:26px;height:26px;border-radius:50%;border:2px solid rgba(255,255,255,.6);background:var(--swatch-color,#fff);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.color-swatch.active{box-shadow:0 0 0 2px #fff inset;transform:scale(1.05)}.drawing-sizes{display:flex;align-items:center;gap:.35rem}.size-swatch{border:1px solid rgba(255,255,255,.4);background:0 0;color:#fff;width:38px;height:32px;border-radius:6px;font-size:.85rem}.size-swatch.active{background:#fff;color:#0b1f3f}.presentation-actions .btn{min-width:180px}.laser-pointer{position:absolute;width:22px;height:22px;border-radius:50%;background:rgba(255,0,0,.55);border:2px solid rgba(255,255,255,.9);box-shadow:0 0 18px rgba(255,0,0,.7);pointer-events:none;z-index:4;transform:translate(-50%,-50%)}.scene-picker-card{width:min(900px,96vw);max-height:85vh;display:flex;flex-direction:column}.scene-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;overflow-y:auto;max-height:70vh;padding-right:.5rem}.scene-picker-tile{border:1px solid #e9ecef;border-radius:12px;padding:1rem;background:#fff;color:#212529;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.scene-picker-tile.active{border-color:#0d6efd;box-shadow:0 0 0 2px rgba(13,110,253,.25)}.scene-picker-tile h6{font-size:1rem;margin-bottom:.25rem}.session-actions .btn{flex:0 0 auto}.maintenance-overlay{position:fixed;inset:0;background:rgba(8,11,29,.85);display:flex;align-items:center;justify-content:center;padding:2rem;z-index:4000}.maintenance-card{background:#fff;border-radius:18px;padding:2rem;max-width:460px;width:100%;box-shadow:0 30px 80px rgba(15,23,42,.25)}.maintenance-icon i{font-size:2.5rem;color:#0d6efd}.maintenance-actions{margin-bottom:1rem}.maintenance-actions .btn{min-width:220px}.summary-card h4{font-weight:600;margin:0}.summary-card .card-body{min-height:90px}.summary-card .card-footer{background:0 0}.file-library-modal{position:fixed;inset:0;background:rgba(4,6,22,.75);display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:6000}.file-library-modal.hidden{display:none}.file-library-card{width:min(980px,100%);background:#fff;border-radius:18px;padding:1.5rem;box-shadow:0 30px 80px rgba(13,15,35,.3);max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.file-library-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #edf1f7;padding-bottom:.75rem;margin-bottom:1rem}.file-library-body{overflow-y:auto;padding-right:.25rem}.file-library-usage .progress{background:#ebeff6}.file-library-upload .file-dropzone{border:2px dashed #cbd5f5;border-radius:12px;padding:1.25rem;text-align:center;transition:border-color .2s,background .2s}.file-library-upload .file-dropzone.active{border-color:#0d6efd;background:rgba(13,110,253,.05)}.file-library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.file-card{border:1px solid #edf0fb;border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:240px}.file-card-preview{background:#f7f9ff;height:140px;display:flex;align-items:center;justify-content:center;padding:.5rem}.file-thumb{width:100%;height:100%;background-size:cover;background-position:center;border-radius:8px}.file-icon{font-size:2.5rem;color:#0d6efd}.file-card-body{padding:.75rem 1rem 1rem;display:flex;flex-direction:column;gap:.35rem;flex:1}.file-card-title{font-weight:600;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-card-meta{font-size:.8rem;color:#6c757d}.file-card-actions{margin-top:auto;display:flex;gap:.35rem;flex-wrap:wrap}.page-grid{display:grid;gap:.75rem}.page-grid.cols-4{grid-template-columns:repeat(4,1fr)}.page-grid.cols-5{grid-template-columns:repeat(5,1fr)}.page-grid.cols-6{grid-template-columns:repeat(6,1fr)}.page-grid.cols-7{grid-template-columns:repeat(7,1fr)}.page-grid.cols-8{grid-template-columns:repeat(8,1fr)}.page-grid.cols-9{grid-template-columns:repeat(9,1fr)}.page-grid.cols-10{grid-template-columns:repeat(10,1fr)}.page-thumb{border:2px solid transparent;border-radius:10px;padding:.5rem;background:#f8f9ff;cursor:pointer;transition:border-color .2s,transform .2s}.page-thumb:hover{border-color:#0d6efd;transform:translateY(-1px)}.page-thumb canvas{width:100%;height:auto;display:block;border-radius:6px;background:#fff}.page-thumb small{display:block;text-align:center;margin-top:.35rem;color:#6c757d}.custom-slide-modal{position:fixed;inset:0;background:rgba(2,4,23,.9);display:flex;align-items:center;justify-content:center;padding:0;z-index:5500}.custom-slide-modal.hidden{display:none}.custom-slide-shell{width:100%;height:100vh;background:#fff;border-radius:0;box-shadow:none;display:flex;flex-direction:column}.custom-slide-toolbar{padding:1rem 1.5rem;border-bottom:1px solid #edf0fb;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.custom-slide-body{display:flex;padding:1.5rem;gap:1.5rem;flex:1;overflow:hidden}.custom-slide-canvas-wrapper{flex:1 1 auto;display:flex;align-items:center;justify-content:center;background:#f4f6ff;border-radius:18px;min-height:420px;position:relative;height:calc(100vh - 180px)}.custom-slide-canvas{width:960px;max-width:100%;aspect-ratio:16/9;background:#fff;border-radius:12px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(13,27,62,.08)}.scene-bg .custom-slide-canvas{width:100%;height:100%;max-width:none}.presenter-scene .custom-slide-canvas{width:100%;height:100%;max-width:none;border-radius:0;box-shadow:none}.custom-slide-sidebar{width:280px;border-left:1px solid #edf0fb;padding-left:1rem;overflow-y:auto}.scene-list-title{font-weight:600}.scene-preview{width:100%;aspect-ratio:16/9;min-height:220px;border:1px dashed #d4dbf5;border-radius:12px;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;background:#f8f9ff}.scene-preview .scene-preview-content{position:relative;width:100%;height:100%}.scene-preview .media-preview{display:flex;align-items:center;justify-content:center;padding:.5rem}.scene-preview .media-preview canvas,.scene-preview .media-preview img{max-width:100%;max-height:100%;object-fit:contain}.custom-slide-element{position:absolute;border:2px solid transparent;border-radius:8px;cursor:move;transition:border-color .15s}.custom-slide-element.active{border-color:#0d6efd}.custom-slide-element .resize-handle{position:absolute;width:16px;height:16px;border-radius:50%;background:#0d6efd;right:-8px;bottom:-8px;cursor:nwse-resize}.custom-slide-element.text-element{padding:.5rem;color:inherit}.custom-slide-element.image-element img{width:100%;height:100%;object-fit:cover;border-radius:6px}.scene-list .scene-list-meta{font-size:.75rem;color:#94a1c0}body.maintenance-locked{overflow:hidden}.ts-tab-panel{display:none;padding-top:1.5rem}.ts-tab-panel.active{display:block}.super-admin-metric{border-radius:14px;background:#fff;border:1px solid #e6ebf1;box-shadow:0 4px 12px rgba(15,23,42,.08);padding:1rem 1.25rem;height:100%}.super-admin-metric h3{font-weight:600;margin:0}.super-admin-metric p{margin-bottom:.25rem;font-size:.85rem;color:#6c757d}.admin-list-card .list-group-item{display:flex;justify-content:space-between;align-items:center}.ts-modal{position:fixed;inset:0;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:6500}.ts-modal-card{background:#fff;border-radius:16px;padding:1.5rem;max-width:520px;width:100%;box-shadow:0 20px 60px rgba(15,23,42,.2)}.observer-modal-tabs button{min-width:90px}.observer-modal-content>div{max-height:420px;overflow-y:auto}.observer-modal-content .list-group-item small{display:block;font-size:.75rem}.observer-modal-content select[multiple]{min-height:120px}#groupMemberList{max-height:240px;overflow-y:auto;display:flex;flex-direction:column;gap:.25rem}#groupMemberList .form-check{border:1px solid rgba(15,23,42,.12);border-radius:.5rem;padding:.35rem .65rem;margin:0;background:#fff}#groupMemberList .form-check-input{margin-top:0}.chat-panel{position:fixed;bottom:1.5rem;right:1.5rem;width:min(360px,90vw);max-height:60vh;background:linear-gradient(180deg,#fff 0,#f2f4f7 100%);border-radius:18px;box-shadow:0 20px 40px rgba(0,0,0,.15);padding:1rem;z-index:6200;display:flex;flex-direction:column;gap:.5rem;color:#111827;border:1px solid rgba(0,0,0,.08);resize:vertical}.chat-panel.hidden{display:none}.chat-dropdown{position:relative;z-index:6300}.chat-dropdown-menu{position:absolute;top:calc(100% + .35rem);right:0;min-width:220px;max-height:260px;overflow-y:auto;background:#fff;border-radius:12px;border:1px solid rgba(15,23,42,.15);box-shadow:0 10px 30px rgba(15,23,42,.2);padding:.2rem 0;display:none}.chat-dropdown-empty{min-height:2.4rem;display:flex;align-items:center}.chat-dropdown.show .chat-dropdown-menu{display:flex;flex-direction:column}.chat-dropdown-item{border:none;background:0 0;width:100%;text-align:left;font-size:.95rem;color:#0b1223;padding:.4rem 1rem;cursor:pointer}.chat-dropdown-item:focus,.chat-dropdown-item:hover{background:rgba(15,23,42,.06)}.chat-dropdown-item{display:flex;align-items:center;justify-content:space-between}.chat-dropdown-btn{position:relative}.chat-button-badge{position:absolute;top:-.25rem;right:-.25rem;width:1.6rem;height:1.6rem;font-size:.75rem;border-radius:999px;background:#dc3545;color:#fff;display:flex;align-items:center;justify-content:center;border:2px solid #fff;box-shadow:0 0 0 1px rgba(255,255,255,.4)}.chat-dropdown-badge{min-width:1.6rem;height:1.6rem;font-size:.75rem;border-radius:999px;background:#dc3545;color:#fff;display:flex;align-items:center;justify-content:center;padding:0 .35rem;margin-left:.5rem}.chat-dropdown-badge.hidden{display:none}.chat-panel-header .btn{font-size:.9rem;color:#0b1223}.chat-messages{flex:1;overflow-y:auto;max-height:300px;background:rgba(255,255,255,.8);border-radius:12px;padding:.6rem;font-size:.9rem;color:#0b1223;border:1px solid rgba(0,0,0,.08)}.chat-message{margin-bottom:.75rem}.chat-message-small{font-size:.85rem;color:#0b1223}.chat-message-author{font-size:.75rem;color:#6b7280}.chat-message-author-speaker{color:#0d6efd!important;font-weight:600}.chat-message{margin-bottom:.65rem;padding-bottom:.35rem;border-bottom:1px dashed rgba(15,23,42,.1)}.chat-message span{font-size:.75rem;color:rgba(13,20,41,.7)}.chat-input-group .form-control{border-radius:8px;border:1px solid rgba(15,23,42,.15)}.chat-input-group .btn{border-radius:0 8px 8px 0}.drag-handle{cursor:grab;color:#adb5bd}.list-group-item.dragging{opacity:.6}.list-group-item.drag-over{border-color:#0d6efd}.modal-lg-card{max-width:640px}.observer-body{background:#f8f9fb}.observer-nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.5rem;background:#0e1331;color:#fff}.observer-brand{display:flex;align-items:center;gap:.5rem;font-weight:600}.observer-brand img{height:28px}.observer-breadcrumb{flex:1;text-align:center;font-size:.95rem;color:rgba(255,255,255,.8)}.observer-nav-actions{display:flex;gap:.5rem}.observer-nav .btn-outline-primary{color:#fff;border-color:rgba(255,255,255,.5)}.observer-nav .btn-outline-primary:focus,.observer-nav .btn-outline-primary:hover{color:#fff;background-color:rgba(255,255,255,.1)}.session-status{position:fixed;inset:0;background:rgba(13,20,41,.65);display:flex;justify-content:center;align-items:flex-start;padding-top:6rem;z-index:1500}.session-status-card{background:#fff;border-radius:16px;padding:2rem;max-width:420px;text-align:center;box-shadow:0 20px 60px rgba(15,23,42,.15)}.observer-body .scene-area{min-height:65vh}.observer-scene-wrapper{min-height:65vh;display:flex;align-items:center;justify-content:center;padding:1rem;position:relative}.observer-scene-frame{width:100%;max-width:1200px;aspect-ratio:16/9;background:#f4f6ff;border-radius:18px;position:relative;overflow:hidden;box-shadow:0 10px 30px rgba(15,23,42,.15)}.observer-scene-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:3}.interaction-overlay{position:absolute;inset:1rem;display:flex;justify-content:flex-end;align-items:flex-start;pointer-events:none;z-index:5}.interaction-overlay .interaction-panel{width:min(420px,100%);max-height:100%;overflow-y:auto;background:rgba(15,23,42,.88);color:#fff;border-radius:18px;padding:1.25rem;box-shadow:0 20px 40px rgba(15,23,42,.45);pointer-events:auto}.interaction-overlay.hidden{display:none}.interaction-panel .form-label,.interaction-panel h5{color:#fff}.interaction-panel .form-control,.interaction-panel .form-select{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.25)}.interaction-panel .form-control:focus,.interaction-panel .form-select:focus{border-color:#86b7fe;background:rgba(255,255,255,.2);color:#fff}.scene-area-blank{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center}.question-modal-list .list-group-item{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.question-modal-body textarea{resize:none}.profile-note{background:#f0f4ff;border-radius:12px;padding:1rem;font-size:.9rem}