/* ============ 做后学 · 设计令牌 v2（晨间森林） ============
   近白底=清爽纸面｜生长绿=主色与行动｜杏橙=只给挑战与欢庆｜天蓝=思考与迁移 */
:root {
  --bg: #f6faf6;
  --card: #ffffff;
  --ink: #24312a;
  --ink-soft: #7e8b84;
  --act: #2f9e63;            /* 行动绿（主色） */
  --act-deep: #227f4d;
  --grow-soft: #e4f4ea;
  --amber: #ffb64a;          /* 情绪杏（挑战/欢庆专用） */
  --amber-deep: #f29a1f;
  --amber-soft: #fff6e6;
  --sky: #4a86e8;
  --sky-soft: #ecf2fd;
  --gold: #e5b62e;
  --warn: #c0392b;
  --line: #e3ebe5;
  --radius: 14px;
  --shadow: 0 2px 10px rgba(35, 70, 50, .06);
  --shadow-lift: 0 8px 22px rgba(35, 70, 50, .12);
  /* 兼容旧变量名 */
  --honey: #2f9e63;
  --honey-deep: #227f4d;
  --grow: #2f9e63;
  --paper: #f6faf6;
}

* { box-sizing: border-box; margin: 0; }
body { font-family: -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;
  background: var(--bg);
  background-image: radial-gradient(rgba(47, 158, 99, .035) 1px, transparent 1px);
  background-size: 24px 24px;
  color: var(--ink); line-height: 1.65;
  -webkit-font-smoothing: antialiased; }
h1 { font-size: 1.35em; letter-spacing: .5px; }
h2 { font-size: 1.05em; margin: 14px 0 8px; display: flex; align-items: center; gap: 8px; }
body.kid h2::before { content: ""; width: 4px; height: 1em; border-radius: 2px;
  background: var(--act); }
button { cursor: pointer; border: none; border-radius: 12px; padding: 8px 16px;
  background: linear-gradient(135deg, var(--act), var(--act-deep));
  color: #fff; font-size: 1em; font-weight: 600;
  box-shadow: 0 2px 8px rgba(34, 127, 77, .28); transition: .15s; }
