@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap);.loading-container{min-height:200px;padding:40px 20px}.loading-container.fullscreen{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:var(--bg-primary);height:100%;left:0;position:fixed;top:0;width:100%;z-index:9999}.loading-content{max-width:300px;text-align:center}.loading-spinner{display:inline-block;margin-bottom:24px;position:relative}.loading-spinner.small{height:40px;width:40px}.loading-spinner.medium{height:60px;width:60px}.loading-spinner.large{height:80px;width:80px}.spinner-ring{display:inline-block;height:100%;position:relative;width:100%}.spinner-ring div{animation:loading-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;border:3px solid #0000;border-radius:50%;border-top:3px solid var(--primary-color);box-sizing:border-box;display:block;height:100%;position:absolute;width:100%}.spinner-ring div:first-child{animation-delay:-.45s;border-top-color:var(--primary-color)}.spinner-ring div:nth-child(2){animation-delay:-.3s;border-top-color:var(--success-color)}.spinner-ring div:nth-child(3){animation-delay:-.15s;border-top-color:var(--warning-color)}.spinner-ring div:nth-child(4){animation-delay:0s;border-top-color:var(--error-color)}@keyframes loading-ring{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-info{animation:fadeInUp .6s ease-out}.loading-icon{animation:bounce 2s infinite;display:block;font-size:2rem;margin-bottom:12px}.loading-title{color:var(--text-primary);font-size:1.125rem;font-weight:600;letter-spacing:-.025em;margin:0 0 16px}.loading-dots{align-items:center;display:flex;gap:4px;justify-content:center}.loading-dots span{animation:loading-dots 1.4s ease-in-out infinite both;background:var(--primary-color);border-radius:50%;height:8px;width:8px}.loading-dots span:first-child{animation-delay:-.32s}.loading-dots span:nth-child(2){animation-delay:-.16s}.loading-dots span:nth-child(3){animation-delay:0s}@keyframes loading-dots{0%,80%,to{opacity:.5;transform:scale(.8)}40%{opacity:1;transform:scale(1.2)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}@media (max-width:768px){.loading-container{min-height:150px;padding:30px 15px}.loading-spinner.medium{height:50px;width:50px}.loading-title{font-size:1rem}.loading-icon{font-size:1.5rem}}[data-theme=dark] .loading-container.fullscreen{background:var(--bg-primary)}[data-theme=dark] .loading-title{color:var(--text-primary)}.loading-container[aria-hidden=true]{display:none}@media (prefers-reduced-motion:reduce){.loading-dots span,.loading-icon,.loading-info,.spinner-ring div{animation:none}}.exam-setup{background:#f8f9fa;border:2px solid #e9ecef;border-radius:10px;margin-bottom:30px;padding:30px}.exam-setup h2{color:#2c3e50;font-size:1.8em;margin-bottom:25px;text-align:center}.selection-mode{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:16px}.mode-options{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:0;margin-bottom:16px;padding:8px}.radio-option{align-items:center;border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:8px;margin:0;min-height:36px;padding:8px 12px;transition:background-color .2s ease}.radio-option:hover{background:var(--bg-tertiary)}.radio-option input[type=radio]{accent-color:var(--primary-color);flex-shrink:0;height:14px;margin:0;width:14px}.checkbox-group{grid-gap:8px;background:var(--bg-primary);border-radius:var(--radius-sm);border-top:1px solid var(--border-color);display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-top:12px;padding:16px}.checkbox-option{align-items:center;border:1px solid #0000;border-radius:var(--radius-sm);cursor:pointer;display:flex;font-size:.875rem;gap:6px;padding:6px 8px;transition:all .2s ease}.checkbox-option:hover{background:var(--bg-tertiary);border-color:var(--border-color)}.checkbox-option input[type=checkbox]{accent-color:var(--primary-color);flex-shrink:0;height:14px;margin:0;width:14px}.checkbox-option input[type=checkbox]:checked+span{color:var(--primary-color);font-weight:600}.radio-option input[type=radio]:checked{transform:scale(1.1)}@media (max-width:768px){.selection-mode{padding:16px}.mode-options{flex-direction:column;gap:8px;padding:8px}.radio-option{justify-content:flex-start;padding:12px}.checkbox-group{grid-template-columns:1fr;padding:12px}.checkbox-option{font-size:.875rem;padding:12px}}.error-message{background:#ffe6e6;border-left:4px solid #d32f2f;border-radius:8px;color:#d32f2f;margin-bottom:20px;padding:15px}.setup-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:30px}.form-group label{color:#2c3e50;font-size:14px;letter-spacing:.5px;text-transform:uppercase}.form-group input,.form-group select{background:#fff;border:2px solid #e9ecef;border-radius:8px;font-size:16px;padding:12px;transition:all .3s ease}.form-group input:focus,.form-group select:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db1a;outline:none}.form-group select:disabled{background:#f8f9fa;color:#6c757d;cursor:not-allowed}.setup-actions{margin-bottom:30px;text-align:center}.start-exam-btn{background:linear-gradient(135deg,#3498db,#2c3e50);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;letter-spacing:1px;min-width:200px;padding:15px 30px;text-transform:uppercase;transition:all .3s ease}.start-exam-btn:hover:not(:disabled){box-shadow:0 10px 20px #0003;transform:translateY(-2px)}.start-exam-btn:disabled{background:#bdc3c7;box-shadow:none;cursor:not-allowed;transform:none}.exam-preview{background:#fff;border-left:4px solid #3498db;border-radius:8px;padding:20px}.exam-preview h3{color:#2c3e50;margin-bottom:15px}.preview-info p{color:#495057;margin:8px 0}.preview-info strong{color:#2c3e50;font-weight:600}@media (max-width:768px){.setup-grid{grid-template-columns:1fr}.exam-setup{padding:20px}.start-exam-btn{padding:18px 20px;width:100%}}.exam-interface{max-width:none;padding:0;width:100%}.exam-header{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);color:var(--text-primary);display:flex;justify-content:space-between;margin-bottom:32px;padding:24px}@media (max-width:768px){.exam-header{flex-direction:column;gap:16px;text-align:center}}.exam-info h2{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin:0 0 8px}.exam-info p{color:var(--text-secondary);font-size:.875rem;margin:0}.exam-stats{text-align:right}@media (max-width:768px){.exam-stats{text-align:center}}.timer{background:var(--error-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:#fff;font-size:1.25rem;font-weight:600;margin-bottom:8px;padding:12px 20px}.progress-info{color:var(--text-secondary);font-size:.875rem}.progress-bar{border:1px solid var(--border-color);border-radius:var(--radius-sm);height:8px;margin-bottom:32px;width:100%}.progress-fill{background:linear-gradient(135deg,var(--success-color),#22c55e);border-radius:var(--radius-sm);transition:width .3s ease}.questions-container{margin-bottom:32px}.question-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-left:4px solid var(--primary-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:24px;padding:24px;transition:all .2s ease}[data-theme=light] .question-card{background:var(--bg-primary);border:2px solid var(--border-light);box-shadow:var(--shadow-md)}[data-theme=dark] .question-card{background:var(--bg-secondary);border:1px solid var(--border-color)}.question-card:hover{border-color:var(--primary-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}.question-header{margin-bottom:24px}@media (max-width:768px){.question-header{align-items:flex-start;flex-direction:column}}.question-number{border-radius:var(--radius-md);padding:8px 16px}.question-tags{display:flex;flex-wrap:wrap;gap:8px}.difficulty-tag,.subject-tag,.topic-tag{border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;letter-spacing:.5px;padding:6px 12px;text-transform:uppercase}.subject-tag{background:var(--error-color);color:#fff}.difficulty-tag{background:var(--warning-color);color:#fff}.topic-tag{background:var(--secondary-color);color:#fff}.type-tag{background:var(--success-color);color:#fff}.passage-container{background:var(--bg-secondary);border:2px solid var(--border-color);border-left:4px solid var(--secondary-color);border-radius:var(--radius-lg);margin-bottom:32px;padding:24px}.passage-title{color:var(--text-primary);font-size:1.125rem;font-weight:600;margin-bottom:16px}.passage-text{background:var(--bg-primary);border-left:3px solid var(--secondary-color);border-radius:var(--radius-md);color:var(--text-secondary);font-size:1rem;line-height:1.7;padding:20px;text-align:justify}.question-text{font-size:1.125rem;font-weight:500;margin-bottom:24px}.options-container{grid-gap:12px;display:grid;gap:12px;margin-bottom:24px}.option{align-items:center;background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:var(--radius-lg);cursor:pointer;display:flex;padding:16px;transition:all .3s ease}[data-theme=light] .option{background:var(--bg-secondary);border:2px solid var(--border-light)}[data-theme=dark] .option{background:var(--bg-tertiary);border:1px solid var(--border-color)}.option:hover{border-color:var(--primary-color);box-shadow:var(--shadow-md);transform:translateX(4px)}[data-theme=light] .option:hover{background:var(--bg-primary);border-color:var(--primary-color)}[data-theme=dark] .option:hover{background:var(--bg-secondary);border-color:var(--primary-color)}.option.selected{background:var(--primary-color);border-color:var(--primary-hover);box-shadow:var(--shadow-lg);color:#fff;transform:translateX(4px)}.option-letter{background:var(--text-primary);color:var(--bg-primary);font-size:.875rem;height:36px;width:36px}.option.selected .option-letter{background:#ffffff40;color:#fff}.option-text{color:inherit}.question-status{font-size:.875rem;font-weight:500;text-align:right}@media (max-width:768px){.question-status{margin-top:16px;text-align:left}}.answered{color:var(--success-color)}.unanswered{color:var(--error-color)}.exam-controls{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:var(--bg-primary);border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-top:1px solid var(--border-color);bottom:0;box-shadow:var(--shadow-lg);margin:32px -24px -24px;padding:24px;position:-webkit-sticky;position:sticky;text-align:center}.reset-btn,.submit-btn{border:none;border-radius:var(--radius-md);cursor:pointer;font-size:.875rem;font-weight:600;margin:0 8px;min-height:44px;padding:12px 24px;transition:all .2s ease}@media (max-width:768px){.reset-btn,.submit-btn{display:block;margin:8px 0;width:100%}}.submit-btn{background:var(--success-color);color:#fff}.reset-btn{background:var(--error-color);border:1px solid #0000;color:#fff}.submit-btn:hover{background:#059669}.reset-btn:hover,.submit-btn:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.reset-btn:hover{background:#dc2626}.reset-btn:disabled,.submit-btn:disabled{cursor:not-allowed;opacity:.5;transform:none}@media (max-width:768px){.exam-interface{padding:0}.question-card{margin-bottom:16px;padding:20px 16px}.option{padding:12px}.option-letter{height:32px;margin-right:12px;width:32px}.exam-controls{margin:24px -16px -16px;padding:20px 16px}.question-tags{flex-wrap:wrap}.exam-controls{flex-direction:column;gap:10px}.reset-btn,.submit-btn{margin:5px 0;width:100%}}.exam-results{margin:0 auto;max-width:1200px;padding:30px}.results-header{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;color:#fff;margin-bottom:40px;padding:40px;text-align:center}.results-header h1{font-size:2.5em;margin:0 0 20px}.final-score{font-size:4em;font-weight:700;margin:20px 0;text-shadow:2px 2px 4px #0000004d}.grade-display{font-size:1.5em;font-weight:600;margin:10px 0;opacity:.9}.performance-message{font-size:1.2em;font-style:italic;margin-top:20px;opacity:.95}.results-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:40px}.result-card{background:#fff;border-left:5px solid #3498db;border-radius:15px;box-shadow:0 8px 20px #0000001a;padding:25px;text-align:center;transition:transform .3s ease}.result-card:hover{box-shadow:0 12px 30px #00000026;transform:translateY(-5px)}.card-icon{font-size:2.5em;margin-bottom:15px}.result-card h3{color:#2c3e50;font-size:1.1em;letter-spacing:.5px;margin-bottom:15px;text-transform:uppercase}.stat-value{color:#3498db;font-size:2em;margin-bottom:10px}.stat-value.course-info{font-size:1.3em;line-height:1.3}.stat-label{color:#7f8c8d;font-size:.9em;letter-spacing:.5px;text-transform:uppercase}.subject-breakdown{background:#f8f9fa;border-radius:15px;margin-bottom:40px;padding:30px}.subject-breakdown h3{color:#2c3e50;font-size:1.5em;margin-bottom:25px;text-align:center}.subjects-grid{grid-gap:20px;gap:20px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.subject-card{background:#fff;border-radius:10px;box-shadow:0 4px 12px #00000014;padding:20px}.subject-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.subject-name{color:#2c3e50;font-size:1.1em;font-weight:600}.subject-score{font-size:1.2em;font-weight:700}.subject-details{color:#7f8c8d;font-size:.9em;margin-bottom:15px}.subject-bar{background:#e9ecef;border-radius:4px;height:8px;overflow:hidden}.subject-progress{border-radius:4px;height:100%;transition:width .5s ease}.insights-section{margin-bottom:40px}.insights-section h3{color:#2c3e50;font-size:1.5em;margin-bottom:25px;text-align:center}.insights-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.insight-card{align-items:center;border-radius:12px;box-shadow:0 4px 12px #00000014;display:flex;padding:20px}.insight-card.success{background:linear-gradient(135deg,#d5f4e6,#c8f7d8);border-left:5px solid #27ae60}.insight-card.warning{background:linear-gradient(135deg,#ffeaa7,#fdcb6e);border-left:5px solid #e17055}.insight-card.info{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-left:5px solid #3498db}.insight-icon{font-size:2.5em;margin-right:20px}.insight-content h4{color:#2c3e50;font-size:1.1em;margin:0 0 8px}.insight-content p{color:#34495e;line-height:1.5;margin:0}.results-actions{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);display:flex;gap:20px;justify-content:center;margin-top:40px;padding:30px}.action-btn{display:inline-flex;flex:0 0 auto;justify-content:center;letter-spacing:0;min-width:180px;padding:16px 32px;text-transform:none}.action-btn.primary:hover{transform:translateY(-1px)}.action-btn.secondary{background:var(--bg-primary)}.action-btn.secondary:hover{box-shadow:var(--shadow-md)}@media (max-width:768px){.exam-results{padding:15px}.results-header{padding:25px 15px}.final-score{font-size:3em}.insights-grid,.results-grid,.subjects-grid{grid-template-columns:1fr}.insight-card{flex-direction:column;text-align:center}.insight-icon{margin:0 0 15px}.results-actions{flex-direction:column;gap:16px}.action-btn{min-width:auto;width:100%}}.auth-container{align-items:center;display:flex;justify-content:center;min-height:calc(100vh - 160px);padding:32px 24px}.auth-card{animation:authSlideUp .3s ease-out;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:520px;overflow:hidden;transition:all .3s ease;width:100%}[data-theme=light] .auth-card{background:var(--bg-primary);border:2px solid var(--border-light);box-shadow:var(--shadow-lg)}[data-theme=dark] .auth-card{background:var(--bg-secondary);border:1px solid var(--border-color);box-shadow:0 20px 25px -5px #0006,0 10px 10px -5px #0003}@keyframes authSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.exam-type-info{margin:20px 32px}.info-card{background:var(--accent-light);border:1px solid var(--accent-color);border-radius:var(--radius-md);padding:20px;text-align:center}.info-card h3{color:var(--accent-color);font-size:1.2em;margin:0 0 10px}.exam-description{color:var(--text-secondary);font-style:italic;margin:10px 0}.remaining-uses{color:var(--success-color);font-weight:600;margin:5px 0}.expires-at{color:var(--warning-color);font-size:.9em;margin:5px 0 0}.selected-exam-type{padding:20px;text-align:center}.exam-type-badge{background:var(--accent-color);border-radius:var(--radius-full);color:#fff;display:inline-block;font-size:1.1em;font-weight:600;margin-bottom:15px;padding:10px 20px}.exam-type-note{color:var(--text-secondary);font-size:.9em;margin:0}.no-access-message{padding:40px 20px;text-align:center}.no-access-message h3{color:var(--warning-color);margin:0 0 15px}.no-access-message p{color:var(--text-secondary);margin:10px 0}.access-actions{display:flex;flex-wrap:wrap;gap:15px;justify-content:center;margin-top:20px}.auth-header{background:var(--bg-primary);padding:32px 32px 0;text-align:center}.auth-header h2{color:var(--text-primary);font-size:1.875rem;font-weight:700;letter-spacing:-.025em;margin:0 0 8px}.auth-header p{color:var(--text-secondary);font-size:1rem;font-weight:400;margin:0}.auth-form{padding:32px}.form-group label{display:block}.form-group input,.form-group select,.form-group textarea{box-sizing:border-box;font-size:1rem;min-height:44px;padding:12px 16px;transition:all .2s ease;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a}.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:var(--error-color);box-shadow:0 0 0 3px #ef44441a}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-muted);font-weight:400}.form-group textarea{font-family:inherit;line-height:1.5;min-height:96px;resize:vertical}.error-text{color:var(--error-color);display:block;font-size:.75rem;font-weight:500;margin-top:6px}.error-message{background:#fef2f2}.error-message,.success-message{align-items:flex-start;display:flex;gap:8px;margin-bottom:24px;padding:16px}.success-message{background:#f0fdf4}.info-message{align-items:flex-start;background:#eff6ff;border:1px solid #bfdbfe;border-radius:var(--radius-md);color:#1e40af;display:flex;font-weight:500;gap:8px;margin-bottom:24px;padding:16px}.auth-btn{align-items:center;border:none;border-radius:var(--radius-md);cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:8px;justify-content:center;margin-top:8px;min-height:48px;padding:12px 24px;transition:all .2s ease;width:100%}.auth-btn.primary{background:var(--primary-color);color:#fff}.auth-btn.primary:hover:not(:disabled){background:var(--primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.auth-btn:disabled{background:var(--text-muted);box-shadow:none;cursor:not-allowed;opacity:.6;transform:none}.auth-footer{background:var(--bg-secondary);border-top:1px solid var(--border-color);padding:24px 32px;text-align:center}.auth-footer p{color:var(--text-secondary);font-size:.875rem;margin:0}.link-btn{background:none;border:none;border-radius:var(--radius-sm);color:var(--primary-color);cursor:pointer;font-size:inherit;font-weight:500;padding:4px 8px;transition:all .2s ease}.link-btn:hover{background:#2563eb0d;color:var(--primary-hover)}.user-info{background:#f8f9fa;border-left:4px solid #3498db;border-radius:10px;margin-bottom:20px;padding:20px}.user-info h3{color:#2c3e50;font-size:1.2em;margin:0 0 15px}.user-details{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.user-detail{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000000d;padding:15px}.user-detail .label{color:#2c3e50;font-size:.9em;font-weight:600;letter-spacing:.5px;margin-bottom:5px;text-transform:uppercase}.user-detail .value{color:#495057;font-size:1em}.logout-btn{background:linear-gradient(135deg,#e74c3c,#c0392b);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;margin-top:15px;padding:10px 20px;transition:all .3s ease}.logout-btn:hover{box-shadow:0 5px 15px #0003;transform:translateY(-1px)}.history-btn{background:var(--primary-color);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;margin-top:15px;padding:10px 20px;transition:all .3s ease}.history-btn:hover{background:var(--primary-hover);box-shadow:0 5px 15px #0003;transform:translateY(-1px)}.alternative-registration{margin-top:25px;padding-top:20px}.divider{margin:20px 0;position:relative;text-align:center}.divider:before{background:#e9ecef;content:"";height:1px;left:0;position:absolute;right:0;top:50%}.divider span{background:#fff;color:#6c757d;font-size:.9em;padding:0 15px}.auth-btn.secondary{background:linear-gradient(135deg,#f39c12,#e67e22);color:#fff}.auth-btn.secondary:hover:not(:disabled){box-shadow:0 10px 20px #0003;transform:translateY(-2px)}.demo-indicator{background:linear-gradient(135deg,#3498db,#2980b9);border-left:4px solid #2980b9;border-radius:8px;color:#fff;font-size:.9em;margin-bottom:20px;padding:10px 15px;text-align:center}.demo-indicator strong{font-weight:600}@media (max-width:768px){.auth-container{padding:10px}.auth-card{border-radius:15px}.auth-header{padding:20px}.auth-header h2{font-size:1.6em}.auth-form{padding:20px}.user-details{grid-template-columns:1fr}}.progress-history-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.progress-history-modal{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-height:90vh;max-width:900px;overflow:hidden;width:100%}.progress-header{align-items:center;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:24px}.progress-header h2{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin:0}.close-btn:hover{background:var(--bg-tertiary)}.progress-stats{grid-gap:16px;background:var(--bg-secondary);display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));padding:24px}.stat-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:16px;text-align:center}.stat-value{color:var(--primary-color);font-size:1.75rem}.progress-controls{align-items:center;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;padding:16px 24px}.control-group{align-items:center;display:flex;gap:8px}.control-group label{font-weight:500}.control-group label,.control-group select{color:var(--text-primary);font-size:.875rem}.control-group select{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:6px 12px}.clear-btn{background:var(--error-color);border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:8px 16px;transition:all .2s ease}.clear-btn:hover{background:#dc2626;transform:translateY(-1px)}.history-list{max-height:400px;overflow-y:auto;padding:0}.no-history{color:var(--text-secondary);padding:60px 24px;text-align:center}.no-history p{font-size:1.125rem;margin:0}.history-item{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:20px 24px;transition:all .2s ease}.history-item:hover{background:var(--bg-secondary)}.history-item:last-child{border-bottom:none}.exam-info{flex:1 1}.exam-title{color:var(--text-primary);font-size:1rem;font-weight:600;margin-bottom:8px}.course{color:var(--primary-color)}.subject{color:var(--text-primary)}.difficulty{color:var(--text-secondary);text-transform:capitalize}.separator{color:var(--text-muted);margin:0 8px}.exam-meta{color:var(--text-secondary);font-size:.875rem}.date{font-weight:500}.exam-result{gap:12px}.exam-result,.score-circle{align-items:center;display:flex}.score-circle{background:var(--bg-primary);border:3px solid;border-radius:50%;flex-direction:column;height:80px;justify-content:center;width:80px}.score-percentage{color:var(--text-primary);font-size:1rem;font-weight:700}.score-grade{font-size:.75rem;font-weight:600;margin-top:2px}.score-details{text-align:right}.correct-answers{color:var(--text-secondary);font-size:.875rem;font-weight:500}@media (max-width:768px){.progress-history-overlay{padding:10px}.progress-history-modal{max-height:95vh}.progress-stats{grid-template-columns:repeat(2,1fr);padding:16px}.progress-controls{align-items:stretch;flex-direction:column;gap:12px}.control-group{justify-content:space-between}.history-item{align-items:flex-start;flex-direction:column;gap:16px;padding:16px}.exam-result{align-self:flex-end}.score-circle{height:60px;width:60px}.score-percentage{font-size:.875rem}.score-grade{font-size:.625rem}}[data-theme=dark] .progress-history-overlay{background:#000000b3}.history-list::-webkit-scrollbar{width:6px}.history-list::-webkit-scrollbar-track{background:var(--bg-tertiary)}.history-list::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.history-list::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.qr-generator-content{grid-gap:30px;display:grid;gap:30px;grid-template-columns:1fr 1fr;margin-top:20px}@media (max-width:768px){.qr-generator-content{grid-template-columns:1fr}}.qr-form-section{display:flex;flex-direction:column;gap:20px}.card{background:var(--bg-secondary);box-shadow:var(--shadow-md);padding:25px}.card h2,.card h3{color:var(--text-primary);margin:0 0 20px}.qr-form{display:flex;flex-direction:column;gap:20px}.form-group{gap:8px}.form-group label{font-size:.9em;font-weight:600}.form-group input,.form-group select,.form-group textarea{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:1em;padding:12px;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px var(--accent-light);outline:none}.form-row{grid-gap:15px;gap:15px}@media (max-width:480px){.form-row{grid-template-columns:1fr}}.qr-result{background:var(--success-light);border-color:var(--success-color)}.qr-display{align-items:flex-start;display:flex;gap:20px;margin:20px 0}@media (max-width:480px){.qr-display{align-items:center;flex-direction:column;text-align:center}}.qr-code img{border:2px solid var(--border-color);border-radius:var(--radius-md);max-width:200px}.qr-details{flex:1 1}.qr-details p{margin:8px 0}.qr-details p,.qr-details strong{color:var(--text-primary)}.link-display{display:flex;gap:10px;margin-top:10px}.registration-link{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);flex:1 1;font-family:monospace;font-size:.85em;padding:8px}.qr-actions{display:flex;flex-wrap:wrap;gap:15px;justify-content:center;margin-top:20px}.active-tokens-section .card{min-height:500px}.no-tokens{color:var(--text-secondary);font-style:italic;padding:40px 20px;text-align:center}.tokens-list{display:flex;flex-direction:column;gap:15px;max-height:400px;overflow-y:auto}.token-item{align-items:flex-start;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);display:flex;justify-content:space-between;padding:15px;transition:all .2s ease}.token-item:hover{border-color:var(--accent-color);box-shadow:var(--shadow-md)}.token-info{flex:1 1}.token-info h4{color:var(--text-primary);font-size:1.1em;margin:0 0 8px}.token-description{color:var(--text-secondary);font-size:.9em;font-style:italic;margin:5px 0}.token-stats{display:flex;flex-wrap:wrap;gap:15px;margin:10px 0}.stat{background:var(--accent-light);border-radius:var(--radius-sm);color:var(--accent-color);font-size:.8em;font-weight:600;padding:4px 8px}.token-meta{color:var(--text-secondary);display:flex;font-size:.8em;gap:15px;margin-top:10px}.token-actions{display:flex;flex-direction:column;gap:10px}.btn{font-size:.9em;font-weight:600;padding:10px 20px}.btn:disabled{opacity:.6}.btn-primary{background:var(--accent-color)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-secondary{background:var(--text-secondary);color:#fff}.btn-secondary:hover:not(:disabled){background:var(--text-primary);transform:translateY(-1px)}.btn-success{background:var(--success-color);color:#fff}.btn-success:hover:not(:disabled){background:var(--success-hover);transform:translateY(-1px)}.btn-danger{background:var(--error-color);color:#fff}.btn-danger:hover:not(:disabled){background:var(--error-hover);transform:translateY(-1px)}.btn-sm{font-size:.8em;padding:6px 12px}.error-message{background:var(--error-light);border:1px solid var(--error-color);border-radius:var(--radius-md);color:var(--error-color)}.error-message,.success-message{font-weight:500;margin:15px 0;padding:12px}.success-message{background:var(--success-light);border:1px solid var(--success-color);border-radius:var(--radius-md);color:var(--success-color)}.admin-container{margin:0 auto;max-width:1200px;padding:20px}.admin-header{margin-bottom:30px;text-align:center}.admin-header h1{color:var(--text-primary);font-size:2.5em;margin:0 0 10px}.admin-header p{color:var(--text-secondary);font-size:1.1em;margin:0}.homepage{width:100%}.hero-section{background:linear-gradient(135deg,var(--bg-primary) 0,var(--bg-secondary) 100%);overflow:hidden;padding:80px 0 120px;position:relative}.hero-section:before{background:radial-gradient(circle at 20% 80%,var(--primary-color)10 0,#0000 50%);bottom:0;content:"";left:0;opacity:.1;pointer-events:none;position:absolute;right:0;top:0}.hero-content{grid-gap:60px;align-items:center;display:grid;gap:60px;grid-template-columns:1fr 1fr;margin:0 auto;max-width:1200px;padding:0 24px}.hero-text{position:relative;z-index:2}.hero-title{color:var(--text-primary);font-size:3.5rem;font-weight:700;line-height:1.1;margin-bottom:24px}.hero-title .highlight{color:var(--primary-color);position:relative}.hero-title .highlight:after{background:linear-gradient(90deg,var(--primary-color),var(--success-color));border-radius:2px;bottom:-4px;content:"";height:4px;left:0;position:absolute;right:0}.hero-description{color:var(--text-secondary);font-size:1.25rem;line-height:1.6;margin-bottom:40px;max-width:500px}.hero-actions{display:flex;flex-wrap:wrap;gap:16px}.btn-large{font-size:1.125rem;min-height:56px;padding:16px 32px}.btn-outline{background:#0000;border:2px solid var(--border-color);color:var(--text-primary)}.btn-outline:hover{background:var(--bg-secondary);border-color:var(--primary-color);color:var(--primary-color)}.hero-visual{align-items:center;display:flex;justify-content:center;position:relative}.floating-cards{position:relative;transform:perspective(1000px) rotateY(-15deg)}.exam-card{animation:float 6s ease-in-out infinite;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);margin:16px 0;min-width:250px;padding:20px}.exam-card:first-child{animation-delay:0s;transform:translateX(-20px)}.exam-card:nth-child(2){animation-delay:2s;transform:translateX(20px)}.exam-card:nth-child(3){animation-delay:4s;transform:translateX(-10px)}.card-header{color:var(--text-primary);font-size:1.125rem;font-weight:600;margin-bottom:12px}.card-progress{align-items:center;display:flex;gap:12px}.progress-bar{background:var(--bg-tertiary);border-radius:3px;flex:1 1;height:6px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,var(--primary-color),var(--success-color));border-radius:3px;height:100%;transition:width 2s ease}.card-progress span{color:var(--text-secondary);font-size:.875rem;font-weight:500}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.features-section{background:var(--bg-primary);padding:100px 0}.section-content{margin:0 auto;max-width:1200px;padding:0 24px}.section-header{margin-bottom:60px;text-align:center}.section-header h2{color:var(--text-primary);font-size:2.5rem;font-weight:700;margin-bottom:16px}.section-header p{color:var(--text-secondary);font-size:1.125rem;line-height:1.6;margin:0 auto;max-width:600px}.features-grid{grid-gap:32px;display:grid;gap:32px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.feature-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;padding:32px;position:relative;text-align:center;transition:all .3s ease}.feature-card:before{background:linear-gradient(90deg,var(--primary-color),var(--success-color));content:"";height:4px;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease}.feature-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-8px)}.feature-card:hover:before{opacity:1}.feature-icon{display:block;font-size:3rem;margin-bottom:20px}.feature-card h3{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin-bottom:16px}.feature-card p{color:var(--text-secondary);line-height:1.6}.stats-section{background:var(--bg-secondary);padding:80px 0}.stats-grid{grid-gap:40px;display:grid;gap:40px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));text-align:center}.stat-item{padding:20px}.stat-number{color:var(--primary-color);display:block;font-size:3rem;font-weight:700;margin-bottom:8px}.stat-label{font-size:1.125rem}.testimonials-section{background:var(--bg-primary);padding:100px 0}.testimonials-grid{grid-gap:32px;display:grid;gap:32px;grid-template-columns:repeat(auto-fit,minmax(350px,1fr))}.testimonial-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:32px;transition:all .3s ease}.testimonial-card:hover{box-shadow:var(--shadow-md);transform:translateY(-4px)}.testimonial-content{margin-bottom:24px;position:relative}.quote-icon{color:var(--primary-color);font-size:4rem;font-weight:700;left:-10px;opacity:.2;position:absolute;top:-20px}.testimonial-content p{color:var(--text-primary);font-size:1.125rem;font-style:italic;line-height:1.6;position:relative;z-index:2}.testimonial-author{align-items:center;display:flex;gap:16px}.author-avatar{align-items:center;background:var(--bg-secondary);border-radius:50%;display:flex;font-size:1.5rem;height:48px;justify-content:center;width:48px}.author-name{color:var(--text-primary);font-weight:600;margin-bottom:4px}.author-title{color:var(--text-secondary);font-size:.875rem}.cta-section{background:linear-gradient(135deg,var(--primary-color) 0,var(--primary-hover) 100%);color:#fff;padding:100px 0;text-align:center}.cta-content h2{color:#fff;font-size:2.5rem;font-weight:700;margin-bottom:16px}.cta-content p{font-size:1.25rem;margin-bottom:40px;margin-left:auto;margin-right:auto;max-width:600px;opacity:.9}.cta-actions{display:flex;flex-wrap:wrap;gap:16px;justify-content:center}.cta-section .btn-primary{background:#fff;color:var(--primary-color)}.cta-section .btn-primary:hover{background:var(--bg-secondary);transform:translateY(-2px)}.cta-section .btn-outline{border-color:#fff;color:#fff}.cta-section .btn-outline:hover{background:#fff;color:var(--primary-color)}@media (max-width:768px){.hero-content{gap:40px;grid-template-columns:1fr;text-align:center}.hero-title{font-size:2.5rem}.hero-description{font-size:1.125rem}.floating-cards{transform:none}.features-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}.testimonials-grid{grid-template-columns:1fr}.cta-actions,.hero-actions{align-items:center;flex-direction:column}.btn-large{max-width:300px;width:100%}}@media (max-width:480px){.stats-grid{grid-template-columns:1fr}.cta-content h2,.hero-title,.section-header h2{font-size:2rem}}.contact-page{min-height:calc(100vh - 140px);width:100%}.contact-container{margin:0 auto;max-width:1200px;padding:40px 24px}.contact-header{margin-bottom:60px;text-align:center}.contact-header h1{color:var(--text-primary);font-size:2.5rem;font-weight:700;margin-bottom:16px}.contact-header p{color:var(--text-secondary);font-size:1.125rem;line-height:1.6;margin:0 auto;max-width:600px}.contact-content{grid-gap:60px;align-items:start;display:grid;gap:60px;grid-template-columns:2fr 1fr}.contact-form-section,.form-container{background:var(--bg-primary)}.form-container{border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:40px}.form-container h2{color:var(--text-primary);font-size:1.75rem;font-weight:600;margin-bottom:32px}.contact-form{display:flex;flex-direction:column;gap:24px}.form-row{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr}.form-group{display:flex;flex-direction:column}.form-group label{color:var(--text-primary);font-size:.875rem;font-weight:500;margin-bottom:8px}.form-input{border:1px solid var(--border-color)}.form-textarea{font-family:inherit;min-height:120px;resize:vertical}.submit-btn{margin-top:16px;width:100%}.error-message,.success-message{border-radius:var(--radius-lg);margin-bottom:20px;padding:40px;text-align:center}.success-message{background:linear-gradient(135deg,#ecfdf5,#f0fdf4);border:1px solid #bbf7d0;color:#166534}.error-message{background:linear-gradient(135deg,#fef2f2,#fef7f7);border:1px solid #fecaca;color:#991b1b}.error-icon,.success-icon{font-size:3rem;margin-bottom:16px}.error-message h3,.success-message h3{font-size:1.5rem;font-weight:600;margin-bottom:8px}.error-message p,.success-message p{font-size:1rem;opacity:.8}.contact-info-section{display:flex;flex-direction:column;gap:40px}.contact-info,.faq-section{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:32px}.contact-info h2,.faq-section h2{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin-bottom:24px}.contact-methods{display:flex;flex-direction:column;gap:24px}.contact-method{align-items:flex-start;border-radius:var(--radius-md);display:flex;gap:16px;padding:16px;transition:all .2s ease}.contact-method:hover{background:var(--bg-secondary)}.method-icon{flex-shrink:0;font-size:2rem}.method-details h3{color:var(--text-primary);font-size:1.125rem;font-weight:600;margin-bottom:4px}.method-details p{color:var(--primary-color);font-weight:500;margin-bottom:4px}.method-details span{color:var(--text-secondary);font-size:.875rem}.faq-list{display:flex;flex-direction:column;gap:20px}.faq-item{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:20px;transition:all .2s ease}.faq-item:hover{background:var(--bg-tertiary);transform:translateY(-2px)}.faq-item h3{color:var(--text-primary);font-size:1rem;font-weight:600;margin-bottom:8px}.faq-item p{color:var(--text-secondary);font-size:.875rem;line-height:1.5}@media (max-width:968px){.contact-content{gap:40px;grid-template-columns:1fr}.contact-info-section{order:-1}}@media (max-width:768px){.contact-container{padding:20px 16px}.contact-header h1{font-size:2rem}.form-container{padding:24px}.form-row{gap:16px;grid-template-columns:1fr}.contact-info,.faq-section{padding:24px}.contact-method{flex-direction:column;gap:12px;text-align:center}}@media (max-width:480px){.contact-header h1{font-size:1.75rem}.contact-info,.faq-section,.form-container{padding:20px}}[data-theme=dark] .form-input{border-color:var(--border-color);color:var(--text-primary)}[data-theme=dark] .form-input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #3b82f61a}[data-theme=dark] .success-message{background:#10b9811a;border-color:#10b9814d;color:var(--success-color)}[data-theme=dark] .error-message{background:#ef44441a;border-color:#ef44444d;color:var(--error-color)}.catalog-page{min-height:calc(100vh - 140px);width:100%}.catalog-container{margin:0 auto;max-width:1400px;padding:40px 24px}.catalog-header{margin-bottom:60px;text-align:center}.catalog-header h1{color:var(--text-primary);font-size:2.5rem;font-weight:700;margin-bottom:16px}.catalog-header p{color:var(--text-secondary);font-size:1.125rem;line-height:1.6;margin-bottom:40px;margin-left:auto;margin-right:auto;max-width:600px}.catalog-stats{display:flex;flex-wrap:wrap;gap:60px;justify-content:center}.catalog-stats .stat{text-align:center}.catalog-stats .stat-number{color:var(--primary-color);display:block;font-size:2rem;font-weight:700;margin-bottom:4px}.catalog-stats .stat-label{color:var(--text-secondary);font-size:.875rem;font-weight:500}.error-container{margin:0 auto;max-width:500px;padding:80px 20px}.error-icon{font-size:4rem;margin-bottom:24px}.error-container h2{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin-bottom:16px}.error-container p{color:var(--text-secondary);line-height:1.6;margin-bottom:32px}.courses-grid{grid-gap:32px;display:grid;gap:32px;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));margin-bottom:40px}.course-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;padding:32px;position:relative;transition:all .3s ease}.course-card:before{background:linear-gradient(90deg,var(--primary-color),var(--success-color));content:"";height:4px;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease}.course-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-8px)}.course-card:hover:before{opacity:1}.course-header{align-items:center;display:flex;gap:16px;margin-bottom:20px}.course-icon{flex-shrink:0;font-size:2.5rem}.course-header h3{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin:0}.course-description{margin-bottom:24px}.course-description p{color:var(--text-secondary);font-size:.95rem;line-height:1.6}.course-features{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr;margin-bottom:32px}.feature{align-items:center;color:var(--text-secondary);display:flex;font-size:.875rem;gap:8px}.feature-icon{font-size:1rem}.course-actions{display:flex;gap:12px}.btn-details{flex:1 1}.btn-details:disabled{cursor:not-allowed;opacity:.6}.course-details-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.course-details-modal{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-height:90vh;max-width:900px;overflow-y:auto;position:relative;width:100%}.modal-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:32px 32px 24px}.modal-header h2{color:var(--text-primary);font-size:1.75rem;font-weight:600;margin:0}.close-btn{background:none;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-size:1.5rem;padding:8px;transition:all .2s ease}.close-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.modal-content{padding:32px}.course-overview{margin-bottom:40px}.course-overview h3{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin-bottom:20px}.overview-stats{display:flex;flex-wrap:wrap;gap:40px;justify-content:center}.overview-stat{text-align:center}.overview-stat .stat-number{color:var(--primary-color);display:block;font-size:2rem;font-weight:700;margin-bottom:4px}.overview-stat .stat-label{color:var(--text-secondary);font-size:.875rem;font-weight:500}.subjects-section{margin-bottom:40px}.subjects-section h3{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin-bottom:20px}.subjects-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.subject-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:16px;text-align:center;transition:all .2s ease}.subject-card:hover{background:var(--bg-tertiary);transform:translateY(-2px)}.subject-card h4{color:var(--text-primary);font-size:1rem;font-weight:600;margin-bottom:8px}.subject-card p{color:var(--text-secondary);font-size:.875rem;margin-bottom:12px}.subject-difficulties{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.difficulty-tag{border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;letter-spacing:.025em;padding:4px 8px;text-transform:uppercase}.difficulty-tag.easy{background:#10b9811a;border:1px solid #10b98133;color:var(--success-color)}.difficulty-tag.medium{background:#f59e0b1a;border:1px solid #f59e0b33;color:var(--warning-color)}.difficulty-tag.hard{background:#ef44441a;border:1px solid #ef444433;color:var(--error-color)}.sample-questions{margin-bottom:40px}.sample-questions h3{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin-bottom:20px}.questions-list{display:flex;flex-direction:column;gap:16px}.sample-question{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:20px}.question-header{flex-wrap:wrap;gap:12px;margin-bottom:12px}.question-number{background:var(--primary-color);color:#fff}.question-number,.subject-tag{border-radius:var(--radius-sm);font-size:.75rem;padding:4px 8px}.subject-tag{background:var(--bg-tertiary);color:var(--text-secondary);font-weight:500}.question-text{color:var(--text-primary);line-height:1.6;margin:0}.modal-actions{border-top:1px solid var(--border-color);padding-top:20px;text-align:center}@media (max-width:768px){.catalog-container{padding:20px 16px}.catalog-header h1{font-size:2rem}.catalog-stats{gap:30px}.courses-grid{gap:24px;grid-template-columns:1fr}.course-card{padding:24px}.course-features{grid-template-columns:1fr}.course-actions{flex-direction:column}.modal-header{padding:24px 24px 20px}.modal-content{padding:24px}.overview-stats{gap:20px}.subjects-grid{grid-template-columns:1fr}.question-header{align-items:flex-start;flex-direction:column;gap:8px}}@media (max-width:480px){.catalog-header h1{font-size:1.75rem}.course-card{padding:20px}.modal-header{padding:20px 20px 16px}.modal-content{padding:20px}.overview-stats{flex-direction:column;gap:16px}}.answer-review{background:var(--bg-primary);margin:0 auto;max-width:1200px;min-height:calc(100vh - 200px);padding:24px}.review-header{align-items:center;border-bottom:2px solid var(--border-color);display:flex;justify-content:space-between;margin-bottom:32px;padding-bottom:24px}.review-title h2{color:var(--text-primary);font-size:1.75rem;font-weight:600;margin:0 0 8px}.review-title p{color:var(--text-secondary);font-size:1rem;margin:0}.review-stats{display:flex;gap:24px}.stat-item{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);display:flex;flex-direction:column;min-width:80px;padding:16px}.stat-item.correct{background:#10b9811a;border-color:var(--success-color)}.stat-item.incorrect{background:#ef44441a;border-color:var(--error-color)}.stat-item.not-answered{background:#f59e0b1a;border-color:var(--warning-color)}.stat-icon{font-size:1.5rem;margin-bottom:8px}.stat-value{color:var(--text-primary);font-size:1.5rem;font-weight:700;margin-bottom:4px}.stat-label{color:var(--text-secondary);font-size:.875rem;font-weight:500}.review-content{grid-gap:32px;display:grid;gap:32px;grid-template-columns:300px 1fr;margin-bottom:32px}.question-navigator{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);height:-webkit-fit-content;height:fit-content;padding:24px;position:-webkit-sticky;position:sticky;top:24px}.question-navigator h3{color:var(--text-primary);font-size:1.125rem;font-weight:600;margin:0 0 16px}.question-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(5,1fr)}.question-nav-btn{align-items:center;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;display:flex;flex-direction:column;justify-content:center;min-height:60px;padding:8px 4px;position:relative;transition:all .2s ease}.question-nav-btn:hover{background:var(--bg-tertiary);transform:translateY(-1px)}.question-nav-btn.active{background:#2563eb1a;border-color:var(--primary-color)}.question-nav-btn.correct{background:#10b9811a;border-color:var(--success-color)}.question-nav-btn.incorrect{background:#ef44441a;border-color:var(--error-color)}.question-nav-btn.not-answered{background:#f59e0b1a;border-color:var(--warning-color)}.question-number{color:var(--text-primary);font-size:.875rem;font-weight:600;margin-bottom:4px}.question-status{font-size:1rem}.question-review{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden}.question-header{align-items:center;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:24px}.question-info{display:flex;flex-direction:column;gap:4px}.question-counter{color:var(--text-secondary);font-size:.875rem;font-weight:500}.question-subject{background:#2563eb1a;border-radius:var(--radius-sm);color:var(--primary-color);font-size:.875rem;font-weight:600;padding:4px 8px;width:-webkit-fit-content;width:fit-content}.answer-status-badge{align-items:center;border-radius:var(--radius-md);display:flex;font-size:.875rem;font-weight:600;gap:8px;padding:8px 16px}.answer-status-badge.correct{background:#10b98133;border:1px solid var(--success-color);color:var(--success-color)}.answer-status-badge.incorrect{background:#ef444433;border:1px solid var(--error-color);color:var(--error-color)}.answer-status-badge.not-answered{background:#f59e0b33;border:1px solid var(--warning-color);color:var(--warning-color)}.question-content{padding:24px}.question-text h3{color:var(--text-primary);font-size:1.25rem;font-weight:600;line-height:1.6;margin:0 0 24px}.options-review{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.option-review{align-items:center;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);display:flex;padding:16px;position:relative;transition:all .2s ease}.option-review.correct-answer{background:#10b9810d;border-color:var(--success-color)}.option-review.user-wrong-answer{background:#ef44440d;border-color:var(--error-color)}.option-review.user-correct-answer{background:#10b9811a;border-color:var(--success-color);box-shadow:0 0 0 2px #10b98133}.option-letter{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:50%;color:var(--text-primary);display:flex;flex-shrink:0;font-weight:600;height:32px;justify-content:center;margin-right:16px;width:32px}.option-text{color:var(--text-primary);flex:1 1;font-size:1rem;line-height:1.5}.option-indicators{align-items:center;display:flex;gap:8px}.correct-indicator,.user-correct-indicator,.wrong-indicator{font-size:1.25rem}.not-answered-notice{align-items:center;background:#f59e0b1a;border:1px solid var(--warning-color);border-radius:var(--radius-md);color:var(--warning-color);display:flex;font-weight:500;gap:12px;margin-bottom:24px;padding:16px}.notice-icon{font-size:1.25rem}.explanation-section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);margin-top:24px;padding:20px}.explanation-section h4{align-items:center;color:var(--text-primary);display:flex;font-size:1rem;font-weight:600;gap:8px;margin:0 0 12px}.explanation-section p{color:var(--text-secondary);line-height:1.6;margin:0}.question-navigation{align-items:center;background:var(--bg-secondary);border-top:1px solid var(--border-color);display:flex;justify-content:space-between;padding:24px}.nav-btn{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;font-weight:500;padding:12px 20px;transition:all .2s ease}.nav-btn:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--primary-color);transform:translateY(-1px)}.nav-btn:disabled{cursor:not-allowed;opacity:.5}.progress-indicator{color:var(--text-secondary);font-weight:500}.review-actions{border-top:2px solid var(--border-color);justify-content:space-between;padding-top:24px}.action-btn,.review-actions{align-items:center;display:flex}.action-btn{border:none;border-radius:var(--radius-md);cursor:pointer;font-size:1rem;font-weight:600;gap:8px;padding:14px 28px;transition:all .2s ease}.action-btn.primary{background:var(--primary-color);color:#fff}.action-btn.primary:hover{background:var(--primary-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}.action-btn.secondary{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary)}.action-btn.secondary:hover{background:var(--bg-tertiary);border-color:var(--text-secondary);transform:translateY(-1px)}@media (max-width:1024px){.review-content{gap:24px;grid-template-columns:1fr}.question-navigator{order:2;position:static}.question-grid{grid-template-columns:repeat(10,1fr)}}@media (max-width:768px){.answer-review{padding:16px}.review-header{flex-direction:column;gap:16px;text-align:center}.review-stats{gap:16px}.stat-item{min-width:70px;padding:12px}.question-header{align-items:flex-start;flex-direction:column;gap:12px}.question-grid{grid-template-columns:repeat(5,1fr)}.review-actions{flex-direction:column;gap:12px}.action-btn{justify-content:center;width:100%}}@media (max-width:480px){.question-text h3{font-size:1.125rem}.option-review{padding:12px}.option-letter{height:28px;margin-right:12px;width:28px}.question-navigation{flex-direction:column;gap:16px}.nav-btn{width:100%}}:root,[data-theme=light]{--primary-color:#2563eb;--primary-hover:#1d4ed8;--secondary-color:#64748b;--success-color:#059669;--warning-color:#d97706;--error-color:#dc2626;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--bg-primary:#fff;--bg-secondary:#f8fafc;--bg-tertiary:#e2e8f0;--border-color:#cbd5e1;--border-light:#e2e8f0;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--radius-sm:6px;--radius-md:8px;--radius-lg:12px}[data-theme=dark]{--primary-color:#60a5fa;--primary-hover:#3b82f6;--secondary-color:#94a3b8;--success-color:#34d399;--warning-color:#fbbf24;--error-color:#f87171;--text-primary:#f8fafc;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-tertiary:#334155;--border-color:#475569;--border-light:#64748b;--shadow-sm:0 1px 2px 0 #0006;--shadow-md:0 4px 6px -1px #0006,0 2px 4px -2px #0000004d;--shadow-lg:0 10px 15px -3px #00000080,0 4px 6px -4px #0006}@media (prefers-color-scheme:dark){:root:not([data-theme]){--primary-color:#3b82f6;--primary-hover:#2563eb;--text-primary:#f9fafb;--text-secondary:#d1d5db;--text-muted:#9ca3af;--bg-primary:#111827;--bg-secondary:#1f2937;--bg-tertiary:#374151;--border-color:#374151;--border-light:#4b5563;--shadow-sm:0 1px 2px 0 #0003;--shadow-md:0 4px 6px -1px #0000004d,0 2px 4px -2px #0003;--shadow-lg:0 10px 15px -3px #0006,0 4px 6px -4px #0000004d}}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fff;background-color:var(--bg-primary);color:#0f172a;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.6;scroll-behavior:smooth;transition:background-color .3s ease,color .3s ease}*{transition:background-color .3s ease,border-color .3s ease,color .3s ease,box-shadow .3s ease}.App{background-color:#fff;background-color:var(--bg-primary)}.App,.app-container{display:flex;flex-direction:column;min-height:100vh}.app-container{background:#fff;background:var(--bg-primary);transition:background-color .3s ease,color .3s ease;width:100%}.app-header{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid #cbd5e1;border-bottom:1px solid var(--border-color);padding:24px 0;position:-webkit-sticky;position:sticky;top:0;transition:all .3s ease;z-index:100}[data-theme=light] .app-header{background:#fffffff2;border-bottom:2px solid #e2e8f0;border-bottom:2px solid var(--border-light)}[data-theme=dark] .app-header{background:#0f172af2;border-bottom:1px solid #cbd5e1;border-bottom:1px solid var(--border-color)}@media (prefers-color-scheme:dark){:root:not([data-theme]) .app-header{background:#111827f2}}.header-content{justify-content:space-between;margin:0 auto;max-width:1200px;padding:0 24px}.header-brand,.header-content{align-items:center;display:flex}.header-brand{gap:12px}.header-actions{gap:24px}.header-actions,.header-nav{align-items:center;display:flex}.header-nav{gap:8px}.nav-link{background:none;border:none;border-radius:8px;border-radius:var(--radius-md);color:#475569;color:var(--text-secondary);cursor:pointer;font-size:.875rem;font-weight:500;padding:8px 16px;text-decoration:none;transition:all .2s ease}.nav-link:hover{background:#f8fafc;background:var(--bg-secondary);color:#0f172a;color:var(--text-primary)}.nav-link.active{background:#2563eb1a;color:#2563eb;color:var(--primary-color)}.btn-sm{font-size:.875rem;min-height:36px;padding:8px 16px}.app-header h1{color:#0f172a;color:var(--text-primary);font-size:1.75rem;font-weight:700;letter-spacing:-.025em;margin:0}.app-header .tagline{color:#475569;color:var(--text-secondary);font-size:.875rem;font-weight:400;margin:0}.app-main{flex:1 1;padding:32px;width:100%}.main-content{margin:0 auto;max-width:1200px;width:100%}.auth-layout{margin:0 auto;max-width:500px}.exam-layout{margin:0 auto;max-width:1400px;padding:0 16px}.full-width-layout{max-width:none;padding:0;width:100%}@media (max-width:768px){.exam-layout{padding:0 8px}.header-actions{flex-direction:column;gap:12px}.header-nav{flex-wrap:wrap;justify-content:center;order:2}}@media (max-width:640px){.header-nav{gap:4px}.nav-link{font-size:.8rem;padding:6px 12px}}.questions-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr;margin:32px 0}@media (min-width:1200px){.questions-grid{gap:32px;grid-template-columns:2fr 1fr}.question-content{grid-column:1}.question-sidebar{grid-column:2;height:-webkit-fit-content;height:fit-content;position:-webkit-sticky;position:sticky;top:120px}}.app-footer{background:#f8fafc;background:var(--bg-secondary);border-top:1px solid #cbd5e1;border-top:1px solid var(--border-color);margin-top:auto;padding:24px 0}.footer-content{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin:0 auto;max-width:1200px;padding:0 24px}.footer-info{color:#475569;color:var(--text-secondary);font-size:.875rem}.footer-links{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.footer-link{align-items:center;background:none;border:none;border-radius:6px;border-radius:var(--radius-sm);color:#475569;color:var(--text-secondary);cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;gap:4px;padding:6px 12px;text-decoration:none;transition:all .2s ease}.footer-link:hover{background:#fff;background:var(--bg-primary);color:#2563eb;color:var(--primary-color)}.theme-toggle{align-items:center;background:#f8fafc;background:var(--bg-secondary);border:2px solid #cbd5e1;border:2px solid var(--border-color);border-radius:8px;border-radius:var(--radius-md);color:#475569;color:var(--text-secondary);cursor:pointer;display:flex;height:48px;justify-content:center;overflow:hidden;padding:10px;position:relative;transition:all .3s ease;width:48px}[data-theme=light] .theme-toggle{background:#fff;background:var(--bg-primary);border:2px solid #e2e8f0;border:2px solid var(--border-light);box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm)}[data-theme=dark] .theme-toggle{background:#e2e8f0;background:var(--bg-tertiary);border:1px solid #cbd5e1;border:1px solid var(--border-color);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;box-shadow:var(--shadow-md)}.theme-toggle:hover{border-color:#2563eb;border-color:var(--primary-color);color:#2563eb;color:var(--primary-color);transform:scale(1.05)}[data-theme=light] .theme-toggle:hover{background:#f8fafc;background:var(--bg-secondary);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;box-shadow:var(--shadow-md)}[data-theme=dark] .theme-toggle:hover{background:#f8fafc;background:var(--bg-secondary);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;box-shadow:var(--shadow-lg)}.theme-toggle:active{transform:scale(.95)}.theme-icon{height:22px;transition:all .3s ease;width:22px}.theme-toggle:hover .theme-icon{transform:rotate(10deg) scale(1.1)}.container{margin:0 auto;max-width:1200px;padding:0 24px}.btn{align-items:center;border:none;border-radius:8px;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;gap:8px;justify-content:center;line-height:1;min-height:44px;padding:12px 24px;text-decoration:none;transition:all .2s ease}.btn-primary{background:#2563eb;background:var(--primary-color);color:#fff}.btn-primary:hover{background:#1d4ed8;background:var(--primary-hover);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-secondary{background:#f8fafc;background:var(--bg-secondary);border:2px solid #cbd5e1;border:2px solid var(--border-color);color:#0f172a;color:var(--text-primary)}[data-theme=light] .btn-secondary{background:#fff;background:var(--bg-primary);border:2px solid #e2e8f0;border:2px solid var(--border-light);box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm)}[data-theme=dark] .btn-secondary{background:#e2e8f0;background:var(--bg-tertiary);border:1px solid #cbd5e1;border:1px solid var(--border-color)}.btn-secondary:hover{background:#e2e8f0;background:var(--bg-tertiary);border-color:#2563eb;border-color:var(--primary-color);color:#2563eb;color:var(--primary-color)}[data-theme=dark] .btn-secondary:hover{background:#f8fafc;background:var(--bg-secondary);border-color:#2563eb;border-color:var(--primary-color)}.btn:disabled{cursor:not-allowed;opacity:.5;transform:none}.card{background:#fff;background:var(--bg-primary);border:1px solid #cbd5e1;border:1px solid var(--border-color);border-radius:12px;border-radius:var(--radius-lg);box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);overflow:hidden;transition:all .2s ease}.card:hover{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;box-shadow:var(--shadow-md);transform:translateY(-2px)}.content-card{background:#f8fafc;background:var(--bg-secondary);border:1px solid #cbd5e1;border:1px solid var(--border-color);border-radius:12px;border-radius:var(--radius-lg);box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);padding:24px;transition:all .2s ease}[data-theme=light] .content-card{background:#fff;background:var(--bg-primary);border:2px solid #e2e8f0;border:2px solid var(--border-light)}[data-theme=dark] .content-card{background:#f8fafc;background:var(--bg-secondary);border:1px solid #cbd5e1;border:1px solid var(--border-color);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;box-shadow:var(--shadow-md)}.text-center{text-align:center}.text-primary{color:#0f172a;color:var(--text-primary)}.text-secondary{color:#475569;color:var(--text-secondary)}.text-muted{color:#64748b;color:var(--text-muted)}.form-group{margin-bottom:24px}.form-label{display:block;font-size:.875rem;font-weight:500;margin-bottom:6px}.form-input,.form-label{color:#0f172a;color:var(--text-primary)}.form-input{border:2px solid #cbd5e1;border:2px solid var(--border-color);border-radius:8px;border-radius:var(--radius-md);font-size:1rem;min-height:44px;padding:12px 16px;transition:all .2s ease;width:100%}.form-input,[data-theme=light] .form-input{background:#fff;background:var(--bg-primary)}[data-theme=light] .form-input{border:2px solid #e2e8f0;border:2px solid var(--border-light)}[data-theme=dark] .form-input{background:#f8fafc;background:var(--bg-secondary);border:1px solid #cbd5e1;border:1px solid var(--border-color)}[data-theme=dark] .form-input:focus{box-shadow:0 0 0 3px #60a5fa33}.form-input:focus{border-color:#2563eb;border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a;outline:none}.form-input::placeholder{color:#64748b;color:var(--text-muted)}.form-error{color:#dc2626;color:var(--error-color);font-size:.75rem;font-weight:500;margin-top:6px}.alert{align-items:flex-start;border-radius:8px;border-radius:var(--radius-md);display:flex;gap:12px;margin-bottom:24px;padding:16px}.alert-info{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af}.alert-success{background:#f0fdf4;border:1px solid #bbf7d0;color:#15803d}.alert-warning{background:#fffbeb;border:1px solid #fed7aa;color:#d97706}.alert-error{background:#fef2f2;border:1px solid #fecaca;color:#dc2626}@media (max-width:1024px){.footer-content,.header-content{padding:0 20px}.app-main{padding:24px 20px 32px}}@media (max-width:768px){.header-content{flex-direction:column;gap:16px;text-align:center}.app-header h1{font-size:1.5rem}.app-main{padding:20px 16px 24px}.footer-content{flex-direction:column;gap:12px;text-align:center}.btn{font-size:1rem;padding:12px 20px}.container{padding:0 16px}}@media (max-width:480px){.app-header h1{font-size:1.25rem}.app-header .tagline{font-size:.8rem}.app-main{padding:16px 12px 20px}.btn{justify-content:center;width:100%}}.loading-container{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:300px;padding:64px 24px}.loading-spinner{animation:spin 1s linear infinite;border:3px solid #e2e8f0;border-top:3px solid #2563eb;border:3px solid var(--border-light);border-radius:50%;border-top-color:var(--primary-color);height:48px;margin-bottom:16px;width:48px}.loading-text{color:#475569;color:var(--text-secondary);font-weight:500}.error-container{background:#fff;background:var(--bg-primary);border:1px solid #fecaca;border-radius:12px;border-radius:var(--radius-lg);margin:24px 0;padding:24px;text-align:center}.error-title{color:#dc2626;color:var(--error-color);font-size:1.125rem;font-weight:600;margin-bottom:8px}.error-message{color:#475569;color:var(--text-secondary);line-height:1.5}.page-transition{animation:pageEnter .3s ease-out}@keyframes pageEnter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.skip-link{background:#2563eb;background:var(--primary-color);border-radius:6px;border-radius:var(--radius-sm);color:#fff;left:6px;padding:8px;position:absolute;text-decoration:none;top:-40px;z-index:1000}.skip-link:focus{top:6px}:focus{outline:2px solid #2563eb;outline:2px solid var(--primary-color);outline-offset:2px}button:focus,input:focus,select:focus,textarea:focus{border-color:#2563eb;border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a;outline:none}@media (prefers-contrast:high){:root{--border-color:#000;--text-secondary:#000;--bg-secondary:#fff}.card{border:2px solid #000}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.preloader-spinner{animation:none;border-top-color:#0000}}@media (prefers-color-scheme:dark){:root{--text-primary:#f9fafb;--text-secondary:#d1d5db;--text-muted:#9ca3af;--bg-primary:#111827;--bg-secondary:#1f2937;--bg-tertiary:#374151;--border-color:#374151;--border-light:#4b5563}.app-header{background:#111827f2}}@media print{.app-footer,.app-header,.preloader,button{display:none!important}.app-main{padding:0}*{background:#fff!important;color:#000!important}}
/*# sourceMappingURL=main.3b347063.css.map*/