@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700&display=swap";:root{--bg-primary: #F8FAFB;--bg-secondary: #FFFFFF;--bg-tertiary: #F0F5F7;--text-primary: #1A2B3C;--text-secondary: #4A6275;--text-muted: #9BB0C0;--accent: #2B8A9E;--accent-hover: #35A3B8;--accent-light: #E8F4F7;--accent-secondary: #5BB5A6;--border: #DCE6EC;--border-light: #EEF3F6;--success: #2ECC71;--warning: #F39C12;--error: #E74C3C;--radius: 12px;--radius-sm: 8px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .07), 0 2px 4px -2px rgba(0, 0, 0, .05)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh;-webkit-font-smoothing:antialiased}#root{min-height:100vh}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#c4d6e0;border-radius:3px}.app-layout{min-height:100vh;display:flex;flex-direction:column}.nav-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 32px;background:var(--bg-secondary);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100}.nav-brand{display:flex;align-items:center;gap:10px;color:var(--accent);font-weight:700;font-size:1.05rem}.nav-links{display:flex;gap:4px}.nav-link{padding:8px 16px;border-radius:var(--radius-sm);text-decoration:none;font-size:.88rem;font-weight:500;color:var(--text-secondary);transition:all .15s ease}.nav-link:hover{background:var(--bg-tertiary);color:var(--text-primary)}.nav-link.active{background:var(--accent-light);color:var(--accent)}.main-content{flex:1;padding:32px;max-width:800px;margin:0 auto;width:100%}.home-page{display:flex;flex-direction:column;align-items:center;gap:32px}.home-hero{text-align:center;padding:24px 0}.hero-icon{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,var(--accent-light),#D4EEF3);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;color:var(--accent)}.home-hero h1{font-size:1.8rem;font-weight:700;color:var(--text-primary);margin-bottom:8px;letter-spacing:-.02em}.home-hero p{color:var(--text-muted);font-size:.95rem;max-width:480px;line-height:1.6}.config-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:32px;width:100%;max-width:520px;box-shadow:var(--shadow)}.config-card h2{font-size:1.1rem;font-weight:600;margin-bottom:24px;color:var(--text-primary)}.config-group{margin-bottom:20px}.config-group label{display:block;font-size:.85rem;font-weight:600;color:var(--text-secondary);margin-bottom:8px}.config-group select{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.9rem;font-family:inherit;color:var(--text-primary);background:var(--bg-primary);cursor:pointer;outline:none;transition:border-color .15s}.config-group select:focus{border-color:var(--accent)}.radio-group{display:flex;gap:8px;flex-wrap:wrap}.radio-btn{padding:8px 16px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-secondary);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s ease;font-family:inherit}.radio-btn:hover{border-color:var(--accent);color:var(--accent)}.radio-btn.active{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.start-btn{width:100%;padding:14px;margin-top:24px;background:linear-gradient(135deg,var(--accent),var(--accent-secondary));color:#fff;border:none;border-radius:var(--radius);font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:inherit;display:flex;align-items:center;justify-content:center;gap:8px}.start-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #2b8a9e4d}.start-btn:disabled{opacity:.7;cursor:not-allowed}.spinner{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)}}.error-msg{padding:10px 14px;background:#fff5f5;border:1px solid #FED7D7;border-radius:var(--radius-sm);color:var(--error);font-size:.85rem;margin-top:12px}.quiz-page{display:flex;flex-direction:column;align-items:center}.quiz-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:32px;width:100%;box-shadow:var(--shadow)}.quiz-progress{margin-bottom:24px}.progress-text{font-size:.85rem;font-weight:500;color:var(--text-secondary);margin-bottom:8px;display:flex;align-items:center;gap:8px}.chapter-tag{padding:2px 10px;background:var(--accent-light);color:var(--accent);border-radius:12px;font-size:.78rem;font-weight:500}.progress-bar{height:4px;background:var(--bg-tertiary);border-radius:2px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-secondary));border-radius:2px;transition:width .3s ease}.question-content{margin-bottom:24px}.question-type-badge{display:inline-block;padding:3px 10px;background:var(--bg-tertiary);border-radius:12px;font-size:.75rem;font-weight:600;color:var(--text-muted);margin-bottom:12px}.question-text{font-size:1rem;line-height:1.7;color:var(--text-primary)}.question-text p{margin-bottom:8px}.options-list{display:flex;flex-direction:column;gap:10px}.option-btn{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-primary);cursor:pointer;transition:all .15s ease;text-align:left;font-family:inherit;font-size:.9rem;color:var(--text-primary);line-height:1.5}.option-btn:hover:not(:disabled){border-color:var(--accent);background:var(--accent-light)}.option-btn.selected{border-color:var(--accent);background:var(--accent-light)}.option-btn.correct{border-color:var(--success);background:#f0fff4}.option-btn.wrong{border-color:var(--error);background:#fff5f5}.option-btn:disabled{cursor:default}.option-letter{width:28px;height:28px;border-radius:50%;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.85rem;flex-shrink:0;color:var(--text-secondary)}.option-btn.selected .option-letter{background:var(--accent);color:#fff}.option-btn.correct .option-letter{background:var(--success);color:#fff}.option-btn.wrong .option-letter{background:var(--error);color:#fff}.option-text{padding-top:3px}.answer-textarea{width:100%;padding:14px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.9rem;font-family:inherit;color:var(--text-primary);background:var(--bg-primary);resize:vertical;outline:none;line-height:1.6;transition:border-color .15s}.answer-textarea:focus{border-color:var(--accent)}.answer-textarea:disabled{background:var(--bg-tertiary);cursor:not-allowed}.single-result{margin-top:24px;padding:20px;border-radius:var(--radius-sm);border:1px solid var(--border)}.single-result.correct{background:#f0fff4;border-color:#c6f6d5}.single-result.wrong{background:#fff5f5;border-color:#fed7d7}.quiz-actions{margin-top:24px;display:flex;justify-content:flex-end}.action-group{display:flex;gap:12px;width:100%;justify-content:flex-end}.btn-primary{padding:10px 24px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s ease;font-family:inherit}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{padding:10px 24px;background:var(--bg-primary);color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .15s ease;font-family:inherit}.btn-secondary:hover{background:var(--bg-tertiary);border-color:var(--text-muted)}.results-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:32px;width:100%;box-shadow:var(--shadow)}.results-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}.results-header h2{font-size:1.2rem;font-weight:700}.results-summary{display:flex;align-items:center;gap:12px}.accuracy-badge{font-size:1.4rem;font-weight:700;padding:4px 12px;border-radius:var(--radius-sm)}.accuracy-badge.pass{color:var(--success);background:#f0fff4}.accuracy-badge.fail{color:var(--error);background:#fff5f5}.results-list{display:flex;flex-direction:column;gap:16px}.result-item{padding:20px;border:1px solid var(--border);border-radius:var(--radius-sm);border-left:4px solid}.result-item.correct{border-left-color:var(--success)}.result-item.wrong{border-left-color:var(--error)}.result-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.result-badge{padding:3px 10px;border-radius:12px;font-size:.8rem;font-weight:600}.result-badge.correct{background:#f0fff4;color:var(--success)}.result-badge.wrong{background:#fff5f5;color:var(--error)}.result-index{font-size:.82rem;color:var(--text-muted)}.result-question{margin-bottom:12px;font-size:.92rem;line-height:1.6}.result-answers{margin-bottom:12px}.answer-row{display:flex;gap:8px;margin-bottom:6px;font-size:.88rem}.answer-label{color:var(--text-muted);font-weight:500;flex-shrink:0}.text-correct{color:var(--success);font-weight:600}.text-wrong{color:var(--error);font-weight:600}.result-explanation{padding:14px;background:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:.88rem;line-height:1.7}.explanation-title{font-weight:600;margin-bottom:8px;color:var(--text-primary)}.feedback-text{margin-top:8px;padding-top:8px;border-top:1px solid var(--border);color:var(--text-secondary)}.results-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.stats-page{max-width:700px;margin:0 auto}.stats-header{margin-bottom:32px}.stats-header h1{font-size:1.5rem;font-weight:700;margin-bottom:4px}.stats-header p{color:var(--text-muted);font-size:.9rem}.stats-empty{text-align:center;padding:60px 20px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius)}.empty-icon{font-size:3rem;margin-bottom:16px}.stats-empty h3{font-size:1.1rem;margin-bottom:8px}.stats-empty p{color:var(--text-muted);margin-bottom:20px}.stats-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:32px}.stat-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:20px 16px;text-align:center}.stat-value{font-size:1.6rem;font-weight:700;color:var(--text-primary);margin-bottom:4px}.stat-label{font-size:.78rem;color:var(--text-muted);font-weight:500}.stats-section{margin-bottom:32px}.stats-section h2{font-size:1.05rem;font-weight:600;margin-bottom:16px}.chapter-stats-list{display:flex;flex-direction:column;gap:12px}.chapter-stat-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm)}.chapter-stat-info{min-width:160px;display:flex;flex-direction:column;gap:2px}.chapter-name{font-size:.85rem;font-weight:600;color:var(--text-primary)}.chapter-detail{font-size:.75rem;color:var(--text-muted)}.chapter-stat-bar{flex:1;height:8px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden}.chapter-stat-fill{height:100%;border-radius:4px;transition:width .3s ease}.chapter-stat-fill.high{background:var(--success)}.chapter-stat-fill.mid{background:var(--warning)}.chapter-stat-fill.low{background:var(--error)}.chapter-accuracy{font-size:.85rem;font-weight:600;min-width:40px;text-align:right}.history-list{display:flex;flex-direction:column;gap:8px}.history-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm)}.history-info{display:flex;flex-direction:column;gap:2px}.history-chapter{font-size:.85rem;font-weight:500;color:var(--text-primary)}.history-time{font-size:.75rem;color:var(--text-muted)}.history-result{font-size:.88rem;font-weight:600}.stats-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.question-text code,.result-explanation code{background:var(--bg-tertiary);padding:2px 6px;border-radius:4px;font-size:.85em;color:var(--accent)}.result-explanation ul,.result-explanation ol{padding-left:20px;margin:8px 0}.result-explanation li{margin-bottom:4px;line-height:1.6}@media(max-width:768px){.nav-bar{padding:12px 16px}.main-content{padding:20px 16px}.stats-overview{grid-template-columns:repeat(2,1fr)}.chapter-stat-item{flex-wrap:wrap}.chapter-stat-info{min-width:100%}.config-card,.quiz-card{padding:24px 20px}}.short-answer-analysis{margin:16px 0;padding:16px;background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--border)}.analysis-score-bar{margin-bottom:16px}.score-bar-label{display:flex;justify-content:space-between;font-size:.82rem;font-weight:500;color:var(--text-secondary);margin-bottom:6px}.score-bar-track{height:8px;background:var(--bg-primary);border-radius:4px;overflow:hidden;border:1px solid var(--border-light)}.score-bar-fill{height:100%;border-radius:4px;transition:width .5s ease}.score-bar-fill.high{background:var(--success)}.score-bar-fill.mid{background:var(--warning)}.score-bar-fill.low{background:var(--error)}.key-points-list{margin-bottom:16px}.key-points-title{font-size:.85rem;font-weight:600;color:var(--text-primary);margin-bottom:10px}.key-point-item{display:flex;gap:10px;padding:10px 12px;margin-bottom:8px;background:var(--bg-secondary);border-radius:var(--radius-sm);border:1px solid var(--border-light);border-left:3px solid}.key-point-item.hit{border-left-color:var(--success)}.key-point-item.partial{border-left-color:var(--warning)}.key-point-item.miss{border-left-color:var(--error)}.key-point-header{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:50px}.key-point-icon{font-size:1rem}.key-point-status{font-size:.7rem;font-weight:600}.key-point-status.hit{color:var(--success)}.key-point-status.partial{color:var(--warning)}.key-point-status.miss{color:var(--error)}.key-point-content{flex:1;min-width:0}.key-point-text{font-size:.85rem;font-weight:500;color:var(--text-primary);line-height:1.5;margin-bottom:4px}.key-point-comment{font-size:.8rem;color:var(--text-muted);line-height:1.4;font-style:italic}.analysis-section{padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:8px}.analysis-section:last-child{margin-bottom:0}.analysis-section.strengths{background:#f0fff4;border:1px solid #C6F6D5}.analysis-section.weaknesses{background:#fff5f5;border:1px solid #FED7D7}.analysis-section.improvement{background:#ebf8ff;border:1px solid #BEE3F8}.analysis-section-title{font-size:.82rem;font-weight:600;color:var(--text-primary);margin-bottom:4px}.analysis-section p{font-size:.83rem;color:var(--text-secondary);line-height:1.6;margin:0}.score-percent{font-size:.82rem;font-weight:600;color:var(--text-muted);margin-left:8px}
