/* ===========================================================
   每日学习打卡（类名以 pk- 开头）
   首页“今日学习打卡”卡片、今日页（时间线、月历、进度）、结果页上的横幅、“换一个”选择框，
   还有错题本按日期分组后的样式。风格沿用绘本风：大圆角、暖色；首页卡片是“晨光”配色（奶油黄 → 杏色 → 淡粉）。
   手机 375px：没有横向滚动，月历完整显示七列；触控目标 ≥ 44px；
   焦点框只在 :focus-visible 时显示；动画都尊重“减少动态效果”。
   =========================================================== */

:root{
  --pk-ink:#4E3311; --pk-muted:#7B6440;
  --pk-sun:#F5A524; --pk-sun-d:#C77F0A; --pk-warm:#B4560A;
  --pk-line:#F1DDB8; --pk-paper:#FFFBF3;
  --pk-ok:#22854F; --pk-ok-soft:#E4F6E8; --pk-ok-line:#B7E2C2;
  --pk-focus:#3B7BE0;
}

/* ---------- 焦点框：只在键盘操作（:focus-visible）时显示 ---------- */
.pk-home button:focus:not(:focus-visible),
.pk-today button:focus:not(:focus-visible),
.pk-banner button:focus:not(:focus-visible),
.pk-pick button:focus:not(:focus-visible),
.pk-res button:focus:not(:focus-visible),
.wrongs-page button:focus:not(:focus-visible){outline:none}
.pk-home button:focus-visible,
.pk-today button:focus-visible,
.pk-banner button:focus-visible,
.pk-pick button:focus-visible,
.pk-pick input:focus-visible,
.pk-res button:focus-visible,
.wrongs-page button:focus-visible{outline:3px solid var(--pk-focus);outline-offset:3px}

