*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.right-0{right:0}.top-0{top:0}.m-0{margin:0}.m-1{margin:.25rem}.mb-2{margin-bottom:.5rem}.ml-auto{margin-left:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.hidden{display:none}.h-12{height:3rem}.h-4{height:1rem}.h-auto{height:auto}.w-12{width:3rem}.w-4{width:1rem}.w-full{width:100%}.min-w-0{min-width:0}.max-w-full{max-width:100%}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-none{list-style-type:none}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-none{border-style:none}.border-slate-200{--tw-border-opacity:1;border-color:#e2e8f0;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}.border-slate-300{--tw-border-opacity:1;border-color:#cbd5e1;border-color:rgb(203 213 225/var(--tw-border-opacity,1))}.border-white\/10{border-color:#ffffff1a}.bg-blue-600{--tw-bg-opacity:1;background-color:#2563eb;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-red-600{--tw-bg-opacity:1;background-color:#dc2626;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.bg-slate-50{--tw-bg-opacity:1;background-color:#f8fafc;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.bg-transparent{background-color:initial}.bg-white{--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/25{background-color:#ffffff40}.p-0{padding:0}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.text-center{text-align:center}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.italic{font-style:italic}.text-blue-600{--tw-text-opacity:1;color:#2563eb;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:#dc2626;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-slate-500{--tw-text-opacity:1;color:#64748b;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-slate-700{--tw-text-opacity:1;color:#334155;color:rgb(51 65 85/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.blur{--tw-blur:blur(8px)}.blur,.grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale:grayscale(100%)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#667eea,#764ba2);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;min-height:100vh}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.hover\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:bg-blue-700:hover{--tw-bg-opacity:1;background-color:#1d4ed8;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.hover\:bg-red-700:hover{--tw-bg-opacity:1;background-color:#b91c1c;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.hover\:bg-slate-50:hover{--tw-bg-opacity:1;background-color:#f8fafc;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.hover\:text-blue-700:hover{--tw-text-opacity:1;color:#1d4ed8;color:rgb(29 78 216/var(--tw-text-opacity,1))}.focus\:border-blue-500:focus{--tw-border-opacity:1;border-color:#3b82f6;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.disabled\:opacity-50:disabled{opacity:.5}.login-container{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:20px}.login-card{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0003;max-width:400px;padding:40px;width:100%}.login-card h1{color:#667eea;font-size:28px;margin-bottom:30px;text-align:center}.form-group{margin-bottom:20px}.form-group label{color:#333;display:block;font-weight:500;margin-bottom:8px}.form-group input,.form-group select{border:2px solid #e0e0e0;border-radius:8px;font-size:16px;padding:12px;transition:border-color .3s;width:100%}.form-group input:focus,.form-group select:focus{border-color:#667eea;outline:none}.submit-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:14px;transition:transform .2s,box-shadow .2s;width:100%}.submit-btn:hover{box-shadow:0 5px 15px #667eea66;transform:translateY(-2px)}.submit-btn:active{transform:translateY(0)}:root{--sidebar-width:360px;--bg-main:#f0f2f5;--bg-sidebar:#1a1c23;--sidebar-border:#2d2d2d;--button-primary-color:#601127;--danger:#e53e3e;--warning:#dd6b20;--text-light:#718096;--text-sidebar-main:#fff;--text-sidebar-muted:#a0aec0;--border:#e2e8f0}.exam-container{background-color:#f0f2f5;background-color:var(--bg-main);display:flex;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;height:100vh;overflow:hidden}.exam-sidebar.left{background:#1a1c23;background:var(--bg-sidebar);border-right:1px solid #2d2d2d;border-right:1px solid var(--sidebar-border);box-shadow:2px 0 5px #0003;color:#fff;color:var(--text-sidebar-main);overflow-y:auto;padding:20px;width:360px;width:var(--sidebar-width);z-index:10}.exam-sidebar.left,.exam-sidebar.right{display:flex;flex-direction:column;flex-shrink:0}.exam-sidebar.right{background:#fff;border-left:1px solid #e2e8f0;border-left:1px solid var(--border);box-shadow:-2px 0 10px #0000000d;width:280px;z-index:9}.exam-sidebar.right .section-label{align-items:center;background:#f8fafc;border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border);color:#2d3748;color:var(--text-dark);display:flex;font-size:14px;font-weight:700;gap:8px;margin:0;padding:15px 20px}.nav-scroll-area{flex:1 1;overflow-y:auto;padding:20px}.nav-section-group{margin-bottom:25px}.nav-section-title{border-bottom:1px solid #eee;color:#718096;color:var(--text-light);font-size:12px;font-weight:700;letter-spacing:.5px;margin-bottom:12px;padding-bottom:5px;text-transform:uppercase}.nav-question-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(5,1fr)}.nav-q-btn{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:6px;color:#2d3748;color:var(--text-dark);cursor:pointer;display:flex;font-size:13px;font-weight:600;height:38px;justify-content:center;transition:all .2s;width:38px}.nav-q-btn:hover{background:#f1f5f9;border-color:#667eea;border-color:var(--primary);color:#667eea;color:var(--primary)}.nav-q-btn.answered{background:#00c853;background:var(--success);border-color:#00c853;border-color:var(--success);color:#fff}.nav-legend{background:#f8fafc;border-top:1px solid #e2e8f0;border-top:1px solid var(--border);color:#718096;color:var(--text-light);display:flex;font-size:12px;gap:20px;padding:15px 20px}.legend-item{align-items:center;display:flex;font-weight:600;gap:8px}.dot{background:#fff;border:1px solid #ccc;border-radius:50%;height:12px;width:12px}.dot.answered{background:#00c853;background:var(--success);border-color:#00c853;border-color:var(--success)}.section-label{align-items:center;color:#a0aec0;color:var(--text-sidebar-muted);display:flex;font-size:11px;font-weight:700;justify-content:space-between;letter-spacing:.5px;margin-bottom:10px;margin-top:10px;text-transform:uppercase}.student-cam-preview{aspect-ratio:3/4;background:#000;border:2px solid #e53e3e;border-radius:12px;box-shadow:0 4px 10px #e53e3e4d;margin-bottom:20px;overflow:hidden;position:relative;transition:all .3s ease;width:100%}.student-cam-preview:hover{border-color:#c53030;box-shadow:0 4px 15px #e53e3e66}.student-cam-preview video{height:100%;left:0;object-fit:cover;position:absolute;top:0;width:100%;z-index:1}.student-cam-preview .camera-warning-bar{align-items:center;background:#b40000e6;border-top:2px solid #ffffffe6;bottom:0;color:#fff;display:flex;font-size:12px;font-weight:700;gap:8px;left:0;padding:8px 12px;position:absolute;right:0;z-index:10}.student-cam-preview .camera-warning-bar .warning-icon{flex-shrink:0}.student-cam-preview .camera-warning-bar .warning-text{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cam-overlay{left:10px;position:absolute;top:10px;z-index:2}.status-live{animation:blink 2s infinite;background:#e53e3ee6;border-radius:4px;color:#fff;font-size:10px;font-weight:700;padding:2px 8px}@keyframes blink{50%{opacity:.7}}.camera-warning-overlay{align-items:center;animation:warningPulse 2s ease-in-out infinite;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#e53e3ed9;border-radius:12px;display:flex;inset:0;justify-content:center;position:absolute;z-index:10}@keyframes warningPulse{0%,to{background:#e53e3ed9;box-shadow:0 0 0 0 #e53e3eb3}50%{background:#e53e3ef2;box-shadow:0 0 20px 10px #e53e3e80}}.camera-warning-content{align-items:center;color:#fff;display:flex;flex-direction:column;gap:15px;max-width:90%;padding:20px;text-align:center}.warning-icon-large{animation:warningBounce 1s ease-in-out infinite;filter:drop-shadow(0 0 10px rgba(255,255,255,.5));font-size:48px}@keyframes warningBounce{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-5px) scale(1.1)}}.camera-warning-content .warning-text{font-size:16px;font-weight:700;letter-spacing:.5px;line-height:1.4;margin:0;text-shadow:2px 2px 4px #00000080}.proctor-cam-preview{aspect-ratio:3/4;background:#000;border:2px solid #e53e3e;border-radius:12px;box-shadow:0 4px 10px #e53e3e4d;display:flex;flex-direction:column;margin-bottom:20px;overflow:hidden;position:relative;width:100%}.proctor-video{flex:1 1;height:100%;object-fit:cover;width:100%}.proctor-placeholder{align-items:center;background:#252836;color:#a0aec0;color:var(--text-sidebar-muted);display:flex;flex:1 1;flex-direction:column;justify-content:center;padding:20px}.proctor-placeholder p{font-size:12px;margin-top:5px}.exam-status-card{background:#ffffff0d;border:1px solid #2d2d2d;border-radius:8px;color:#fff;color:var(--text-sidebar-main);margin-bottom:20px;padding:15px}.status-row{align-items:center;display:flex;font-size:13px;justify-content:space-between;margin-bottom:8px}.status-badge{border-radius:12px;font-size:11px;font-weight:600;padding:2px 8px}.status-badge.success{background:#00c85333;border:1px solid #00c853;color:#69f0ae}.status-badge.pending{background:#dd6b2033;border:1px solid #dd6b20;color:#fbd38d}.screen-share-row{border-top:1px dashed #444;margin-top:10px;padding-top:10px}.btn-enable-screen{align-items:center;background:#667eea;background:var(--primary);border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:11px;font-weight:600;gap:5px;padding:5px 12px}.btn-enable-screen:hover{background:#5a6fd6;background:var(--primary-dark)}.pulse-icon{animation:pulse-mic 1.5s infinite}@keyframes pulse-mic{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.behavior-stats{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr;margin-top:auto}.stat-item{background:#ffffff0d;border:1px solid #2d2d2d;border-radius:8px;padding:10px;text-align:center}.stat-label{color:#a0aec0;color:var(--text-sidebar-muted);display:block;font-size:10px;margin-bottom:4px}.stat-value{color:#667eea;color:var(--primary);font-size:18px;font-weight:700}.stat-value.danger{color:#e53e3e;color:var(--danger)}.exam-main{display:flex;flex:1 1;flex-direction:column;height:100vh;min-width:0;position:relative}.exam-top-bar{align-items:center;background:#fff;border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border);box-shadow:0 1px 2px #0000000d;display:flex;flex-shrink:0;height:64px;justify-content:space-between;padding:0 30px;z-index:8}.room-info h2{color:#2d3748;color:var(--text-dark);font-size:18px;font-weight:700;margin:0}.inline-progress-backdrop{align-items:center;animation:fadeInBackdrop .3s ease forwards;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0f172ab3;display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:99999}.inline-progress-modal{align-items:center;animation:scaleUpModal .4s cubic-bezier(.175,.885,.32,1.275) forwards;background:#fff;border-radius:16px;box-shadow:0 25px 50px -12px #00000040;display:flex;flex-direction:column;max-width:400px;padding:32px 24px;text-align:center;width:90%}.modal-icon-container{align-items:center;background:#fffbeb;border:4px solid #fde68a;border-radius:50%;display:flex;height:64px;justify-content:center;margin-bottom:20px;width:64px}.modal-alert-icon{color:#d97706;font-size:32px}.modal-title{color:#1e293b;font-size:22px;font-weight:700;margin:0 0 12px}.modal-message{color:#475569;font-size:16px;line-height:1.5;margin:0 0 28px}.modal-ok-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:12px;box-shadow:0 4px 6px -1px #2563eb33;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:14px 0;transition:all .2s ease;width:100%}.modal-ok-btn:hover{box-shadow:0 10px 15px -3px #2563eb4d;transform:translateY(-2px)}.modal-ok-btn:active{transform:translateY(0)}.pulse-animation{animation:pulseAlertIcon 2s infinite}@keyframes fadeInBackdrop{0%{opacity:0}to{opacity:1}}@keyframes scaleUpModal{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes pulseAlertIcon{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1)}}@media (max-width:480px){.inline-progress-modal{padding:24px 20px}.modal-title{font-size:20px}.modal-message{font-size:15px}}.recording-indicator{align-items:center;background:#dc35451a;border:1px solid #dc354566;border-radius:20px;color:#c82333;display:flex;font-size:13px;font-weight:600;gap:6px;padding:6px 12px}.recording-dot{animation:recording-pulse 1.2s ease-in-out infinite;background:#dc3545;border-radius:50%;height:8px;width:8px}.recording-chunks{color:#6c757d;font-weight:500}@keyframes recording-pulse{0%,to{opacity:1}50%{opacity:.4}}.room-id{color:#718096;color:var(--text-light);font-size:12px}.top-center-alert{display:flex;flex:1 1;justify-content:center}.alert-badge.warning{align-items:center;animation:slideDown .3s ease-out;background:#e53e3e;background:var(--danger);border-radius:20px;box-shadow:0 2px 10px #e53e3e4d;color:#fff;display:flex;font-size:13px;font-weight:700;gap:8px;padding:6px 16px}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.top-right-section{align-items:center;display:flex;gap:20px}.header-profile{align-items:center;display:flex;gap:10px;text-align:right}.h-profile-text{display:flex;flex-direction:column}.h-name{color:#2d3748;color:var(--text-dark);font-size:14px;font-weight:700}.h-id{color:#718096;color:var(--text-light);font-size:11px}.h-avatar{background:#667eea;background:var(--primary);border-radius:50%;color:#fff;font-size:16px;height:36px;justify-content:center;width:36px}.exam-timer-display,.h-avatar{align-items:center;display:flex}.exam-timer-display{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;font-family:Courier New,monospace;font-size:18px;font-weight:700;gap:8px;padding:8px 16px}.exam-timer-display,.timer-low{color:#e53e3e;color:var(--danger)}.timer-low{animation:pulse-timer 1s infinite}@keyframes pulse-timer{50%{opacity:.5}}.exam-paper-container{background:#f0f2f5;background:var(--bg-main);height:100%;margin-top:16px;overflow-y:auto;padding:30px 40px;position:relative;scroll-behavior:smooth}.waiting-room{align-items:center;display:flex;height:100%;justify-content:center}.waiting-card{background:#fff;border-radius:16px;box-shadow:0 10px 25px #0000000d;max-width:500px;padding:40px;text-align:center;width:100%}.waiting-icon{color:#667eea;color:var(--primary);margin-bottom:20px}.checklist{background:#f7fafc;border-radius:8px;margin-top:30px;padding:20px;text-align:left}.check-item{align-items:self-start;color:#718096;color:var(--text-light);display:flex;gap:10px;margin-bottom:10px}.check-item svg{margin-top:5px}.check-item.ready{color:#00c853;color:var(--success);font-weight:600}.check-item.pending{color:#dd6b20;color:var(--warning)}.link-btn{background:none;border:none;color:#667eea;color:var(--primary);cursor:pointer;font-weight:700;margin-left:auto;text-decoration:underline}.questions-container{margin:0 auto;max-width:900px;padding-bottom:80px}.section-card{background:#0000;border:none;border-radius:0;box-shadow:none;margin-bottom:40px;overflow:visible}.section-header{align-items:center;background:#0000;border-bottom:2px solid #2d3748;display:flex;justify-content:space-between;margin-bottom:20px;padding:10px 0}.section-header h3{font-size:20px;font-weight:800;letter-spacing:.5px;margin:0;text-transform:uppercase}.section-header h3,.section-info{color:#2d3748;color:var(--text-dark)}.section-info{background:#0000;border:none;font-size:13px;font-weight:600;padding:0}.section-questions{padding:0}.question-card{border-bottom:1px solid #e2e8f0;margin-bottom:40px;padding-bottom:20px}.question-card:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.question-header{align-items:flex-start;display:flex;gap:15px;margin-bottom:20px}.q-number-badge{background:#0000;border-radius:0;color:#2d3748;color:var(--text-dark);display:inline-block;font-size:18px;font-weight:800;height:auto;margin-right:5px;padding:0;width:auto}.q-content-wrapper{flex:1 1}.q-text{color:#1a202c;display:block;font-size:16px;font-weight:500;line-height:1.6}.q-image{border:1px solid #e5e7eb;border-radius:4px;display:block;margin-top:15px;max-width:100%}.q-meta{align-items:flex-end;display:flex;flex-direction:column;min-width:80px}.q-marks-badge{background:#0000;border:none;color:#4a5568;font-size:13px;font-weight:700;padding:0;white-space:nowrap}.answer-area{margin-left:47px;margin-top:15px}.student-input{background:#fff;border:1px solid #cbd5e1;border-radius:4px;color:#2d3748;color:var(--text-dark);font-family:inherit;font-size:15px;padding:15px;resize:vertical;transition:all .2s;width:100%}.student-input:focus{background:#fff;border-color:#667eea;border-color:var(--primary);box-shadow:0 0 0 2px #667eea33;outline:none}.mcq-options{display:flex;flex-direction:column;gap:10px}.mcq-label{align-items:center;background:#0000;border:none;border-bottom:1px solid #0000;border-radius:0;cursor:pointer;display:flex;gap:12px;padding:10px 0;transition:all .2s}.mcq-label:hover{background:#00000005}.mcq-label.selected{background:#0000;color:#5a6fd6;color:var(--primary-dark);font-weight:600}.mcq-label input[type=radio]{accent-color:#667eea;accent-color:var(--primary);height:18px;width:18px}.opt-text{color:#2d3748;font-size:15px}.opt-check{color:#667eea;color:var(--primary);font-size:18px;margin-left:auto}.or-group-container{background:#0000;border:1px dashed #cbd5e0;border-radius:8px;margin-bottom:30px;padding:25px;position:relative}.or-badge{background:#718096;border-radius:4px;box-shadow:none;color:#fff;font-size:11px;left:20px;padding:2px 8px;position:absolute;top:-10px;z-index:2}.or-badge,.or-divider{font-weight:700;text-transform:uppercase}.or-divider{color:#718096;font-size:14px;letter-spacing:1px;margin:30px 0;position:relative;text-align:center}.or-divider:after,.or-divider:before{background:#cbd5e0;content:"";height:1px;position:absolute;top:50%;width:40%}.or-divider:before{left:0}.or-divider:after{right:0}.submission-area{border-top:2px solid #2d3748;margin-top:50px;padding-top:30px;text-align:right}.btn-submit-final{cursor:pointer;font-weight:700;padding:2px 5px;transition:opacity .2s}.btn-submit-final:hover{box-shadow:none;opacity:.9;transform:none}.system-check-overlay{align-items:center;background:#fff;display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:10000}.examflex{align-items:center;display:flex;flex-direction:column;gap:10px}.check-card{background:#f3eeee;border:1px solid #ddd;border-radius:12px;box-shadow:0 20px 50px #00000080;color:#fff;max-width:745px;padding:40px;text-align:center;width:90%}.check-card h2{color:#e53e3e;color:var(--danger);font-size:24px;margin-top:0}.check-card p{color:#a0aec0;line-height:1.6}.status-list{border-radius:8px;margin:5px 0;min-height:212px;text-align:left}.force-start-btn{align-items:center;background:#601127;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:700;gap:10px;justify-content:center;letter-spacing:1px;margin-top:0;padding:9px 16px;text-transform:uppercase;transition:transform .2s,background .2s;width:-webkit-fit-content;width:fit-content}.force-start-btn:hover{background:#c0392b;transform:scale(1.02)}.force-start-btn:active{transform:scale(.98)}.force-start-btn.disabled{background:#4a5568;cursor:not-allowed;transform:none}.proctor-screen-container{background:#000;border-bottom:3px solid #5a6fd6;border-bottom:3px solid var(--primary-dark);border-radius:12px;box-shadow:0 10px 15px -3px #0000001a;margin-bottom:25px;overflow:hidden}.screen-header{align-items:center;background:#5a6fd6;background:var(--primary-dark);color:#fff;display:flex;font-size:14px;font-weight:700;gap:12px;padding:10px 20px}.proctor-screen-video{background:#111;display:block;max-height:450px;object-fit:contain;width:100%}@media (max-width:1024px){:root{--sidebar-width:280px}.exam-sidebar.left{padding:15px;width:360px;width:var(--sidebar-width)}.exam-paper-container{padding:20px 25px}.questions-container{max-width:100%}.section-header{align-items:flex-start;flex-direction:column;gap:10px}.section-info{font-size:12px}}@media (max-width:768px){.exam-container{flex-direction:column;height:auto;min-height:100vh;overflow-y:auto}.exam-sidebar.left{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border);border-right:none;flex-direction:column;flex-shrink:0;gap:15px;height:auto;justify-content:center;overflow-x:auto;padding:15px;text-align:center;width:100%}.proctorflex{display:flex;gap:20px;justify-content:center}.exam-sidebar.right{display:none}.proctor-cam-preview,.student-cam-preview{display:inline-block;flex-shrink:0;margin-bottom:0;margin-right:10px;min-width:140px;vertical-align:top;width:140px}.behavior-stats,.sidebar-stats{display:none}.exam-main{height:auto;min-height:calc(100vh - 200px)}.exam-top-bar{align-items:flex-start;flex-direction:column;flex-wrap:wrap;gap:10px;height:auto;min-height:64px;padding:10px 15px}.room-info h2{font-size:16px}.top-center-alert{order:3;width:100%}.top-right-section{margin-left:0;order:2}.exam-timer-display{font-size:14px;padding:6px 12px}.exam-paper-container{padding:20px 15px}.questions-container{max-width:100%;padding-bottom:40px}.section-card{margin-bottom:30px}.section-header h3{font-size:18px}.question-card{margin-bottom:30px;padding-bottom:15px}.question-header{align-items:flex-start;flex-direction:column;gap:10px}.q-number-badge{font-size:16px}.q-text{font-size:15px}.answer-area{margin-left:0;margin-top:15px}.student-input{font-size:16px;padding:12px}.mcq-label{padding:8px 0}.opt-text{font-size:14px}.submission-area{margin-top:30px;padding-top:20px;text-align:center}.btn-submit-final{font-size:15px;padding:12px 25px;width:100%}.check-card{margin:20px;max-width:95%;padding:25px 20px;width:95%}.check-card h2{font-size:20px}.check-preview-area{aspect-ratio:auto;flex-direction:column;gap:15px;height:auto;margin:15px auto;max-width:320px;min-height:400px;padding:10px;width:100%}.status-list{margin:20px 0;padding:15px}.force-start-btn{font-size:14px;padding:12px 20px}.proctor-screen-container{margin-bottom:15px}.proctor-screen-video{max-height:250px}.upload-section-container{margin:20px 15px;max-width:100%;padding:30px 20px}.upload-section-container h2{font-size:20px}.upload-section-container p{font-size:13px}.file-upload-zone{padding:20px 15px}.upload-options-row{flex-direction:column;width:100%}.upload-options-row .file-select-btn{justify-content:center;width:100%}.photo-grid{gap:10px;grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.photo-preview-item img{height:120px}.offline-card{margin:20px 15px;padding:30px 20px}.offline-header h2{font-size:20px}.offline-timer-box h1{font-size:36px}.custom-toast{left:10px;max-width:calc(100% - 20px);min-width:auto;right:10px;top:10px;width:auto}.custom-modal{margin:20px;max-width:95%;width:95%}.modal-body,.modal-footer,.modal-header{padding:15px}.modal-footer{flex-direction:column}.btn-cancel,.btn-confirm{width:100%}.camera-modal-backdrop>div{border-radius:0!important;height:100vh!important;max-height:100vh!important;max-width:100%!important;padding:15px!important;width:100%!important}}.camera-modal-backdrop{align-items:flex-start!important;background:#000000f2!important;bottom:0!important;display:flex!important;justify-content:center!important;left:0!important;overflow-x:hidden!important;overflow-y:auto!important;padding:10px!important;position:fixed!important;right:0!important;top:0!important;z-index:10001!important}.camera-modal-content{background:#1a202c!important;border-radius:12px!important;box-shadow:0 10px 40px #00000080!important;display:flex!important;flex-direction:column!important;gap:15px!important;margin:10px auto!important;max-height:calc(100vh - 20px)!important;max-width:1400px!important;overflow:visible!important;padding:20px!important;position:relative!important;width:95%!important}.camera-modal-header{border-bottom:1px solid #ffffff1a!important;flex-shrink:0!important;flex-wrap:wrap!important;gap:10px!important;justify-content:space-between!important;padding-bottom:10px!important}.camera-modal-header,.camera-modal-header-left{align-items:center!important;display:flex!important}.camera-modal-header-left{flex:1 1!important;flex-wrap:wrap!important;gap:12px!important;min-width:0!important}.camera-modal-header h3{color:#fff!important;font-size:clamp(16px,2.5vw,24px)!important;margin:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.camera-badge{background-color:#2b6cb0!important;border-radius:6px!important;font-size:clamp(10px,1.5vw,14px)!important;font-weight:700!important;gap:6px!important;padding:6px 12px!important;white-space:nowrap!important}.camera-badge,.camera-modal-close-btn{align-items:center!important;color:#fff!important;display:flex!important}.camera-modal-close-btn{background:#e53e3ee6!important;border:none!important;border-radius:50%!important;cursor:pointer!important;flex-shrink:0!important;font-size:clamp(16px,2.5vw,20px)!important;height:clamp(35px,5vw,40px)!important;justify-content:center!important;transition:background .2s!important;width:clamp(35px,5vw,40px)!important}.camera-modal-close-btn:hover{background:#e53e3e!important}.camera-modal-video-container{align-items:center!important;background:#000!important;border-radius:8px!important;display:flex!important;flex:1 1 auto!important;flex-shrink:1!important;justify-content:center!important;max-height:calc(100vh - 300px)!important;min-height:300px!important;overflow:hidden!important;position:relative!important;width:100%!important}.camera-modal-video{height:100%!important;max-height:100%!important;max-width:100%!important;object-fit:contain!important;width:100%!important}.camera-live-indicator{align-items:center!important;background:#2b6cb0e6!important;border-radius:6px!important;bottom:15px!important;color:#fff!important;display:flex!important;font-size:clamp(12px,1.8vw,14px)!important;font-weight:700!important;gap:8px!important;left:15px!important;padding:8px 15px!important;position:absolute!important;z-index:5!important}.camera-modal-crop-container{-webkit-overflow-scrolling:touch!important;align-items:center!important;background:#000!important;border-radius:8px!important;cursor:crosshair!important;display:flex!important;flex:1 1 auto!important;flex-shrink:1!important;justify-content:center!important;max-height:calc(100vh - 350px)!important;min-height:300px!important;overflow:auto!important;position:relative!important;width:100%!important}.camera-modal-crop-container.dragging{cursor:grabbing!important}.camera-modal-crop-container img{display:block!important;height:auto!important;max-height:100%!important;max-width:100%!important;object-fit:contain!important;-webkit-user-select:none!important;user-select:none!important;width:auto!important}.camera-crop-status{align-items:center!important;background:#2b6cb033!important;border-radius:6px!important;color:#fff!important;display:flex!important;flex-shrink:0!important;font-size:clamp(12px,1.8vw,14px)!important;gap:8px!important;justify-content:center!important;padding:10px!important;text-align:center!important}.camera-crop-status.detected{background:#22c55e33!important}.camera-modal-buttons{display:flex!important;flex-shrink:0!important;flex-wrap:wrap;gap:10px!important;justify-content:center!important;margin-top:auto;padding-top:10px!important}.camera-apply-btn,.camera-capture-btn,.camera-crop-toggle-btn,.camera-redetect-btn,.camera-retake-btn,.camera-switch-btn{align-items:center!important;border:none!important;border-radius:8px!important;cursor:pointer!important;display:flex!important;font-size:clamp(14px,2vw,16px)!important;font-weight:600!important;gap:8px!important;min-height:44px!important;padding:clamp(10px,1.5vw,12px) clamp(20px,3vw,24px)!important;transition:all .2s!important;white-space:nowrap!important}.camera-switch-btn{background:#10b981!important;color:#fff!important}.camera-switch-btn:hover:not(:disabled){background:#059669!important}.camera-switch-btn:disabled{background:#718096!important;cursor:not-allowed!important;opacity:.7!important}.camera-capture-btn{background:#2b6cb0!important;color:#fff!important}.camera-capture-btn:hover{background:#2563eb!important}.camera-retake-btn{background:#718096!important;color:#fff!important}.camera-retake-btn:hover{background:#4a5568!important}.camera-redetect-btn{background:#10b981!important;color:#fff!important}.camera-redetect-btn:hover:not(.disabled){background:#059669!important}.camera-redetect-btn.disabled{background:#4a5568!important;cursor:not-allowed!important;opacity:.6!important}.camera-apply-btn{background:#2b6cb0!important;color:#fff!important;font-weight:700!important}.camera-apply-btn:hover:not(.disabled){background:#2563eb!important}.camera-apply-btn.disabled{background:#4a5568!important;cursor:not-allowed!important;opacity:.6!important}.camera-crop-toggle-btn{background:#4a5568cc!important;border:1px solid #fff3!important;color:#fff!important}.camera-crop-toggle-btn:hover{background:#4a5568!important}.camera-crop-toggle-btn.active{background:#e67e22!important;border-color:#d35400!important}@media (max-width:480px){.examflex{max-height:600px;overflow-y:auto;width:100%}.mobile-upload-footer .btn-finish-upload,.mobile-upload-footer .btn-preview-all{flex-direction:column}.mobile-upload-footer .btn-finish-upload svg,.mobile-upload-footer .btn-preview-all svg{font-size:24px}.exam-sidebar{flex-direction:column;justify-content:center}.camera-modal-backdrop{align-items:flex-start!important;padding:5px!important}.camera-modal-content{border-radius:0!important;gap:10px!important;margin:0!important;max-height:100vh!important;max-width:100%!important;padding:15px!important;width:100%!important}.camera-modal-header{align-items:flex-start!important;gap:10px!important}.camera-modal-header-left{align-items:flex-start!important;width:100%!important}.camera-apply-btn,.camera-capture-btn,.camera-crop-toggle-btn,.camera-redetect-btn,.camera-retake-btn,.camera-switch-btn{justify-content:center!important;width:100%!important}}@media (min-width:481px) and (max-width:768px){.camera-modal-backdrop{padding:10px!important}.camera-modal-content{gap:12px!important;max-height:calc(100vh - 20px)!important;padding:15px!important;width:98%!important}.camera-modal-crop-container,.camera-modal-video-container{max-height:calc(100vh - 280px)!important;min-height:300px!important}}@media (min-width:769px) and (max-width:1024px){.camera-modal-backdrop{padding:15px!important}.camera-modal-content{max-height:calc(100vh - 30px)!important;padding:20px!important;width:90%!important}.camera-modal-crop-container,.camera-modal-video-container{max-height:calc(100vh - 320px)!important;min-height:400px!important}}@media (min-width:1025px) and (max-width:1440px){.camera-modal-backdrop{padding:20px!important}.camera-modal-content{max-height:calc(100vh - 40px)!important;max-width:1200px!important;padding:25px!important;width:85%!important}.camera-modal-crop-container,.camera-modal-video-container{max-height:calc(100vh - 350px)!important;min-height:450px!important}}@media (min-width:1441px){.camera-modal-content{max-width:1400px!important;padding:25px!important;width:90%!important}.camera-modal-crop-container,.camera-modal-video-container{max-height:calc(100vh - 380px)!important;min-height:500px!important}}@media (max-height:600px) and (orientation:landscape){.camera-modal-content{gap:10px!important;max-height:95vh!important;padding:15px!important}.camera-modal-crop-container,.camera-modal-video-container{max-height:calc(100vh - 200px)!important;min-height:200px!important}.camera-modal-header h3{font-size:14px!important}.camera-badge{font-size:10px!important;padding:4px 8px!important}}@media (max-height:700px){.camera-modal-content{max-height:calc(100vh - 10px)!important}.camera-modal-crop-container,.camera-modal-video-container{max-height:calc(100vh - 250px)!important}}.waiting-room-screen{padding:20px 15px}.waiting-room-screen h2{font-size:20px}@media (max-width:480px){.camera-modal-buttons{flex-wrap:nowrap!important;gap:8px!important;margin-top:inherit!important;width:100%}.camera-modal-buttons button{flex:1 1!important;font-size:13px!important;min-width:0!important;padding:10px 5px!important}.proctor-flex{display:flex;justify-content:center}.proctor-flexl{margin-left:15px}.exam-sidebar.left{gap:10px;padding:10px;text-align:center}.exam-logout-btn{background-color:#601127;background-color:var(--button-primary-color);border:#ffdead;border-radius:6px;color:#fff;min-height:39px;min-width:44px;padding:10px}.top-right-section{justify-content:space-between;width:100%}.proctor-cam-preview,.student-cam-preview{height:200px;min-width:160px;width:100%}.section-label{font-size:10px}.section-header h3{font-size:16px}.q-number-badge,.q-text{font-size:14px}.check-card{padding:20px 15px}.check-card h2{font-size:18px}.check-preview-area{height:auto;max-width:100%;width:100%}.upload-section-container{padding:25px 15px}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}.photo-preview-item img{height:100px}.offline-card{padding:25px 15px}.offline-timer-box h1{font-size:32px}}@media (max-width:768px) and (orientation:landscape){.exam-sidebar.left{flex-direction:row;height:auto}.check-preview-area{height:150px;width:200px}.exam-main{min-height:auto}}.check-preview-area{align-items:center;background:#000;border:2px solid #e53e3e;border-radius:8px;box-shadow:0 4px 10px #e53e3e80;display:flex;height:210px;justify-content:center;margin:20px auto;overflow:hidden;position:relative;width:280px}.check-video-feed{height:100%;object-fit:contain;transform:scaleX(-1);width:100%}.mobile-reference-photo-box{align-items:center;border-bottom:2px dashed #2b6cb033;display:flex;flex-direction:column;padding-bottom:12px;width:100%}.mobile-reference-photo-box img{border:2px solid #2b6cb0;border-radius:8px;max-height:160px!important;max-width:200px!important;object-fit:contain}.check-placeholder{color:#666;font-size:14px;gap:10px}.check-card,.check-placeholder{align-items:center;display:flex;flex-direction:column}.snap-btn-overlay{align-items:center;background:#e53e3ee6;border:none;border-radius:20px;bottom:15px;box-shadow:0 4px 10px #00000080;color:#fff;cursor:pointer;display:flex;font-weight:700;gap:8px;padding:8px 20px;position:absolute;transition:all .2s;z-index:10}.snap-btn-overlay:hover{background:#c0392b;transform:scale(1.05)}.snap-btn-overlay:disabled{background:#7f8c8d;cursor:not-allowed}.force-start-btn.success,.force-start-btn.success:hover{background:#601127;background:var(--button-primary-color);color:#fff}.retake-btn-overlay{align-items:center;background:#0009;border:1px solid #fff;border-radius:15px;color:#fff;cursor:pointer;display:flex;font-size:12px;gap:5px;padding:5px 12px;position:absolute;right:10px;top:10px;z-index:10}.retake-btn-overlay:hover{background:#000c}.switch-camera-liveness-btn{align-items:center;background:#10b981e6;border:none;border-radius:8px;box-shadow:0 2px 8px #0000004d;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;justify-content:center;min-width:180px;padding:10px 20px;transition:all .2s}.switch-camera-liveness-btn:hover:not(:disabled){background:#059669;box-shadow:0 4px 12px #0006;transform:translateY(-2px)}.switch-camera-liveness-btn:disabled{background:#718096b3;cursor:not-allowed;opacity:.7;transform:none}.ai-scanning-overlay{align-items:center;background:#0003;display:flex;flex-direction:column;inset:0;justify-content:flex-end;padding-bottom:20px;pointer-events:none;position:absolute;z-index:5}.ai-scanning-overlay:before{animation:scan-move 2s linear infinite;background:linear-gradient(90deg,#0000,#667eea,#0000);background:linear-gradient(to right,#0000,var(--primary),#0000);box-shadow:0 0 15px #667eea;box-shadow:0 0 15px var(--primary);content:"";display:block;display:var(--is-scanning-display,block);height:4px;left:0;position:absolute;top:0;width:100%}@keyframes scan-move{0%{top:0}50%{top:100%}to{top:0}}.ai-text.large{align-items:center;background:#000000d9;border:1px solid #444;border-radius:30px;box-shadow:0 4px 15px #00000080;color:#fff;display:flex;font-size:14px;gap:10px;max-width:90%;padding:10px 20px;text-align:center}.ai-text.large:contains("⚠️"),.ai-text.large:has(.warning-icon){border-color:#dd6b20;border-color:var(--warning);color:#fbd38d}.ai-icon.success{color:#00c853;color:var(--success);filter:drop-shadow(0 0 8px rgba(0,200,83,.5));font-size:24px}.spin-icon.ai-icon{color:#667eea;color:var(--primary);font-size:20px}.check-preview-area.verified{border-color:#00c853;border-color:var(--success);box-shadow:0 0 20px #00c85333}.custom-toast{align-items:center;animation:slideInRight .3s ease-out;background:#fff;border-left:5px solid #ccc;border-radius:8px;box-shadow:0 5px 15px #00000026;display:flex;gap:15px;min-width:300px;padding:15px 25px;position:fixed;right:20px;top:20px;z-index:20000}.custom-toast.success{border-left-color:#38a169}.custom-toast.error{border-left-color:#e53e3e}.custom-toast.warning{border-left-color:#dd6b20}.custom-toast.info{border-left-color:#3182ce}.toast-icon{align-items:center;display:flex;font-size:20px}.custom-toast.success .toast-icon{color:#38a169}.custom-toast.error .toast-icon{color:#e53e3e}.custom-toast.warning .toast-icon{color:#dd6b20}.custom-toast.info .toast-icon{color:#3182ce}.toast-message{color:#2d3748;font-size:14px;font-weight:500}@keyframes slideInRight{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.modal-backdrop{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0009;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:15000}.custom-modal{animation:fadeIn .2s ease-out;background:#fff;border-radius:12px;box-shadow:0 20px 50px #0000004d;max-width:450px;overflow:hidden;width:90%}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #eee;display:flex;gap:12px;padding:20px}.modal-header h3{color:#2d3748;font-size:18px;margin:0}.modal-body{color:#4a5568;font-size:15px;line-height:1.5;padding:25px 20px}.modal-footer{background:#f8f9fa;border-top:1px solid #eee;display:flex;gap:10px;justify-content:flex-end;padding:15px 20px}.btn-cancel{background:#edf2f7;border:none;border-radius:6px;color:#4a5568;cursor:pointer;font-weight:600;padding:10px 20px}.btn-cancel:hover{background:#e2e8f0}.btn-confirm{background:#667eea;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;padding:10px 20px}.btn-confirm:hover{background:#5a6fd6}.offline-exam-screen{align-items:center;display:flex;height:100%;justify-content:center}.offline-course-code{font-size:20px;font-weight:760;text-align:left}.offline-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 10px 30px #00000014;height:-webkit-fit-content;height:fit-content;margin-top:auto;max-width:100%;padding:10px 24px;text-align:center;width:100%}.offline-card iframe{height:60vh;width:100%}.offline-no-file{align-items:center;color:#64748b;color:var(--text-muted,#64748b);display:flex;flex-direction:column;justify-content:center;padding:2rem}.offline-no-file p{font-size:1rem;margin:0}.offline-header{margin-bottom:30px}.offline-icon{color:#667eea;color:var(--primary);margin-bottom:15px}.offline-header h2{color:#2d3748;color:var(--text-dark);font-size:24px;margin:0}.offline-instructions{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:30px;padding:20px;text-align:left}.offline-instructions p{color:#2d3748;color:var(--text-dark);margin-bottom:10px}.offline-instructions ul{color:#718096;color:var(--text-light);font-size:14px;line-height:1.6;margin:0;padding-left:20px}.offline-instructions li{margin-bottom:8px}.offline-timer-box{margin-bottom:30px}.offline-timer-box span{color:#718096;color:var(--text-light);display:block;font-size:12px;font-weight:700;margin-bottom:5px;text-transform:uppercase}.offline-timer-box h1{color:#2d3748;color:var(--text-dark);font-family:Courier New,monospace;font-size:48px;margin:0}.offline-timer-box h1.text-danger{animation:pulse 1s infinite;color:#e53e3e;color:var(--danger)}.btn-submit-final.large{font-size:18px;margin-top:15px;padding:18px;width:-webkit-fit-content;width:fit-content}.upload-section-container{animation:fadeIn Up .4s ease-out;background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 10px 40px #00000014;margin:auto;max-width:550px;padding:50px 40px;text-align:center;width:100%}.upload-icon-wrapper{animation:float 3s ease-in-out infinite;color:#e53e3e;color:var(--danger);display:inline-block;filter:drop-shadow(0 4px 6px rgba(229,62,62,.2));margin-bottom:20px}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}.upload-section-container h2{color:#2d3748;color:var(--text-dark);font-size:24px;font-weight:700;margin-bottom:12px}.upload-section-container p{color:#718096;color:var(--text-light);font-size:14px;line-height:1.6;margin-bottom:30px}.file-upload-zone{align-items:center;background:#f8fafc;border:2px dashed #cbd5e0;border-radius:12px;display:flex;flex-direction:column;gap:15px;margin-bottom:30px;padding:30px 20px;transition:all .3s ease}.file-upload-zone:hover{background:#eff6ff;border-color:#667eea;border-color:var(--primary)}.file-select-btn{align-items:center;background:#2d3748;background:var(--text-dark);border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;padding:10px 24px;transition:background .2s}.file-select-btn:hover{background:#000;transform:translateY(-1px)}.file-select-btn svg{font-size:16px}.selected-file-name{color:#667eea;color:var(--primary);font-size:13px;font-weight:600;margin-top:5px;word-break:break-all}.upload-section-container .btn-submit-final{background:linear-gradient(135deg,#667eea,#5a6fd6);background:linear-gradient(135deg,var(--primary) 0,var(--primary-dark) 100%);box-shadow:0 4px 15px #667eea66;font-size:16px;padding:16px;width:100%}.upload-section-container .btn-submit-final:disabled{background:#cbd5e0;box-shadow:none;cursor:not-allowed;transform:none}.upload-section-container .btn-submit-final:not(:disabled):hover{box-shadow:0 6px 20px #667eea80;transform:translateY(-2px)}.upload-options-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}.upload-options-row .file-select-btn{margin:0}.selected-pdf-row{align-items:center;background:#f7fafc;border-radius:8px;display:flex;gap:8px;margin-bottom:12px;padding:10px 12px}.remove-file-btn,.remove-photo-btn{background:none;border:none;border-radius:4px;color:#e53e3e;cursor:pointer;margin-left:auto;padding:4px 8px}.remove-file-btn:hover,.remove-photo-btn:hover{background:#fed7d7}.photo-previews{margin-bottom:16px}.photo-previews-label{color:#4a5568;font-size:.9rem;margin-bottom:8px}.photo-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.photo-preview-item{background:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;position:relative}.photo-preview-item img{display:block;height:140px;object-fit:cover;width:100%}.photo-page-num{color:#718096;display:block;font-size:.75rem;padding:4px 0;text-align:center}.remove-photo-btn{background:#00000080;color:#fff;margin:0;padding:4px 6px;position:absolute;right:4px;top:4px}.remove-photo-btn:hover{background:#e53e3e}img,video{height:auto;max-width:100%}@media (max-width:768px){.file-select-btn,.mcq-label,.nav-q-btn,button{min-height:44px;min-width:44px}input,select,textarea{font-size:16px!important}.exam-paper-container,.exam-sidebar.left,.nav-scroll-area{-webkit-overflow-scrolling:touch}.exam-container,body{overflow-x:hidden}}@supports (-webkit-touch-callout:none){.exam-container{min-height:-webkit-fill-available}}.offline-instructions-container{border-radius:12px;margin-bottom:30px;text-align:left}.offline-flex{display:flex;gap:20px;justify-content:space-between;width:100%}.instructions-title{border-bottom:2px solid #667eea;border-bottom:2px solid var(--primary);color:#2d3748;color:var(--text-dark);display:inline-block;font-size:22px;font-weight:800;margin-bottom:25px;padding-bottom:12px}.instruction-section{flex:1 1;margin-bottom:25px}.instruction-section h4{align-items:center;color:#2d3748;color:var(--text-dark);display:flex;font-size:17px;font-weight:700;gap:12px;margin-bottom:15px}.step-badge{align-items:center;background:#667eea;background:var(--primary);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:15px;font-weight:800;height:28px;justify-content:center;width:28px}.instruction-list{list-style:disc;margin:0;padding-left:45px}.instruction-list li{color:#4a5568;font-size:15px;line-height:1.6;margin-bottom:12px}.instruction-list li strong{color:#2d3748;color:var(--text-dark);font-weight:700}.submission-text{color:#4a5568;font-size:15px;padding-left:45px}.portal-link-box{margin-left:43px}.portal-link{color:#667eea;color:var(--primary);font-size:16px;font-weight:700;text-decoration:none;transition:all .2s;word-break:break-all}.portal-link:hover{color:#5a6fd6;color:var(--primary-dark);text-decoration:underline;transform:translateX(2px)}.completion-hint{background:#fff5f5;border-left:5px solid #e53e3e;border-left:5px solid var(--danger);border-radius:10px;padding:7px}.completion-hint p{color:#c53030;font-size:15px;font-weight:600;line-height:1.5;margin:0}.offline-action-bar{align-items:center;display:flex;flex-direction:column;gap:20px;padding-top:20px}.exam-complete-wrapper{align-items:center;background:#f7fafc;display:flex;inset:0;justify-content:center;position:fixed;z-index:9999}.exam-complete-card{animation:fadeInScale .4s ease;background:#fff;border-radius:16px;box-shadow:0 20px 40px #00000014;max-width:480px;padding:48px 56px;text-align:center;width:90%}.exam-complete-card-iflex{display:flex;justify-content:center}.exam-complete-icon{color:#38a169;font-size:80px;margin-bottom:20px}.exam-complete-title{color:#1a202c;font-size:26px;font-weight:600;margin-bottom:8px}.exam-complete-text{color:#4a5568;font-size:15px;margin-bottom:32px}.exam-complete-btn{background-color:#e53e3e;border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:15px;font-weight:500;padding:14px 26px;transition:all .2s ease}.exam-complete-btn:hover{background-color:#c53030;transform:translateY(-1px)}.exam-complete-btn:active{transform:translateY(0)}@keyframes fadeInScale{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.mobile-upload-footer{box-sizing:border-box!important;display:flex!important;gap:12px!important;justify-content:center!important;margin-bottom:30px!important;margin-top:24px!important;padding:0 10px!important;width:100%!important}.mobile-upload-footer .btn-finish-upload,.mobile-upload-footer .btn-preview-all{align-items:center;border:none;border-radius:12px;cursor:pointer;display:flex;flex:1 1!important;font-size:15px;font-weight:700;gap:10px;justify-content:center;padding:16px;transition:all .3s cubic-bezier(.4,0,.2,1);width:auto!important}.btn-finish-upload{background:linear-gradient(135deg,#667eea,#5a6fd6);background:linear-gradient(135deg,var(--primary) 0,var(--primary-dark) 100%);box-shadow:0 4px 15px #667eea66;color:#fff}.btn-finish-upload:hover:not(:disabled){box-shadow:0 6px 20px #667eea80;transform:translateY(-2px)}.btn-preview-all{background:linear-gradient(135deg,#667eea,#5a6fd6);background:linear-gradient(135deg,var(--primary) 0,var(--primary-dark) 100%);border:2px solid #0000!important;box-shadow:0 4px 15px #667eea66;color:#fff;max-width:320px}.btn-preview-all:hover:not(:disabled){box-shadow:0 6px 20px #667eea8c;opacity:.92;transform:translateY(-2px)}.btn-finish-upload:disabled,.btn-preview-all:disabled{cursor:not-allowed;filter:grayscale(.5);opacity:.6;transform:none!important}.upload-step-status{animation:fadeIn .25s ease;background:#f8faff;border:1px solid #e2e8f0;border-radius:10px;display:flex;flex-direction:column;font-size:13px;gap:8px;margin-top:14px;padding:12px 16px;width:100%}.upload-step{align-items:center;color:#a0aec0;display:flex;font-weight:500;gap:8px;transition:color .3s ease}.upload-step.active{color:#2b6cb0;font-weight:600}.upload-step.complete{color:#2f855a}.upload-step-error{background:#fff5f5;border:1px solid #fc8181;border-radius:6px;color:#c53030;font-size:12px;font-weight:500;line-height:1.5;margin-top:8px;padding:10px 12px}.full-photo-preview-overlay{background:#f8fafc;display:flex;flex-direction:column;inset:0;position:fixed;z-index:10000}.full-preview-header{align-items:center;background:#fff;border-bottom:1px solid #e2e8f0;box-shadow:0 2px 10px #0000000d;display:flex;justify-content:space-between;padding:16px 20px;z-index:10}.full-preview-title{align-items:center;color:#1a202c;display:flex;font-size:18px;font-weight:700;gap:10px}.full-preview-close{align-items:center;background:#f1f5f9;border:none;border-radius:50%;color:#475569;cursor:pointer;display:flex;height:36px;justify-content:center;transition:all .2s;width:36px}.full-preview-close:hover{background:#e2e8f0;color:#1e293b}.full-preview-content{-webkit-overflow-scrolling:touch;align-items:center;background:#f1f5f9;display:flex;flex:1 1;flex-direction:column;gap:20px;overflow-y:auto;padding:20px}.preview-page-card{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;display:flex;flex-direction:column;gap:10px;max-width:600px;padding:10px;width:100%}.preview-page-img{border:1px solid #e2e8f0;border-radius:8px;height:auto;width:100%}.preview-page-info{align-items:center;color:#64748b;display:flex;font-size:14px;font-weight:600;justify-content:space-between;padding:5px}.full-preview-footer{background:#fff;border-top:1px solid #e2e8f0;display:flex;flex-direction:column;gap:12px;padding:20px}.full-preview-submit-btn{align-items:center;background:linear-gradient(135deg,#667eea,#5a6fd6);background:linear-gradient(135deg,var(--primary) 0,var(--primary-dark) 100%);border:none;border-radius:12px;box-shadow:0 4px 15px #667eea66;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:700;gap:10px;justify-content:center;padding:16px;transition:all .2s ease;width:100%}.full-preview-submit-btn:hover:not(:disabled){box-shadow:0 6px 20px #667eea8c;transform:translateY(-2px)}.full-preview-submit-btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.preview-upload-steps{align-items:center;animation:fadeIn .25s ease;background:#f0f4ff;border:1px solid #c7d7f9;border-radius:10px;display:flex;flex-direction:row;flex-wrap:wrap;font-size:12px;font-weight:600;gap:0;justify-content:center;padding:8px 14px;position:relative;row-gap:6px}.preview-upload-step{align-items:center;color:#a0aec0;display:flex;flex-direction:column;gap:4px;min-width:48px;transition:color .3s ease}.preview-upload-step.pu-active{color:#2b6cb0}.preview-upload-step.pu-done{color:#276749}.pu-icon{font-size:14px}.pu-icon.done{color:#38a169}.pu-icon.empty{display:inline-block;height:14px;width:14px}.pu-divider{align-self:flex-start;background:#cbd5e0;border-radius:2px;flex-shrink:0;height:2px;margin-top:7px;width:28px}.pu-error{background:#fff5f5;border:1px solid #fc8181;border-radius:6px;color:#c53030;font-size:11px;font-weight:500;line-height:1.5;margin-top:6px;padding:8px 10px;text-align:center;width:100%}.mobile-upload-footer:has(.btn-preview-all:only-of-type){justify-content:center!important}@media (max-width:480px){.mobile-upload-footer{flex-direction:column}.mobile-upload-footer .btn-preview-all{width:100%!important}.preview-upload-steps{font-size:11px;padding:6px 10px}.pu-divider{width:18px}}.private-call-popup-overlay{align-items:center;animation:pcFadeIn .3s ease-out;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background-color:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:99999}.private-call-popup{animation:pcSlideUp .5s cubic-bezier(.175,.885,.32,1.275);background:#fff;border:1px solid #e2e8f0;border-radius:20px;box-shadow:0 20px 40px #0000004d;max-width:450px;padding:40px 30px;text-align:center;width:90%}.private-call-icon-pulse{align-items:center;background:#ebf8ff;border-radius:50%;display:flex;height:90px;justify-content:center;margin:0 auto 25px;position:relative;width:90px}.private-call-icon-pulse:after{animation:pcIconPulse 2s infinite;border:3px solid #ce3131;border-radius:50%;content:"";height:100%;position:absolute;width:100%}@keyframes pcFadeIn{0%{opacity:0}to{opacity:1}}@keyframes pcSlideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes pcIconPulse{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1.6)}}.private-call-close-btn{background:#ce3131;border:none;border-radius:12px;box-shadow:0 4px 6px #3182ce33;color:#fff;cursor:pointer;font-size:16px;font-weight:700;margin-top:25px;padding:14px 30px;transition:all .2s}.private-call-close-btn:hover{background:#ce3131;box-shadow:0 6px 12px #3182ce4d;transform:translateY(-2px)}.calc-trigger{background-color:#ffebcd;display:none}@media (min-width:1024px){.calc-trigger{align-items:center;border-radius:8px;bottom:1rem;box-shadow:0 2px 8px #00000026;display:flex;height:2.75rem;justify-content:center;padding:0;position:fixed;right:5rem;transition:transform .2s ease,box-shadow .2s ease;width:2.75rem;z-index:1040}.calc-trigger:hover{box-shadow:0 4px 12px #0003;transform:scale(1.05)}}.calc-trigger i{font-size:1.25rem}@media (min-width:1024px){.calc-wrapper{display:block}}@media (max-width:1023px){.calc-wrapper{display:none!important}}.calc-wrapper{bottom:0;pointer-events:none;position:fixed;right:0;top:0;transition:width .3s ease-out;width:0;z-index:1035}.calc-wrapper.calc-wrapper--open{pointer-events:auto;width:320px}.calc-panel{background:#f8fafc;border-left:1px solid #e2e8f0;bottom:0;box-shadow:-4px 0 24px #00000014;display:flex;flex-direction:column;overflow:hidden;padding:1rem;position:absolute;right:0;top:0;width:320px}.calc-display{background:#fff;border:1px solid #e2e8f0;border-radius:10px;flex-shrink:0;margin-bottom:1rem;min-height:3.5rem;padding:.75rem 1rem}.calc-expression{color:#64748b;font-size:.9rem;min-height:1.25rem;word-break:break-all}.calc-result{color:#0f172a;font-size:1.35rem;font-weight:600;margin-top:.25rem;text-align:right}.calc-keys{flex:1 1;flex-direction:column;min-height:0;overflow-y:auto}.calc-keys,.calc-row{display:flex;gap:6px}.calc-key{aspect-ratio:1.4;background:#fff;border:1px solid #e2e8f0;border-radius:8px;color:#334155;cursor:pointer;flex:1 1;font-size:1rem;font-weight:500;max-height:48px;min-width:0;transition:background .15s,border-color .15s}.calc-key:hover{background:#f1f5f9;border-color:#cbd5e1}.calc-key:active{background:#e2e8f0}.calc-key--sci{background:#eef2f7;font-size:.8rem}.calc-key--sci:hover{background:#e2e8f0}.calc-key--clear{background:#fef2f2;color:#b91c1c}.calc-key--clear:hover{background:#fee2e2}.calc-key--equals{background:#1e3a5f;border-color:#1e3a5f;color:#fff}.calc-key--equals:hover{background:#0f172a;border-color:#0f172a}.calc-scientific{flex-wrap:wrap}.calc-scientific .calc-key{flex-basis:calc(25% - 6px);flex-grow:1;flex-shrink:1;min-width:calc(25% - 6px)}:root{--sidebar-width:280px;--bg-color:#0f1115;--primary:#667eea;--primary-dark:#5a6fd6;--danger:#ff4d4d;--success:#00c853;--text-dark:#2d3748;--text-light:#a0aec0}.dashboard-container{background:#0f1115;background:var(--bg-color);display:flex;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;height:100vh;overflow:hidden}.sidebar{background:#1a1c23;border-right:1px solid #2d2d2d;color:#fff;display:flex;flex-direction:column;flex-shrink:0;padding:20px;width:280px;width:var(--sidebar-width)}.sidebar-header{margin-bottom:20px}.proctor-info{gap:12px;margin-bottom:25px}.proctor-avatar,.proctor-info{align-items:center;display:flex}.proctor-avatar{background:#667eea;background:var(--primary);border-radius:50%;box-shadow:0 2px 5px #0003;font-size:18px;font-weight:700;height:45px;justify-content:center;width:45px}.proctor-info h4{font-size:16px;font-weight:600;margin:0}.badge{background:#ffffff1a;border-radius:10px;color:#ccc;font-size:11px;padding:2px 8px}.local-preview{aspect-ratio:4/3;background:#000;border-radius:12px;box-shadow:0 4px 10px #0000004d;margin-bottom:25px;overflow:hidden;position:relative}.local-preview video{display:block;height:100%;object-fit:cover;width:100%}.preview-controls{bottom:8px;display:flex;gap:8px;justify-content:center;left:0;position:absolute;right:0}.preview-controls button{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;border:1px solid #fff3;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s;width:32px}.preview-controls button:hover{background:#fff3}.sidebar-nav{display:flex;flex:1 1;flex-direction:column;overflow:hidden}.nav-label{color:#6b7280;font-size:12px;font-weight:600;letter-spacing:.5px;margin-bottom:10px;text-transform:uppercase}.student-list{list-style:none;margin:0;overflow-y:auto;padding:0}.student-list li{align-items:center;border-radius:6px;color:#a0aec0;color:var(--text-light);cursor:pointer;display:flex;font-size:13px;gap:10px;padding:10px 12px;transition:background .2s,color .2s}.student-list li:hover{background:#ffffff0d;color:#fff}.student-list li.active{background:#667eea33;border-left:3px solid #667eea;border-left:3px solid var(--primary);color:#fff}.status-dot{color:#00c853;color:var(--success);font-size:8px}.start-btn-sidebar{align-items:center;background:#667eea;background:var(--primary);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-weight:700;gap:8px;justify-content:center;margin-top:20px;padding:12px;transition:background .2s}.start-btn-sidebar:hover{background:#5a6fd6;background:var(--primary-dark)}.main-content{display:flex;flex:1 1;flex-direction:column;overflow-y:auto}.top-bar{align-items:center;background:#1a1c23;border-bottom:1px solid #2d2d2d;box-shadow:0 4px 6px #0000004d;display:flex;flex-shrink:0;height:60px;justify-content:space-between;padding:10px 24px;position:-webkit-sticky;position:sticky;top:0;z-index:100}.room-title h2{display:inline-block;font-size:16px;margin:0}.live-indicator,.room-title h2{color:#fff;vertical-align:middle}.live-indicator{animation:pulse 2s infinite;background:#ff4d4d;background:var(--danger);border-radius:4px;font-size:9px;font-weight:700;margin-left:8px;padding:2px 6px}@keyframes pulse{0%{opacity:1}50%{opacity:.6}to{opacity:1}}.exam-timer{align-items:center;background:#2d3748;border:1px solid #4a5568;border-radius:6px;color:#e2e8f0;display:flex;font-family:monospace;font-size:14px;font-weight:600;gap:6px;padding:4px 12px}.students-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);padding:0 24px 16px}.students-grid>.student-card:nth-child(8n+1),.students-grid>.student-card:nth-child(8n+5){scroll-margin-top:0;scroll-snap-align:start}.student-card{background:#1a1c23;border:1px solid #2d3748;border-radius:12px;box-shadow:0 4px 12px #0006;display:flex;flex-direction:column;height:calc(50vh - 54px);min-height:280px;overflow:hidden;position:relative;scroll-snap-align:start;transition:all .2s}.violations-btn svg{fill:red;font-size:24px}.student-card.is-watched{border-color:#667eea;border-color:var(--primary);box-shadow:0 4px 8px #667eea33}.card-toolbar{align-items:flex-start;background:#232731;border-bottom:1px solid #333;border-radius:12px 12px 0 0;display:flex;flex-shrink:0;justify-content:space-between;min-height:40px;padding:8px 12px}.card-toolbar-name{align-items:center;display:flex;flex:1 1;min-width:0}.student-name{color:#fff;font-size:14px;font-weight:700;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.behavior-tag{background:#edf2f7;border-radius:3px;color:#4a5568;flex-shrink:0;font-size:9px;font-weight:600;margin-top:1px;padding:1px 4px}.behavior-tag.danger{background:#fff5f5;color:#ff4d4d;color:var(--danger)}.card-body{background:#718096;border-radius:0 0 12px 12px;display:flex;flex:1 1;flex-direction:column;overflow:hidden;padding:0;position:relative}.controls-overlay{background:linear-gradient(180deg,#00000080 0,#0000);display:flex;gap:4px;justify-content:flex-end;left:0;opacity:0;padding:5px;position:absolute;top:0;transition:opacity .2s ease;width:100%;z-index:10}.student-card.is-watched .controls-overlay,.student-card:hover .controls-overlay{opacity:1}.icon-btn{align-items:center;background:#ffffffe6;border:none;border-radius:4px;box-shadow:0 2px 4px #0003;color:#333;cursor:pointer;display:flex;font-size:11px;height:24px;justify-content:center;transition:all .2s;width:24px}.icon-btn:hover{background:#fff;transform:translateY(-1px)}.icon-btn.active{background:#667eea;background:var(--primary);color:#fff}.icon-btn.warning{color:#ff4d4d;color:var(--danger)}.icon-btn.warning:hover{background:#ff4d4d;background:var(--danger);color:#fff}.streams-layout{grid-gap:1px;background:#111;display:grid;gap:1px;height:100%;width:100%}.streams-layout.split-view{grid-template-columns:1fr 1fr}.streams-layout.single-view{grid-template-columns:1fr}.streams-layout.quad-view{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.streams-layout.quad-view .stream-box:nth-child(3){grid-column:span 2}.stream-box{align-items:center;background:#000;display:flex;height:100%;justify-content:center;overflow:hidden;position:relative}.stream-box video{height:100%;object-fit:contain;width:100%}.stream-box.screen video{background:#1a1a1a;object-fit:contain}.stream-label{background:#0009;border-radius:2px;bottom:4px;color:#fff;font-size:8px;font-weight:600;left:4px;padding:1px 4px;pointer-events:none;position:absolute;text-transform:uppercase;z-index:2}.placeholder{background:#111;color:#718096;font-size:9px;text-align:center;width:100%}.idle-placeholder,.placeholder{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center}.idle-placeholder{background:#718096;color:#a0aec0;cursor:pointer;font-style:italic;font-weight:700;letter-spacing:1px}.idle-placeholder p{color:#e2e8f0;font-size:14px;margin-top:4px}.dark-pagination{align-items:center;background-color:initial;display:flex;justify-content:center;padding:16px}.pagination-group{background:#1a1c23;border:1px solid #2d3748;border-radius:6px;display:flex;overflow:hidden}.page-btn{background:#0000;border:none;border-right:1px solid #2d3748;color:#a0aec0;cursor:pointer;font-size:14px;font-weight:600;padding:8px 16px;transition:all .2s}.page-btn:last-child{border-right:none}.page-btn:hover:not(:disabled){background:#ffffff0d;color:#fff}.page-btn.active{background:#667eea;background:var(--primary);color:#fff}.page-btn:disabled{cursor:not-allowed;opacity:.5}.fullscreen-overlay{background:#0f1115;display:flex;flex-direction:column;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:1000}.fullscreen-header{align-items:center;background:#1a1c23;border-bottom:1px solid #333;display:flex;flex-shrink:0;height:60px;justify-content:space-between;padding:0 30px}.fullscreen-info{align-items:center;display:flex;gap:15px}.fullscreen-info h2{color:#fff;font-size:20px;margin:0}.behavior-tag.large{background:#333;border-radius:4px;color:#eee;font-size:14px;padding:4px 12px}.behavior-tag.large.danger{background:#5a1a1a;color:#feb2b2}.status-pills{align-items:center;display:flex;gap:10px}.live-badge{animation:pulse 1.5s infinite;background:#ff4d4d;background:var(--danger);border-radius:4px;color:#fff;font-size:10px;font-weight:700;padding:2px 8px}.close-fullscreen-btn{align-items:center;background:#ffffff1a;border:1px solid #fff3;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-weight:600;gap:10px;padding:10px 20px;transition:all .2s}.close-fullscreen-btn:hover{background:#fff3;transform:scale(1.02)}.fullscreen-content{align-items:center;display:flex;flex:1 1;justify-content:center;overflow:hidden;padding:20px}.fullscreen-grid{grid-gap:20px;display:grid;gap:20px;height:100%;width:100%}.fullscreen-grid.split{grid-template-columns:1fr 1fr}.fullscreen-grid.single{grid-template-columns:1fr}.fullscreen-grid.quad-view{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1.5fr}.fullscreen-grid.quad-view .fullscreen-stream-box:nth-child(3){grid-column:span 2}.fullscreen-stream-box{align-items:center;background:#000;border:1px solid #333;border-radius:12px;box-shadow:0 10px 30px #00000080;display:flex;height:100%;justify-content:center;overflow:hidden;position:relative}.fullscreen-stream-box video{height:100%;object-fit:contain;width:100%}.fs-label{background:#000000b3;border-radius:4px;color:#2ecc71;font-size:12px;font-weight:700;left:12px;padding:4px 10px;position:absolute;top:12px;z-index:2}.fs-placeholder{color:#4a5568}.fs-placeholder,.fs-placeholder-large{align-items:center;display:flex;flex-direction:column;gap:15px;justify-content:center;text-align:center}.fs-placeholder-large{color:#444;height:100%;width:100%}.fullscreen-controls{background:#1a1c23;border-top:1px solid #333;flex-shrink:0;gap:20px;height:80px;justify-content:center}.fs-btn,.fullscreen-controls{align-items:center;display:flex}.fs-btn{background:#333;border:none;border-radius:8px;box-shadow:0 4px 6px #0003;color:#fff;cursor:pointer;font-size:14px;font-weight:600;gap:10px;padding:12px 24px;transition:all .2s}.fs-btn:hover{background:#444;transform:translateY(-2px)}.fs-btn.active{background:#667eea;background:var(--primary);border-color:#5a6fd6;border-color:var(--primary-dark)}.fs-btn.warning{background:#ff4d4d;background:var(--danger);color:#fff}.spinner{color:#667eea;color:var(--primary);font-size:28px}.spinner-small{animation:spin 1s linear infinite;border:2px solid #ffffff1a;border-radius:50%;border-top-color:#667eea;border-top:2px solid var(--primary);height:20px;width:20px}.toast-error{align-items:center;animation:slideIn .3s ease-out;background:#ff4d4d;background:var(--danger);border-radius:8px;box-shadow:0 4px 12px #ff4d4d4d;color:#fff;display:flex;font-weight:600;gap:10px;margin:15px;padding:12px 20px}@keyframes slideIn{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes swal-fade-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.violation-modal-backdrop{align-items:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0000008c;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:9999}.violation-modal{animation:swal-fade-in .25s cubic-bezier(.34,1.56,.64,1) both;background:#fff;border-radius:14px;box-shadow:0 20px 60px #00000040,0 4px 16px #0000001f;display:flex;flex-direction:column;max-height:85vh;max-width:680px;overflow:hidden;width:100%}.violation-modal-header{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:20px 24px 16px}.violation-modal-header h3{color:#1a202c;font-size:17px;font-weight:700;letter-spacing:-.2px;margin:0}.violation-modal-close{align-items:center;background:#f1f3f5;border:none;border-radius:50%;color:#6b7280;cursor:pointer;display:flex;flex-shrink:0;font-size:13px;height:30px;justify-content:center;transition:background .18s,color .18s;width:30px}.violation-modal-close:hover{background:#e2e8f0;color:#111}.violation-modal-body{flex:1 1;overflow-y:auto;padding:16px 24px 24px}.violation-modal-loading{align-items:center;color:#718096;display:flex;font-size:14px;gap:10px;justify-content:center;padding:20px 0}.violation-modal-total{color:#4a5568;font-size:13px;margin:0 0 14px}.violation-modal-total strong{color:#1a202c;font-weight:700}.violation-modal-empty{color:#a0aec0;font-size:14px;padding:24px 0;text-align:center}.violation-table{border-collapse:collapse;font-size:13px;width:100%}.violation-table thead tr{background:#f8f9fa}.violation-table th{border-bottom:1px solid #e9ecef;color:#6b7280;font-size:11px;font-weight:600;letter-spacing:.5px;padding:9px 12px;text-align:left;text-transform:uppercase}.violation-table td{border-bottom:1px solid #f3f4f6;color:#374151;padding:10px 12px;vertical-align:middle}.violation-table tbody tr:last-child td{border-bottom:none}.violation-table tbody tr:hover td{background:#f9fafb}.violation-table td:nth-child(3){font-weight:600;text-transform:capitalize}.violation-table tbody tr td:nth-child(3)[data-severity=high]{color:#c0392b}.violation-table tbody tr td:nth-child(3)[data-severity=medium]{color:#d97706}.violation-table tbody tr td:nth-child(3)[data-severity=low]{color:#2e7d32}.integrity-footer{font-size:11px;font-weight:600;gap:8px;padding:6px 12px}.stream-box.video-1{border-right:1px solid #222}.stream-box.video-2{border-left:1px solid #222}.stream-box.screen{background:#0a0a0a;border-top:1px solid #222}.card-toolbar .student-stats{align-items:center;display:flex;gap:6px}.tab-warn{border-radius:3px;color:#ff4d4d;color:var(--danger);font-weight:700;gap:3px;padding:1px 4px}.integrity-footer,.tab-warn{align-items:center;background:#fff5f5;display:flex;font-size:10px}.integrity-footer{border-top:1px solid #fed7d7;color:#e53e3e;gap:5px;padding:4px 8px}.stream-box.video-1,.stream-box.video-2{background:#000}.stream-box.screen{background:#1a202c}.spinner{animation:spin 1s linear infinite}.camera-off-placeholder{align-items:center;background:#2d3748;border-radius:8px;color:#718096;display:flex;flex-direction:column;height:100%;justify-content:center;width:100%}.btn-off{background:#e53e3e33;color:#e53e3e!important}.btn-active{background:#2b6cb033;color:#2b6cb0!important}@keyframes spin{to{transform:rotate(1turn)}}.staff-toast{align-items:center;animation:staff-toast-in .25s ease-out;border-radius:8px;box-shadow:0 4px 12px #00000026;display:flex;gap:10px;left:50%;padding:12px 20px;position:fixed;top:20px;transform:translateX(-50%);z-index:10000}.staff-toast-info{background:#ebf8ff;border:1px solid #90cdf4;color:#2b6cb0}.staff-toast .staff-toast-icon{flex-shrink:0;font-size:18px}.staff-toast .staff-toast-message{font-size:14px;font-weight:500}@keyframes staff-toast-in{0%{opacity:0;transform:translateX(-50%) translateY(-10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.chat-trigger{align-items:center;border-radius:50%;bottom:1rem;display:flex;height:3rem;justify-content:center;padding:0;position:fixed;right:1.5rem;transition:transform .2s ease,box-shadow .2s ease;width:3rem;z-index:9999}.chat-trigger:hover{transform:scale(1.05)}.chat-trigger i{font-size:1.25rem}.chat-trigger-badge{background:#dc2626;border:2px solid #fff;border-radius:10px;color:#fff;font-size:.7rem;font-weight:700;height:18px;line-height:18px;min-width:18px;padding:0 5px;position:absolute;right:-4px;text-align:center;top:-4px}.chat-notification{animation:chat-notification-in .25s ease-out;background:#1e293b;border-radius:10px;bottom:5rem;box-shadow:0 4px 20px #0003;color:#fff;font-size:.875rem;max-width:320px;padding:.75rem 1rem;position:fixed;right:1.5rem;z-index:1050}@keyframes chat-notification-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-wrapper{bottom:0;max-width:100%;position:fixed;right:0;width:440px;z-index:9999}.chat-wrapper,.chat-wrapper.is-open{pointer-events:none}.chat-panel-container{height:0;margin-right:1.5rem;max-width:100%;overflow:hidden;pointer-events:auto;transition:height .3s ease-out;width:100%}.chat-wrapper.is-open .chat-panel-container{height:480px;margin-bottom:4rem}.chat-panel{background:linear-gradient(180deg,#f0f4f8,#e8eef5 12%,#fff 28%);border-radius:16px 16px 0 0;box-shadow:0 -4px 24px #0f172a1a;display:flex;flex-direction:column;height:100%;max-height:480px;min-height:360px;overflow:hidden}.chat-panel-header{background:linear-gradient(135deg,#1e3a5f,#0f172a);border-bottom:1px solid #ffffff1a;color:#fff;flex-shrink:0;font-weight:600;padding:12px 16px}.chat-panel-error{background:#fef2f2;border-bottom:1px solid #fecaca;flex-shrink:0}.chat-message-list{background:#f8fafc;display:flex;flex:1 1;flex-direction:column;gap:6px;min-height:0;overflow-x:hidden;overflow-y:auto;padding:12px 10px;scrollbar-color:#e2e8f0 #0000;scrollbar-width:thin;z-index:10}.chat-message-list-empty{color:#6b7280;font-size:.875rem;padding:2rem 1rem;text-align:center}.chat-message-row{align-items:flex-start;display:flex;flex-direction:column}.chat-message{align-items:flex-end;display:flex;gap:8px;max-width:100%}.chat-message--incoming{align-self:flex-start;flex-direction:row}.chat-message--outgoing{align-self:flex-end;flex-direction:row-reverse}.chat-message-body{min-width:0}.chat-message-body--outgoing{align-items:flex-end;display:flex;flex-direction:column}.chat-message-name{color:#6b7280;display:block;font-size:.75rem;margin-bottom:2px;padding-left:2px}.chat-message-body--outgoing .chat-message-name{padding-left:0;padding-right:2px}.chat-reply-tag{border-left:3px solid #94a3b8;color:#6b7280;font-size:.75rem;font-style:italic;margin-bottom:4px;padding-left:8px}.chat-message-body--outgoing .chat-reply-tag{align-self:flex-end;border-left:none;border-right:3px solid #3b82f6;padding-left:0;padding-right:8px}.chat-message--staff.chat-message--outgoing .chat-reply-tag{border-right-color:#059669}.chat-message-bubble{border-radius:14px;padding:8px 12px;word-break:break-word}.chat-message-bubble--incoming{background:#eef2f7;border-bottom-left-radius:4px;box-shadow:0 1px 2px #0000000a;color:#1e293b}.chat-message--staff .chat-message-bubble--incoming{background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-left:3px solid #2563eb;color:#1e3a8a}.chat-message-bubble--outgoing{background:linear-gradient(135deg,#3b82f6,#2563eb);border-bottom-right-radius:4px;box-shadow:0 1px 4px #2563eb59;color:#fff}.chat-message--staff.chat-message--outgoing .chat-message-bubble--outgoing{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 1px 4px #05966959}.chat-message-text{font-size:.9375rem;line-height:1.4;white-space:pre-wrap}.chat-message-text+.chat-image-wrap{margin-top:8px}.chat-message-time{color:#94a3b8;display:block;font-size:.7rem;margin-top:2px;padding-left:2px}.chat-message-body--outgoing .chat-message-time{padding-left:0;padding-right:2px}.chat-message-avatar{height:28px;object-fit:cover;width:28px}.chat-message-avatar-initial{align-items:center;background:#e2e8f0;border:1px solid #cbd5e1;color:#1e293b;display:inline-flex;flex-shrink:0;font-size:.875rem;font-weight:600;justify-content:center}.chat-message--mentioned .chat-message-bubble,.chat-message-row--mentioned .chat-message-bubble{animation:chat-mentioned-pulse 1.2s ease-out;box-shadow:0 0 0 2px #f59e0b}@keyframes chat-mentioned-pulse{0%{box-shadow:0 0 0 4px #f59e0b99}70%{box-shadow:0 0 0 2px #f59e0b}to{box-shadow:0 0 0 2px #f59e0b}}.chat-reply-btn{background:none;border:none;color:#94a3b8;cursor:pointer;font-size:.7rem;margin-top:-2px;padding:2px 0 0 36px}.chat-message-row:has(.chat-message--outgoing){align-items:flex-end}.chat-message-row:has(.chat-message--outgoing) .chat-reply-btn{padding-left:0;padding-right:36px}.chat-reply-btn:hover{color:#3b82f6}.chat-image-wrap{display:inline-block;position:relative}.chat-image-link{border-radius:8px;cursor:pointer;display:block;outline:1px solid #0000000f;overflow:hidden}.chat-image-link:focus-visible{outline:2px solid #3b82f6}.chat-message-img{display:block;max-height:200px;max-width:100%;min-width:120px;object-fit:contain}.chat-image-actions{bottom:6px;display:flex;gap:6px;justify-content:center;left:6px;opacity:0;pointer-events:none;position:absolute;right:6px;transition:opacity .2s ease}.chat-image-actions.visible,.chat-image-wrap:hover .chat-image-actions{opacity:1;pointer-events:auto}.chat-image-btn{align-items:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000000a6;border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-size:.7rem;gap:4px;padding:4px 8px}.chat-image-btn:hover{background:#000c}.chat-message-bubble--outgoing .chat-image-btn{background:#ffffff40}.chat-message-bubble--outgoing .chat-image-btn:hover{background:#fff6}.chat-input-wrap{background:linear-gradient(0deg,#f8fafc,#f1f5f9);border-top:1px solid #e2e8f0;flex-shrink:0;padding:10px 12px}.chat-input-row{align-items:flex-end;display:flex;gap:8px}.chat-input-with-mentions{flex:1 1;min-width:0}.chat-mention-list{background:#fff;border:1px solid #e8eaef;border-radius:10px 10px 0 0;bottom:100%;box-shadow:0 -4px 12px #00000014;left:0;margin-bottom:2px;max-height:160px;overflow-x:hidden;overflow-y:auto;padding:6px 0;position:absolute;right:0;scrollbar-color:#e2e8f0 #0000;scrollbar-width:thin;z-index:10}.chat-mention-list::-webkit-scrollbar{width:4px}.chat-mention-list::-webkit-scrollbar-track{background:#0000}.chat-mention-list::-webkit-scrollbar-thumb{background:#e2e8f0;border-radius:2px}.chat-mention-list::-webkit-scrollbar-thumb:hover{background:#cbd5e1}.chat-mention-item{align-items:center;background:none;border:none;cursor:pointer;display:flex;font-size:.875rem;gap:8px;padding:8px 12px;text-align:left;width:100%}.chat-mention-item:focus,.chat-mention-item:hover{background:#eef2f7;outline:none}.chat-mention-avatar{height:24px;object-fit:cover;width:24px}.chat-mention-avatar-initial{align-items:center;background:#e2e8f0;border:1px solid #cbd5e1;color:#1e293b;display:inline-flex;flex-shrink:0;font-size:.75rem;font-weight:600;justify-content:center}.chat-input-preview{border-radius:8px;max-height:72px;max-width:100px;object-fit:cover}.App{min-height:100vh;width:100%}
/*# sourceMappingURL=main.d0481aec.css.map*/