/* ===========================================================
   思维拓展 · 智慧岛（siwei）
   所有类名以 sw- 开头；配色沿用 style.css 的变量。
   手机 375px：左右 16px 边距、无横向滚动、触控目标 ≥ 48px。
   =========================================================== */

/* ---------- 首页旗舰入口卡 ---------- */
.sw-home-card{
  position:relative;z-index:2;display:flex;flex-direction:column;gap:16px;
  width:min(1160px,100%);margin:18px auto 0;padding:26px 30px;
  border:2px solid #D1C2FF;border-radius:30px;cursor:pointer;
  background:
    radial-gradient(circle at 88% 14%,rgba(255,219,145,.36) 0 120px,transparent 121px),
    linear-gradient(128deg,#F1EAFF 0%,#E8F2FF 52%,#FFF1F7 100%);
  box-shadow:0 22px 48px rgba(88,68,156,.17),inset 0 1px 0 rgba(255,255,255,.88);
  transition:transform .16s,box-shadow .16s;
}
.sw-home-card:hover{transform:translateY(-2px);box-shadow:0 26px 56px rgba(88,68,156,.22)}
.sw-home-card:focus-visible{outline:3px solid #7C5CE8;outline-offset:4px}
.sw-home-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center}
.sw-home-kicker{margin:0 0 6px;color:#6244D4;font-size:13px;font-weight:900;letter-spacing:.08em}
.sw-home-copy h2{margin:0;color:#2E2257;font-size:clamp(26px,3vw,35px);line-height:1.2;letter-spacing:-.02em}
.sw-home-copy>p{margin:9px 0 0;max-width:38em;color:#544E74;font-size:15px;line-height:1.68;font-weight:650}
.sw-home-meta{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin-top:12px;color:#473F6E;font-size:14.5px;font-weight:850}
.sw-home-meta b{color:#6244D4}
.sw-home-rec{
  background:#fff;border:1.5px solid #D8CEFF;border-radius:999px;padding:5px 13px;
  font-size:13.5px;font-weight:900;color:#5237B8;box-shadow:0 3px 8px rgba(120,100,200,.12);
}
.sw-home-rec:hover{background:#F6F2FF;border-color:#9B7BF7}
.sw-home-acts{display:flex;flex-direction:column;gap:8px;align-items:stretch;min-width:190px}
.sw-home-acts .btn{min-height:46px;justify-content:center}

.sw-home-islands{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.sw-home-isle{
  display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:18px;text-align:left;
  background:rgba(255,255,255,.88);border:1.5px solid rgba(155,135,235,.28);
  box-shadow:0 5px 14px rgba(84,66,148,.07);transition:transform .14s,border-color .14s,background .14s;
}
.sw-home-isle:hover{transform:translateY(-2px);background:#fff;border-color:var(--ic,#7C5CE8)}
.sw-home-isle-emo{
  flex:0 0 38px;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;
  font-size:21px;background:var(--ibg,#F3EEFF);
}
.sw-home-isle>span:last-child{display:flex;flex-direction:column;min-width:0}
.sw-home-isle b{font-size:14.5px;color:#2E2552;line-height:1.25}
.sw-home-isle small{font-size:11.5px;font-weight:800;color:#6A6488;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.sw-home-labs{
  display:flex;align-items:center;gap:8px 10px;flex-wrap:wrap;
  padding:10px 14px;border-radius:18px;background:rgba(255,255,255,.72);border:1.5px dashed #CBBDFB;
}
.sw-home-labs-lbl{font-size:13px;font-weight:900;color:#5237B8;white-space:nowrap}
.sw-home-labs-list{display:flex;flex-wrap:wrap;gap:7px;flex:1;min-width:0}
.sw-home-labchip{
  min-height:36px;padding:5px 12px;border-radius:999px;background:#fff;border:1.5px solid #DDD4FF;
  font-size:13px;font-weight:850;color:#3F3278;box-shadow:0 2px 6px rgba(96,76,170,.08);
  transition:transform .12s,border-color .12s,background .12s;
}
.sw-home-labchip:hover{transform:translateY(-1px);border-color:#8C6FF2;background:#F7F3FF}

/* ---------- 智慧岛页面 ---------- */
.sw-hub{padding:26px 24px 22px}
.sw-hub-head{
  padding:18px 20px;border-radius:24px;margin-bottom:16px;
  background:linear-gradient(132deg,#F3EEFF 0%,#EAF3FF 56%,#FFF5E2 100%);
  border:2px solid #DDD2FF;
}
.sw-hub-head-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}
.sw-hub-kicker{margin:0 0 4px;font-size:12.5px;font-weight:900;color:#6A4FD8;letter-spacing:.08em}
.sw-hub-head h2{margin:0;font-size:30px;color:#3A2B7D}
.sw-hub-lead{margin:6px 0 0;color:#575178;font-size:15.5px;font-weight:700}
.sw-hub-kpis{display:flex;flex-wrap:wrap;gap:7px}
.sw-hub-kpis span{
  display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border-radius:999px;
  background:#fff;border:1.5px solid #DFD6FF;font-size:13.5px;font-weight:900;color:#4C3999;
}
.sw-hub-quick{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.sw-hub-quick .btn{min-height:42px}
.sw-top-slots:empty{display:none}

/* 互动新玩法橱窗 */
.sw-arcade-sec{
  margin:0 0 16px;padding:16px;border-radius:22px;
  background:linear-gradient(135deg,#FFFBF0 0%,#F7F3FF 100%);
  border:2px solid #EADAA8;
}
.sw-sec-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.sw-sec-head h3{margin:0;font-size:19px;color:#382C66}
.sw-sec-head p{margin:3px 0 0;font-size:13px;font-weight:750;color:#6B6488}
.sw-arc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.sw-arc-card{
  display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:16px;text-align:left;
  background:#fff;border:1.8px solid #E8E1F8;box-shadow:0 4px 12px rgba(84,68,140,.06);
  transition:transform .14s,border-color .14s;min-height:60px;
}
.sw-arc-card:hover{transform:translateY(-2px);border-color:var(--lac,#7C5CE8)}
.sw-arc-emo{
  flex:0 0 40px;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;
  font-size:22px;background:var(--labg,#F3EEFF);
}
.sw-arc-info{flex:1;min-width:0;display:flex;flex-direction:column}
.sw-arc-info b{font-size:14.5px;color:#2E2650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sw-arc-info small{font-size:12px;font-weight:750;color:#6E688B;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sw-arc-st{flex:none;font-size:12px;font-weight:900;color:var(--lac,#6A4FD8)}

/* 四岛十六专题目录 */
.sw-island-dir{
  margin:14px 0 16px;padding:16px;border-radius:22px;background:#FBF9FF;border:1.5px solid #E5DEFA;
}
.sw-isle-tabs{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}
.sw-isle-tab{
  min-height:40px;padding:6px 13px;border-radius:999px;background:#fff;border:2px solid #E2DCF5;
  font-size:13.5px;font-weight:900;color:#554D78;
}
.sw-isle-tab.on{background:#7C5CE8;border-color:#6846DC;color:#fff;box-shadow:0 3px 0 #5234B8}
.sw-tcards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.sw-tcard{
  display:flex;flex-direction:column;justify-content:space-between;gap:10px;
  padding:13px 14px;border-radius:18px;background:#fff;border:1.8px solid #E7E2F6;
  box-shadow:0 4px 12px rgba(72,58,125,.05);
}
.sw-tcard-top{display:flex;gap:10px;align-items:flex-start;cursor:pointer}
.sw-tcard-emo{
  flex:0 0 42px;width:42px;height:42px;border-radius:13px;display:grid;place-items:center;
  font-size:23px;background:var(--tbg,#F3EEFF);
}
.sw-tcard-main{flex:1;min-width:0}
.sw-tcard-badges{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:3px}
.sw-tcard-isle{font-size:11px;font-weight:900;padding:2px 8px;border-radius:999px;background:var(--tbg,#F3EEFF);color:var(--tc,#6A4FD8)}
.sw-tcard-lab{font-size:11px;font-weight:900;padding:2px 8px;border-radius:999px;background:#FFF4DC;color:#B45309}
.sw-tcard-main h4{margin:0;font-size:16px;color:#2E264F}
.sw-tcard-main p{margin:3px 0 0;font-size:12.5px;font-weight:650;color:#686284;line-height:1.45}
.sw-tcard-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:8px;border-top:1px dashed #ECE7F8}
.sw-tcard-prog{font-size:12.5px;font-weight:850;color:#554E74}
.sw-tcard-prog b{color:var(--tc,#6A4FD8)}
.sw-tcard-acts{display:flex;gap:6px}
.sw-tcard-acts .btn.sm{min-height:36px;padding:4px 10px;font-size:12.5px}

.sw-td-lab{
  display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;
  margin:12px 0 4px;padding:10px 13px;border-radius:15px;
  background:linear-gradient(135deg,#F3EEFF 0%,#FFF6E3 100%);border:1.5px solid #D8CAFF;
}
.sw-td-lab b{display:block;font-size:14px;color:#4B359E}
.sw-td-lab small{display:block;font-size:12px;font-weight:750;color:#6B628C}

.sw-rec{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;width:100%;margin:18px 0 6px;
  padding:14px 18px;min-height:60px;border-radius:20px;text-align:left;
  background:linear-gradient(120deg,#FFF6D6,#FFEFD9);border:2px solid #FFE08A;
  box-shadow:0 4px 0 #F3D98F;color:var(--ink);
}
.sw-rec:active{transform:translateY(3px);box-shadow:0 0 0 #F3D98F}
.sw-rec-t{font-weight:900;color:#8A5A00}
.sw-rec-n{flex:1;min-width:0;font-weight:800;color:#7A4E00}
.sw-rec-go{font-weight:900;color:#B07A00;white-space:nowrap}


.sw-dot{display:flex;align-items:center;gap:6px;font-size:13.5px;font-weight:900;min-height:22px}
.sw-dot.done{color:#F5B301}
.sw-dot.done .st-on,.sw-dot.done .st-off{font-size:17px}
.sw-dot.open{color:#1FA58B}
.sw-dot.lock{color:var(--ink3);font-weight:800}
.sw-dot.lock small{font-size:12px;color:var(--ink3);font-weight:700}
.sw-foot{margin-top:22px;text-align:center}

/* ---------- 专题详情弹窗 ---------- */
.sw-topic-detail{--sw-accent:#6A4FD8}
.sw-td-head{display:flex;gap:14px;align-items:flex-start}
.sw-td-emo{font-size:40px;line-height:1}
.sw-td-head h3{margin:0;font-size:22px}
.sw-td-desc{margin:6px 0 8px;font-size:14.5px;color:var(--ink2);font-weight:700}
.sw-td-tags{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sw-lit{background:#F3EEFF;color:#6A4FD8;border-radius:999px;padding:3px 11px;font-size:12.5px;font-weight:900}
/* 三年级挑战的小标签：专题弹窗的关卡标题旁、开始页的游戏名下面都用它 */
.sw-g3{display:inline-block;vertical-align:middle;background:var(--grape);color:#fff;border-radius:999px;
  padding:2px 9px;font-size:12px;font-weight:900;line-height:1.5;white-space:nowrap;box-shadow:0 2px 0 var(--grape-d)}
.sw-td-lv-t .sw-g3{margin-left:6px;font-size:12px;color:#fff}
.in-badge{margin:-6px 0 12px}
.sw-td-levels{display:flex;flex-direction:column;gap:12px;margin:16px 0}
.sw-td-lv{background:#FBF8F4;border-radius:18px;padding:13px 15px;border:2px dashed #EDE3D6}
.sw-td-lv.locked{background:#FAF8F5;opacity:.92}
.sw-td-lv-t{display:flex;align-items:center;justify-content:space-between;gap:6px 10px;flex-wrap:wrap;font-size:16px;font-weight:900}
.sw-td-lv-t b{min-width:0;overflow-wrap:anywhere}
.sw-td-lv-t span{font-size:13.5px;color:var(--ink2);font-weight:800}
.sw-td-points{margin:8px 0 10px;padding-left:20px;font-size:14px;color:#5E5448;font-weight:650;line-height:1.65}
.sw-td-lv .btn{width:100%}
.sw-tip-line{margin:6px 0;font-size:14px;color:var(--ink2);font-weight:650;line-height:1.65}
.sw-td-unit{margin:6px 0 10px;font-size:12.5px;color:#6A5BA8;font-weight:800}
.sw-ladder{margin:10px 0 12px;padding:10px 11px 11px;border-radius:15px;background:linear-gradient(135deg,#F1FAFF,#F8F3FF);border:1px solid #DCE7F5}
.sw-ladder-title{font-size:13px;font-weight:900;color:#4D5B83;margin-bottom:7px}
.sw-ladder-step{display:flex;align-items:flex-start;gap:8px;margin:6px 0;color:#4A5570;font-size:13px;font-weight:700;line-height:1.5}
.sw-ladder-step i{display:grid;place-items:center;flex:none;width:20px;height:20px;border-radius:7px;background:#7C5CE8;color:#fff;font-style:normal;font-size:12px;font-weight:900;box-shadow:0 2px 0 #5D42B5}
.sw-say{margin-top:6px;border:0;border-radius:999px;padding:6px 12px;background:#fff;color:#5B3FC4;font-size:12.5px;font-weight:900;cursor:pointer;box-shadow:0 2px 7px rgba(91,63,196,.14)}
.sw-say:hover{background:#F1ECFF}

/* ---------- 锁关提示页 ---------- */
.sw-lock{text-align:center}
.sw-lock-tip{font-size:17px;font-weight:800;color:var(--ink2);margin:8px 0 18px}
.sw-lock .in-acts{flex-wrap:wrap}

/* ---------- 结果页的解锁 / 勋章提示 ---------- */
.sw-unlock{margin:14px auto 4px}
.sw-next{margin:8px 0 4px;text-align:center}
.sw-next-tip{margin:8px 0 4px;text-align:center;font-size:14.5px;font-weight:800;color:var(--ink2)}
.sw-medal{background:linear-gradient(120deg,#FFF1D6,#FFE7F1);border-color:#FFC9DE;color:#A3427A}
.sw-medal small{color:#C27AA2}

/* ---------- 线段部件 ---------- */
.sw-seg{display:flex;flex-direction:column;gap:10px}
.sw-seg-head{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px;font-weight:800;color:var(--ink2)}
.sw-seg-count{color:var(--sky-d);font-size:15px}
.sw-seg-svg{display:block;width:100%;max-width:420px;height:auto;margin:0 auto;overflow:visible}
.sw-seg-base{stroke:var(--line);stroke-width:4;stroke-linecap:round}
.sw-seg-base.dotted{stroke:#B7C5D8;stroke-width:5;stroke-dasharray:1 11}
.sw-seg-pt text.sw-station-ico{font-size:26px;font-weight:400;fill:initial}
.sw-seg-pt{cursor:pointer}
.sw-seg-pt circle.hit{fill:transparent;stroke:none}
.sw-seg-pt circle{fill:#fff;stroke:#C6D3E2;stroke-width:4;transition:stroke .15s,fill .15s}
.sw-seg-pt text{text-anchor:middle;font-size:19px;font-weight:900;fill:var(--ink2)}
.sw-seg-pt:hover circle:not(.hit){stroke:var(--sky)}
.sw-seg-pt.on circle:not(.hit){stroke:var(--sky);fill:#E7F0FF;stroke-width:5}
.sw-seg-pt.on text{fill:var(--sky-d)}
.sw-seg-pt.on{cursor:default}
/* 橙色焦点框只在键盘操作时出现，鼠标和触摸点击不显示 */
.sw-seg-pt:focus{outline:none}
.sw-seg-pt:focus-visible circle:not(.hit){stroke:#F0A22B;stroke-width:6;fill:#FFF6E3}
.sw-seg-pt:focus-visible text{fill:#B4761A}
.sw-seg-svg.static .sw-seg-pt{cursor:default}
.sw-seg-svg.static .sw-seg-pt.on circle{stroke:var(--sky-d);stroke-width:5;fill:#E7F0FF}

/* 线段画成弧线：越长弧越高，颜色轮换，最新找到的最显眼 */
.sw-arc{fill:none;stroke-width:3;stroke-linecap:round;opacity:.62;transition:opacity .2s,stroke-width .2s}
.sw-arc.c0{stroke:#4D96FF}
.sw-arc.c1{stroke:#FF9F6B}
.sw-arc.c2{stroke:#4ECBAE}
.sw-arc.c3{stroke:#B49BFF}
.sw-arc.now{stroke-width:5.5;opacity:1}
.sw-arcs{display:flex;flex-direction:column;gap:6px}
.sw-arcs-svg{display:block;width:100%;max-width:420px;height:auto;margin:0 auto}
.sw-seg-dot{fill:#fff;stroke:#8FA6C0;stroke-width:3}
.sw-seg-pt-lb{text-anchor:middle;font-size:16px;font-weight:900;fill:var(--ink2)}
.sw-arcs-legend{display:flex;flex-wrap:wrap;gap:6px 12px;justify-content:center;font-size:12.5px;font-weight:800;color:var(--ink2)}
.sw-arc-key::before{content:'';display:inline-block;width:14px;height:5px;border-radius:3px;margin-right:5px;vertical-align:middle;background:#4D96FF}
.sw-arc-key.c0::before{background:#4D96FF}
.sw-arc-key.c1::before{background:#FF9F6B}
.sw-arc-key.c2::before{background:#4ECBAE}
.sw-arc-key.c3::before{background:#B49BFF}
.sw-seg-list{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;min-height:34px}
.sw-chip{background:#E7F0FF;color:var(--sky-d);border-radius:10px;padding:4px 12px;font-size:16px;font-weight:900;letter-spacing:1px}
.sw-seg-empty{font-size:13.5px;color:var(--ink3);font-weight:700}

/* ---------- 射线扇形 / 三角形 / 方格 ---------- */
.sw-fan-svg,.sw-tri-svg,.sw-grid-svg{display:block;width:100%;max-width:360px;height:auto;margin:0 auto}
.sw-fan-ray{stroke:var(--sky);stroke-width:4;stroke-linecap:round}
.sw-fan-lb{text-anchor:middle;font-size:17px;font-weight:900;fill:var(--sky-d)}
.sw-fan-apex{fill:var(--sky-d)}
.sw-tri-body{fill:#EAF2FF;stroke:var(--sky);stroke-width:4;stroke-linejoin:round}
.sw-tri-split{stroke:var(--sky);stroke-width:3.4;stroke-linecap:round}
.sw-tri-dot{fill:var(--sky-d)}
.sw-tri-lb{text-anchor:middle;font-size:16px;font-weight:900;fill:var(--ink2)}
.sw-grid-line{stroke:var(--sky);stroke-width:3;stroke-opacity:.55}
.sw-grid-hl{fill:rgba(255,201,60,.42);stroke:var(--sun-d);stroke-width:3.4}

/* ---------- 生活情境小图 ---------- */
.sw-life{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;justify-content:center;font-size:24px;line-height:1.4}
.sw-life span{font-size:14px;font-weight:800;color:var(--ink2)}

/* ---------- 讲一讲里按大小分类的示意图 ---------- */
.sw-cls{display:flex;flex-direction:column;align-items:center;gap:4px;margin:8px 0;padding:8px;background:#fff;border-radius:14px}
.sw-cls>span{font-size:14px;font-weight:800;color:var(--ink2)}
.sw-cls .sw-grid-svg{max-width:210px}

/* ===========================================================
   P2：找规律 · 巧算 · 换一换 · 竖式谜 · 空间小达人
   =========================================================== */

/* ---------- 图形选项（3 选 1）：三个并排，手机上也不折行 ---------- */
.choices.sw-picks{grid-template-columns:repeat(3,minmax(0,1fr));max-width:600px}
.sw-picks .choice{padding:8px 6px;min-height:88px;font-size:34px}
.sw-picks .choice svg{display:block;width:100% !important;max-width:130px;height:auto;margin:0 auto}
.sw-picks .choice .sw-sh{font-size:34px}

/* ---------- 规律条 ---------- */
.sw-ps,.sw-bal{background:#FBF8F4;border-radius:var(--r-lg);padding:14px 14px 12px;border:1px dashed #E7DDD1;text-align:center}
.sw-ps-hint{display:block;min-height:22px;margin-bottom:6px;font-size:14px;font-weight:800;color:var(--ink2)}
.sw-ps-acts,.sw-bal-acts,.sw-rt-acts{text-align:center;margin-top:8px}
.sw-ps-acts .btn,.sw-bal-acts .btn,.sw-rt-acts .btn{min-height:44px}
.sw-strip{display:flex;flex-wrap:wrap;gap:8px 5px;justify-content:center;align-items:center;padding:4px 0}
.sw-pi{display:inline-grid;place-items:center;min-width:38px;height:44px;padding:0 2px;font-size:28px;line-height:1;border-radius:12px}
.sw-pi.mark{background:#FFF1B8;box-shadow:0 0 0 3px var(--sun)}
.sw-pi.more{min-width:30px;color:var(--ink3);font-size:22px;font-weight:900}
.sw-pi.q{min-width:52px;min-height:44px;height:auto;padding:2px 8px;border:3px dashed #C9BFF5;color:var(--grape-d);font-size:24px;font-weight:900}
.sw-pi.q small{font-size:12px;color:var(--ink2);font-weight:800}
.sw-grp{display:inline-flex;border:3px solid var(--grape);border-radius:18px;padding:2px 6px;background:rgba(167,139,250,.12)}
.sw-sh{font-weight:900;line-height:1}
/* 手机窄屏：按格数把图形缩小，10 个以内的图形加“？”排成一行（超过就让它换行）。
   用容器宽度（cqw）来算，规律条放在哪张卡片里都对；老浏览器不认 cqw 时保持原样，只是会换行 */
@media (max-width:400px){
  .sw-ps{padding:12px 8px 10px}
  .sw-grp{padding:2px 3px;border-width:2px;border-radius:14px}
  @supports (container-type:inline-size){
    .sw-strip{container-type:inline-size;column-gap:2px}
    .sw-strip .sw-pi{
      --cell:max(18px, calc((100cqw - var(--sw-g,0) * 12px - var(--sw-n,10) * 2px) / var(--sw-n,10)));
      min-width:min(38px, var(--cell));height:auto;min-height:min(44px, calc(var(--cell) * 1.3));
      padding:0;border-radius:8px;font-size:min(28px, calc(var(--cell) * .78))
    }
    .sw-strip .sw-pi.more{min-width:0;font-size:min(22px, calc(var(--cell) * .7))}
    .sw-strip .sw-pi.q{min-width:calc(var(--cell) * 1.6);padding:0 2px;border-width:2px;font-size:min(24px, calc(var(--cell) * .8))}
    .sw-strip .sw-pi.q.lb{min-width:calc(var(--cell) * 2.1);padding:0 3px}
    .sw-strip .sw-pi.q small{font-size:min(12px, calc(var(--cell) * .5));line-height:1.1;white-space:nowrap}
  }
}

/* ---------- 点阵 ---------- */
.sw-dots-svg{display:block;max-width:100%;height:auto;margin:0 auto}
.sw-dot{fill:#FFB86B;stroke:#E08A2E;stroke-width:1}
.sw-dot.new{fill:#4D96FF;stroke:#2B77E4}
.sw-dot.l0{fill:#FF9F6B;stroke:#E4703A}
.sw-dot.l1{fill:#4D96FF;stroke:#2B77E4}
.sw-dot.l2{fill:#4ECBAE;stroke:#1FAD91}
.sw-dot.l3{fill:#B49BFF;stroke:#8666F0}
.sw-dot.l4{fill:#FFC93C;stroke:#E0A916}
.sw-dot-row{display:flex;flex-wrap:wrap;gap:12px 16px;justify-content:center;align-items:flex-end}
.sw-fig{margin:0;text-align:center}
.sw-fig figcaption{margin-top:2px;font-size:13px;font-weight:800;color:var(--ink2)}

/* ---------- 差值小箭头：3 →(+3)→ 6 →(+3)→ 9 ---------- */
.sw-dc{display:inline-flex;flex-wrap:wrap;align-items:flex-end;gap:4px 0;vertical-align:middle}
.sw-dcs{display:inline-flex;align-items:flex-end;white-space:nowrap}
.sw-dcn{display:inline-grid;place-items:center;min-width:34px;height:38px;padding:0 6px;background:#fff;border:2px solid #E6DED0;border-radius:10px;font-size:20px;font-weight:900}
.sw-dcn.hl{background:#E4F8F1;border-color:var(--mint);color:var(--mint-d)}
.sw-dcn.q{color:var(--ink3)}
.sw-arr{display:inline-flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:38px;font-style:normal;line-height:1;color:var(--sky-d)}
.sw-arr small{font-size:12px;font-weight:900}
.sw-arr::after{content:'→';margin-top:1px;font-size:18px;line-height:1}
.sw-dc-row{margin:6px 0;font-weight:800;line-height:2}

/* ---------- 头尾配对 / 凑十 ---------- */
.sw-pair-svg{display:block;max-width:100%;height:auto;margin:0 auto}
.sw-pair-chip{fill:#fff;stroke:#8FA6C0;stroke-width:3}
.sw-pair-chip.mid{stroke:#C9BFAA;stroke-dasharray:4 3}
.sw-pair-num{text-anchor:middle;font-size:14px;font-weight:900;fill:var(--ink)}
.sw-pair-lb{text-anchor:middle;font-size:13px;font-weight:900;fill:var(--sky-d)}

/* ---------- 3 行 3 列的数表 ---------- */
.sw-tab33{display:grid;grid-template-columns:repeat(3,64px);gap:6px;justify-content:center}
.sw-tab33 i{display:grid;place-items:center;height:50px;font-style:normal;font-size:22px;font-weight:900;background:#fff;border:2px solid #E6DED0;border-radius:12px}
.sw-tab33 i.q{background:#FFF1B8;border-color:var(--sun);color:var(--coral-d)}

/* ---------- 几个几：一个方块代表一个 n ---------- */
.sw-c7row{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:6px 0}
.sw-c7{display:inline-grid;place-items:center;min-width:38px;height:38px;padding:0 6px;border-radius:10px;font-size:18px;font-weight:900;color:#fff;background:#4D96FF}
.sw-c7.b{background:#FF9F6B}

/* ---------- 天平 ---------- */
.sw-bal-svg{display:block;width:100%;max-width:340px;height:auto;margin:0 auto}
.sw-bal-beam{stroke:#8A6A3B;stroke-width:7;stroke-linecap:round}
.sw-bal-str{stroke:#B7A68A;stroke-width:2}
.sw-bal-pan{fill:#F7E6C4;stroke:#B98A3E;stroke-width:3;stroke-linejoin:round}
.sw-bal-post{fill:#D7BE93}
.sw-bal-base{fill:#B98A3E}
.sw-bal-knob{fill:#E0A916}
.sw-bal-note{text-anchor:middle;font-size:13px;font-weight:800;fill:var(--grape-d)}
.sw-bi{text-anchor:middle;font-size:22px}
.sw-bi.pop{animation:sw-pop .55s ease-out both}
@keyframes sw-pop{0%{opacity:0;transform:translateY(-26px)}60%{opacity:1;transform:translateY(3px)}100%{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.sw-bi.pop{animation:none}}
.sw-bal-tip{min-height:22px;margin:6px 0 0;font-size:14px;font-weight:800;color:var(--ink2)}
.sw-bal-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.sw-bal-row .sw-bal-svg{flex:1 1 220px;max-width:300px;margin:0}

/* ---------- 换一换的小图：一排排 emoji、图形 ---------- */
.sw-eline{display:flex;flex-wrap:wrap;gap:4px 6px;justify-content:center;align-items:center;margin:4px 0;font-size:24px;line-height:1.5}
.sw-eg{display:inline-flex;padding:2px 8px;border:2.5px solid #C9BFF5;border-radius:14px;background:rgba(167,139,250,.10)}
.sw-shp-row{display:flex;gap:8px;justify-content:center;font-size:30px;font-weight:900}
.sw-shp-row i{display:grid;place-items:center;width:44px;height:44px;font-style:normal;background:#fff;border:2px solid #E6DED0;border-radius:12px}
.sw-shp-row i.tri{color:#E4573D}
.sw-shp-row i.cir{color:#2B77E4}
.sw-shp-row i.hl{background:#FFF1B8;border-color:var(--sun);box-shadow:0 0 0 3px rgba(255,201,60,.4)}
.sw-eq-n{margin:2px 0 8px;text-align:center;font-size:20px;font-weight:900}

/* ---------- 竖式谜：每一位一个格子，右对齐；运算符在左，最后一行上面一条横线 ---------- */
.eq.sw-vert{--vw:58px;width:max-content;max-width:100%;margin:0 auto 6px}
.eq.sw-vert .eqt{display:contents}
.eq.sw-vert .fieldrow{display:grid;grid-auto-flow:column;grid-template-columns:36px;grid-auto-columns:var(--vw);gap:8px;justify-content:center;align-items:center;margin-bottom:8px}
.eq.sw-vert .fieldrow:last-child{margin-top:4px;padding-top:10px;border-top:4px solid var(--ink)}
.eq.sw-vert .vd,.eq.sw-vert .field,.eq.sw-vert .field.sm{width:var(--vw);min-width:0;height:60px;padding:0}
.vd,.vop{display:grid;place-items:center;font-style:normal;font-weight:900;color:var(--ink)}
.vd{font-size:32px}
.vop{font-size:30px;color:var(--ink2)}
.eq.sw-vert .vop{width:36px}
.eq.sw-vert .field.ph{font-size:24px}
/* 静态竖式（讲一讲里配图） */
.sw-vs{display:inline-block;--vw:46px}
.sw-vs-row{display:grid;grid-auto-flow:column;grid-template-columns:32px;grid-auto-columns:var(--vw);gap:6px;justify-content:center;margin-bottom:4px}
.sw-vs-row.last{margin-top:4px;padding-top:6px;border-top:3px solid var(--ink)}
.sw-vs .vd,.sw-vs .vop{height:44px}
.sw-vs .vd{font-size:26px}
.sw-vs .vd.fill{background:#FFF1B8;border-radius:10px;color:var(--coral-d)}
.sw-vs .vop{width:32px;font-size:24px}
/* 和差题的列表 */
.sw-list{margin:0 auto;border-collapse:collapse;font-size:18px;font-weight:800}
.sw-list th,.sw-list td{min-width:56px;padding:5px 10px;text-align:center;border:2px solid #E6DED0}
.sw-list th{background:#F4EFE9;color:var(--ink2);font-size:14px}
.sw-list tr.hit td{background:#E4F8F1;color:var(--mint-d);font-weight:900}

/* ---------- 等轴测小方块 / 平面视图 ---------- */
.sw-iso-svg,.sw-vg-svg{display:block;max-width:100%;height:auto;margin:0 auto}
.sw-floor{fill:#F3EEE4;stroke:#DDD2BC;stroke-width:1}
.sw-cube-t{fill:#FFE28A;stroke:#B98A10;stroke-width:1.6;stroke-linejoin:round}
.sw-cube-l{fill:#F2A650;stroke:#B98A10;stroke-width:1.6;stroke-linejoin:round}
.sw-cube-r{fill:#DE7B2E;stroke:#B98A10;stroke-width:1.6;stroke-linejoin:round}
.sw-ghost{fill:rgba(255,226,138,.16);stroke:#B98A10;stroke-width:1.4;stroke-dasharray:4 3;stroke-linejoin:round}
.sw-vg-on{fill:#FFD35C;stroke:#B98A10;stroke-width:2}
.sw-vg-off{fill:#fff;stroke:#CBD5E1;stroke-width:1.6}
.bd-work .sw-iso-svg,.bd-work .sw-stroke-svg{margin:4px 0}

/* ---------- 最短路线 ---------- */
.sw-rt{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px;background:#FBF8F4;border:1px dashed #E7DDD1;border-radius:var(--r-lg)}
.sw-rt-head{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;justify-content:space-between;width:100%;font-size:14px;font-weight:800;color:var(--ink2)}
.sw-rt-count{color:var(--sky-d);font-size:15px}
.sw-route-svg{display:block;width:100%;max-width:340px;height:auto;margin:0 auto}
.sw-route-svg.live{overflow:visible}
.sw-rt-line{stroke:#D5DEEA;stroke-width:4;stroke-linecap:round}
.sw-rt-path{fill:none;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;opacity:.85}
.sw-rt-path.c0{stroke:#4D96FF}
.sw-rt-path.c1{stroke:#FF9F6B}
.sw-rt-path.c2{stroke:#4ECBAE}
.sw-rt-path.c3{stroke:#B49BFF}
.sw-rt-node{fill:#fff;stroke:#8FA6C0;stroke-width:3.5}
.sw-rt-node.start{fill:#E4F8F1;stroke:var(--mint-d)}
.sw-rt-node.goal{fill:#FFE3EC;stroke:var(--pink-d)}
.sw-route-svg .sw-rt-node[data-n]{fill:var(--sky);stroke:var(--sky-d)}
.sw-rt-num{text-anchor:middle;font-size:15px;font-weight:900;fill:#fff}
.sw-rt-ab{text-anchor:middle;font-size:20px;font-weight:900}
.sw-rt-ab.a{fill:var(--mint-d)}
.sw-rt-ab.b{fill:var(--pink-d)}
.sw-rt-pt{cursor:pointer}
.sw-rt-pt circle.hit{fill:transparent;stroke:none}
.sw-rt-pt.on .sw-rt-node{fill:#DCEBFF;stroke:var(--sky-d)}
.sw-rt-pt.cur .sw-rt-node{fill:var(--sky);stroke:var(--sky-d)}
/* 橙色焦点框只在键盘操作时出现，鼠标和触摸点击不显示 */
.sw-rt-pt:focus{outline:none}
.sw-rt-pt:focus-visible .sw-rt-node{stroke:#F0A22B;stroke-width:6;fill:#FFF6E3}
.sw-rt-list{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;width:100%;min-height:34px}
.sw-rt-mini{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:12px;font-weight:800;color:var(--ink2)}
.sw-route-svg.mini{width:84px;max-width:84px}
.sw-rt-bg{fill:#fff;stroke:#E6DED0}

/* ---------- 折纸打孔 ---------- */
.sw-fold-svg,.sw-unfold-svg{display:block;width:100%;max-width:340px;height:auto;margin:0 auto}
.sw-paper{fill:#FFFDF6;stroke:#C9B98F;stroke-width:1.6}
.sw-paper-grid{stroke:#EDE4CF;stroke-width:1}
.sw-fold-line{stroke:var(--coral-d);stroke-width:1.8;stroke-dasharray:4 3;fill:none}
.sw-fold-arrow{stroke:var(--coral-d);stroke-width:1.8}
.sw-fold-head{fill:var(--coral-d)}
.sw-fold-go{text-anchor:middle;font-size:18px;fill:var(--ink3)}
.sw-hole{fill:#33383F;stroke:#fff;stroke-width:1}
.sw-hole.orig{fill:var(--sun);stroke:#33383F;stroke-width:1.6}

/* ---------- 一笔画 ---------- */
.sw-stroke-svg{display:block;width:100%;max-width:150px;height:auto;margin:0 auto}
.sw-stroke-svg.deg{max-width:240px}
.sw-st-edge{stroke:var(--sky-d);stroke-width:2.6;stroke-linecap:round}
.sw-st-pt{fill:#fff;stroke:var(--sky-d);stroke-width:1.8}
.sw-st-pt.odd{fill:#FFB347;stroke:#D98A0B}
.sw-st-deg{text-anchor:middle;font-size:7.5px;font-weight:900;fill:var(--ink)}

/* ---------- 三年级挑战（W1）新专题的小图：火柴棒、骰子、镜子、钟面、年龄条、平底锅 ---------- */
.sw-stick-svg,.sw-die-svg,.sw-stack-svg,.sw-mirror-svg,.sw-stand-svg,.sw-clock-svg,.sw-age-svg,.sw-pan-svg{
  display:block;width:100%;height:auto;margin:0 auto}
.sw-stick-svg{max-width:330px}
.sw-die-svg{max-width:150px}
.sw-stack-svg{max-width:150px}
.sw-mirror-svg{max-width:330px}
.sw-stand-svg{max-width:320px}
.sw-clock-svg{max-width:140px}
.sw-age-svg{max-width:320px}
.sw-pan-svg{max-width:300px}
.sw-stick{stroke:var(--coral-d);stroke-width:4;stroke-linecap:round}
.sw-stick-lb{text-anchor:middle;font-size:14px;font-weight:800;fill:var(--ink2)}
.sw-die{fill:#FFFDF6;stroke:#5B6472;stroke-width:2.4}
.sw-die-pip{fill:#3A4250}
.sw-die-q{text-anchor:middle;font-size:22px;font-weight:900;fill:#B9C2CE}
.sw-die-lb{text-anchor:middle;font-size:14px;font-weight:800;fill:var(--ink2)}
.sw-mirror-line{stroke:var(--sky);stroke-width:3.6;stroke-linecap:round;stroke-dasharray:7 5}
.sw-mirror-cell{fill:#fff;stroke:#D9E2EE;stroke-width:1.8}
.sw-mirror-cell.ghost{fill:#F4F8FF;stroke:var(--sky);stroke-dasharray:5 4}
.sw-mirror-item{text-anchor:middle;font-size:22px}
.sw-mirror-lb{text-anchor:middle;font-size:13.5px;font-weight:800;fill:var(--ink2)}
.sw-floor-tick{stroke:#C9B98F;stroke-width:2;stroke-linecap:round}
.sw-clock-face{fill:#FFFDF6;stroke:#5B6472;stroke-width:2.4}
.sw-clock-num{text-anchor:middle;font-size:10.5px;font-weight:900;fill:#5B6472}
.sw-clock-hand{stroke:#3A4250;stroke-width:4;stroke-linecap:round}
.sw-clock-dot{fill:#3A4250}
.sw-age-bar{fill:#BFE9DC;stroke:var(--mint-d);stroke-width:1.8}
.sw-age-bar.alt{fill:#FFE3C2;stroke:var(--coral-d)}
.sw-age-lb{font-size:14px;font-weight:900;fill:var(--ink2)}
.sw-age-num{font-size:13px;font-weight:800;fill:var(--ink2)}
.sw-age-diff{stroke:var(--ink3);stroke-width:2;stroke-dasharray:5 4}
.sw-pan-body{fill:#E8EEF6;stroke:#5B6472;stroke-width:2.6}
.sw-pan-handle{stroke:#5B6472;stroke-width:7;stroke-linecap:round}
.sw-pan-cake{fill:#FFD79A;stroke:#C08A3E;stroke-width:2.2}
.sw-pan-cake.wait{fill:#FFF6E3;stroke-dasharray:5 4;opacity:.95}
.sw-pan-num{text-anchor:middle;font-size:17px;font-weight:900;fill:#8A5B12}
.sw-pan-lb{text-anchor:middle;font-size:13.5px;font-weight:800;fill:var(--ink2)}

/* ---------- 窄屏（手机） ---------- */
@media (max-width:560px){
  .sw-home-card{padding:18px 15px;gap:12px;border-radius:24px}
  .sw-home-top{grid-template-columns:1fr;gap:12px}
  .sw-home-acts{flex-direction:row;flex-wrap:wrap;min-width:0}
  .sw-home-acts .btn{flex:1 1 140px}
  .sw-home-islands{grid-template-columns:1fr 1fr;gap:8px}
  .sw-home-isle{padding:8px 10px;gap:8px}
  .sw-home-isle-emo{flex-basis:32px;width:32px;height:32px;font-size:18px}
  .sw-home-labs{padding:9px 11px}
  .sw-hub{padding:16px 14px}
  .sw-hub-head{padding:15px 14px}
  .sw-hub-head h2{font-size:24px}
  .sw-arcade-sec,.sw-island-dir{padding:13px 12px}
  .sw-arc-grid,.sw-tcards-grid{grid-template-columns:1fr}
  .sw-tree-note{align-items:flex-start;flex-wrap:wrap}.sw-tree-note small{width:100%;margin-left:31px}
  .sw-td-head{gap:10px}
  .sw-td-emo{font-size:32px}
  .sw-seg-svg{max-width:none}
  .sw-arcs-svg{max-width:none}
  .sw-fan-svg,.sw-tri-svg,.sw-grid-svg{max-width:none}
  .sw-stick-svg,.sw-mirror-svg,.sw-stand-svg,.sw-age-svg,.sw-pan-svg{max-width:none}
  .sw-picks .choice{min-height:80px}
  .eq.sw-vert{--vw:50px}
  .eq.sw-vert .vop{width:30px}
  .eq.sw-vert .fieldrow{grid-template-columns:30px;gap:6px}
  .sw-tab33{grid-template-columns:repeat(3,58px)}
  .sw-rt{padding:10px}
  .sw-bal-svg,.sw-route-svg,.sw-fold-svg,.sw-unfold-svg{max-width:none}
  .sw-route-svg.mini{width:76px;max-width:76px}
}

/* ---------- P3：推理表格 ---------- */
.sw-lg{display:flex;flex-direction:column;gap:10px;align-items:center}
.sw-lg-hint{margin:0;font-size:14px;font-weight:750;color:var(--ink2);text-align:center;line-height:1.6}
.sw-lg-grid{display:grid;grid-template-columns:minmax(56px,auto) repeat(var(--sw-lg-c,3),minmax(52px,1fr));gap:6px;width:100%;max-width:420px}
.sw-lg-corner{display:block}
.sw-lg-ch,.sw-lg-rh{display:flex;align-items:center;justify-content:center;min-height:34px;font-size:13px;font-weight:850;color:var(--ink2);padding:0 4px;text-align:center}
.sw-lg-cell{min-height:48px;border:2px solid #D9E3EF;border-radius:12px;background:#fff;font-size:20px;font-weight:900;color:var(--ink2);cursor:pointer;transition:border-color .15s,background .15s}
.sw-lg-cell.no{color:#C0392B;background:#FFF4F2;border-color:#F3C9C2}
.sw-lg-cell.yes{color:#1FA58B;background:#EAFBF6;border-color:#9EDCCB}
.sw-lg-cell.bad{border-color:#E4573D;box-shadow:0 0 0 3px rgba(228,87,61,.16)}
.sw-lg-cell:focus{outline:none}
.sw-lg-cell:focus-visible{outline:3px solid #7C5CE8;outline-offset:2px}
.sw-lg-acts{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center}
.sw-lg-tip{font-size:13px;font-weight:800;color:#C0392B}

/* 线索条 */
.sw-clues{display:flex;flex-wrap:wrap;gap:8px 10px;justify-content:center;padding:10px 12px;border-radius:16px;background:#F6F9FF;border:2px dashed #C9DBF5}
.sw-clue{font-size:15px;font-weight:800;color:var(--ink2);background:#fff;border-radius:12px;padding:7px 12px;box-shadow:0 2px 6px rgba(45,80,140,.08)}
.sw-said{display:flex;flex-direction:column;gap:8px;padding:4px 0}
.sw-said-row{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:750;color:var(--ink2);background:#F6F9FF;border-radius:14px;padding:9px 13px}
.sw-said-row b{flex:none;font-weight:900;color:var(--sky-d)}

/* ---------- P3：数独 ---------- */
.sw-sud{display:flex;flex-direction:column;gap:10px;align-items:center}
.sw-sud-hint{margin:0;font-size:14px;font-weight:750;color:var(--ink2);text-align:center}
.sw-sud-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;width:100%;max-width:320px;border:4px solid #33456B;border-radius:12px;overflow:hidden;background:#33456B}
.sw-sud-cell{aspect-ratio:1/1;min-height:44px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #C6D3E2;font-size:26px;font-weight:900;color:var(--sky-d);cursor:pointer;padding:0}
.sw-sud-cell.r1,.sw-sud-cell.r3{border-bottom-width:4px;border-bottom-color:#33456B}
.sw-sud-cell.c1,.sw-sud-cell.c3{border-right-width:4px;border-right-color:#33456B}
.sw-sud-cell.given{background:#F1F5FB;color:var(--ink2);cursor:default}
.sw-sud-cell.sel{background:#E7F0FF;box-shadow:inset 0 0 0 3px #4D96FF}
.sw-sud-cell.bad{background:#FFF4F2;color:#C0392B}
.sw-sud-cell.wrong{box-shadow:inset 0 0 0 3px #E4573D}
.sw-sud-cell:focus{outline:none}
.sw-sud-cell:focus-visible{outline:3px solid #7C5CE8;outline-offset:-3px}
.sw-sud-grid.static .sw-sud-cell{min-height:34px;font-size:20px;cursor:default}
.sw-sud-grid.static{max-width:220px;margin:0 auto}
.sw-sud-pal{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;width:100%;max-width:320px}
.sw-sud-sym{min-height:52px;border:2px solid #D9E3EF;border-radius:14px;background:#fff;font-size:26px;font-weight:900;cursor:pointer;padding:0}
.sw-sud-sym:hover{border-color:var(--sky)}
.sw-sud-sym:focus{outline:none}
.sw-sud-sym:focus-visible{outline:3px solid #7C5CE8;outline-offset:2px}
.sw-sud-acts{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.sw-sud-tip{margin:0;font-size:13.5px;font-weight:800;color:var(--ink2);text-align:center}

/* ---------- P3：数阵 ---------- */
.sw-na{display:flex;flex-direction:column;gap:10px;align-items:center}
.sw-na-hint{margin:0;font-size:14px;font-weight:750;color:var(--ink2);text-align:center}
.sw-na-fig{width:100%;max-width:360px}
.sw-na-svg{display:block;width:100%;height:auto}
.sw-na-tri{fill:#F6F9FF;stroke:#8FA6C0;stroke-width:3}
.sw-na-dot{fill:#fff;stroke:#8FA6C0;stroke-width:3}
.sw-na-cell{fill:#F6F9FF;stroke:#8FA6C0;stroke-width:2}
.sw-na-num{text-anchor:middle;font-size:22px;font-weight:900;fill:var(--sky-d)}
.sw-na-sum{text-anchor:middle;font-size:14px;font-weight:850;fill:#1FA58B}
.sw-na-sum.bad{fill:#C0392B}
.sw-na-slot .hit{fill:transparent;stroke:none}
.sw-na-slot{cursor:pointer}
.sw-na-slot.fixed{cursor:default}
.sw-na-slot.sel .sw-na-dot,.sw-na-slot.sel .sw-na-cell{stroke:#4D96FF;stroke-width:5;fill:#E7F0FF}
.sw-na-slot:focus{outline:none}
.sw-na-slot:focus-visible .sw-na-dot,.sw-na-slot:focus-visible .sw-na-cell{stroke:#F0A22B;stroke-width:6;fill:#FFF6E3}
.sw-na-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%;max-width:300px}
.sw-na-key{min-height:50px;border:2px solid #D9E3EF;border-radius:14px;background:#fff;font-size:22px;font-weight:900;color:var(--sky-d);cursor:pointer;padding:0}
.sw-na-key:hover{border-color:var(--sky)}
.sw-na-key:focus{outline:none}
.sw-na-key:focus-visible{outline:3px solid #7C5CE8;outline-offset:2px}
.sw-na-acts{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.sw-na-tip{margin:0;font-size:13.5px;font-weight:800;color:var(--ink2);text-align:center}

/* ---------- P3：一排小人、✓✗ 表格 ---------- */
.sw-prow-svg{display:block;width:100%;max-width:460px;height:auto;margin:0 auto}
.sw-prow-base{stroke:var(--line);stroke-width:3;stroke-linecap:round}
.sw-prow-emo{text-anchor:middle;font-size:32px}
.sw-prow-body{stroke:#B9C7D8;stroke-width:3;stroke-linecap:round}
.sw-prow-name{text-anchor:middle;font-size:15px;font-weight:850;fill:var(--ink2)}
.sw-prow-crown{text-anchor:middle;font-size:22px}
.sw-mt-wrap{display:flex;flex-direction:column;align-items:center;gap:6px}
.sw-mt{border-collapse:collapse;margin:0 auto;font-size:14px;font-weight:800;color:var(--ink2)}
.sw-mt th,.sw-mt td{border:2px solid #D9E3EF;padding:6px 10px;text-align:center;min-width:46px}
.sw-mt th{background:#F6F9FF;font-weight:900}
.sw-mt td.yes{color:#1FA58B;background:#EAFBF6;font-size:18px}
.sw-mt td.no{color:#C0392B;background:#FFF4F2;font-size:18px}
.sw-mt-note{margin:0;font-size:12.5px;font-weight:750;color:var(--ink2)}

@media (max-width:400px){
  .sw-sud-grid{max-width:none}
  .sw-sud-pal{max-width:none}
  .sw-na-fig{max-width:none}
  .sw-na-pad{max-width:none}
  .sw-lg-grid{max-width:none}
  .sw-clue{font-size:14px;padding:6px 10px}
  .sw-sud-cell{font-size:22px}
}

/* ---------- P3：文字型选项（水果、颜色、运动、人名）：375px 下一行放得下 ---------- */
/* 不套 .sw-picks（那个是给图形选项用的 3 列 34px），用 .choices 的自动列数 + 紧凑字号 */
.choices.sw-tight{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.sw-tight .choice{min-height:56px;font-size:20px;font-weight:850;white-space:nowrap;line-height:1.3;padding:8px 10px;letter-spacing:0}
.sw-lg-wrap{display:flex;flex-direction:column;gap:10px}
.sw-lg-mount{width:100%}

@media (max-width:400px){
  .choices.sw-tight{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sw-tight .choice{font-size:18px;min-height:52px;padding:8px 6px}
}

/* ---------- P3b：倒推箭头链 ---------- */
.sw-fc{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:16px;background:#F6F9FF;border:2px dashed #C9DBF5}
.sw-fc-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px 4px;font-size:15px;font-weight:850;color:var(--ink2)}
.sw-fc-tag{flex:none;font-size:12.5px;font-weight:900;color:#fff;background:var(--sky-d);border-radius:9px;padding:3px 8px;margin-right:4px}
.sw-fc-row.rev .sw-fc-tag{background:#9B7BF7}
.sw-fc-box{min-width:44px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;background:#fff;border:2px solid #C6D3E2;font-size:17px;font-weight:900;color:var(--ink2);padding:0 8px}
.sw-fc-box.q{color:var(--sky-d)}
.sw-fc-box.end{background:#EAFBF6;border-color:#9EDCCB;color:#1FA58B}
.sw-fc-box.start{background:#FFF6E3;border-color:#F0C87A;color:#B4761A}
.sw-fc-arrow{display:inline-flex;flex-direction:column;align-items:center;gap:1px;font-size:12px;font-weight:900;color:#1FA58B;line-height:1.1}
.sw-fc-arrow b{font-size:15px;color:#8FA6C0}
.sw-fc-arrow.rev{color:#7C5CE8}
.sw-fc-arrow.rev b{color:#B49BFF}

/* ---------- P3b：排队小人 ---------- */
.sw-lu{display:flex;flex-direction:column;gap:8px;align-items:center}
.sw-lu-acts{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.sw-lu-svg{display:block;width:100%;max-width:440px;height:auto;margin:0 auto}
.sw-lu-base{stroke:var(--line);stroke-width:3;stroke-linecap:round}
.sw-lu-dir{font-size:11px;font-weight:900;fill:#8FA6C0}
.sw-lu-halo{fill:transparent}
.sw-lu-p.on .sw-lu-halo{fill:#FFF0D2;stroke:#F0A22B;stroke-width:3}
.sw-lu-emo{text-anchor:middle;font-size:26px}
.sw-lu-p.on .sw-lu-emo{font-size:30px}
.sw-lu-num{text-anchor:middle;font-size:14px;font-weight:900;fill:var(--sky-d)}
.sw-lu-tip{margin:0;font-size:13.5px;font-weight:800;color:var(--ink2);text-align:center}

/* ---------- P3b：间隔（种树 / 锯木头） ---------- */
.sw-gap-svg{display:block;width:100%;max-width:440px;height:auto;margin:0 auto}
.sw-gap-line{stroke:var(--line);stroke-width:5;stroke-linecap:round}
.sw-gap-tree{text-anchor:middle;font-size:22px}
.sw-gap-tree.on{font-size:26px}
.sw-gap-cut{stroke:#B4761A;stroke-width:4;stroke-linecap:round}
.sw-gap-cut.on{stroke:#E4573D;stroke-width:6}
.sw-gap-num{text-anchor:middle;font-size:11px;font-weight:900;fill:#8FA6C0}
.sw-gap-end{font-size:12px;font-weight:900;fill:var(--ink2)}

/* ---------- P3b：条形图（移多补少 / 和差） ---------- */
.sw-bm{display:flex;flex-direction:column;gap:8px;align-items:center}
.sw-bm-acts{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.sw-bm-svg{display:block;width:100%;max-width:440px;height:auto;margin:0 auto}
.sw-bm-lb{font-size:13px;font-weight:900;fill:var(--ink2)}
.sw-bm-num{font-size:13px;font-weight:900;fill:var(--sky-d)}
.sw-bm-bar{transition:width .35s ease, x .35s ease}
.sw-bm-bar.c0{fill:#4D96FF}
.sw-bm-bar.c1{fill:#4ECBAE}
.sw-bm-bar.moved{fill:#F0A22B}
.sw-bm-bar.cut{opacity:.45}
.sw-bm-cut{stroke:#E4573D;stroke-width:4;stroke-dasharray:6 5}
.sw-bm-tip{margin:0;font-size:13.5px;font-weight:800;color:var(--ink2);text-align:center}

/* ---------- P3b：搭配 ---------- */
.sw-of{display:flex;flex-direction:column;gap:10px}
.sw-of-pick{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sw-of-col{display:flex;flex-direction:column;gap:8px}
.sw-of-h{margin:0;font-size:13px;font-weight:900;color:var(--ink2);text-align:center}
.sw-of-item{min-height:48px;border:2px solid #D9E3EF;border-radius:14px;background:#fff;font-size:17px;font-weight:850;cursor:pointer;padding:6px 8px;white-space:nowrap}
.sw-of-item.on{border-color:#4D96FF;background:#E7F0FF;box-shadow:0 0 0 3px rgba(77,150,255,.18)}
.sw-of-item:focus{outline:none}
.sw-of-item:focus-visible{outline:3px solid #7C5CE8;outline-offset:2px}
.sw-of-head{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13.5px;font-weight:850;color:var(--ink2)}
.sw-of-count{color:var(--sky-d)}
.sw-of-list{display:flex;flex-wrap:wrap;gap:8px;min-height:44px;align-items:flex-start}
.sw-of-list.static{justify-content:center}
.sw-of-card{display:flex;flex-direction:column;align-items:center;gap:2px;border:2px solid #C9DBF5;border-radius:14px;background:#F6F9FF;padding:6px 10px}
.sw-of-pair{font-size:19px;font-weight:850;white-space:nowrap}
.sw-of-pair i{font-style:normal;color:#8FA6C0;margin:0 3px}
.sw-of-card small{font-size:11px;font-weight:800;color:#8FA6C0}

/* ---------- P3b：付钱 ---------- */
.sw-cc{display:flex;flex-direction:column;gap:9px;align-items:center}
.sw-cc-hint{margin:0;font-size:13.5px;font-weight:800;color:var(--ink2);text-align:center}
.sw-cc-tray{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;min-height:46px;align-items:center;width:100%;max-width:400px;border:2px dashed #C9DBF5;border-radius:14px;padding:6px}
.sw-cc-in{font-size:14px;font-weight:900;color:var(--sky-d);background:#E7F0FF;border-radius:10px;padding:5px 9px}
.sw-cc-sum{margin:0;font-size:13.5px;font-weight:850;color:var(--ink2)}
.sw-cc-sum b{color:var(--sky-d);font-size:16px}
.sw-cc-wallet{display:flex;gap:9px;flex-wrap:wrap;justify-content:center}
.sw-cc-coin{min-height:48px;min-width:56px;border:2px solid #F0C87A;border-radius:14px;background:#FFF6E3;font-size:15px;font-weight:900;color:#B4761A;cursor:pointer;padding:6px 10px}
.sw-cc-coin:focus{outline:none}
.sw-cc-coin:focus-visible{outline:3px solid #7C5CE8;outline-offset:2px}
.sw-cc-acts{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.sw-cc-head{font-size:13.5px;font-weight:850;color:var(--ink2)}
.sw-cc-head b{color:#1FA58B;font-size:16px}
.sw-cc-list{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.sw-cc-chip{font-size:12.5px;font-weight:850;color:var(--ink2);background:#EAFBF6;border-radius:10px;padding:5px 9px}

/* ---------- P3b：路线 / 握手 / 选一选 / 涂色 ---------- */
.sw-rt2-svg{display:block;width:100%;max-width:440px;height:auto;margin:0 auto}
.sw-rt2-line{stroke-width:4;stroke-linecap:round}
.sw-rt2-line.c0{stroke:#4D96FF}
.sw-rt2-line.c1{stroke:#FF9F6B}
.sw-rt2-line.c2{stroke:#4ECBAE}
.sw-rt2-line.c3{stroke:#B49BFF}
.sw-rt2-node{fill:#fff;stroke:#8FA6C0;stroke-width:3}
.sw-rt2-lb{text-anchor:middle;font-size:13px;font-weight:900;fill:var(--ink2)}
.sw-hand-svg{display:block;width:100%;max-width:280px;height:auto;margin:0 auto}
.sw-hand-line{stroke-width:2.5;stroke-linecap:round;opacity:.75}
.sw-hand-line.c0{stroke:#4D96FF}
.sw-hand-line.c1{stroke:#FF9F6B}
.sw-hand-line.c2{stroke:#4ECBAE}
.sw-hand-line.c3{stroke:#B49BFF}
.sw-hand-node{fill:#fff;stroke:#8FA6C0;stroke-width:2.5}
.sw-hand-lb{text-anchor:middle;font-size:12px;font-weight:900;fill:var(--ink2)}
.sw-chs-svg{display:block;width:100%;max-width:440px;height:auto;margin:0 auto}
.sw-chs-arc{fill:none;stroke-width:3;stroke-linecap:round;opacity:.75}
.sw-chs-arc.c0{stroke:#4D96FF}
.sw-chs-arc.c1{stroke:#FF9F6B}
.sw-chs-arc.c2{stroke:#4ECBAE}
.sw-chs-arc.c3{stroke:#B49BFF}
.sw-chs-emo{text-anchor:middle;font-size:26px}
.sw-paint{display:flex;gap:6px;justify-content:center;padding:4px 0}
.sw-pt{width:56px;height:56px;display:flex;align-items:center;justify-content:center;border:3px solid #8FA6C0;border-radius:12px;background:#fff;font-size:24px}

@media (max-width:400px){
  .sw-fc-row{font-size:14px}
  .sw-fc-box{min-width:38px;min-height:36px;font-size:15px}
  .sw-of-pick{grid-template-columns:1fr 1fr;gap:8px}
  .sw-of-item{font-size:15px;padding:6px 4px}
  .sw-lu-svg,.sw-gap-svg,.sw-bm-svg,.sw-rt2-svg,.sw-chs-svg{max-width:none}
}

.sw-fl-svg{display:block;width:100%;max-width:260px;height:auto;margin:0 auto}
.sw-fl-box{fill:#EEF3FA;stroke:#D9E3EF;stroke-width:2}
.sw-fl-box.on{fill:#FFF0D2;stroke:#F0C87A}
.sw-fl-lb{font-size:12px;font-weight:850;fill:var(--ink2)}

.sw-gap-line.dash{stroke-dasharray:5 7;opacity:.6}
.sw-gap-more{text-anchor:middle;font-size:15px;font-weight:900;fill:#8FA6C0}
.sw-gap-end.c{text-anchor:middle;fill:#8FA6C0;font-size:11.5px}
.sw-clue.dup{background:#FFF0D2;border-color:#F0C87A;color:#B4761A}
.sw-lu-dir.b{fill:#8FA6C0}
.sw-lu-num.b{fill:#B4761A}
/* ---------- P4：每日一题 ---------- */
.sw-daily{display:flex;align-items:center;gap:12px;width:100%;text-align:left;cursor:pointer;
  border:2px solid var(--sw-accent,#D98A0B);border-radius:18px;background:var(--sw-soft,#FFF6DC);
  padding:12px 14px;margin:0 0 12px;font-family:inherit;min-height:56px}
.sw-daily:hover{transform:translateY(-2px)}
.sw-daily:focus{outline:none}
.sw-daily:focus-visible{outline:3px solid #7C5CE8;outline-offset:3px}
.sw-daily-ico{font-size:26px;flex:none}
.sw-daily-copy{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
.sw-daily-t{font-weight:900;font-size:16px;color:var(--ink2)}
.sw-daily-ok{font-style:normal;font-size:12.5px;color:#1FA58B;font-weight:900}
.sw-daily-n{font-size:13.5px;font-weight:800;color:var(--ink2);overflow-wrap:anywhere}
.sw-daily-s{font-size:12.5px;font-weight:800;color:#8FA6C0}
.sw-daily-go{flex:none;font-size:13px;font-weight:900;color:var(--sw-accent,#D98A0B);white-space:nowrap}
.sw-daily-head{display:flex;align-items:center;gap:12px;border:2px solid var(--sw-accent,#D98A0B);
  border-radius:16px;background:var(--sw-soft,#FFF6DC);padding:12px 14px;margin-bottom:12px}
.sw-daily-head b{font-size:16px;color:var(--ink2)}
.sw-daily-head p{margin:2px 0 0;font-size:13px;font-weight:800;color:var(--ink2)}
.sw-daily-emo{font-size:26px;flex:none}
.sw-daily-streak{flex:none;font-size:13px;font-weight:900;color:#D98A0B}
.sw-daily-res{text-align:center}
.sw-daily-badge{font-size:52px;line-height:1.1}
.sw-daily-streak-big{display:inline-block;margin:10px 0 4px;background:#FFF0D2;border-radius:999px;
  padding:7px 16px;font-weight:900;color:#B4761A;font-size:15px}
.sw-daily-streak-big b{font-size:19px}
.sw-daily-ticket{background:#FFF0D2;border-color:#F0C87A}
.sw-daily-tomorrow{margin:10px 0 0;font-size:13.5px;font-weight:800;color:#8FA6C0}

/* ---------- 思维成长树：绘本风的大树，10 串果子跟着星星长熟 ---------- */
.sw-tree{margin:0 0 16px;padding:14px 14px 12px;border-radius:24px;background:#fff;border:1px solid #E2EEDB;
  box-shadow:0 12px 30px -20px rgba(46,94,58,.5),0 2px 6px rgba(46,94,58,.05)}
.sw-tree-head{display:flex;align-items:center;justify-content:space-between;gap:10px 14px;flex-wrap:wrap;margin:2px 4px 12px}
.sw-tree-title{display:flex;align-items:center;gap:11px;min-width:0}
.sw-tree-ico{flex:none;width:42px;height:42px;border-radius:14px;display:grid;place-items:center;font-size:23px;
  background:linear-gradient(150deg,#EEF9E6,#CDEBBE);box-shadow:inset 0 -2px 0 rgba(63,145,82,.16),0 4px 10px -6px rgba(63,145,82,.6)}
.sw-tree-title b{display:block;font-size:18px;font-weight:900;color:#2E5D35;letter-spacing:.5px}
.sw-tree-title small{display:block;margin-top:2px;font-size:12.5px;font-weight:800;color:#7E9C77}
.sw-tree-stats{display:flex;gap:7px;flex-wrap:wrap}
.sw-ts{display:inline-flex;align-items:baseline;gap:2px;padding:6px 11px 6px 9px;border-radius:999px;background:#F4FAF0;
  border:1px solid #E0EDD8;font-weight:900;color:#3F6E44;line-height:1.1}
.sw-ts em{font-style:normal;font-size:13px;margin-right:3px;align-self:center}
.sw-ts b{font-size:16px;color:#2E7A43;font-variant-numeric:tabular-nums}
.sw-ts small{font-size:11.5px;font-weight:800;color:#86A180;white-space:nowrap}   /* “/150 星”不能把“星”挤到下一行 */

.sw-tree-stage{position:relative;overflow:hidden;border-radius:20px;padding:12px 8px 0;isolation:isolate;
  background:
    radial-gradient(circle at 86% 13%,rgba(255,214,120,.5) 0,rgba(255,214,120,.18) 52px,rgba(255,214,120,0) 120px),
    linear-gradient(180deg,#E2F2FF 0%,#EDF8F6 52%,#F3FAEC 100%)}
.sw-tree-sun{position:absolute;z-index:-1;top:16px;right:9%;width:34px;height:34px;border-radius:50%;
  background:radial-gradient(circle at 40% 38%,#FFF6D2,#FFD56E 58%,#F8B43C);
  box-shadow:0 0 0 7px rgba(255,211,107,.18),0 0 30px 10px rgba(255,211,107,.32)}
.sw-tree-cloud{position:absolute;z-index:-1;fill:#fff;filter:drop-shadow(0 3px 5px rgba(110,150,180,.16))}
.sw-tree-cloud.c1{top:24px;left:6%;width:80px;opacity:.95;animation:swCloud 16s ease-in-out infinite alternate}
.sw-tree-cloud.c2{top:70px;right:17%;width:54px;opacity:.72;animation:swCloud 21s ease-in-out infinite alternate-reverse}
.sw-tree-hills{position:absolute;z-index:-1;left:0;bottom:0;width:100%;height:84px}
.sw-tree-hills .h1{fill:#D4EDC4}
.sw-tree-hills .h2{fill:#BCE1A7}
.sw-tree-svg{position:relative;display:block;width:100%;max-width:460px;height:auto;margin:0 auto;overflow:visible}

.sw-tree-mound{fill:#B5DD9F}
.sw-bark-line{fill:none;stroke:#8C5B33;stroke-width:1.5;stroke-linecap:round;opacity:.35}
.sw-crown-rim{fill:#3A8349}
.sw-crown-hl{fill:#C6EFA6;opacity:.3}
.sw-speck{fill:#9ADB7C;opacity:.55}
.sw-speck.d{fill:#3F8F50;opacity:.4}

.sw-bunch{cursor:pointer;outline:none;-webkit-tap-highlight-color:transparent}
.sw-bunch-hit{fill:transparent;transition:fill .2s}
.sw-bunch:hover .sw-bunch-hit{fill:rgba(255,255,255,.22)}
.sw-bunch:focus-visible .sw-bunch-hit{fill:rgba(255,255,255,.35);stroke:#7C5CE8;stroke-width:2.5}
.sw-sway{transform-box:view-box;animation:swSway 6s ease-in-out infinite}
.sw-leaf{fill:#5CAE54}
.sw-leaf-rib{fill:none;stroke:#A9DE92;stroke-width:.8;stroke-linecap:round}
.sw-stem{fill:none;stroke:#6E5033;stroke-width:1.5;stroke-linecap:round}
.sw-badge-c{fill:#fff;stroke-width:2.4;transition:stroke-width .2s}
.sw-bunch:hover .sw-badge-c,.sw-bunch:focus-visible .sw-badge-c{stroke-width:3.4}
.sw-bunch.medal .sw-badge-c{stroke:#F2B01E!important;stroke-width:3.2}
.sw-badge-e{font-size:14.5px;text-anchor:middle;dominant-baseline:central}
.sw-medal-dot{fill:#F6B93B;stroke:#fff;stroke-width:1.3}
.sw-medal-star{fill:#fff;font-size:7.5px;font-weight:900;text-anchor:middle;dominant-baseline:central}

.sw-c-bud{fill:#E6F2DF;stroke:#A5C699;stroke-width:1;stroke-dasharray:2 1.6}
.sw-c-sepal{fill:none;stroke:#8DBB7E;stroke-width:1.2;stroke-linecap:round}
.sw-c-petal{fill:#fff;stroke:#F5C1D2;stroke-width:.9}
.sw-c-heart{fill:#FFC94D}
.sw-c-body{stroke-width:.9}
.sw-cherry.s1 .sw-c-body{stroke:#5E9A34}
.sw-cherry.s2 .sw-c-body{stroke:#D4860C}
.sw-cherry.s3 .sw-c-body{stroke:#A31E33}
.sw-c-shine{fill:#fff;opacity:.78}
.sw-c-spark{fill:#FFD54A;transform-box:fill-box;transform-origin:center;animation:swTwinkle 2.6s ease-in-out infinite}
.sw-bf-float{animation:swFloat 4.5s ease-in-out infinite}
.sw-bf-wing{transform-box:fill-box;opacity:.92;animation:swFlap .45s ease-in-out infinite alternate}
.sw-bf-wing.l{transform-origin:right center}
.sw-bf-wing.r{transform-origin:left center}
.sw-flower circle{stroke:rgba(0,0,0,.06);stroke-width:.4}

.sw-tree-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 20px;margin:12px 4px 0}
.sw-tree-legend,.sw-tree-isles{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 12px}
.sw-tl{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:800;color:#5E7A58}
.sw-tl svg{width:18px;height:18px;flex:none}
.sw-ti{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:900;color:var(--c)}
.sw-ti::before{content:'';width:9px;height:9px;border-radius:50%;background:#fff;border:3px solid var(--c)}
.sw-tree-hint{margin:8px 0 0;text-align:center;font-size:12.5px;font-weight:800;color:#8AA584}
.sw-tree-note{display:flex;align-items:center;gap:9px;margin:12px 0 0;padding:10px 14px;border:1px solid #DCEBD4;border-radius:14px;background:#F7FCF3;color:#47704B}
.sw-tree-note span{font-size:22px;line-height:1}.sw-tree-note b{font-size:14px}.sw-tree-note small{margin-left:auto;color:#7B9877;font-weight:800}

@keyframes swSway{0%,100%{transform:rotate(-2.2deg)}50%{transform:rotate(2.2deg)}}
@keyframes swTwinkle{0%,100%{opacity:.35;transform:scale(.7)}50%{opacity:1;transform:scale(1.12)}}
@keyframes swFlap{from{transform:scaleX(1)}to{transform:scaleX(.35)}}
@keyframes swFloat{0%,100%{transform:translate(0,0)}50%{transform:translate(3px,-5px)}}
@keyframes swCloud{from{transform:translateX(0)}to{transform:translateX(16px)}}
@media (prefers-reduced-motion:reduce){
  .sw-sway,.sw-c-spark,.sw-bf-float,.sw-bf-wing,.sw-tree-cloud{animation:none}
}

/* ---------- P4：家长思维报告 ---------- */
.sw-foot-slots{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.sw-report-open{min-height:44px}
.sw-rep-modal{max-width:900px}
.sw-report h3{margin:0 0 4px;font-size:22px;color:#5B3FC4}
.sw-report-sub{margin:0 0 12px;font-size:13px;font-weight:800;color:#8FA6C0}
.sw-rep-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:14px}
.sw-rep-kpi{background:#F5F2FF;border-radius:14px;padding:10px 12px;text-align:center}
.sw-rep-kpi b{display:block;font-size:24px;color:#5B3FC4}
.sw-rep-kpi span{display:block;font-size:13px;font-weight:900;color:var(--ink2)}
.sw-rep-kpi small{display:block;font-size:11.5px;font-weight:800;color:#8FA6C0}
.sw-rep-empty{background:#FFF9E8;border:2px dashed #F0C87A;border-radius:14px;padding:14px}
.sw-rep-empty p{margin:0 0 8px;font-size:14px;font-weight:800;color:#8A6214}
.sw-rep-empty-acts{margin:0}
.sw-rep-methods{background:#F4FBF7;border-radius:14px;padding:12px 14px;margin-bottom:12px}
.sw-rep-methods p{margin:0 0 6px;font-size:14px;font-weight:800;color:var(--ink2)}
.sw-rep-methods b{color:#1FA58B}
.sw-rep-note{margin:0;font-size:12px;font-weight:800;color:#8FA6C0}
.sw-rep-tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:2px solid #E6E2F5;border-radius:14px}
.sw-rep-table{border-collapse:collapse;width:100%;min-width:660px;font-size:13px}
.sw-rep-table th,.sw-rep-table td{padding:7px 10px;text-align:left;border-bottom:1px solid #EFECF9;font-weight:800;color:var(--ink2);white-space:nowrap}
.sw-rep-table th{background:#F5F2FF;font-weight:900;color:#5B3FC4}
.sw-rep-table tr:last-child td{border-bottom:none}
.sw-rep-island td{background:#FAF8FF;font-weight:900;color:var(--sw-accent,#5B3FC4)}
.sw-rep-name{font-weight:900}
.sw-rep-stars{letter-spacing:1px;color:#D98A0B}
.sw-rep-st{display:inline-block;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:900}
.sw-rep-st.idle{background:#EEF1F5;color:#7B8794}
.sw-rep-st.doing{background:#E7F0FF;color:#2B77E4}
.sw-rep-st.good{background:#E4F7EE;color:#1FA58B}
.sw-rep-st.warn{background:#FFEAE4;color:#D2422A}
.sw-rep-legend{margin:8px 0 14px;font-size:12.5px;font-weight:800;color:#8FA6C0}
.sw-rep-legend b{color:var(--ink2)}
.sw-rep-tips{background:#FFFBF2;border:2px solid #F3E4C2;border-radius:14px;padding:12px 14px;margin-bottom:12px}
.sw-rep-tips h4{margin:0 0 8px;font-size:16px;color:#8A6214}
.sw-rep-tips ul{margin:0;padding-left:20px}
.sw-rep-tips li{margin-bottom:8px;font-size:13.5px;font-weight:800;color:var(--ink2);line-height:1.6}
.sw-rep-tips li b{color:#8A6214}
.sw-rep-tip-note{margin:8px 0 0;font-size:12.5px;font-weight:800;color:#A08447}
.sw-rep-why{border:2px solid #E6E2F5;border-radius:14px;padding:10px 14px;margin-bottom:12px;background:#FCFBFF}
.sw-rep-why summary{cursor:pointer;font-size:15px;font-weight:900;color:#5B3FC4}
.sw-rep-why ol{margin:10px 0 4px;padding-left:20px}
.sw-rep-why li{margin-bottom:10px;font-size:13.5px;color:var(--ink2);line-height:1.65}
.sw-rep-why li b{display:block;color:#5B3FC4;font-size:14px;margin-bottom:2px}
.sw-rep-why li p{margin:0;font-weight:700}
.sw-rep-acts{text-align:center}
.sw-parent-block{margin-top:10px}
.sw-parent-acts{margin-top:8px}
.sw-parent-acts .btn{min-height:44px}

/* ---------- P4：章节面板里的智慧岛推荐 ---------- */
.sw-chapter{margin-top:10px;padding:12px 14px;border-radius:14px;background:#F7F4FF;border:2px solid #E6E2F5}
.sw-chapter-t{font-size:14.5px;font-weight:900;color:#5B3FC4;margin-bottom:8px}
.sw-chapter-list{display:flex;flex-wrap:wrap;gap:8px}
.sw-chip{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:8px 12px;border-radius:999px;
  border:2px solid #D9D2F2;background:#fff;font-size:13.5px;font-weight:900;color:#4B3A9A;cursor:pointer;font-family:inherit}
.sw-chip:hover{border-color:#9B7BF7}
.sw-chip:focus{outline:none}
.sw-chip:focus-visible{outline:3px solid #7C5CE8;outline-offset:2px}
.sw-chip.locked{opacity:.72;border-style:dashed;color:#7B8794}
.sw-chip-emo{font-size:16px}
.sw-chip-st{font-size:12px;color:#D98A0B}

@media (max-width:400px){
  .sw-daily{padding:10px 12px;gap:9px}
  .sw-daily-ico{font-size:22px}
  .sw-daily-n{font-size:12.5px}
  .sw-daily-go{font-size:12px}
  .sw-tree{padding:12px 10px 10px;border-radius:20px}
  .sw-tree-head{margin:0 2px 10px}
  .sw-tree-title b{font-size:17px}
  .sw-tree-stats{width:100%;justify-content:space-between;gap:6px}
  .sw-ts{flex:1;justify-content:center;padding:6px 6px}
  .sw-tree-stage{padding:8px 2px 0;border-radius:16px}
  .sw-tree-cloud.c1{width:60px}
  .sw-tree-cloud.c2{width:42px}
  .sw-tree-hills{height:64px}
  .sw-tree-foot{gap:8px 14px}
  .sw-tree-legend{gap:4px 9px}
  .sw-tl{gap:3px;font-size:12px}
  .sw-tl svg{width:16px;height:16px}
  .sw-report h3{font-size:19px}
  .sw-rep-kpi b{font-size:20px}
}


/* 从某一关点“上一步”回到智慧岛：成长树上刚才那一串果子的点击区域短暂高亮（岛屿页已经没有专题卡片了） */
.sw-bunch.sw-arrive .sw-bunch-hit{animation:swArrive 1.8s ease-out}
@keyframes swArrive{0%{fill:rgba(124,92,232,.4);stroke:rgba(124,92,232,.9);stroke-width:3}35%{fill:rgba(124,92,232,.22);stroke:rgba(124,92,232,.6);stroke-width:3}100%{fill:rgba(124,92,232,0);stroke:rgba(124,92,232,0);stroke-width:3}}
@media (prefers-reduced-motion:reduce){
  .sw-bunch.sw-arrive .sw-bunch-hit{animation:none;fill:rgba(124,92,232,.18);stroke:#7C5CE8;stroke-width:3}
}

/* 今日思维训练（siwei-train.js）：结果页的四级台阶成绩 */
.sw-tr-rows{list-style:none;margin:14px auto 10px;padding:0;max-width:420px;display:grid;gap:8px;text-align:left}
.sw-tr-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:14px;background:#f6f8fc;border:2px solid #e3e9f3}
.sw-tr-row[data-tier="2"]{background:#eaf4ff;border-color:#cfe3ff}
.sw-tr-row[data-tier="3"]{background:#fff3e6;border-color:#ffdcb8}
.sw-tr-row[data-tier="4"]{background:#f3eeff;border-color:#ddd0ff}
.sw-tr-name{font-weight:900;min-width:5.5em;color:var(--ink2)}
.sw-tr-dots{display:flex;flex-wrap:wrap;gap:4px;flex:1}
.sw-tr-dot{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;font-style:normal;font-size:13px;font-weight:900;background:#ffe1e1;color:#c0392b}
.sw-tr-dot[data-r="ok"]{background:#dcf7e9;color:#157a54}
.sw-tr-dot[data-r="half"]{background:#fff3cc;color:#9a6a00}
.sw-tr-ok{font-size:15px;color:var(--ink2)}
.sw-tr-level{margin:6px auto 12px;max-width:420px;font-weight:800;color:var(--ink2);line-height:1.6}
.sw-tr-level small{font-weight:700;color:var(--ink3,#6b7280)}
/* 当场纠正：补练了几道、改对几道 */
.sw-tr-fix{margin:4px auto 10px;max-width:420px;padding:8px 12px;border-radius:12px;background:#FFF6DC;color:var(--ink2);font-weight:800;line-height:1.6}
.sw-tr-fix small{font-weight:700;color:var(--ink3,#6b7280)}
/* 说说你的想法：闯关题答对后追问一次，三种想法都不算错 */
.sw-why{margin:12px 0 0;padding:12px 14px;border-radius:16px;background:#f3eeff;border:1.5px solid #ddd0ff}
.sw-why-h{font-weight:900;font-size:16px;color:var(--ink)}
.sw-why-h small{margin-left:6px;font-size:13px;font-weight:700;color:var(--ink2)}
.sw-why-q{margin:6px 0 10px;font-size:17px;font-weight:800;line-height:1.5;color:var(--ink)}
.sw-why-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}
.sw-why-opt{min-height:48px;padding:8px 12px;border-radius:14px;border:2px solid #ddd0ff;background:#fff;font:inherit;font-size:16px;font-weight:800;color:var(--ink);cursor:pointer}
.sw-why-opt[aria-pressed="true"]{border-color:#7c5cd6;background:#ebe3ff}
.sw-why-note{margin:10px 0 0;padding:8px 12px;border-radius:12px;background:#FFF6DC;font-weight:800;line-height:1.6;color:var(--ink2)}
.sw-why-next{margin-top:10px}
.sw-why [hidden]{display:none}
/* 一题两解的结果页 */
.sw-tw-after{margin:8px auto 12px;max-width:420px;padding:8px 12px;border-radius:12px;background:#FFF6DC;font-weight:800;line-height:1.6;color:var(--ink2)}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .sw-tr-row{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12)}
  :root:not([data-theme="light"]) .sw-tr-fix{background:rgba(255,214,102,.12)}
  :root:not([data-theme="light"]) .sw-why{background:rgba(124,92,214,.14);border-color:rgba(221,208,255,.25)}
  :root:not([data-theme="light"]) .sw-why-opt{background:rgba(255,255,255,.06);border-color:rgba(221,208,255,.3)}
  :root:not([data-theme="light"]) .sw-why-opt[aria-pressed="true"]{background:rgba(124,92,214,.3)}
  :root:not([data-theme="light"]) .sw-why-note,:root:not([data-theme="light"]) .sw-tw-after{background:rgba(255,214,102,.12)}
}

/* 掌握记录：这一关的题型全会了（js/mastery.js），专题弹窗里的关卡卡片 */
.sw-td-lv.mastered{background:#F2F8F3;border-color:#BFDCC8}
.sw-td-lv-t .sw-mastered{background:#DDF5E8;color:#17794A;border:1px solid #9ADBB8;border-radius:999px;padding:1px 9px;font-size:12.5px;font-weight:900}
.sw-td-lv .btn.mastered-btn{background:#EEF3EE;color:#4B6656;box-shadow:none;cursor:not-allowed}
