*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;color:#333}code{font-family:Courier New,Courier,monospace;background:#f4f4f4;padding:2px 6px;border-radius:3px;font-size:.9em}.app{max-width:1200px;margin:0 auto;padding:20px}.header{text-align:center;color:#fff;margin-bottom:40px;padding:30px 20px}.header h1{font-size:2.5rem;margin-bottom:10px;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.header p{font-size:1.1rem;opacity:.9}.main-content{background:#fff;border-radius:12px;padding:30px;box-shadow:0 10px 40px #0000001a;min-height:500px}.category-selector{margin-bottom:30px}.category-selector h2{margin-bottom:15px;color:#667eea}.category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:15px;margin-bottom:20px}.category-btn{padding:15px 20px;background:#f8f9fa;border:2px solid #e9ecef;border-radius:8px;cursor:pointer;font-size:1rem;transition:all .3s ease;font-weight:500}.category-btn:hover{background:#667eea;color:#fff;border-color:#667eea;transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.category-btn.active{background:#667eea;color:#fff;border-color:#667eea}.random-btn{width:100%;padding:15px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:transform .2s}.random-btn:hover{transform:scale(1.02)}.random-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.question-section{margin-bottom:30px}.question-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:20px;border-radius:8px 8px 0 0}.question-category{font-size:.9rem;opacity:.9;margin-bottom:8px}.question-text{font-size:1.3rem;font-weight:600;line-height:1.5}.answer-input-section{border:2px solid #e9ecef;border-top:none;border-radius:0 0 8px 8px;padding:20px}.answer-textarea{width:100%;min-height:200px;padding:15px;border:2px solid #e9ecef;border-radius:8px;font-size:1rem;font-family:inherit;resize:vertical;transition:border-color .3s}.answer-textarea:focus{outline:none;border-color:#667eea}.submit-btn{margin-top:15px;padding:12px 30px;background:#28a745;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .3s}.submit-btn:hover{background:#218838}.submit-btn:disabled{background:#6c757d;cursor:not-allowed}.assessment-section{margin-top:30px;padding:25px;background:#f8f9fa;border-radius:8px;border-left:4px solid #667eea}.assessment-section h3{color:#667eea;margin-bottom:15px}.score-badge{display:inline-block;padding:8px 20px;border-radius:20px;font-weight:600;font-size:1.1rem;margin-bottom:15px}.score-excellent{background:#28a745;color:#fff}.score-good{background:#17a2b8;color:#fff}.score-fair{background:#ffc107;color:#333}.score-poor{background:#dc3545;color:#fff}.feedback-content{white-space:pre-wrap;line-height:1.7;color:#495057}.correct-answer-section{margin-top:20px;padding:20px;background:#e7f3ff;border-radius:8px;border-left:4px solid #007bff}.correct-answer-section h4{color:#007bff;margin-bottom:10px}.correct-answer-content{color:#495057;line-height:1.7}.action-buttons{margin-top:20px;display:flex;gap:15px}.next-btn,.show-answer-btn{padding:12px 30px;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s}.next-btn{background:#667eea;color:#fff}.next-btn:hover{background:#5568d3}.show-answer-btn{background:#ffc107;color:#333}.show-answer-btn:hover{background:#e0a800}.loading{text-align:center;padding:40px;color:#667eea;font-size:1.2rem}.error{padding:20px;background:#f8d7da;border:1px solid #f5c6cb;border-radius:8px;color:#721c24;margin:20px 0}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;margin-bottom:30px}.stat-card{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:20px;border-radius:8px;text-align:center}.stat-value{font-size:2rem;font-weight:700;margin-bottom:5px}.stat-label{font-size:.9rem;opacity:.9}@media (max-width: 768px){.header h1{font-size:2rem}.category-grid{grid-template-columns:1fr}.action-buttons{flex-direction:column}.next-btn,.show-answer-btn{width:100%}}
