/* ============================================================
 * robot.css — 小助手机器人样式 · ROBOT-20260918 / ROBOT-V3-20260919 / ROBOT-V4-20260921
 * ============================================================
 * ★ 自包含：所有 token 以 --rb-* 命名并在 .tj-robot{} 内定义；禁引 style.css 的任何 var(--x)。
 *   原因：形态 C（Document PiP）的文档是空白 about:blank，拿不到宿主 :root 变量与 body class。
 *   主题跟随：robot.js 搬家时把 data-theme / lang-en 复制到 pipWin.document.documentElement，
 *   所以这里只允许用 :root[data-theme="light"] 这一种宿主属性选择器。
 *   回归测试断言：本文件每个 var(--name) 的 --name: 定义都在本文件内。
 * 两个身体：.tj-robot（顶栏 28px 圆脸 = 面板/角标锚；[data-host="pip"] 搬进 PiP 小窗只当播报员）· .tj-robot-petbox（站内全身桌宠，fixed，可拖，气泡在头顶）
 *   收起（[data-dock="collapsed"]）= 两个都 hidden；角标画在 #tn-user 的 .tj-robot-avatar-dot 与菜单项 .nav-item-badge（后者用 style.css 既有样式）。
 * 层叠：桌宠 z-index 90（低于全屏蒙层 100、高于底栏 ≤60）；位置由 robot.js 夹在 #topnav（z 1000）之下，气泡按 data-bside / data-hside 弹。
 * ============================================================ */

.tj-robot, .tj-robot-petbox{
  --rb-bg:#131922; --rb-bg2:#1a2233; --rb-bg3:#232e40; --rb-border:#2a3444;
  --rb-text:#e6e9ef; --rb-text2:#9aa3b2; --rb-dim:#7e889a;
  --rb-accent:#e0a030; --rb-accent-ink:#1a1408; --rb-face:#7cc4ff; --rb-face-ink:#0b1a2a; --rb-danger:#ff6b6b;
  --rb-torso:#4f8fd6; --rb-leg:#3b6fb0; --rb-shadow-ink:rgba(0,0,0,0.35);
  --rb-shadow:0 8px 28px rgba(0,0,0,0.4);
  --rb-font:'Space Grotesk','Microsoft YaHei','PingFang SC',system-ui,sans-serif;
  position:relative; display:inline-flex; align-items:center; align-self:center;
  margin-left:10px; font-family:var(--rb-font); color:var(--rb-text);
}
:root[data-theme="light"] .tj-robot, :root[data-theme="light"] .tj-robot-petbox{
  --rb-bg:#ffffff; --rb-bg2:#f3f5f8; --rb-bg3:#e8ecf2; --rb-border:#d9dee7;
  --rb-text:#1b2230; --rb-text2:#5b6574; --rb-dim:#6a7386;
  --rb-accent:#b8741a; --rb-accent-ink:#ffffff; --rb-face:#2f7fd1; --rb-face-ink:#ffffff;
  --rb-torso:#2f6fb8; --rb-leg:#245a99; --rb-shadow-ink:rgba(20,30,50,0.25);
  --rb-shadow:0 8px 28px rgba(20,30,50,0.18);
}
.tj-robot[hidden], .tj-robot-petbox[hidden]{ display:none !important; }
/* 新手引导进行中隐藏（同 tour.css 对 dev FAB 的写法） */
body.tj-touring .tj-robot, body.tj-touring .tj-robot-petbox{ display:none !important; }

