/* ══════════════════════════════════════════════════════════════════════════
   Meet 式浅色会中皮肤（2026-11-10 · M3 统一）
   目标：Google Meet 的浅色视觉 —— 白顶栏、#f1f3f4 舞台、16 圆角宫格、
         白色 pill 控制条、360 右侧聊天面板；字号收束到 11/12/13/14。
   边界：只在 #app.meet-call 下生效；首页、模态面板、旧接口都不动。
         想退回原浅色外壳：地址栏加 ?meet=0（或 ?ui=classic）。
   ══════════════════════════════════════════════════════════════════════════ */

/* ── 1. Google 浅色令牌：React 岛里的 bg-panel / text-ink 自动跟着变 ── */
body.v5 #app.meet-call{
  --bg:#f8f9fa;--bg-2:#ffffff;--panel:#ffffff;--panel-2:#f1f3f4;--panel-3:#e8eaed;
  --line:#dadce0;--line-soft:#e8eaed;--line-strong:#bdc1c6;
  --text:#202124;--text-2:#3c4043;--muted:#5f6368;--faint:#80868b;
  --lamp:#1a73e8;--lamp-strong:#1a73e8;--lamp-text:#0b57d0;--lamp-ink:#ffffff;
  --lamp-soft:#e8f0fe;--lamp-line:#c6dafc;
  --danger:#d93025;--ok:#188038;--warn:#b06000;
  --stage:#f1f3f4;--stage-2:#e8eaed;--stage-line:#dadce0;--stage-text:#202124;
  --avatar-bg:#e8eaed;--bar-bg:rgba(255,255,255,.90);
  --hairline:rgba(32,33,36,.10);--hairline-strong:rgba(32,33,36,.18);
  --tint:rgba(32,33,36,.03);--tint-2:rgba(32,33,36,.06);
  --shadow:0 1px 2px rgba(60,64,67,.10),0 1px 3px 1px rgba(60,64,67,.08);
  background:var(--panel-2);color-scheme:light;
  grid-template-columns:minmax(0,1fr);
}

/* ── 2. 外壳：白顶栏 + 浅灰舞台吃满（舞台底色 #f1f3f4 = panel-2） ── */
body.v5 #app.meet-call .workspace{
  position:relative;display:grid;grid-template-rows:64px minmax(0,1fr) !important;
  background:var(--panel-2);overflow:hidden;
}
body.v5 #app.meet-call .topbar{
  position:relative;z-index:30;height:64px;padding:0 16px;gap:12px;
  border:0;border-bottom:1px solid var(--line-soft);background:var(--panel);
}
body.v5 #app.meet-call main.stage{display:block;min-height:0;padding:0;background:var(--panel-2);overflow:hidden}
body.v5 #app.meet-call .room-pane{height:100%;padding:0;background:var(--panel-2);border:0}
body.v5 #app.meet-call #v5-react-root{
  inset:0 !important;top:0 !important;left:0 !important;right:0 !important;bottom:0 !important;
  overflow:hidden;
}
body.v5 #app.meet-call #table-hub,
body.v5 #app.meet-call #seats,
body.v5 #app.meet-call .mode-hint,
body.v5 #app.meet-call .metrics-bar,
body.v5 #app.meet-call #btn-seats-expand{display:none !important}

