/* ========== 基础全局样式 ========== */
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; background: #f5f3f0; color: #1f1a17; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }

.mobile-container { max-width: 480px; min-height: 100vh; margin: 0 auto; background: #f5f3f0; padding-bottom: 84px; }

/* ========== 头部导航 ========== */
.header { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; justify-content: center; min-height: 52px; padding: 10px 16px; background: rgba(255,255,255,.96); border-bottom: 1px solid #eee6dc; }
.header h1 { margin: 0; font-size: 18px; font-weight: 700; }
.back-btn { position: absolute; left: 16px; color: #ff6b35; font-size: 14px; }

/* ========== 通用卡片 ========== */
.card, .section-card { margin: 14px 16px; padding: 16px; background: #fff; border-radius: 16px; box-shadow: 0 8px 24px rgba(60,42,28,.06); }
.loading, .empty { padding: 32px 16px; color: #8d8580; text-align: center; }

/* ========== 通用按钮 ========== */
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 0 16px; border: 0; border-radius: 12px; background: #ff6b35; color: #fff; cursor: pointer; }
.btn:active { opacity: 0.9; }
.btn:disabled { background: #c5c0bb; cursor: not-allowed; }
.btn-primary { background: #ff6b35; color: #fff; border: none; border-radius: 24px; font-size: 15px; font-weight: 600; height: 48px; width: 100%; }
.btn-secondary { background: #f5f3f0; color: #1f1a17; border: none; border-radius: 24px; font-size: 15px; font-weight: 600; height: 48px; }

/* ========== 底部 Tabbar ========== */
.tabbar { position: fixed; left: 50%; bottom: 0; z-index: 30; display: grid; grid-template-columns: repeat(4, 1fr); width: min(480px, 100%); transform: translateX(-50%); background: #fff; border-top: 1px solid #eee6dc; }
.tabbar a { padding: 8px 4px; color: #6b625c; font-size: 12px; text-align: center; }
.tabbar a.active { color: #ff6b35; font-weight: 700; }

/* ========== Toast 提示 ========== */
.toast { position: fixed; left: 50%; bottom: 72px; transform: translateX(-50%); z-index: 9999; max-width: 80%; padding: 10px 14px; border-radius: 999px; background: rgba(31,26,23,.88); color: #fff; font-size: 14px; text-align: center; box-shadow: 0 8px 24px rgba(0,0,0,.18); }

/* ========== 登录页 ========== */
.login-wrapper { min-height: 100vh; display: flex; flex-direction: column; background: linear-gradient(180deg, #fff 0%, #f5f3f0 100%); }
.login-logo { padding: 60px 20px 30px; text-align: center; }
.login-logo h1 { font-size: 28px; color: #ff6b35; margin: 0 0 8px; }
.login-logo p { font-size: 14px; color: #9a958e; margin: 0; }
.login-form { flex: 1; padding: 20px; }
.form-card { background: white; border-radius: 24px; padding: 24px; box-shadow: 0 4px 20px rgba(0,0,0,0.06); }
.form-title { font-size: 20px; font-weight: 700; margin-bottom: 20px; text-align: center; }
.error-msg { background: #ffebee; color: #c62828; padding: 10px 14px; border-radius: 12px; font-size: 13px; margin-bottom: 16px; display: none; }
.input-group { margin-bottom: 16px; }
.input-label { display: block; font-size: 13px; font-weight: 600; color: #6b625c; margin-bottom: 8px; }
.input-field { width: 100%; height: 48px; padding: 0 16px; border: 1px solid #e8e5e0; border-radius: 12px; font-size: 15px; background: #faf9f7; }
.input-field:focus { outline: none; border-color: #ff6b35; background: #fff; }
.login-btn { width: 100%; height: 50px; border-radius: 25px; background: var(--brand-orange, #ff6b35); color: white; font-size: 16px; font-weight: 700; border: none; cursor: pointer; margin-top: 8px; }
.login-btn:active { opacity: 0.9; }
.login-btn:disabled { background: #ccc; cursor: not-allowed; }
.hint { text-align: center; margin-top: 20px; font-size: 13px; color: #9a958e; line-height: 1.6; }

/* ========== 学习中心页 ========== */
.quick-entry { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; padding: 16px; background: white; margin: 16px; border-radius: 16px; }
.quick-entry-item { display: flex; align-items: center; gap: 12px; padding: 14px; background: #f9f7f4; border-radius: 12px; cursor: pointer; }
.quick-entry-item:active { transform: scale(0.98); background: #f0ebe5; }
.quick-entry-icon { width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 22px; flex-shrink: 0; }
.quick-entry-icon.policy { background: linear-gradient(135deg, #ff6b35, #ff8f65); color: white; }
.quick-entry-icon.knowledge { background: linear-gradient(135deg, #4caf50, #66bb6a); color: white; }
.quick-entry-icon.exam { background: linear-gradient(135deg, #2196f3, #42a5f5); color: white; }
.quick-entry-icon.drill { background: linear-gradient(135deg, #9c27b0, #ba68c8); color: white; }
.quick-entry-text { flex: 1; }
.quick-entry-title { font-size: 14px; font-weight: 600; color: #1f1a17; margin-bottom: 2px; }
.quick-entry-desc { font-size: 11px; color: #9a958e; }

.section-header { display: flex; justify-content: space-between; align-items: center; padding: 16px 16px 12px; }
.section-title { font-size: 16px; font-weight: 600; color: #1f1a17; }
.section-more { font-size: 13px; color: #9a958e; cursor: pointer; }

.knowledge-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; padding: 0 16px; }
.knowledge-card { background: white; border-radius: 12px; padding: 14px; cursor: pointer; }
.knowledge-card:active { opacity: 0.9; }
.knowledge-card-title { font-size: 14px; font-weight: 600; color: #1f1a17; margin-bottom: 6px; }
.knowledge-card-desc { font-size: 11px; color: #9a958e; margin-bottom: 8px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.knowledge-card-tags { display: flex; gap: 4px; flex-wrap: wrap; }
.knowledge-card-tag { padding: 2px 8px; background: #fff3e0; color: #ff6b35; border-radius: 8px; font-size: 10px; }

.category-tabs { display: flex; gap: 8px; overflow-x: auto; padding: 0 16px 16px; -webkit-overflow-scrolling: touch; }
.tab-item { padding: 8px 16px; background: white; border-radius: 20px; font-size: 13px; color: #6b625c; white-space: nowrap; cursor: pointer; flex-shrink: 0; }
.tab-item.active { background: #ff6b35; color: white; }

/* ========== 课件详情页 ========== */
.lesson-content { padding: 16px; }
.lesson-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.lesson-title { font-size: 20px; font-weight: 700; margin: 0; }
.lesson-duration { background: #fff3e0; color: #ff6b35; padding: 4px 12px; border-radius: 20px; font-size: 12px; font-weight: 600; }

.video-container { background: #000; border-radius: 12px; overflow: hidden; margin-bottom: 16px; }
.video-container video { width: 100%; display: block; }
.audio-container { background: #f9f7f4; border-radius: 12px; padding: 16px; margin-bottom: 16px; }
.audio-container audio { width: 100%; }

.lesson-text { font-size: 15px; line-height: 1.8; color: #1f1a17; }
.lesson-text h3 { font-size: 17px; margin: 20px 0 12px; }
.lesson-text p { margin: 12px 0; }
.lesson-text div { margin: 12px 0; }

.lesson-nav { display: flex; gap: 12px; padding: 16px; position: fixed; bottom: 0; left: 50%; transform: translateX(-50%); width: min(480px, 100%); background: #fff; border-top: 1px solid #eee6dc; }
.nav-btn { flex: 1; text-align: center; padding: 12px; background: #ff6b35; color: #fff; border-radius: 12px; font-weight: 600; cursor: pointer; }
.nav-btn.disabled { background: #e8e5e0; color: #9a958e; cursor: not-allowed; }
.nav-btn.completed { background: #4caf50; }

/* ========== 考试页 ========== */
.exam-info-bar { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; background: #fff; border-bottom: 1px solid #eee6dc; }
.exam-timer { font-size: 18px; font-weight: 700; color: #ff6b35; }
.exam-progress { font-size: 14px; color: #6b625c; }

.exam-content { padding: 16px; }
.question-card { background: #fff; border-radius: 16px; padding: 20px; margin-bottom: 16px; box-shadow: 0 8px 24px rgba(60,42,28,.06); }
.question-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.question-type { background: #fff3e0; color: #ff6b35; padding: 4px 12px; border-radius: 20px; font-size: 12px; font-weight: 600; }
.question-score { font-size: 14px; color: #9a958e; }
.question-content { font-size: 15px; line-height: 1.7; margin-bottom: 16px; }

.option-item { display: flex; align-items: center; gap: 12px; padding: 14px 16px; background: #f9f7f4; border-radius: 12px; margin-bottom: 8px; cursor: pointer; }
.option-item:active { background: #f0ebe5; }
.option-item.selected { background: #fff3e0; border: 1px solid #ff6b35; }
.option-letter { width: 28px; height: 28px; border-radius: 50%; background: #e8e5e0; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 600; flex-shrink: 0; }
.option-item.selected .option-letter { background: #ff6b35; color: #fff; }
.option-text { flex: 1; font-size: 14px; }

.answer-textarea { width: 100%; min-height: 120px; padding: 14px; border: 1px solid #e8e5e0; border-radius: 12px; font-size: 14px; resize: vertical; }
.answer-textarea:focus { outline: none; border-color: #ff6b35; }

.exam-footer { display: flex; gap: 12px; padding: 16px; position: fixed; bottom: 0; left: 50%; transform: translateX(-50%); width: min(480px, 100%); background: #fff; border-top: 1px solid #eee6dc; }
.exam-footer button { flex: 1; }

/* ========== 考试结果页 ========== */
.exam-result { padding: 24px 16px; }
.result-card { background: #fff; border-radius: 24px; padding: 32px 24px; text-align: center; box-shadow: 0 8px 24px rgba(60,42,28,.06); }
.result-score { font-size: 56px; font-weight: 800; color: #ff6b35; margin-bottom: 8px; }
.result-label { font-size: 14px; color: #9a958e; margin-bottom: 16px; }
.result-status { font-size: 18px; font-weight: 700; margin-bottom: 24px; }
.result-status.passed { color: #4caf50; }
.result-status.failed { color: #f44336; }
.result-detail { display: flex; justify-content: center; gap: 32px; margin-bottom: 24px; }
.detail-item { text-align: center; }
.detail-item span { display: block; }
.detail-item span:first-child { font-size: 12px; color: #9a958e; margin-bottom: 4px; }
.detail-item span:last-child { font-size: 20px; font-weight: 700; }

/* ========== 通关页 ========== */
.pass-map { padding: 16px; }
.stage-card { background: #fff; border-radius: 16px; padding: 16px; margin-bottom: 12px; display: flex; align-items: center; gap: 12px; }
.stage-card:active { opacity: 0.9; }
.stage-icon { width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 20px; flex-shrink: 0; }
.stage-icon.completed { background: #e8f5e9; }
.stage-icon.locked { background: #f5f3f0; }
.stage-info { flex: 1; }
.stage-name { font-size: 15px; font-weight: 600; margin-bottom: 4px; }
.stage-desc { font-size: 12px; color: #9a958e; }
.stage-status { font-size: 12px; font-weight: 600; padding: 4px 10px; border-radius: 20px; }
.stage-status.completed { background: #e8f5e9; color: #4caf50; }
.stage-status.locked { background: #f5f3f0; color: #9a958e; }

/* ========== 阶段详情页 ========== */
.stage-header { background: linear-gradient(135deg, #ff6b35 0%, #ff8f5a 100%); color: #fff; padding: 24px 16px; border-radius: 0 0 24px 24px; }
.stage-title { font-size: 22px; font-weight: 700; margin-bottom: 8px; }
.stage-desc { font-size: 14px; opacity: 0.9; line-height: 1.5; }
.progress-overview { display: flex; gap: 16px; margin-top: 16px; }
.progress-item { background: rgba(255,255,255,0.2); padding: 12px 16px; border-radius: 12px; text-align: center; }
.progress-value { font-size: 24px; font-weight: 700; }
.progress-label { font-size: 12px; opacity: 0.85; }

.task-section { padding: 16px; }
.task-section-title { font-size: 16px; font-weight: 600; color: #1f1a17; margin-bottom: 12px; }
.task-card { background: #fff; border-radius: 16px; padding: 16px; margin-bottom: 12px; display: flex; align-items: center; gap: 12px; }
.task-card:active { opacity: 0.9; }
.task-icon { width: 44px; height: 44px; border-radius: 12px; background: #f5f3f0; display: flex; align-items: center; justify-content: center; font-size: 20px; }
.task-card.completed .task-icon { background: #e8f5e9; }
.task-info { flex: 1; }
.task-title { font-size: 15px; font-weight: 600; color: #1f1a17; margin-bottom: 4px; }
.task-meta { font-size: 12px; color: #9a958e; }
.task-score { font-size: 16px; font-weight: 600; }
.task-score.pass { color: #4caf50; }
.task-score.fail { color: #f44336; }

.exam-section { padding: 16px; }
.exam-card { background: #fff; border-radius: 16px; padding: 20px; text-align: center; }
.exam-title { font-size: 16px; font-weight: 600; color: #1f1a17; margin-bottom: 8px; }
.exam-info { font-size: 13px; color: #9a958e; margin-bottom: 16px; }
.exam-score { font-size: 36px; font-weight: 700; color: #ff6b35; margin-bottom: 4px; }
.exam-status { font-size: 14px; margin-bottom: 16px; }
.exam-status.pass { color: #4caf50; }
.exam-status.fail { color: #f44336; }
.btn-exam { width: 100%; height: 48px; background: #ff6b35; color: #fff; border: none; border-radius: 24px; font-size: 15px; font-weight: 600; }
.btn-exam:disabled { background: #c5c0bb; }
.btn-exam.pass { background: #4caf50; }

/* ========== 知识库页 ========== */
.search-bar { background: #fff; padding: 12px 16px; border-radius: 24px; margin: 16px; display: flex; align-items: center; gap: 10px; }
.search-bar input { flex: 1; border: none; font-size: 14px; outline: none; }
.filter-section { padding: 0 16px; margin-bottom: 12px; }
.filter-label { font-size: 12px; color: #9a958e; margin-bottom: 8px; }
.filter-row { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 8px; -webkit-overflow-scrolling: touch; }
.filter-tag { padding: 6px 14px; background: #fff; border-radius: 16px; font-size: 13px; color: #6b625c; white-space: nowrap; border: 1px solid #e8e5e0; cursor: pointer; }
.filter-tag.active { background: #ff6b35; color: #fff; border-color: #ff6b35; }

.category-tab { padding: 8px 16px; background: #fff; border-radius: 20px; font-size: 13px; color: #6b625c; white-space: nowrap; cursor: pointer; border: 1px solid #e8e5e0; }
.category-tab.active { background: #ff6b35; color: #fff; border-color: #ff6b35; }

.sub-tabs { display: flex; padding: 0 16px; gap: 16px; margin-bottom: 16px; }
.sub-tab { font-size: 14px; color: #9a958e; padding-bottom: 8px; border-bottom: 2px solid transparent; }
.sub-tab.active { color: #ff6b35; border-color: #ff6b35; }

.knowledge-list { padding: 0 16px; }
.knowledge-header { display: flex; gap: 12px; margin-bottom: 12px; }
.knowledge-cover { width: 80px; height: 80px; border-radius: 12px; background: #f0f0f0; background-size: cover; background-position: center; flex-shrink: 0; }
.knowledge-cover.video { position: relative; }
.knowledge-cover.video::after { content: '▶'; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 32px; height: 32px; background: rgba(0,0,0,0.5); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 12px; }
.knowledge-info { flex: 1; overflow: hidden; }
.knowledge-title { font-size: 15px; font-weight: 600; color: #1f1a17; margin-bottom: 6px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.knowledge-summary { font-size: 12px; color: #9a958e; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-bottom: 8px; }
.knowledge-tags { display: flex; gap: 6px; flex-wrap: wrap; }
.tag { padding: 2px 8px; background: #f5f3f0; border-radius: 8px; font-size: 11px; color: #6b625c; }
.tag.public { background: #fff3e0; color: #ff6b35; }
.tag.filter { background: #e8f5e9; color: #4caf50; }
.knowledge-footer { display: flex; justify-content: space-between; align-items: center; padding-top: 12px; border-top: 1px solid #f5f5f5; }
.knowledge-meta { font-size: 12px; color: #9a958e; }
.knowledge-status { font-size: 12px; color: #4caf50; }
.knowledge-status.pending { color: #9a958e; }

.search-result-header { padding: 16px; background: #fff; margin-bottom: 12px; }
.search-result-header h3 { font-size: 16px; margin: 0 0 8px; }
.search-result-header p { font-size: 13px; color: #9a958e; margin: 0; }

/* ========== 知识库详情页 ========== */
.knowledge-detail-content { padding: 16px; }
.knowledge-detail-header { background: #fff; border-radius: 16px; padding: 20px; margin-bottom: 16px; }
.knowledge-detail-title { font-size: 20px; font-weight: 700; margin-bottom: 12px; }
.knowledge-detail-meta { display: flex; gap: 12px; flex-wrap: wrap; }
.knowledge-detail-body { background: #fff; border-radius: 16px; padding: 20px; }
.knowledge-detail-body h2 { font-size: 18px; margin: 20px 0 12px; }
.knowledge-detail-body h3 { font-size: 16px; margin: 16px 0 10px; }
.knowledge-detail-body p { font-size: 15px; line-height: 1.8; margin: 12px 0; }
.knowledge-detail-body ul, .knowledge-detail-body ol { padding-left: 20px; }
.knowledge-detail-body li { font-size: 15px; line-height: 1.8; margin: 6px 0; }

/* ========== 政策页 ========== */
.policy-search { background: #fff; padding: 16px; margin: 16px; border-radius: 16px; }
.policy-search input { width: 100%; height: 44px; padding: 0 16px; border: 1px solid #e8e5e0; border-radius: 12px; font-size: 14px; }
.policy-search input:focus { outline: none; border-color: #ff6b35; }

.policy-list { padding: 0 16px; }
.policy-card { background: #fff; border-radius: 16px; padding: 16px; margin-bottom: 12px; }
.policy-card:active { opacity: 0.9; }
.policy-title { font-size: 15px; font-weight: 600; margin-bottom: 8px; }
.policy-summary { font-size: 13px; color: #9a958e; margin-bottom: 12px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.policy-tags { display: flex; gap: 6px; flex-wrap: wrap; }

/* ========== 政策详情页 ========== */
.policy-detail-content { padding: 16px; }
.policy-detail-header { background: #fff; border-radius: 16px; padding: 20px; margin-bottom: 16px; }
.policy-detail-title { font-size: 20px; font-weight: 700; margin-bottom: 12px; }
.policy-detail-body { background: #fff; border-radius: 16px; padding: 20px; }
.policy-detail-body h2 { font-size: 18px; margin: 20px 0 12px; }
.policy-detail-body h3 { font-size: 16px; margin: 16px 0 10px; }
.policy-detail-body p { font-size: 15px; line-height: 1.8; margin: 12px 0; }
.policy-detail-body table { width: 100%; border-collapse: collapse; margin: 12px 0; }
.policy-detail-body th, .policy-detail-body td { padding: 10px; border: 1px solid #e8e5e0; text-align: left; font-size: 14px; }
.policy-detail-body th { background: #f9f7f4; font-weight: 600; }

/* ========== 积分页 ========== */
.points-header { background: linear-gradient(135deg, #ff6b35 0%, #ff8f5a 100%); color: #fff; padding: 24px 16px; text-align: center; }
.points-balance { font-size: 48px; font-weight: 800; margin-bottom: 8px; }
.points-label { font-size: 14px; opacity: 0.9; }

.points-actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; padding: 16px; margin: -24px 16px 16px; background: #fff; border-radius: 16px; box-shadow: 0 8px 24px rgba(60,42,28,.06); }
.points-action { text-align: center; padding: 12px; }
.points-action-icon { font-size: 24px; margin-bottom: 6px; }
.points-action-text { font-size: 12px; color: #6b625c; }

.points-records { padding: 0 16px; }
.record-card { background: #fff; border-radius: 12px; padding: 14px; margin-bottom: 8px; display: flex; justify-content: space-between; align-items: center; }
.record-info { flex: 1; }
.record-title { font-size: 14px; font-weight: 600; margin-bottom: 4px; }
.record-time { font-size: 11px; color: #9a958e; }
.record-points { font-size: 16px; font-weight: 700; }
.record-points.plus { color: #4caf50; }
.record-points.minus { color: #f44336; }

/* ========== 我的页 ========== */
.mine-header { background: linear-gradient(135deg, #ff6b35 0%, #ff8f5a 100%); color: #fff; padding: 24px 16px; display: flex; align-items: center; gap: 16px; }
.mine-avatar { width: 64px; height: 64px; border-radius: 50%; background: rgba(255,255,255,0.2); display: flex; align-items: center; justify-content: center; font-size: 28px; }
.mine-info { flex: 1; }
.mine-name { font-size: 18px; font-weight: 700; margin-bottom: 4px; }
.mine-role { font-size: 13px; opacity: 0.9; }

.mine-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; padding: 16px; margin: -24px 16px 16px; background: #fff; border-radius: 16px; box-shadow: 0 8px 24px rgba(60,42,28,.06); }
.mine-stat { text-align: center; }
.mine-stat-value { font-size: 20px; font-weight: 700; color: #ff6b35; }
.mine-stat-label { font-size: 12px; color: #9a958e; }

.mine-menu { padding: 0 16px; }
.mine-menu-item { background: #fff; border-radius: 12px; padding: 16px; margin-bottom: 8px; display: flex; align-items: center; gap: 12px; }
.mine-menu-item:active { opacity: 0.9; }
.mine-menu-icon { font-size: 20px; }
.mine-menu-text { flex: 1; font-size: 14px; font-weight: 600; }
.mine-menu-arrow { color: #9a958e; }

/* ========== 通知页 ========== */
.notification-list { padding: 0 16px; }
.notification-card { background: #fff; border-radius: 12px; padding: 16px; margin-bottom: 8px; }
.notification-card.unread { border-left: 3px solid #ff6b35; }
.notification-title { font-size: 14px; font-weight: 600; margin-bottom: 6px; }
.notification-content { font-size: 13px; color: #6b625c; margin-bottom: 8px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.notification-time { font-size: 11px; color: #9a958e; }

/* ========== 订阅页 ========== */
.subscription-header { background: #fff; padding: 24px 16px; text-align: center; }
.subscription-title { font-size: 20px; font-weight: 700; margin-bottom: 8px; }
.subscription-desc { font-size: 14px; color: #9a958e; }

.plan-list { padding: 0 16px; }
.plan-card { background: #fff; border-radius: 16px; padding: 20px; margin-bottom: 12px; border: 2px solid transparent; }
.plan-card.active { border-color: #ff6b35; }
.plan-name { font-size: 16px; font-weight: 700; margin-bottom: 8px; }
.plan-price { font-size: 24px; font-weight: 800; color: #ff6b35; margin-bottom: 12px; }
.plan-features { list-style: none; padding: 0; margin: 0 0 16px; }
.plan-features li { font-size: 13px; color: #6b625c; padding: 6px 0; border-bottom: 1px solid #f5f5f5; }
.plan-features li:last-child { border-bottom: none; }

/* ========== 演练页 ========== */
.drill-list { padding: 0 16px; }
.drill-card { background: #fff; border-radius: 16px; padding: 16px; margin-bottom: 12px; }
.drill-card:active { opacity: 0.9; }
.drill-title { font-size: 15px; font-weight: 600; margin-bottom: 8px; }
.drill-desc { font-size: 13px; color: #9a958e; margin-bottom: 12px; }
.drill-tags { display: flex; gap: 6px; flex-wrap: wrap; }
.drill-tag { padding: 4px 10px; background: #f5f3f0; border-radius: 8px; font-size: 11px; color: #6b625c; }

/* ========== 响应式适配 ========== */
@media (max-width: 360px) {
  .card, .section-card { margin-left: 10px; margin-right: 10px; }
  .lesson-title { font-size: 18px; }
  .result-score { font-size: 48px; }
  .points-balance { font-size: 40px; }
}

@media (max-width: 320px) {
  .mobile-container { padding-bottom: 72px; }
  .header { min-height: 48px; padding: 8px 12px; }
  .header h1 { font-size: 16px; }
}
