:root{--primary-color: #3a86ff;--primary-hover-color: #0056b3;--background-color: #121212;--card-background-color: #1e1e1e;--text-color: #e0e0e0;--border-color: #333;--error-color: #ff4d4f;--success-color: #52c41a;--light-gray-color: #2a2a2a;--font-family: "Roboto", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--background-color);color:var(--text-color);display:flex;justify-content:center;align-items:center;min-height:100vh;padding:1rem}.container{width:100%;max-width:700px}.logo{width:100px;height:auto;margin-bottom:1.5rem}.main-header{text-align:center;margin-bottom:1.5rem;border-bottom:1px solid var(--border-color);padding-bottom:1.5rem}.main-header h1{font-size:1.6rem;color:var(--primary-color);font-weight:700;line-height:1.3;margin-bottom:.5rem}.main-header .sub-note{font-size:.9rem;color:#bbb;font-style:italic}.login-card{background-color:var(--card-background-color);padding:2.5rem 2rem;border-radius:12px;box-shadow:0 4px 20px #00000040;text-align:center;transition:transform .3s ease,box-shadow .3s ease;border:1px solid var(--border-color)}.login-card:hover{transform:translateY(-5px);box-shadow:0 8px 30px #0000004d}header{margin-bottom:2rem}header h1{font-size:1.5rem;font-weight:700;color:var(--primary-color);margin-bottom:.25rem}header h2{font-size:1.2rem;font-weight:500;color:var(--text-color)}form{display:flex;flex-direction:column;gap:1.25rem;margin-bottom:1rem}.input-group{text-align:left}.input-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#bbb}.input-group input,.input-group select{width:100%;padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:8px;font-size:1rem;font-family:var(--font-family);transition:border-color .3s ease,box-shadow .3s ease;background-color:#2a2a2a;color:var(--text-color)}.input-group input{text-transform:uppercase}.input-group select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e0e0e0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 1rem center;background-size:1em;padding-right:2.5rem}.input-group select:invalid{color:#bbb}.input-group option{background:var(--card-background-color);color:var(--text-color)}.input-group input:focus,.input-group select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #3a86ff59}.rules-group{display:flex;align-items:center;gap:.75rem;margin-top:.5rem;text-align:left}.rules-group input[type=checkbox]{width:1.15em;height:1.15em;cursor:pointer;accent-color:var(--primary-color)}.rules-group label{font-size:.9rem;color:#bbb;cursor:pointer;-webkit-user-select:none;user-select:none}.start-btn{background-color:var(--primary-color);color:#fff;border:none;padding:.85rem 1rem;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .3s ease,transform .2s ease,opacity .3s ease;margin-top:1rem}.start-btn:hover:not(:disabled){background-color:var(--primary-hover-color);transform:translateY(-2px)}.start-btn:disabled{opacity:.6;cursor:not-allowed}.secondary-btn{background-color:transparent;color:var(--text-color);border:1px solid var(--border-color);padding:.85rem 1rem;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .3s ease,border-color .3s ease;width:100%;margin-top:.75rem}.secondary-btn:hover{background-color:var(--light-gray-color);border-color:#555}.teacher-login-btn{margin-top:1.5rem}.error-message{color:var(--error-color);font-size:.9rem;margin-top:-.5rem;text-align:center}.subject-buttons-container{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1rem 0}.subject-btn{background-color:var(--success-color);color:#fff;border:1px solid var(--success-color);padding:1.5rem 1rem;border-radius:8px;font-size:1.1rem;font-weight:500;cursor:pointer;transition:background-color .3s ease,transform .2s ease,border-color .3s}.subject-btn:hover{background-color:#389e0d;border-color:#389e0d;transform:translateY(-3px)}.exam-card{background-color:var(--card-background-color);border-radius:12px;box-shadow:0 4px 20px #00000040;overflow:hidden;border:1px solid var(--border-color)}.progress-bar-container{background-color:var(--light-gray-color)}.progress-bar{height:8px;background-color:var(--primary-color);transition:width .3s ease-in-out}.exam-header{padding:1.5rem 2rem;text-align:center}.exam-header h2{font-size:1.1rem;font-weight:500;color:#bbb;margin-bottom:1rem}.question-text{font-size:1.25rem;font-weight:700}.options-container{padding:0 2rem 1.5rem;display:flex;flex-direction:column;gap:.75rem}.option-item{position:relative}.radio-input{opacity:0;position:absolute;width:100%;height:100%;cursor:pointer}.option-label{display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--border-color);border-radius:8px;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease;cursor:pointer}.option-label:hover{border-color:var(--primary-color)}.radio-input:checked+.option-label{background-color:#3a86ff26;border-color:var(--primary-color);box-shadow:0 0 0 2px #3a86ff80}.option-key{background-color:var(--primary-color);color:#fff;font-weight:700;width:2rem;height:2rem;display:flex;justify-content:center;align-items:center;border-radius:50%;flex-shrink:0}.option-value{flex-grow:1;text-align:left}.navigation-buttons{padding:1.5rem 2rem;display:flex;justify-content:space-between;gap:1rem;background-color:var(--light-gray-color);border-top:1px solid var(--border-color)}.navigation-buttons button{background-color:#3e3e3e;color:var(--text-color);border:1px solid #555;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .3s ease,transform .2s ease,opacity .3s ease;flex-grow:1}.navigation-buttons button:hover:not(:disabled){background-color:#4f4f4f;transform:translateY(-2px)}.navigation-buttons button:disabled{opacity:.5;cursor:not-allowed}.submit-btn{background-color:var(--success-color)!important;border-color:var(--success-color)!important;color:#fff!important}.submit-btn:hover:not(:disabled){background-color:#389e0d!important}.submit-error{padding:0 2rem 1.5rem;margin-top:-1rem}.results-card{background-color:var(--card-background-color);padding:2.5rem 2rem;border-radius:12px;box-shadow:0 4px 20px #00000040;text-align:center;border:1px solid var(--border-color)}.results-card h2{font-size:1.8rem;margin-bottom:.5rem}.results-card .student-info,.results-card .subject-info{font-size:1.1rem;color:#bbb;margin-bottom:.25rem}.results-card .subject-info{margin-bottom:2rem}.results-card h3{font-size:1rem;font-weight:500;color:#bbb}.results-card .score{font-size:4rem;font-weight:700;color:var(--primary-color);margin:.5rem 0}.results-card .submission-success{color:var(--success-color);font-weight:500;margin-bottom:2rem}.teacher-view{width:100%;max-width:900px;background-color:var(--card-background-color);border-radius:12px;box-shadow:0 4px 20px #00000040;border:1px solid var(--border-color);overflow:hidden}.teacher-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background-color:var(--light-gray-color);border-bottom:1px solid var(--border-color)}.teacher-header h2{font-size:1.4rem}.logout-btn{background-color:var(--error-color);color:#fff;border:none;padding:.6rem 1rem;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .3s ease}.logout-btn:hover{background-color:#cf1322}.teacher-tabs{display:flex;flex-wrap:wrap;padding:.5rem;gap:.5rem;border-bottom:1px solid var(--border-color)}.tab-btn{flex-grow:1;padding:.75rem .5rem;border:none;background-color:transparent;color:var(--text-color);cursor:pointer;border-radius:6px;transition:background-color .2s ease,color .2s ease;font-size:.9rem}.tab-btn:hover{background-color:var(--light-gray-color)}.tab-btn.active{background-color:var(--primary-color);color:#fff;font-weight:500}.teacher-content{padding:1.5rem;max-height:60vh;overflow-y:auto}.results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.results-header h3{font-size:1.2rem}.export-btn{background-color:var(--primary-color);color:#fff;border:none;padding:.6rem 1rem;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .3s ease,opacity .3s}.export-btn:hover:not(:disabled){background-color:var(--primary-hover-color)}.export-btn:disabled{background-color:#555;cursor:not-allowed;opacity:.7}.no-results{text-align:center;padding:2rem;color:#aaa}.results-list{display:flex;flex-direction:column;gap:1rem}.result-item-card{background-color:var(--light-gray-color);border:1px solid var(--border-color);border-radius:8px;padding:1rem 1.5rem;transition:box-shadow .3s}.result-item-card:hover{box-shadow:0 0 10px #0003}.result-summary{display:flex;justify-content:space-between;align-items:center;gap:1rem}.result-student-name{font-size:1.1rem;font-weight:700}.result-subject,.result-student-section,.result-timestamp{font-size:.9rem;color:#bbb}.result-timestamp{margin-top:.25rem}.result-score-container{text-align:right}.result-score{font-size:1.5rem;font-weight:700;color:var(--primary-color);margin-bottom:.5rem}.result-item-actions{display:flex;gap:.5rem}.result-item-actions button{border:none;border-radius:6px;padding:.4rem .8rem;font-size:.85rem;cursor:pointer;transition:background-color .2s,opacity .2s}.details-btn{background-color:#444;color:var(--text-color)}.details-btn:hover:not(:disabled){background-color:#555}.delete-btn{background-color:#8c1d1d;color:#fff}.delete-btn:hover:not(:disabled){background-color:#a82727}.result-item-actions button:disabled{opacity:.6;cursor:not-allowed}.result-details{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color)}.result-details h4{margin-bottom:1rem;font-size:1.1rem}.detailed-answer-item{margin-bottom:1rem;padding-left:1rem;border-left:3px solid var(--border-color)}.detailed-answer-item p{margin-bottom:.25rem}.student-answer.correct{color:var(--success-color)}.student-answer.incorrect{color:var(--error-color)}.correct-answer-detail{color:var(--success-color);font-style:italic;font-size:.9rem}.subject-detail-tabs{display:flex;gap:.5rem;border-bottom:1px solid var(--border-color);margin-bottom:1.5rem}.sub-tab-btn{padding:.75rem 1rem;border:none;background:transparent;color:#bbb;cursor:pointer;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}.sub-tab-btn:hover{color:var(--text-color)}.sub-tab-btn.active{color:var(--primary-color);font-weight:700;border-bottom-color:var(--primary-color)}.qa-list .subject-qa-group:not(:last-child){margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px dashed var(--border-color)}.qa-list .subject-header{font-size:1.3rem;color:var(--primary-color);margin-bottom:1rem}.qa-item{margin-bottom:1rem}.qa-item p{margin-bottom:.25rem}.qa-item .correct-answer{color:var(--success-color);padding-left:1rem}.loader-container{display:flex;justify-content:center;align-items:center;padding:3rem}.loader{border:4px solid var(--light-gray-color);border-top:4px solid var(--primary-color);border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){body{padding:0;min-height:100svh}.container{max-width:100%;min-height:100svh;display:flex;flex-direction:column;justify-content:center}.login-card,.exam-card,.results-card,.teacher-view{border-radius:0;width:100%;min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:2rem 1.5rem;box-shadow:none;border:none}.main-header h1{font-size:1.4rem}.main-header .sub-note{font-size:.8rem}.subject-buttons-container{grid-template-columns:1fr}.teacher-view{justify-content:flex-start}.teacher-content{max-height:none;flex-grow:1}.teacher-tabs{flex-direction:column}.result-summary{flex-direction:column;align-items:flex-start;gap:.5rem}.result-score-container{text-align:left;margin-top:1rem}}@media (max-width: 480px){header h1{font-size:1.3rem}header h2{font-size:1.1rem}.question-text{font-size:1.15rem}.navigation-buttons{flex-direction:column}.results-card .score{font-size:3rem}.login-card,.exam-card,.results-card,.teacher-view{padding:2rem 1rem}}