/* ── 3. 顶栏：标题 14/500，timer 12，图标 40 ── */
body.v5 #app.meet-call .sb-toggle{
  display:inline-flex;align-items:center;justify-content:center;flex:none;
  width:40px;height:40px;border:0;border-radius:50%;background:transparent;
  color:var(--muted);font-size:18px;line-height:1;cursor:pointer;
}
body.v5 #app.meet-call .sb-toggle:hover{background:var(--panel-2);color:var(--text)}
body.v5 #app.meet-call .mtb-left{display:flex;align-items:center;gap:10px;min-width:0;flex:1}
body.v5 #app.meet-call .mtb-brand{display:flex;align-items:center;gap:8px;flex:none}
body.v5 #app.meet-call .mtb-logo{
  display:grid;place-items:center;width:32px;height:32px;border-radius:8px;
  background:transparent;color:var(--lamp-ink);flex:none;box-shadow:none;
}
body.v5 #app.meet-call .mtb-word{font-size:15px;font-weight:600;color:var(--muted);letter-spacing:.01em}
body.v5 #app.meet-call .mtb-title-wrap{
  display:flex;flex-direction:column;justify-content:center;min-width:0;flex:1 1 auto;
  padding-left:12px;border-left:1px solid var(--line);
}
body.v5 #app.meet-call .mtb-title{
  font-size:14px;font-weight:500;line-height:1.35;color:var(--text);
  max-width:min(46vw,620px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
body.v5 #app.meet-call .mtb-code{font-size:11px;line-height:1.35;color:var(--muted);white-space:nowrap;letter-spacing:.02em}
body.v5 #app.meet-call .mtb-right{display:flex;align-items:center;gap:4px;flex:none;margin-left:auto}
body.v5 #app.meet-call .meet-name-chip{
  border-radius:6px;
  background:var(--tile-label-bg);
  color:var(--tile-label-ink);
  padding:4px 8px;
  box-shadow:0 1px 2px rgba(32,33,36,.18);
  backdrop-filter:none;
}
body.v5 #app.meet-call .mtb-state{
  display:inline-flex;align-items:center;height:24px;padding:0 9px;border-radius:999px;
  background:var(--lamp-soft);color:var(--lamp-text);font-size:11px;white-space:nowrap;
}
body.v5 #app.meet-call .mtb-timer{
  padding:0 6px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;
}
body.v5 #app.meet-call .mtb-icon{
  display:inline-flex;align-items:center;justify-content:center;gap:4px;
  width:40px;height:40px;border:0;border-radius:50%;background:transparent;
  color:var(--muted);font-size:16px;cursor:pointer;
}
body.v5 #app.meet-call .mtb-icon:hover{background:var(--panel-2);color:var(--text)}
body.v5 #app.meet-call .mtb-icon b{font-size:12px;font-weight:500;color:var(--text)}
body.v5 #app.meet-call #v5-tb-people{width:auto;min-width:52px;padding:0 11px;border-radius:999px;background:var(--panel-2)}
body.v5 #app.meet-call #v5-tb-people:hover{background:var(--panel-3)}
body.v5 #app.meet-call #v5-tb-help{font-size:16px;font-weight:500;color:var(--muted)}
@media (max-width:760px){
  body.v5 #app.meet-call .mtb-word,
  body.v5 #app.meet-call .mtb-state,
  body.v5 #app.meet-call .mtb-code{display:none}
  body.v5 #app.meet-call .mtb-title{max-width:42vw;font-size:14px}
  body.v5 #app.meet-call .mtb-title-wrap{padding-left:0;border-left:0}
  body.v5 #app.meet-call .mtb-timer{font-size:12px;padding:0 2px}
  body.v5 #app.meet-call .mtb-icon{width:40px;height:40px}
}
/* 手机顶栏：优先给会议标题让位。人数/聊天/设置/快捷键在底栏或「更多」里都有入口，
   不再和标题抢宽度（390 实测标题只剩 35px，只能显示一个字）。 */
@media (max-width:640px){
  body.v5 #app.meet-call .workspace{grid-template-rows:56px minmax(0,1fr) !important}
  body.v5 #app.meet-call .topbar{height:56px}
  body.v5 #app.meet-call #v5-tb-people,
  body.v5 #app.meet-call #v5-tb-chat,
  body.v5 #app.meet-call #v5-tb-settings,
  body.v5 #app.meet-call #v5-tb-help{display:none}
  body.v5 #app.meet-call .mtb-title{max-width:none;width:100%}
}
/* 320 级小屏：时间让位给完整议题；时间在会议内仍可从「更多」/状态条获取 */
@media (max-width:360px){
  body.v5 #app.meet-call .mtb-timer{display:none}
}
/* 1024 级桌面：侧栏展开时工作区只剩 ~684px。先收「文字」（品牌字、会议号宽度），
   不动图标与数字 —— 标题按可用宽度省略，轮次/剩余时间/四个图标保持 40 触控、不换行不挤压。
   只在 761px 以上生效：≤760 的手机规则（标题占满一行、图标收起）保持原样。 */