/* ── 形态 A · 迷你（顶栏停靠，28px 同 .tn-tour-help） ── */
.tj-robot-mini{
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  width:28px; height:28px; padding:0; border-radius:50%;
  border:1px solid var(--rb-border); background:transparent; cursor:pointer; color:var(--rb-face);
}
.tj-robot-mini:hover{ background:var(--rb-bg3); }
.tj-robot-mini:focus-visible, .tj-robot-tab:focus-visible, .tj-robot-chip:focus-visible, .tj-robot-btn:focus-visible, .tj-robot-item:focus-visible{ outline:2px solid var(--rb-accent); outline-offset:2px; }
.tj-robot-face{ width:22px; height:22px; display:block; }
.tj-robot-face.rb-big{ width:44px; height:44px; }
.tj-robot-pet{ display:none; }
.tj-robot-face .rb-head, .tj-robot-pet .rb-head{ fill:var(--rb-face); }
.tj-robot-face .rb-ant, .tj-robot-pet .rb-ant{ stroke:var(--rb-face); stroke-width:3; stroke-linecap:round; }
.tj-robot-face .rb-ant-dot, .tj-robot-pet .rb-ant-dot{ fill:var(--rb-face); }
.tj-robot-face .rb-eye, .tj-robot-pet .rb-eye{ fill:var(--rb-face-ink); transform-box:fill-box; transform-origin:center; animation:rb-blink 4s infinite; }
.tj-robot-face .rb-mouth, .tj-robot-pet .rb-mouth{ fill:none; stroke:var(--rb-face-ink); stroke-width:3; stroke-linecap:round; }
.tj-robot-pet .rb-ant{ stroke-width:4; } .tj-robot-pet .rb-mouth{ stroke-width:4; }
.tj-robot-pet .rb-torso{ fill:var(--rb-torso); } .tj-robot-pet .rb-arm{ stroke:var(--rb-torso); stroke-width:8; stroke-linecap:round; } .tj-robot-pet .rb-leg{ fill:var(--rb-leg); }
.tj-robot-pet .rb-shadow{ fill:var(--rb-shadow-ink); }
.tj-robot-badge{
  position:absolute; top:-6px; right:-8px; min-width:16px; height:16px; padding:0 4px; border-radius:8px;
  background:var(--rb-danger); color:#fff; font-size:10px; font-weight:700; line-height:16px; text-align:center;
}
.tj-robot-follower{ position:absolute; bottom:-2px; right:-2px; width:8px; height:8px; border-radius:50%; background:var(--rb-dim); border:1px solid var(--rb-bg); }
.tj-robot-badge[hidden], .tj-robot-follower[hidden], .tj-robot-bubble[hidden], .tj-robot-panel[hidden], .tj-robot-settings[hidden], .tj-robot-list[hidden], .tj-robot-btn[hidden], .tj-robot-pipnote[hidden]{ display:none !important; }
/* 收起态：头像右上角红点（#tn-user 本身 position:relative，style.css 既有） */
.tj-robot-avatar-dot{ position:absolute; top:6px; right:8px; width:9px; height:9px; border-radius:50%; background:#ff6b6b; border:2px solid #131922; pointer-events:none; }
:root[data-theme="light"] .tj-robot-avatar-dot{ border-color:#ffffff; }

/* 状态动画 */
@keyframes rb-blink{ 0%,92%,100%{ transform:scaleY(1); } 95%{ transform:scaleY(0.1); } }
@keyframes rb-bounce{ 0%,100%{ transform:translateY(0); } 30%{ transform:translateY(-4px); } 60%{ transform:translateY(0); } 80%{ transform:translateY(-2px); } }
@keyframes rb-talk{ 0%,100%{ d:path("M22 42 Q32 48 42 42"); } 50%{ d:path("M24 41 Q32 53 40 41"); } }
@keyframes rb-talk-pet{ 0%,100%{ d:path("M50 92 Q70 104 90 92"); } 50%{ d:path("M54 90 Q70 114 86 90"); } }
@keyframes rb-glow{ 0%,100%{ opacity:1; } 50%{ opacity:0.35; } }
@keyframes rb-breathe{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-3px); } }
@keyframes rb-hop{ 0%,100%{ transform:translateY(0); } 30%{ transform:translateY(-14px); } 55%{ transform:translateY(0); } 75%{ transform:translateY(-6px); } }
@keyframes rb-wave{ 0%,100%{ transform:rotate(0); } 40%{ transform:rotate(-35deg); } 70%{ transform:rotate(15deg); } }
.tj-robot[data-state="alert"] .tj-robot-mini{ animation:rb-bounce 0.7s ease-out 2; }
.tj-robot[data-state="alert"] .rb-ant-dot, .tj-robot-petbox[data-state="alert"] .rb-ant-dot{ fill:var(--rb-accent); animation:rb-glow 0.5s ease-in-out 3; }
.tj-robot[data-state="speaking"] .tj-robot-face .rb-mouth{ animation:rb-talk 0.35s ease-in-out infinite; }
.tj-robot-petbox[data-state="speaking"] .rb-mouth-pet{ animation:rb-talk-pet 0.35s ease-in-out infinite; }
.tj-robot[data-state="speaking"] .rb-ant-dot, .tj-robot-petbox[data-state="speaking"] .rb-ant-dot{ fill:var(--rb-accent); }
.tj-robot[data-state="muted"] .tj-robot-face .rb-mouth{ d:path("M24 43 L40 43"); }
.tj-robot-petbox[data-state="muted"] .rb-mouth-pet{ d:path("M54 94 L86 94"); }
@media (prefers-reduced-motion: reduce){
  .tj-robot .rb-eye, .tj-robot .rb-mouth, .tj-robot .rb-ant-dot, .tj-robot .tj-robot-mini, .tj-robot-petbox .rb-eye, .tj-robot-petbox .rb-mouth-pet, .tj-robot-petbox .rb-ant-dot, .tj-robot-petbox .rb-pet-body, .tj-robot-petbox .rb-arm-r{ animation:none !important; }
}

