/* 口语升级模块样式 */
.sp-h { margin: 26px 0 12px; font-size: 16px; color: #1f2937; padding-left: 10px; border-left: 4px solid #4c8bf5; }

/* Part 2 Cue Cards */
.sp-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 720px) { .sp-cards { grid-template-columns: 1fr; } }
.sp-card { padding: 16px; background: #fff; border: 1px solid #e6e8eb; border-radius: 12px; }
.sp-card-topic { font-size: 14.5px; font-weight: 600; color: #1f2937; margin-bottom: 8px; }
.sp-points { margin: 0 0 10px; padding-left: 20px; }
.sp-points li { font-size: 13px; color: #4b5563; line-height: 1.65; }
.sp-frame { font-size: 12.5px; color: #6b7280; background: #f8faff; border-radius: 8px; padding: 9px 11px; line-height: 1.6; }
.sp-frame b { color: #2563eb; }
.sp-words { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.sp-word { font-size: 12px; color: #087f5b; background: #e6fcf5; padding: 3px 8px; border-radius: 6px; }

/* Part 3 问题链 */
.sp-chains { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 720px) { .sp-chains { grid-template-columns: 1fr; } }
.sp-chain { padding: 16px; background: #fff; border: 1px solid #e6e8eb; border-radius: 12px; }
.sp-theme { font-size: 14px; font-weight: 600; color: #9333ea; margin-bottom: 8px; }
.sp-qs { margin: 0; padding-left: 20px; }
.sp-q { font-size: 13px; color: #374151; line-height: 1.7; cursor: pointer; transition: color .15s; }
.sp-q:hover { color: #2563eb; }

/* 发音要点 */
.sp-pron { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 720px) { .sp-pron { grid-template-columns: 1fr; } }
.sp-pron-card { padding: 16px; background: #fff; border: 1px solid #e6e8eb; border-left: 4px solid #f59e0b; border-radius: 12px; }
.sp-pron-name { font-size: 14px; font-weight: 600; color: #1f2937; }
.sp-pron-tip { font-size: 12.5px; color: #6b7280; margin: 6px 0 10px; line-height: 1.55; }
.sp-ex { display: flex; flex-direction: column; gap: 5px; }
.sp-ex-item { font-size: 13px; color: #2563eb; background: #eff6ff; padding: 5px 10px; border-radius: 7px; cursor: pointer; transition: background .15s; }
.sp-ex-item:hover { background: #dbeafe; }

/* ---------- 口语 AI 评分 ---------- */
.rec-ai-bar { display:flex; align-items:center; gap:12px; margin:16px 0; flex-wrap:wrap; }
.rec-ai-hint { font-size:12.5px; color:#9ca3af; }
.rec-ai-result { margin-top:16px; }
.rec-ai-loading { padding:18px; text-align:center; color:#6b7280; background:#f8faff; border:1px solid #dbeafe; border-radius:12px; font-size:14px; }
.rec-ai-err { padding:14px 16px; background:#fef2f2; border:1px solid #fecaca; border-radius:12px; color:#b91c1c; font-size:13.5px; }
.rec-ai-card { padding:20px; background:#fff; border:1px solid #e6e8eb; border-radius:14px; }
.rec-ai-band { text-align:center; margin-bottom:18px; }
.rec-ai-band-num { font-size:44px; font-weight:800; color:#2563eb; line-height:1; }
.rec-ai-band-cap { display:block; font-size:13px; color:#6b7280; margin-top:4px; }
.rec-ai-dims { display:flex; flex-direction:column; gap:10px; margin-bottom:16px; }
.rec-band-row { display:flex; align-items:center; gap:12px; font-size:13.5px; }
.rec-band-label { flex:0 0 150px; color:#374151; }
.rec-band-track { flex:1; height:10px; background:#eef0f2; border-radius:5px; overflow:hidden; }
.rec-band-track i { display:block; height:100%; background:linear-gradient(90deg,#4c8bf5,#2563eb); }
.rec-band-val { flex:0 0 44px; text-align:right; font-weight:700; color:#2563eb; }
.rec-ai-tr { margin:12px 0; }
.rec-ai-tr summary { cursor:pointer; font-size:13.5px; color:#2563eb; }
.rec-ai-tr pre { white-space:pre-wrap; word-break:break-word; font-size:13px; color:#4b5563; background:#f8fafc; padding:12px; border-radius:8px; margin-top:8px; line-height:1.7; }
.rec-ai-sugg h4 { margin:14px 0 8px; font-size:14px; color:#1f2937; }
.rec-ai-sugg ul { margin:0; padding-left:20px; }
.rec-ai-sugg li { font-size:13px; color:#374151; line-height:1.8; }
.rec-ai-note { margin-top:14px; padding:10px 14px; background:#fffbeb; border-radius:10px; font-size:12.5px; color:#92400e; line-height:1.6; }
[data-theme="dark"] .rec-ai-card { background:#1e293b; border-color:#334155; }
[data-theme="dark"] .rec-ai-sugg h4, [data-theme="dark"] .rec-band-label { color:#e2e8f0; }
[data-theme="dark"] .rec-ai-sugg li { color:#cbd5e1; }
[data-theme="dark"] .rec-band-track { background:#334155; }
[data-theme="dark"] .rec-ai-tr pre { background:#0f172a; color:#cbd5e1; }
[data-theme="dark"] .rec-ai-loading { background:#0f172a; border-color:#1e40af; }