@media (min-width:761px) and (max-width:1100px){
  body.v5 #app.meet-call .topbar{padding:0 12px;gap:8px}
  body.v5 #app.meet-call .mtb-left{gap:8px}
  body.v5 #app.meet-call .mtb-word{display:none}
  body.v5 #app.meet-call .mtb-title-wrap{padding-left:8px;max-width:100%}
  body.v5 #app.meet-call .mtb-title{max-width:none;width:100%}
  body.v5 #app.meet-call .mtb-code{max-width:100%;overflow:hidden;text-overflow:ellipsis}
  body.v5 #app.meet-call .mtb-right{gap:2px}
  body.v5 #app.meet-call .mtb-state,
  body.v5 #app.meet-call .mtb-timer,
  body.v5 #app.meet-call .mtb-icon,
  body.v5 #app.meet-call .sb-toggle{flex:none}
}
/* 1001–1100：rail 360 会把舞台压到 660 上下；收 20px 换成舞台可用宽度（default 360 保持不变） */
@media (min-width:1001px) and (max-width:1100px){
  body.v5 #app.meet-call{--rail-w:340px}
}

/* ── 4. 左侧功能菜单：白色抽屉 ── */
body.v5 #app.meet-call .sidebar{
  position:fixed;left:0;top:0;bottom:0;width:300px;max-width:86vw;z-index:80;
  transform:translateX(-103%);transition:transform .2s cubic-bezier(.2,.7,.3,1);
  background:var(--panel);border-right:1px solid var(--line);box-shadow:14px 0 44px rgba(32,33,36,.18);
  padding:10px 12px;
}
body.v5 #app.meet-call.sb-open .sidebar{transform:none}
body.v5 #app.meet-call .sb-close{
  display:grid;place-items:center;position:absolute;top:10px;right:10px;
  width:40px;height:40px;border:0;border-radius:50%;background:transparent;
  color:var(--muted);font-size:20px;line-height:1;z-index:2;cursor:pointer;
}
body.v5 #app.meet-call .sb-close:hover{background:var(--panel-2);color:var(--text)}
body.v5 #app.meet-call .sb-settings-quick{display:none}
body.v5 #app.meet-call .sidebar .head-actions .ghost-btn:hover,
body.v5 #app.meet-call .sidebar .sb-item:hover,
body.v5 #app.meet-call .sidebar .sb-nav .ghost-btn:hover{background:var(--panel-2);color:var(--text)}
body.v5 #app.meet-call .sidebar .brand-name{color:var(--text)}
body.v5 #app.meet-call .sidebar .meeting-title{color:var(--text-2)}
body.v5 #app.meet-call .sidebar .ghost-btn{border-color:var(--line)}
body.v5 #app.meet-call .sidebar .head-primary .primary-btn{background:var(--lamp-strong);color:var(--lamp-ink)}
body.v5 #app.meet-call .sidebar .head-primary .primary-btn:hover{background:var(--lamp-text)}
body.v5 #app.meet-call .sidebar .sb-h,
body.v5 #app.meet-call .sidebar .sb-empty{color:var(--faint)}