/* ---------- 本周七天的小圆点（首页卡片和今日页共用） ---------- */
.pk-week{display:flex;gap:6px;list-style:none;margin:0;padding:0}
.pk-wd{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:30px}
.pk-wd-dot{
  width:24px;height:24px;border-radius:50%;display:grid;place-items:center;
  font-size:13px;font-weight:900;line-height:1;color:#fff;
  background:rgba(255,255,255,.85);border:2px solid #EBCB94;
}
.pk-wd[data-state=done] .pk-wd-dot{background:var(--pk-ok);border-color:var(--pk-ok)}
.pk-wd[data-state=part] .pk-wd-dot{background:linear-gradient(90deg,var(--pk-sun) 50%,rgba(255,255,255,.85) 50%);border-color:var(--pk-sun)}
.pk-wd[data-state=future]{opacity:.45}
.pk-wd[data-today] .pk-wd-dot{box-shadow:0 0 0 2px #fff,0 0 0 5px var(--pk-sun)}
.pk-wd-n{font-size:12px;font-weight:800;color:var(--pk-muted);line-height:1.2}
.pk-wd[data-today] .pk-wd-n{color:var(--pk-warm)}

/* ---------- 首页卡片：晨光配色（首页的第一块，欢迎区排在它后面） ---------- */
.pk-home{
  position:relative;z-index:1;width:min(1160px,100%);margin:0 auto;padding:22px 26px 14px;
  border:2px solid #FFD79A;border-radius:28px;color:var(--pk-ink);
  background:
    radial-gradient(circle at 96% -4%,rgba(255,240,178,.95) 0 92px,transparent 93px),
    linear-gradient(126deg,#FFF7E2 0%,#FFEACD 52%,#FFDFD2 100%);
  box-shadow:0 20px 44px rgba(214,140,60,.2),inset 0 1px 0 rgba(255,255,255,.85);
}
/* 打卡卡片排在最前面，欢迎区紧跟在后面：两块之间留一点空（没有卡片时欢迎区还是第一块，外观不变） */
.storybook-map>.storybook-hero:not(:first-child){margin-top:20px}
.pk-home-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.pk-home-head h2{margin:0;font-size:clamp(22px,2.4vw,30px);line-height:1.25;letter-spacing:-.01em}
.pk-home-date{padding:4px 12px;border-radius:999px;background:rgba(255,255,255,.78);font-size:14px;font-weight:800;color:var(--pk-muted);white-space:nowrap}
.pk-home-streak{margin-left:auto;padding:5px 14px;border-radius:999px;background:#fff;color:var(--pk-warm);font-size:15px;font-weight:900;box-shadow:0 3px 8px rgba(200,120,30,.16)}
.pk-home-hint{margin:8px 0 0;font-size:14.5px;font-weight:700;line-height:1.6;color:var(--pk-muted)}

.pk-nodes{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0 14px;padding:0}
.pk-node{
  position:relative;display:flex;align-items:center;gap:10px;min-width:0;padding:10px 12px;
  border-radius:18px;background:rgba(255,255,255,.74);border:2px solid transparent;
}
.pk-node:not(:last-child)::after{content:"→";position:absolute;right:-14px;top:50%;transform:translateY(-50%);z-index:1;font-size:16px;font-weight:900;color:#D9A24A}
.pk-node-mark{
  flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  font-size:17px;font-weight:900;line-height:1;color:#B4690E;background:#FFF1D2;border:2px solid #F3CD84;
}
.pk-node-txt{min-width:0;display:flex;flex-direction:column;gap:1px}
.pk-node-t{font-size:15px;line-height:1.3;overflow-wrap:anywhere}
.pk-node-g{font-weight:900;color:var(--pk-warm)}
.pk-node-s{font-size:12px;font-weight:800;color:var(--pk-muted)}
.pk-node[data-state=done]{background:rgba(228,246,232,.92);border-color:var(--pk-ok-line)}
.pk-node[data-state=done] .pk-node-mark{background:var(--pk-ok);border-color:var(--pk-ok);color:#fff}
.pk-node[data-state=done] .pk-node-s{color:var(--pk-ok)}
.pk-node[data-state=now]{background:#fff;border-color:var(--pk-sun);box-shadow:0 6px 14px rgba(245,165,36,.22)}
.pk-node[data-state=now] .pk-node-mark{background:var(--pk-sun);border-color:var(--pk-sun-d);color:#fff}
.pk-node[data-state=now] .pk-node-s{color:var(--pk-warm)}

/* 大按钮：直接进入下一步（.btn.big 的高度和字号在这里收一收，长文字可以换行） */
.pk-home .pk-home-go{
  display:grid;width:100%;height:auto;min-height:58px;padding:12px 22px;
  font-size:20px;line-height:1.3;white-space:normal;border-radius:20px;background:var(--pk-sun);
  box-shadow:0 5px 0 var(--pk-sun-d),0 10px 20px rgba(200,120,20,.22);
}
.pk-home .pk-home-go:active{box-shadow:0 0 0 var(--pk-sun-d)}
.pk-home[data-mode=done] .pk-home-go{
  background:#fff;color:var(--pk-ok);border:2px solid var(--pk-ok-line);
  box-shadow:0 5px 0 var(--pk-ok-line),0 8px 16px rgba(0,0,0,.05);
}
.pk-home-act{display:grid;grid-template-columns:minmax(280px,460px) minmax(0,1fr);align-items:center;gap:8px 32px}
.pk-home-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:2px 16px}
.pk-home-foot .pk-week{flex:1 1 240px;max-width:340px;justify-content:space-between}
.pk-link{
  min-height:44px;padding:0 8px;border-radius:10px;background:none;
  font-size:15px;font-weight:900;color:var(--pk-warm);text-decoration:underline;text-underline-offset:3px;
}
.pk-link:hover{color:#8E3F04}

/* ---------- 今日页 ---------- */
.pk-today{max-width:780px;margin-left:auto;margin-right:auto;padding:20px 20px 26px;color:var(--pk-ink)}
.pk-head{padding:16px 16px 14px;border-radius:24px;border:2px solid #FFD79A;background:linear-gradient(126deg,#FFF7E2 0%,#FFEACD 58%,#FFE1D4 100%)}
.pk-head-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px}
.pk-date{font-size:22px;font-weight:900;line-height:1.3}
.pk-streak{padding:5px 14px;border-radius:999px;background:#fff;font-size:15px;font-weight:900;color:var(--pk-muted)}
.pk-streak.on{color:var(--pk-warm)}
.pk-stats{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:10px 0 0;padding:0}
.pk-stats li{padding:4px 12px;border-radius:999px;background:rgba(255,255,255,.78);font-size:14px;font-weight:800}
.pk-head .pk-week{max-width:420px;margin-top:12px;justify-content:space-between}
.pk-first{margin:10px 0 0;font-size:14px;font-weight:800;line-height:1.6;color:var(--pk-muted)}

/* 三步时间线 */
.pk-steps{list-style:none;margin:18px 0 0;padding:0}
.pk-step{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr);gap:12px;padding:0 0 14px}
.pk-step::before{content:"";position:absolute;left:19px;top:42px;bottom:-2px;width:3px;border-radius:2px;background:#F0E2CC}
.pk-step:last-child{padding-bottom:0}
.pk-step:last-child::before{display:none}
.pk-step-mark{
  position:relative;z-index:1;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;
  font-size:19px;font-weight:900;line-height:1;color:#B4690E;background:#FFF1D6;border:2px solid #F5D9A2;
}
.pk-step-body{min-width:0;padding:12px 14px;border-radius:18px;background:var(--pk-paper);border:1.5px solid #F3E4CB}
.pk-step-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 10px}
.pk-step-name{font-size:17px;line-height:1.35}
.pk-step-badge{padding:2px 10px;border-radius:999px;font-size:12.5px;font-weight:900;color:var(--pk-muted);background:#F6ECDA;white-space:nowrap}
.pk-step-text{margin:6px 0 0;font-size:15.5px;font-weight:700;line-height:1.6;overflow-wrap:anywhere}
.pk-step-text b{font-size:17px}
.pk-game-emo{font-size:20px}
.pk-unit,.pk-got{display:block;font-size:13px;font-weight:800;color:var(--pk-muted)}
.pk-got .st-on,.pk-got .st-off{font-size:16px}
.pk-step-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.pk-step-acts .btn{min-height:44px}
/* 今日思维课：星期主题 + 这一关（专题、第几关、关名、星数、三年级挑战） */
.pk-think-theme{display:inline-block;font-size:13.5px;font-weight:900;color:var(--pk-warm)}
.pk-think-line{display:block;margin-top:2px}
.pk-think-ladder{display:block;margin-top:2px;font-size:13px;font-weight:800;color:var(--pk-muted)}
.pk-think-fallback{display:block;font-size:13px;font-weight:800;color:var(--pk-muted)}
.pk-grade3{
  display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;vertical-align:2px;
  font-size:11.5px;font-weight:900;line-height:1.5;color:#7A3E00;background:#FFE7B3;border:1px solid #F5C97A;white-space:nowrap;
}
.pk-step[data-state=done] .pk-step-mark{background:var(--pk-ok);border-color:var(--pk-ok);color:#fff}
.pk-step[data-state=done] .pk-step-body{background:#EEF9EF;border-color:var(--pk-ok-line)}
.pk-step[data-state=done] .pk-step-badge{background:var(--pk-ok-soft);color:var(--pk-ok)}
.pk-step[data-state=now] .pk-step-badge{background:#FFE7B3;color:var(--pk-warm)}
.pk-step[data-next="1"] .pk-step-mark{background:var(--pk-sun);border-color:var(--pk-sun-d);color:#fff}
.pk-step[data-next="1"] .pk-step-body{border-color:var(--pk-sun);box-shadow:0 6px 16px rgba(245,165,36,.2)}

/* 开始 ➜ / 打卡完成 */
.pk-cta{margin:16px 0 4px}
.pk-today .pk-go{
  display:grid;width:100%;height:auto;min-height:64px;padding:10px 20px;border-radius:22px;
  line-height:1.25;background:var(--pk-sun);box-shadow:0 5px 0 var(--pk-sun-d),0 10px 20px rgba(200,120,20,.22);
}
.pk-today .pk-go:active{box-shadow:0 0 0 var(--pk-sun-d)}
.pk-go span{font-size:22px}
.pk-go small{font-size:13.5px;font-weight:800;opacity:.94}
.pk-all-done{padding:16px;border-radius:22px;background:var(--pk-ok-soft);border:2px solid var(--pk-ok-line);color:var(--pk-ok);text-align:center;font-size:19px;font-weight:900;line-height:1.5}

.pk-sec-t{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:24px 0 10px;font-size:18px;color:var(--pk-ink)}
.pk-sec-t small{font-size:14px;font-weight:800;color:var(--pk-muted)}

/* 打卡日历：周一到周日七列 */
.pk-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;max-width:480px}
.pk-cal-wd{padding:2px 0;text-align:center;font-size:13px;font-weight:900;color:var(--pk-muted)}
.pk-cell{
  position:relative;aspect-ratio:1/1;min-width:0;min-height:32px;display:grid;place-items:center;
  border-radius:12px;background:#FFF6E4;border:1.5px solid transparent;color:var(--pk-ink);
}
.pk-cell-blank{background:none}
.pk-cell-n{font-size:15px;font-weight:800;line-height:1}
.pk-cell-mark{position:absolute;right:3px;top:2px;font-size:12px;font-weight:900;line-height:1;color:var(--pk-ok)}
.pk-cell[data-state=done]{background:var(--pk-ok-soft);border-color:var(--pk-ok-line);color:var(--pk-ok)}
.pk-cell[data-state=part]{background:linear-gradient(90deg,#FFDD9A 50%,#FFF6E4 50%);border-color:#F5D08A}
.pk-cell[data-state=future]{opacity:.42}
.pk-cell[data-today]{border:3px solid var(--pk-sun);box-shadow:0 4px 10px rgba(245,165,36,.28)}
.pk-cell[data-today] .pk-cell-n{color:var(--pk-warm)}
.pk-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin:10px 0 0;font-size:12.5px;font-weight:800;color:var(--pk-muted)}
.pk-legend span{display:inline-flex;align-items:center;gap:5px}
.pk-lg{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:6px;font-style:normal;font-size:11px;font-weight:900;background:#FFF6E4}
.pk-lg.done{background:var(--pk-ok-soft);border:1.5px solid var(--pk-ok-line);color:var(--pk-ok)}
.pk-lg.part{background:linear-gradient(90deg,#FFDD9A 50%,#FFF6E4 50%);border:1.5px solid #F5D08A}
.pk-lg.today{border:2.5px solid var(--pk-sun)}

/* 我的学习进度 */
.pk-prog-block{margin-top:10px;padding:12px 14px;border-radius:18px;background:var(--pk-paper);border:1.5px solid #F3E4CB}
.pk-prog-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 10px;font-size:16px}
.pk-prog-head span{font-size:14px;font-weight:900;color:var(--pk-warm)}
.pk-prog-now{margin:4px 0 8px;font-size:14.5px;font-weight:800;color:var(--pk-muted)}
.pk-prog-now small{margin-left:6px;font-size:12.5px}
.pk-prog-sub{display:flex;flex-wrap:wrap;gap:2px 12px;margin:4px 0 0;font-size:14.5px;font-weight:800;color:var(--pk-muted)}
.pk-prog-week{color:var(--pk-ok)}
.pk-bar{display:block;height:10px;border-radius:999px;background:#F1E6D2;overflow:hidden}
.pk-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#FFC24B,var(--pk-sun))}
.pk-prog-block>.pk-bar{margin-top:8px}
/* 本周思维：周一到周日，圆点里是那天主题岛的 emoji，做完了打勾 */
.pk-think-now{font-size:13.5px;font-weight:900;color:var(--pk-warm)}
.pk-think-dots{display:flex;gap:4px;list-style:none;margin:10px 0 0;padding:0}
.pk-think-d{display:flex;flex:1 1 0;min-width:0;flex-direction:column;align-items:center;gap:3px}
.pk-think-dot{
  position:relative;display:grid;place-items:center;width:100%;max-width:44px;aspect-ratio:1;border-radius:50%;
  font-size:17px;line-height:1;background:var(--pk-isl-soft,#F6ECDA);border:2px solid var(--pk-isl,#E9D7B6);
}
.pk-think-d[data-done="1"] .pk-think-dot{background:var(--pk-ok-soft);border-color:var(--pk-ok)}
.pk-think-d[data-done="1"] .pk-think-dot::after{
  content:"✓";position:absolute;right:-2px;bottom:-2px;width:17px;height:17px;border-radius:50%;
  display:grid;place-items:center;font-size:11px;font-weight:900;line-height:1;color:#fff;background:var(--pk-ok);border:1.5px solid #fff;
}
.pk-think-d[data-today="1"] .pk-think-dot{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--pk-sun)}
.pk-think-dn{font-size:11.5px;font-weight:900;line-height:1.2;color:var(--pk-muted)}
.pk-think-d[data-today="1"] .pk-think-dn{color:var(--pk-warm)}
.pk-units{list-style:none;margin:0;padding:0}
.pk-unit-row{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) 38px;align-items:center;gap:10px;padding:5px 0}
.pk-unit-t{min-width:0;font-size:14px;font-weight:800;line-height:1.35;overflow-wrap:anywhere}
.pk-unit-n{font-size:13px;font-weight:900;text-align:right;color:var(--pk-muted)}
.pk-parent-note p{margin:0;padding:12px 14px;border-radius:18px;background:#FFF4DD;font-size:14.5px;font-weight:700;line-height:1.75;color:var(--pk-muted)}

/* ---------- 结果页上的横幅：第 k 步完成 / 打卡成功 ---------- */
.pk-banner{max-width:520px;margin:8px auto 16px;padding:14px 16px;border-radius:20px;text-align:center}
/* 额外奖励：本周专题勋章、周日错题清零（放在“第 k 步完成”横幅上面） */
.pk-bonus-wrap{max-width:520px;margin:8px auto 0;display:grid;gap:8px}
.pk-bonus{padding:10px 14px;border-radius:16px;background:#FFF3CC;border:2px solid #F5C451;color:#7A4D00;font-weight:900;line-height:1.5;text-align:center}
.pk-bonus-r{display:block;font-size:15px;color:#9A5B00}
.pk-week-medal{margin:10px 0 0;font-size:14px;font-weight:800;color:var(--ink2);line-height:1.5}
.pk-week-medal small{display:block;font-weight:700;color:var(--ink3,#6b7280)}
.pk-week-medal[data-medal="1"]{color:#8A5A00}
.pk-b-title{font-size:18px;font-weight:900;line-height:1.5}
.pk-b-ticket{margin-top:6px;font-size:15px;font-weight:900;color:#8A5A00}
.pk-banner .pk-b-btn{width:100%;height:auto;min-height:52px;margin-top:10px;padding:10px 16px;font-size:17px;line-height:1.35;white-space:normal;text-wrap:balance}
.pk-nw{white-space:nowrap}
.pk-b-step{background:var(--pk-ok-soft);border:2px solid var(--pk-ok-line);color:var(--pk-ok)}
.pk-b-step .pk-b-btn{background:var(--pk-ok);box-shadow:0 5px 0 #17683B,0 8px 18px rgba(0,0,0,.1)}
.pk-b-step .pk-b-btn:active{box-shadow:0 0 0 #17683B}
.pk-b-win{
  border:2px solid #FFD36B;color:#7A4A00;
  background:radial-gradient(circle at 90% -10%,rgba(255,255,255,.9) 0 60px,transparent 61px),linear-gradient(126deg,#FFF3C6,#FFE2A8 60%,#FFD5C0);
  box-shadow:0 12px 26px rgba(214,140,60,.25);
}
.pk-b-win .pk-b-title{font-size:20px}
.pk-b-main,.pk-b-reward{display:block}
.pk-b-reward{margin-top:2px;font-size:18px;color:var(--pk-warm)}
.pk-b-win .pk-b-btn{background:var(--pk-sun);box-shadow:0 5px 0 var(--pk-sun-d),0 8px 18px rgba(0,0,0,.1)}
.pk-b-win .pk-b-btn:active{box-shadow:0 0 0 var(--pk-sun-d)}
.pk-b-done{background:#FFF6E4;border:2px solid #F3DDB2;color:var(--pk-muted)}
.pk-res .pk-res-emo{font-size:64px;line-height:1.1}

/* ---------- 自定义流程（七巧板）结束时浮在页面底部的同一条横幅 ---------- */
.pk-float{position:fixed;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));z-index:120;display:flex;justify-content:center;pointer-events:none}
.pk-float-in{position:relative;width:100%;max-width:520px;pointer-events:auto}
.pk-float .pk-banner{margin:0;padding-right:48px;box-shadow:0 14px 34px rgba(60,40,10,.28)}
.pk-float .pk-b-step{background:#F4FBF5}
.pk-float .pk-b-done{background:#FFFBF3}
.pk-float-x{position:absolute;right:4px;top:4px;width:44px;height:44px;border-radius:14px;font-size:17px;font-weight:900;line-height:1;color:var(--pk-muted);background:rgba(255,255,255,.7)}
.pk-float button:focus:not(:focus-visible){outline:none}
.pk-float button:focus-visible{outline:3px solid var(--pk-focus);outline-offset:3px}
@keyframes pkRise{0%{opacity:0;transform:translateY(24px)}100%{opacity:1;transform:none}}

/* ---------- “换一个”选择框 ---------- */
.pk-pick-modal .modal-x{width:44px;height:44px;border-radius:14px}
.pk-pick h3{margin:0 44px 4px 0;color:var(--pk-ink)}
.pk-pick-sub{margin:0 0 6px;font-size:14px;font-weight:700;color:var(--pk-muted)}
.pk-pick-unit h4{margin:14px 0 6px;font-size:15px;color:var(--pk-ink)}
.pk-pick-game{
  display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;
  min-height:52px;margin:0 0 6px;padding:8px 12px;border-radius:14px;text-align:left;
  background:var(--pk-paper);border:1.5px solid #F3E4CB;
}
.pk-pick-game:hover{border-color:var(--pk-sun)}
.pk-pick-game.is-now{background:#FFF1D6;border-color:var(--pk-sun)}
.pk-pick-emo{font-size:22px;text-align:center}
.pk-pick-name{min-width:0;font-size:15px;font-weight:900;line-height:1.35;overflow-wrap:anywhere}
.pk-pick-name i{display:block;font-style:normal;font-size:12px;font-weight:800;color:var(--pk-warm)}
.pk-pick-name .pk-pick-lvname{color:var(--pk-muted)}
.pk-pick-name .pk-grade3{margin:2px 0 0 0;vertical-align:0}
.pk-pick-st{font-size:12.5px;font-weight:800;color:var(--pk-muted);text-align:right;white-space:nowrap}
.pk-check{display:flex;align-items:center;gap:10px;min-height:44px;margin-top:14px;font-size:15px;font-weight:800;color:var(--pk-ink)}
.pk-check input{flex:none;width:22px;height:22px;accent-color:var(--pk-sun)}
.pk-pick-note{margin:4px 0 0;font-size:13px;font-weight:700;line-height:1.6;color:var(--pk-muted)}

/* ---------- 智慧岛顶部的“今日思维挑战 · 打卡第 3 步”卡（原来的每日一题卡）：手机上换行好看一点 ---------- */
.sw-daily-nw{white-space:nowrap}
.sw-daily-n,.sw-daily-s{text-wrap:balance}

/* ---------- 家长说明里的一段 ---------- */
.pk-parent-block{margin-top:10px}

/* ---------- 错题本：按日期分组、重做 ---------- */
.wrong-day{margin:0 0 18px}
.wd-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;margin:0 0 10px;padding:8px 14px;border-radius:14px;background:#FFF1D6;font-size:17px;color:var(--pk-ink)}
.wd-name{font-weight:900}
.wd-date{font-size:14px;font-weight:800;color:var(--pk-muted)}
.wd-cnt{margin-left:auto;font-size:13px;font-weight:800;color:var(--pk-muted)}
.wrong-day[data-day=today] .wd-title{background:#E7F3FF}
.wrong-day[data-day=d1] .wd-title{background:#FFF1D6}
.wrong-day[data-day=d2] .wd-title{background:#FDE7EE}
.wrong-day[data-day=older] .wd-title{background:#EFEAF8}
.wrongs-page .wrong-item{display:flex;align-items:center;gap:10px}
.wi-main{flex:1 1 auto;min-width:0}
.wrongs-page .wi-stem{overflow-wrap:anywhere}
.wrongs-page .wi-meta{overflow-wrap:anywhere}
.wi-redo{flex:none;min-width:64px;height:44px;padding:0 16px;border-radius:14px;font-size:16px}
.wrongs-page .wg-drill{height:44px}

/* ---------- 窄屏（手机 375px）：不出现横向滚动，触控目标 ≥ 44px ---------- */
@media (max-width:900px){
  .pk-home-act{grid-template-columns:minmax(0,1fr);gap:10px}   /* 平板宽度：大按钮一行，小圆点和链接一行 */
  .pk-home-foot{margin-top:2px}
}
@media (max-width:720px){
  .pk-home{padding:18px 16px 10px;border-radius:24px}
  .storybook-map>.storybook-hero:not(:first-child){margin-top:16px}
  .pk-nodes{gap:8px}
  .pk-node:not(:last-child)::after{display:none}
}
@media (max-width:560px){
  /* 首页卡片：手机上压缩高度，“开始”按钮一屏里就能看到 */
  .storybook-map>.storybook-hero:not(:first-child){margin-top:14px}
  .pk-home{padding:14px 12px 6px;border-radius:22px}
  .pk-home-hint{display:none}   /* 这段话今日页和家长说明里都有 */
  .pk-home-head{gap:1px 8px}
  .pk-home-head h2{font-size:19px;line-height:1.25}
  .pk-home-streak{margin-left:auto;padding:3px 10px;font-size:13.5px}
  .pk-home-date{order:3;flex-basis:100%;padding:0;background:none;font-size:13px;line-height:1.3;white-space:normal}
  .pk-nodes{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:8px 0}
  .pk-node{flex-direction:column;justify-content:flex-start;gap:2px;padding:6px 4px 5px;border-width:1.5px;border-radius:14px;text-align:center}
  .pk-node-mark{width:24px;height:24px;border-width:1.5px;font-size:13px}
  .pk-node-txt{align-items:center;gap:0}
  .pk-node-t{font-size:12.5px;line-height:1.25}
  .pk-node-g{display:block}
  .pk-node-s{font-size:11px;line-height:1.3}
  .pk-home .pk-home-go{min-height:48px;padding:8px 12px;font-size:17px;border-radius:16px;box-shadow:0 4px 0 var(--pk-sun-d),0 8px 16px rgba(200,120,20,.2)}
  .pk-home[data-mode=done] .pk-home-go{box-shadow:0 4px 0 var(--pk-ok-line),0 6px 12px rgba(0,0,0,.05)}
  .pk-home-act{gap:8px}
  .pk-home-foot{gap:0 6px}
  .pk-home-foot .pk-week{flex:1 1 190px;max-width:none;gap:3px}
  .pk-home .pk-wd{min-width:24px;gap:2px}
  .pk-home .pk-wd-dot{width:22px;height:22px;font-size:12px}
  .pk-home .pk-wd-n{font-size:11px}
  .pk-link{padding:0 4px;font-size:14px;white-space:nowrap}
  .pk-today{padding:14px 12px 22px}
  .pk-head{padding:14px 12px 12px}
  .pk-date{font-size:20px}
  .pk-step{grid-template-columns:34px minmax(0,1fr);gap:8px}
  .pk-step::before{left:16px;top:36px}
  .pk-step-mark{width:34px;height:34px;font-size:16px}
  .pk-step-body{padding:10px 11px}
  .pk-step-name{font-size:16px}
  .pk-cal-grid{gap:4px}
  .pk-cell{border-radius:10px}
  .pk-cell-n{font-size:14px}
  .pk-unit-row{grid-template-columns:minmax(0,1fr) 68px 34px;gap:8px}
  .pk-unit-t{font-size:13.5px}
  .pk-pick-game{grid-template-columns:28px minmax(0,1fr) auto;padding:8px 10px}
  .pk-think-dots{gap:2px}
  .pk-think-dot{max-width:36px;font-size:15px}
  .pk-think-dn{font-size:11px}
  .pk-grade3{font-size:11px;padding:1px 6px}
  .wrongs-page .wrong-item{align-items:flex-start}
}
@media (max-width:400px){
  .pk-banner .pk-b-btn{font-size:16px;padding:10px 12px}
}
@media (max-width:360px){
  .pk-wd{min-width:26px}
  .pk-wd-dot{width:22px;height:22px}
  .pk-week{gap:4px}
  .pk-cell-mark{right:2px;top:1px;font-size:10px}
}

/* ---------- 动画：只在系统没有开“减少动态效果”时才有 ---------- */
@keyframes pkPop{0%{opacity:0;transform:scale(.94) translateY(8px)}100%{opacity:1;transform:none}}
@keyframes pkNudge{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@media (prefers-reduced-motion:no-preference){
  .pk-banner{animation:pkPop .5s cubic-bezier(.2,1.4,.4,1) both}
  .pk-bonus{animation:pkPop .5s cubic-bezier(.2,1.4,.4,1) both}
  .pk-float{animation:pkRise .35s ease-out both}
  .pk-home[data-mode=start] .pk-home-go,
  .pk-home[data-mode=go] .pk-home-go{animation:pkNudge 1.4s ease-in-out .4s 3}   /* 卡片出现时轻轻跳三下提醒一下，然后就不动了 */
  .pk-home,.pk-today .pk-step-body,.pk-node{transition:box-shadow .2s,border-color .2s}
}
@media (prefers-reduced-motion:reduce){
  .pk-home *,.pk-home *::before,.pk-home *::after,
  .pk-today *,.pk-today *::before,.pk-today *::after,
  .pk-banner,.pk-banner *,.pk-float,
  .pk-pick *,.wrongs-page *{animation:none!important;transition-duration:.01ms!important}
}
