body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}body{-webkit-user-select:none;user-select:none}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}.video-container{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));width:100%}.video-container video{aspect-ratio:16/9;max-width:100%}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.connection-status{background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;margin:2rem auto;max-width:1000px;padding:2.5rem}.connection-status h3{color:#1a73e8;font-size:24px;margin:0;text-align:center}.welcome-screen{width:100%}.welcome-screen h3{color:#1a73e8;font-size:28px;font-weight:600;margin-bottom:2rem;text-align:center}.welcome-content{align-items:flex-start;display:flex;gap:3rem;margin-top:2rem}.left-panel{flex:1 1;max-width:450px}.right-panel{flex:1 1}.form-info{background:#f8f9fa;border:1px solid #e9ecef;border-radius:12px;padding:1.5rem}.form-info p{grid-gap:1rem;align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000a;color:#2c3e50;display:grid;font-size:16px;gap:1rem;grid-template-columns:120px 1fr;margin:.8rem 0;padding:.8rem 1.2rem}.form-info p span:first-child{color:#6c757d;font-weight:500;white-space:nowrap}.form-info p span:last-child{color:#2c3e50;font-weight:500;text-align:right;word-break:break-all}.status-message{border-radius:8px;font-size:16px;margin:1.5rem 0;padding:1rem}.status-message:before{border-radius:50%;content:"";display:inline-block;height:10px;margin-right:8px;width:10px}.status-message.connected{background:#d4edda;color:#155724}.status-message.connected:before{background:#28a745}.status-message.connecting:before{background:#ffc107}.button-group{display:flex;justify-content:center;margin-top:2rem}.button{border-radius:8px;font-size:16px;font-weight:500;min-width:180px;padding:1rem 2.5rem;text-align:center;transition:all .3s ease}.warning-dialog-overlay{align-items:center;animation:fadeIn .2s ease-out;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.warning-dialog{animation:slideIn .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000026;max-width:400px;padding:24px;position:relative;width:90%}.close-button{background:#0000;color:#666;font-size:18px;font-weight:300;line-height:1;padding:8px 12px;position:absolute;right:12px;top:12px;transition:all .2s ease}.close-button:hover{background-color:#f0f0f0;color:#ef4444;transform:scale(1.1)}.warning-content{padding:12px 0;text-align:center}.warning-icon{font-size:48px;margin-bottom:16px}.warning-content h3{color:#ef4444;font-size:24px;margin:0 0 12px}.warning-content p{color:#1a1a1a;font-size:16px;line-height:1.5;margin:0 0 20px}.warning-count{background:#fff5f5;border-radius:20px;color:#ef4444;display:inline-block;font-size:14px;font-weight:500;padding:8px 16px}.exam-container{grid-gap:20px;display:grid;gap:20px;grid-template-columns:50% 50%;height:calc(100vh - 40px);padding:20px}.section-header{background:#fff;border-bottom:1px solid #e0e0e0;padding:16px 24px}.section-title{color:#1a1a1a;font-size:18px;font-weight:600;margin:0}.question-paper-section{background:#f5f5f5;border-radius:12px;display:flex;flex-direction:column;height:100%;overflow:hidden}.question-paper-content{flex:1 1;overflow:hidden;padding:16px}.exam-session-section{display:flex;flex-direction:column;gap:16px}.exam-session-header{padding:0 8px}.exam-session-header h1{color:#1a1a1a;font-size:24px;font-weight:600;margin:0}.exam-session-header p{color:#666;margin:4px 0 0}.video-streams{display:flex;flex-direction:column;gap:16px;padding:16px}.video-container{align-items:center;background:#0f172a;border-radius:12px;display:flex;justify-content:center;overflow:hidden;position:relative}.video-container video{height:100%;object-fit:cover;width:100%}.video-container.student{max-height:360px;width:100%}.video-container.proctor{height:200px;max-width:200px;width:100%}.video-label{align-items:center;background:#0f172a;border-radius:20px;bottom:12px;color:#fff;display:flex;font-size:12px;font-weight:600;gap:8px;left:12px;padding:4px 8px;position:absolute}.status-indicator{background:#22c55e;border-radius:50%;height:8px;width:8px}.stream-controls{align-items:center;display:flex;gap:16px}.stop-button{background:#ef4444;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px;transition:background .2s}.stop-button:hover{background:#dc2626}.proctor-section{align-items:flex-start;display:flex;gap:12px;height:200px}.instructions-panel{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #0000001a;flex:1 1;height:100%;overflow-y:auto;padding:12px 16px}.instructions-panel h4{align-items:center;border-bottom:1px solid #e2e8f0;color:#1a73e8;display:flex;font-size:18px;font-weight:600;gap:6px;margin:0 0 12px;padding-bottom:8px}.instructions-panel h4:before{content:"📝";font-size:18px}.instructions-panel ul{display:flex;flex-direction:column;gap:1rem;list-style-type:disc;margin:0;padding-left:16px}.instructions-panel li{color:#4a5568;font-size:15px;line-height:1.5;position:relative}.instructions-panel li::marker{color:#1a73e8}.instructions-panel::-webkit-scrollbar{width:4px}.instructions-panel::-webkit-scrollbar-track{background:#0000}.instructions-panel::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.instructions-panel::-webkit-scrollbar-thumb:hover{background:#94a3b8}.chat-widget-container{bottom:20px;position:fixed;right:20px;transition:all .3s ease-in-out;z-index:1000}.chat-widget-container.expanded{height:500px;width:380px}.message-section-container{bottom:20px;position:fixed;right:20px;width:380px;z-index:1000}.chat-toggle-button{align-items:center;background:#1a73e8;border:none;border-radius:50%;box-shadow:0 4px 12px #00000026;color:#fff;cursor:pointer;display:flex;height:56px;justify-content:center;position:relative;transition:transform .2s ease;width:56px}.chat-toggle-button:hover{background:#1557b0;transform:scale(1.05)}.chat-widget{animation:slideIn .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 4px 12px #00000014;display:flex;flex-direction:column;height:100%;overflow:hidden}.chat-header{background:#fff;border-bottom:1px solid #f0f0f0}.chat-header h3{color:#1a1a1a;font-size:14px;font-weight:600;margin:0}.minimize-button{align-items:center;background:#0000;border:none;border-radius:50%;color:#666;cursor:pointer;display:flex;height:32px;justify-content:center;padding:6px;transition:all .2s ease;width:32px}.minimize-button:hover{background-color:#f0f0f0;color:#ef4444;transform:scale(1.1)}.chat-messages{background:#f8f9fa;display:flex;flex:1 1;flex-direction:column;gap:12px;overflow-y:auto;padding:16px}.chat-messages::-webkit-scrollbar{width:4px}.chat-messages::-webkit-scrollbar-track{background:#0000}.chat-messages::-webkit-scrollbar-thumb{background:#e0e0e0;border-radius:2px}.chat-messages::-webkit-scrollbar-thumb:hover{background:#d0d0d0}.message{display:flex;flex-direction:column;margin-bottom:4px;max-width:80%}.message.sent-message{align-self:flex-end;margin-left:auto}.message.received-message{align-self:flex-start;margin-right:auto}.message-bubble{border-radius:16px;font-size:13px;line-height:1.4;padding:10px 14px;position:relative;width:-webkit-fit-content;width:fit-content}.sent-message .message-bubble{background:#e3f2fd;border-bottom-right-radius:4px;color:#1a1a1a;margin-left:auto}.received-message .message-bubble{background:#fff;border:1px solid #e0e0e0;border-bottom-left-radius:4px;color:#1a1a1a;margin-right:auto}.message-content{color:#000;margin-bottom:4px;white-space:pre-wrap;word-break:break-word}.message-time{color:#666;display:block;font-size:10px;margin-top:2px;text-align:right}.received-message .message-time,.sent-message .message-time{color:#666}.chat-input{background:#fff;border-top:1px solid #f0f0f0;display:flex;padding:0}.input-wrapper{align-items:center;background:#f8f9fa;border:1px solid #e0e0e0;border-radius:24px;display:flex;flex:1 1;gap:8px;margin:12px;padding:4px;transition:border-color .2s ease}.input-wrapper:focus-within{border-color:#1a73e8}.message-input{background:#0000;border:none;color:#1a1a1a;flex:1 1;font-size:14px;outline:none;padding:8px 16px}.message-input::placeholder{color:#999}.send-button{align-items:center;background:#1a73e8;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:36px;justify-content:center;margin-right:4px;min-width:36px;padding:0;transition:all .2s ease;width:36px}.send-button:hover{background:#1557b0;transform:scale(1.1)}.send-button:active{transform:scale(.95)}.send-button svg{stroke:currentColor;fill:none;height:18px;width:18px}.notification-badge{align-items:center;background:#ef4444;border:2px solid #fff;border-radius:50%;color:#fff;display:flex;font-size:12px;font-weight:600;height:22px;justify-content:center;position:absolute;right:-5px;top:-5px;width:22px}.chat-tabs{display:flex;gap:8px;margin-right:16px}.chat-tab{background:#f0f0f0;border:none;border-radius:20px;color:#666;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;position:relative;transition:all .2s ease}.chat-tab:hover{background:#e0e0e0}.chat-tab.active{background:#1a73e8;color:#fff}.tab-badge{background:#e53935;border-radius:10px;color:#fff;font-size:12px;font-weight:700;height:18px;justify-content:center;min-width:18px;padding:2px 6px;position:absolute;right:-6px;top:-6px}.chat-header,.tab-badge{align-items:center;display:flex}.chat-header{border-bottom:1px solid #e0e0e0;justify-content:space-between;padding:12px 16px}.message-type{border-radius:10px;display:inline-block;font-size:10px;margin-left:8px;padding:2px 6px;text-transform:capitalize;vertical-align:middle}.message-type.broadcast{background:#e3f2fd;color:#1565c0}.message-type.private{background:#fce4ec;color:#c2185b}.welcome-screen{background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000014;margin:0 auto;max-width:1000px;padding:1.5rem;position:relative}.welcome-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.welcome-header h3{color:#1a1a1a;font-size:20px;font-weight:600;margin:0}.header-actions{align-items:center;display:flex;gap:1rem}.session-id{color:#4285f4;font-size:13px;font-weight:500}.welcome-content{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr 1fr;margin-bottom:1.5rem}.left-panel,.right-panel{background:#f8f9fa;border-radius:8px;padding:1.25rem}.left-panel h4,.right-panel h4{color:#1a1a1a;font-size:15px;font-weight:600;margin:0 0 1.25rem}.requirements-list{background:#f8f9fa;border-radius:8px;display:flex;flex-direction:column;gap:.75rem;padding:1.25rem}.requirement-item{background:#fff;box-shadow:0 1px 3px #00000005}.retry-button:hover{background:#494c50}.status-message{border-radius:6px;font-size:13px;gap:.5rem;margin:1rem 0;padding:.75rem;text-align:center}.status-message.connected{background:#e6f4ea}.status-message.connecting{background:#fff3cd;color:#856404}.instructions-list{display:flex;flex-direction:column;gap:.75rem}.instruction-item{background:#fff;box-shadow:0 1px 3px #0000000a;gap:.75rem;padding:.75rem}.instruction-icon,.instruction-item{align-items:center;border-radius:6px;display:flex}.instruction-icon{background:#f0f4ff;color:#4285f4;font-size:16px;height:32px;justify-content:center;width:32px}.instruction-text{color:#1a1a1a;flex:1 1;font-size:13px;font-weight:500}.warning-note{align-items:center;background:#fef7e0;border-radius:6px;color:#b45309;display:flex;font-size:12px;gap:.5rem;margin-top:1rem;padding:.75rem}.warning-note svg{flex-shrink:0;font-size:16px}.view-guidelines-button{align-items:center;background:#f0f4ff;border:none;border-radius:6px;color:#1a73e8;cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:.5rem;justify-content:center;margin-top:1rem;padding:.75rem;transition:all .2s ease;width:100%}.view-guidelines-button:hover{background:#e1e8fd}.view-guidelines-button svg{font-size:16px}.welcome-footer{background:#fff;border-radius:0 0 12px 12px;border-top:1px solid #e0e0e0;bottom:0;box-shadow:0 -4px 10px #0000000d;display:flex;justify-content:center;left:0;padding:15px 0;position:-webkit-sticky;position:sticky;right:0;z-index:100}.back-button{background:#fff;border:1px solid #dadce0;border-radius:6px;color:#5f6368;cursor:pointer;font-size:14px;font-weight:500;padding:.5rem 1.5rem;transition:all .2s ease}.back-button:hover{background:#f8f9fa;border-color:#c0c4c9}.start-button{background:#1a73e8;border:none;border-radius:6px;box-shadow:0 2px 5px #0000001a;color:#fff;cursor:pointer;font-size:16px;font-weight:600;min-width:200px;padding:.75rem 3rem;transition:all .2s ease;width:auto}.start-button:hover{background:#1557b0;box-shadow:0 4px 8px #0000001f;transform:translateY(-2px)}.start-button:disabled{background:#dadce0;cursor:not-allowed}.start-button.stop{background:#dc3545}.start-button.stop:hover{background:#bb2d3b}.system-check-button{align-items:center;background:#f0f4ff;border:none;border-radius:6px;color:#1a73e8;cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:.5rem;justify-content:center;padding:.5rem 1rem;transition:all .2s ease}.system-check-button:hover{background:#e1e8fd}.system-check-button svg{font-size:16px}.exam-warning-banner{align-items:center;background:#fef7e0;border-radius:6px;box-shadow:0 1px 3px #0000000d;color:#b45309;display:flex;font-size:14px;font-weight:500;gap:.75rem;margin-bottom:1rem;padding:.75rem 1rem}.exam-warning-banner svg{color:#f59e0b;flex-shrink:0;font-size:20px}@media (max-width:768px){.welcome-content{grid-template-columns:1fr}.welcome-screen{margin:.75rem;padding:.75rem}.header-actions{align-items:flex-end;flex-direction:column;gap:.5rem}.start-button{min-width:0;min-width:auto;width:90%}}.exam-guidelines{background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000014;display:flex;flex-direction:column;margin:1.5rem auto;max-width:1000px;padding:1.5rem}.guidelines-header{display:flex;flex-direction:column;margin-bottom:1rem}.guidelines-header h3{color:#1a1a1a;font-size:20px;font-weight:600;margin:0 0 1rem}.guidelines-tabs{background:linear-gradient(145deg,#f8f9fa,#f1f3f5);border-radius:12px;box-shadow:0 3px 10px #0000000d;display:flex;margin-bottom:1.5rem;padding:.625rem;position:-webkit-sticky;position:sticky;top:0;z-index:10}.tab-button{align-items:center;background:#0000;border:none;border-radius:8px;color:#5f6368;cursor:pointer;display:flex;flex:1 1;font-size:14px;font-weight:600;justify-content:flex-start;margin-right:.5rem;overflow:hidden;padding:.75rem 1.25rem;position:relative;text-align:left;transition:all .3s cubic-bezier(.4,0,.2,1)}.tab-button:hover{background:#1a73e80d;color:#1a73e8}.tab-button.active{background:#fff;box-shadow:0 4px 12px #1a73e826;color:#1a73e8}.tab-button.active:after{background:#1a73e8;border-radius:10px 10px 0 0;bottom:0;content:"";height:3px;left:50%;position:absolute;transform:translateX(-50%);width:30%}.tab-icon{align-items:center;background:#0000000a;border-radius:50%;display:flex;font-size:18px;height:32px;justify-content:center;margin-right:12px;transition:all .3s ease;width:32px}.tab-button.active .tab-icon{background:#1a73e81a;color:#1a73e8}.tab-text{display:flex;flex-direction:column}.tab-title{font-size:14px;font-weight:600;margin-bottom:2px}.tab-subtitle{font-size:12px;font-weight:400;opacity:.7}.guidelines-content{background:#fff;border-radius:12px;box-shadow:0 6px 18px #0000000f;margin-bottom:1rem;max-height:50vh;overflow-y:auto;padding:1.5rem;position:relative;transition:all .3s ease}.before-exam-section,.during-exam-section,.post-exam-section{animation:fadeIn .4s ease-in-out}.guideline-section{background:#fff;border-left:4px solid #4285f4;border-radius:12px;box-shadow:0 4px 12px #0000000a;cursor:pointer;margin-bottom:1.25rem;padding:1.5rem;transition:all .3s ease}.guideline-section:hover{box-shadow:0 6px 16px #00000014;transform:translateY(-2px)}.guideline-section.expanded{background-color:#fbfbff;border-color:#1a73e8}.section-header{gap:.75rem;margin-bottom:1.25rem}.section-header,.section-icon{align-items:center;display:flex}.section-icon{background:linear-gradient(135deg,#f0f4ff,#e6efff);border-radius:10px;box-shadow:0 2px 6px #4285f426;color:#4285f4;font-size:20px;height:38px;justify-content:center;width:38px}.guideline-section h4{color:#1a1a1a;font-size:18px;font-weight:600;letter-spacing:-.2px;margin:0}.guideline-list{list-style-type:none;margin:0;padding:0}.guideline-list li{align-items:flex-start;border-bottom:1px solid #00000008;color:#444;display:flex;font-size:14.5px;padding:.625rem 0;transition:all .2s ease}.guideline-list li:last-child{border-bottom:none}.guideline-list li:hover{color:#1a1a1a;padding-left:4px}.even-item,.guideline-list li:hover{background-color:#00000003}.odd-item{background-color:initial}.bullet{color:#4285f4;font-size:16px;line-height:1;margin-right:10px}.dos-donts-container{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr 1fr;margin-top:1.5rem;position:relative}.donts-section,.dos-section{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000000a;display:flex;flex-direction:column;height:100%;padding:1.5rem;transition:all .3s ease}.dos-section{background:linear-gradient(90deg,#34a85308,#0000);border-left:4px solid #34a853}.donts-section{background:linear-gradient(90deg,#ea433508,#0000);border-left:4px solid #ea4335}.donts-section:hover,.dos-section:hover{box-shadow:0 6px 16px #00000014;transform:translateY(-2px)}.donts-section h5,.dos-section h5{align-items:center;border-bottom:1px solid #0000000f;display:flex;font-size:18px;font-weight:600;gap:.5rem;letter-spacing:-.3px;margin:0 0 1rem;padding-bottom:.75rem}.heading-icon{font-size:22px}.dos-section h5{color:#34a853}.donts-section h5{color:#ea4335}.do-item,.dont-item{align-items:flex-start!important;display:flex!important;padding:.75rem 0!important}.item-text{flex:1 1;line-height:1.4}.do-item .check-icon{background-color:#34a8531a;box-shadow:0 2px 4px #34a8531a;color:#34a853}.do-item .check-icon,.dont-item .x-icon{align-items:center;border-radius:50%;display:inline-flex;font-weight:700;height:20px;justify-content:center;margin-right:10px;min-width:20px;width:20px}.dont-item .x-icon{background-color:#ea43351a;box-shadow:0 2px 4px #ea43351a;color:#ea4335}.guidelines-warning{align-items:center;background:#fef7e0;border-radius:6px;color:#b45309;display:flex;font-size:13px;gap:.75rem;padding:.75rem 1rem}.guidelines-warning svg{flex-shrink:0;font-size:20px}@media (max-width:768px){.dos-donts-container{gap:1rem;grid-template-columns:1fr}.dos-section{margin-bottom:1rem}.exam-guidelines{margin:1rem;padding:1rem}.guidelines-tabs{flex-wrap:wrap}.tab-button{align-items:center;flex-direction:column;padding:.75rem .5rem;text-align:center}.tab-icon{margin-bottom:8px;margin-right:0}.tab-text{align-items:center}.tab-title{font-size:12px}.tab-subtitle{display:none;font-size:10px}.guidelines-content{max-height:40vh}}.system-check-overlay{align-items:center;background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.system-check-dialog{background:#fff;border-radius:12px;box-shadow:0 4px 24px #0003;display:flex;flex-direction:column;max-height:90vh;max-width:95vw;overflow:hidden;width:550px}.dialog-header{border-bottom:1px solid #e0e0e0;padding:1.25rem}.dialog-header h3{color:#1a1a1a;font-weight:600}.dialog-check-content{display:flex;flex:1 1;flex-direction:column;gap:1rem;overflow-y:auto;padding:1.25rem}.requirements-section{display:flex;flex-direction:column;gap:.75rem}.requirement-item{align-items:center;background:#f8f9fa;border-radius:8px;box-shadow:0 1px 3px #0000000a;display:flex;gap:.75rem;padding:1rem 1rem 1rem 2.5rem;position:relative}.requirement-status{align-items:center;display:flex;font-size:18px;justify-content:center;left:.75rem;position:absolute;top:50%;transform:translateY(-50%)}.requirement-status svg{font-size:18px}.requirement-item.available .requirement-status svg{color:#34a853}.requirement-item.unavailable .requirement-status svg,.requirement-item.unavailable .requirement-title{color:#ea4335}.requirement-icon{align-items:center;color:#5f6368;display:flex;font-size:18px;justify-content:center}.requirement-info{flex:1 1}.requirement-title{color:#1a1a1a;font-size:14px;font-weight:500;margin-bottom:4px}.requirement-subtitle{color:#5f6368;font-size:13px}.requirements-status-section{background-color:#d1fae5;border-radius:8px;margin-bottom:.75rem;margin-top:.75rem;padding:.75rem 0;width:100%}.requirements-status-section,.success-message{align-items:center;display:flex;justify-content:center}.success-message{color:#137333;font-size:14px;font-weight:500;gap:.5rem}.success-message svg{color:#34a853;font-size:18px}.action-buttons-row{display:flex;gap:1rem;margin-top:.5rem}.retry-check-button{background-color:#4b5563;flex:1 1}.proctor-status-button,.retry-check-button{align-items:center;border-radius:8px;display:flex;justify-content:center}.proctor-status-button{background-color:initial;flex:2 1;padding:0}.sys-check-button{align-items:center;background:#0000;border:none;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:.5rem;justify-content:center;transition:all .2s ease;width:100%}.retry-button:hover{background:#ffffff1a}.retry-button svg{font-size:16px}.status-message{align-items:center;color:#856404;display:flex;font-weight:500;justify-content:center;width:100%}.status-message.connected{color:#137333}.dialog-footer{border-top:1px solid #e0e0e0;display:flex;justify-content:center;padding:1rem 1.25rem}.continue-button{background:#1a73e8;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:.5rem 1.5rem;transition:all .2s ease}.continue-button:hover{background:#1557b0}.continue-button:disabled{background:#dadce0;color:#5f6368;cursor:not-allowed}@media (min-width:640px){.dialog-grid{grid-template-areas:"reqs reqs" "action status" "success success";grid-template-columns:1fr 3fr}.requirements-section{grid-area:reqs}.action-buttons-section{grid-area:action}.connection-status-section{grid-area:status}.success-status-section{grid-area:success}}@media (min-width:768px){.system-check-dialog{width:650px}}.exam-timer{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;gap:8px;padding:8px 16px}.timer-icon{font-size:20px}.timer-text{color:#1a73e8;font-family:monospace;font-size:16px;font-weight:600}.exam-timer.time-up .timer-text{animation:pulse 1s infinite;color:#dc2626}.submit-exam-btn{background-color:#dc2626;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;margin-left:auto;padding:8px 16px;transition:background-color .2s}.submit-exam-btn:hover{background-color:#b91c1c}.submit-exam-btn:focus{box-shadow:0 0 0 2px #fecaca;outline:none}.exam-end-screen{align-items:center;animation:fadeIn .5s ease-in-out;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:9999}.end-screen-content{animation:slideUp .5s ease-out .2s both;background:#fff;border-radius:20px;box-shadow:0 10px 30px #0000001a;max-width:600px;padding:3rem 4rem;text-align:center;width:90%}.end-screen-logo{color:#1a73e8;font-size:2rem;font-weight:700;margin-bottom:2rem}.end-screen-message h1{animation:fadeIn .5s ease-in-out .5s both;color:#2c3e50;font-size:2.5rem;margin-bottom:1.5rem}.completion-status{animation:fadeIn .5s ease-in-out .7s both;color:#505050;line-height:1.6;margin:2rem 0}.completion-status p{margin:.5rem 0}.thank-you-message{animation:fadeIn .5s ease-in-out .9s both;margin:3rem 0}.thank-you-message h2{color:#1a73e8;font-size:2rem;margin-bottom:.5rem}.thank-you-message p{color:#666;font-size:1.2rem}.exit-message{animation:fadeIn .5s ease-in-out 1.1s both;border-top:1px solid #eee;color:#666;font-size:.9rem;margin-top:2rem;padding-top:1rem}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.question-paper{background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000001a;display:flex;flex-direction:column;height:100%}.question-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:16px}.question-header h3{color:#1a202c;font-size:1.25rem;margin:0}.question-type-badge{background:#e2e8f0;border-radius:20px;color:#4a5568;font-size:.875rem;font-weight:500;padding:6px 12px}.question-content{display:flex;flex:1 1;flex-direction:column;overflow-y:auto;padding:16px}.question-text{color:#2d3748;font-size:1.125rem;line-height:1.6;margin-bottom:24px}.mcq-question .options-container{display:flex;flex-direction:column;gap:12px}.option-label{align-items:center;background:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;display:flex;padding:12px 16px;transition:all .2s ease}.option-label:hover{background:#edf2f7}.option-label input[type=radio]{margin-right:12px}.option-text{color:#4a5568;font-size:1rem}.subjective-question{display:flex;flex:1 1;flex-direction:column;min-height:0}.answer-textarea{border:1px solid #e2e8f0;border-radius:8px;box-sizing:border-box;color:#2d3748;flex:1 1;font-size:1rem;line-height:1.6;margin:0;min-height:200px;padding:16px;resize:none;transition:border-color .2s ease;width:100%}.answer-textarea:focus{border-color:#4299e1;box-shadow:0 0 0 3px #4299e11a;outline:none}.navigation-buttons{align-items:center;border-top:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:16px}.nav-button{background:#4299e1;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:8px 16px;transition:all .2s ease}.nav-button:disabled{background:#cbd5e0;cursor:not-allowed}.nav-button:not(:disabled):hover{background:#3182ce}.nav-button.submit{background:#38a169}.nav-button.submit:hover:not(:disabled){background:#2f855a}.nav-button.submit.disabled{background:#94a3b8;cursor:not-allowed;opacity:.7}.nav-button.submit.disabled:hover{background:#94a3b8}.question-paper-loading{align-items:center;color:#4a5568;display:flex;flex-direction:column;height:100%;justify-content:center}.loader{animation:spin 1s linear infinite;border:3px solid #f3f3f3;border-radius:50%;border-top-color:#4299e1;height:40px;margin-bottom:16px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.question-paper-error{align-items:center;color:#e53e3e;display:flex;flex-direction:column;height:100%;justify-content:center;text-align:center}.question-paper-error button{background:#4299e1;border:none;border-radius:6px;color:#fff;cursor:pointer;margin-top:16px;padding:8px 16px;transition:background .2s ease}.question-paper-error button:hover{background:#3182ce}.answer-mode-selector{background:#f8f9fa;border-radius:8px;display:flex;gap:24px;margin-bottom:16px;padding:12px}.mode-label{align-items:center;border-radius:4px;cursor:pointer;display:flex;gap:8px;padding:8px;transition:background-color .2s}.mode-label:hover{background:#e9ecef}.mode-label input[type=radio]{margin:0}.mode-label span,.offline-message{color:#495057;font-size:14px}.offline-message{background:#e9ecef;border:1px dashed #adb5bd;border-radius:8px;margin:16px 0;padding:16px;text-align:center}.submit-actions{display:flex;gap:12px;justify-content:center;margin-top:20px}.submit-cancel-btn,.submit-confirm-btn{border:none;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:500;padding:8px 16px;transition:all .2s ease}.submit-confirm-btn{background:#e53e3e;color:#fff}.submit-confirm-btn:hover:not(:disabled){background:#c53030}.submit-cancel-btn{background:#718096;color:#fff}.submit-cancel-btn:hover:not(:disabled){background:#4a5568}.submit-cancel-btn:disabled,.submit-confirm-btn:disabled{cursor:not-allowed;opacity:.7}.answer-upload-section{border-top:1px solid #eee;margin-top:20px;padding:15px;text-align:center}.upload-buttons{display:flex;gap:12px;justify-content:center;margin-bottom:16px}.upload-answer-btn,.view-uploaded-btn{background-color:#4a90e2;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:14px;padding:10px 20px;transition:background-color .3s ease}.view-uploaded-btn{background-color:#38a169}.upload-answer-btn:hover{background-color:#357abd}.view-uploaded-btn:hover{background-color:#2f855a}.qr-code-container{background-color:#f8f9fa;gap:15px;margin-top:20px}.qr-code-instruction{color:#666;font-size:14px;text-align:center}.section-info{background-color:#f8f9fa;border-left:4px solid #0056b3;border-radius:8px;margin:1rem 0;padding:1rem}.section-info h4{color:#0056b3;font-size:1.2rem;margin:0 0 .5rem}.section-instructions{color:#495057;font-size:.95rem;line-height:1.5;margin:0}.qr-code-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.qr-code-dialog{background:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;max-width:400px;padding:24px;text-align:center;width:90%}.qr-code-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.qr-code-header h3{color:#2d3748;font-size:1.25rem;margin:0}.qr-code-close-button{align-items:center;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;color:#4a5568;cursor:pointer;display:flex;font-size:24px;font-weight:700;height:36px;justify-content:center;padding:4px 12px;transition:all .2s ease;width:36px}.qr-code-close-button:hover{background-color:#e2e8f0;color:#1a202c;transform:scale(1.05)}.qr-code-container{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;flex-direction:column;gap:16px;padding:20px}.qr-code-instruction{color:#4a5568;font-size:.95rem;line-height:1.5;margin:0}.image-preview-dialog-overlay{align-items:center;background-color:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.image-preview-dialog{background-color:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;display:flex;flex-direction:column;height:80vh;max-height:800px;max-width:1000px;overflow:hidden;position:relative;width:90%}.dialog-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:16px 20px}.dialog-header h3{color:#333;font-size:18px;margin:0}.close-button{align-items:center;background-color:#ff5252;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:20px;font-weight:700;height:30px;justify-content:center;margin-left:15px;transition:background-color .2s;width:30px}.close-button:hover{background-color:#ff1744;color:#fff}.dialog-content{display:flex;flex:1 1;overflow:hidden;position:relative}.error-message,.loading-indicator{align-items:center;background-color:#ffffffe6;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:10}.error-message{color:#d32f2f}.sidebar-thumbnails{background-color:#f9f9f9;border-right:1px solid #eee;overflow-y:auto;padding:10px;width:200px}.main-preview{align-items:flex-start;display:flex;flex:1 1;justify-content:center;overflow:auto;padding:20px}.thumbnail-item{border:2px solid #0000;border-radius:4px;cursor:pointer;margin-bottom:12px;overflow:hidden;position:relative;transition:all .2s ease}.thumbnail-item.selected{background-color:#2196f31a;border-color:#2196f3}.thumbnail-number{background-color:#0009;border-radius:10px;color:#fff;font-size:12px;left:5px;padding:2px 6px;position:absolute;top:5px;z-index:1}.thumbnail-content{align-items:center;display:flex;height:120px;justify-content:center;width:100%}.thumbnail-content img{max-height:100%;max-width:100%;object-fit:contain}.image-error,.image-placeholder{align-items:center;background-color:#f1f1f1;color:#666;display:flex;font-size:14px;height:120px;justify-content:center;width:100%}.image-error{background-color:#ffebee;color:#d32f2f}.selected-image-container{flex-direction:column}.image-actions,.selected-image-container{align-items:center;display:flex;width:100%}.image-actions{margin-bottom:15px;padding:10px 0}.download-button{background-color:#2196f3;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px}.download-button:hover{background-color:#1976d2}.download-button:disabled{background-color:#b0bec5;cursor:not-allowed}.status-message{border-radius:4px;font-size:14px;margin-left:10px;padding:5px 10px}.status-message.success{background-color:#e8f5e9;color:#2e7d32}.status-message.error{background-color:#ffebee;color:#c62828}.image-content{display:flex;justify-content:center;margin-bottom:20px;min-height:300px;width:100%}.image-content img{box-shadow:0 2px 8px #0000001a;max-height:500px;max-width:100%;object-fit:contain}.image-info{border-top:1px solid #eee;padding-top:15px;width:100%}.info-item{display:flex;margin-bottom:8px}.info-label{color:#666;font-weight:700;width:100px}.info-value{flex:1 1;word-break:break-all}.empty-state,.no-images{font-style:italic;height:100%}.empty-state,.error-preview,.loading-preview,.no-images{align-items:center;color:#666;display:flex;justify-content:center;width:100%}.error-preview,.loading-preview{flex-direction:column;min-height:300px}.error-preview{color:#d32f2f}.error-details{background-color:#ffebee;border-radius:4px;font-size:14px;margin-top:10px;max-width:500px;overflow-wrap:break-word;padding:10px;width:100%}.room-scan-dialog-overlay{align-items:center;animation:fadeIn .2s ease-out;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.room-scan-dialog{animation:slideIn .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000026;max-width:400px;padding:24px;position:relative;width:90%}.room-scan-content{text-align:center}.room-scan-icon{color:#3498db;font-size:48px;margin-bottom:16px}.room-scan-content h3{color:#2c3e50;font-size:24px;margin:0 0 12px}.room-scan-content p{color:#1a1a1a;font-size:16px;line-height:1.5;margin:0 0 20px}.room-scan-content ul{list-style:none;margin:0 0 20px;padding:0;text-align:left}.room-scan-content ul li{align-items:center;color:#2c3e50;display:flex;font-size:14px;gap:8px;padding:8px 0}.room-scan-content ul li svg{color:#3498db;font-size:18px}.room-scan-note{background:#f8f9fa;border-radius:8px;margin-bottom:20px;padding:12px}.room-scan-note p{color:#666;font-size:14px;margin:0}.room-scan-actions{display:flex;gap:12px;justify-content:center}.start-scan-btn{background:#3498db;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.start-scan-btn:hover{background:#2980b9}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.clarification-dialog-overlay{align-items:center;background-color:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9999}.clarification-dialog{animation:slideIn .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 8px 24px #00000026;margin:0 auto;max-width:450px;padding:24px;position:relative;width:90%;z-index:10000}.clarification-content{background:#fff;border-radius:12px;text-align:center}.clarification-icon{color:#e74c3c;font-size:48px;margin-bottom:16px}.clarification-content h3{color:#2c3e50;font-size:24px;margin:0 0 12px}.issue-description{background:#fdf1f0;border:1px solid #fadbd8;border-radius:8px;margin:20px 0;padding:16px}.issue-description p{color:#c0392b;font-weight:500;margin:0}.clarification-input{margin:20px 0;text-align:left}.clarification-input label{color:#2c3e50;display:block;font-weight:500;margin-bottom:8px}.clarification-input textarea{background:#fff;border:1px solid #e0e0e0;border-radius:8px;display:block;font-size:14px;height:120px;line-height:1.5;overflow-y:auto;padding:12px;resize:none;width:100%}.clarification-input textarea:focus{border-color:#3498db;outline:none}.clarification-actions{display:flex;justify-content:center;margin-top:24px}.submit-btn{background:#3498db;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:12px 32px;transition:all .2s ease;width:200px}.submit-btn:hover:not(:disabled){background:#2980b9;transform:translateY(-1px)}.submit-btn:disabled{background:#95a5a6;cursor:not-allowed}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.id-card-dialog-overlay{align-items:center;background-color:#000000bf;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9999}.id-card-dialog{animation:pulseIn .5s ease-out;background:#fff;border:3px solid #3498db;border-radius:12px;box-shadow:0 10px 30px #00000040;margin:0 auto;max-width:500px;padding:28px;position:relative;width:90%;z-index:10000}.id-card-content{background:#fff;border-radius:12px;text-align:center}.id-card-icon{animation:pulse 2s infinite;color:#3498db;font-size:64px;margin-bottom:20px}.id-card-content h3{color:#2c3e50;font-size:28px;font-weight:700;margin:0 0 16px}.id-card-content p{color:#34495e;font-size:18px;margin:12px 0}.id-card-content ul{list-style:none;margin:24px 0;padding-left:15px;text-align:left}.id-card-content ul li{align-items:center;color:#34495e;display:flex;font-size:16px;gap:12px;margin-bottom:16px}.id-card-content ul li svg{color:#3498db;flex-shrink:0;font-size:22px}.id-card-note{background:#f0f7fc;border:1px solid #d6eaf8;border-radius:8px;margin:24px 0;padding:20px}.id-card-note p{color:#2980b9;font-size:16px;font-weight:600;margin:0}.id-card-actions{display:flex;justify-content:center;margin-top:28px}.id-card-btn{background:#3498db;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:18px;font-weight:600;padding:14px 36px;transition:all .2s ease;width:220px}.id-card-btn:hover{background:#2980b9;box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}@keyframes pulseIn{0%{opacity:0;transform:scale(.95)}70%{opacity:1;transform:scale(1.02)}to{transform:scale(1)}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.id-card-warning{align-items:center;animation:pulse 2s infinite;background-color:#ffebee;border:2px solid #f44336;border-radius:8px;color:#c62828;display:flex;font-weight:600;justify-content:center;margin:12px 0 20px;padding:12px}.id-card-warning svg{flex-shrink:0;font-size:24px;margin-right:8px}.id-card-warning span{font-size:16px}.progress-bar{animation:progressBarAnimation 10s linear forwards;background-color:#4caf50;border-top-left-radius:4px;border-top-right-radius:4px;height:5px;left:0;position:absolute;top:0;width:0}@keyframes progressBarAnimation{0%{width:0}to{width:100%}}
/*# sourceMappingURL=main.7631e1ed.css.map*/