/* ═══════════════ 0925 对话词片 + 飞进句子带(fe3) ═══════════════
   · 一行词片挂在回话卡底下(.cwords): 每片前面一块小方块标它落在句子带哪一格 —— 3C 一种蓝
     (Cube / Code 用原型蓝 #2f6fd6, Run 用想法行浅蓝 #588bde); 状态不引入新色相, 照 D7「砖翻到哪一步」画:
       done 实心 / suggested 蓝虚线框(可点, 点了才做) / blocked 素砖底 + 划线(被墙挡住, ⓘ 看原因) / skipped 灰 / running 淡。
   · 平台照原话补的那片右上角一个「+」。
   · .wfly = 飞行中的那片(固定定位的克隆), .sb-land = 句子带那一格落地时亮一下。
   · 减少动效时不飞、不跳, 只保留颜色变化。3c.css 一个字不改。 */

.coach .cwords{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.cwords[hidden]{display:none!important}

.wchip{position:relative;display:inline-flex;align-items:center;gap:5px;max-width:100%;
  font:600 11.5px/18px -apple-system,"Segoe UI",sans-serif;padding:1px 8px 1px 5px;border-radius:9px;
  border:1px solid rgba(29,29,31,.28);background:#fff;color:#1d1d1f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wchip::before{content:"";flex:none;width:9px;height:9px;border-radius:2px;background:#2f6fd6;
  box-shadow:1.5px -1.5px 0 rgba(29,29,31,.35)}
.wchip[data-slot="run"]::before{background:#588bde}
.wchip[data-slot=""]::before{background:#cfd3da}

.wchip.w-done{background:#2f6fd6;border-color:#2f6fd6;color:#fff}
.wchip.w-done::before{background:#fff}
.wchip.w-done[data-slot="run"]{background:#588bde;border-color:#588bde}

button.wchip.w-suggested{cursor:pointer;background:#fffdf8;border:1.5px dashed #2f6fd6;color:#1d1d1f;padding:0 8px 0 5px}
button.wchip.w-suggested:hover,button.wchip.w-suggested:focus-visible{background:#eef3fd;border-style:solid;outline:none}
button.wchip.w-suggested::after{content:"use";margin-left:2px;font-size:10px;font-weight:800;color:#2f6fd6;text-transform:uppercase;letter-spacing:.03em}

.wchip.w-blocked{background:#e8d2ad;border-color:#c4966a;text-decoration:line-through;text-decoration-color:rgba(29,29,31,.6)}
.wchip.w-blocked::after{content:"ⓘ";margin-left:2px;text-decoration:none;display:inline-block;color:#1d1d1f;font-weight:700}
.wchip.w-skipped{background:#eef0f3;border-color:#cfd3da;color:rgba(29,29,31,.55)}
.wchip.w-skipped::before{background:#cfd3da}
.wchip.w-running{opacity:.65;border-style:dashed}

.wchip.w-plat{padding-right:14px}
.wchip.w-plat::after{content:"+";position:absolute;right:3px;top:-1px;font-size:11px;font-weight:900;line-height:12px;
  color:inherit;text-decoration:none}
.wchip.w-blocked.w-plat::after{content:"ⓘ";position:static}

/* 飞行中的那片: 固定定位的克隆, 盖在一切之上, 不挡点击 */
.wfly{position:fixed;z-index:9999;pointer-events:none;display:inline-flex;align-items:center;gap:5px;
  font:700 11.5px/18px -apple-system,"Segoe UI",sans-serif;padding:1px 8px;border-radius:9px;
  background:#2f6fd6;color:#fff;box-shadow:3px 3px 0 rgba(29,29,31,.85);white-space:nowrap;will-change:transform,opacity}

/* 句子带那一格落地时亮一下(≤600ms) */
@keyframes sbLand{
  0%{box-shadow:0 0 0 0 rgba(47,111,214,.0);transform:translateY(0)}
  30%{box-shadow:0 0 0 4px rgba(47,111,214,.45);transform:translateY(-2px)}
  100%{box-shadow:0 0 0 0 rgba(47,111,214,0);transform:translateY(0)}
}
#sentence .sb-land{animation:sbLand .6s ease-out}

@media (prefers-reduced-motion: reduce){
  #sentence .sb-land{animation:none;outline:2px solid #2f6fd6;outline-offset:1px}
  .wfly{display:none}
}

@media (max-width:560px){
  .coach .cwords{gap:4px}
  .wchip{font-size:12px;line-height:20px}
}

/* 0927(评审 U3「可撤销」): 提示条上的 Undo 按钮。#toasts 和 .toast 在 3c.css 里都是 pointer-events:none(提示不挡手),
   按钮自己打开 pointer-events, 只有它能点。 */
.toast .tact{pointer-events:auto;margin-left:10px;padding:1px 10px;font:inherit;font-weight:700;color:inherit;
  background:transparent;border:1px solid currentColor;border-radius:8px;cursor:pointer}
.toast .tact:hover,.toast .tact:focus-visible{background:rgba(47,111,214,.12)}