/* ── 5. 右侧聊天面板：360 白面板，tab 48/14，默认收起 ── */
body.v5 #app.meet-call .rail{
  position:fixed;top:0;right:0;bottom:0;width:min(var(--rail-w,360px),92vw);z-index:70;
  transform:translateX(103%);transition:transform .2s cubic-bezier(.2,.7,.3,1);
  background:var(--panel);border-left:1px solid var(--line);box-shadow:-18px 0 48px rgba(32,33,36,.14);
  padding:0;
}
body.v5.rail-open #app.meet-call .rail{transform:none}
body.v5 #app.meet-call .v10-console-tabs{height:48px;padding:0 16px;gap:20px;border-bottom:1px solid var(--line-soft)}
body.v5 #app.meet-call .v10-console-tabs button[data-pane]{
  height:48px;padding:0;border:0;border-bottom:2px solid transparent;background:transparent;
  color:var(--muted);font-size:14px;font-weight:500;letter-spacing:0;text-transform:none;cursor:pointer;
}
body.v5 #app.meet-call .v10-console-tabs button[data-pane]:hover{color:var(--text)}
body.v5 #app.meet-call .v10-console-tabs button[data-pane].is-active{color:var(--lamp-text);border-bottom-color:var(--lamp)}
body.v5 #app.meet-call .v10-console-close{
  display:grid;place-items:center;margin-left:auto;width:40px;height:40px;
  border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:20px;cursor:pointer;
}
body.v5 #app.meet-call .v10-console-close:hover{background:var(--panel-2);color:var(--text)}
body.v5 #app.meet-call .v10-console-body{background:var(--panel)}
body.v5 #app.meet-call .v10-pane[data-pane="chat"] #v5-react-thread{background:var(--panel)}
body.v5 #app.meet-call .v10-pane[data-pane="chat"] #v5-react-thread > div{padding-left:16px;padding-right:16px}
body.v5 #app.meet-call .v10-pane[data-pane="chat"] #v5-react-composer{
  border-top:1px solid var(--line-soft);padding:10px 16px 14px;background:var(--panel);
}
body.v5 #app.meet-call .v10-rail-resize{display:none}
body.v5 #app.meet-call .v10-people{padding:8px 16px 20px}
body.v5 #app.meet-call .v10-people-head{color:var(--faint)}
body.v5 #app.meet-call .v10-people-row{border-bottom-color:var(--line-soft)}
body.v5 #app.meet-call .v10-people-row:hover{background:var(--panel-2)}
body.v5 #app.meet-call .v10-people-name{color:var(--text)}
body.v5 #app.meet-call .v10-people-role{color:var(--muted)}
@media (min-width:1001px){
  body.v5 #app.meet-call .workspace{transition:margin-right .2s cubic-bezier(.2,.7,.3,1)}
  body.v5.rail-open #app.meet-call .workspace{margin-right:min(var(--rail-w,360px),92vw)}
}
@media (max-width:1000px){
  body.v5 #app.meet-call .v10-rail-scrim{background:rgba(32,33,36,.18);z-index:65}
}

/* ── 6. 聊天消息：你的一侧浅蓝，专家保持无气泡；正文 14，元数据 11 ── */
body.v5 #app.meet-call [data-testid="thread-message-mine"] > div{
  background:var(--lamp-soft);border-color:var(--lamp-line);border-radius:12px;
}
body.v5 #app.meet-call [data-testid="thread-message-mine"] > div p{color:var(--text)}
/* 右栏正文统一 14：1440 与 390 都是同一字阶，小屏不再缩到 13 */
body.v5 #app.meet-call .thread-speech-body{font-size:14px;line-height:1.65}
/* 展开后限高 + 消息内滚动：一条超长发言不会吃掉整栏，底部输入器始终留在视口里 */
body.v5 #app.meet-call .thread-speech-body.thread-speech-open{
  max-height:min(46vh,380px);
  max-height:min(46dvh,380px);
  overflow-y:auto;overscroll-behavior:contain;
  padding-right:4px;
}
/* 「详情」里的评分/赞踩/查证同样限高：默认收起，展开也只占一段 */
body.v5 #app.meet-call .thread-meta-detail{
  max-height:min(34vh,300px);
  max-height:min(34dvh,300px);
  overflow-y:auto;overscroll-behavior:contain;
}
/* 「展开全文 / 收起」：仍是一条轻量文字按钮，但给到 28 高一整块可点区 */
body.v5 #app.meet-call .thread-expand{
  display:inline-flex;align-items:center;min-height:28px;border-radius:999px;padding:0 4px;
}
/* 空态整块不压缩：哪怕上面已经有「会议开始」分隔线或几条系统提示，
   三条 starter 也只会上移，不会被挤成一条缝（内层 justify-center 被裁是看不到的）。 */