button:hover { transform: translateY(-1px); box-shadow: 0 4px 14px rgba(34, 127, 77, .38); }
button:active { transform: translateY(0); }
button:disabled { opacity: .5; transform: none; }
input, select, textarea { border: 1.5px solid var(--line); border-radius: 10px; padding: 9px 12px;
  font-size: 1em; font-family: inherit; background: #fff; transition: border-color .15s; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--act); }
.row { display: flex; gap: 8px; align-items: center; margin-top: 8px; flex-wrap: wrap; }
.quiet { background: none; color: var(--ink-soft); text-decoration: none; font-size: .9em;
  box-shadow: none; font-weight: 400; }
.quiet:hover { color: var(--ink); box-shadow: none; transform: none; }
.hint { color: var(--ink-soft); font-size: .85em; }
.time { color: #b9c3bd; font-size: .8em; }
.brand-tagline { font-size: .95em; color: var(--act-deep); font-weight: 600;
  letter-spacing: 1.5px; margin-top: 4px; }

/* ============ 登录 ============ */
.login-wrap { max-width: 520px; margin: 9vh auto; text-align: center; padding: 20px; }
.login-wrap h1 { font-size: 2em; }
.login-wrap .sub { color: var(--ink-soft); margin: 10px 0 6px; }
.err { color: var(--warn); background: #fdecea; border-radius: 10px; padding: 8px 14px; margin-top: 12px; }
.auth-box { max-width: 340px; margin: 28px auto 0; background: var(--card); border-radius: 20px;
  padding: 22px; box-shadow: var(--shadow-lift); }
.auth-tabs { display: flex; gap: 8px; margin-bottom: 16px; }
.auth-tab { flex: 1; background: #eef4ef; color: var(--ink-soft); box-shadow: none; font-weight: 500; }
.auth-tab.on { background: linear-gradient(135deg, var(--act), var(--act-deep)); color: #fff; }
.auth-form { display: flex; flex-direction: column; gap: 10px; }

/* ============ 孩子端 ============ */
body.kid { padding: 18px; max-width: 1080px; margin: auto; }
.kid-header { display: flex; justify-content: space-between; align-items: center; padding: 6px 0 14px; }
.challenge-banner { display: block; background: var(--amber-soft);
  border: 1.5px solid #f0cf8a; border-left: 5px solid var(--amber-deep);
  color: #8a5b00; font-size: 1.05em; font-weight: 700; padding: 12px 18px;
  border-radius: var(--radius); text-decoration: none; margin-bottom: 10px;
  box-shadow: var(--shadow); transition: .15s; }
.challenge-banner:hover { transform: translateY(-1px); box-shadow: var(--shadow-lift); }
.today-strip { display: block; background: var(--card); border-left: 4px solid var(--act);
  border-radius: var(--radius); padding: 12px 18px; margin-bottom: 12px;
  text-decoration: none; color: var(--ink); font-weight: 600; box-shadow: var(--shadow);
  transition: .15s; }
.today-strip:hover { transform: translateY(-1px); box-shadow: var(--shadow-lift); }
.project-grid { display: flex; flex-wrap: wrap; gap: 12px; }
.project-card { width: 172px; min-height: 76px; background: var(--card); border-radius: var(--radius);
  padding: 12px 14px; text-decoration: none; color: var(--ink); box-shadow: var(--shadow);
  border: 1.5px solid transparent; transition: .15s; }
.project-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-lift);
  border-color: #c9e6d4; }
.project-card.new { border: 2px dashed #8fcaa8; background: none; color: var(--act-deep);
  font-size: 1em; box-shadow: none; font-weight: 600; width: auto; min-width: 208px;
  min-height: 76px; display: flex; align-items: center; justify-content: center;
  white-space: nowrap; }
.pc-title { font-weight: 700; } .pc-sub { color: var(--ink-soft); font-size: .85em; }

/* 本领树：果实视觉 */
.tree-row { display: flex; flex-wrap: wrap; gap: 9px; background: var(--card);
  border-radius: var(--radius); padding: 14px 16px; box-shadow: var(--shadow); }
.node { padding: 7px 15px; border-radius: 20px; font-size: .9em;
  display: inline-block; max-width: 100%; line-height: 1.45; margin: 3px 6px 3px 0;
  background: #eef2ef; color: #97a29b; border: 1.5px solid transparent; }
body.guide .node { padding: 4px 12px; font-size: .88em; }
.node.s-candidate { background: #f2f6f2; color: #a3aea7; border-style: dashed; border-color: #d4ded6; }
.node.s-understood { background: var(--amber-soft); color: #a2691a; border-color: #f5dcae; }
.node.s-independent { background: var(--grow-soft); color: #1e7a47; font-weight: 700;
  border-color: #aadfc1; }
.node.s-transfer { background: var(--sky-soft); color: #2b5cb0; font-weight: 700;
  border-color: #bcd4f6; }
.node.s-trunk { background: linear-gradient(135deg, #f6ca4b, var(--gold)); color: #fff;
  font-weight: 800; box-shadow: 0 2px 10px rgba(229, 182, 46, .45); border: none; }

dialog { border: none; border-radius: 20px; padding: 24px; max-width: 480px; width: 92vw;
  max-height: 86vh; overflow-y: auto; box-shadow: 0 20px 60px rgba(25, 55, 40, .3); }
dialog .chip { padding: 3px 10px; font-size: .84em; }
button, .chip { user-select: none; -webkit-user-select: none; }
dialog::backdrop { background: rgba(25, 45, 35, .38); backdrop-filter: blur(2px); }
.newp-form label { display: block; margin: 10px 0; font-size: .95em; }
.newp-form input, .newp-form select { width: 100%; margin-top: 4px; }

/* ============ 工作台 ============ */
.project-brief { display: flex; flex-wrap: wrap; gap: 6px 18px; background: var(--card);
  border-radius: var(--radius); padding: 10px 16px; margin-bottom: 14px; font-size: .88em;
  color: #64706a; box-shadow: var(--shadow); border-left: 4px solid var(--act); }
.task-card { background: linear-gradient(135deg, #fffaf0, #fff2da);
  border: 2px solid #f6d489; border-radius: 18px; padding: 20px; margin-bottom: 16px;
  box-shadow: 0 6px 20px rgba(242, 170, 60, .16); }
.four-steps { margin: 10px 0 14px 20px; }
.four-steps li { margin: 9px 0; }
.bench { display: grid; grid-template-columns: 1.6fr 1fr; gap: 16px; align-items: start; }
@media (max-width: 800px) { .bench { grid-template-columns: 1fr; } }
.chat-pane, .version-pane { background: var(--card); border-radius: var(--radius); padding: 16px;
  box-shadow: var(--shadow); }
.chat-box { height: 420px; overflow-y: auto; padding: 8px 4px; }
.msg { display: flex; margin: 9px 0; }
.msg.user { justify-content: flex-end; }
.bubble { max-width: 78%; padding: 10px 14px; border-radius: 16px; white-space: pre-wrap; }
.msg.user .bubble { background: var(--grow-soft); border-bottom-right-radius: 5px; }
.msg.assistant .bubble { background: #f2f5f2; border-bottom-left-radius: 5px; }
.chat-input { display: flex; gap: 8px; margin-top: 12px; }
.chat-input input { flex: 1; }
.ver-form { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px; }
.ver-item { display: flex; gap: 8px; align-items: center; padding: 7px 0;
  border-bottom: 1px dashed var(--line); font-size: .9em; }
.tag { background: #edf2ee; border-radius: 6px; padding: 1px 8px; font-size: .8em; color: #78857e; }
.t-failure { background: #fde3e0; color: var(--warn); }
.t-print { background: var(--grow-soft); color: #1e7a47; }

/* 挑战运行时三步 */
.run-steps { margin-top: 14px; }
.run-step { background: var(--card); border-radius: 12px; padding: 12px 16px; margin: 8px 0;
  border-left: 4px solid #f6d489; box-shadow: var(--shadow); }
.run-step.run-done { border-left-color: var(--act); }
.run-step.run-feedback { border-left-color: var(--sky); background: var(--sky-soft); }
.run-step textarea { width: 100%; min-height: 52px; margin: 6px 0; }
.run-said { background: #f4f9f4; border-radius: 10px; padding: 7px 12px; margin: 6px 0; }

/* 准备清单 */
.mat-list { display: flex; flex-direction: column; gap: 5px; margin-bottom: 14px; }
.mat-item { display: block; font-size: .92em; padding: 6px 9px; background: #f5f9f5;
  border-radius: 9px; }
.mat-item input { width: auto; margin-right: 6px; accent-color: var(--act); }
.mat-warn { color: var(--warn); font-weight: 700; }

/* ============ 做后学之路 / 探索 ============ */
.domain-link { color: inherit; text-decoration: none; }
.domain-link:hover { color: var(--act-deep); }
.path-row { display: flex; gap: 7px; flex-wrap: wrap; }
.path-step { width: 106px; text-align: center; background: var(--card); border-radius: 12px;
  padding: 9px 5px; box-shadow: var(--shadow); border: 1.5px solid transparent; transition: .15s; }
.path-step .path-icon { font-size: 1.2em; }
.path-step .path-name { font-size: .72em; line-height: 1.3; margin-top: 3px; text-wrap: balance; }
.path-step.p-done { background: var(--grow-soft); border-color: #aadfc1;
  box-shadow: 0 2px 10px rgba(47, 158, 99, .2); }
.path-step.p-active { background: var(--amber-soft); border-color: #f6d489;
  box-shadow: 0 3px 12px rgba(242, 170, 60, .28); }
.path-step.p-open { opacity: .62; }
a.path-step { text-decoration: none; color: inherit; display: block; }
a.path-step:hover { transform: translateY(-2px); opacity: 1; box-shadow: var(--shadow-lift); }
.explore-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 9px; }
@media (max-width: 800px) { .explore-grid { grid-template-columns: repeat(3, 1fr); } }
.explore-card { display: flex; flex-direction: column; align-items: center; gap: 0;
  background: var(--card); border-radius: 11px; padding: 6px 4px;
  text-decoration: none; color: var(--ink); box-shadow: var(--shadow);
  text-align: center; border: 1.5px solid transparent; transition: .15s; }
.explore-card b { font-size: .76em; line-height: 1.25; text-wrap: balance; }
.explore-card:hover { transform: translateY(-2px); border-color: #c9e6d4;
  box-shadow: var(--shadow-lift); }
.explore-icon { font-size: 1.1em; }
.explore-n { font-size: .64em; color: #b6c1ba; }
.explore-new { border: 2px dashed #8fcaa8 !important; background: none !important;
  color: var(--act-deep) !important; box-shadow: none !important; font-weight: 600; }
.explore-new:hover { background: var(--grow-soft) !important; transform: translateY(-2px); }

/* 问题口袋 + 创意启动器 */
.q-input-strip { display: flex; gap: 8px; align-items: center; background: var(--card);
  border-radius: 11px; padding: 6px 6px 6px 13px; margin: 6px 0; box-shadow: var(--shadow); }
.q-input-strip input { flex: 1; border: none; padding: 6px 0; background: none; }
.q-input-strip input:focus { border: none; }

.q-item { display: flex; gap: 8px; align-items: center; background: var(--card);
  border-radius: 11px; padding: 9px 13px; margin: 6px 0; box-shadow: var(--shadow); }
.q-item.q-done { opacity: .55; }
.q-link { flex: 1; color: inherit; text-decoration: none; }
.q-link:hover { color: var(--act-deep); }
.chip-row { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0; }
.chip { background: #fff; border: 1.5px solid #d6e2d9; color: #64706a; border-radius: 16px;
  padding: 4px 13px; font-size: .9em; box-shadow: none; font-weight: 500; }
.chip:hover { border-color: var(--act); color: var(--act-deep); transform: none; box-shadow: none; }
.chip.on { background: linear-gradient(135deg, var(--act), var(--act-deep));
  border-color: transparent; color: #fff; }
.idea-card { display: block; width: 100%; text-align: left; background: #fffaf0;
  border: 1.5px solid #f6d489; color: var(--ink); border-radius: 12px; padding: 11px 14px;
  margin: 7px 0; font-size: .92em; line-height: 1.55; box-shadow: none; font-weight: 400; }
.idea-card:hover { background: #fff2da; transform: none; box-shadow: var(--shadow); }
#newp { max-width: 480px; }

/* 下一步三选一 */
.next-choice { background: linear-gradient(135deg, #f0f5ff, var(--sky-soft));
  border: 2px solid #c3d8f7; border-radius: 18px; padding: 16px 18px; margin-bottom: 16px; }
.choice-row { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 10px; }
.choice-btn { background: #fff; color: #2b5cb0; border: 1.5px solid #c3d8f7; font-size: .95em;
  box-shadow: none; font-weight: 600; }
.choice-btn:hover { background: var(--sky-soft); }

/* ============ 秘密页 / 变形法页 ============ */
.secret-lesson { background: var(--card); border-radius: 16px; padding: 18px 22px;
  margin-bottom: 14px; box-shadow: var(--shadow); }
.secret-oneline { font-size: 1.08em; color: #9a6d10; background: var(--amber-soft);
  border-radius: 11px; padding: 11px 15px; margin: 8px 0; border-left: 4px solid #f0c35e; }
.lesson-text p { margin: 10px 0; line-height: 1.85; }
.gate { display: flex; gap: 12px; align-items: center; padding: 11px 13px; border-radius: 11px;
  margin: 8px 0; background: #f5f9f5; }
.gate-details.gate-passed .gate { background: var(--grow-soft); }
.gate-icon { font-size: 1.5em; }
.gate > div { flex: 1; }
.gate-details { margin: 8px 0; }
.gate-details summary { list-style: none; cursor: pointer; }
.gate-details summary::-webkit-details-marker { display: none; }
.gate-body { padding: 10px 16px 13px 50px; background: #fafcf9;
  border-radius: 0 0 11px 11px; border-top: 1px dashed var(--line); }
.gate-body p { margin: 6px 0; line-height: 1.75; }
.deep-lesson { background: var(--sky-soft); border: 1.5px solid #c3d8f7; border-radius: 12px;
  padding: 14px 18px; margin-top: 12px; }
.method-link { color: #2b5cb0; text-decoration: underline dotted; }

/* ============ 反馈质感 ============ */
#toast { position: fixed; left: 50%; bottom: 36px; transform: translateX(-50%) translateY(80px);
  background: #24312a; color: #fff; padding: 11px 22px; border-radius: 24px;
  font-size: .95em; opacity: 0; transition: .3s; z-index: 99; pointer-events: none;
  box-shadow: 0 8px 24px rgba(0,0,0,.25); max-width: 86vw; text-align: center; }
#toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
#celebrate { position: fixed; inset: 0; background: rgba(25, 45, 35, .48);
  display: flex; align-items: center; justify-content: center; z-index: 100;
  backdrop-filter: blur(3px); animation: fadein .25s; }
.cele-box { background: var(--card); border-radius: 24px; padding: 34px 44px; text-align: center;
  box-shadow: 0 24px 70px rgba(20, 45, 30, .4); animation: pop .45s cubic-bezier(.2,1.6,.4,1); }
.cele-emoji { font-size: 3.2em; animation: bounce 1s ease infinite alternate; }
@keyframes pop { from { transform: scale(.6); opacity: 0; } to { transform: scale(1); opacity: 1; } }
@keyframes bounce { from { transform: translateY(0); } to { transform: translateY(-8px); } }
@keyframes fadein { from { opacity: 0; } to { opacity: 1; } }

/* ============ 专家台（专业工作台密度：14px 基准、卡片化、细边框） ============ */
body.guide { padding: 22px 28px 40px; max-width: 1180px; margin: auto; background: #f4f6f4;
  background-image: none; font-size: 14px; line-height: 1.6; }
body.guide h1 { font-size: 1.5em; letter-spacing: .5px; color: #2d3a33; }
body.guide h2 { font-size: .95em; color: #3f4d46; margin: 0 0 12px; padding-bottom: 9px;
  border-bottom: 1px solid #edf1ee; letter-spacing: .2px; }
body.guide h3 { font-size: .88em; color: #55655c; margin: 14px 0 6px; }
body.guide section { background: #fff; border: 1px solid #e5ebe6; border-radius: 12px;
  padding: 16px 20px; margin: 0 0 14px; box-shadow: 0 1px 3px rgba(30,60,45,.04); }
body.guide input, body.guide select, body.guide button, body.guide textarea {
  font-size: .95em; }
body.guide input, body.guide select { padding: 6px 10px; border: 1px solid #d8e1da;
  border-radius: 8px; background: #fff; }
body.guide pre { font-size: .95em; line-height: 1.7; }
.g-header { display: flex; justify-content: space-between; align-items: center; gap: 12px;
  background: none; border: none; box-shadow: none; padding: 0 2px; margin-bottom: 14px; }
.g-meta { color: #71807a; font-size: .92em; margin: 6px 0 14px; }
body.guide section .g-meta:first-of-type { margin-top: -4px; }
.g-table { width: 100%; border-collapse: collapse; background: #fff; border-radius: 10px;
  overflow: hidden; border: 1px solid #edf1ee; }
.g-table th, .g-table td { padding: 7px 10px; text-align: left; border-bottom: 1px solid #f0f4f1;
  vertical-align: top; }
.g-table tr:last-child td { border-bottom: none; }
.g-table tbody tr:hover td, .g-table tr:hover td { background: #f8fbf9; }
.g-table th { background: #f2f5f2; font-size: .8em; color: #7b8a81; font-weight: 600;
  letter-spacing: .4px; }
.badge { background: #eef2ee; color: #5a6a61; border-radius: 999px; padding: 2px 9px;
  font-size: .78em; white-space: nowrap; display: inline-block; margin: 1px 0; }
.badge.hot { background: #fdeae7; color: #c0392b; }
.badge.ok { background: #e4f4e9; color: #1e7a43; }
.badge.dim { opacity: .65; }
.btn-sm { padding: 4px 11px; font-size: .82em; background: #fff; color: #3f4d46;
  border: 1px solid #cfdad2; border-radius: 8px;
  text-decoration: none; display: inline-block; cursor: pointer;
  box-shadow: none; font-weight: 500; white-space: nowrap; transition: all .15s; }
.btn-sm:hover { border-color: var(--act); color: var(--act-deep); background: #f4faf6; }
.btn-sm.primary { background: var(--act); border-color: var(--act); color: #fff; }
.btn-sm.primary:hover { background: var(--act-deep); color: #fff; }
.btn-sm.danger { background: #fff; color: #c0392b; border-color: #e5c2bc; }
.btn-sm.danger:hover { background: #fdf1ef; border-color: #c0392b; }
.g-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: start; }
@media (max-width: 900px) { .g-cols { grid-template-columns: 1fr; } }
.g-col { background: #fff; border-radius: 12px; padding: 16px 20px;
  border: 1px solid #e5ebe6; box-shadow: 0 1px 3px rgba(30,60,45,.04); }
.g-timeline { max-height: 640px; overflow-y: auto; }
.tl-item { padding: 8px 10px; border-left: 3px solid #d3ddd6; margin: 6px 0; background: #f7faf8;
  border-radius: 0 8px 8px 0; }
.tl-item.user { border-color: var(--amber-deep); }
.tl-item.assistant { border-color: #8ab4f8; }
.tl-item.ver { border-color: var(--act); }
.tl-item .who { font-weight: 600; font-size: .8em; color: #71807a; margin-right: 6px; }
.tl-text { white-space: pre-wrap; font-size: .92em; }
.cand { border: 1.5px solid #e0e8e2; border-radius: 10px; padding: 10px 12px; margin: 8px 0; }
.cand.s-chosen { border-color: var(--act); background: #f2faf4; }
.cand.s-rejected { opacity: .5; }
.cand input { flex: 1; }
.card-edit { border: 1.5px solid #e0e8e2; border-radius: 10px; padding: 12px; margin: 10px 0; }
.card-edit label { display: block; font-size: .85em; color: #71807a; margin-top: 8px; }
.card-edit textarea { width: 100%; min-height: 44px; margin-top: 2px; }
.card-edit input { width: 100%; margin-top: 8px; }
.verify-box { border-top: 1px dashed #d9e2db; margin-top: 12px; padding-top: 10px; }
.verify-box input { width: 100%; margin: 8px 0; }
.digest-box { background: #fff; border: 1.5px solid #e0e8e2; border-radius: 10px;
  padding: 12px; margin: 10px 0; }
.digest-box pre { white-space: pre-wrap; font-family: inherit; margin: 6px 0; }

/* 打字动画 + 移动端适配 */
.bubble.thinking { min-width: 54px; }
.bubble.thinking::after { content: ""; display: inline-block; width: 6px; height: 6px;
  border-radius: 50%; background: #9aa8a0; box-shadow: 12px 0 #9aa8a0, 24px 0 #9aa8a0;
  animation: dots 1.2s infinite; }
@keyframes dots { 0%,100% { opacity: .3; } 50% { opacity: 1; } }
@media (max-width: 800px) {
  body.kid { padding: 12px; }
  h1 { font-size: 1.15em; }
  .chat-box { height: 46vh; }
  .project-card { width: calc(50% - 6px); }
  .project-card.new { min-width: 0; white-space: normal; }
  .path-step { width: calc(25% - 6px); }
}
.sketch { background: #fff; border: 1.5px solid var(--line); border-radius: 10px;
  padding: 8px; margin-top: 8px; }
.sketch svg { width: 100%; max-width: 340px; height: auto; display: block; margin: auto; }

/* ============ 传播·晒卡 ============ */
.inv-code { font-family: "SF Mono", Menlo, monospace; letter-spacing: 2px; font-weight: 700;
  background: #e9f5ee; color: #1e7a43; border: 1px dashed #9ecfb0; border-radius: 7px;
  padding: 2px 8px; margin: 1px 5px 1px 0; display: inline-block; font-size: .92em; }
.share-stage { display: flex; justify-content: center; padding: 18px 0 40px; }
.share-card { width: 400px; max-width: 96vw; background: #fff; border-radius: 22px;
  overflow: hidden; box-shadow: 0 14px 44px rgba(25, 60, 40, .16); border: none; }
.sc-head { background: linear-gradient(135deg, var(--act), var(--act-deep));
  color: #fff; padding: 22px 26px 18px; }
.sc-brand { font-size: 1.5em; font-weight: 800; letter-spacing: 1px; }
.sc-sub { opacity: .85; font-size: .82em; margin-top: 4px; letter-spacing: .5px; }
.sc-body { padding: 20px 26px 6px; }
.sc-kid { font-size: 1.25em; font-weight: 800; color: #2d3a33; margin: 0 0 6px; }
.sc-kid span { font-size: .68em; font-weight: 500; color: #8a978f; margin-left: 8px; }
.sc-line { color: #55655c; margin: 0 0 12px; font-size: .95em; }
.sc-fruits { display: flex; flex-direction: column; gap: 7px; margin-bottom: 14px; }
.sc-fruit { background: #f2f8f3; border-radius: 11px; padding: 8px 13px; font-size: .92em;
  color: #2d5a3d; font-weight: 600; }
.sc-fruit.gold { background: linear-gradient(135deg, #fdf4dc, #fbe9b8); color: #8a6414; }
.sc-stats { display: flex; gap: 8px; text-align: center; margin-bottom: 12px; }
.sc-stats > div { flex: 1; background: #f7faf8; border-radius: 12px; padding: 10px 4px; }
.sc-stats b { display: block; font-size: 1.5em; color: var(--act-deep); }
.sc-stats span { font-size: .74em; color: #8a978f; }
.sc-note { font-size: .84em; color: #71807a; line-height: 1.7; margin: 0 0 10px; }
.sc-invite { border-top: 2px dashed #e2eae4; padding: 16px 26px 22px; text-align: center;
  background: #fbfdfb; }
.sc-code-label { font-size: .85em; color: #55655c; margin-bottom: 8px; }
.sc-code { font-family: "SF Mono", Menlo, monospace; font-size: 2em; font-weight: 800;
  letter-spacing: 8px; color: #1e7a43; background: #e9f5ee; border: 2px dashed #9ecfb0;
  border-radius: 12px; padding: 8px 6px 8px 14px; display: inline-block; }
.sc-qr { margin-top: 12px; }
.sc-qr svg { width: 108px; height: 108px; }
.sc-qr span { display: block; font-size: .78em; color: #8a978f; margin-top: 4px; }

/* ============ 语音输入 ============ */
.mic-wrap { position: relative; display: block; }
.mic-wrap textarea { width: 100%; padding-right: 46px; }
.mic-btn { background: #eef4ef; color: #2d3a33; border: none; border-radius: 50%;
  width: 34px; height: 34px; padding: 0; font-size: 1em; box-shadow: none;
  flex: 0 0 34px; line-height: 34px; text-align: center; }
.mic-wrap .mic-btn { position: absolute; right: 7px; bottom: 9px; }
.mic-btn:hover { transform: none; box-shadow: 0 2px 8px rgba(34,127,77,.2); }
.mic-btn.rec { background: #fdeae7; color: #c0392b; animation: micpulse 1s infinite;
  font-size: .72em; font-weight: 700; }
@keyframes micpulse { 50% { box-shadow: 0 0 0 6px rgba(192,57,43,.15); } }

/* ============ 判断力复盘卡 ============ */
.reclaim-card { margin-top: 14px; background: #f5f9ff; border: 1.5px solid #cfdff5;
  border-radius: var(--radius); padding: 12px 14px; font-size: .92em; }
.reclaim-row { display: flex; justify-content: space-between; align-items: center;
  gap: 8px; background: #fff; border-radius: 10px; padding: 7px 10px; margin: 6px 0; }
.reclaim-row .btn-sm { background: var(--sky); color: #fff; border: none; }
.project-card.more { border: 1.5px solid var(--line); background: #f2f6f3; color: #64706a;
  font-size: .92em; box-shadow: none; display: flex; align-items: center;
  justify-content: center; min-height: 76px; cursor: pointer; font-weight: 500; }
.project-card.more:hover { border-color: var(--act); color: var(--act-deep); }

/* 首页/驾驶舱品牌居中(程博士定:左置头重,居中+口号) */
.home-center { position: relative; justify-content: center; text-align: center;
  padding-top: 12px; }
.home-brand { margin: 0 auto; }
.home-exit { position: absolute; right: 0; top: 50%; transform: translateY(-50%); }
body.guide .home-center { margin-bottom: 18px; }
.share-strip { text-align: center; background: none; box-shadow: none; padding: 18px 0 6px; }
.share-strip .btn-sm { background: #fff; border: 1.5px dashed #9ecfb0; color: var(--act-deep);
  padding: 8px 18px; font-size: .95em; border-radius: 999px; }
.share-strip .btn-sm:hover { border-style: solid; background: #f2faf4; }
.g-table.ledger { font-size: .88em; }
.g-table.ledger td:first-child, .g-table.ledger th:first-child {
  white-space: nowrap; font-size: .95em; color: #55655c; }

/* 引擎室视觉层次(程博士:密密麻麻一大篇,该强调的强调) */
body.guide .g-col > h2 { border-bottom: none; border-left: 4px solid var(--act);
  padding: 2px 0 2px 10px; font-size: 1em; color: #2d3a33; }
.score-big { font-size: 1.7em; color: var(--act-deep); font-weight: 800;
  letter-spacing: 1px; margin-right: 4px; }
body.guide .g-meta b { color: var(--act-deep); }
.step-h { display: flex; align-items: center; gap: 8px; margin: 18px 0 8px;
  font-size: .95em; color: #2d3a33; }
.step-h i { font-style: normal; width: 22px; height: 22px; border-radius: 50%;
  color: #fff; display: inline-flex; align-items: center; justify-content: center;
  font-size: .8em; flex: 0 0 22px; font-weight: 700; }
.step-h.s1 i { background: var(--act); }
.step-h.s2 i { background: var(--amber-deep); }
.step-h.s3 i { background: var(--sky); }
.chosen-line { background: #f2faf4; border-left: 3px solid var(--act);
  padding: 8px 12px; border-radius: 0 8px 8px 0; }
.kid-name { color: var(--act-deep); font-weight: 800; }

/* 随身字典 */
.term { color: var(--sky); border-bottom: 1.5px dashed #9cbcf0; cursor: pointer;
  font-weight: 600; }
.term:hover { background: var(--sky-soft); border-radius: 3px; }
#term-pop { position: absolute; z-index: 60; width: 280px; background: #fff;
  border-radius: 14px; box-shadow: 0 10px 34px rgba(25,55,40,.22); padding: 12px 15px;
  font-size: .92em; line-height: 1.65; border: 1.5px solid var(--sky-soft); }
#term-pop b { color: #2b5cb0; }
#term-pop p { margin: 5px 0 0; }
.math-block { display: block; overflow-x: auto; padding: 6px 0; }
.listen-btn { font-size: .78em; padding: 2px 10px; vertical-align: middle;
  background: #fff; color: var(--act-deep); border: 1px solid #cfdad2; border-radius: 999px; box-shadow: none; }
.lesson-figure { background: #fff; border: 1.5px solid var(--line); border-radius: 12px;
  padding: 10px; margin-top: 10px; text-align: center; }
.lesson-figure svg { max-width: 100%; height: auto; }

/* ============ 移动端减重(程博士+测试者:字太粗满屏黑;参照微信服务页轻盈感) ============ */
body.kid { color: #3a453e; }
body.kid h1 { font-weight: 600; }
body.kid h2 { font-weight: 500; font-size: 1em; color: #46524a; }
body.kid b, body.kid .pc-title { font-weight: 600; }
body.kid button { font-weight: 500; }
.brand-tagline { font-weight: 400; letter-spacing: 2px; }
.today-strip, .challenge-banner { font-weight: 500; }
.project-card.new, .explore-card b, .path-name { font-weight: 500; }
.challenge-banner { color: #9a6b10; }
.explore-card { box-shadow: 0 1px 4px rgba(35,70,50,.05); }
@media (max-width: 640px) {
  body.kid { font-size: 15px; padding: 12px; }
  body.kid h1 { font-size: 1.15em; }
  .brand-tagline { font-size: .85em; letter-spacing: 1px; }
  .today-strip, .challenge-banner { font-size: .95em; padding: 10px 14px; }
}