/* ── 气泡（面板关着时，锚在图标下方） ── */
.tj-robot-bubble{
  position:absolute; top:calc(100% + 8px); right:0; width:max-content; max-width:320px; min-width:160px;
  background:var(--rb-bg2); color:var(--rb-text); border:1px solid var(--rb-border); border-radius:10px;
  padding:8px 12px; font-size:13px; line-height:1.4; box-shadow:var(--rb-shadow); z-index:1010;
  white-space:normal; word-break:break-word;
}
.tj-robot-bubble::before{ content:''; position:absolute; top:-6px; right:10px; width:10px; height:10px; background:var(--rb-bg2); border-left:1px solid var(--rb-border); border-top:1px solid var(--rb-border); transform:rotate(45deg); }

/* ── 形态 B · 展开面板（复刻 .tn-menu 下拉范式，z-index 1010） ── */
.tj-robot-panel{
  position:absolute; top:calc(100% + 6px); right:0; width:320px; max-height:440px;
  display:flex; flex-direction:column;
  background:var(--rb-bg2); border:1px solid var(--rb-border); border-radius:10px; box-shadow:var(--rb-shadow);
  z-index:1010; overflow:hidden; text-align:left; cursor:default;
}
.tj-robot-head{ display:flex; align-items:center; gap:10px; padding:10px 12px; border-bottom:1px solid var(--rb-border); background:var(--rb-bg); }
.tj-robot-say{ flex:1; font-size:13px; line-height:1.4; color:var(--rb-text); min-height:36px; display:flex; align-items:center; }
.tj-robot-pipnote{ font-family:var(--rb-font); font-size:11px; padding:3px 8px; border-radius:10px; border:1px solid var(--rb-danger); background:transparent; color:var(--rb-danger); cursor:pointer; white-space:nowrap; }
.tj-robot-body{ flex:1; overflow:auto; min-height:120px; }
.tj-robot-list{ padding:4px; }
.tj-robot-empty{ padding:18px 12px; font-size:12px; color:var(--rb-text2); text-align:center; line-height:1.5; }
.tj-robot-group{ padding:8px 10px 2px; font-size:11px; color:var(--rb-dim); letter-spacing:.04em; }
.tj-robot-item{ padding:8px 10px; border-radius:6px; }
.tj-robot-item.is-link{ cursor:pointer; }
.tj-robot-item.is-link:hover{ background:var(--rb-bg3); }
.tj-robot-item-src{ font-size:11px; color:var(--rb-accent); letter-spacing:.02em; }
.tj-robot-item-title{ font-size:13px; color:var(--rb-text); line-height:1.35; margin:2px 0; word-break:break-word; }
.tj-robot-item-body{ font-size:12px; color:var(--rb-text2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tj-robot-item-time{ font-size:11px; color:var(--rb-dim); display:flex; justify-content:space-between; align-items:baseline; gap:8px; }
.tj-robot-item-go{ color:var(--rb-accent); opacity:.75; white-space:nowrap; }   /* ROBOT-DEEP-20260922: 可点行的「前往 ›」标记 */
.tj-robot-item.is-link:hover .tj-robot-item-go{ opacity:1; }
.tj-robot-foot{ display:flex; gap:6px; padding:8px; border-top:1px solid var(--rb-border); background:var(--rb-bg); flex-wrap:wrap; }
.tj-robot-btn{
  font-family:var(--rb-font); font-size:12px; padding:5px 9px; border-radius:6px; cursor:pointer;
  border:1px solid var(--rb-border); background:var(--rb-bg2); color:var(--rb-text);
}
.tj-robot-btn:hover{ background:var(--rb-bg3); }
.tj-robot-btn-dim{ color:var(--rb-text2); }

/* ── 设置面板 ── */
.tj-robot-settings{ padding:8px; font-size:12px; }
.tj-robot-stools{ display:flex; gap:6px; flex-wrap:wrap; margin:6px 0 8px; }
.tj-robot-srow{ display:flex; align-items:center; gap:10px; padding:6px 4px; border-top:1px solid var(--rb-border); }
.tj-robot-srow:first-of-type{ border-top:0; }
.tj-robot-master .tj-robot-slabel{ font-weight:700; }
.tj-robot-slabel{ flex:1; color:var(--rb-text); }
.tj-robot-srow label{ display:inline-flex; align-items:center; gap:4px; color:var(--rb-text2); cursor:pointer; white-space:nowrap; }
.tj-robot-srow input[type="checkbox"]{ accent-color:var(--rb-accent); }
.tj-robot-srow select{ max-width:170px; font-family:var(--rb-font); font-size:12px; background:var(--rb-bg); color:var(--rb-text); border:1px solid var(--rb-border); border-radius:6px; padding:3px 6px; }
.tj-robot-cats{ padding:2px 4px 8px 14px; display:flex; flex-wrap:wrap; gap:4px 10px; }
.tj-robot-cat{ display:inline-flex; align-items:center; gap:3px; color:var(--rb-text2); }
.tj-robot-dim{ color:var(--rb-dim); }

/* ── 双页签 + 通知列表（ROBOT-V3-20260919） ── */
.tj-robot-tabs{ display:flex; border-bottom:1px solid var(--rb-border); background:var(--rb-bg); }
.tj-robot-tab{
  flex:1; font-family:var(--rb-font); font-size:13px; padding:7px 0; text-align:center; cursor:pointer;
  background:transparent; border:0; border-bottom:2px solid transparent; color:var(--rb-text2);
}
.tj-robot-tab:hover{ background:var(--rb-bg3); }
.tj-robot-tab[aria-selected="true"]{ color:var(--rb-text); border-bottom-color:var(--rb-accent); }
.tj-robot-chips{ display:flex; flex-wrap:wrap; gap:3px; padding:6px 8px 4px; position:sticky; top:0; z-index:1; background:var(--rb-bg2); border-bottom:1px solid var(--rb-border); }   /* 列表滚动时筛选栏钉在顶上 */
.tj-robot-chip{
  font-family:var(--rb-font); font-size:11px; line-height:1.2; padding:3px 6px; border-radius:10px; cursor:pointer;
  border:1px solid var(--rb-border); background:transparent; color:var(--rb-text2);
}
.tj-robot-chip:hover{ background:var(--rb-bg3); }
.tj-robot-chip[aria-pressed="true"]{ background:var(--rb-accent); color:var(--rb-accent-ink); border-color:var(--rb-accent); }
.tj-robot-hint{ padding:4px 12px 0; font-size:11px; color:var(--rb-dim); }
.tj-robot-hint[hidden], .tj-robot-live[hidden], .tj-robot-notice[hidden]{ display:none !important; }
.tj-robot-item.is-unread .tj-robot-item-title{ font-weight:700; }
.tj-robot-item.is-unread .tj-robot-item-src::before{ content:'●'; margin-right:4px; font-size:8px; color:var(--rb-danger); vertical-align:middle; }
.tj-robot-shead{ padding:8px 4px 2px; font-size:11px; color:var(--rb-accent); letter-spacing:.04em; }

/* ── 站内桌宠 #tj-robot-pet（ROBOT-V4.1）：独立 fixed 元素，默认显示，可拖，气泡在它头顶；位置由 robot.js 写 left/top 并夹在顶栏之下 ── */
.tj-robot-petbox{ position:fixed; margin:0; z-index:90; touch-action:none; font-family:var(--rb-font); color:var(--rb-text); }
.tj-robot-petbtn{ display:block; width:96px; height:103px; padding:0; border:0; background:transparent; cursor:grab; }
.tj-robot-petbox.is-dragging .tj-robot-petbtn{ cursor:grabbing; }
.tj-robot-petbtn:focus-visible{ outline:2px solid var(--rb-accent); outline-offset:2px; border-radius:12px; }
/* 桌宠角上的「×」：hover/聚焦才出现；单独藏桌宠，顶栏图标保留 */
.tj-robot-pethide{ position:absolute; top:-2px; right:-6px; width:18px; height:18px; padding:0; border-radius:50%; border:1px solid var(--rb-border); background:var(--rb-bg2); color:var(--rb-text2); font-size:12px; line-height:16px; cursor:pointer; opacity:0; transition:opacity .15s; }
.tj-robot-petbox:hover .tj-robot-pethide, .tj-robot-pethide:focus-visible, .tj-robot-petbox:focus-within .tj-robot-pethide{ opacity:1; }
.tj-robot-pethide:hover{ background:var(--rb-bg3); color:var(--rb-text); }
@media (hover: none){ .tj-robot-pethide{ opacity:1; } }   /* ROBOT-GA-20260923 A7：触屏没有 hover，「×」原来看不见却点得到（容易误藏桌宠）→ 触屏常显 */
/* 面板锚在桌宠旁（robot.js anchorPanel 写 left/top|bottom/max-height） */
.tj-robot-panel.is-at-pet{ position:fixed; right:auto; }
.tj-robot-petbox .tj-robot-pet{ display:block; width:96px; height:103px; filter:drop-shadow(0 6px 12px rgba(0,0,0,0.4)); }
.tj-robot-petbox[data-state="idle"] .rb-pet-body{ animation:rb-breathe 3s ease-in-out infinite; }
.tj-robot-petbox[data-state="alert"] .rb-pet-body{ animation:rb-hop 0.8s ease-out 2; }
.tj-robot-petbox[data-state="alert"] .rb-arm-r{ transform-origin:106px 118px; animation:rb-wave 0.9s ease-in-out 2; }
/* 气泡：默认头顶居中（data-bside=up），尾巴指向头；贴顶栏时往下（data-bside=down）；贴边时改锚在边上 */
.tj-robot-petbox .tj-robot-bubble{ top:auto; bottom:calc(100% + 6px); right:auto; left:50%; transform:translateX(-50%); }
.tj-robot-petbox .tj-robot-bubble::before{ top:auto; bottom:-6px; right:auto; left:calc(50% - 5px); transform:rotate(225deg); }
.tj-robot-petbox[data-hside="left"] .tj-robot-bubble{ left:0; transform:none; }
.tj-robot-petbox[data-hside="left"] .tj-robot-bubble::before{ left:38px; }
.tj-robot-petbox[data-hside="right"] .tj-robot-bubble{ left:auto; right:0; transform:none; }
.tj-robot-petbox[data-hside="right"] .tj-robot-bubble::before{ left:auto; right:38px; }
.tj-robot-petbox[data-bside="down"] .tj-robot-bubble{ top:calc(100% + 6px); bottom:auto; }
.tj-robot-petbox[data-bside="down"] .tj-robot-bubble::before{ top:-6px; bottom:auto; transform:rotate(45deg); }

/* ── 第二形态「魔法小幽灵」ROBOT-SKIN-20260924（仅开发者可切换；闸在 robot.js skin()）──
 *   SVG 带 class rb-ghost，零件一律 rb-g-*，与机器人的 rb-* 零件互不命中。身体组沿用 rb-pet-body → 平时飘浮 / 来通知跳（上面现成的规则）。
 *   状态：idle 眨眼+尾巴晃 · alert 眨右眼「<」+挥手+星星闪（草图右张）· speaking 嘴一张一合 · muted 嘴变一条线 */
.tj-robot, .tj-robot-petbox{
  --rb-g-body:#f8f6ff; --rb-g-shade:#e4def8; --rb-g-line:#2a2340; --rb-g-hat:#4a3a8f; --rb-g-hat-hi:#6a58b8; --rb-g-band:#e0a030;
  --rb-g-ear:#f4a9c6; --rb-g-eye:#1b1830; --rb-g-blush:#ff8fb6; --rb-g-staff:#9a6a3a; --rb-g-ring:#e0a030; --rb-g-spark:#ffd36b;
  --rb-g-tail:#5a47a8; --rb-g-aura:rgba(110,90,200,0.28);
}
:root[data-theme="light"] .tj-robot, :root[data-theme="light"] .tj-robot-petbox{ --rb-g-tail:#3a2d70; --rb-g-aura:rgba(110,90,200,0.18); }   /* 深色底上尾巴提亮，浅色底压暗 */
.rb-ghost .rb-g-line{ stroke:var(--rb-g-line); stroke-width:2.2; stroke-linejoin:round; stroke-linecap:round; }
.rb-ghost .rb-g-body{ fill:var(--rb-g-body); } .rb-ghost .rb-g-shade{ fill:var(--rb-g-shade); opacity:.7; }
.rb-ghost .rb-g-hat{ fill:var(--rb-g-hat); } .rb-ghost .rb-g-hat-hi{ fill:var(--rb-g-hat-hi); } .rb-ghost .rb-g-band{ fill:var(--rb-g-band); } .rb-ghost .rb-g-ear{ fill:var(--rb-g-ear); }
.rb-ghost .rb-g-eye{ fill:var(--rb-g-eye); } .rb-ghost .rb-g-hl{ fill:#ffffff; } .rb-ghost .rb-g-blush{ fill:var(--rb-g-blush); opacity:.55; }
.rb-ghost .rb-g-mouth{ fill:var(--rb-g-eye); }
.rb-ghost .rb-g-wink, .rb-ghost .rb-g-mouth-flat{ display:none; fill:none; stroke:var(--rb-g-eye); stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round; }
.rb-ghost .rb-g-staff{ stroke:var(--rb-g-staff); stroke-width:3.6; stroke-linecap:round; } .rb-ghost .rb-g-ring{ fill:none; stroke:var(--rb-g-ring); stroke-width:3; }
.rb-ghost .rb-g-spark{ fill:var(--rb-g-spark); }
.rb-ghost .rb-g-sparks .rb-g-spark:nth-child(2){ animation-delay:.17s; } .rb-ghost .rb-g-sparks .rb-g-spark:nth-child(3){ animation-delay:.34s; }   /* 特异性 0,4,0 > 下面状态规则 0,3,0：animation 简写会把 delay 归零，靠特异性保住错峰 */
.rb-ghost .rb-g-tail{ fill:none; stroke:var(--rb-g-tail); stroke-width:3.6; stroke-linecap:round; } .rb-ghost .rb-g-tail-tip{ fill:var(--rb-g-tail); } .rb-ghost .rb-g-aura{ fill:var(--rb-g-aura); }
@keyframes rb-g-tail{ 0%,100%{ transform:rotate(0); } 50%{ transform:rotate(-10deg); } }
@keyframes rb-g-talk{ 0%,100%{ transform:scale(1,1); } 50%{ transform:scale(1.25,1.7); } }
@keyframes rb-g-twinkle{ 0%,100%{ opacity:1; } 50%{ opacity:.25; } }   /* 只动透明度：星星自带 transform 属性（旋转），CSS transform 会把它盖掉 */
.rb-ghost .rb-g-eye-l, .rb-ghost .rb-g-eye-r{ transform-box:fill-box; transform-origin:center; animation:rb-blink 4s infinite; }
.rb-ghost .rb-g-tailg{ transform-origin:100px 124px; animation:rb-g-tail 2.6s ease-in-out infinite; }
.tj-robot[data-state="alert"] .rb-g-eye-r, .tj-robot-petbox[data-state="alert"] .rb-g-eye-r{ display:none; }
.tj-robot[data-state="alert"] .rb-g-wink, .tj-robot-petbox[data-state="alert"] .rb-g-wink{ display:inline; }
.tj-robot-petbox[data-state="alert"] .rb-g-arm-r{ transform-origin:104px 90px; animation:rb-wave 0.9s ease-in-out 2; }
.tj-robot-petbox[data-state="alert"] .rb-g-spark{ animation:rb-g-twinkle 0.5s ease-in-out 3; }
.tj-robot-petbox[data-state="speaking"] .rb-g-spark{ animation:rb-g-twinkle 0.5s ease-in-out infinite; }
.tj-robot[data-state="speaking"] .rb-g-mouth, .tj-robot-petbox[data-state="speaking"] .rb-g-mouth{ transform-box:fill-box; transform-origin:center; animation:rb-g-talk 0.35s ease-in-out infinite; }
.tj-robot[data-state="muted"] .rb-g-mouth, .tj-robot-petbox[data-state="muted"] .rb-g-mouth{ display:none; }
.tj-robot[data-state="muted"] .rb-g-mouth-flat, .tj-robot-petbox[data-state="muted"] .rb-g-mouth-flat{ display:inline; }
@media (prefers-reduced-motion: reduce){
  .rb-ghost .rb-g-eye-l, .rb-ghost .rb-g-eye-r, .rb-ghost .rb-g-tailg, .rb-ghost .rb-g-arm-r, .rb-ghost .rb-g-spark, .rb-ghost .rb-g-mouth{ animation:none !important; }
}

/* ── 形态 C · PiP 宿主（同一节点搬进 pip 文档；只当播报员：页签/筛选片不显示） ── */
.tj-robot[data-host="pip"]{ position:static; display:flex; flex-direction:column; margin:0; width:100%; height:100%; background:var(--rb-bg); }
.tj-robot[data-host="pip"] .tj-robot-mini{ display:none; }
.tj-robot[data-host="pip"] .tj-robot-bubble{ position:static; width:auto; max-width:none; margin:8px; transform:none; }
.tj-robot[data-host="pip"] .tj-robot-bubble::before{ display:none; }
.tj-robot[data-host="pip"] .tj-robot-panel{ position:static; width:auto; max-height:none !important; flex:1; border:0; border-radius:0; box-shadow:none; transform:none; }
.tj-robot[data-host="pip"] .tj-robot-tabs, .tj-robot[data-host="pip"] .tj-robot-chips{ display:none; }
.tj-robot[data-host="pip"] .tj-robot-body{ min-height:0; }

/* 小屏：面板不超过视口 */
@media (max-width: 380px){ .tj-robot-panel{ width:calc(100vw - 24px); } }
@media print{ .tj-robot, .tj-robot-petbox{ display:none !important; } }