body.v5 #app.meet-call [data-testid="thread-empty-start"]{flex:1 0 auto}
/* 输入器钉在栏底：发言流再长、消息再展开，它都留在视口里，面板本身不滚动 */
body.v5 #app.meet-call .v10-pane[data-pane="chat"] #v5-react-composer{
  position:relative;z-index:2;flex:none;
}
body.v5 #app.meet-call #v5-react-thread::-webkit-scrollbar,
body.v5 #app.meet-call .v10-pane::-webkit-scrollbar{width:8px}
body.v5 #app.meet-call #v5-react-thread::-webkit-scrollbar-thumb,
body.v5 #app.meet-call .v10-pane::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px}
body.v5 #app.meet-call #v5-react-thread::-webkit-scrollbar-track,
body.v5 #app.meet-call .v10-pane::-webkit-scrollbar-track{background:transparent}
body.v5 #app.meet-call .meet-ctrl-danger{color:var(--danger)}

/* ── 7. 舞台：背景 #f1f3f4；tile 16 圆角、12 间距由 React 渲染（见 Stage.jsx） ── */
body.v5 #app.meet-call [data-testid="stage-controls"]{
  position:relative;
  width:max-content;max-width:calc(100% - 16px);
  margin:0 auto 10px;
  display:flex;align-items:center;justify-content:center;gap:2px;flex-wrap:nowrap;
  padding:6px 10px;border:0;border-radius:28px;
  background:var(--panel);box-shadow:var(--shadow);
  overflow:visible;
}
body.v5 #app.meet-call [data-testid="stage-controls"] > *{min-width:0;height:auto;flex:none}
body.v5 #app.meet-call .meet-ctrl{width:48px;height:66px}
body.v5 #app.meet-call .meet-ctrl-icon{width:48px;height:48px}
/* 标签固定 48 宽 + 单行省略：长标签（自由对话/投屏记录）不会顶到相邻按钮；title 仍给全文 */
body.v5 #app.meet-call .meet-ctrl-label{
  display:block;width:100%;max-width:48px;text-align:center;
  font-size:11px;line-height:14px;letter-spacing:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
body.v5 #app.meet-call .meet-ctrl-slot{width:48px;height:66px}
body.v5 #app.meet-call .meet-ctrl-divider{height:32px;flex:none}
/* 390/430：控制条两行（4+3），行距 2，绝不互相压住 */
@media (max-width:560px){
  body.v5 #app.meet-call [data-testid="stage-controls"]{
    display:grid;grid-template-columns:repeat(4,48px);
    justify-content:center;column-gap:4px;row-gap:2px;
    width:auto;max-width:calc(100vw - 16px);
    padding:6px 8px;border-radius:28px;
    margin-bottom:10px;
  }
  body.v5 #app.meet-call [data-testid="stage-controls"] > *{flex:none}
  body.v5 #app.meet-call .meet-ctrl{width:48px;height:66px}
  body.v5 #app.meet-call .meet-ctrl-divider{display:none}
}

/* ── 8. 舞台视图切换条：白底浅灰描边，浮在左上角 ── */
body.v5 #app.meet-call .meet-stage-tabs{
  position:absolute;top:10px;left:14px;z-index:20;
  height:36px;padding:0 4px;border-radius:999px;
  background:var(--panel);border:1px solid var(--line);
  box-shadow:var(--shadow);
}
body.v5 #app.meet-call .meet-stage-tabs button[data-testid^="stage-tab-"]{
  height:28px;padding:0 12px;border:0;border-radius:999px;background:transparent;
  color:var(--muted);font-size:12px;line-height:1;
}
body.v5 #app.meet-call .meet-stage-tabs button[data-testid^="stage-tab-"]:hover{background:var(--panel-2);color:var(--text)}
body.v5 #app.meet-call .meet-stage-tabs button[data-testid^="stage-tab-"][aria-pressed="true"]{
  background:var(--lamp-soft);color:var(--lamp-text);
}
@media (max-width:560px){
  body.v5 #app.meet-call .meet-stage-tabs{top:8px;left:8px;height:32px}
  body.v5 #app.meet-call .meet-stage-tabs button[data-testid^="stage-tab-"]{height:26px;padding:0 9px;font-size:11px}
  /* 读题提示原来居中压住 tab；窄屏放到 tab 条右侧，仍贴着 tab */
  body.v5 #app.meet-call [data-testid="stage-waiting"]{
    position:absolute;top:8px;right:8px;left:auto;z-index:19;
    width:auto;max-width:calc(100% - 184px);margin:0;justify-content:flex-end;
  }
  body.v5 #app.meet-call [data-testid="stage-waiting"] > span{max-width:100%}
}

