:root{font-family:Segoe UI,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#213547;background-color:#f5f5f5;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}h1,h2,h3,h4{margin:0}button{font-family:inherit}#root{width:100%}*{box-sizing:border-box}.app{min-height:100vh;padding:20px;background:linear-gradient(135deg,#667eea,#764ba2)}.home-view{max-width:1200px;margin:0 auto}.header{text-align:center;margin-bottom:40px}.header h1{font-size:3rem;color:#fff;margin-bottom:10px;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.subtitle{font-size:1.2rem;color:#ffffffe6}.groups-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:20px;margin-bottom:40px}.group-card{display:flex;flex-direction:column;align-items:center;padding:30px 20px;background:#fff;border-radius:20px;border:none;cursor:pointer;transition:transform .3s,box-shadow .3s;box-shadow:0 4px 15px #0000001a}.group-card:hover{transform:translateY(-5px);box-shadow:0 8px 25px #0003}.group-number{font-size:3rem;font-weight:700;color:var(--group-color);line-height:1}.group-name{font-size:1.2rem;font-weight:600;color:#333;margin-top:10px}.group-age{font-size:.9rem;color:#666;margin-top:5px}.info-section{background:#fffffff2;border-radius:20px;padding:30px;text-align:center}.info-section h3{font-size:1.5rem;color:#333;margin-bottom:15px}.info-section p{color:#666;margin-bottom:25px}.features{display:flex;justify-content:center;gap:40px;flex-wrap:wrap}.feature{display:flex;align-items:center;gap:10px}.feature-icon{font-size:1.5rem}.generator-link-button{width:100%;max-width:400px;margin:2rem auto 0;display:block;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:1rem 2rem;border-radius:12px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #667eea4d}.generator-link-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.admin-links{display:flex;gap:20px;margin-top:30px;justify-content:center;flex-wrap:wrap}.uploader-link-button,.login-link-button{padding:1rem 2rem;color:#fff;border:none;border-radius:12px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 4px 15px #0003}.uploader-link-button{background:linear-gradient(135deg,#4caf50,#45a049)}.uploader-link-button:hover{transform:translateY(-2px);box-shadow:0 8px 25px #4caf5080}.login-link-button{background:linear-gradient(135deg,#ff6b6b,#ee5a6f)}.login-link-button:hover{transform:translateY(-2px);box-shadow:0 8px 25px #ff6b6b80}.admin-badge{display:inline-flex;align-items:center;gap:15px;margin-top:15px;padding:12px 24px;background:#fffffff2;border-radius:25px;box-shadow:0 4px 15px #0000001a;font-size:1rem;color:#333}.admin-badge strong{color:#667eea}.logout-button{padding:6px 16px;background:#f44336;color:#fff;border:none;border-radius:12px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s}.logout-button:hover{background:#d32f2f;transform:scale(1.05)}.admin-view{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.admin-view .back-button{background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;border:2px solid rgba(255,255,255,.3);padding:12px 24px;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;margin-bottom:20px;transition:all .3s}.admin-view .back-button:hover{background:#ffffff4d;transform:translate(-5px)}.generator-container{max-width:1400px;margin:0 auto}.generator-container .back-button{margin-bottom:1rem}.subject-view{max-width:1000px;margin:0 auto}.back-button{background:#fff3;border:none;color:#fff;padding:10px 20px;border-radius:10px;cursor:pointer;font-size:1rem;margin-bottom:30px;transition:background .3s}.back-button:hover{background:#ffffff4d}.subjects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}.subject-card{display:flex;flex-direction:column;align-items:center;padding:30px;background:#fff;border-radius:20px;border:none;cursor:pointer;transition:transform .3s,box-shadow .3s;box-shadow:0 4px 15px #0000001a}.subject-card:hover{transform:translateY(-5px);box-shadow:0 8px 25px #0003}.subject-icon{font-size:3rem;margin-bottom:15px}.subject-name{font-size:1.3rem;font-weight:600;color:#333;margin-bottom:10px}.subject-desc{font-size:.9rem;color:#666;text-align:center;margin-bottom:15px}.exam-duration{font-size:.85rem;color:#888;background:#f0f0f0;padding:5px 15px;border-radius:20px}.exam-view{max-width:1200px;margin:0 auto}.exam-header{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:15px 25px;border-radius:15px;margin-bottom:20px;box-shadow:0 4px 15px #0000001a}.exam-info{display:flex;align-items:center;gap:15px}.exam-group{color:#fff;padding:8px 16px;border-radius:20px;font-weight:600}.exam-subject{font-size:1.1rem;color:#333}.timer{display:flex;align-items:center;gap:10px;font-size:1.5rem;font-weight:700;color:#333;background:#f0f0f0;padding:10px 20px;border-radius:10px}.timer.warning{background:#ffe0e0;color:#d32f2f;animation:pulse 1s infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.exam-content{display:grid;grid-template-columns:1fr 300px;gap:20px}@media(max-width:900px){.exam-content{grid-template-columns:1fr}.tips-section{order:-1}}.question-section{background:#fff;border-radius:20px;padding:30px;box-shadow:0 4px 15px #0000001a}.question-progress{margin-bottom:25px}.question-progress span{display:block;color:#666;margin-bottom:10px}.progress-bar{height:8px;background:#e0e0e0;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:4px;transition:width .3s}.question-card{margin-bottom:25px}.question-text{font-size:1.4rem;color:#333;margin-bottom:25px;line-height:1.5}.options-grid{display:flex;flex-direction:column;gap:15px}.option-button{display:flex;align-items:center;gap:15px;padding:15px 20px;background:#f8f9fa;border:2px solid #e0e0e0;border-radius:12px;cursor:pointer;transition:all .3s;text-align:left;font-size:1rem}.option-button:hover:not(:disabled){border-color:#667eea;background:#f0f3ff}.option-button.selected{border-color:#667eea;background:#e8ecff}.option-button.correct{border-color:#4caf50;background:#e8f5e9}.option-button.incorrect{border-color:#f44336;background:#ffebee}.option-button:disabled{cursor:default}.option-letter{display:flex;align-items:center;justify-content:center;width:35px;height:35px;background:#667eea;color:#fff;border-radius:50%;font-weight:700;flex-shrink:0}.option-button.correct .option-letter{background:#4caf50}.option-button.incorrect .option-letter{background:#f44336}.option-text{color:#333}.explanation{display:flex;align-items:flex-start;gap:15px;padding:20px;border-radius:12px;margin-top:20px}.explanation.correct{background:#e8f5e9;border:1px solid #4caf50}.explanation.incorrect{background:#ffebee;border:1px solid #f44336}.explanation-icon{font-size:1.5rem}.explanation-text{color:#333;line-height:1.5}.navigation-buttons{display:flex;justify-content:space-between;gap:15px}.nav-button{flex:1;padding:15px 25px;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s}.nav-button.prev{background:#f0f0f0;color:#333}.nav-button.prev:hover:not(:disabled){background:#e0e0e0}.nav-button.next{background:linear-gradient(90deg,#667eea,#764ba2);color:#fff}.nav-button.next:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 15px #667eea66}.nav-button:disabled{opacity:.5;cursor:not-allowed}.tips-section{display:flex;flex-direction:column;gap:20px}.tips-card{background:linear-gradient(135deg,#ffecd2,#fcb69f);border-radius:15px;padding:20px;box-shadow:0 4px 15px #0000001a}.tips-card h3{font-size:1.2rem;color:#8b4513;margin-bottom:10px}.tip-text{color:#5d4037;line-height:1.6;font-size:1rem}.question-overview{background:#fff;border-radius:15px;padding:20px;box-shadow:0 4px 15px #0000001a}.question-overview h4{font-size:1rem;color:#333;margin-bottom:15px}.question-dots{display:flex;flex-wrap:wrap;gap:8px}.question-dot{width:35px;height:35px;display:flex;align-items:center;justify-content:center;background:#f0f0f0;border:2px solid transparent;border-radius:50%;font-size:.9rem;font-weight:600;color:#666;cursor:pointer;transition:all .3s}.question-dot.current{border-color:#667eea;background:#e8ecff;color:#667eea}.question-dot.correct{background:#e8f5e9;color:#4caf50}.question-dot.incorrect{background:#ffebee;color:#f44336}.results-view{max-width:800px;margin:0 auto}.results-card{background:#fff;border-radius:25px;padding:40px;text-align:center;box-shadow:0 10px 40px #0003}.results-emoji{font-size:5rem;margin-bottom:20px}.results-card h1{font-size:2.5rem;color:#333;margin-bottom:30px}.score-circle{width:180px;height:180px;margin:0 auto 30px;border-radius:50%;background:conic-gradient(#667eea calc(var(--percentage) * 1%),#e0e0e0 calc(var(--percentage) * 1%));display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.score-circle:before{content:"";position:absolute;width:150px;height:150px;background:#fff;border-radius:50%}.score-value{position:relative;font-size:2rem;font-weight:700;color:#667eea}.score-percent{position:relative;font-size:1.2rem;color:#666}.result-message{font-size:1.3rem;color:#333;margin-bottom:30px}.results-details{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin-bottom:30px;text-align:left}.result-item{display:flex;justify-content:space-between;padding:15px;background:#f8f9fa;border-radius:10px}.result-item.correct{background:#e8f5e9}.result-item.incorrect{background:#ffebee}.result-label{color:#666}.result-value{font-weight:600}.answers-review{text-align:left;margin-bottom:30px;max-height:300px;overflow-y:auto;padding:20px;background:#f8f9fa;border-radius:15px}.answers-review h3{margin-bottom:15px;color:#333}.answer-item{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px;border-radius:8px;margin-bottom:10px}.answer-item.correct{background:#e8f5e9}.answer-item.incorrect{background:#ffebee}.answer-number{font-weight:700;color:#666;width:25px}.answer-status{font-size:1.2rem}.answer-question{flex:1;color:#333}.correct-answer{width:100%;font-size:.9rem;color:#4caf50;padding-left:45px;margin-top:5px}.results-actions{display:flex;flex-direction:column;gap:15px}.action-button{padding:15px 30px;border:none;border-radius:12px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s}.action-button.primary{background:linear-gradient(90deg,#667eea,#764ba2);color:#fff}.action-button.primary:hover{transform:translateY(-2px);box-shadow:0 4px 15px #667eea66}.action-button.secondary{background:#f0f0f0;color:#333}.action-button.secondary:hover{background:#e0e0e0}.action-button.tertiary{background:transparent;color:#667eea;border:2px solid #667eea}.action-button.tertiary:hover{background:#f0f3ff}@media(max-width:600px){.app{padding:10px}.header h1{font-size:2rem}.groups-grid{grid-template-columns:repeat(2,1fr)}.subjects-grid{grid-template-columns:1fr}.question-text{font-size:1.2rem}.results-card{padding:20px}.results-details{grid-template-columns:1fr}}.question-generator{max-width:1200px;margin:0 auto;padding:2rem}.generator-header{text-align:center;margin-bottom:2rem}.generator-header h2{font-size:2rem;margin-bottom:.5rem;color:#2c3e50}.generator-header p{color:#7f8c8d;font-size:1.1rem}.connection-section{background:#f8f9fa;padding:1.5rem;border-radius:12px;margin-bottom:2rem}.connection-section h3{margin-top:0;color:#2c3e50}.test-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;cursor:pointer;transition:transform .2s}.test-button:hover:not(:disabled){transform:translateY(-2px)}.test-button:disabled{opacity:.6;cursor:not-allowed}.generator-config{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:2rem}.generator-config h3{margin-top:0;color:#2c3e50}.config-row{display:flex;align-items:center;margin-bottom:1.5rem;gap:1rem}.config-row label{min-width:120px;font-weight:600;color:#2c3e50}.config-row select,.config-row input{flex:1;padding:.75rem;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;transition:border-color .3s}.config-row select:focus,.config-row input:focus{outline:none;border-color:#667eea}.generate-button{width:100%;background:linear-gradient(135deg,#11998e,#38ef7d);color:#fff;border:none;padding:1rem 2rem;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:transform .2s;margin-top:1rem}.generate-button:hover:not(:disabled){transform:translateY(-2px)}.generate-button:disabled{opacity:.6;cursor:not-allowed}.status-message,.result-message{padding:1rem;border-radius:8px;margin-top:1rem;font-weight:500}.status-message.success,.result-message.success{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.status-message.error,.result-message.error{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.duplicate-info{margin-top:.75rem;padding:.75rem;background:#17a2b81a;border-radius:6px;border-left:3px solid #17a2b8}.duplicate-info small{color:#0c5460;font-weight:500;font-size:.9rem}.generated-preview{margin-top:1.5rem;padding:1.5rem;background:#fff;border-radius:8px}.generated-preview h4{margin-top:0;color:#2c3e50}.question-preview{background:#f8f9fa;padding:1rem;border-radius:8px;margin-bottom:1rem;border-left:4px solid #667eea}.question-preview strong{display:block;margin-bottom:.5rem;color:#2c3e50}.question-preview ul{list-style:none;padding:0;margin:.5rem 0}.question-preview li{padding:.5rem;margin:.25rem 0;background:#fff;border-radius:4px}.question-preview .correct-option{background:#d4edda;font-weight:600;color:#155724}.question-preview em{display:block;margin-top:.5rem;color:#7f8c8d;font-size:.9rem}.statistics-section{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:2rem}.statistics-section h3{margin-top:0;color:#2c3e50}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);padding:1.5rem;border-radius:12px;text-align:center}.stat-card.highlight{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.stat-value{display:block;font-size:2.5rem;font-weight:700;margin-bottom:.5rem}.stat-label{display:block;font-size:.9rem;opacity:.8}.clear-button{background:#dc3545;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;cursor:pointer;transition:opacity .2s}.clear-button:hover:not(:disabled){opacity:.9}.clear-button:disabled{opacity:.5;cursor:not-allowed}.instructions{background:#fff3cd;padding:1.5rem;border-radius:12px;border:1px solid #ffc107}.instructions h3{margin-top:0;color:#856404}.instructions ol{color:#856404;line-height:1.8}.instructions code{background:#fff;padding:.2rem .5rem;border-radius:4px;font-family:Courier New,monospace;color:#c7254e}@media(max-width:768px){.question-generator{padding:1rem}.config-row{flex-direction:column;align-items:flex-start}.config-row label{min-width:auto}.config-row select,.config-row input{width:100%}.stats-grid{grid-template-columns:1fr}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;position:relative;overflow:hidden;background:linear-gradient(135deg,#667eea,#764ba2)}.login-background{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;z-index:0}.gradient-blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.3;animation:float 20s infinite ease-in-out}.blob-1{width:400px;height:400px;background:#ff6b6b;top:-100px;left:-100px;animation-delay:0s}.blob-2{width:300px;height:300px;background:#4ecdc4;bottom:-50px;right:-50px;animation-delay:5s}.blob-3{width:350px;height:350px;background:#ffd93d;top:50%;left:50%;transform:translate(-50%,-50%);animation-delay:10s}@keyframes float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(50px,-50px) scale(1.1)}66%{transform:translate(-50px,50px) scale(.9)}}.login-card{position:relative;z-index:1;background:#fff;border-radius:30px;padding:50px 40px;box-shadow:0 20px 60px #0000004d;max-width:450px;width:100%;animation:slideUp .5s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-header{text-align:center;margin-bottom:40px}.login-header h1{font-size:2rem;color:#333;margin-bottom:10px;font-weight:700}.login-header p{color:#666;font-size:1rem}.login-form{display:flex;flex-direction:column;gap:25px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{display:flex;align-items:center;gap:8px;font-weight:600;color:#333;font-size:.95rem}.label-icon{font-size:1.2rem}.form-group input{padding:15px 20px;border:2px solid #e0e0e0;border-radius:12px;font-size:1rem;transition:all .3s;font-family:inherit}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 4px #667eea1a}.form-group input::placeholder{color:#aaa}.error-message{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#ffebee;border:1px solid #ef5350;border-radius:10px;color:#c62828;font-size:.9rem;animation:shake .5s}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.error-icon{font-size:1.2rem}.login-button{display:flex;align-items:center;justify-content:center;gap:10px;padding:16px 32px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s;margin-top:10px}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 30px #667eea66}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.7;cursor:not-allowed}.button-icon{font-size:1.3rem;transition:transform .3s}.login-button:hover:not(:disabled) .button-icon{transform:translate(5px)}.spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-footer{margin-top:30px;text-align:center}.security-notice{color:#666;font-size:.85rem;margin-bottom:15px;padding:10px;background:#f5f5f5;border-radius:8px}.demo-credentials{color:#999;font-size:.8rem;font-style:italic}.demo-credentials strong{color:#667eea}@media(max-width:500px){.login-card{padding:40px 25px}.login-header h1{font-size:1.6rem}.form-group input{padding:12px 16px}.login-button{padding:14px 28px;font-size:1rem}}
