/* ===========================================================
   动物细胞 3D 交互模型 —— 组件样式（支持多实例，类作用域）
   =========================================================== */
.cw-root{
  --foreground:#1f1f1f;--muted-foreground:#6b7280;--background:#ffffff;--card:#ffffff;
  --card-foreground:#1f1f1f;--primary:#2f6bd8;--primary-foreground:#ffffff;
  --accent:#eef2f7;--accent-foreground:#1f1f1f;--border:#e5e5e5;
  max-width:840px;font-family:'Roboto','PingFang SC','Segoe UI',Arial,sans-serif;
  color:var(--foreground,#1f1f1f);
}
.cw-root *{box-sizing:border-box}
.cw-h{margin:0 0 10px}
.cw-t{font-size:18px;font-weight:600;color:var(--foreground,#1f1f1f)}
.cw-s{font-size:12.5px;color:var(--muted-foreground,#6b7280);margin-top:3px;line-height:1.5}
.cw-chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 12px}
.cw-chip{
  display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 13px;
  border:1px solid var(--border,#e5e5e5);border-radius:22px;background:var(--card,#fff);
  color:var(--foreground,#1f1f1f);font-size:13px;cursor:pointer;font-family:inherit;
}
.cw-chip:hover{background:var(--accent,#eef2f7)}
.cw-chip:focus-visible{outline:2px solid var(--primary,#2f6bd8);outline-offset:1px}
.cw-chip i{width:10px;height:10px;border-radius:50%;background:var(--d,#888);display:inline-block;flex:none}
.cw-chip.on{border-color:var(--d,#888);font-weight:600}
@supports (background:color-mix(in srgb,red 10%,white)){
  .cw-chip.on{background:color-mix(in srgb,var(--d,#888) 16%,var(--card,#fff))}
}
.cw-stage{
  position:relative;height:520px;border-radius:14px;overflow:hidden;
  background:linear-gradient(180deg,#0d1b33 0%,#05090f 100%);
  touch-action:none;cursor:grab;
}
.cw-stage canvas{position:absolute;top:0;left:0;width:100% !important;height:100% !important;display:block}
.cw-svg{position:absolute;top:0;left:0;width:100%;height:100%}
.cw-badge{
  position:absolute;top:10px;left:10px;background:rgba(4,10,20,.62);color:#e8f2fa;
  font-size:12px;padding:7px 12px;border-radius:8px;display:none;pointer-events:none;z-index:5;
}
.cw-cap{
  position:absolute;left:8px;right:8px;bottom:8px;text-align:center;
  color:rgba(210,228,240,.75);font-size:11.5px;z-index:5;pointer-events:none;
}
.cw-failimg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#fff}
.cw-failimg img{max-width:100%;max-height:100%;object-fit:contain}
.cw-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:12px 0 2px}
.cw-btn{
  min-height:44px;padding:0 16px;border-radius:10px;border:1px solid var(--border,#e5e5e5);
  background:var(--card,#fff);color:var(--foreground,#1f1f1f);font-size:13px;cursor:pointer;font-family:inherit;
}
.cw-btn:hover{background:var(--accent,#eef2f7)}
.cw-btn:focus-visible{outline:2px solid var(--primary,#2f6bd8);outline-offset:1px}
.cw-btn.on{border-color:var(--primary,#2f6bd8);font-weight:600}
@supports (background:color-mix(in srgb,red 10%,white)){
  .cw-btn.on{background:color-mix(in srgb,var(--primary,#2f6bd8) 14%,var(--card,#fff))}
}
.cw-hint{font-size:12px;color:var(--muted-foreground,#6b7280);margin-left:auto}
.cw-info{
  display:none;border:1px solid var(--border,#e5e5e5);border-radius:12px;
  background:var(--card,#fff);padding:12px 14px;margin-top:12px;
}
.cw-info.on{display:block}
.cw-it{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.cw-it i{width:12px;height:12px;border-radius:50%;flex:none}
.cw-itn{font-size:15px;font-weight:600;color:var(--foreground,#1f1f1f)}
.cw-ite{font-size:12px;color:var(--muted-foreground,#6b7280)}
.cw-x{
  min-width:44px;min-height:44px;margin-left:auto;border:none;background:transparent;
  color:var(--muted-foreground,#6b7280);font-size:18px;cursor:pointer;border-radius:8px;font-family:inherit;
}
.cw-x:hover{background:var(--accent,#eef2f7);color:var(--foreground,#1f1f1f)}
.cw-row{display:flex;gap:8px;align-items:baseline;margin-top:8px}
.cw-lab{font-size:11.5px;color:var(--muted-foreground,#6b7280);flex:none;width:52px;text-align:justify;text-align-last:justify}
.cw-val{font-size:13px;color:var(--foreground,#1f1f1f);line-height:1.55}
.cw-note{font-size:11.5px;color:var(--muted-foreground,#6b7280);margin-top:10px;line-height:1.6}
@media (max-width:760px){
  .cw-chips{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
  .cw-stage{height:400px !important}
  .cw-hint{margin-left:0;width:100%}
}