/* ── 9. 「更多」浮层：分组、白底浅灰描边，永远浮在整条控制条之上（不盖底栏） ── */
body.v5 #app.meet-call .meet-more-pop{
  position:absolute;left:50%;bottom:calc(100% + 10px);z-index:40;
  width:336px;max-width:calc(100vw - 24px);transform:translateX(-50%);
  max-height:min(72vh,560px);
  max-height:min(calc(100dvh - 200px),560px);
  overflow-y:auto;overscroll-behavior:contain;
  background:var(--panel);border:1px solid var(--line);border-radius:16px;
  box-shadow:0 12px 36px rgba(32,33,36,.22);
}
/* 新结构（.meet-more-split）：整层不滚，只滚中段，底部危险区永远钉住；
   没有 .meet-more-scroll 的旧标记仍当作整层滚动，不会被裁掉。 */
body.v5 #app.meet-call .meet-more-pop.meet-more-split{
  display:flex;flex-direction:column;overflow:hidden;
}
/* 中段可滚：分组多、「全部功能」展开后只滚这一层；底部危险区与菜单边框不随滚动跑掉 */
body.v5 #app.meet-call .meet-more-scroll{
  flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;
}
/* 浮层内分三组：11px 小标题 + 组间细分隔线，降低 14 项平铺的压迫感 */
body.v5 #app.meet-call .meet-more-section + .meet-more-section{
  margin-top:4px;padding-top:4px;border-top:1px solid var(--line-soft);
}
body.v5 #app.meet-call .meet-more-title{
  padding:6px 12px 4px;font-size:11px;line-height:16px;
  letter-spacing:0;color:var(--muted);font-weight:500;
}
/* 「全部功能」二级折叠：仍是一条 11px 行，点开才露出低频面板 */
body.v5 #app.meet-call .meet-more-all{
  margin-top:2px;padding-top:2px;border-top:1px solid var(--line-soft);
}
body.v5 #app.meet-call .meet-more-all > summary{
  display:flex;align-items:center;height:40px;margin:0 4px;padding:0 8px;
  border-radius:10px;list-style:none;cursor:pointer;
  font-size:11px;line-height:16px;color:var(--muted);
}
body.v5 #app.meet-call .meet-more-all > summary::-webkit-details-marker{display:none}
body.v5 #app.meet-call .meet-more-all > summary::marker{content:""}
body.v5 #app.meet-call .meet-more-all > summary:hover{background:var(--panel-2);color:var(--text-2)}
body.v5 #app.meet-call .meet-more-all > summary:focus-visible{outline:2px solid var(--lamp);outline-offset:-2px}
body.v5 #app.meet-call .meet-more-all > summary::after{
  content:"›";margin-left:auto;color:var(--faint);transition:transform .15s ease;
}
body.v5 #app.meet-call .meet-more-all[open] > summary::after{transform:rotate(90deg)}
/* 「结束会议」沉到底部危险区：和普通面板项隔开，红字红图标，仍走 clickEnd 二次确认 */
body.v5 #app.meet-call .meet-more-danger{
  flex:none;margin-top:4px;padding-top:4px;border-top:1px solid var(--line-soft);
}
body.v5 #app.meet-call .meet-more-danger-item{color:var(--danger)}
body.v5 #app.meet-call .meet-more-danger-item:hover{color:var(--danger);background:var(--panel-2)}
@media (max-width:560px){
  /* 390 是两行控制条（≈146px）+ 顶栏 56 + 上下留白：菜单始终在底栏之上，
     也不越过舞台顶端（舞台 #v5-react-root 是 overflow:hidden，多出来的高度会被裁掉） */
  body.v5 #app.meet-call .meet-more-pop{
    width:min(336px,calc(100vw - 16px));
    max-height:min(calc(100vh - 240px),520px);
    max-height:min(calc(100dvh - 240px),520px);
  }
}
/* 投屏记录也锚在整条控制条上方：和「更多」一样，绝不被两行底栏压住 */
body.v5 #app.meet-call .meet-decks-pop{
  position:absolute;left:50%;bottom:calc(100% + 10px);z-index:40;
  width:320px;max-width:calc(100vw - 24px);transform:translateX(-50%);
  max-height:min(60vh,420px);overflow-y:auto;overscroll-behavior:contain;
  padding:12px;background:var(--panel);border:1px solid var(--line);border-radius:16px;
  box-shadow:0 12px 36px rgba(32,33,36,.22);
}

/* ── 10. 输入器：48 高，圆角 999/24；发送 40 主色；附件/点名/模式 40 触控 ── */
body.v5 #app.meet-call #v5-react-composer [data-testid="composer-send"]{
  width:40px;height:40px;min-width:40px;min-height:40px;border-radius:999px;
}
body.v5 #app.meet-call #v5-react-composer textarea{line-height:1.5}

/* ── 0. 新顶栏基础布局：?meet=0 时也能正常排版（颜色用当前主题令牌） ── */
body.v5 .mtb-left{display:flex;align-items:center;gap:10px;min-width:0;flex:1}
body.v5 .mtb-brand{display:flex;align-items:center;gap:8px;flex:none}
body.v5 .mtb-logo{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;background:var(--lamp-strong,#1B6FD0);color:var(--lamp-ink);flex:none}
body.v5 .mtb-word{font-size:15px;font-weight:600;color:var(--text);letter-spacing:.01em}
body.v5 .mtb-title-wrap{display:flex;flex-direction:column;justify-content:center;min-width:0;padding-left:12px;border-left:1px solid var(--line-soft)}
body.v5 .mtb-title{font-size:14px;font-weight:500;line-height:1.35;color:var(--text);max-width:min(46vw,620px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.v5 .mtb-code{font-size:11px;line-height:1.35;color:var(--faint);white-space:nowrap;letter-spacing:.02em}
body.v5 .mtb-right{display:flex;align-items:center;gap:4px;flex:none;margin-left:auto}
body.v5 .mtb-state{display:inline-flex;align-items:center;height:24px;padding:0 9px;border-radius:999px;background:var(--lamp-soft);color:var(--lamp-text);font-size:11px;white-space:nowrap}
body.v5 .mtb-timer{padding:0 6px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
body.v5 .mtb-icon{display:inline-flex;align-items:center;justify-content:center;gap:4px;width:40px;height:40px;border:0;border-radius:50%;background:transparent;color:var(--text-2);font-size:15px;cursor:pointer}
body.v5 .mtb-icon:hover{background:var(--panel-2)}
body.v5 .mtb-icon b{font-size:12px;font-weight:500;color:inherit}
body.v5 #v5-tb-people{width:auto;min-width:52px;padding:0 11px;border-radius:999px;background:var(--panel-2)}
@media (max-width:760px){
  body.v5 .mtb-word,body.v5 .mtb-state,body.v5 .mtb-code{display:none}
  body.v5 .mtb-title{max-width:42vw;font-size:14px}
  body.v5 .mtb-title-wrap{padding-left:0;border-left:0}
  body.v5 .mtb-timer{font-size:12px;padding:0 2px}
  body.v5 .mtb-icon{width:40px;height:40px}
}
@media (max-width:560px){
  body.v5 #app.meet-call .rail{width:100vw}
  /* 390 下右栏打开的关闭键给足 44 触控目标 */
  body.v5 #app.meet-call .v10-console-close{width:44px;height:44px;min-width:44px}
}
/* 人物席的浅灰摄影棚底：纯白宫格在浅色舞台上会糊成一片，用 #eef1f4 把「视频格」框出来 */
body.v5 #app.meet-call .v10-tile-bg{
  background:
    radial-gradient(82% 66% at 50% 18%, #ffffff 0%, rgba(255,255,255,0) 64%),
    linear-gradient(180deg, #eef1f4 0%, #e3e8ee 100%);
}
/* 浅色抽屉的遮罩：原来的 52% 黑会把整个浅色舞台压成深灰 */
body.v5 .sb-scrim{background:rgba(32,33,36,.20)}
