/* Generated by scripts/build-css.mjs. Keep source files authoritative. */
/* styles.css */
@layer foundation {
:root {
  --bg: #070a10;
  --panel: rgba(14, 19, 28, .86);
  --panel-solid: #0f151e;
  --line: rgba(173, 198, 224, .11);
  --muted: #8491a2;
  --text: #f4f8fc;
  --cyan: #35e7ce;
  --magenta: #ff5b9e;
  --lime: #b8ff52;
  --amber: #ffbf4b;
}

* { box-sizing: border-box; }
html { color-scheme: dark; }
body {
  margin: 0;
  min-width: 0;
  min-height: 100vh;
  color: var(--text);
  background:
    radial-gradient(circle at 14% 0%, rgba(53,231,206,.075), transparent 27%),
    radial-gradient(circle at 90% 8%, rgba(126,101,255,.06), transparent 24%),
    var(--bg);
  font-family: Inter, "Microsoft YaHei UI", "PingFang SC", system-ui, sans-serif;
  overflow-x: hidden;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at 50% -10%, rgba(36,245,210,.08), transparent 42%);
}

.direct-open-warning {
  position: sticky;
  z-index: 100;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  min-height: 54px;
  padding: 10px 24px;
  color: #ffcf77;
  background: #241b0d;
  border-bottom: 1px solid rgba(255, 191, 75, .42);
  font-size: 13px;
}
.direct-open-warning strong { color: #fff; }
.direct-open-warning b { color: var(--cyan); font-family: ui-monospace, monospace; }
.direct-open .connection-badge { opacity: .45; }

.glow { display: none; }
.glow-a { background: var(--cyan); top: 20%; left: -180px; }
.glow-b { background: var(--magenta); right: -200px; bottom: 10%; }
.shell { width: min(1440px, calc(100% - 40px)); margin: 0 auto; padding-bottom: 32px; position: relative; }
.topbar { min-height: 76px; display: grid; grid-template-columns: minmax(210px, 1fr) auto minmax(210px, 1fr); align-items: center; gap: 22px; }
.brand { display: flex; align-items: center; gap: 13px; }
.brand-mark { width: 42px; height: 42px; border: 1px solid rgba(53,231,206,.3); border-radius: 13px; background: linear-gradient(145deg, rgba(53,231,206,.15), rgba(53,231,206,.025)); display: flex; gap: 3px; align-items: center; justify-content: center; box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 12px 30px rgba(0,0,0,.25); }
.brand-mark span { display: block; width: 3px; background: var(--cyan); box-shadow: 0 0 12px var(--cyan); }
.brand-mark span:nth-child(1) { height: 11px; }.brand-mark span:nth-child(2) { height: 23px; }.brand-mark span:nth-child(3) { height: 16px; }
.brand h1 { margin: 0; font-size: 19px; letter-spacing: .08em; }.brand p { margin: 4px 0 0; color: #5f6d7e; font: 9px/1.2 ui-monospace, monospace; letter-spacing: .14em; }
.module-nav { display: flex; align-items: center; gap: 5px; padding: 5px; border: 1px solid var(--line); border-radius: 13px; background: rgba(7,10,16,.66); box-shadow: inset 0 1px 0 rgba(255,255,255,.025); }
.module-nav > button { height: 34px; display: inline-flex; align-items: center; gap: 7px; padding: 0 12px; border: 0; border-radius: 9px; color: #748092; background: transparent; font-size: 11px; white-space: nowrap; transition: color .18s, background .18s, box-shadow .18s; }
.module-nav > button:hover { color: #c7d1dc; background: rgba(255,255,255,.035); }
.module-nav > button > i { width: 5px; height: 5px; border-radius: 50%; background: #46505e; }
.module-nav > button.active { color: #dbfff9; background: rgba(53,231,206,.1); box-shadow: inset 0 0 0 1px rgba(53,231,206,.16); }.module-nav > button.active > i { background: var(--cyan); box-shadow: 0 0 8px var(--cyan); }
.module-nav small { margin-left: 2px; padding: 2px 4px; border-radius: 4px; color: var(--cyan); background: rgba(53,231,206,.09); font-size: 7px; letter-spacing: .08em; }
.module-hidden { display: none !important; }
.connection-badge { display: flex; align-items: center; gap: 9px; border: 1px solid var(--line); border-radius: 99px; padding: 9px 14px; color: var(--muted); font-size: 12px; background: rgba(255,255,255,.025); }
.connection-badge { justify-self: end; }
.connection-badge i { width: 7px; height: 7px; border-radius: 50%; background: #57606c; }
.connection-badge.connected { color: var(--cyan); border-color: rgba(36,245,210,.25); }.connection-badge.connected i { background: var(--cyan); box-shadow: 0 0 10px var(--cyan); animation: pulse 1.5s infinite; }
.connection-badge.connecting, .connection-badge.resolving, .connection-badge.reconnecting { color: var(--amber); }.connection-badge.connecting i, .connection-badge.resolving i, .connection-badge.reconnecting i { background: var(--amber); }
.connection-badge.watching { color: #bda5ff; border-color: rgba(169,132,255,.25); }.connection-badge.watching i { background: #a984ff; box-shadow: 0 0 9px rgba(169,132,255,.7); }

.panel { background: linear-gradient(145deg, #111823, #0c1119); border: 1px solid rgba(173,198,224,.12); border-radius: 16px; box-shadow: 0 18px 52px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.025); }
.hero { padding: 30px 36px 25px; position: relative; overflow: hidden; }
.hero::before { content: ""; position: absolute; width: 340px; height: 340px; right: -110px; top: -215px; border: 1px solid rgba(53,231,206,.1); border-radius: 50%; box-shadow: 0 0 0 42px rgba(53,231,206,.014), 0 0 0 84px rgba(53,231,206,.008); }
.hero::after { content: "LIVE"; position: absolute; right: 32px; top: 10px; color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.022); font-size: 102px; font-weight: 900; font-style: italic; letter-spacing: -.08em; pointer-events: none; }
.eyebrow { color: var(--cyan); font: 9px/1.2 ui-monospace, monospace; letter-spacing: .24em; margin-bottom: 11px; }
.hero h2 { font-size: clamp(32px, 3.5vw, 48px); line-height: 1.06; letter-spacing: -.045em; margin: 0; max-width: 720px; font-weight: 760; }
.hero h2 em { font-style: normal; color: var(--cyan); text-shadow: 0 0 28px rgba(36,245,210,.22); }
.hero-copy { margin: 14px 0 21px; color: #929ba8; font-size: 13px; line-height: 1.65; max-width: 720px; }
.connect-form { display: flex; gap: 10px; max-width: 1010px; position: relative; z-index: 1; }
.input-wrap { height: 48px; display: flex; align-items: center; gap: 12px; flex: 1; min-width: 280px; border: 1px solid rgba(255,255,255,.13); border-radius: 11px; background: #080d13; padding: 0 15px; transition: .2s; }
.input-wrap:focus-within { border-color: rgba(36,245,210,.6); box-shadow: inset 0 0 0 1px rgba(36,245,210,.12), 0 0 24px rgba(36,245,210,.06); }
.input-wrap svg, .search svg { width: 20px; fill: none; stroke: #596473; stroke-width: 1.6; }
input { color: var(--text); background: none; border: 0; outline: 0; font: inherit; }
.input-wrap input { width: 100%; font-size: 14px; }.input-wrap input::placeholder, .search input::placeholder { color: #505866; }
button { color: inherit; font: inherit; cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .38; }
.primary, .secondary { height: 48px; border-radius: 11px; padding: 0 22px; font-weight: 700; }
.primary { border: 0; background: linear-gradient(135deg, #51efd7, #25cfba); color: #06110f; min-width: 145px; display: flex; align-items: center; justify-content: center; gap: 24px; transition: .2s; }
.primary:hover { transform: translateY(-1px); box-shadow: 0 9px 30px rgba(36,245,210,.18); }.primary b { font-size: 20px; }
.secondary { background: transparent; border: 1px solid var(--line); color: #a9b0bb; }
.secondary.monitor-action { color: #bfa8ff; border-color: rgba(171, 133, 255, .28); }
.secondary.monitor-action:hover { color: #d6c7ff; background: rgba(171, 133, 255, .07); }
.status-line { display: flex; align-items: center; gap: 8px; margin-top: 12px; color: #717b88; font-size: 12px; min-height: 16px; }
.status-line i { width: 4px; height: 4px; background: #59616c; }.status-line.error { color: #ff7181; }.status-line.error i { background: #ff4257; }
.capability-row { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 13px; padding-top: 13px; border-top: 1px solid rgba(255,255,255,.06); }
.capability-row span { display: inline-flex; align-items: center; gap: 7px; padding: 6px 10px; border: 1px solid rgba(255,255,255,.07); border-radius: 99px; color: #778596; background: rgba(255,255,255,.018); font-size: 10px; }.capability-row i { width: 5px; height: 5px; border-radius: 50%; background: #5e6e7d; }

.feishu-panel { margin-top: 18px; padding: 0 26px; }
.feishu-panel summary { min-height: 64px; display: flex; align-items: center; justify-content: space-between; cursor: pointer; list-style: none; }
.feishu-panel summary::-webkit-details-marker { display: none; }
.feishu-panel summary > span { display: flex; align-items: baseline; gap: 14px; }
.feishu-panel summary b { font-size: 14px; }.feishu-panel summary small { color: #697481; font-size: 11px; font-weight: 400; }
.feishu-panel summary > i { color: #7f91aa; font-size: 11px; font-style: normal; }
.feishu-form { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; padding: 0 0 18px; border-top: 1px solid var(--line); padding-top: 18px; }
.feishu-form label { height: 58px; display: flex; flex-direction: column; justify-content: center; gap: 7px; padding: 0 13px; border: 1px solid var(--line); background: rgba(0,0,0,.18); }
.feishu-form label > span { color: #687380; font-size: 10px; }.feishu-form label input { width: 100%; font-size: 12px; }
.feishu-form .wide { grid-column: 1 / -1; }.feishu-form .feishu-switch { flex-direction: row; align-items: center; justify-content: flex-start; height: 46px; }
.feishu-switch input { accent-color: var(--cyan); }.feishu-form .primary { height: 46px; justify-self: end; }
.feishu-form .filter-switch { border-color: rgba(36,245,210,.2); }
.feishu-form .word-filter-field { height: auto; min-height: 112px; align-items: stretch; }
.word-filter-field textarea { min-height: 72px; resize: vertical; padding: 9px 10px; border: 1px solid var(--line); outline: 0; color: #c5cdd7; background: #0d1116; font: 12px/1.55 "Microsoft YaHei UI", sans-serif; }
.word-filter-field textarea:focus { border-color: rgba(36,245,210,.42); }
.feishu-quality-note { margin: -4px 0 10px; color: #8190a0; font-size: 10px; line-height: 1.6; }
.feishu-status { margin: -4px 0 18px; color: #6f7986; font-size: 11px; }.feishu-status[data-state="error"] { color: #ff7181; }.feishu-status[data-state="synced"], .feishu-status[data-state="ready"] { color: var(--cyan); }

.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 14px 0; }
.metric { overflow: hidden; background: linear-gradient(145deg, #101722, #0b1017); padding: 17px 21px; position: relative; min-height: 92px; border: 1px solid var(--line); border-radius: 14px; box-shadow: inset 0 1px 0 rgba(255,255,255,.02); }
.metric::after { content: ""; position: absolute; left: 0; bottom: 0; width: 38%; height: 2px; background: #8992a0; opacity: .28; }
.metric.cyan::after { background: var(--cyan); opacity: .8; }.metric.magenta::after { background: var(--magenta); opacity: .8; }.metric.lime::after { background: var(--lime); opacity: .8; }
.metric span { color: #76808d; font-size: 11px; display: block; }.metric strong { display: block; font: 600 27px/1.2 ui-monospace, Consolas, monospace; margin-top: 6px; letter-spacing: -.04em; }.metric small { position: absolute; right: 20px; top: 19px; color: #343b45; font: 8px ui-monospace, monospace; letter-spacing: .15em; }
.metric.cyan strong { color: var(--cyan); }.metric.magenta strong { color: #ff639e; }.metric.lime strong { color: var(--lime); }

.console { min-height: 520px; overflow: hidden; }
.console-head { display: flex; justify-content: space-between; align-items: center; padding: 24px 27px 20px; border-bottom: 1px solid var(--line); }
.console-head .eyebrow { margin: 0 0 7px; color: #65707e; }.console h3 { margin: 0; font-size: 18px; }.console h3 span { color: #596270; font-size: 11px; font-weight: 400; margin-left: 8px; }
.toolbar { display: flex; gap: 8px; align-items: center; }
.search { width: 220px; height: 37px; display: flex; align-items: center; gap: 9px; border: 1px solid var(--line); background: rgba(0,0,0,.2); padding: 0 11px; }.search svg { width: 16px; }.search input { width: 100%; font-size: 12px; }
.icon-button, .outline { height: 37px; border: 1px solid var(--line); background: rgba(255,255,255,.025); color: #8993a0; }.icon-button { width: 38px; }.icon-button.active { border-color: var(--amber); color: var(--amber); }
.outline { padding: 0 15px; min-width: 86px; }.outline:hover, .icon-button:hover { border-color: rgba(255,255,255,.22); color: #dce2ea; }
.export-wrap { position: relative; }.export-menu { display: none; position: absolute; z-index: 10; top: 42px; right: 0; width: 130px; border: 1px solid var(--line); background: #14181e; box-shadow: 0 14px 40px rgba(0,0,0,.5); }.export-menu.open { display: block; }.export-menu a { display: block; padding: 11px 14px; color: #aeb6c1; text-decoration: none; font-size: 12px; }.export-menu a:hover { color: var(--cyan); background: rgba(36,245,210,.06); }
.filters { display: flex; gap: 7px; padding: 16px 27px; border-bottom: 1px solid var(--line); }
.filter { border: 1px solid transparent; padding: 7px 11px; background: transparent; color: #727c89; font-size: 12px; }.filter span { color: #3f4752; margin-left: 4px; }.filter:hover { color: #b7bec8; }.filter.active { color: var(--cyan); border-color: rgba(36,245,210,.21); background: rgba(36,245,210,.055); }.filter.active span { color: var(--cyan); }
.history-bar { min-height: 58px; display: flex; align-items: center; gap: 13px; padding: 10px 27px; border-bottom: 1px solid var(--line); background: rgba(36,245,210,.018); }
.history-copy { flex: 1; min-width: 220px; }.history-copy strong, .history-copy span { display: block; }.history-copy strong { font-size: 12px; }.history-copy span { margin-top: 4px; color: #687380; font-size: 10px; }
.history-date { height: 37px; display: flex; align-items: center; gap: 8px; padding: 0 10px; border: 1px solid var(--line); color: #697481; font-size: 11px; }.history-date select { min-width: 118px; color: #c4ccd5; background: #10141a; border: 0; outline: 0; font: inherit; }
.history-backfill { min-width: 188px; color: var(--cyan); border-color: rgba(36,245,210,.25); }.history-backfill:not(:disabled):hover { background: rgba(36,245,210,.06); }
.history-delete { min-width: 112px; color: #ff7c8d; border-color: rgba(255,87,105,.28); }.history-delete:not(:disabled):hover { color: #ff9ba8; background: rgba(255,87,105,.07); }
.live-status-board { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 8px; padding: 12px 27px; border-bottom: 1px solid var(--line); background: rgba(0,0,0,.11); }.live-status-board.hidden { display: none; }
.live-state-card { min-height: 58px; display: grid; grid-template-columns: 9px minmax(120px, .8fr) minmax(150px, 1.2fr); align-items: center; gap: 11px; padding: 9px 12px; border: 1px solid var(--line); background: rgba(255,255,255,.018); }
.live-state-card > i { width: 8px; height: 8px; border-radius: 50%; background: #68727f; }.live-state-card > div { min-width: 0; }.live-state-card strong, .live-state-card span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.live-state-card strong { font-size: 12px; }.live-state-card span { margin-top: 4px; color: #7a8592; font-size: 10px; }.live-state-card small { color: #59636f; font-size: 10px; text-align: right; }
.live-state-card.live { border-color: rgba(36,245,210,.24); background: rgba(36,245,210,.035); }.live-state-card.live > i { background: var(--cyan); box-shadow: 0 0 10px var(--cyan); animation: pulse 1.5s infinite; }.live-state-card.live span { color: var(--cyan); }
.live-state-card.checking > i { background: var(--amber); animation: pulse 1.2s infinite; }.live-state-card.checking span { color: var(--amber); }
.rooms-bar { display: flex; align-items: center; gap: 13px; min-height: 55px; padding: 10px 27px; border-bottom: 1px solid var(--line); background: rgba(0,0,0,.13); }
.rooms-label { flex: 0 0 auto; color: #4f5864; font: 10px ui-monospace, monospace; letter-spacing: .13em; text-transform: uppercase; }
.room-tabs { display: flex; align-items: center; gap: 7px; overflow-x: auto; scrollbar-width: thin; }
.room-tab { flex: 0 0 auto; height: 32px; display: inline-flex; align-items: center; gap: 7px; border: 1px solid var(--line); background: rgba(255,255,255,.018); color: #78828e; padding: 0 10px; font-size: 11px; }
.room-tab > i { width: 6px; height: 6px; border-radius: 50%; background: #59616c; }
.room-tab[data-state="connected"] > i { background: var(--cyan); box-shadow: 0 0 8px var(--cyan); }
.room-tab[data-state="connecting"] > i, .room-tab[data-state="resolving"] > i, .room-tab[data-state="reconnecting"] > i { background: var(--amber); }
.room-tab[data-state="watching"] > i { background: #a984ff; box-shadow: 0 0 8px rgba(169,132,255,.7); }
.room-tab[data-state="checking"] > i { background: #73a7ff; animation: pulse 1.2s infinite; }
.room-tab.active { color: var(--cyan); border-color: rgba(36,245,210,.28); background: rgba(36,245,210,.055); }
.room-tab span { color: #4c5662; font-family: ui-monospace, monospace; }
.room-tab .room-delete { margin-left: 3px; padding-left: 7px; border-left: 1px solid var(--line); color: #69737f; font-size: 10px; line-height: 1; }
.room-tab .room-delete:hover { color: #ff6e80; }
.table-head, .event-row { display: grid; grid-template-columns: 174px 132px 76px minmax(140px, .7fr) minmax(300px, 2.2fr); align-items: center; column-gap: 12px; }
.table-head { color: #49515d; font: 10px ui-monospace, monospace; letter-spacing: .12em; padding: 12px 27px; border-bottom: 1px solid var(--line); }
.event-list { height: 440px; overflow: auto; scrollbar-color: #313943 transparent; contain: layout paint style; }
.event-row { min-height: 52px; padding: 9px 27px; border-bottom: 1px solid rgba(255,255,255,.045); font-size: 13px; contain: layout paint style; content-visibility: auto; contain-intrinsic-size: 52px; }.event-row:hover { background: rgba(255,255,255,.025); }.event-row.hidden { display: none; }
.event-time { display: flex; align-items: center; gap: 7px; color: #5f6976; font: 11px ui-monospace, monospace; white-space: nowrap; }.event-row.historical .event-time::after { content: "历史"; padding: 2px 4px; border: 1px solid rgba(169,132,255,.32); color: #bda5ff; font: 9px/1.1 "Microsoft YaHei UI", sans-serif; }.event-type { width: fit-content; padding: 4px 7px; border: 1px solid currentColor; color: #76808d; font-size: 10px; letter-spacing: .05em; }.event-user { color: #c8ced6; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.event-content { color: #8d96a3; overflow-wrap: anywhere; }.event-row[data-type="chat"] .event-type { color: var(--cyan); }.event-row[data-type="gift"] .event-type { color: var(--magenta); }.event-row[data-type="like"] .event-type { color: #ffca55; }.event-row[data-type="member"] .event-type { color: #77a9ff; }.event-row[data-type="social"] .event-type, .event-row[data-type="fansclub"] .event-type { color: var(--lime); }.event-row[data-type="lifecycle"] { background: rgba(169,132,255,.04); }.event-row[data-type="lifecycle"] .event-type { color: #bda5ff; }
.event-room { color: #65707d; font: 10px ui-monospace, monospace; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.empty-state { height: 100%; min-height: 330px; display: flex; align-items: center; justify-content: center; flex-direction: column; color: #4f5864; }.empty-state strong { color: #7c8693; font-size: 14px; margin-top: 16px; }.empty-state span { font-size: 12px; margin-top: 7px; }
.radar { width: 72px; height: 72px; border: 1px solid #26303a; border-radius: 50%; position: relative; background: radial-gradient(circle, transparent 31%, #202932 32%, transparent 34%, transparent 64%, #202932 65%, transparent 67%); overflow: hidden; }.radar::before, .radar::after { content: ""; position: absolute; background: #202932; }.radar::before { width: 1px; height: 100%; left: 50%; }.radar::after { height: 1px; width: 100%; top: 50%; }.radar i { position: absolute; width: 50%; height: 50%; left: 50%; top: 0; transform-origin: 0 100%; background: linear-gradient(35deg, rgba(36,245,210,.2), transparent 70%); animation: scan 2.7s linear infinite; }.radar b { position: absolute; width: 4px; height: 4px; border-radius: 50%; background: var(--cyan); left: 49px; top: 25px; box-shadow: 0 0 10px var(--cyan); animation: blink 1.4s infinite; }
.analytics-panel { padding: 28px; min-height: 680px; }
.analytics-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; padding: 4px 2px 24px; border-bottom: 1px solid var(--line); }
.analytics-head .eyebrow { margin-bottom: 8px; }.analytics-head h2 { margin: 0; font-size: 26px; letter-spacing: -.03em; }.analytics-head p { max-width: 650px; margin: 8px 0 0; color: #74808e; font-size: 12px; line-height: 1.65; }
.analytics-controls { display: flex; align-items: flex-end; gap: 9px; }
.analytics-controls label { display: flex; flex-direction: column; gap: 7px; color: #687481; font-size: 9px; letter-spacing: .08em; white-space: nowrap; }
.analytics-controls select { min-width: 132px; height: 40px; padding: 0 30px 0 11px; color: #c9d2dc; border: 1px solid var(--line); border-radius: 9px; outline: 0; background: #0b1118; font: 11px inherit; }
.analytics-controls label:nth-child(2) select { min-width: 175px; }
.analytics-controls .primary { height: 40px; min-width: 110px; border-radius: 9px; padding: 0 16px; font-size: 11px; }
.analytics-loading { min-height: 430px; display: grid; place-items: center; color: #687481; font-size: 12px; }
.analytics-content.hidden { display: none; }
.analytics-metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; padding: 18px 0; }
.analytics-metrics article { position: relative; min-height: 104px; padding: 18px 20px; overflow: hidden; border: 1px solid var(--line); border-radius: 13px; background: linear-gradient(145deg, rgba(17,25,36,.96), rgba(10,15,22,.96)); }
.analytics-metrics article::after { content: ""; position: absolute; inset: auto 0 0; height: 2px; width: 42%; background: #728091; opacity: .45; }.analytics-metrics article.quality::after { background: var(--cyan); opacity: .85; }.analytics-metrics article.intent::after { background: var(--magenta); opacity: .85; }
.analytics-metrics span { display: block; color: #74808d; font-size: 11px; }.analytics-metrics strong { display: block; margin-top: 9px; color: #edf5fb; font: 600 29px/1 ui-monospace, Consolas, monospace; }.analytics-metrics small { position: absolute; right: 18px; top: 19px; color: #46515f; font-size: 8px; letter-spacing: .08em; }.analytics-metrics .quality strong { color: var(--cyan); }.analytics-metrics .intent strong { color: var(--magenta); }
.analytics-grid { display: grid; grid-template-columns: 1.35fr 1fr; gap: 10px; }
.insight-card { min-height: 310px; padding: 19px 20px; border: 1px solid var(--line); border-radius: 13px; background: #0c121a; }
.insight-card > header { min-height: 40px; display: flex; justify-content: space-between; gap: 18px; border-bottom: 1px solid rgba(255,255,255,.055); }.insight-card header strong, .insight-card header span { display: block; }.insight-card header strong { font-size: 13px; }.insight-card header span { margin-top: 5px; color: #5f6b79; font-size: 9px; }.insight-card header > small { color: var(--cyan); font: 9px ui-monospace, monospace; }
.trend-chart { height: 222px; display: grid; grid-template-columns: repeat(12, minmax(18px, 1fr)); align-items: end; gap: 8px; padding-top: 24px; }
.trend-bar { height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 7px; min-width: 0; }.trend-bar i { display: block; width: min(24px, 76%); min-height: 3px; border-radius: 4px 4px 1px 1px; background: linear-gradient(180deg, #4eead3, rgba(53,231,206,.3)); box-shadow: 0 0 14px rgba(53,231,206,.08); }.trend-bar b { color: #9eabb8; font: 8px ui-monospace, monospace; }.trend-bar span { color: #4f5b68; font: 8px ui-monospace, monospace; white-space: nowrap; }
.rank-list { padding-top: 12px; }.rank-item { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; gap: 9px; min-height: 23px; }.rank-item > i { color: #4d5967; font: 9px ui-monospace, monospace; font-style: normal; }.rank-item > div { min-width: 0; }.rank-item span { display: block; overflow: hidden; color: #aab4bf; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }.rank-item em { display: block; height: 2px; margin-top: 4px; background: linear-gradient(90deg, var(--cyan), rgba(53,231,206,.08)); }.rank-item b { color: #63707e; font: 9px ui-monospace, monospace; }
.topic-list { display: grid; gap: 8px; padding-top: 12px; }.topic-item { padding: 9px 10px; border: 1px solid rgba(255,255,255,.05); border-radius: 8px; background: rgba(255,255,255,.016); }.topic-head { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto auto; align-items: center; gap: 9px; }.topic-head > i { color: #4d5967; font: 9px ui-monospace, monospace; font-style: normal; }.topic-head > span { overflow: hidden; color: #c5d0da; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }.topic-head > em { color: #5f6b79; font: 9px ui-monospace, monospace; font-style: normal; white-space: nowrap; }.topic-head > b { color: var(--cyan); font: 11px ui-monospace, monospace; }.topic-samples { display: -webkit-box; margin: 6px 0 0; overflow: hidden; color: #6c7887; font-size: 9px; line-height: 1.5; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.quality-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; padding: 16px 0; }.quality-list > div { padding: 11px; border: 1px solid rgba(255,255,255,.055); background: rgba(255,255,255,.018); }.quality-list span, .quality-list strong { display: block; }.quality-list span { color: #64717f; font-size: 9px; }.quality-list strong { margin-top: 7px; color: #c9d3dc; font: 15px ui-monospace, monospace; }
.length-distribution { display: flex; height: 7px; margin: 0 0 14px; overflow: hidden; border-radius: 7px; background: #1a232d; }.length-distribution i { min-width: 2px; height: 100%; }.length-distribution i:nth-child(1) { background: #35e7ce; }.length-distribution i:nth-child(2) { background: #8f72ff; }.length-distribution i:nth-child(3) { background: #ff5b9e; }
.room-share-list { display: grid; gap: 7px; }.room-share { display: grid; grid-template-columns: minmax(80px, 1fr) 2fr auto; align-items: center; gap: 9px; }.room-share span { overflow: hidden; color: #788594; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }.room-share i { height: 4px; border-radius: 3px; background: #202b36; overflow: hidden; }.room-share i::after { content: ""; display: block; width: var(--share); height: 100%; background: #8e75ff; }.room-share b { color: #576473; font: 8px ui-monospace, monospace; }
.intent-list { display: grid; gap: 11px; padding-top: 16px; }.intent-item { display: grid; grid-template-columns: 86px 1fr 46px; align-items: center; gap: 10px; }.intent-item span { color: #84909d; font-size: 10px; }.intent-item i { height: 7px; overflow: hidden; border-radius: 6px; background: #1b2530; }.intent-item i::after { content: ""; display: block; width: var(--intent); height: 100%; background: linear-gradient(90deg, #8f72ff, #d260ff); }.intent-item b { color: #9d8cff; font: 9px ui-monospace, monospace; text-align: right; }
.recommendation-list { display: grid; gap: 9px; margin: 15px 0 0; padding: 0; list-style: none; counter-reset: advice; }.recommendation-list li { position: relative; padding: 9px 10px 9px 34px; color: #929eaa; border: 1px solid rgba(255,255,255,.05); background: rgba(255,255,255,.016); font-size: 10px; line-height: 1.55; counter-increment: advice; }.recommendation-list li::before { content: counter(advice); position: absolute; left: 10px; top: 9px; width: 15px; height: 15px; display: grid; place-items: center; border-radius: 50%; color: #08110f; background: var(--cyan); font: 8px ui-monospace, monospace; }
.question-block { margin-top: 14px; }.question-block > span { color: #566371; font-size: 9px; }.question-list { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }.question-list span { max-width: 100%; overflow: hidden; padding: 5px 8px; color: #9ba7b3; border: 1px solid rgba(53,231,206,.11); border-radius: 99px; background: rgba(53,231,206,.025); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.talk-script-panel { grid-column: 1 / -1; margin-top: 10px; padding: 22px; border: 1px solid rgba(53,231,206,.16); border-radius: 14px; background: linear-gradient(145deg, rgba(15,27,35,.98), rgba(10,16,24,.98)); }
.talk-script-panel > header { display: flex; justify-content: space-between; align-items: center; gap: 20px; }.talk-script-panel .eyebrow { margin-bottom: 6px; }.talk-script-panel h3 { margin: 0; font-size: 17px; }.talk-script-panel header p { margin: 6px 0 0; color: #667482; font-size: 10px; }
.auto-script { display: flex; align-items: center; gap: 8px; color: #8c9aa8; font-size: 10px; }.auto-script input { accent-color: var(--cyan); }
.talk-settings { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 17px; }.talk-settings label { display: flex; flex-direction: column; gap: 7px; min-width: 0; padding: 10px 12px; border: 1px solid var(--line); border-radius: 9px; background: #090f16; }.talk-settings span { color: #5e6b79; font-size: 9px; }.talk-settings input { width: 100%; color: #c7d1dc; font-size: 11px; }.talk-settings input::placeholder { color: #3f4a56; }
.talk-actions { display: flex; align-items: center; gap: 8px; margin-top: 10px; }.talk-actions .primary { height: 38px; min-width: 142px; padding: 0 15px; font-size: 10px; }.talk-actions .outline { height: 38px; }.talk-actions > span { margin-left: auto; color: #52606e; font-size: 9px; }
.talk-script-panel textarea { width: 100%; min-height: 230px; margin-top: 10px; padding: 16px 18px; resize: vertical; color: #b9c6d1; border: 1px solid var(--line); border-radius: 10px; outline: 0; background: #080d13; font: 12px/1.85 "Microsoft YaHei UI", sans-serif; }
.talk-script-panel textarea:focus { border-color: rgba(53,231,206,.3); }
.analytics-empty { min-height: 190px; display: grid; place-items: center; color: #596674; font-size: 11px; }
.analytics-updated { margin: 14px 2px 0; color: #4d5966; font-size: 9px; text-align: right; }
.transcript-panel { padding: 28px; min-height: 680px; }
.transcript-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding-bottom: 22px; border-bottom: 1px solid var(--line); }.transcript-head .eyebrow { margin-bottom: 8px; }.transcript-head h2 { margin: 0; font-size: 26px; letter-spacing: -.03em; }.transcript-head p { max-width: 610px; margin: 8px 0 0; color: #74808e; font-size: 12px; }
.transcript-actions { display: flex; align-items: flex-end; gap: 8px; }.transcript-actions label { display: flex; flex-direction: column; gap: 6px; color: #63707e; font-size: 9px; }.transcript-actions select { min-width: 170px; height: 40px; padding: 0 10px; color: #c9d2dc; border: 1px solid var(--line); border-radius: 9px; background: #0b1118; }.transcript-actions .primary, .transcript-actions .outline { height: 40px; min-width: 90px; border-radius: 9px; padding: 0 14px; font-size: 10px; }
.capture-guide { display: flex; align-items: center; gap: 13px; margin: 16px 0 10px; padding: 11px 13px; border: 1px solid rgba(255,191,75,.13); border-radius: 9px; background: rgba(255,191,75,.025); }.capture-guide strong { flex: 0 0 auto; color: var(--amber); font-size: 10px; }.capture-guide span { color: #778390; font-size: 10px; line-height: 1.6; }
.capture-guide.auto { border-color: rgba(53,231,206,.18); background: rgba(53,231,206,.035); }.capture-guide.auto strong { color: var(--cyan); }
.auto-transcript-board { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 8px; margin: 10px 0; }.auto-transcript-card { min-width: 0; display: grid; grid-template-columns: 8px minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 10px; background: #0a1017; }.auto-transcript-card > i { width: 7px; height: 7px; border-radius: 50%; background: #586574; }.auto-transcript-card > div { min-width: 0; }.auto-transcript-card strong,.auto-transcript-card span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.auto-transcript-card strong { color: #b8c4cf; font-size: 10px; }.auto-transcript-card span { margin-top: 4px; color: #687583; font-size: 9px; }.auto-transcript-card small { color: #54616e; font: 8px ui-monospace,monospace; white-space: nowrap; }.auto-transcript-card.active { border-color: rgba(53,231,206,.23); background: rgba(53,231,206,.035); }.auto-transcript-card.active > i { background: var(--cyan); box-shadow: 0 0 9px var(--cyan); animation: pulse 1.4s infinite; }.auto-transcript-card.retrying > i,.auto-transcript-card.unavailable > i { background: #ff5b70; }.auto-transcript-empty { grid-column: 1/-1; padding: 18px; color: #596675; border: 1px dashed var(--line); border-radius: 10px; text-align: center; font-size: 10px; }
.transcript-status-row { display: flex; justify-content: space-between; gap: 20px; padding: 9px 3px 15px; color: #64717f; font-size: 10px; }.transcript-status-row > span:first-child { display: inline-flex; align-items: center; gap: 7px; }.transcript-status-row i { width: 7px; height: 7px; border-radius: 50%; background: #586574; }.transcript-status-row [data-state="recording"] { color: var(--cyan); }.transcript-status-row [data-state="recording"] i { background: var(--cyan); box-shadow: 0 0 9px var(--cyan); animation: pulse 1.4s infinite; }.transcript-status-row [data-state="error"] { color: #ff7181; }.transcript-status-row [data-state="error"] i { background: #ff5b70; }
.transcript-workspace { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }.live-transcript-card, .transcript-history-card { min-height: 390px; overflow: hidden; border: 1px solid var(--line); border-radius: 13px; background: #0a1017; }.live-transcript-card > header, .transcript-history-card > header { height: 48px; display: flex; align-items: center; justify-content: space-between; padding: 0 16px; border-bottom: 1px solid var(--line); }.live-transcript-card header strong, .transcript-history-card header strong { font-size: 12px; }.live-transcript-card header span { color: #3f4c59; font: 8px ui-monospace, monospace; letter-spacing: .15em; }.transcript-history-card header button { border: 0; color: #596675; background: none; font-size: 9px; }.transcript-history-card header button:hover { color: #aeb8c3; }
.transcript-live { height: 292px; overflow-y: auto; padding: 15px; }.transcript-live p { margin: 0; color: #596675; font-size: 11px; line-height: 1.7; }.transcript-live .speech-line { margin: 0 0 10px; padding: 10px 12px; color: #b8c4cf; border-left: 2px solid var(--cyan); background: rgba(53,231,206,.025); font-size: 12px; line-height: 1.7; }.speech-line time { display: block; margin-bottom: 4px; color: #4e5c69; font: 8px ui-monospace, monospace; }
.transcript-interim { min-height: 48px; padding: 10px 16px; color: #72808d; border-top: 1px solid var(--line); font-size: 11px; font-style: italic; }
.transcript-head { flex-wrap: wrap; }
.transcript-actions { flex-wrap: wrap; }
.transcript-actions input { height: 40px; padding: 0 10px; color: #c9d2dc; border: 1px solid var(--line); border-radius: 9px; background: #0b1118; color-scheme: dark; }
.auto-transcript-board { grid-template-columns: repeat(auto-fit,minmax(290px,1fr)); }
.auto-transcript-card small { display: block; margin-top: 7px; white-space: normal; line-height: 1.6; color: #8594a5; font-size: 10px; }
.auto-transcript-card strong { font-size: 12px; }
.auto-transcript-card span { font-size: 11px; }
.auto-transcript-card.paused { border-color: #8d713d; background: rgba(255,194,87,.035); }
.auto-transcript-card.paused > i, .transcript-status-row [data-state="paused"] i { background: #f3c675; animation: none; }
.transcript-status-row [data-state="paused"] { color: #f3c675; }
.transcript-toggle { border: 1px solid #3c4b5c; border-radius: 8px; background: #17212c; color: #d8e3ec; padding: 7px 11px; white-space: nowrap; font-size: 12px; }
.transcript-toggle:hover { border-color: var(--cyan); }
.transcript-history-actions { display: flex; gap: 12px; }
.transcript-history-card header .danger-text { color: #f3939e; }
.transcript-list .transcript-item { grid-template-columns: 94px minmax(0,1fr) 36px; }
.transcript-remove { align-self: start; padding: 3px 0; background: none; border: none; color: #ed8c99; font-size: 11px; }
.transcript-remove:hover { color: #ffd0d8; }
.transcript-list .transcript-item p { font-size: 12px; }
.transcript-list { height: 342px; overflow-y: auto; }.transcript-item { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 12px; padding: 11px 15px; border-bottom: 1px solid rgba(255,255,255,.045); }.transcript-item time { color: #53616f; font: 8px/1.5 ui-monospace, monospace; }.transcript-item strong, .transcript-item p { display: block; margin: 0; }.transcript-item strong { color: #788694; font-size: 9px; }.transcript-item p { margin-top: 4px; color: #aab5c0; font-size: 11px; line-height: 1.6; }.transcript-empty { min-height: 260px; display: grid; place-items: center; color: #4d5a67; font-size: 10px; }
.manual-transcript { display: grid; grid-template-columns: 1fr auto; gap: 9px; margin-top: 10px; }.manual-transcript label { display: flex; flex-direction: column; gap: 7px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: #090f16; }.manual-transcript label span { color: #5e6b79; font-size: 9px; }.manual-transcript textarea { min-height: 70px; resize: vertical; color: #bdc8d2; border: 0; outline: 0; background: transparent; font: 11px/1.6 inherit; }.manual-transcript .primary { align-self: stretch; height: auto; min-width: 110px; }
.manual-capture-fallback { margin-top: 10px; color: #64717f; border: 1px solid var(--line); border-radius: 10px; background: #090f16; font-size: 10px; }.manual-capture-fallback summary { padding: 12px 14px; cursor: pointer; }.manual-capture-fallback > div { display: flex; gap: 8px; padding: 0 14px 14px; }.manual-capture-fallback button { height: 36px; }
footer { display: flex; justify-content: space-between; color: #444c57; font-size: 10px; padding: 18px 3px; }
.toast { position: fixed; right: 28px; bottom: 28px; max-width: 420px; padding: 13px 17px; border-radius: 12px; background: #18202a; border: 1px solid rgba(255,87,105,.45); color: #ff9aaa; font-size: 12px; transform: translateY(30px); opacity: 0; pointer-events: none; transition: .25s; box-shadow: 0 15px 50px rgba(0,0,0,.5); }.toast.show { transform: translateY(0); opacity: 1; }
@keyframes pulse { 50% { opacity: .35; box-shadow: 0 0 3px var(--cyan); } }
@keyframes scan { to { transform: rotate(360deg); } }
@keyframes blink { 50% { opacity: .2; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }
@media (max-width: 1180px) { .shell { width: calc(100% - 28px); }.topbar { grid-template-columns: auto 1fr auto; }.module-nav { justify-self: center; }.hero { padding: 28px; }.console-head { align-items: flex-start; gap: 18px; }.toolbar { flex-wrap: wrap; justify-content: flex-end; }.search { width: 190px; } }
@media (max-width: 860px) {
  .shell { width: calc(100% - 20px); }
  .topbar { min-height: 68px; }
  .topbar { grid-template-columns: 1fr auto; padding: 11px 0; row-gap: 9px; }
  .module-nav { grid-column: 1 / -1; grid-row: 2; width: 100%; justify-content: center; }
  .module-nav > button { flex: 1; justify-content: center; }
  .brand p { display: none; }
  .hero { padding: 24px 20px 20px; }
  .hero::after { display: none; }
  .hero h2 { font-size: 32px; }
  .connect-form { display: grid; grid-template-columns: 1fr 1fr; }
  .input-wrap { grid-column: 1 / -1; min-width: 0; }
  .connect-form .primary, .connect-form .secondary { min-width: 0; padding: 0 12px; }
  .metric-grid { grid-template-columns: repeat(2, 1fr); }
  .console-head { padding: 20px; flex-direction: column; }
  .toolbar { width: 100%; justify-content: flex-start; }
  .search { flex: 1; }
  .filters, .rooms-bar, .live-status-board { padding-left: 20px; padding-right: 20px; overflow-x: auto; }
  .history-bar { align-items: stretch; flex-wrap: wrap; padding: 12px 20px; }
  .history-copy { flex-basis: 100%; }
  .table-head, .event-row { min-width: 850px; }
  .event-list, .console { overflow-x: auto; }
  .analytics-head { align-items: stretch; flex-direction: column; }.analytics-controls { flex-wrap: wrap; }.analytics-controls label { flex: 1; }.analytics-controls select { width: 100%; }.analytics-metrics { grid-template-columns: repeat(2, 1fr); }.analytics-grid { grid-template-columns: 1fr; }.trend-chart { gap: 4px; }
  .talk-settings { grid-template-columns: repeat(2, 1fr); }.talk-script-panel > header { align-items: flex-start; flex-direction: column; }.talk-actions { flex-wrap: wrap; }.talk-actions > span { width: 100%; margin-left: 0; }
  .transcript-head { align-items: stretch; flex-direction: column; }.transcript-actions { flex-wrap: wrap; }.transcript-actions label { flex: 1 1 100%; }.transcript-actions select { width: 100%; }.transcript-workspace { grid-template-columns: 1fr; }.manual-transcript { grid-template-columns: 1fr; }.manual-transcript .primary { min-height: 42px; }
  footer { flex-direction: column; gap: 6px; }
}

/* Speech studio: reading and editing are separated from the raw transcript stream. */
.transcript-panel [hidden] { display: none !important; }
.speech-monitor-controls, .speech-settings { margin: 14px 0; padding: 14px 18px; border: 1px solid var(--line); border-radius: 12px; background: #0c131c; }
.speech-monitor-controls summary, .speech-settings summary { cursor: pointer; font-size: 12px; color: #a8b8c9; }
.speech-tabs, .speech-button-row, .speech-filters { display: flex; gap: 9px; align-items: center; flex-wrap: wrap; }
.speech-tabs { padding: 12px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.speech-tabs button, .speech-block button, .speech-editor header button { padding: 9px 13px; border: 1px solid #2b3c4e; border-radius: 8px; color: #c3cfdd; background: #131f2c; font-size: 12px; cursor: pointer; }
.speech-tabs button.active { color: var(--cyan); border-color: #287266; background: #12302f; }
.speech-tabs #speechRefresh { margin-left: auto; }
.speech-note { color: #8f9db0; font-size: 12px; line-height: 1.8; }
.speech-settings-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin-top: 18px; }
.speech-settings-grid label, .speech-editor label, .speech-filters label { display: flex; flex-direction: column; gap: 8px; color: #a5b6c9; font-size: 12px; }
.speech-wide { grid-column: 1 / -1; }
.speech-settings-grid textarea, .speech-settings-grid input, .speech-editor input, .speech-editor textarea, .speech-filters input, .speech-filters select { width: 100%; padding: 10px 12px; border: 1px solid #2b3c4e; border-radius: 8px; background: #080f18; color: #d9e3f0; font-family: inherit; font-size: 13px; line-height: 1.8; }
.speech-settings-grid textarea, .speech-editor textarea { resize: vertical; font-family: inherit; font-size: 13px; line-height: 1.85; }
.speech-metrics { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; margin: 22px 0 14px; }
.speech-metrics > div { padding: 18px; border: 1px solid #26384a; border-radius: 12px; background: linear-gradient(120deg,#122230,#101824); }
.speech-metrics span { display: block; color: #9fb2c6; font-size: 11px; }.speech-metrics strong { display: block; margin-top: 8px; font: 28px/1.2 ui-monospace,monospace; color: #e0eaf4; }
.speech-review { border-left: 2px solid #367969; padding: 12px 16px; background: #101c26; border-radius: 0 10px 10px 0; margin-bottom: 18px; }
.speech-review ul { margin: 8px 0 0; padding-left: 18px; font-size: 12px; line-height: 1.9; color: #b3c3d3; }
.speech-category-summary { display: flex; flex-wrap: wrap; gap: 8px 17px; color: #a7bbcf; font-size: 12px; }.speech-category-summary b { margin-left: 4px; color: #70d5c6; }
.speech-filters { margin: 18px 0; align-items: flex-end; }.speech-filters label:last-child { flex: 1; min-width: 190px; }
.speech-blocks { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: 14px; }
.speech-block { min-width: 0; padding: 22px; border: 1px solid #26384a; border-radius: 14px; background: #0d1621; }
.speech-block header { display: flex; justify-content: space-between; gap: 12px; align-items: start; }
.speech-block header strong { font-size: 15px; color: #e0e9f4; }.speech-block small { display: block; margin-top: 5px; font-size: 10px; line-height: 1.7; color: #8d9daf; }
.speech-badge { flex-shrink: 0; border: 1px solid #305950; border-radius: 6px; padding: 5px 7px; color: #8ecbbd; font-size: 10px; }.speech-badge.pending { color: #e3ba74; border-color: #6b5739; }
.speech-tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 16px; }.speech-tags span { padding: 4px 8px; border-radius: 5px; background: #1c2c3f; color: #a7c7e8; font-size: 11px; }
.speech-paragraph { white-space: pre-wrap; overflow-wrap: anywhere; margin: 16px 0; font-size: 14px; line-height: 1.95; color: #d0dce9; }
.speech-checks { display: flex; flex-wrap: wrap; gap: 7px; margin: 12px 0; }.speech-checks span { color: #d7b780; background: #30271a; border-radius: 4px; padding: 4px 7px; font-size: 10px; }
.speech-risk { padding: 12px; background: #332127; border-radius: 8px; color: #edb4bb; font-size: 12px; line-height: 1.7; margin: 10px 0; }.speech-risk p { margin: 5px 0 0; }
.speech-block details { margin: 14px 0; border-top: 1px solid #243244; padding-top: 12px; }.speech-block summary { color: #99b2c9; font-size: 12px; cursor: pointer; }
.speech-fragment { padding: 12px 0; border-bottom: 1px solid #223043; }.speech-fragment p { color: #bfcddb; font-size: 12px; line-height: 1.8; overflow-wrap: anywhere; }
.speech-question { color: #b3c9df; font-size: 12px; line-height: 1.8; }
.speech-block .speech-button-row { margin-top: 16px; }.speech-block .primary { color: #091d1a; background: #71d9c4; border-color: #71d9c4; }
.speech-empty { grid-column: 1/-1; padding: 40px 22px; border: 1px dashed #304152; border-radius: 12px; text-align: center; color: #99aec2; font-size: 13px; line-height: 1.8; }
.audience-review-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:16px 0; }.audience-review-grid>section{padding:14px;border:1px solid #27394b;border-radius:10px}.audience-review-grid h4{margin:0 0 10px}.audience-review-grid article{padding:10px 0;border-top:1px solid #253649}.audience-review-grid article:first-of-type{border-top:0}.audience-review-grid article span{display:block;margin-top:4px;font-size:11px}.audience-review-grid article p{margin:6px 0 0;font-size:12px;line-height:1.7}
.audience-impact{margin:14px 0;padding:13px 15px;border-left:3px solid #70849a;border-radius:7px;background:#111d28}.audience-impact>div{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.audience-impact strong{font-size:13px}.audience-impact span,.audience-impact small{font-size:10px;color:#90a3b6}.audience-impact p{margin:7px 0 4px;font-size:12px;line-height:1.75}.audience-impact.rise{border-color:#42a77f}.audience-impact.fall{border-color:#cf727e}.audience-impact.insufficient{opacity:.78}.speech-product-head{display:flex;justify-content:space-between;align-items:end;gap:18px;margin:20px 0}.speech-product-head h3{margin:0}.speech-product-head p{margin:5px 0 0}.speech-product-head label{display:flex;flex-direction:column;gap:7px;min-width:280px;font-size:12px}.speech-product-head input{padding:10px 12px;border:1px solid #2b3c4e;border-radius:8px;background:#080f18;color:#d9e3f0}.speech-badge.rise{color:#60b893;border-color:#60b893}.speech-badge.fall{color:#cf727e;border-color:#cf727e}
.speech-editor { border: 1px solid #4c9281; padding: 22px; border-radius: 14px; background: #12212c; margin: 18px 0; }.speech-editor header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }.speech-editor h3 { margin: 0; font-size: 18px; }.speech-editor label { margin: 13px 0; }.speech-editor label.speech-checkbox { flex-direction: row; align-items: center; }.speech-checkbox input { width: auto; }
#speechMore { margin-top: 20px; }
@media (max-width: 1150px) { .speech-blocks { grid-template-columns: 1fr; } }
@media (max-width: 680px) { .speech-settings-grid { grid-template-columns: 1fr; }.speech-metrics { grid-template-columns: repeat(2,1fr); }.speech-block { padding: 16px; }.speech-block header { flex-direction: column; }.speech-tabs #speechRefresh { margin-left: 0; }.audience-review-grid{grid-template-columns:1fr}.speech-product-head{align-items:stretch;flex-direction:column}.speech-product-head label{min-width:0} }
}

/* light-theme.css */
:root{--bg:#f5f7fa;--panel:#fff;--panel-solid:#fff;--line:#dfe6ed;--muted:#617287;--text:#233449;--cyan:#157d71;--magenta:#ae4377;--lime:#4e792d;--amber:#9c6718}
html{color-scheme:light;background:var(--bg)}body{background:var(--bg);color:var(--text)}body::before,.hero::before,.hero::after{display:none}
select,option{background:#fff;color:var(--text)}
body :is(p,span,small,strong,b,label,li,summary,select,textarea,input,h1,h2,h3,h4,time,a,button){color:var(--text)}
body *{border-color:var(--line);text-shadow:none;box-shadow:none}body [hidden]{display:none!important}
button,input,textarea,select{font-family:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #91c5e4;outline-offset:3px}
.shell{width:min(1480px,calc(100% - 56px))}.topbar{min-height:92px}.brand h1{font-size:21px;letter-spacing:.02em}.brand p,.eyebrow{color:var(--cyan)}
.brand-mark{background:#e5f3f0;border-color:#bfddd7}.brand-mark span{background:var(--cyan);box-shadow:none}
.panel{background:white;border:1px solid var(--line);border-radius:20px;box-shadow:0 6px 24px #20354905}.hero{padding:32px 36px}.hero h2{font-size:38px;line-height:1.3}.hero h2 em{color:var(--cyan)}
.hero-copy,.status-line,.status-line span,.capture-guide span,.transcript-head p,.analytics-head p,.daily-method,.speech-note{color:var(--muted);font-size:13px;line-height:1.85}
.module-nav{background:#fff;border-color:var(--line);padding:6px}.module-nav button{font-size:13px;height:39px;color:#62718a}.module-nav button.active{color:#126c60;background:#e7f3ef}.module-nav button:hover{background:#f2f6f8;color:var(--text)}.module-nav small{background:#e7f3ef;color:#126c60}
.connection-badge{background:#fff;border-color:var(--line)}.connection-badge.connected{color:var(--cyan)}.connection-badge.watching{color:#765ca5}
.input-wrap,.search,.history-date,.history-date select,.export-menu,.talk-settings label,.feishu-form label,.word-filter-field textarea,.transcript-actions select,.transcript-actions input,.manual-transcript label,.manual-capture-fallback{background:#fff;color:var(--text)}
input::placeholder,textarea::placeholder{color:#7d8d9f}.transcript-actions input{color-scheme:light}
.primary,.speech-block .primary{background:#157d71;color:#fff;border-color:#157d71;box-shadow:none}.primary:hover,.speech-block .primary:hover{background:#126d63;box-shadow:none;transform:none}
.outline,.secondary,.icon-button,.speech-tabs button,.speech-block button,.speech-editor header button,.transcript-toggle{background:#fff;color:#40546b;border:1px solid #d8e2e9;border-radius:9px}.outline:hover,.secondary:hover,.icon-button:hover,.speech-block button:hover{background:#f1f6f9;color:#245876;border-color:#a9c8d8}.secondary.monitor-action{color:#645094}.secondary.monitor-action:hover{background:#f3f0fa;color:#645094}
.metric,.analytics-metrics article,.speech-metrics>div{background:#fff;border-color:var(--line);border-radius:14px}.metric strong,.speech-metrics strong,.analytics-metrics strong{color:#193c53}.metric span,.metric small,.analytics-metrics small,.speech-metrics span{color:var(--muted)}.metric.cyan strong,.analytics-metrics .quality strong{color:var(--cyan)}.metric.magenta strong{color:var(--magenta)}.metric.lime strong{color:var(--lime)}
.capability-row span,.filter,.room-tab,.question-list span,.length-distribution,.rank-index{background:#f4f7fa;color:#52687a}.filter.active,.room-tab.active{background:#e9f5f1;color:var(--cyan);border-color:#beddd5}.filter span,.room-tab span{color:var(--muted)}
.history-bar,.rooms-bar,.live-status-board,.table-head{background:#f7f9fb}.table-head,.event-time,.event-room,.history-copy span{color:#64758a}.event-user,.event-content{color:#34465b}.event-row{border-bottom-color:#edf1f5}.event-row:hover{background:#f5f9fa}.event-row.historical .event-time::after{color:#756291;border-color:#d9cfe8}.event-row[data-type=lifecycle]{background:#f6f3fa}
.event-row[data-type=like] .event-type{color:#9c6718}.event-row[data-type=member] .event-type{color:#2b6caa}.event-row[data-type=lifecycle] .event-type{color:#765395}
.live-state-card,.auto-transcript-card,.live-transcript-card,.transcript-history-card,.insight-card,.talk-script-panel{background:#fff;border-color:var(--line)}.live-state-card.live,.auto-transcript-card.active{background:#f0f8f5;border-color:#c7e2d9}.live-state-card small,.live-state-card span,.auto-transcript-card span,.auto-transcript-card small{color:var(--muted)}
.analytics-panel,.transcript-panel{padding:30px}.analytics-metrics{margin-top:22px}.insight-card header strong{font-size:15px}.insight-card header span,.rank-label,.rank-value,.intent-item span,.question-list span,.recommendation-list li{font-size:12px;color:#455b72}.insight-card,.overview-card,.speech-editor{background:#fff}.recommendation-list li{background:#f7f9fb;border-color:var(--line)}.rank-bar,.room-share>i,.intent-item>i{background:#eef3f6}
.topic-item{background:#f7f9fb;border-color:var(--line)}.topic-head>span{color:#26394d}.topic-head>em,.topic-samples{color:#5d7080}.topic-head>i{color:#8794a3}
.trend-bar i{background:linear-gradient(#74bdb1,#287e72)}.trend-bar span,.trend-bar b,.analytics-updated{color:#617287}.length-distribution i:nth-child(1){background:#bdd6d0}.length-distribution i:nth-child(2){background:#74afa2}.length-distribution i:nth-child(3){background:#26796b}
.talk-settings input,#talkScriptOutput,.manual-transcript textarea,.speech-settings-grid textarea,.speech-settings-grid input,.speech-editor input,.speech-editor textarea,.speech-filters input,.speech-filters select{color:var(--text);background:#fff;border-color:#d5e0e8;font-size:14px;line-height:1.85}
.speech-monitor-controls,.speech-settings{background:#f8fafc;border-color:var(--line)}.speech-monitor-controls summary,.speech-settings summary,.speech-block summary{color:#45617a;font-size:13px}.speech-tabs button.active{background:#e7f3ef;color:var(--cyan);border-color:#b4d6cd}
.speech-review{background:#f4f8fa;border-color:#72a99c}.speech-review ul,.speech-category-summary{color:#40586f}.speech-category-summary b{color:var(--cyan)}.speech-tags span{background:#eaf1f8;color:#3c658d}.speech-checks span{background:#fff6e4;color:#8b6124}.speech-risk{background:#fff1f1;color:#9c4553}.speech-badge{background:#f0f8f4;color:#3c7865;border-color:#c8e0d4}.speech-badge.pending{background:#fff7e8;color:#88621b;border-color:#eadabb}
.speech-blocks{grid-template-columns:1fr}.speech-block{background:white;border-color:var(--line);padding:28px 32px}.speech-block header strong{font-size:17px;color:#203a53}.speech-block small,.speech-question{color:var(--muted)}.speech-paragraph{font-size:16px;line-height:2.1;color:#283b50;letter-spacing:.01em;max-width:1100px}.speech-fragment p{color:#40566b}.speech-fragment{border-color:#e2e9ef}.speech-block details{border-color:#e2e9ef}.speech-filters label,.speech-editor label,.speech-settings-grid label{color:#50647a}.speech-empty{color:var(--muted);border-color:#ccdae5}
.audience-review-grid>section{background:#fff;border-color:var(--line)}.audience-review-grid article{border-color:#e3eaef}.audience-review-grid article span,.audience-review-grid article p{color:#52677a}.audience-impact{background:#f6f8fa;color:#31485d}.audience-impact.rise{background:#eef8f3}.audience-impact.fall{background:#fff2f3}.audience-impact span,.audience-impact small{color:var(--muted)}.speech-product-head input{background:#fff;color:var(--text);border-color:#d5e0e8}
.speech-review-dimensions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.speech-dimension{padding:16px;background:#f7f9fc;border:1px solid #e1e8ef;border-radius:10px}.speech-dimension h4{margin:0 0 8px;font-size:13px}.speech-dimension p{font-size:12px;line-height:1.8;margin:7px 0;color:#53697e}.speech-dimension.found{background:#f0f8f4}.speech-rewrite-list{display:grid;gap:12px;padding-left:24px}.speech-rewrite-list li{padding:14px;background:#faf8f2;border-radius:9px;font-size:13px;line-height:1.85}.speech-rewrite-list p{margin:5px 0}.speech-host-reviews{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.speech-host-reviews article{padding:16px;background:white;border:1px solid var(--line);border-radius:10px}.speech-host-reviews p{font-size:12px;line-height:1.7}
.speech-line{color:var(--text)}.transcript-live .speech-line{color:var(--text);background:#f0f7f4}.transcript-item p,.transcript-item strong{color:#40566b}.capture-guide,.capture-guide.auto{background:#f2f8f5;border-color:#d0e4dc}.capture-guide strong{color:var(--cyan)}.auto-transcript-card.paused{background:#fff8ed;border-color:#ead5b0}.transcript-status-row [data-state=paused]{color:#946419}
.history-delete,.danger-text,.transcript-remove{color:#b33c50}.toast{color:#245971;background:#fff;border-color:#b9d5df;box-shadow:0 5px 24px #34556d1a}.direct-open-warning{background:#fff4df;color:#895f18}.direct-open-warning strong{color:#895f18}footer{color:#6e7f91}
/* Editorial workspace: host overview first, one detailed report on demand. */
.daily-studio{padding:26px;border:1px solid #d6e5e2;background:#fbfdfc;border-radius:16px;margin:26px 0}.daily-heading,.daily-room-heading{display:flex;justify-content:space-between;gap:20px;align-items:center}.daily-heading h3{font-size:24px;margin:0;letter-spacing:-.02em}.daily-heading p{font-size:13px;color:#5f7883;margin:8px 0 0}.daily-method{font-size:12px;margin:18px 0}.daily-hosts{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:9px;margin:18px 0}.daily-hosts button{padding:14px;background:white;border:1px solid var(--line);border-radius:10px;text-align:left}.daily-hosts button.active{background:#edf7f3;border-color:#94c5b6}.daily-hosts span,.daily-hosts small{display:block;font-size:11px;line-height:1.8}.daily-hosts strong{font-size:24px;display:block;color:#267868}.daily-hosts strong small{display:inline;font-size:12px;color:#768b97}.daily-host-picker{display:flex;align-items:center;gap:12px;font-size:13px;margin:24px 0}.daily-host-picker select{min-width:200px;max-width:100%;background:white;border:1px solid var(--line);padding:10px;border-radius:8px}
.daily-room-heading{border-top:1px solid var(--line);padding-top:24px;margin-top:18px}.daily-room-heading h3{font-size:22px;margin:6px 0}.daily-room-heading p{font-size:12px;color:var(--muted)}.daily-room-heading>strong{font-size:34px;white-space:nowrap;color:#1e7969}.daily-room-heading>strong small{font-size:12px}.daily-gap{padding:15px 18px;background:#fff7e8;border:1px solid #efdfc1;border-radius:9px;color:#866020;font-size:13px;line-height:1.8}.daily-review{padding:18px 0;margin:6px 0 16px}.daily-review summary{cursor:pointer;font-size:14px;font-weight:600}.daily-review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}.daily-review-grid article{background:#f0f5f9;border-radius:10px;padding:17px;font-size:12px;line-height:1.85}.daily-review-grid p{margin:8px 0}.daily-themes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.daily-themes>div{border-left:2px solid #a3cbbb;padding:10px 14px;font-size:12px}.daily-themes small{color:#71859a}
.materials-grid{display:grid;gap:18px}.material-card{background:white;border:1px solid #dce5ec;border-radius:14px;padding:24px}.material-card header{display:flex;gap:14px;align-items:flex-start}.material-rank{background:#eaf3f0;color:#25715f;border-radius:8px;padding:7px;font:20px/1.3 ui-monospace,monospace}.material-card h4{font-size:17px;line-height:1.7;margin:4px 0 0;overflow-wrap:anywhere}.material-topic{color:#448777;font-size:11px}.material-score{margin-left:auto;white-space:nowrap;padding:6px 9px;border-radius:5px;background:#eef3fa;color:#487198;font-size:11px}.material-card blockquote{margin:18px 0 7px;background:#f5f8fb;border-left:3px solid #7cacc6;padding:16px 20px;font-size:16px;line-height:1.9;overflow-wrap:anywhere}.source-caption{font-size:11px;color:#72859a;line-height:1.8}.material-reasons{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.material-reasons span{padding:4px 7px;border:1px solid #dce8e1;color:#517564;border-radius:5px;font-size:11px}.material-plan{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:20px 0}.material-plan label{color:#298470;font-size:12px;font-weight:600}.material-plan p,.material-plan li,.material-card details p{font-size:13px;line-height:1.95;color:#455c72}.material-plan ol{padding-left:22px}.material-card summary{font-size:12px;cursor:pointer;color:#537694}.material-card details{margin:18px 0}.section-divider{margin-top:40px;font-size:18px;border-top:1px solid var(--line);padding-top:24px}
@media(max-width:1050px){.daily-review-grid,.speech-review-dimensions{grid-template-columns:repeat(2,minmax(0,1fr))}.shell{width:calc(100% - 28px)}}
@media(max-width:760px){.daily-heading,.daily-room-heading{align-items:flex-start;flex-direction:column}.daily-studio,.analytics-panel,.transcript-panel{padding:16px}.daily-heading h3{font-size:21px}.material-plan,.daily-review-grid,.daily-themes,.speech-review-dimensions{grid-template-columns:1fr}.speech-block,.material-card{padding:18px}.material-card header{flex-wrap:wrap}.material-score{margin-left:0}.speech-paragraph{font-size:15px}.hero h2{font-size:30px}.module-nav button{padding:0 8px;font-size:12px}.module-nav small{display:none}}

/* console-studio.css */
/* A restrained light workspace; no expensive blur, continuous motion or web fonts. */
body{background:#f6f8fb;--cyan:#4666df;--line:#e6eaf0;--muted:#8190a5;--text:#283b54;--panel:#fff;font-family:"Segoe UI","Microsoft YaHei",sans-serif}
body .shell{width:auto;max-width:1660px;margin:0 36px 0 254px;padding-top:30px}
body .topbar{position:fixed;inset:0 auto 0 0;z-index:15;width:218px;min-height:100vh;background:#fff;border-right:1px solid #e6eaf0;padding:34px 20px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;margin:0}
body .brand{gap:11px}body .brand-mark{width:38px;height:38px;background:#4666df;border:0;border-radius:12px}body .brand-mark span{background:white;width:3px}body .brand h1{font-size:19px;letter-spacing:0}body .brand p{font-size:8px;letter-spacing:.8px;color:#98a2b2;margin-top:5px}body .module-nav{display:flex;flex-direction:column;align-items:stretch;padding:0;margin:47px 0 0;border:0;background:none;gap:8px;overflow:visible}body .module-nav::before{content:"工作空间";color:#a0aaba;font-size:10px;margin:0 12px 12px}body .module-nav :is(button,a){display:flex;align-items:center;justify-content:flex-start;gap:11px;width:100%;height:44px;padding:0 12px;border:0;border-radius:8px;font-size:13px;font-weight:550;color:#7b899e;background:transparent;text-decoration:none}body .module-nav :is(button,a):hover{background:#f5f7fc;color:#4666df}body .module-nav button.active{background:#eff3ff;color:#4666df}body .module-nav i{display:inline-block;border:1.5px solid currentColor;border-radius:4px;transform:rotate(0);width:12px;height:12px;background:none;box-shadow:none;opacity:.7}body .module-nav .insights-nav-link i{transform:rotate(45deg);width:11px;height:11px;border-radius:2px}body .module-nav a>span{margin-left:auto;font-size:12px;color:#a0aec5}body .connection-badge{margin-top:auto;border:0;border-top:1px solid #edf0f5;border-radius:0;padding:20px 5px 0;justify-content:flex-start;background:none;font-size:11px}body .connection-badge span{font-size:11px;color:#7f90a6}body .connection-badge i{width:6px;height:6px;box-shadow:none}
body .panel{border-radius:12px;box-shadow:none;border-color:#e6eaf0}body .hero{padding:32px;background:#fff}body .hero h2{font-size:29px;letter-spacing:-.6px;line-height:1.5;font-weight:650;margin:10px 0}body .hero h2 em{color:#4666df}body .hero-copy{font-size:12px;color:#909bb0;max-width:none}body .eyebrow{color:#97a5ba;font-size:10px;letter-spacing:1.8px}body .connect-form{margin-top:23px;gap:8px}body .input-wrap{border-color:#e1e7f0;border-radius:8px;height:46px}body .input-wrap input{font-size:12px}body .primary{background:#4666df;border-color:#4666df;border-radius:8px;color:#fff;box-shadow:none}body .primary span,body .primary b{color:inherit}body .primary:hover{background:#3654cb;border-color:#3654cb;box-shadow:none;transform:none}body .secondary,body .outline{border-color:#e1e7f0;border-radius:8px;color:#6f819b;font-size:12px;background:#fff}body .status-line{margin-top:16px;font-size:11px}body .status-line span{font-size:11px;color:#97a4b5}body .capability-row{border-top:1px solid #eef1f6;padding-top:17px;margin-top:16px;gap:22px}body .capability-row span{background:none;padding:0;color:#8a9ab0;font-size:10px}body .capability-row i{box-shadow:none;background:#a4b5d9;width:4px;height:4px}
body .metric-grid{gap:15px;margin:20px 0}body .metric{border-radius:10px;padding:20px 23px;background:#fff;border:1px solid #e6eaf0}body .metric span{font-size:11px;color:#8491a6}body .metric strong{font-size:30px;color:#344761;font-weight:600;margin:11px 0 2px;letter-spacing:-.6px}body .metric small{font-size:8px;color:#a8b3c3;letter-spacing:1.1px}body .metric.cyan strong{color:#4666df}body .metric.magenta strong{color:#7969ba}body .metric.lime strong{color:#5c9e8c}body .console-head{padding:24px}body .console-head h3{font-size:18px;margin-top:6px}body .console-head h3 span{font-size:10px;background:#f4f6fb;color:#8c9bb1}body .search{height:36px;border-color:#e7ebf3;border-radius:7px}body .search input{font-size:11px}body .filter{background:none;border-color:transparent;color:#8798b2;border-radius:6px;font-size:11px}body .filter.active{background:#eff3ff;color:#4666df;border-color:transparent}body .filters{padding:0 24px 18px;gap:7px}body .history-bar,body .rooms-bar,body .live-status-board{background:#fff;border-color:#edf0f5}body .history-bar{padding:18px 24px}body .history-copy strong{font-size:12px}body .history-copy span{font-size:10px;color:#99a6b7}body .room-tab{background:#f8fafd;border-color:#e8edf5;color:#8595af;border-radius:7px}body .room-tab.active{background:#eff3ff;color:#4666df;border-color:#dce5ff}body .live-state-card{border-radius:8px;border-color:#e7edf5;background:#fafbfd}body .live-state-card.live{background:#f7fcfa;border-color:#dceee8}body .table-head{background:#f8fafd;color:#97a5b9;font-size:10px;letter-spacing:.3px}body .event-row{font-size:12px;border-color:#f0f3f7}body .event-row:hover{background:#f9fbfe}body .event-time,body .event-room{font-size:10px;color:#92a2ba}body .event-content{color:#4c617e}body .event-user{color:#7086a7}
body .transcript-panel,body .analytics-panel{padding:30px}body .transcript-head h2,body .analytics-head h2{font-size:26px;letter-spacing:-.5px;color:#2e435f}body .transcript-head p,body .analytics-head p{font-size:12px;color:#8f9db0}body .speech-tabs{background:#f5f7fb;padding:5px;border-radius:8px;gap:3px}body .speech-tabs button{background:transparent;border:0;color:#8a9ab0;font-size:12px;padding:9px 16px}body .speech-tabs button.active{background:white;color:#4666df;box-shadow:0 1px 4px #2e477c0b}body .speech-block{border-radius:10px;padding:26px;border-color:#e4eaf3}body .speech-block header strong{font-size:16px;color:#384f70}body .speech-paragraph{font-size:15px;line-height:2.2;color:#526781;max-width:1000px}body .speech-review{background:#f7f9fd;border-color:#e3e9f5;border-left:3px solid #aebfe8}body .speech-dimension{border-color:#e8edf5;background:#fafbfe}body .speech-dimension.found{background:#f6faf9}body .speech-settings,body .speech-monitor-controls{background:#fafbfd;border-color:#e7edf5}body .speech-tags span{background:#f0f4fc;color:#8197ba;font-size:10px}body .speech-checks span{background:#fffbf1;color:#a08e63;font-size:10px}body .speech-badge{background:#f3f7fc;color:#7287a5;font-size:10px}body .speech-badge.pending{background:#fdf8ec;color:#ae9663}body .speech-metrics>div{padding:16px 20px;background:#fff;border-color:#e6ebf3}body .speech-metrics strong{font-size:25px;font-weight:600;color:#4b6390}body .speech-metrics span{font-size:10px;color:#92a1b7}body .speech-block audio{display:block;max-width:100%;height:36px;margin:10px 0}body .speech-filters label{font-size:11px;color:#97a6b9}body .speech-filters input,body .speech-filters select{font-size:12px;border-color:#e6ecf4}body .studio-promo{display:flex;justify-content:space-between;align-items:center;gap:20px;background:#f5f8ff;border:1px solid #e5ebfb;padding:22px;border-radius:10px;text-decoration:none}body .studio-promo b{font-size:14px;color:#526d9d}body .studio-promo span{display:block;font-size:11px;color:#99a8bf;margin-top:6px}body .studio-promo strong{font-size:12px;color:#4666df;white-space:nowrap}
@media(max-width:1180px){body .shell{margin:0 22px 0 236px}body .hero h2{font-size:25px}body .connect-form{flex-wrap:wrap}body .connect-form .input-wrap{flex-basis:100%}body .speech-review-dimensions{grid-template-columns:1fr 1fr}body .console-head{flex-wrap:wrap;gap:15px}body .hero{padding:26px}body .metric{padding:18px}}
@media(max-width:850px){body .topbar{position:static;width:auto;min-height:0;margin:0 -18px 22px;padding:18px;display:block;border-right:0;border-bottom:1px solid #e6eaf0}body .shell{margin:0 18px;padding-top:0}body .module-nav{margin:15px 0 0;flex-direction:row;overflow-x:auto;gap:6px}body .module-nav::before,body .module-nav i{display:none}body .module-nav :is(button,a){white-space:nowrap;flex-shrink:0;width:auto;padding:0 11px;font-size:12px;height:38px}body .connection-badge{position:absolute;top:19px;right:19px;margin:0;border:0;padding:0;width:auto;min-height:32px}body .metric-grid{gap:9px}body .hero h2{font-size:24px}body .hero{padding:23px}body .speech-review-dimensions{grid-template-columns:1fr}body .studio-promo{flex-direction:column;align-items:flex-start}}
@media(max-width:580px){body .shell{margin:0 12px}body .topbar{margin:0 -12px 16px;padding:16px 12px}body .hero h2{font-size:22px}body .hero h2 em{display:block}body .hero .primary,body .hero .secondary{font-size:11px;padding:0 12px;height:40px}body .hero,body .transcript-panel,body .analytics-panel{padding:18px}body .capability-row{gap:10px;flex-wrap:wrap}body .metric-grid{grid-template-columns:1fr 1fr}body .metric strong{font-size:27px}body .speech-block{padding:18px}body .speech-tabs{flex-wrap:wrap}body .speech-tabs button{padding:8px 12px}body .console-head{padding:18px}body .history-bar{padding:15px}body .connection-badge{font-size:10px;max-width:120px}body .brand p{font-size:7px}}

body live-insights{display:block;margin-bottom:26px}body live-insights.module-hidden{display:none!important}
body .live-transcript-dialog{width:min(920px,calc(100vw - 32px));height:min(760px,calc(100vh - 32px));padding:0;border:0;border-radius:16px;background:#fff;color:#2d405c;box-shadow:0 28px 90px #24345235;overflow:hidden}body .live-transcript-dialog::backdrop{background:#26324866;backdrop-filter:blur(2px)}
body .live-dialog-shell{height:100%;display:grid;grid-template-rows:auto auto 1fr auto}body .live-dialog-shell>header{display:flex;align-items:flex-start;justify-content:space-between;padding:24px 26px 18px;border-bottom:1px solid #e8edf4}body .live-dialog-shell>header span{font-size:9px;letter-spacing:1.7px;color:#8798af}body .live-dialog-shell>header h2{font-size:23px;margin:4px 0;color:#2d425f}body .live-dialog-shell>header p{font-size:11px;color:#8998ab;margin:0}body .dialog-close{border:0;background:#f4f6fa;width:34px;height:34px;padding:0;border-radius:9px;color:#7c899b;font-size:22px}
body .live-dialog-toolbar{display:flex;align-items:flex-end;gap:10px;padding:14px 26px;background:#f8fafd;border-bottom:1px solid #e8edf4}body .live-dialog-toolbar label{display:grid;gap:4px;font-size:10px;color:#8392a7;margin-right:auto}body .live-dialog-toolbar select{min-width:210px;background:#fff;color:#405572;border:1px solid #dfe6ef;border-radius:7px;padding:8px 10px}body #liveTranscriptIndicator{align-self:center;font-size:11px;color:#618273;margin-right:8px}body #liveTranscriptIndicator i{display:inline-block;width:7px;height:7px;background:#55aa8a;border-radius:50%;margin-right:7px}body #liveTranscriptIndicator.paused{color:#a17a32}body #liveTranscriptIndicator.paused i{background:#d3a84e}
body .live-dialog-feed{overflow-y:auto;padding:18px 26px;background:#fff}body .live-dialog-line{padding:15px 0;border-bottom:1px solid #edf1f6}body .live-dialog-line>div{display:flex;align-items:center;gap:10px}body .live-dialog-line strong{font-size:12px;color:#4b6180}body .live-dialog-line time{font-size:10px;color:#9aa7b8}body .live-dialog-line>div span{font-size:9px;color:#a67933;background:#fff7e7;padding:2px 6px;border-radius:4px}body .live-dialog-line p{font-size:16px;line-height:2;color:#293d58;margin:8px 0 0;white-space:pre-wrap}body .live-dialog-line.needs-review p{color:#7b674a}body .live-dialog-empty{height:100%;min-height:220px;display:grid;place-items:center;color:#9aa7b8;font-size:12px}body .live-dialog-shell>footer{display:flex;justify-content:space-between;align-items:center;padding:13px 26px;border-top:1px solid #e8edf4;color:#8997aa;font-size:10px}body .live-dialog-shell>footer label{display:flex;align-items:center;gap:7px}
@media(max-width:650px){body .live-transcript-dialog{width:100vw;height:100vh;max-width:none;max-height:none;border-radius:0}body .live-dialog-toolbar{align-items:stretch;flex-wrap:wrap}body .live-dialog-toolbar label{width:100%;margin:0}body .live-dialog-toolbar select{width:100%}body #liveTranscriptIndicator{margin-right:auto}body .live-dialog-line p{font-size:15px}body .live-dialog-shell>header,body .live-dialog-toolbar,body .live-dialog-feed,body .live-dialog-shell>footer{padding-left:16px;padding-right:16px}}

/* Speech workspace: one clear primary flow, with advanced controls kept secondary. */
body .transcript-head{align-items:center;padding-bottom:20px}body .speech-primary-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}body .speech-primary-actions button{height:40px;padding:0 16px}
body .speech-command-center{margin:18px 0 14px;border:1px solid #e3e9f1;border-radius:12px;background:#fafbfd;overflow:hidden}body .speech-command-center .transcript-actions{padding:16px 18px}body .speech-command-center .transcript-status-row{padding:11px 18px;border-top:1px solid #e8edf3;border-bottom:1px solid #e8edf3;background:#fff}body .speech-command-center .speech-tabs{justify-content:space-between;padding:7px 10px;border:0;background:#f5f7fb}body .speech-view-tabs,body .speech-view-actions{display:flex;align-items:center;gap:4px;flex-wrap:wrap}body .speech-view-actions{margin-left:auto}body .speech-tabs #speechRefresh{margin-left:0}
body .speech-utility-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin:0 0 14px}body .speech-utility-grid>.speech-monitor-controls,body .speech-utility-grid>.speech-settings{min-width:0;margin:0;padding:0;background:#fff;overflow:hidden}body .speech-utility-grid>details>summary{display:flex;flex-direction:column;gap:4px;padding:15px 17px;list-style-position:inside;font-weight:600}body .speech-utility-grid>details>summary small{display:block;margin-left:18px;color:#8d9caf;font-size:10px;font-weight:400}body .speech-utility-grid>details[open]>summary{border-bottom:1px solid #e8edf3;background:#f8fafd}body .speech-utility-grid .capture-guide{margin:12px 14px 4px}body .speech-utility-grid .auto-transcript-board{margin:10px 14px 14px}body .speech-utility-grid .speech-settings-grid{margin:0;padding:16px}body .speech-scope{margin:10px 2px 16px;padding:0}
@media(max-width:1100px){body .speech-utility-grid{grid-template-columns:1fr}}
@media(max-width:700px){body .transcript-head{align-items:flex-start}body .speech-primary-actions{width:100%}body .speech-primary-actions button{flex:1}body .speech-command-center .transcript-actions{align-items:stretch}body .speech-command-center .transcript-actions label{flex:1 1 150px}body .speech-command-center .transcript-actions select,body .speech-command-center .transcript-actions input{width:100%;min-width:0}body .speech-command-center .transcript-status-row{flex-direction:column;gap:4px}body .speech-command-center .speech-tabs{align-items:stretch;gap:7px}body .speech-view-tabs,body .speech-view-actions{width:100%}body .speech-view-tabs button{flex:1}body .speech-view-actions button{flex:1}}

/* live-screens.css */
/* 直播画面监看墙：网格铺满所有在播直播间，点击后单路独占并开启声音。 */

.live-screens { padding: 30px; }

.screens-header { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; }
.screens-header h2 { margin: 0; font-size: clamp(22px, 2.4vw, 30px); letter-spacing: -.02em; }
.screens-header h2 em { font-style: normal; color: var(--cyan); margin-left: 12px; font-size: 14px; letter-spacing: 0; font-weight: 500; }
.screens-hint { margin: 12px 0 0; max-width: 760px; color: var(--muted); font-size: 12.5px; line-height: 1.9; }
.screens-actions { display: flex; gap: 10px; flex-wrap: wrap; }

.screens-status-row { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin: 20px 0 16px; font-size: 12px; color: var(--muted); }
.screens-status-row #screensStatus { display: inline-flex; align-items: center; gap: 8px; }
.screens-status-row #screensStatus i { width: 7px; height: 7px; border-radius: 50%; background: var(--muted); }
.screens-status-row #screensStatus[data-state=active] { color: var(--cyan); }
.screens-status-row #screensStatus[data-state=active] i { background: var(--cyan); box-shadow: 0 0 0 3px rgba(53, 231, 206, .18); }
.screens-status-row #screensStatus[data-state=loading] i { background: var(--amber); animation: screens-pulse 1.1s ease-in-out infinite; }
.screens-status-row #screensStatus[data-state=error] { color: #c65a6e; }
.screens-status-row #screensStatus[data-state=error] i { background: #c65a6e; }

@keyframes screens-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }

/* 抖音直播源为竖屏，监看墙卡片固定 9:16 */
.screens-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(198px, 1fr)); gap: 14px; }

.screen-card {
  position: relative;
  display: block;
  aspect-ratio: 9 / 16;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #05080d;
  overflow: hidden;
  cursor: pointer;
  transition: border-color .16s ease, transform .16s ease;
}
.screen-card:hover { border-color: var(--cyan); transform: translateY(-1px); }
.screen-card video { display: block; width: 100%; height: 100%; object-fit: contain; background: #05080d; }

.screen-card-bar {
  position: absolute; inset: auto 0 0 0; display: flex; justify-content: space-between; gap: 10px;
  padding: 26px 12px 10px; font-size: 12px;
  background: linear-gradient(transparent, rgba(4, 8, 14, .88));
}
.screen-card-bar strong { color: #f4f8fc; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.screen-card-bar span { color: #b9c6d6; white-space: nowrap; }

.screen-card-badge {
  position: absolute; top: 10px; left: 10px; display: inline-flex; align-items: center; gap: 5px;
  padding: 3px 8px; border-radius: 999px; background: rgba(220, 60, 84, .92); color: #fff;
  font: 10px/1.5 ui-monospace, monospace; letter-spacing: .12em;
}
.screen-card-badge::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: #fff; }

.screen-card-expand {
  position: absolute; top: 8px; right: 8px; padding: 6px 11px; border-radius: 8px; cursor: pointer;
  border: 1px solid rgba(255, 255, 255, .28); background: rgba(6, 11, 18, .72); color: #eaf3fb; font-size: 12px;
  opacity: 0; transition: opacity .16s ease;
}
.screen-card:hover .screen-card-expand { opacity: 1; }
.screen-card-expand:hover { background: rgba(9, 18, 28, .92); }

/* 画面状态提示：黑屏不再只是黑屏，直接说明是在重连还是已中断，并给重试入口。 */
.screen-hint {
  position: absolute; inset: 0; z-index: 4; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 10px; padding: 18px;
  background: radial-gradient(circle at 50% 42%, rgba(23, 37, 51, .9), rgba(4, 7, 12, .96));
  color: #cbd8e6; font-size: 12px; line-height: 1.8; text-align: center;
  pointer-events: none;
}
.screen-hint[hidden] { display: none; }
.screen-hint-text { display: block; max-width: 100%; }
.screen-hint-retry {
  pointer-events: auto; padding: 6px 14px; border-radius: 8px; cursor: pointer;
  border: 1px solid rgba(120, 200, 230, .42); background: rgba(16, 34, 48, .88);
  color: #d9ecf7; font-size: 12px;
}
.screen-hint-retry:hover { background: rgba(22, 46, 64, .95); color: #fff; }
/* 自动重连中不需要用户点按钮，给一个呼吸的指示点即可 */
.screen-hint[data-tone="connecting"] .screen-hint-retry { display: none; }
.screen-hint[data-tone="connecting"] .screen-hint-text::after {
  content: ""; display: inline-block; width: 6px; height: 6px; margin-left: 7px;
  border-radius: 50%; background: var(--cyan); vertical-align: middle;
  animation: screens-pulse 1.1s ease-in-out infinite;
}
.screen-card[data-screen-state="error"] .screen-card-badge,
.screen-card[data-screen-state="connecting"] .screen-card-badge { opacity: .5; }

/* 弹幕叠加层：飘在画面上方，不响应鼠标；文字带描边保证亮暗画面都可读。 */
.screen-danmaku {
  position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 3;
}
.screen-danmaku span {
  position: absolute; left: 100%; white-space: nowrap; will-change: transform;
  color: #fff; font-weight: 600; line-height: 1.55; text-shadow:
    -1px -1px 0 rgba(0, 0, 0, .85), 1px -1px 0 rgba(0, 0, 0, .85),
    -1px 1px 0 rgba(0, 0, 0, .85), 1px 1px 0 rgba(0, 0, 0, .85), 0 0 6px rgba(0, 0, 0, .6);
  animation: screen-danmaku-roll 8s linear forwards;
}
@keyframes screen-danmaku-roll {
  from { transform: translateX(0); }
  to { transform: translateX(var(--dist, -120%)); }
}

.screens-empty {
  padding: 46px 20px; border: 1px dashed var(--line); border-radius: 14px; text-align: center;
  color: var(--muted); font-size: 13px; line-height: 2;
}

/* 单路独占：竖屏视频居中占满可用高度，两侧留黑。 */
.screens-focus { position: fixed; inset: 0; z-index: 220; display: flex; flex-direction: column; background: #04070c; }
.screens-focus-bar {
  display: flex; align-items: center; gap: 16px; padding: 12px 20px;
  border-bottom: 1px solid rgba(173, 198, 224, .16); background: #0a1017;
}
.screens-focus-bar button {
  padding: 8px 14px; border-radius: 9px; cursor: pointer; font-size: 13px;
  border: 1px solid rgba(173, 198, 224, .26); background: #131b25; color: #dfe9f3;
}
.screens-focus-bar button:hover { background: #1b2531; color: #fff; }
.screens-focus-title { display: flex; align-items: baseline; gap: 12px; min-width: 0; }
.screens-focus-title strong { color: #f4f8fc; font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.screens-focus-title span { color: #93a3b5; font-size: 12px; white-space: nowrap; }
#screensFocusRetry { margin-left: auto; }

.screens-focus-stage { position: relative; flex: 1; display: flex; align-items: center; justify-content: center; min-height: 0; padding: 12px; }
.screens-focus-stage video { max-width: 100%; max-height: 100%; width: auto; height: 100%; object-fit: contain; aspect-ratio: 9 / 16; background: #04070c; }
/* 独占画面时弹幕层与视频等宽对齐（视频 9:16 居中，弹幕只盖在视频上） */
.screens-focus-stage .screen-danmaku {
  inset: auto; width: min(100%, calc((100vh - 120px) * 9 / 16)); aspect-ratio: 9 / 16;
}

body.screens-focus-open { overflow: hidden; }

@media (max-width: 900px) {
  .live-screens { padding: 18px; }
  .screens-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
  .screens-header { align-items: flex-start; }
  .screens-focus-title span { display: none; }
}

@media print {
  .live-screens { display: none !important; }
}

/* knowledge.css */
/* 知识库：词条维护 + 飞书导入。用主题变量，浅色/深色都可用。 */

.knowledge { padding: 30px; }

.knowledge-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; }
.knowledge-head h2 { margin: 0; font-size: clamp(22px, 2.4vw, 30px); letter-spacing: -.02em; }
.knowledge-head h2 em { font-style: normal; color: var(--cyan); margin-left: 12px; font-size: 14px; letter-spacing: 0; font-weight: 500; }
.knowledge-hint { margin: 12px 0 0; max-width: 820px; color: var(--muted); font-size: 12.5px; line-height: 1.9; }
.knowledge-actions { display: flex; gap: 10px; flex-wrap: wrap; }

.knowledge-stats { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin: 20px 0 6px; font-size: 12px; color: var(--muted); }
.knowledge-stats #knowledgeCount { display: inline-flex; align-items: center; gap: 8px; }
.knowledge-stats #knowledgeCount i { width: 7px; height: 7px; border-radius: 50%; background: var(--muted); }
.knowledge-stats #knowledgeCount[data-state=active] { color: var(--cyan); }
.knowledge-stats #knowledgeCount[data-state=active] i { background: var(--cyan); }
.knowledge-stats #knowledgeCount[data-state=loading] i { background: var(--amber); animation: knowledge-pulse 1.1s ease-in-out infinite; }
.knowledge-stats #knowledgeCount[data-state=error] { color: #c65a6e; }
.knowledge-stats #knowledgeCount[data-state=error] i { background: #c65a6e; }
@keyframes knowledge-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }

.knowledge-import { margin: 14px 0 4px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 12px; background: color-mix(in srgb, var(--panel-solid) 60%, transparent); }
.knowledge-import label { display: block; font-size: 12px; color: var(--muted); margin-bottom: 8px; }
.knowledge-import-row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.knowledge-import-row input[type=url] { flex: 1 1 320px; min-width: 240px; height: 38px; padding: 0 12px; border-radius: 9px; border: 1px solid var(--line); background: var(--panel-solid); color: var(--text); font-size: 13px; }
.knowledge-switch { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); white-space: nowrap; }
.knowledge-import-tip { margin: 10px 0 0; font-size: 11.5px; line-height: 1.8; color: var(--muted); }
.knowledge-import-row button { height: 38px; padding: 0 16px; border-radius: 9px; border: 1px solid transparent; background: var(--cyan); color: #04231f; font-size: 13px; font-weight: 600; }
.knowledge-import-row button:disabled { opacity: .6; }

.knowledge-grid { display: grid; grid-template-columns: minmax(280px, 360px) minmax(0, 1fr); gap: 18px; margin-top: 18px; align-items: start; }

.knowledge-form { display: grid; gap: 6px; padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: var(--panel-solid); position: sticky; top: 16px; }
.knowledge-form h3 { margin: 0 0 6px; font-size: 14px; }
.knowledge-form h3.knowledge-paste-title { margin-top: 14px; }
.knowledge-form label { font-size: 12px; color: var(--muted); margin-top: 8px; }
.knowledge-form label em { font-style: normal; font-size: 11px; opacity: .8; margin-left: 6px; }
.knowledge-form input[type=text],
.knowledge-form textarea,
.knowledge-form select,
.knowledge-list-bar input,
.knowledge-list-bar select {
  width: 100%; padding: 9px 11px; border-radius: 9px; border: 1px solid var(--line);
  background: var(--panel-solid); color: var(--text); font-size: 13px; line-height: 1.6; font-family: inherit;
}
.knowledge-form textarea { resize: vertical; line-height: 1.7; }
.knowledge-form-actions { display: flex; gap: 10px; margin-top: 14px; }
.knowledge-form-actions button { height: 36px; padding: 0 16px; border-radius: 9px; border: 1px solid transparent; background: var(--cyan); color: #04231f; font-size: 13px; font-weight: 600; }
.knowledge-form-actions .outline { background: transparent; color: var(--text); border-color: var(--line); font-weight: 500; }
.knowledge-form-tip { margin: 10px 0 0; min-height: 18px; font-size: 12px; line-height: 1.7; color: var(--muted); }
.knowledge-form-tip[data-kind=ok] { color: var(--cyan); }
.knowledge-form-tip[data-kind=error] { color: #c65a6e; }

.knowledge-list-wrap { min-width: 0; }
.knowledge-list-bar { display: flex; gap: 10px; margin-bottom: 12px; }
.knowledge-list-bar input { flex: 1 1 auto; }
.knowledge-list-bar select { width: 130px; flex: 0 0 auto; }

.knowledge-list { display: grid; gap: 8px; }
.knowledge-item { padding: 12px 14px; border: 1px solid var(--line); border-radius: 11px; background: var(--panel-solid); }
.knowledge-item[data-type=model] { border-left: 3px solid var(--cyan); }
.knowledge-item[data-type=brand] { border-left: 3px solid var(--magenta); }
.knowledge-item[data-type=tech] { border-left: 3px solid var(--amber); }
.knowledge-item[data-type=term] { border-left: 3px solid var(--lime); }
.knowledge-item-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.knowledge-item-head strong { font-size: 14px; }
.knowledge-tag { padding: 2px 8px; border-radius: 999px; background: rgba(53, 231, 206, .14); color: var(--cyan); font-size: 11px; }
.knowledge-source { font-size: 11px; color: var(--muted); }
.knowledge-item-head button { margin-left: auto; padding: 4px 10px; border-radius: 7px; border: 1px solid var(--line); background: transparent; color: var(--muted); font-size: 11.5px; }
.knowledge-item-head button.knowledge-edit { margin-left: auto; }
.knowledge-item-head button.knowledge-remove { margin-left: 0; }
.knowledge-item-head button:hover { color: var(--text); border-color: var(--cyan); }
.knowledge-item-aliases { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.knowledge-item-aliases code { padding: 2px 7px; border-radius: 6px; background: rgba(132, 145, 162, .16); color: var(--text); font-size: 11.5px; }
.knowledge-none { font-size: 11.5px; color: var(--muted); }
.knowledge-item-note { margin: 8px 0 0; font-size: 11.5px; color: var(--muted); }
.knowledge-empty { margin: 0; padding: 40px 20px; border: 1px dashed var(--line); border-radius: 12px; text-align: center; color: var(--muted); font-size: 12.5px; line-height: 1.9; }

@media (max-width: 1080px) {
  .knowledge-grid { grid-template-columns: 1fr; }
  .knowledge-form { position: static; }
}

@media (max-width: 900px) {
  .knowledge { padding: 18px; }
  .knowledge-head { align-items: flex-start; }
}

@media print {
  .knowledge { display: none !important; }
}

/* public-readonly.css */
/* 公开只读视图（body.public-readonly）：隐藏管理类控件，访客只能浏览。 */

body.public-readonly #connectForm,
body.public-readonly #screensStopAll,
body.public-readonly #knowledgeImportBtn,
body.public-readonly #knowledgeImport,
body.public-readonly #knowledgeForm,
body.public-readonly .knowledge-edit,
body.public-readonly .knowledge-remove,
body.public-readonly #feishuSave,
body.public-readonly #speechEditorSave,
body.public-readonly #videoLoginButton {
  display: none !important;
}

.public-readonly-banner {
  position: fixed; top: 0; left: 0; right: 0; z-index: 400;
  padding: 7px 16px; text-align: center;
  background: rgba(53, 231, 206, .12); color: var(--cyan, #0f8f80);
  border-bottom: 1px solid rgba(53, 231, 206, .3);
  font-size: 12px; letter-spacing: .02em;
}

/* refined.css */
/* ============================================================================
 * refined.css — 视觉升级层（v3.9.0）
 *
 * 目标：在不动任何布局结构与 DOM 的前提下，把界面统一到「少而精」的现代语言——
 *   1. 单一强调色（苹果蓝），其余全部走中性灰阶，语义色只在确实表达状态时出现；
 *   2. 大圆角 + 极细边框 + 多层柔和阴影，取代原先的硬边线与高饱和描边；
 *   3. 排版拉开层级：大标题收紧字距，正文提高行高，数字统一等宽对齐；
 *   4. 交互统一到一条缓动曲线，hover / active / focus 都有回应但不吵闹。
 *
 * 本文件必须最后加载（放在 index.html 样式表末尾），并统一用 body 前缀提权，
 * 以便压过 light-theme.css 中 body * / body :is(...) 这类宽泛规则。
 * ========================================================================== */

:root {
  /* 中性灰阶（苹果式：暖白底 + 近黑文字 + 四档灰） */
  --rf-bg: #fbfbfd;
  --rf-bg-soft: #f5f5f7;
  --rf-surface: #ffffff;
  --rf-surface-2: #fafafc;
  --rf-ink: #1d1d1f;
  --rf-ink-2: #424245;
  --rf-muted: #6e6e73;
  --rf-muted-2: #86868b;
  --rf-line: #e8e8ed;
  --rf-line-strong: #d2d2d7;

  /* 强调色与语义色 */
  --rf-accent: #0071e3;
  --rf-accent-press: #0060c0;
  --rf-accent-soft: #eef5fe;
  --rf-accent-line: #cfe3fb;
  --rf-positive: #1d9e5f;
  --rf-positive-soft: #eef8f2;
  --rf-warn: #b06a00;
  --rf-warn-soft: #fff6e8;
  --rf-danger: #d7403a;
  --rf-danger-soft: #fff0ef;
  --rf-violet: #6b5ad6;
  --rf-violet-soft: #f1effd;

  /* 圆角 */
  --rf-r-xs: 8px;
  --rf-r-sm: 10px;
  --rf-r-md: 14px;
  --rf-r-lg: 20px;
  --rf-r-xl: 26px;
  --rf-r-pill: 980px;

  /* 阴影：三层叠出「几乎看不见但拿得起来」的厚度 */
  --rf-sh-xs: 0 1px 2px rgba(16, 24, 40, .04);
  --rf-sh-sm: 0 1px 2px rgba(16, 24, 40, .04), 0 4px 12px -4px rgba(16, 24, 40, .08);
  --rf-sh-md: 0 1px 2px rgba(16, 24, 40, .03), 0 10px 32px -10px rgba(16, 24, 40, .12);
  --rf-sh-lg: 0 2px 4px rgba(16, 24, 40, .03), 0 24px 60px -20px rgba(16, 24, 40, .16);
  --rf-sh-accent: 0 6px 18px -6px rgba(0, 113, 227, .5);

  --rf-ease: cubic-bezier(.32, .72, 0, 1);
  --rf-font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI Variable Text",
    "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei",
    system-ui, sans-serif;
  --rf-font-num: ui-monospace, "SF Mono", "SFMono-Regular", "Cascadia Mono", Consolas, monospace;
}

/* ---------------------------------------------------------------- 基底 --- */

body {
  background: var(--rf-bg);
  color: var(--rf-ink);
  font-family: var(--rf-font);
  font-size: 14px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: "tnum" 1, "cv05" 1;
}

/* 背景光晕改为极淡的冷色渐层，只提供氛围，不抢内容 */
body .glow { opacity: .5; filter: blur(120px); }
body .glow-a { background: radial-gradient(circle, rgba(0, 113, 227, .16), transparent 70%); }
body .glow-b { background: radial-gradient(circle, rgba(107, 90, 214, .12), transparent 70%); }

body ::selection { background: rgba(0, 113, 227, .16); }

/* 滚动条：细、圆、悬停才显色 */
body * { scrollbar-width: thin; scrollbar-color: var(--rf-line-strong) transparent; }
body ::-webkit-scrollbar { width: 10px; height: 10px; }
body ::-webkit-scrollbar-track { background: transparent; }
body ::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, .16);
  border: 3px solid transparent;
  border-radius: var(--rf-r-pill);
  background-clip: content-box;
}
body ::-webkit-scrollbar-thumb:hover { background: rgba(0, 0, 0, .3); background-clip: content-box; }

body :is(h1, h2, h3, h4, strong, b) {
  color: var(--rf-ink);
  letter-spacing: -.015em;
}
body small { color: var(--rf-muted-2); }

body :is(a, button, input, textarea, select, summary, [tabindex]) {
  transition: background-color .22s var(--rf-ease), border-color .22s var(--rf-ease),
    color .22s var(--rf-ease), box-shadow .22s var(--rf-ease), transform .22s var(--rf-ease);
}

body :is(a, button, input, textarea, select, summary):focus-visible {
  outline: 3px solid rgba(0, 113, 227, .35);
  outline-offset: 2px;
  border-radius: var(--rf-r-sm);
}

/* ------------------------------------------------------------ 顶栏 / 导航 --- */

body .topbar { padding: 22px 20px; gap: 18px; }
body .brand { gap: 12px; }
body .brand h1 { font-size: 19px; font-weight: 650; letter-spacing: -.02em; color: var(--rf-ink); }
body .brand p,
body .eyebrow {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--rf-muted-2);
}

body .brand-mark {
  width: 38px;
  height: 38px;
  border-radius: 11px;
  background: linear-gradient(150deg, #3d9bff, #0071e3 55%, #0057b8);
  border: none;
  box-shadow: var(--rf-sh-accent);
}
body .brand-mark span { background: rgba(255, 255, 255, .92); box-shadow: none; }

body .module-nav {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 3px;
  padding: 7px;
  background: var(--rf-bg-soft);
  border: 1px solid var(--rf-line);
  border-radius: var(--rf-r-lg);
  box-shadow: none;
}
body .module-nav button {
  height: 38px;
  padding: 0 12px;
  border: none;
  border-radius: var(--rf-r-sm);
  background: transparent;
  color: var(--rf-ink-2);
  font-size: 13px;
  font-weight: 500;
  text-align: left;
}
body .module-nav button i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--rf-line-strong);
  box-shadow: none;
}
body .module-nav button:hover { background: rgba(0, 0, 0, .04); color: var(--rf-ink); }
body .module-nav button.active {
  background: var(--rf-surface);
  color: var(--rf-ink);
  font-weight: 600;
  box-shadow: var(--rf-sh-sm);
}
body .module-nav button.active i { background: var(--rf-accent); box-shadow: 0 0 0 3px rgba(0, 113, 227, .16); }
body .module-nav small {
  background: rgba(0, 0, 0, .06);
  color: var(--rf-muted);
  border-radius: var(--rf-r-pill);
  padding: 1px 7px;
  font-size: 10px;
  font-weight: 600;
}
body .module-nav button.active small { background: var(--rf-accent-soft); color: var(--rf-accent); }

body .connection-badge {
  padding: 9px 13px;
  background: var(--rf-surface);
  border: 1px solid var(--rf-line);
  border-radius: var(--rf-r-md);
  color: var(--rf-muted);
  font-size: 12px;
  font-weight: 500;
  box-shadow: var(--rf-sh-xs);
}
body .connection-badge i { width: 7px; height: 7px; border-radius: 50%; background: var(--rf-muted-2); }
body .connection-badge.connected { color: var(--rf-positive); }
body .connection-badge.connected i { background: var(--rf-positive); box-shadow: 0 0 0 3px rgba(29, 158, 95, .14); }
body .connection-badge.watching { color: var(--rf-violet); }
body .connection-badge.watching i { background: var(--rf-violet); box-shadow: 0 0 0 3px rgba(107, 90, 214, .14); }

/* ------------------------------------------------------------ 卡片 / 容器 --- */

body .panel,
body .insight-card,
body .overview-card,
body .trend-card,
body .material-card,
body .talk-script-panel,
body .speech-block,
body .live-state-card,
body .auto-transcript-card,
body .live-transcript-card,
body .transcript-history-card,
body .product-speech-card,
body .archive-card {
  background: var(--rf-surface);
  border: 1px solid var(--rf-line);
  border-radius: var(--rf-r-lg);
  box-shadow: var(--rf-sh-sm);
}

body .panel { padding: 26px 28px; }
body .hero {
  padding: 40px 40px 34px;
  border-radius: var(--rf-r-xl);
  background:
    radial-gradient(120% 140% at 0% 0%, rgba(0, 113, 227, .07), transparent 55%),
    var(--rf-surface);
  box-shadow: var(--rf-sh-md);
}
body .hero h2 {
  font-size: clamp(28px, 3.4vw, 40px);
  font-weight: 700;
  line-height: 1.22;
  letter-spacing: -.03em;
  margin: 12px 0 14px;
}
body .hero h2 em {
  font-style: normal;
  background: linear-gradient(96deg, #0071e3, #6b5ad6 92%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
body .hero-copy { font-size: 14px; line-height: 1.75; max-width: 62ch; }
body .hero .eyebrow { margin-bottom: 4px; }

body .section-divider { border-top: 1px solid var(--rf-line); font-size: 17px; font-weight: 650; letter-spacing: -.02em; padding-top: 18px; margin-top: 26px; }

/* 卡片内的小标题块统一：淡底 + 圆角，取代裸边线 */
body .heading-actions,
body .studio-heading,
body .analytics-head,
body .transcript-head,
body .console-head,
body .knowledge-head,
body .screens-header {
  gap: 12px;
  align-items: center;
}
body :is(.analytics-head, .transcript-head, .console-head, .knowledge-head, .screens-header) h3,
body .studio-heading h3 { font-size: 20px; font-weight: 650; letter-spacing: -.02em; }

body .history-bar,
body .rooms-bar,
body .live-status-board,
body .table-head {
  background: var(--rf-surface-2);
  border-radius: var(--rf-r-md);
}

/* 复盘页是「窄卡片 + 长列表」两栏：让左栏按自身内容收高，
   否则趋势卡会被右侧长列表拉长、底部留出一大片空白。 */
body .analytics-grid,
body .two-column,
body .editorial-grid { align-items: start; }
body .analytics-grid > *,
body .two-column > * { align-self: start; }
body .table-head {
  border: 1px solid var(--rf-line);
  border-bottom: 1px solid var(--rf-line);
  color: var(--rf-muted);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: 11px 16px;
}

/* ---------------------------------------------------------------- 按钮 --- */

body .primary,
body .speech-block .primary,
body .speech-button-row .primary {
  background: linear-gradient(180deg, #1a86ff, var(--rf-accent));
  color: #fff;
  border: none;
  border-radius: var(--rf-r-md);
  padding: 0 20px;
  height: 44px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -.005em;
  box-shadow: var(--rf-sh-accent);
}
body .primary:hover,
body .speech-block .primary:hover {
  background: linear-gradient(180deg, #0b7cf5, var(--rf-accent-press));
  transform: translateY(-1px);
  box-shadow: 0 10px 24px -8px rgba(0, 113, 227, .58);
}
body .primary:active { transform: translateY(0); box-shadow: var(--rf-sh-xs); }
body .primary:disabled,
body .secondary:disabled,
body button:disabled { opacity: .42; box-shadow: none; transform: none; cursor: not-allowed; }

body .secondary,
body .outline,
body .icon-button,
body .speech-tabs button,
body .speech-block button,
body .transcript-toggle {
  background: var(--rf-surface);
  color: var(--rf-ink-2);
  border: 1px solid var(--rf-line-strong);
  border-radius: var(--rf-r-md);
  height: 44px;
  padding: 0 18px;
  font-size: 14px;
  font-weight: 550;
  box-shadow: var(--rf-sh-xs);
}
body :is(.secondary, .outline, .icon-button, .speech-tabs button, .transcript-toggle):hover {
  background: var(--rf-surface);
  border-color: rgba(0, 0, 0, .22);
  color: var(--rf-ink);
  transform: translateY(-1px);
  box-shadow: var(--rf-sh-sm);
}
body :is(.secondary, .outline, .icon-button):active { transform: translateY(0); }
body .secondary.monitor-action { color: var(--rf-violet); border-color: #d8d2f5; }
body .secondary.monitor-action:hover { background: var(--rf-violet-soft); color: var(--rf-violet); border-color: #c3b9f0; }

body .icon-button { width: 44px; padding: 0; border-radius: var(--rf-r-md); }
body .danger-text, body .history-delete, body .transcript-remove, body .knowledge-remove { color: var(--rf-danger); }
body .history-delete:hover, body .transcript-remove:hover { background: var(--rf-danger-soft); }

body .toast {
  background: rgba(29, 29, 31, .92);
  color: #fff;
  border: none;
  border-radius: var(--rf-r-md);
  padding: 12px 18px;
  font-size: 13px;
  font-weight: 500;
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  box-shadow: var(--rf-sh-lg);
}

/* ------------------------------------------------------------ 指标 / 数字 --- */

body .metric,
body .analytics-metrics article,
body .speech-metrics > div,
body .insight-stats > *,
body .knowledge-stats > * {
  background: var(--rf-surface);
  border: 1px solid var(--rf-line);
  border-radius: var(--rf-r-md);
  box-shadow: var(--rf-sh-xs);
  transition: box-shadow .28s var(--rf-ease), transform .28s var(--rf-ease);
}
body :is(.metric, .analytics-metrics article, .speech-metrics > div):hover {
  transform: translateY(-2px);
  box-shadow: var(--rf-sh-md);
}
body .metric strong,
body .analytics-metrics strong,
body .speech-metrics strong {
  font-family: var(--rf-font);
  font-size: 30px;
  font-weight: 650;
  letter-spacing: -.03em;
  color: var(--rf-ink);
  font-variant-numeric: tabular-nums;
}
body .metric span,
body .metric small,
body .analytics-metrics small,
body .speech-metrics span {
  color: var(--rf-muted-2);
  font-size: 11px;
  letter-spacing: .06em;
  text-transform: uppercase;
  font-weight: 600;
}
/* 指标卡配色收敛：默认黑，只有真正表达状态时才上色 */
body .metric.cyan strong, body .analytics-metrics .quality strong { color: var(--rf-accent); }
body .metric.magenta strong { color: var(--rf-violet); }
body .metric.lime strong { color: var(--rf-positive); }

/* 指标卡的装饰线：收成底部一小段圆头短条，且只在有语义时上色，
   避免一排卡片底部出现四种颜色的线把视觉打散。 */
body .metric::after,
body .analytics-metrics article::after,
body .insight-stats article::after {
  left: 22px;
  bottom: 0;
  width: 26px;
  height: 3px;
  border-radius: var(--rf-r-pill);
  background: var(--rf-line-strong);
  opacity: 1;
}
body .metric.cyan::after,
body .analytics-metrics .quality::after { background: var(--rf-accent); }
body .metric.magenta::after,
body .analytics-metrics .intent::after { background: var(--rf-violet); }
body .metric.lime::after { background: var(--rf-positive); }

/* ---------------------------------------------------------------- 表单 --- */

body .input-wrap,
body .search,
body .history-date,
body .history-date select,
body .export-menu,
body input,
body textarea,
body select,
body .talk-settings input,
body .speech-editor input,
body .speech-editor textarea,
body .speech-settings-grid input,
body .speech-settings-grid textarea {
  background: var(--rf-surface);
  color: var(--rf-ink);
  border: 1px solid var(--rf-line-strong);
  border-radius: var(--rf-r-md);
  font-size: 14px;
  line-height: 1.7;
}
body input, body select { height: 44px; }
body textarea { padding: 12px 14px; }
body .input-wrap { padding: 0 6px 0 14px; }
body .input-wrap input { border: none; height: 44px; background: transparent; }
body .input-wrap svg { color: var(--rf-muted-2); }
body .input-wrap:focus-within {
  border-color: var(--rf-accent);
  box-shadow: 0 0 0 4px rgba(0, 113, 227, .12);
}
body input:focus, body textarea:focus, body select:focus {
  outline: none;
  border-color: var(--rf-accent);
  box-shadow: 0 0 0 4px rgba(0, 113, 227, .12);
}
body input::placeholder, body textarea::placeholder { color: var(--rf-muted-2); }
body .filter,
body .room-tab,
body .capability-row span {
  background: var(--rf-surface);
  border: 1px solid var(--rf-line);
  border-radius: var(--rf-r-pill);
  color: var(--rf-ink-2);
  font-size: 12px;
  font-weight: 550;
  padding: 7px 13px;
}
body .filter:hover, body .room-tab:hover { border-color: var(--rf-line-strong); background: var(--rf-surface-2); }
body .filter.active, body .room-tab.active {
  background: var(--rf-ink);
  border-color: var(--rf-ink);
  color: #fff;
  box-shadow: var(--rf-sh-sm);
}
body .filter.active span, body .room-tab.active span { color: rgba(255, 255, 255, .72); }
body .filter span, body .room-tab span { color: var(--rf-muted-2); }
body .capability-row span { color: var(--rf-muted); background: transparent; border-color: transparent; padding-left: 0; }
body .capability-row span i { background: var(--rf-accent); width: 5px; height: 5px; border-radius: 50%; box-shadow: none; }
body .status-line { color: var(--rf-muted); font-size: 13px; }
body .status-line i { background: var(--rf-accent); box-shadow: 0 0 0 3px rgba(0, 113, 227, .14); }

body .feishu-panel summary,
body .speech-monitor-controls,
body .speech-settings {
  background: var(--rf-surface-2);
  border: 1px solid var(--rf-line);
  border-radius: var(--rf-r-md);
}

/* --------------------------------------------------- 列表 / 事件 / 表格 --- */

body .event-row {
  border-bottom: 1px solid var(--rf-line);
  padding: 1px 14px;
  transition: background-color .18s var(--rf-ease);
}
body .event-row:hover { background: var(--rf-accent-soft); }
body .event-row[data-type=lifecycle] { background: var(--rf-bg-soft); }
body .event-row[data-type=lifecycle]:hover { background: var(--rf-violet-soft); }
body .event-time, body .event-room { color: var(--rf-muted-2); font-size: 12px; }
body .event-user { color: var(--rf-ink-2); font-weight: 550; }
body .event-content { color: var(--rf-ink); }
body .event-row .event-content { line-height: 1.65; }

body :is(.room-share-list, .rank-list, .recommendation-list, .intent-list, .question-list, .topic-list) > * {
  border-radius: var(--rf-r-sm);
}
body :is(.rank-bar, .room-share > i, .intent-item > i) {
  background: var(--rf-bg-soft);
  border-radius: var(--rf-r-pill);
  overflow: hidden;
}
body :is(.rank-bar i, .room-share > i i, .intent-item > i i) {
  background: linear-gradient(90deg, #4da3ff, var(--rf-accent));
  border-radius: var(--rf-r-pill);
}
body .rank-index {
  background: var(--rf-bg-soft);
  color: var(--rf-muted);
  border-radius: var(--rf-r-xs);
  font-weight: 650;
  font-variant-numeric: tabular-nums;
}
body .recommendation-list li {
  background: var(--rf-surface-2);
  border: 1px solid var(--rf-line);
  border-radius: var(--rf-r-sm);
  padding: 11px 14px;
  color: var(--rf-ink-2);
  line-height: 1.7;
}

/* 高频问题 / 高频关注点：每一条都做成可读的软卡片 */
body .topic-item {
  background: var(--rf-surface);
  border: 1px solid var(--rf-line);
  border-radius: var(--rf-r-md);
  padding: 14px 16px;
  box-shadow: var(--rf-sh-xs);
  transition: box-shadow .26s var(--rf-ease), transform .26s var(--rf-ease), border-color .26s var(--rf-ease);
}
body .topic-item:hover {
  transform: translateY(-2px);
  border-color: var(--rf-accent-line);
  box-shadow: var(--rf-sh-md);
}
body .topic-head > span { color: var(--rf-ink); font-weight: 600; font-size: 14px; letter-spacing: -.01em; }
body .topic-head > em {
  color: var(--rf-accent);
  background: var(--rf-accent-soft);
  border-radius: var(--rf-r-pill);
  padding: 2px 9px;
  font-size: 11px;
  font-weight: 600;
  font-style: normal;
}
body .topic-head > i { color: var(--rf-muted-2); font-variant-numeric: tabular-nums; font-weight: 600; }
body .topic-samples { color: var(--rf-muted); font-size: 12px; line-height: 1.75; }
body .question-list span {
  background: var(--rf-bg-soft);
  color: var(--rf-ink-2);
  border-radius: var(--rf-r-pill);
  padding: 4px 10px;
  font-size: 12px;
}

/* 趋势柱：单色渐变，去掉彩虹感 */
body .trend-bar i { background: linear-gradient(180deg, #78bcff, var(--rf-accent)); border-radius: var(--rf-r-xs) var(--rf-r-xs) 2px 2px; }
body .trend-bar span, body .trend-bar b, body .analytics-updated { color: var(--rf-muted); }
body .length-distribution i:nth-child(1) { background: #cfe3fb; }
body .length-distribution i:nth-child(2) { background: #78bcff; }
body .length-distribution i:nth-child(3) { background: var(--rf-accent); }
body .length-distribution { background: var(--rf-bg-soft); border-radius: var(--rf-r-md); }

/* ------------------------------------------------------------ 话术 / 编辑 --- */

body .speech-block { padding: 30px 34px; }
body .speech-block header strong { font-size: 17px; font-weight: 650; }
body .speech-paragraph {
  color: var(--rf-ink);
  font-size: 16px;
  line-height: 2.05;
  max-width: 74ch;
}
body .speech-tabs button {
  height: 36px;
  padding: 0 14px;
  font-size: 13px;
  border-radius: var(--rf-r-pill);
  border-color: transparent;
  box-shadow: none;
  background: transparent;
}
body .speech-tabs button:hover { background: rgba(0, 0, 0, .05); transform: none; box-shadow: none; }
body .speech-tabs button.active {
  background: var(--rf-surface);
  border-color: var(--rf-line);
  box-shadow: var(--rf-sh-xs);
  color: var(--rf-ink);
  font-weight: 600;
}
body .speech-review,
body .capture-guide,
body .capture-guide.auto {
  background: var(--rf-accent-soft);
  border: 1px solid var(--rf-accent-line);
  border-radius: var(--rf-r-md);
}
body .speech-badge {
  background: var(--rf-positive-soft);
  color: var(--rf-positive);
  border: 1px solid #cdeadd;
  border-radius: var(--rf-r-pill);
  font-weight: 600;
}
body .speech-badge.pending { background: var(--rf-warn-soft); color: var(--rf-warn); border-color: #f0dcb8; }
body .speech-tags span { background: var(--rf-bg-soft); color: var(--rf-ink-2); border-radius: var(--rf-r-pill); padding: 3px 9px; font-size: 11px; }
body .speech-checks span { background: var(--rf-warn-soft); color: var(--rf-warn); border-radius: var(--rf-r-pill); }
body .speech-risk { background: var(--rf-danger-soft); color: var(--rf-danger); border-radius: var(--rf-r-sm); }
body .speech-dimension { background: var(--rf-surface-2); border: 1px solid var(--rf-line); border-radius: var(--rf-r-md); }
body .speech-dimension.found { background: var(--rf-positive-soft); border-color: #cdeadd; }
body .speech-rewrite-list li { background: var(--rf-warn-soft); border-radius: var(--rf-r-sm); }
body .speech-host-reviews article { border: 1px solid var(--rf-line); border-radius: var(--rf-r-md); box-shadow: var(--rf-sh-xs); }

body .audience-review-grid > section,
body .daily-studio {
  background: var(--rf-surface);
  border: 1px solid var(--rf-line);
  border-radius: var(--rf-r-lg);
  box-shadow: var(--rf-sh-sm);
}
body .daily-studio { padding: 28px; }
body .daily-heading h3 { font-size: 24px; font-weight: 680; letter-spacing: -.025em; }
body .daily-hosts button {
  background: var(--rf-surface);
  border: 1px solid var(--rf-line);
  border-radius: var(--rf-r-md);
  box-shadow: var(--rf-sh-xs);
  transition: box-shadow .26s var(--rf-ease), transform .26s var(--rf-ease), border-color .26s var(--rf-ease);
}
body .daily-hosts button:hover { transform: translateY(-2px); box-shadow: var(--rf-sh-md); border-color: var(--rf-accent-line); }
body .daily-hosts button.active { background: var(--rf-accent-soft); border-color: var(--rf-accent-line); }
body .daily-hosts strong { color: var(--rf-ink); font-weight: 650; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
body .daily-hosts button.active strong { color: var(--rf-accent); }
body .daily-room-heading > strong { color: var(--rf-ink); font-weight: 650; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
body .daily-gap { background: var(--rf-warn-soft); border: 1px solid #f0dcb8; border-radius: var(--rf-r-md); color: var(--rf-warn); }
body .daily-review-grid article { background: var(--rf-surface-2); border-radius: var(--rf-r-md); border: 1px solid var(--rf-line); }
body .daily-themes > div { border-left: 2px solid var(--rf-accent-line); }

/* 素材卡片（视频选题） */
body .material-card header { gap: 16px; }
body .material-rank {
  background: var(--rf-accent-soft);
  color: var(--rf-accent);
  border-radius: var(--rf-r-sm);
  font-family: var(--rf-font-num);
  font-weight: 650;
}
body .material-card h4 { font-weight: 650; letter-spacing: -.02em; line-height: 1.5; }
body .material-topic { color: var(--rf-accent); font-weight: 600; }
body .material-score { background: var(--rf-bg-soft); color: var(--rf-muted); border-radius: var(--rf-r-pill); font-weight: 600; }
body .material-card blockquote {
  background: var(--rf-surface-2);
  border-left: 3px solid var(--rf-accent);
  border-radius: 0 var(--rf-r-md) var(--rf-r-md) 0;
  color: var(--rf-ink);
  font-size: 16px;
  line-height: 1.9;
}
body .material-reasons span {
  border: 1px solid var(--rf-line);
  background: var(--rf-surface-2);
  color: var(--rf-ink-2);
  border-radius: var(--rf-r-pill);
  padding: 3px 10px;
}
body .source-caption { color: var(--rf-muted-2); }

/* 遮罩层与弹窗：苹果式玻璃 + 大圆角 */
body .live-dialog-shell,
body dialog {
  background: rgba(255, 255, 255, .86);
  backdrop-filter: blur(30px) saturate(180%);
  -webkit-backdrop-filter: blur(30px) saturate(180%);
  border-radius: var(--rf-r-xl);
  border: 1px solid rgba(255, 255, 255, .7);
  box-shadow: var(--rf-sh-lg);
}
body .live-dialog-toolbar { background: rgba(255, 255, 255, .6); border-bottom: 1px solid var(--rf-line); }

/* 画面墙：卡片圆角与描边统一 */
body .screens-grid > *,
body .shot,
body .shot-list > * {
  border-radius: var(--rf-r-md);
  border: 1px solid var(--rf-line);
  overflow: hidden;
  box-shadow: var(--rf-sh-xs);
}
body .screens-focus-stage { border-radius: var(--rf-r-lg); overflow: hidden; box-shadow: var(--rf-sh-md); }

/* 空态与加载态：淡灰、居中、不喧哗 */
body .empty-state,
body .empty-list,
body .transcript-empty,
body .screens-empty,
body .knowledge-empty,
body .live-dialog-empty {
  color: var(--rf-muted-2);
  border: 1px dashed var(--rf-line-strong);
  border-radius: var(--rf-r-md);
  background: var(--rf-surface-2);
  padding: 28px 20px;
  font-size: 13px;
}

body footer { color: var(--rf-muted-2); font-size: 12px; }

/* --------------------------------------------------------- 滚动出现的动效 --- */
@media (prefers-reduced-motion: no-preference) {
  body .panel,
  body .insight-card,
  body .analytics-panel,
  body .transcript-panel {
    animation: rf-rise .5s var(--rf-ease) both;
  }
  @keyframes rf-rise {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: none; }
  }
}

/* --------------------------------------------------------------- 响应式 --- */
@media (max-width: 1180px) {
  body .shell { width: calc(100% - 32px); }
  body .panel { padding: 22px; }
  body .hero { padding: 30px 26px; }
}
@media (max-width: 760px) {
  body .hero h2 { font-size: 26px; letter-spacing: -.02em; }
  body .metric strong, body .analytics-metrics strong { font-size: 24px; }
  body .panel { border-radius: var(--rf-r-md); padding: 18px; }
  body .module-nav { border-radius: var(--rf-r-md); }
}

/* ---------- 短视频监测（4.0.0） ---------- */
body .video-accounts { display: grid; gap: 10px; margin: 14px 0 18px; }
body .video-account { border: 1px solid var(--rf-line, #e2e6ee); border-radius: 12px; padding: 12px 14px; background: var(--rf-surface, #fff); }
body .video-account.paused { opacity: .6; }
body .video-account header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
body .video-account .speech-note { margin: 6px 0; }
body .video-badge { font-size: 12px; padding: 2px 8px; border-radius: 999px; background: rgba(37, 99, 235, .1); color: #1d4ed8; }
body .video-button-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
body .video-button-row button, body .video-link { font-size: 13px; padding: 6px 12px; border-radius: 8px; border: 1px solid var(--rf-line, #d7dce6); background: #fff; cursor: pointer; text-decoration: none; color: inherit; }
body .video-toolbar { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; margin: 16px 0 12px; }
body .video-toolbar label { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: #55607a; }
body .video-toolbar select, body .video-toolbar input { font-size: 14px; padding: 7px 10px; border-radius: 8px; border: 1px solid var(--rf-line, #d7dce6); }
body .video-search { flex: 1 1 200px; }
body .video-list { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
body .video-card { display: flex; gap: 12px; border: 1px solid var(--rf-line, #e2e6ee); border-radius: 12px; padding: 10px; cursor: pointer; background: var(--rf-surface, #fff); }
body .video-card:hover { border-color: #9db4e0; }
body .video-card img, body .video-cover-empty { width: 84px; height: 112px; object-fit: cover; border-radius: 8px; flex: 0 0 auto; background: #eef1f6; }
body .video-card-body { min-width: 0; }
body .video-card-body strong { display: block; font-size: 14px; line-height: 1.5; margin-bottom: 4px; }
body .video-card-body .speech-note { margin: 0 0 6px; font-size: 12px; }
body .video-stats { display: flex; flex-wrap: wrap; gap: 8px; font-size: 12px; color: #4a5568; }
body .video-stats span { background: #f3f5f9; border-radius: 6px; padding: 2px 7px; }
body .video-detail { margin-top: 16px; border: 1px solid var(--rf-line, #e2e6ee); border-radius: 12px; padding: 14px; background: var(--rf-surface, #fff); }
body .video-detail-head { display: flex; justify-content: space-between; gap: 14px; align-items: flex-start; }
body .video-detail-head p { margin: 6px 0 0; font-size: 13px; color: #47506a; white-space: pre-wrap; }
body .video-comments { list-style: none; padding: 0; margin: 14px 0 0; display: grid; gap: 10px; max-height: 460px; overflow: auto; }
body .video-comments li { border-left: 3px solid #e2e6ee; padding-left: 10px; }
body .video-comments p { margin: 0 0 3px; font-size: 14px; }
body .video-comments small { color: #6b7280; font-size: 12px; }
body .video-panel .warning { color: #b45309; font-size: 13px; }

/* ---------- 短视频：播放器、口播文案（4.0.0） ---------- */
body .app-version { font-weight: 600; color: #1d4ed8; }
body .video-player { width: 100%; max-height: 420px; margin: 12px 0; border-radius: 10px; background: #000; display: block; }
body .video-script { margin-top: 14px; border: 1px solid var(--rf-line, #e2e6ee); border-radius: 10px; padding: 12px; background: #fafbfd; }
body .video-script header, body .video-comments-wrap header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
body .video-script-text { white-space: pre-wrap; font: inherit; font-size: 14px; line-height: 1.85; margin: 10px 0 0; max-height: 420px; overflow: auto; }
body .video-progress { height: 6px; border-radius: 999px; background: #e6eaf2; overflow: hidden; margin: 8px 0; }
body .video-progress i { display: block; height: 100%; background: linear-gradient(90deg, #2563eb, #60a5fa); transition: width .4s ease; }
body .video-badge.running { background: rgba(37, 99, 235, .12); }
body .video-badge.error { background: rgba(220, 38, 38, .12); color: #b91c1c; }
body .video-comments-wrap { margin-top: 16px; }
body .video-account.paused { opacity: .6; }

/* ---------- 文案框架结构分析（4.0.0） ---------- */
body .video-analysis { margin-top: 14px; border: 1px solid var(--rf-line, #e2e6ee); border-radius: 10px; padding: 12px; background: #fff; }
body .video-analysis header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
body .video-analysis-structure { list-style: none; padding: 0; margin: 10px 0; display: grid; gap: 6px; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
body .video-analysis-structure li { border-left: 3px solid #16a34a; padding: 4px 0 4px 9px; font-size: 13px; line-height: 1.6; }
body .video-analysis-structure li.missing { border-left-color: #d1d5db; color: #6b7280; }
body .video-analysis-structure li strong { margin-right: 6px; }
body .video-analysis-structure li span { color: #6b7280; font-size: 12px; }
body .video-analysis-structure li em { display: block; color: #334155; font-style: normal; font-size: 12px; margin-top: 2px; }
body .video-analysis-facts { display: flex; flex-wrap: wrap; gap: 8px; font-size: 12px; color: #4a5568; margin: 8px 0; }
body .video-analysis-facts span { background: #f3f5f9; border-radius: 6px; padding: 3px 8px; }
body .video-analysis-advice { margin: 8px 0 0 18px; font-size: 13px; line-height: 1.8; }

/* ---------- 联网校对（LLM） ---------- */
body .llm-config { margin: 14px 0; border: 1px solid var(--rf-line, #e2e6ee); border-radius: 12px; background: var(--rf-surface, #fff); padding: 10px 14px; }
body .llm-config summary { cursor: pointer; font-size: 14px; display: flex; align-items: center; gap: 10px; }
body .llm-config-body { padding-top: 10px; }
body .llm-config-grid { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); margin: 12px 0; }
body .llm-config-grid label, body .llm-config-prompt { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: #55607a; }
body .llm-config-grid input, body .llm-config-prompt textarea { font-size: 14px; padding: 8px 10px; border-radius: 8px; border: 1px solid var(--rf-line, #d7dce6); font-family: inherit; }
body .llm-config-prompt textarea { line-height: 1.7; resize: vertical; }
body .llm-config-enable { display: flex; align-items: center; gap: 6px; font-size: 13px; color: #55607a; }
body .llm-config code { background: #f3f5f9; padding: 1px 5px; border-radius: 4px; font-size: 12px; }

body .video-proofread { margin-top: 14px; border: 1px solid var(--rf-line, #e2e6ee); border-radius: 10px; padding: 12px; background: #fff; }
body .video-proofread header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
body .proofread-edits { list-style: none; padding: 0; margin: 12px 0; display: grid; gap: 8px; max-height: 460px; overflow: auto; }
body .proofread-edits li { border-left: 3px solid #16a34a; padding: 6px 0 6px 10px; font-size: 14px; line-height: 1.8; }
body .proofread-edits li .type { display: inline-block; font-size: 12px; color: #1d4ed8; background: rgba(37, 99, 235, .1); border-radius: 999px; padding: 1px 8px; margin-right: 6px; }
body .proofread-edits li del { color: #b91c1c; background: rgba(220, 38, 38, .08); text-decoration: line-through; padding: 0 2px; border-radius: 3px; }
body .proofread-edits li ins { color: #15803d; background: rgba(22, 163, 74, .1); text-decoration: none; padding: 0 2px; border-radius: 3px; font-weight: 600; }
body .proofread-edits li em { display: block; font-style: normal; font-size: 12px; color: #6b7280; margin-top: 2px; }
body .proofread-rejected { margin-top: 10px; font-size: 13px; }
body .proofread-rejected li { font-size: 12px; line-height: 1.7; color: #6b7280; }
body .proofread-rejected del { color: #9ca3af; text-decoration: line-through; }
body .proofread-rejected ins { color: #6b7280; text-decoration: none; }
body .video-proofread details { margin-top: 10px; font-size: 13px; }
body .video-proofread summary { cursor: pointer; color: #55607a; }
body .video-proofread pre { white-space: pre-wrap; font: inherit; font-size: 14px; line-height: 1.85; margin: 10px 0 0; max-height: 420px; overflow: auto; }

/* ── 话术生成（Lulala 智能体） ─────────────────────────────── */
.writer-form textarea {
  width: 100%;
  min-height: 64px;
  resize: vertical;
  border: 1px solid var(--border, #d8dee9);
  border-radius: 10px;
  padding: 10px 12px;
  font: inherit;
  background: var(--panel, #fff);
  color: inherit;
}
.writer-form .writer-options {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 10px;
}
.writer-form .writer-options label {
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}
.writer-form .writer-options select {
  border: 1px solid var(--border, #d8dee9);
  border-radius: 8px;
  padding: 6px 10px;
  font: inherit;
  background: var(--panel, #fff);
  color: inherit;
}
.writer-piece { margin: 10px 0 16px; }
.writer-piece .video-button-row { margin-bottom: 6px; }
.writer-history { margin-top: 16px; }
.writer-history summary { cursor: pointer; font-weight: 600; }

/* ── 转文字历史 ─────────────────────────────── */
.transcribe-history { margin: 14px 0; }
.transcribe-history summary { cursor: pointer; font-weight: 600; display: flex; align-items: center; gap: 8px; }
.history-body { margin-top: 8px; }
.history-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.history-list li button {
  width: 100%; text-align: left; display: flex; flex-direction: column; gap: 2px;
  padding: 8px 10px; border: 1px solid var(--border, #d8dee9); border-radius: 8px;
  background: var(--panel, #fff); color: inherit; cursor: pointer; font: inherit;
}
.history-list li button:hover { border-color: var(--accent, #4c6ef5); }
.history-list li.is-error button { opacity: .75; }
.history-time { font-size: 12px; opacity: .65; }
.history-title { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.history-meta { font-size: 12px; opacity: .75; }

/* ── 短视频监测：折叠面板 / 类目筛选 / 数据走向图 ─────────────── */
body .panel-collapse { border: 1px solid var(--rf-line, #e2e6ee); border-radius: 12px; background: var(--rf-surface, #fff); margin: 12px 0; overflow: hidden; }
body .panel-collapse > summary { cursor: pointer; padding: 10px 14px; font-weight: 600; font-size: 14px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; list-style: none; }
body .panel-collapse > summary::-webkit-details-marker { display: none; }
body .panel-collapse > summary::before { content: '▸'; color: #8a93a6; transition: transform .15s; }
body .panel-collapse[open] > summary::before { transform: rotate(90deg); }
body .panel-collapse-body { padding: 4px 14px 14px; }
body .video-badge.warn { background: rgba(220, 78, 78, .12); color: #b42318; }
body .account-trend { margin-top: 10px; border-top: 1px dashed var(--rf-line, #e2e6ee); padding-top: 10px; }
body .trend-svg { width: 100%; height: 100px; display: block; }
body .trend-legend { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; font-size: 12px; color: #5b6472; }
body .trend-legend-item { display: inline-flex; align-items: center; gap: 5px; }
body .trend-legend-item i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }
body .cat-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0; }
body .cat-chip { border: 1px solid var(--rf-line, #e2e6ee); border-radius: 999px; background: transparent; padding: 3px 10px; font-size: 12px; cursor: pointer; color: inherit; }
body .cat-chip.active { border-color: #c2410c; background: rgba(194, 65, 12, .1); color: #c2410c; font-weight: 600; }
body .video-comments li small .cat-tag { color: #8a93a6; }
body .history-list li.is-comments .history-title { color: #0e7490; }

/* ── 达人类型 tab / 走向条 / 类目 chips 补充 ─────────────────── */
body .kind-tabs { display: flex; gap: 8px; margin-bottom: 12px; }
body .kind-tab { border: 1px solid var(--rf-line, #e2e6ee); border-radius: 999px; background: transparent; padding: 5px 14px; font-size: 13px; cursor: pointer; color: inherit; }
body .kind-tab.active { border-color: #c2410c; background: rgba(194, 65, 12, .1); color: #c2410c; font-weight: 600; }
body .link-btn { border: 0; background: none; color: #0e7490; cursor: pointer; font-size: 12px; padding: 0; text-decoration: underline; }
body .vm-trend-line { width: 100%; height: auto; display: block; background: var(--rf-surface, #fff); border: 1px solid var(--rf-line, #e2e6ee); border-radius: 10px; }
body .vm-legend { display: flex; flex-wrap: wrap; gap: 12px; margin: 8px 0 4px; font-size: 12px; color: #5b6472; }
body .vm-legend-item { display: inline-flex; align-items: center; gap: 5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 200px; }
body .vm-legend-item i { width: 14px; height: 3px; border-radius: 2px; display: inline-block; }
body .cat-chip.empty { opacity: .45; }
body .video-kind-select { font-size: 13px; display: inline-flex; align-items: center; gap: 6px; }
body .video-kind-select select { padding: 6px 8px; border-radius: 8px; border: 1px solid var(--rf-line, #e2e6ee); background: var(--rf-surface, #fff); color: inherit; }

/* ── 弹幕复盘：话题分类卡片（vm- 前缀，与短视频监测共用 cat-chip）── */
body .topic-samples-box { margin-top: 4px; }
body .topic-samples-box .video-comments { max-height: 320px; }
body .cat-chip.empty { opacity: .4; }

/* ── 火山妙记配置教程步骤 ─────────────────────────────────── */
body .tingwu-guide-steps { margin: 8px 0; padding-left: 20px; display: grid; gap: 8px; font-size: 13px; line-height: 1.65; }
body .tingwu-guide-steps a { color: #0e7490; text-decoration: underline; }
body .tingwu-guide-steps code { background: rgba(148, 163, 184, .15); border-radius: 4px; padding: 1px 6px; font-size: 12px; }

/* ── 短视频账号数据分析看板（4.8.16）──────────────────────── */
body .vm-overview-metrics {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
  margin: 18px 0 12px;
}
body .vm-overview-card {
  position: relative;
  min-width: 0;
  padding: 14px 15px 13px;
  border: 1px solid #dfe6ef;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 5px 16px rgba(30, 52, 79, .05);
  overflow: hidden;
}
body .vm-overview-card::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 4px; background: #2563eb; }
body .vm-overview-card[data-tone="videos"]::before { background: #7c3aed; }
body .vm-overview-card[data-tone="digg"]::before { background: #ea580c; }
body .vm-overview-card[data-tone="comments"]::before { background: #0f766e; }
body .vm-overview-card[data-tone="collect"]::before { background: #c026d3; }
body .vm-overview-card[data-tone="share"]::before { background: #0891b2; }
body .vm-overview-card > span { display: block; color: #64748b; font-size: 12px; font-weight: 600; }
body .vm-overview-card > strong { display: block; margin: 5px 0 3px; color: #0f172a; font-size: clamp(22px, 2vw, 30px); line-height: 1.05; letter-spacing: -.03em; }
body .vm-overview-card > small { display: block; color: #94a3b8; font-size: 11px; line-height: 1.45; }

body .vm-dashboard {
  margin: 0 0 18px;
  padding: 18px;
  border: 1px solid #dbe4ee;
  border-radius: 16px;
  background: linear-gradient(180deg, #f8fbff 0, #fff 190px);
  box-shadow: 0 12px 32px rgba(30, 64, 105, .06);
}
body .vm-dashboard-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 14px; }
body .vm-dashboard-head h3 { margin: 2px 0 5px; color: #0f172a; font-size: 22px; letter-spacing: -.02em; }
body .vm-dashboard-head p { margin: 0; max-width: 720px; color: #64748b; font-size: 13px; line-height: 1.65; }
body .vm-kicker { color: #2563eb; font-size: 10px; font-weight: 800; letter-spacing: .14em; }
body .vm-dashboard-filters { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; flex: 0 0 auto; }
body .vm-segment { display: inline-flex; padding: 3px; border: 1px solid #dbe4ee; border-radius: 10px; background: #f1f5f9; gap: 2px; }
body .vm-segment button { border: 0; border-radius: 7px; padding: 6px 10px; background: transparent; color: #64748b; font: inherit; font-size: 12px; cursor: pointer; white-space: nowrap; }
body .vm-segment button:hover { color: #1d4ed8; }
body .vm-segment button.active { background: #fff; color: #1d4ed8; font-weight: 700; box-shadow: 0 1px 4px rgba(15, 23, 42, .12); }

body .vm-insight-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 12px; }
body .vm-insight-grid article { position: relative; min-width: 0; padding: 13px 14px; border: 1px solid #e3e9f0; border-radius: 11px; background: rgba(255, 255, 255, .94); }
body .vm-insight-grid article::after { content: ''; position: absolute; top: 13px; right: 13px; width: 7px; height: 7px; border-radius: 50%; background: #2563eb; }
body .vm-insight-grid article[data-tone="efficiency"]::after { background: #ea580c; }
body .vm-insight-grid article[data-tone="activity"]::after { background: #0f766e; }
body .vm-insight-grid article[data-tone="freshness"]::after { background: #7c3aed; }
body .vm-insight-grid span { display: block; color: #64748b; font-size: 11px; font-weight: 600; }
body .vm-insight-grid strong { display: block; margin: 4px 18px 3px 0; color: #172033; font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body .vm-insight-grid small { display: block; color: #64748b; font-size: 11px; }

body .vm-analysis-card { min-width: 0; border: 1px solid #e0e7ef; border-radius: 13px; background: #fff; overflow: hidden; }
body .vm-analysis-card > header { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 14px 15px 11px; border-bottom: 1px solid #edf1f5; }
body .vm-analysis-card h4 { margin: 0 0 4px; color: #172033; font-size: 15px; }
body .vm-analysis-card header p { margin: 0; color: #64748b; font-size: 11px; line-height: 1.55; }
body .vm-data-note { flex: 0 0 auto; padding: 4px 8px; border-radius: 999px; background: #eef4ff; color: #1d4ed8; font-size: 11px; }
body .vm-account-ranking { margin-bottom: 12px; }
body .vm-table-scroll { overflow-x: auto; }
body .vm-account-ranking table { width: 100%; min-width: 850px; border-collapse: collapse; font-size: 12px; }
body .vm-account-ranking th { padding: 9px 10px; background: #f8fafc; color: #64748b; text-align: right; font-size: 11px; font-weight: 600; white-space: nowrap; }
body .vm-account-ranking th:first-child { text-align: left; min-width: 190px; }
body .vm-account-ranking td { padding: 10px; border-top: 1px solid #edf1f5; color: #334155; text-align: right; vertical-align: middle; white-space: nowrap; }
body .vm-account-ranking tbody tr:hover { background: #f8fbff; }
body .vm-account-ranking td:first-child { display: flex; align-items: center; gap: 9px; text-align: left; white-space: normal; }
body .vm-account-ranking td b { display: block; color: #172033; font-size: 13px; }
body .vm-account-ranking td small { display: block; margin-top: 2px; color: #94a3b8; font-size: 10px; }
body .vm-rank { display: inline-grid; flex: 0 0 24px; width: 24px; height: 24px; place-items: center; border-radius: 7px; background: #eef2f7; color: #64748b; font-weight: 700; }
body .vm-account-ranking tr:nth-child(1) .vm-rank { background: #fff3e8; color: #c2410c; }
body .vm-account-ranking tr:nth-child(2) .vm-rank { background: #eef4ff; color: #1d4ed8; }
body .vm-account-ranking tr:nth-child(3) .vm-rank { background: #edf9f4; color: #047857; }
body .vm-performance { display: inline-block; padding: 3px 7px; border-radius: 999px; background: #f1f5f9; color: #64748b; font-size: 10px; font-weight: 700; }
body .vm-performance.strong { background: #fff0e6; color: #c2410c; }
body .vm-performance.good { background: #eaf2ff; color: #1d4ed8; }
body .vm-performance.steady { background: #eaf8f2; color: #047857; }
body .vm-table-empty { padding: 28px !important; text-align: center !important; color: #94a3b8 !important; }

body .vm-dashboard-columns { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr); gap: 12px; align-items: stretch; }
body .vm-trend-controls { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; padding: 12px 15px 0; }
body .vm-trend-controls label { display: flex; min-width: 210px; flex-direction: column; gap: 4px; color: #64748b; font-size: 11px; }
body .vm-trend-controls select { max-width: 260px; padding: 7px 9px; border: 1px solid #dbe4ee; border-radius: 8px; background: #fff; color: #172033; font: inherit; font-size: 12px; }
body #vmTrendContent { padding: 12px 15px 14px; }
body .vm-trend-facts { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 9px; }
body .vm-trend-facts span { padding: 5px 8px; border-radius: 7px; background: #f1f5f9; color: #64748b; font-size: 10px; }
body .vm-trend-facts b { margin-right: 2px; color: #172033; font-size: 12px; }
body .vm-chart-note { margin: 7px 0 0; color: #64748b; font-size: 11px; line-height: 1.55; }
body .vm-empty-state { display: flex; min-height: 150px; flex-direction: column; align-items: center; justify-content: center; gap: 5px; padding: 22px; text-align: center; color: #64748b; }
body .vm-empty-state strong { color: #334155; }
body .vm-empty-state span { max-width: 420px; font-size: 12px; line-height: 1.55; }
body .vm-empty-state.error strong { color: #b42318; }

body .vm-top-list { display: grid; padding: 4px 12px 12px; }
body .vm-top-video { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 9px; align-items: center; width: 100%; padding: 9px 3px; border: 0; border-bottom: 1px solid #edf1f5; background: transparent; color: inherit; text-align: left; cursor: pointer; }
body .vm-top-video:last-child { border-bottom: 0; }
body .vm-top-video:hover .vm-top-copy strong { color: #1d4ed8; }
body .vm-top-index { display: grid; width: 24px; height: 24px; place-items: center; border-radius: 7px; background: #eef2f7; color: #64748b; font-size: 11px; font-weight: 800; }
body .vm-top-video:nth-child(-n+3) .vm-top-index { background: #fff0e6; color: #c2410c; }
body .vm-top-copy, body .vm-top-stats { min-width: 0; }
body .vm-top-copy strong { display: block; overflow: hidden; color: #334155; font-size: 12px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
body .vm-top-copy small, body .vm-top-stats small { display: block; margin-top: 2px; color: #94a3b8; font-size: 10px; }
body .vm-top-stats { text-align: right; white-space: nowrap; }
body .vm-top-stats b { color: #172033; font-size: 12px; }
body .vm-method-note { margin: 12px 2px 0; color: #64748b; font-size: 11px; line-height: 1.65; }
body .vm-method-note strong { color: #475569; }
body .vm-library-toolbar { padding-top: 4px; border-top: 1px solid #e7edf4; }
body .vm-library-title { display: flex; min-width: 180px; flex: 1 1 260px; flex-direction: column; gap: 2px; }
body .vm-library-title strong { color: #172033; font-size: 15px; }
body .vm-library-title span { color: #94a3b8; font-size: 11px; }

/* 爆发潜力监测：结论优先、证据可展开，低置信度不伪装成确定预测。 */
body .vm-factor-row { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
body .vm-factor-row span { padding: 3px 5px; border-radius: 5px; background: #f3f6fa; color: #6b778c; font-size: 9px; }
body .vm-factor-row b { color: #334155; }

/* 数据清洗与文件管理 */
body .data-panel { display: grid; gap: 14px; }
body .data-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
body .data-panel-head h2 { margin-bottom: 5px; }
body .data-panel-head p { margin: 0; max-width: 680px; color: #64748b; font-size: 12.5px; line-height: 1.65; }
body .data-panel-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
body .data-panel-actions button, body .data-download-manifest { min-height: 38px; padding: 9px 13px; border-radius: 10px; font-size: 12px; text-decoration: none; }
body .data-download-manifest { display: inline-flex; align-items: center; border: 1px solid #dbe3ee; background: #fff; color: #475569; }
body .data-manager-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
body .data-manager-metrics article { position: relative; overflow: hidden; padding: 14px 15px; border: 1px solid #e2e8f0; border-radius: 12px; background: #fff; }
body .data-manager-metrics article::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 3px; background: #2563eb; }
body .data-manager-metrics span, body .data-manager-metrics small { display: block; color: #64748b; font-size: 11px; }
body .data-manager-metrics strong { display: block; margin: 5px 0 3px; color: #172033; font-size: 24px; font-variant-numeric: tabular-nums; }
body .data-settings-card, body .data-files-card { border: 1px solid #e0e7ef; border-radius: 14px; background: #fff; overflow: hidden; }
body .data-settings-card > header, body .data-files-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 14px 16px; border-bottom: 1px solid #edf1f5; }
body .data-settings-card h3, body .data-files-card h3 { margin: 0 0 4px; color: #172033; font-size: 15px; }
body .data-settings-card header p, body .data-files-card header p { margin: 0; color: #64748b; font-size: 11px; }
body .data-restart-badge { flex: 0 0 auto; padding: 4px 9px; border-radius: 999px; background: #fff0e6; color: #c2410c; font-size: 11px; font-weight: 700; }
body .data-path-form { display: grid; grid-template-columns: minmax(240px, 1fr) minmax(240px, 1fr) auto; gap: 10px; align-items: end; padding: 14px 16px; }
body .data-path-form label:not(.data-copy-option) { display: grid; gap: 5px; color: #64748b; font-size: 11px; }
body .data-path-form input[type="text"], body .data-path-form input:not([type]) { min-height: 40px; padding: 8px 11px; border: 1px solid #dbe3ee; border-radius: 9px; color: #243047; font: inherit; }
body .data-path-form input[readonly] { background: #f8fafc; color: #64748b; }
body .data-copy-option { grid-column: 1 / 3; display: flex; align-items: center; gap: 7px; color: #475569; font-size: 11px; }
body .data-path-form > button { grid-column: 3; grid-row: 1 / 3; min-height: 40px; align-self: center; }
body .data-file-filters { display: flex; gap: 8px; }
body .data-file-filters select, body .data-file-filters input { min-height: 36px; padding: 7px 9px; border: 1px solid #dbe3ee; border-radius: 8px; background: #fff; color: #334155; font-size: 11px; }
body .data-clean-note { display: flex; align-items: baseline; gap: 8px; margin: 12px 14px 4px; padding: 10px 12px; border: 1px solid #d9e7dc; border-radius: 9px; background: #f4fbf6; }
body .data-clean-note strong { color: #166534; font-size: 11px; }
body .data-clean-note span { color: #52705b; font-size: 10px; line-height: 1.5; }
body .data-file-table-wrap { max-height: 520px; overflow: auto; padding: 8px 14px 14px; }
body .data-file-table { width: 100%; border-collapse: collapse; font-size: 11px; }
body .data-file-table th { position: sticky; top: 0; z-index: 1; padding: 9px 8px; background: #f8fafc; color: #64748b; text-align: left; white-space: nowrap; }
body .data-file-table td { padding: 9px 8px; border-top: 1px solid #edf1f5; color: #475569; vertical-align: middle; }
body .data-file-table td:first-child { min-width: 260px; }
body .data-file-table strong { display: block; color: #243047; font-weight: 650; }
body .data-file-table small { display: block; max-width: 520px; margin-top: 2px; overflow: hidden; color: #94a3b8; text-overflow: ellipsis; white-space: nowrap; }
body .data-file-table a { color: #1d4ed8; font-weight: 650; text-decoration: none; }
body .data-type, body .data-sensitive { display: inline-block; padding: 3px 7px; border-radius: 999px; background: #eef2f7; color: #64748b; font-size: 10px; white-space: nowrap; }
body .data-type.cleaned { background: #eaf8f0; color: #047857; }
body .data-type.raw { background: #eaf2ff; color: #1d4ed8; }
body .data-type.audio { background: #fff5e8; color: #b45309; }
body .data-sensitive { background: #fff1f2; color: #be123c; }
body .data-empty { padding: 30px !important; text-align: center; color: #94a3b8 !important; }

@media (max-width: 1180px) {
  body .vm-overview-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body .vm-dashboard-head { flex-direction: column; }
  body .vm-dashboard-filters { width: 100%; flex-direction: row; align-items: center; justify-content: space-between; }
  body .vm-dashboard-columns { grid-template-columns: 1fr; }
  body .vm-prediction-layout { grid-template-columns: 1fr; }
  body .data-panel-head, body .data-settings-card > header, body .data-files-card > header { flex-direction: column; }
  body .data-panel-actions { justify-content: flex-start; }
  body .data-path-form { grid-template-columns: 1fr; }
  body .data-copy-option, body .data-path-form > button { grid-column: 1; grid-row: auto; }
}
@media (max-width: 760px) {
  body .vm-overview-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body .vm-dashboard { padding: 12px; border-radius: 13px; }
  body .vm-insight-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body .vm-dashboard-filters, body .vm-trend-controls { align-items: stretch; flex-direction: column; }
  body .vm-segment { width: 100%; overflow-x: auto; }
  body .vm-segment button { flex: 1 0 auto; }
  body .vm-trend-controls label, body .vm-trend-controls select { width: 100%; max-width: none; }
  body .vm-top-video { grid-template-columns: 28px minmax(0, 1fr); }
  body .vm-top-stats { grid-column: 2; text-align: left; }
  body .vm-prediction-board > header { align-items: flex-start; flex-direction: column; }
  body .vm-copy-brief { width: 100%; }
  body .vm-prediction-summary, body .vm-prediction-list { grid-template-columns: 1fr; }
  body .vm-prediction-layout { padding-inline: 10px; }
  body .data-manager-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body .data-panel-actions, body .data-file-filters { width: 100%; }
  body .data-panel-actions > *, body .data-file-filters > * { flex: 1 1 0; min-width: 0; }
  body .data-clean-note { align-items: flex-start; flex-direction: column; }
}

/* ── 账号数据看板（vm- 前缀，避免与其它页面类名撞车）────────────── */
body .vm-up { color: #dc2626; font-style: normal; font-weight: 600; }
body .vm-down { color: #16a34a; font-style: normal; font-weight: 600; }
body .vm-flat { color: #64748b; font-style: normal; }
body .vm-empty-state { display: grid; gap: 4px; padding: 12px; border: 1px dashed #d8e0ea; border-radius: 10px; background: #fbfcfe; }
body .vm-empty-state strong { font-size: 13px; color: #1f2430; }
body .vm-empty-state span { font-size: 12.5px; color: #64748b; line-height: 1.7; }

/* ══ 全局可读性规范（rf- 前缀；只做层级收敛，不改结构语义）════════════
   目标：页面有落点（标题→一句话摘要→主操作）、卡片有骨架（标题+副标题+内容）、
   说明文字统一降噪、长列表限高、按钮分主次。 */
body .panel > .transcript-head,
body .panel > .analytics-head,
body .video-panel > .video-head,
body .panel > header { margin-bottom: 14px; }
body .eyebrow { font-size: 11px; letter-spacing: .14em; font-weight: 700; color: #94a3b8; text-transform: uppercase; }
body h2 { font-size: 22px; line-height: 1.25; font-weight: 800; letter-spacing: -.01em; color: #0f172a; margin: 4px 0 6px; }
body h3 { font-size: 15px; font-weight: 700; color: #1f2430; }
/* 页面级一句话摘要：把大段说明压成一行 */
body .panel > .transcript-head p,
body .panel > .analytics-head p,
body .video-panel > .video-head p { font-size: 12.5px; color: #64748b; line-height: 1.6; margin: 0; }
/* 说明文字统一降噪 */
body .speech-note { font-size: 12.5px; line-height: 1.6; color: #64748b; }
/* 卡片骨架统一：白底细边、内边距一致、卡片头对齐 */
body .insight-card { background: #fff; border: 1px solid #e6ebf3; border-radius: 12px; padding: 14px; box-shadow: none; }
body .insight-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
body .insight-card > header strong { display: block; font-size: 14px; font-weight: 700; color: #0f172a; }
body .insight-card > header span { display: block; margin-top: 2px; font-size: 12px; color: #8a93a6; line-height: 1.5; }
body .trend-facts span { font-size: 12px; color: #64748b; }
/* 按钮分主次：主按钮实心、次要弱化成浅底描边、行内动作更小 */
body .panel button.primary, body .video-panel button.primary { background: #2563eb; border-color: #2563eb; color: #fff; font-weight: 600; }
body button.outline, body button.secondary { background: #fff; border: 1px solid #dbe3ee; color: #475569; font-weight: 500; }
body button.outline:hover, body button.secondary:hover { border-color: #b9c6da; color: #1f2430; }
body .speech-primary-actions { gap: 8px; }

/* 页面级「结论条」：一眼看到重点（浅蓝，一行） */
body .rf-lead { display: flex; align-items: center; gap: 10px; padding: 9px 12px; margin: 0 0 12px;
  background: #f2f7ff; border: 1px solid #d9e6ff; border-radius: 10px; font-size: 13px; color: #1f2430; }
body .rf-lead b { color: #1d4ed8; }
body .rf-lead span { color: #64748b; font-size: 12.5px; }

/* 分组折叠：把明细收起来，默认只展开核心 */
body .rf-group { border: 1px solid #e6ebf3; border-radius: 12px; background: #fff; margin: 12px 0; overflow: hidden; }
body .rf-group > summary { cursor: pointer; list-style: none; padding: 10px 14px; display: flex; align-items: baseline; gap: 8px; font-size: 14px; font-weight: 700; color: #1f2430; }
body .rf-group > summary::-webkit-details-marker { display: none; }
body .rf-group > summary::before { content: '▸'; color: #94a3b8; font-weight: 400; transition: transform .15s; }
body .rf-group[open] > summary::before { transform: rotate(90deg); }
body .rf-group > summary span { font-size: 12px; font-weight: 400; color: #8a93a6; }
body .rf-group > .analytics-grid,
body .rf-group > .video-analytics-body { padding: 0 14px 14px; }
/* 「更多操作」下拉：把次要按钮收起来 */
body details.rf-menu { position: relative; }
body details.rf-menu > summary { cursor: pointer; list-style: none; padding: 7px 12px; border: 1px solid #dbe3ee; border-radius: 8px; background: #fff; font-size: 13px; color: #475569; }
body details.rf-menu > summary::-webkit-details-marker { display: none; }
body details.rf-menu > summary::after { content: ' ▾'; color: #94a3b8; }
body details.rf-menu[open] > summary::after { content: ' ▴'; }
body details.rf-menu > div { position: absolute; right: 0; top: calc(100% + 6px); z-index: 30; display: grid; gap: 6px; padding: 8px; min-width: 176px;
  background: #fff; border: 1px solid #e6ebf3; border-radius: 10px; box-shadow: 0 10px 28px rgba(15, 23, 42, .1); }
body details.rf-menu > div button { width: 100%; text-align: left; }
/* 长列表限高，页面不被拉长 */
body .video-comments, body .topic-list, body .rank-list, body .question-list, body .history-body { max-height: 340px; overflow: auto; }

/* ── 收尾：设置类入口弱化成「次要入口」，长段口径说明压缩 ── */
body .speech-utility-grid > details { border: 1px dashed #e2e8f2; background: #fcfdff; border-radius: 10px; }
body .speech-utility-grid > details > summary { padding: 10px 14px; font-size: 13px; }
body .speech-utility-grid > details > summary small { font-size: 11.5px; margin-left: 0; }
body .speech-scope { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 11.5px; color: #94a3b8; line-height: 1.7; }
body .speech-scope:hover { -webkit-line-clamp: unset; }

/* ── 作品明细折叠组：默认收起，展开后网格限高 ── */
body .vm-library-group > summary { align-items: center; }
body .vm-library-count { margin-left: auto; font-size: 12px; font-weight: 600; color: #1d4ed8; }
body .vm-library-group .vm-library-toolbar { margin: 0 14px 10px; }
body .vm-library-group #videoList { padding: 0 14px 14px; max-height: 560px; overflow: auto; }

/* ── 弹幕话题分类：占满整行 + 样本两列，右半空白补齐 ── */
/* 注意：.analytics-grid 是 columns 多列布局（layout.css），不是 grid——跨列要用 column-span */
body .analytics-grid > .topic-card { column-span: all; -webkit-column-span: all; grid-column: 1 / -1; }
body .topic-card .topic-samples-box ol.video-comments,
body .topic-card .topic-samples-box ul { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 8px; max-height: 380px; overflow: auto; }
body .topic-card .topic-samples-box li { border: 1px solid #eef2f7; border-radius: 10px; background: #fcfdff; padding: 8px 10px; margin: 0; }
body .topic-card .topic-samples-box li p { font-size: 12.5px; line-height: 1.65; margin: 0 0 3px; color: #1f2430; }
body .topic-card .topic-samples-box li small { font-size: 11.5px; color: #94a3b8; }

/* ── AI 运营建议（弹幕复盘页）────────────────────────── */
body .ai-advice { margin: 12px 0 14px; padding: 14px; border: 1px solid #cfe0ff; border-radius: 12px; background: linear-gradient(180deg, #f7fbff, #fff); }
body .ai-advice-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 10px; }
body .ai-advice-head h4 { margin: 0 0 4px; font-size: 14px; font-weight: 700; color: #0f172a; }
body .ai-advice-head h4 small { margin-left: 6px; font-size: 11.5px; font-weight: 400; color: #8a93a6; }
body .ai-advice-head p { margin: 0; font-size: 12.5px; line-height: 1.7; color: #64748b; max-width: 620px; }
body .ai-advice-body { font-size: 13.5px; line-height: 1.9; color: #1f2430; }
body .ai-advice-body p { margin: 0 0 10px; }
body .ai-advice-body ol { margin: 0 0 10px; padding-left: 22px; }
body .ai-advice-hint { color: #8a93a6; font-size: 12.5px; }

/* ── 实时转写内联区（Eric 定：不用弹窗，直接摆在页面上）────────────── */
body .live-transcript-inline { margin: 14px 0 16px; padding: 16px; border: 1px solid #e6ebf3; border-radius: 14px; background: #fff; }
body .lt-inline-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-bottom: 12px; }
body .lt-inline-head h3 { margin: 2px 0 4px; font-size: 16px; font-weight: 700; color: #0f172a; }
body .lt-inline-head p { margin: 0; font-size: 12.5px; color: #64748b; }
body .lt-inline-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
body .lt-follow { font-size: 12.5px; color: #64748b; }
body .lt-record-group { display: inline-flex; align-items: center; gap: 8px; padding-left: 8px; border-left: 1px solid #eef2f7; }
body .lt-record-status { font-size: 12px; color: #8a93a6; }
body .lt-record-status[data-tone="rec"] { color: #dc2626; font-weight: 600; }
body .lt-record-status[data-tone="ok"] { color: #047857; }
body .lt-record-status[data-tone="warn"] { color: #b45309; }
body .lt-inline-grid { display: grid; gap: 12px; }
body .lt-inline-feed .live-dialog-feed { max-height: 420px; }
body .lt-inline-foot { display: flex; justify-content: space-between; gap: 12px; padding-top: 8px; font-size: 12px; color: #8a93a6; }
/* 画面卡上的「每路声音开关」 */
body .screen-card-audio { position: absolute; left: 8px; top: 8px; z-index: 3; padding: 3px 8px; border-radius: 999px;
  border: 1px solid #ffffff40; background: #0f172ab3; color: #fff; font-size: 11.5px; cursor: pointer; }
body .screen-card-audio.on { background: #16a34acc; border-color: #ffffff60; }

/* ── 实时转写：左转写 / 右单路画面 ─────────────────── */
body .lt-inline-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(260px, 1fr); gap: 14px; align-items: start; }
@media (max-width: 980px) { body .lt-inline-grid { grid-template-columns: 1fr; } }
body .lt-room-pane { display: grid; gap: 8px; }
body .lt-room-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
body .lt-room-head strong { font-size: 13.5px; color: #0f172a; }
body .lt-room-head span { font-size: 12px; color: #8a93a6; }
body .lt-room-head button { margin-left: auto; }
body .lt-room-video { position: relative; min-height: 200px; aspect-ratio: 3 / 4; background: #0b1220; border-radius: 12px; overflow: hidden; display: grid; place-items: center; }
body .lt-room-video .screen-card { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; border-radius: 12px; }
body .lt-room-video .screen-card video { width: 100%; height: 100%; object-fit: contain; }
body .lt-room-hint { padding: 14px; font-size: 12.5px; line-height: 1.7; color: #c7d2e0; text-align: center; }

/* ── 场复盘（弹幕复盘页）──────────────────────────────── */
body .sr-panel { margin: 14px 0 16px; padding: 16px; border: 1px solid #e6ebf3; border-radius: 14px; background: #fff; }
body .sr-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-bottom: 12px; }
body .sr-head h3 { margin: 0 0 4px; font-size: 16px; font-weight: 700; color: #0f172a; }
body .sr-head p { margin: 0; font-size: 12.5px; line-height: 1.7; color: #64748b; max-width: 520px; }
body .sr-controls { display: flex; align-items: flex-end; gap: 10px; flex-wrap: wrap; }
body .sr-controls label { display: grid; gap: 4px; font-size: 11.5px; color: #8a93a6; }
body .sr-controls select { max-width: 300px; }
body .sr-hint { margin: 0; font-size: 12.5px; line-height: 1.7; color: #8a93a6; }
body .sr-summary { margin-bottom: 12px; }
body .sr-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
body .sr-metrics article { padding: 12px 14px; border: 1px solid #e8eef7; border-radius: 10px; background: #fafcff; }
body .sr-metrics span { font-size: 11.5px; color: #8a93a6; }
body .sr-metrics strong { display: block; margin: 4px 0 3px; font-size: 20px; color: #1f2b45; }
body .sr-metrics strong i { margin-left: 2px; font-size: 12px; font-style: normal; color: #8a93a6; }
body .sr-metrics small { font-size: 11.5px; color: #94a3b8; }
body .sr-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 10px; }
body .sr-card { border: 1px solid #e8eef7; border-radius: 10px; padding: 12px 14px; background: #fff; }
body .sr-card h5 { margin: 0 0 8px; font-size: 13px; color: #334155; }
body .sr-list { margin: 0; padding-left: 18px; font-size: 12.5px; line-height: 1.9; color: #475569; }
body .sr-list b { margin-left: 6px; color: #2563eb; font-size: 11.5px; }
body .sr-bars { display: grid; gap: 6px; }
body .sr-bar { display: grid; grid-template-columns: 84px 1fr 40px; align-items: center; gap: 8px; font-size: 12px; color: #475569; }
body .sr-bar i { display: block; height: 8px; border-radius: 999px; background: linear-gradient(90deg, #93c5fd, #2563eb); }
body .sr-bar b { text-align: right; font-size: 11.5px; color: #64748b; }
body .sr-spark { display: flex; align-items: flex-end; gap: 2px; height: 72px; padding: 4px; border-radius: 8px; background: #f8fafc; }
body .sr-spark i { flex: 1; min-width: 3px; border-radius: 3px 3px 0 0; background: linear-gradient(180deg, #60a5fa, #2563eb); }
body .sr-ai { margin-top: 12px; padding: 14px; border: 1px solid #cfe0ff; border-radius: 12px; background: linear-gradient(180deg, #f7fbff, #fff); }
body .sr-ai-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 10px; }
body .sr-ai-head h4 { margin: 0 0 4px; font-size: 14px; font-weight: 700; color: #0f172a; }
body .sr-ai-head h4 small { margin-left: 6px; font-size: 11.5px; font-weight: 400; color: #8a93a6; }
body .sr-ai-head p { margin: 0; font-size: 12.5px; line-height: 1.7; color: #64748b; max-width: 560px; }

/* ── 场复盘：模式切换与新增卡片 ───────────────────────── */
body .sr-modes { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0 0 12px; padding: 10px 12px; border: 1px solid #e3ecf9; border-radius: 10px; background: #f7fbff; }
body .sr-modes-label { font-size: 12px; color: #64748b; }
body .sr-modes button { padding: 4px 12px; border-radius: 999px; border: 1px solid #cbd9ee; background: #fff; color: #475569; font-size: 12.5px; cursor: pointer; }
body .sr-modes button.active { border-color: #2563eb; background: #2563eb; color: #fff; }
body .sr-mode-hint { font-size: 11.5px; line-height: 1.6; color: #8a93a6; }
body .sr-window { display: flex; align-items: baseline; gap: 8px; padding: 5px 0; font-size: 12.5px; color: #475569; border-bottom: 1px dashed #eef2f7; }
body .sr-window:last-child { border-bottom: 0; }
body .sr-window b { color: #1f2b45; }
body .sr-window em { font-style: normal; color: #2563eb; }
body .sr-window.low em { color: #b45309; }
body .sr-legend { display: grid; gap: 5px; font-size: 12.5px; color: #475569; }
body .sr-legend div { display: flex; justify-content: space-between; gap: 8px; }
body .sr-legend b { color: #1f2b45; }

/* ── 数据与设置：AI 接入卡片 ────────────────────────── */
body .ai-setup-card { margin: 14px 0 16px; padding: 16px; border: 1px solid #e3ecf9; border-radius: 14px; background: #fff; }
body .ai-setup-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 12px; }
body .ai-setup-card h3 { margin: 0 0 4px; font-size: 15px; font-weight: 700; color: #0f172a; }
body .ai-setup-card header p { margin: 0; font-size: 12.5px; line-height: 1.7; color: #64748b; max-width: 620px; }
body .ai-setup-badge { flex: none; padding: 3px 10px; border-radius: 999px; font-size: 11.5px; background: #f1f5f9; color: #64748b; }
body .ai-setup-badge[data-state="ok"] { background: #dcfce7; color: #166534; }
body .ai-setup-badge[data-state="warn"] { background: #fef3c7; color: #92400e; }
body .ai-setup-form { display: grid; gap: 10px; }
body .ai-setup-form label { display: grid; gap: 4px; font-size: 12px; color: #64748b; }
body .ai-setup-actions { display: flex; gap: 8px; flex-wrap: wrap; }

/* ── 数据分析（账号研究报告）────────────────────────── */
body .report-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; }
body .report-head h2 { margin: 2px 0 6px; }
body .report-head p { margin: 0; font-size: 12.5px; line-height: 1.7; color: #64748b; max-width: 560px; }
body .report-controls { display: flex; align-items: flex-end; gap: 10px; }
body .report-controls label { display: grid; gap: 4px; font-size: 11.5px; color: #8a93a6; }
body .report-body { display: grid; gap: 14px; }
body .ar-empty { margin: 8px 0; font-size: 13px; color: #8a93a6; }
body .ar-report-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
body .ar-report-head h3 { margin: 0 0 4px; font-size: 16px; }
body .ar-report-head p { margin: 0; font-size: 12px; color: #8a93a6; }
body .ar-block { border: 1px solid #e6ebf3; border-radius: 12px; padding: 14px 16px; background: #fff; }
body .ar-block > h4 { margin: 0 0 10px; font-size: 14px; color: #0f172a; }
body .ar-block > h4 small { margin-left: 6px; font-weight: 400; color: #8a93a6; }
body .ar-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; margin-bottom: 10px; }
body .ar-kpis article { padding: 10px 12px; border-radius: 10px; background: #f8fafc; border: 1px solid #e8eef7; }
body .ar-kpis span { font-size: 11.5px; color: #8a93a6; }
body .ar-kpis strong { display: block; font-size: 19px; color: #1f2b45; margin: 3px 0 2px; }
body .ar-kpis strong i { font-style: normal; font-size: 12px; color: #8a93a6; margin-left: 2px; }
body .ar-kpis small { font-size: 11px; color: #94a3b8; }
body .ar-read { margin: 0; padding-left: 18px; font-size: 12.5px; line-height: 1.9; color: #475569; }
body .ar-best { margin: 8px 0 0; font-size: 12.5px; color: #2563eb; }
body .ar-trend { display: flex; align-items: flex-end; gap: 4px; height: 120px; padding: 8px 4px 4px; border-radius: 10px; background: #f8fafc; }
body .ar-trend-col { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; min-width: 0; }
body .ar-trend-col i { width: 100%; max-width: 26px; border-radius: 4px 4px 0 0; background: linear-gradient(180deg, #60a5fa, #2563eb); }
body .ar-trend-col span { font-size: 10px; color: #94a3b8; margin-top: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
body .ar-breakdown { border: 1px solid #eef2f7; border-radius: 10px; padding: 10px 12px; margin-bottom: 10px; }
body .ar-breakdown header { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
body .ar-breakdown header b { color: #2563eb; }
body .ar-breakdown header a { color: #1f2b45; text-decoration: none; font-weight: 600; font-size: 13px; }
body .ar-breakdown header a:hover { text-decoration: underline; }
body .ar-meta { font-size: 11.5px; color: #8a93a6; }
body .ar-structure { margin: 8px 0; font-size: 12.5px; line-height: 1.7; color: #475569; }
body .ar-golden { background: #fffbeb; border: 1px solid #fde68a; border-radius: 8px; padding: 8px 10px; }
body .ar-golden > span { font-size: 11px; color: #92400e; }
body .ar-golden ul { margin: 4px 0 0; padding-left: 18px; font-size: 12.5px; line-height: 1.8; color: #475569; }
body .ar-transcript { margin-top: 8px; }
body .ar-transcript summary { font-size: 11.5px; color: #2563eb; cursor: pointer; }
body .ar-transcript p { margin: 6px 0 0; font-size: 12px; line-height: 1.7; color: #64748b; }
body .ar-need { border: 1px solid #eef2f7; border-radius: 10px; padding: 10px 12px; margin-bottom: 10px; }
body .ar-need header { display: flex; align-items: baseline; gap: 10px; }
body .ar-need header b { font-size: 13px; color: #0f172a; }
body .ar-need header span { font-size: 11.5px; color: #8a93a6; }
body .ar-evidence { margin: 6px 0 0; padding-left: 18px; font-size: 12px; line-height: 1.8; color: #64748b; }
body .ar-idea { border: 1px solid #dcfce7; border-radius: 10px; padding: 10px 12px; margin-bottom: 10px; background: #f0fdf4; }
body .ar-idea b { font-size: 13px; color: #166534; }
body .ar-idea p { margin: 6px 0; font-size: 12.5px; line-height: 1.7; color: #374151; }
body .report-ai { margin-top: 12px; padding: 14px; border: 1px solid #cfe0ff; border-radius: 12px; background: linear-gradient(180deg, #f7fbff, #fff); }
body .report-ai p { margin: 4px 0; font-size: 13px; line-height: 1.8; color: #334155; }
body .ar-hint { font-size: 12.5px; color: #8a93a6; }

/* ── 数据分析：量化分析区块 ─────────────────────────── */
body .ar-quant { border-color: #c7d8f5; background: linear-gradient(180deg, #f8fbff, #fff); }
body .ar-score { display: grid; grid-template-columns: 120px 1fr; gap: 16px; align-items: center; margin-bottom: 12px; }
body .ar-score-total { text-align: center; padding: 12px 8px; border-radius: 12px; background: #2563eb; color: #fff; }
body .ar-score-total strong { display: block; font-size: 34px; line-height: 1.1; }
body .ar-score-total span { font-size: 11px; opacity: .85; }
body .ar-score-dims { display: grid; gap: 7px; }
body .ar-score-dim { display: grid; grid-template-columns: 108px 1fr 34px; align-items: center; gap: 8px; font-size: 12.5px; }
body .ar-score-dim span small { color: #94a3b8; margin-left: 2px; }
body .ar-score-track { height: 8px; border-radius: 99px; background: #e8eef7; overflow: hidden; }
body .ar-score-track i { display: block; height: 100%; border-radius: 99px; transition: width .4s; }
body .ar-score-track i[data-level="good"] { background: #16a34a; }
body .ar-score-track i[data-level="mid"] { background: #f59e0b; }
body .ar-score-track i[data-level="low"] { background: #ef4444; }
body .ar-score-dim b { text-align: right; color: #1f2b45; }
body .ar-quant-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; margin: 10px 0; }
body .ar-quant-grid article { border: 1px solid #e6ebf3; border-radius: 10px; padding: 10px 12px; background: #fff; }
body .ar-quant-grid h5 { margin: 0 0 6px; font-size: 12.5px; color: #0f172a; }
body .ar-quant-grid p { margin: 3px 0; font-size: 12px; line-height: 1.7; color: #475569; }
body .ar-quant-grid p b { color: #1f2b45; }
body .ar-dim { color: #94a3b8; }
body .ar-up { color: #dc2626; font-weight: 600; }
body .ar-down { color: #16a34a; font-weight: 600; }

/* ── Easel 桥接 ───────────────────────────────────── */
body .easel-panel { border-color: #dbe6f5; background: linear-gradient(180deg, #f8fbff, #fff); }
body .easel-panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
body .easel-panel h4 { margin: 0 0 4px; }
body .easel-panel > header p { margin: 0; color: #64748b; font-size: 12px; }
body .easel-badge { padding: 3px 9px; border-radius: 999px; background: #f1f5f9; color: #64748b; font-size: 11px; }
body .easel-badge[data-state="ok"] { background: #dcfce7; color: #166534; }
body .easel-badge[data-state="warn"] { background: #fef3c7; color: #92400e; }
body .easel-setup, body .easel-run { display: grid; gap: 8px; margin-bottom: 10px; }
body .easel-setup { grid-template-columns: minmax(280px, 1fr) auto auto; align-items: end; }
body .easel-run { grid-template-columns: minmax(180px, .45fr) minmax(280px, 1fr) auto; align-items: end; }
body .easel-setup label, body .easel-run label { display: grid; gap: 4px; color: #64748b; font-size: 11px; }
body .easel-setup input, body .easel-run input, body .easel-run select { min-height: 38px; padding: 8px 10px; border: 1px solid #dbe3ee; border-radius: 8px; font: inherit; font-size: 12px; }
body .easel-output { max-height: 360px; overflow: auto; margin: 8px 0 0; padding: 10px 12px; border: 1px solid #dbe3ee; border-radius: 8px; background: #f8fafc; color: #334155; font-size: 12px; line-height: 1.7; white-space: pre-wrap; }
body #easelHistoryWrap { margin-top: 10px; border-top: 1px solid #edf1f5; padding-top: 8px; }
body #easelHistoryWrap summary { cursor: pointer; color: #475569; font-size: 12px; font-weight: 700; }
body #easelHistory article { display: grid; gap: 3px; padding: 8px 0; border-bottom: 1px solid #edf1f5; }
body #easelHistory strong { color: #334155; font-size: 12px; }
body #easelHistory span { color: #94a3b8; font-size: 11px; }
body #easelHistory p { margin: 0; color: #64748b; font-size: 11px; line-height: 1.6; }
@media (max-width: 900px) {
  body .easel-setup, body .easel-run { grid-template-columns: 1fr; }
}
/* ── 直播量化看板 ───────────────────────────────────── */
body .la-board { display: grid; gap: 12px; margin: 0 0 14px; padding: 14px; border: 1px solid #dbe6f5; border-radius: 13px; background: linear-gradient(180deg,#f8fbff,#fff); }
body .la-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
body .la-head h4 { margin: 0 0 3px; font-size: 15px; color: #172033; }
body .la-head h4 small { margin-left: 5px; font-size: 10.5px; color: #7b879b; }
body .la-head p { margin: 0; font-size: 11.5px; color: #64748b; }
body .la-metrics { display: grid; grid-template-columns: repeat(auto-fit,minmax(140px,1fr)); gap: 8px; }
body .la-metrics article { padding: 11px 12px; border: 1px solid #e6ebf3; border-radius: 10px; background: #fff; }
body .la-metrics span { display: block; font-size: 10.5px; color: #7b879b; }
body .la-metrics strong { display: block; margin: 3px 0; font-size: 20px; color: #172033; }
body .la-metrics small { font-size: 10.5px; color: #94a3b8; }
body .la-room-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(260px,1fr)); gap: 9px; }
body .la-room { padding: 11px 12px; border: 1px solid #e6ebf3; border-radius: 11px; background: #fff; }
body .la-room header { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 7px; }
body .la-room strong { font-size: 13px; color: #172033; }
body .la-room header span { font-size: 10.5px; color: #7b879b; }
body .la-room-metrics { display: flex; flex-wrap: wrap; gap: 4px; }
body .la-room-metrics span { padding: 3px 6px; border-radius: 5px; background: #f3f6fa; color: #6b778c; font-size: 9.5px; }
body .la-room-metrics b { color: #334155; }
body .la-spark { display: flex; align-items: flex-end; gap: 2px; height: 58px; margin-top: 8px; padding: 4px; border-radius: 8px; background: #f8fafc; overflow: hidden; min-width: 0; }
body .la-spark i { flex: 1; min-width: 3px; border-radius: 3px 3px 0 0; background: linear-gradient(180deg,#60a5fa,#2563eb); }
body .la-peaks { display: grid; gap: 2px; margin-top: 7px; }
body .la-peaks strong { font-size: 10.5px; color: #475569; }
body .la-peaks span { font-size: 10px; color: #64748b; }
body .la-note { margin: 0; font-size: 10.5px; line-height: 1.6; color: #64748b; }
/* ── Easel 结构化看板 ───────────────────────────────── */

/* Calm UI overrides remain in the owner stylesheet for structural namespaces. */
body.calm-ui :is(.rf-group,.panel-collapse)>summary{color:#718bad;padding:16px 17px;font-size:12px}
body.calm-ui .rf-group{border:1px solid #e3eaf3;border-radius:11px;background:#fff;box-shadow:none;margin:14px 0;min-width:0}
body.calm-ui .vm-insight-grid{gap:12px}
body.calm-ui .vm-insight-grid>article{background:#f7fafd;border:1px solid #e5edf6;border-radius:10px;box-shadow:none}
@media(max-width:650px){body.calm-ui .vm-insight-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
body.calm-ui .rf-lead{background:#f7fafd;border:1px solid #e5edf5;color:#869cb6;border-radius:10px;padding:15px;font-size:11px}

body.calm-ui .rf-group>summary{color:#58779b}

/* Stronger dashboard accents, owner-scoped structural namespaces. */
body.calm-ui .vm-insight-grid>article{background:linear-gradient(135deg,#edf5ff,#fff);border-color:#cbdff6}body.calm-ui .vm-insight-grid>article strong{color:#1764b8}body.calm-ui .vm-insight-grid>article:nth-child(even){background:linear-gradient(135deg,#ecf8f1,#fff);border-color:#c6e7d5}body.calm-ui .vm-insight-grid>article:nth-child(even) strong{color:#117e59}

/* layout.css */
/* ============================================================================
 * layout.css — 布局与交互层（v4.0.0）
 *
 * refined.css 管的是「长什么样」（色彩、圆角、阴影、字体）；
 * 这一层管的是「怎么排、怎么动」：
 *   1. 侧栏重做：固定侧栏定宽 248，导航带图标与滑动指示条，状态卡沉到底部；
 *   2. 主区留白重排：把内容从「贴边的卡片堆」变成有呼吸感的文档流；
 *   3. 间距系统统一：所有栅格 gap / 卡片内距落到同一套刻度上；
 *   4. 结构重排：把监控台里被隔断的筛选与列表接回一起（纯 CSS order，不动 DOM）；
 *   5. 交互统一：指示条、错峰入场、行/卡悬停、按钮按压都走同一条缓动。
 *
 * 加载顺序：必须排在 refined.css 之后。规则统一带 body 前缀以保证覆盖。
 * ========================================================================== */

:root {
  --rf-rail: 248px;
  --rf-gutter: 40px;
  --rf-gap: 16px;
  --rf-gap-lg: 20px;
}

/* ============================================================ 侧栏 ======= */

body .topbar {
  width: var(--rf-rail);
  padding: 26px 16px 22px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  background: rgba(255, 255, 255, .72);
  backdrop-filter: blur(28px) saturate(180%);
  -webkit-backdrop-filter: blur(28px) saturate(180%);
  border-right: 1px solid var(--rf-line);
}

body .brand { padding: 0 10px 26px; }

body .module-nav {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 2px;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  overflow: visible;
}
body .module-nav::before {
  content: "工作空间";
  margin: 0 10px 9px;
  color: var(--rf-muted-2);
  font-size: 10px;
  font-weight: 650;
  letter-spacing: .12em;
}

body .module-nav :is(button, a) {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  width: 100%;
  height: 40px;
  padding: 0 10px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--rf-ink-2);
  font-size: 13px;
  font-weight: 500;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}
body .module-nav :is(button, a) svg {
  width: 17px;
  height: 17px;
  flex: none;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: .58;
  transition: opacity .2s var(--rf-ease), transform .3s var(--rf-ease);
}
body .module-nav :is(button, a):hover { background: rgba(16, 24, 40, .04); color: var(--rf-ink); }
body .module-nav :is(button, a):hover svg { opacity: .9; transform: scale(1.06); }
body .module-nav :is(button, a):active { transform: scale(.985); }

body .module-nav button.active,
body .module-nav a.active {
  background: var(--rf-accent-soft);
  color: var(--rf-accent);
  font-weight: 600;
}
body .module-nav button.active svg,
body .module-nav a.active svg { opacity: 1; }

/* 选中项左侧的滑动指示条 */
body .module-nav :is(button, a)::before {
  content: "";
  position: absolute;
  left: -16px;
  top: 50%;
  width: 3px;
  height: 20px;
  border-radius: 0 3px 3px 0;
  background: var(--rf-accent);
  transform: translateY(-50%) scaleY(0);
  transform-origin: center;
  transition: transform .32s var(--rf-ease);
}
body .module-nav :is(button, a).active::before { transform: translateY(-50%) scaleY(1); }

body .module-nav :is(button, a) > span {
  margin-left: auto;
  font-size: 11px;
  color: var(--rf-muted-2);
  font-variant-numeric: tabular-nums;
}

/* 底部连接状态：沉到侧栏底，做成一张小卡 */
body .connection-badge {
  margin-top: auto;
  justify-content: flex-start;
  gap: 9px;
  padding: 13px 14px;
  border: 1px solid var(--rf-line);
  border-radius: var(--rf-r-md);
  background: var(--rf-surface-2);
  box-shadow: none;
}
body .connection-badge span { font-size: 12px; color: var(--rf-ink-2); line-height: 1.45; }

/* ======================================================= 主内容区 ======= */

body .shell {
  margin: 0 0 0 var(--rf-rail);
  max-width: 1560px;
  padding: 34px var(--rf-gutter) 88px;
}

/* 模块之间统一呼吸，未单独设定外边距的容器由这条兜底 */
body .shell > * + * { margin-top: var(--rf-gap-lg); }
body .shell > .metric-grid { margin-top: var(--rf-gap-lg); }

/* 各模块页头：标题坐实，下面留一条淡分隔线 */
body :is(.analytics-head, .console-head) {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  flex-wrap: wrap;
  padding: 26px 28px 18px;
  border-bottom: 1px solid var(--rf-line);
}
body :is(.analytics-head, .console-head) h2,
body :is(.analytics-head, .console-head) h3 {
  font-size: 21px;
  font-weight: 650;
  letter-spacing: -.025em;
  margin: 0;
}
body .console-head h3 span {
  margin-left: 8px;
  padding: 3px 9px;
  border-radius: var(--rf-r-pill);
  background: var(--rf-bg-soft);
  color: var(--rf-muted);
  font-size: 11px;
  font-weight: 600;
  vertical-align: 2px;
}

/* =============================================== 监控台：结构重排 ======= */

/* 原顺序把「弹幕历史记录」夹在筛选与房间之间，割裂了阅读连贯性。
   这里用 order 把顺序理成：页头 → 类型筛选 → 房间概览 → 房间筛选 → 历史操作 → 列表。 */
body .console {
  display: flex;
  flex-direction: column;
  padding: 0 0 6px;
  overflow: hidden;
}
body .console > .console-head { order: 1; }
body .console > .filters { order: 2; }
body .console > .live-status-board { order: 3; }
body .console > .rooms-bar { order: 4; }
body .console > .history-bar { order: 5; }
body .console > .table-head { order: 6; }
body .console > .event-list { order: 7; }
body .console > .hidden { display: none; }

body .console > .filters {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 16px 28px;
  overflow-x: auto;
  border-bottom: 1px solid var(--rf-line);
}

body .console > .live-status-board {
  padding: 18px 28px;
  background: var(--rf-surface-2);
  border-bottom: 1px solid var(--rf-line);
}

body .console > .rooms-bar,
body .console > .history-bar {
  padding: 14px 28px;
  border-bottom: 1px solid var(--rf-line);
  background: var(--rf-surface);
}
body .console > .rooms-bar { gap: 14px; }

body .console > .table-head { margin: 0; border-radius: 0; border-left: 0; border-right: 0; }
body .console > .event-list { min-height: 0; }

/* 房间状态卡：网格间距与悬停 */
body .live-status-board { display: grid; gap: 12px; }
body .live-state-card {
  border-radius: var(--rf-r-md);
  padding: 14px 16px;
  overflow: hidden;
  transition: transform .26s var(--rf-ease), box-shadow .26s var(--rf-ease), border-color .26s var(--rf-ease);
}
body .live-state-card:hover {
  transform: translateY(-2px);
  border-color: var(--rf-accent-line);
  box-shadow: var(--rf-sh-sm);
}
body .live-state-card > * { min-width: 0; }
body .live-state-card :is(span, small, strong) { overflow-wrap: anywhere; }
body .live-state-card strong { font-size: 13px; font-weight: 600; }
body .live-state-card :is(small, span) { font-size: 11px; }
body .live-state-card small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}

@media (min-width: 1500px) { body .live-status-board { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 1499px) { body .live-status-board { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 1080px) { body .live-status-board { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ================================================= 栅格间距统一 ======= */

body .metric-grid { gap: var(--rf-gap); margin: var(--rf-gap-lg) 0; }
body .metric { padding: 20px 22px; min-height: 104px; }
body .metric span { font-size: 12px; }
body .metric strong { margin-top: 10px; }

/* 复盘页：用多列瀑布流取代分行网格。
   分行时行高由最高的卡片决定——「高频问题」能长到 1000px 以上，而同一行的
   「弹幕趋势」只有 300px，左栏底下就空出一大片。多列布局按内容高度自动均衡，
   卡片各按各的高度排，空位自然消失。 */
body .analytics-grid {
  display: block;
  columns: 2;
  column-gap: var(--rf-gap-lg);
}
body .analytics-grid > * {
  width: 100%;
  margin: 0 0 var(--rf-gap-lg);
  break-inside: avoid;
  -webkit-column-break-inside: avoid;
  page-break-inside: avoid;
}
body .two-column { gap: var(--rf-gap-lg); }
body .editorial-grid { gap: var(--rf-gap-lg); }
body .insight-stats { gap: var(--rf-gap); }
/* 画面墙：竖屏直播流定宽排布，不再拉伸成一整行；少路数时靠左堆叠不散开 */
body .screens-grid {
  grid-template-columns: repeat(auto-fill, minmax(220px, 250px));
  justify-content: start;
  gap: var(--rf-gap);
  align-items: start;
}
body .screens-header { padding-bottom: 18px; }
body .screens-status-row { font-size: 12px; color: var(--rf-muted); }
body .knowledge-grid { gap: var(--rf-gap); }
body .materials-grid { gap: var(--rf-gap-lg); }
body .daily-hosts { gap: 12px; }
body .daily-review-grid,
body .daily-themes { gap: var(--rf-gap); }
body .speech-blocks { gap: var(--rf-gap-lg); }
body .speech-utility-grid { gap: var(--rf-gap); margin-bottom: var(--rf-gap-lg); }
body .recommendation-list,
body .intent-list { gap: 8px; }
body .topic-list { display: grid; gap: 10px; }

/* 复盘页的概览条：把纯色块改成带圆角的浅蓝说明条 */
body .studio-promo {
  padding: 18px 20px;
  border-radius: var(--rf-r-md);
  background: var(--rf-accent-soft);
  border: 1px solid var(--rf-accent-line);
}
body .studio-promo b { font-size: 14px; font-weight: 650; color: var(--rf-ink); }
body .studio-promo span { color: var(--rf-muted); font-size: 12px; line-height: 1.7; }

/* 面板内距统一，避免有的 18px、有的 30px */
body :is(.analytics-panel, .transcript-panel, .knowledge, .live-screens) { padding: 30px 32px; }

body .topic-list { margin: 0; }

/* 洞察页：左栏素材列表与右栏详情比例更均衡 */
body .editorial-grid { grid-template-columns: 330px minmax(0, 1fr); }

/* 素材列表项是裸 <button>，浏览器默认内距几乎为零，文字会顶到卡片边。
   这里把它做成可读的软卡片，选中态用蓝底 + 蓝边。 */
body #materialList { display: grid; gap: 8px; padding: 12px; align-content: start; }
body .material-option {
  width: 100%;
  display: block;
  padding: 15px 17px;
  border: 1px solid var(--rf-line);
  border-radius: var(--rf-r-md);
  background: var(--rf-surface);
  box-shadow: var(--rf-sh-xs);
  text-align: left;
  cursor: pointer;
}
body .material-option:hover {
  transform: translateY(-2px);
  border-color: var(--rf-accent-line);
  box-shadow: var(--rf-sh-sm);
}
body .material-option.selected {
  background: var(--rf-accent-soft);
  border-color: var(--rf-accent-line);
  box-shadow: var(--rf-sh-sm);
}
body .material-option > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
body .material-option .ordinal {
  font-family: var(--rf-font-num);
  font-size: 11px;
  font-weight: 650;
  color: var(--rf-muted-2);
  letter-spacing: .04em;
}
body .material-option .stage-label {
  padding: 2px 8px;
  border-radius: var(--rf-r-pill);
  background: var(--rf-bg-soft);
  color: var(--rf-muted);
  font-size: 10px;
  font-weight: 600;
}
body .material-option.selected .stage-label { background: rgba(0, 113, 227, .12); color: var(--rf-accent); }
body .material-option strong {
  display: block;
  margin: 9px 0 8px;
  font-size: 13.5px;
  font-weight: 600;
  line-height: 1.65;
  color: var(--rf-ink);
  letter-spacing: 0;
  overflow-wrap: anywhere;
}
body .material-option footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  font-size: 11px;
  color: var(--rf-muted);
}
body .material-option footer span { color: var(--rf-muted-2); font-variant-numeric: tabular-nums; }

/* 洞察页顶部的筛选条：把散开的控件收成一组 */
body .selection-bar {
  gap: 14px;
  padding: 18px 20px;
  border-radius: var(--rf-r-md);
  box-shadow: var(--rf-sh-xs);
}
body .selection-bar label { font-size: 11px; color: var(--rf-muted-2); font-weight: 600; letter-spacing: .02em; }
body .selection-bar select,
body .selection-bar input { height: 38px; font-size: 13px; }
body .material-detail { padding: 26px 28px; }

/* 话术页：控制台与内容区之间留白 */
body .speech-command-center { margin: var(--rf-gap-lg) 0 var(--rf-gap); }
body .speech-block { padding: 30px 34px; }

/* ==================================================== 交互升级 ======== */

/* 指标卡错峰入场，让首屏有节奏而不是整块砸下来 */
@media (prefers-reduced-motion: no-preference) {
  body .metric-grid > * { animation: rf-rise .46s var(--rf-ease) both; }
  body .metric-grid > *:nth-child(2) { animation-delay: .05s; }
  body .metric-grid > *:nth-child(3) { animation-delay: .1s; }
  body .metric-grid > *:nth-child(4) { animation-delay: .15s; }
  body .module-nav :is(button, a) { animation: rf-slide-in .4s var(--rf-ease) both; }
  body .module-nav :is(button, a):nth-child(2) { animation-delay: .03s; }
  body .module-nav :is(button, a):nth-child(3) { animation-delay: .06s; }
  body .module-nav :is(button, a):nth-child(4) { animation-delay: .09s; }
  body .module-nav :is(button, a):nth-child(5) { animation-delay: .12s; }
  body .module-nav :is(button, a):nth-child(6) { animation-delay: .15s; }
  body .module-nav :is(button, a):nth-child(7) { animation-delay: .18s; }
  @keyframes rf-slide-in {
    from { opacity: 0; transform: translateX(-6px); }
    to { opacity: 1; transform: none; }
  }
}

/* 表格与列表：可读的行高 + 悬浮高亮 */
body .event-row { min-height: 42px; }
body .event-list { border-top: 0; }
body .room-tab, body .filter { transition: background-color .2s var(--rf-ease), color .2s var(--rf-ease), border-color .2s var(--rf-ease), transform .2s var(--rf-ease); }
body .room-tab:active, body .filter:active { transform: scale(.97); }

/* 按钮按压反馈 */
body :is(.primary, .secondary, .outline, .icon-button):active { transform: translateY(0) scale(.985); }

/* 标签页：选中块带轻微位移感 */
body .speech-tabs button.active { transform: none; }
body .speech-tabs { gap: 3px; }

/* 面板出现时统一抬升，切换模块有回应 */
@media (prefers-reduced-motion: no-preference) {
  body .shell > :is(section, details, live-insights) { animation: rf-rise .44s var(--rf-ease) both; }
}

/* ====================================================== 响应式 ======== */

@media (max-width: 1380px) {
  :root { --rf-gutter: 30px; }
  body .editorial-grid { grid-template-columns: 300px minmax(0, 1fr); }
}

@media (max-width: 1180px) {
  :root { --rf-rail: 228px; --rf-gutter: 24px; }
  body .analytics-grid { columns: 1; }
  body .editorial-grid { grid-template-columns: 260px minmax(0, 1fr); }
}

/* 侧栏折叠成顶栏：走 console-studio.css 的既有行为，这里只补齐细节 */
@media (max-width: 850px) {
  body .topbar {
    width: auto;
    padding: 16px 18px;
    background: var(--rf-surface);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  body .brand { padding: 0 0 4px; }
  body .shell { margin: 0 18px; padding: 0 0 48px; }
  body .module-nav { flex-direction: row; gap: 4px; overflow-x: auto; margin: 14px 0 0; }
  body .module-nav::before { display: none; }
  body .module-nav :is(button, a) {
    flex: none;
    width: auto;
    height: 38px;
    padding: 0 12px;
    white-space: nowrap;
  }
  body .module-nav :is(button, a)::before { display: none; }
  body .module-nav :is(button, a) svg { width: 16px; height: 16px; }
  body .connection-badge { position: absolute; top: 18px; right: 18px; margin: 0; padding: 8px 12px; }
}

@media (max-width: 580px) {
  :root { --rf-gap: 12px; --rf-gap-lg: 14px; }
  body .shell { margin: 0 12px; }
  body .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body .live-status-board { grid-template-columns: 1fr; }
  body :is(.analytics-head, .console-head, .analytics-panel, .transcript-panel, .knowledge, .live-screens) { padding-left: 18px; padding-right: 18px; }
  body .console > :is(.filters, .live-status-board, .rooms-bar, .history-bar) { padding-left: 18px; padding-right: 18px; }
}

/* ========================================== 工具栏控件尺寸统一 ======== */

/* 原来搜索框的外框高 36px、内层 input 却被视觉层抬到 44px，
   内容撑破外框，一排控件里只有它看起来「小一号」。整排统一成同一高度与圆角。 */
body .toolbar { gap: 10px; align-items: center; }
body .search {
  width: 240px;
  height: 44px;
  padding: 0 14px;
  gap: 9px;
  border-radius: var(--rf-r-md);
  transition: border-color .2s var(--rf-ease), box-shadow .2s var(--rf-ease);
}
body .search input {
  height: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  font-size: 13px;
}
body .search input:focus { outline: 0; }
body .search svg { width: 16px; height: 16px; flex: none; }
body .search:focus-within {
  border-color: var(--rf-accent-line);
  box-shadow: 0 0 0 3px rgba(0, 113, 227, .13);
}
/* 其它模块的输入容器同样跟进，避免逐页出现「大小不一」 */
body .input-wrap { min-height: 44px; }

/* ====================================== 复盘页：图表与榜单精修 ====== */

/* 趋势图：加基线网格与顶部渐隐，柱子统一单色渐变，峰值单独加深 */
body .trend-card { padding: 24px 26px 22px; }
body .trend-chart {
  height: 268px;
  gap: 6px;
  padding: 44px 6px 0;
  border-radius: var(--rf-r-md);
  background:
    linear-gradient(180deg, rgba(0, 113, 227, .05), rgba(0, 113, 227, 0) 60%),
    repeating-linear-gradient(180deg, var(--rf-line) 0 1px, transparent 1px 62px);
}
body .trend-bar { gap: 6px; }
body .trend-bar i {
  width: min(26px, 82%);
  border-radius: 7px 7px 3px 3px;
  background: linear-gradient(180deg, #8cc4ff, var(--rf-accent));
  box-shadow: none;
  transition: filter .22s var(--rf-ease);
}
body .trend-bar:hover i { filter: brightness(1.07) saturate(1.2); }
body .trend-bar.peak i {
  background: linear-gradient(180deg, #1d8bff, #0057c2);
  box-shadow: 0 10px 22px -10px rgba(0, 113, 227, .6);
}
body .trend-bar b {
  font-size: 10px;
  font-weight: 650;
  color: var(--rf-muted-2);
  font-variant-numeric: tabular-nums;
  transition: color .2s var(--rf-ease);
}
body .trend-bar:hover b,
body .trend-bar.peak b { color: var(--rf-accent); }
body .trend-bar span { font-size: 10px; color: var(--rf-muted-2); letter-spacing: -.02em; }
/* 时段一多就隔几个显示一个标签，其余留位不出字，横轴不再糊成一团 */
body .trend-bar.hide-label span { opacity: 0; }

/* 高频问题：序号做成方块徽章，条数做成实心蓝胶囊，一眼看到重点 */
body .topic-list { gap: 9px; }
body .topic-item { padding: 13px 15px; }
body .topic-head { grid-template-columns: 26px minmax(0, 1fr) auto auto; gap: 10px; }
body .topic-head > i {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  background: var(--rf-bg-soft);
  color: var(--rf-muted-2);
  font-size: 11px;
  font-weight: 650;
  letter-spacing: 0;
  transition: background-color .24s var(--rf-ease), color .24s var(--rf-ease);
}
body .topic-item:hover .topic-head > i { background: var(--rf-accent-soft); color: var(--rf-accent); }
body .topic-head > em {
  background: var(--rf-bg-soft);
  color: var(--rf-muted);
  font-size: 11px;
  font-weight: 550;
}
body .topic-head > b {
  min-width: 42px;
  height: 26px;
  display: grid;
  place-items: center;
  padding: 0 10px;
  border-radius: var(--rf-r-pill);
  background: var(--rf-accent);
  color: #fff;
  font-size: 12px;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  box-shadow: 0 6px 14px -8px rgba(0, 113, 227, .7);
}
body .topic-samples { font-size: 12px; line-height: 1.7; margin-top: 7px; }

/* 高频关注点 / 活跃用户：细横条改成有底色有圆角的统一进度条 */
body .rank-list { gap: 2px; }
body .rank-item { min-height: 30px; gap: 12px; grid-template-columns: 22px minmax(0, 1fr) auto; }
body .rank-item > i {
  color: var(--rf-muted-2);
  font-size: 11px;
  font-weight: 650;
  letter-spacing: .02em;
}
body .rank-item span { color: var(--rf-ink-2); font-size: 12.5px; font-weight: 550; }
body .rank-item em {
  height: 5px;
  margin-top: 6px;
  border-radius: var(--rf-r-pill);
  background: linear-gradient(90deg, #78bcff, var(--rf-accent));
}
body .rank-item b {
  color: var(--rf-ink);
  font-size: 12px;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
}

/* 指标数字回到有冲击力的尺度（上一版收到的 24px 偏小） */
body .metric strong,
body .analytics-metrics strong,
body .speech-metrics strong,
body .insight-stats strong { font-size: 29px; }

/* 运营建议：序号圆点与条目同高，文字基线对齐 */
body .recommendation-list li { padding: 11px 14px 11px 38px; }
body .recommendation-list li::before {
  left: 14px;
  top: 12px;
  width: 16px;
  height: 16px;
  background: var(--rf-accent);
  color: #fff;
  font-size: 9px;
  font-weight: 650;
}

/* 复盘页卡片之间的节奏：淡分隔线只在需要分段的地方出现。
   概览条到「所选时间范围」这一段原来留了 50px，是最显眼的空档，收紧到 32px。 */
body .analytics-content .section-divider { margin-top: 18px; padding-top: 14px; }

/* 趋势图跨两列，作为复盘页的视觉主图：宽度翻倍后柱子排得开，一眼看出节奏 */
body .trend-card {
  column-span: all;
  -webkit-column-span: all;
  padding: 26px 28px 22px;
}
body .trend-chart {
  height: 300px;
  padding: 50px 12px 0;
}
body .trend-bar i { width: min(38px, 68%); border-radius: 8px 8px 3px 3px; }
body .trend-bar b { font-size: 11px; }
body .trend-bar span { font-size: 11px; }

/* 图表头部：峰值与平均做成一对小标签，右侧不再只有一句孤立的文字 */
body .trend-card header { align-items: flex-start; }
body .trend-facts { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
body .trend-facts span {
  padding: 5px 12px;
  border-radius: var(--rf-r-pill);
  background: var(--rf-bg-soft);
  color: var(--rf-muted);
  font-size: 11px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
body .trend-facts span:first-child { background: var(--rf-accent-soft); color: var(--rf-accent); }
/* 柱子拔高后需要更多纵向空间，容器同步加高 */
body .trend-chart { height: 330px; padding: 60px 12px 0; }
/* 0 条弹幕的时段只留一个淡灰小墩，一排空柱不再看起来像虚线乱码 */
body .trend-bar.zero i { background: var(--rf-line-strong); }
body .trend-bar.zero b { color: var(--rf-line-strong); }

/* ==================================== 全站输入类控件尺寸统一 ========= */

/* 各模块原本各写各的：知识库输入框 38px/9px 圆角、话术页 40px/9px、
   复盘筛选 40px/9px，而设计层给的是 44px/14px。同一排、不同页放在一起
   就成了「有的框大有的框小」。这里统一到一套刻度。 */
body input:not([type="checkbox"]):not([type="radio"]),
body select {
  height: 44px;
  border-radius: var(--rf-r-md);
}
body textarea { border-radius: var(--rf-r-md); }
body .input-wrap,
body .search,
body .history-date,
body .history-date select,
body .knowledge-import-row input[type="url"],
body .knowledge-import-row button,
body .knowledge-form-actions button,
body .talk-settings label,
body .feishu-form input {
  border-radius: var(--rf-r-md);
}
body .knowledge-import-row button,
body .knowledge-form-actions button,
body .analytics-controls select,
body .analytics-controls .primary,
body .analytics-controls .outline,
body .transcript-actions select,
body .transcript-actions input,
body .transcript-actions .primary,
body .transcript-actions .outline { height: 44px; }

/* 搜索框内的输入由外框统一承载高度，自身不再占位 */
body .toolbar .search input { height: auto; border-radius: 0; }

/* 知识库表单里的下拉与文本域另有一处 9px 圆角，比通配规则更具体，这里点名覆盖 */
body .knowledge-form :is(input, select, textarea),
body .knowledge-list-bar select,
body .knowledge-form-actions button,
body .knowledge-import-row button { border-radius: var(--rf-r-md); }

/* ==================================== 品类：电视 / 洗衣机 =============== */

/* 复盘页的品类切换条。监控里同时挂着电视和洗衣机主播时，混在一起的
   高频榜会把两边的需求互相稀释，所以这里做成一眼能点的一排胶囊。 */
body .category-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: -6px 0 20px;
}
body .category-chip {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  height: 36px;
  padding: 0 15px;
  border: 1px solid var(--rf-line);
  border-radius: 999px;
  background: var(--rf-surface);
  color: var(--rf-ink);
  cursor: pointer;
  transition: background .2s var(--rf-ease), border-color .2s var(--rf-ease), box-shadow .2s var(--rf-ease), transform .2s var(--rf-ease);
}
body .category-chip b { font-size: 13px; font-weight: 600; letter-spacing: -.01em; }
body .category-chip span { font-size: 11px; color: var(--rf-muted-2); font-variant-numeric: tabular-nums; }
body .category-chip:hover { border-color: var(--rf-line-strong); box-shadow: 0 2px 12px rgba(0, 0, 0, .06); transform: translateY(-1px); }
body .category-chip.active {
  background: var(--rf-accent);
  border-color: var(--rf-accent);
  box-shadow: 0 6px 18px rgba(0, 113, 227, .22);
}
body .category-chip.active :is(b, span) { color: #fff; }
body .category-note { font-size: 11.5px; color: var(--rf-muted-2); padding-left: 4px; }
body .category-setup-toggle {
  height: 36px;
  padding: 0 14px;
  margin-left: 2px;
  border: 1px dashed var(--rf-line-strong);
  border-radius: 999px;
  background: transparent;
  color: var(--rf-muted);
  font-size: 12px;
  cursor: pointer;
  transition: color .2s var(--rf-ease), border-color .2s var(--rf-ease), background .2s var(--rf-ease);
}
body .category-setup-toggle:hover,
body .category-setup-toggle.open { color: var(--rf-accent); border-color: var(--rf-accent-line); background: var(--rf-accent-soft); }

/* 品类设置面板：默认收起，需要纠正识别结果时才展开，避免污染复盘首屏。 */
body .category-setup {
  display: grid;
  gap: 2px;
  margin: -8px 0 20px;
  padding: 12px 16px;
  border: 1px solid var(--rf-line);
  border-radius: var(--rf-r-md);
  background: var(--rf-surface-2);
}
body .category-setup-row {
  display: grid;
  grid-template-columns: minmax(120px, 1.2fr) auto minmax(0, 1.6fr) auto 116px;
  align-items: center;
  gap: 10px;
  padding: 7px 0;
  border-bottom: 1px solid var(--rf-line);
}
body .category-setup-row:last-child { border-bottom: none; }
body .category-setup-row strong { font-size: 13px; font-weight: 600; color: var(--rf-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body .category-setup-row > span { font-size: 11.5px; color: var(--rf-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body .category-setup-row > small { font-size: 11px; color: var(--rf-muted-2); text-align: right; font-variant-numeric: tabular-nums; }
body .category-setup-row select { height: 34px; border-radius: var(--rf-r-sm); font-size: 12px; }
body .room-cat.none { color: var(--rf-muted); background: var(--rf-bg-soft); }
@media (max-width: 1080px) {
  body .category-setup-row { grid-template-columns: minmax(0, 1fr) auto 116px; }
  body .category-setup-row > span,
  body .category-setup-row > small { display: none; }
}

/* 房间占比列表里的品类小标签 */
body .room-share > span { display: flex; align-items: center; gap: 6px; overflow: hidden; }
body .room-share > span > .room-share-name { flex: 1 1 auto; min-width: 0; }
body .room-cat {
  flex: 0 0 auto;
  padding: 1px 7px;
  border-radius: 999px;
  font-size: 10px;
  font-style: normal;
  font-weight: 600;
  line-height: 16px;
  letter-spacing: 0;
  color: var(--rf-accent);
  background: var(--rf-accent-soft);
}
body .room-cat.washer { color: var(--rf-violet); background: var(--rf-violet-soft); }


body .room-cat.fridge { color: #17795e; background: #e8f7f1; }
body .room-cat.air_conditioner { color: #8a5a13; background: #fff4dd; }

/* research-dashboard.css */
/* Focused research and collection surfaces. No shared application theme overrides. */
.research-controls{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin:16px 0}.research-controls label{display:flex;flex-direction:column;gap:6px;flex:1 1 180px;min-width:0}.research-controls input,.research-controls select{width:100%;box-sizing:border-box;min-width:0}.research-controls button{min-height:38px}.cr-confirm{flex-direction:row!important;align-items:center}.cr-confirm input{width:auto!important}
.research-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:12px;margin:16px 0}.research-kpis article,.research-cards article{padding:18px;background:#f6f8fc;border:1px solid #e5ebf3;border-radius:13px;min-width:0;overflow-wrap:anywhere}.research-kpis strong{display:block;font-size:26px;line-height:1.5;color:#243952}.research-kpis small{display:block;color:#73839a;font-size:11px;line-height:1.6}.research-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin:16px 0}.research-cards h5{margin:0 0 10px;font-size:15px}.research-cards p{margin:10px 0;line-height:1.7;white-space:pre-line}.research-cards small{display:block;line-height:1.7;color:#728197}.research-cards [data-tone=gap]{border-left:3px solid #d3a144}.research-cards [data-tone=action]{border-left:3px solid #2d8d76}.replay-table{max-width:100%;overflow:auto;margin:14px 0}.replay-table table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:12px}.replay-table th,.replay-table td{padding:12px;text-align:left;border-bottom:1px solid #e4eaf2}.replay-table th{color:#677b96;background:#f6f8fb}.replay-table small{display:block;color:#8997a9;margin-top:4px}.replay-table td:last-child{max-width:600px;overflow-wrap:anywhere;white-space:normal}
#crImport{width:100%;box-sizing:border-box}#easelRaw{max-height:400px;white-space:pre-wrap;overflow:auto;overflow-wrap:anywhere}#easelHistory article,#crDailyHistory article{padding:12px;border-bottom:1px solid #e4eaf2}#easelHistory span,#crDailyHistory small{display:block;font-size:11px;color:#728197}.creator-daily-settings{margin:22px 0;padding:24px;border:1px solid #e2eaf4;border-radius:15px;background:#f9fbfe}#crDailyStatus,#crStatus,#caStatus{font-size:12px;line-height:1.7;color:#6c7e96;overflow-wrap:anywhere}#creatorCollectPanel details summary,.replay-details summary{cursor:pointer;padding:12px 0;color:#405d82;font-weight:600}#creatorCollectPanel>.report-head{padding:0 0 16px}#crCollectionSummary{margin:20px 0}.replay-analysis-head{display:flex;align-items:center;justify-content:space-between;gap:18px}.replay-analysis-head h3{font-size:22px;margin:5px 0 8px;color:#233d60}.replay-analysis-head p{font-size:12px;color:#7b8da6;line-height:1.6;max-width:720px}
.replay-summary-strip .research-kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin:20px 0}.replay-summary-strip article{background:white;border:1px solid #e4ecf7;padding:16px 18px}.replay-session-header{display:flex;align-items:center;justify-content:space-between;gap:30px;margin:24px 0}.replay-session-header>div{flex:1;min-width:0}.replay-session-header h3{font-size:26px;letter-spacing:-.4px;margin:8px 0;color:#223c60}.replay-session-header p{font-size:13px;color:#5b7395;line-height:1.7;max-width:650px}.replay-eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:700;color:#658abb}.replay-session-header label{display:grid;gap:8px;flex:0 1 350px;color:#7184a0;font-size:11px;min-width:0}.replay-session-header select{width:100%;max-width:100%;min-width:0;box-sizing:border-box;padding:11px;border-radius:10px;border:1px solid #dce6f3;background:white;color:#365378}.replay-meta{display:flex;gap:8px;flex-wrap:wrap}.replay-meta span{font-size:10px;color:#7589a5;background:#f3f6fb;border-radius:6px;padding:5px 8px}.replay-coverage{display:flex;gap:12px;flex-wrap:wrap;padding:14px 18px;border-radius:11px;background:#fff9ed;border:1px solid #f0dfb8;color:#916c25;font-size:12px;line-height:1.6;margin-bottom:18px}.replay-coverage[data-complete=true]{background:#eff8f5;border-color:#cfe8dd;color:#39715d}.replay-coverage b{white-space:nowrap}.replay-coverage small{font-size:10px;opacity:.8;flex-basis:100%}
.replay-metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.replay-metric{padding:18px;border:1px solid #dfe8f4;border-radius:13px;background:#fff;min-width:0;overflow-wrap:anywhere;box-shadow:0 2px 8px #24426804;position:relative}.replay-metric:before{content:'';position:absolute;top:0;left:18px;width:28px;height:3px;background:#3c7bca;border-radius:0 0 3px 3px}.replay-metric[data-group=retention]:before{background:#7493ca}.replay-metric[data-group=interaction]:before{background:#35a495}.replay-metric[data-group=growth]:before{background:#be9b5a}.replay-metric[data-missing=true]{background:#fafbfe;color:#99a5b7}.replay-metric[data-missing=true]:before{background:#d5dce7}.replay-metric-top{display:flex;align-items:start;gap:8px;justify-content:space-between;font-size:12px;color:#526d8f;min-height:22px}.metric-source{font-size:9px;border-radius:5px;padding:3px 5px;white-space:nowrap;background:#eef5fc;color:#7394bb}.metric-source.missing{background:#f2f3f6;color:#9b9eaa}.replay-metric>strong{display:block;font-size:29px;letter-spacing:-.6px;font-weight:700;color:#24416b;margin:12px 0;line-height:1.1}.replay-metric>strong em{font-size:11px;font-style:normal;color:#8598b3;margin-left:5px;font-weight:400;letter-spacing:0}.replay-metric[data-missing=true]>strong{font-size:21px;color:#a5afbf}.metric-comparison{font-size:10px;color:#8b9bb1;line-height:1.6;min-height:20px}.metric-comparison b{font-weight:500}.positive{color:#249376}.negative{color:#cf7c56}.replay-metric details{margin-top:7px;font-size:10px;color:#7a8ca7}.replay-metric details p{font-size:10px;line-height:1.7}.replay-metric summary{cursor:pointer;color:#88a0bd}
.replay-focus-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:22px 0}.replay-focus-card,.replay-chart-card{min-width:0;padding:24px;border:1px solid #e0e9f5;border-radius:15px;background:white}.replay-focus-card header,.replay-chart-card header{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px}.replay-focus-card h4,.replay-chart-card h4{margin:0;font-size:16px;color:#2c4b75}.replay-focus-card header>span{font-size:10px;color:#8398b5}.replay-focus-card p,.replay-chart-card p{font-size:11px;line-height:1.7;color:#8a9bb3;margin:16px 0 0}.replay-funnel-row{display:flex;align-items:center;gap:12px;margin:15px 0}.replay-funnel-row>span{flex:0 0 70px;font-size:11px;color:#6881a1}.replay-funnel-row>div{flex:1;background:#eef3fa;border-radius:5px;height:18px;overflow:hidden}.replay-funnel-row i{display:block;height:100%;background:linear-gradient(90deg,#72a0d8,#327bc9);border-radius:5px}.replay-funnel-row>b{flex:0 0 70px;text-align:right;font-size:14px;color:#3d648e}.replay-rate-pair{display:flex;justify-content:space-between;font-size:11px;color:#7c90ad;padding-top:12px;border-top:1px solid #eef2f8}.replay-rate-pair b{color:#3e689c;margin-left:7px}.replay-quality-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.replay-quality-grid>div{padding:14px;background:#f5f8fc;border-radius:9px}.replay-quality-grid span{display:block;color:#8192aa;font-size:11px}.replay-quality-grid strong{display:block;font-size:24px;color:#315882;margin-top:6px}.replay-quality-grid small{font-size:11px;color:#91a2b8;font-weight:400;margin-left:5px}.replay-chart-card{margin:20px 0}.replay-chart-card header label{display:grid;gap:5px;color:#899db7;font-size:10px;flex:0 1 190px;min-width:0}.replay-chart-card select{padding:8px 10px;background:#f9fbff;border:1px solid #dfe8f5;border-radius:8px;width:100%;box-sizing:border-box;color:#56749c}.replay-line-chart{display:block;width:100%;height:auto;min-height:130px}.replay-line-chart text{font-size:10px;fill:#95a6bb}.chart-caption{font-size:10px!important;color:#91a4bd!important}.replay-chart-empty,.replay-empty{border-radius:10px;background:#f8faff;padding:24px;color:#8c9db5;font-size:12px;line-height:1.8}.replay-details{margin:12px 0;border:1px solid #e8eef7;border-radius:10px;padding:0 18px}.replay-details p,.replay-boundary{font-size:11px;color:#8b9eb9;line-height:1.7}.replay-boundary{margin-top:20px}.collection-health .research-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1100px){.replay-metrics-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.replay-focus-grid{grid-template-columns:1fr}.replay-session-header{gap:18px;align-items:start}.replay-session-header label{flex-basis:270px}.research-kpis strong{font-size:23px}}
@media(max-width:650px){.research-cards{grid-template-columns:1fr}.research-controls label{flex-basis:100%}.research-controls>button{flex:1 1 100%}.creator-daily-settings{padding:16px}.replay-analysis-head,.replay-session-header{flex-direction:column;align-items:stretch;gap:16px}.replay-analysis-head>button{align-self:stretch}.replay-session-header label{flex-basis:auto}.replay-summary-strip .research-kpis,.collection-health .research-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.replay-metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.replay-metric{padding:14px 12px}.replay-metric:before{left:12px}.replay-metric-top{font-size:11px;flex-direction:column;gap:5px;min-height:40px}.replay-metric>strong{font-size:24px;margin:12px 0}.metric-source{font-size:8px}.replay-focus-card,.replay-chart-card{padding:18px 14px}.replay-rate-pair{flex-direction:column;gap:10px}.replay-quality-grid strong{font-size:21px}.replay-funnel-row{gap:7px}.replay-funnel-row>span{flex-basis:60px}.replay-funnel-row>b{flex-basis:60px}.replay-chart-card header{align-items:stretch;flex-direction:column}.replay-chart-card header label{flex-basis:auto}.replay-meta span{font-size:9px}.replay-details{padding:0 12px}.research-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.replay-line-chart{min-height:100px}.replay-coverage{padding:12px;font-size:11px}}
/* Analytics dual-view workspace: clean blue/teal, strong hierarchy, constrained evidence details. */
body #reportPanel.analysis-workspace{padding:32px;background:#f8fafd;border:1px solid #e4ebf5;border-radius:20px;min-width:0}#reportPanel .analysis-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 28px}#reportPanel .analysis-hero .eyebrow{font-size:10px;color:#7391b6;letter-spacing:2px}#reportPanel .analysis-hero h2{font-size:31px;margin:8px 0 12px;color:#203b5e;letter-spacing:-.8px}#reportPanel .analysis-hero h2 span{display:block;font-size:13px;font-weight:400;letter-spacing:0;color:#7790b1;margin-top:10px}#reportPanel .analysis-hero p{font-size:12px;line-height:1.8;color:#8ca0bb;margin:0}#reportPanel .analysis-proof{font-size:10px;white-space:nowrap;color:#6e8bab;border:1px solid #dfeaf5;border-radius:20px;padding:9px 12px;background:#fff}#reportPanel .analysis-proof i{width:6px;height:6px;display:inline-block;background:#4caa92;border-radius:50%;margin-right:6px}
#reportPanel .analysis-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;background:#eef3f9;border:1px solid #e5ebf4;border-radius:15px;padding:7px;margin-bottom:30px}#reportPanel .analysis-tabs button{display:flex;align-items:center;justify-content:flex-start;text-align:left;gap:16px;padding:16px 20px;height:auto;border:1px solid transparent;background:transparent;border-radius:11px;color:#8ba1bb;box-shadow:none;cursor:pointer}#reportPanel .analysis-tabs button[aria-selected=true]{background:white;border-color:#d9e5f3;color:#316dba;box-shadow:0 3px 12px #28578508}#reportPanel .analysis-tabs svg{width:28px;height:28px;flex:0 0 28px;fill:none;stroke:currentColor;stroke-width:1.5}#reportPanel .analysis-tabs b{display:block;font-size:15px;font-weight:600;margin-bottom:5px}#reportPanel .analysis-tabs small{font-size:10px;color:#96a6ba}#reportPanel .analysis-view[hidden]{display:none!important}#reportPanel .analysis-tabs button:focus-visible{outline:2px solid #5288c4;outline-offset:3px}
#reportPanel .analysis-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:26px}#reportPanel .analysis-toolbar h3{font-size:20px;color:#2a486e;margin:0 0 7px}#reportPanel .analysis-toolbar p{font-size:11px;line-height:1.7;color:#8ca0bb;margin:0}#reportPanel .report-controls{display:flex;align-items:end;gap:9px;flex-wrap:wrap}#reportPanel .report-controls label{font-size:10px;display:grid;gap:6px;color:#7f94af;min-width:0}#reportPanel select{background:white;border:1px solid #dce6f2;border-radius:8px;color:#547397;min-height:38px;padding:8px 10px;max-width:100%;box-sizing:border-box}#reportPanel .report-controls select{width:220px}#reportPanel button.solid{background:#397bc4;border:1px solid #397bc4;color:white;border-radius:8px}#reportPanel button.outline{border:1px solid #d8e4f2;border-radius:8px;color:#6887ad;background:white}#reportPanel button{font-size:11px;min-height:36px}#reportPanel .analysis-advanced{background:white;border:1px solid #e4eaf3;border-radius:12px;padding:0 19px;margin-top:18px}#reportPanel .analysis-advanced>summary{list-style-position:inside;font-size:12px;font-weight:600;color:#5c789c;cursor:pointer;padding:16px 0}#reportPanel .analysis-advanced>summary>span{display:inline-block;font-size:10px;font-weight:400;margin-left:16px;color:#9bacbf}#reportPanel .analysis-advanced[open]>summary{border-bottom:1px solid #edf1f7;margin-bottom:16px}#reportPanel #easelPanel{margin-top:20px;border:1px solid #e4eaf3;background:white;padding:20px;border-radius:13px}#reportPanel #easelPanel>header{display:flex;align-items:center;justify-content:space-between;gap:16px}#reportPanel #easelPanel h4{font-size:15px;color:#526f94}#reportPanel #easelPanel p{font-size:11px;color:#8da0b9;line-height:1.8}#reportPanel #creatorReplayPanel{border:0;background:none;padding:0;margin:0}#reportPanel .replay-analysis-head{margin-bottom:18px}#reportPanel .replay-analysis-head .eyebrow{display:none}#reportPanel .replay-analysis-head h3{font-size:20px}
#reportPanel .video-summary-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:22px 0 18px}#reportPanel .analysis-kicker{font-size:9px;letter-spacing:1.5px;color:#91a6bf}#reportPanel .video-summary-head h3{margin:8px 0 0;font-size:23px;color:#294d7a}#reportPanel .video-summary-head h3 small{font-size:11px;color:#a0afc0;margin-left:14px;font-weight:400}#reportPanel .analysis-data-tag{font-size:10px;color:#a0b1c4}#reportPanel .video-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}#reportPanel .video-kpi-grid article{background:white;border:1px solid #e1e9f4;border-radius:13px;padding:21px 19px;min-width:0}#reportPanel .video-kpi-grid span{display:block;font-size:11px;color:#7e96b3}#reportPanel .video-kpi-grid strong{display:block;font-size:31px;color:#294e7b;font-weight:600;margin:12px 0;letter-spacing:-.7px}#reportPanel .video-kpi-grid small{font-size:9px;color:#a4b2c5;line-height:1.7;display:block}#reportPanel .video-insight-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:18px;margin:20px 0}#reportPanel .video-insight-grid>section,#reportPanel .video-opportunity-grid>section{padding:22px;background:white;border:1px solid #e1e9f4;border-radius:14px;min-width:0}#reportPanel .video-insight-grid header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:23px}#reportPanel .video-insight-grid h4,#reportPanel .video-opportunity-grid h4{font-size:15px;color:#41638c;margin:0}#reportPanel .video-insight-grid header>span{font-size:9px;color:#a1b1c6}#reportPanel .video-insight-grid p,#reportPanel .video-opportunity-grid p{color:#95a7bc;font-size:10px;line-height:1.8;margin:18px 0 0}#reportPanel .video-trend-chart{display:flex;height:150px;gap:7px;align-items:end;padding-top:10px}#reportPanel .video-trend-point{min-width:0;flex:1;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:end;gap:10px}#reportPanel .video-trend-point i{width:100%;max-width:28px;display:block;min-height:3px;background:linear-gradient(#91bae9,#3d87d2);border-radius:5px 5px 0 0}#reportPanel .video-trend-point small{font-size:8px;color:#a4b6cc;white-space:nowrap}#reportPanel .video-score{display:flex;gap:20px;align-items:center}#reportPanel .video-score>strong{font-size:42px;color:#3b789e;flex:0 0 85px;font-weight:500}#reportPanel .video-score>strong>small{font-size:11px;color:#afbece}#reportPanel .video-score>div{flex:1;min-width:0}#reportPanel .video-score>div>div{display:flex;align-items:center;gap:9px;margin:11px 0}#reportPanel .video-score span{font-size:10px;color:#8fa3bb;flex:0 0 48px}#reportPanel .video-score i{height:5px;flex:1;background:#edf3f9;border-radius:4px;overflow:hidden}#reportPanel .video-score b{display:block;height:100%;background:#74a6b2;border-radius:4px}#reportPanel .video-score em{font-size:10px;font-style:normal;color:#8aa4b4;flex:0 0 22px;text-align:right}#reportPanel .video-opportunity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:20px 0}#reportPanel .video-opportunity-grid h4{margin:7px 0 20px}#reportPanel .video-topic-chips{display:flex;flex-wrap:wrap;gap:10px}#reportPanel .video-topic-chips>span{display:inline-flex;gap:12px;border-radius:8px;padding:9px 12px;background:#f1f6fb;color:#7290b0;font-size:11px}#reportPanel .video-topic-chips b{font-weight:500;color:#407fb2}#reportPanel .video-opportunity-grid article{border-top:1px solid #eff3f8;padding:10px 0}#reportPanel .video-opportunity-grid article strong{font-size:11px;color:#6888ad}#reportPanel .video-opportunity-grid article p{margin:5px 0}#reportPanel .analysis-empty,#reportPanel .analysis-loading{padding:45px 24px;background:white;border:1px dashed #dce6f2;border-radius:14px;color:#93a8c1;text-align:center}#reportPanel .analysis-empty h4{font-size:19px;color:#7791b3;margin:15px 0}#reportPanel .analysis-empty span{font-size:9px;letter-spacing:2px}#reportPanel .analysis-empty p{font-size:11px;line-height:1.8}
@media(max-width:1100px){#reportPanel .analysis-toolbar{align-items:start;flex-direction:column;gap:18px}#reportPanel .video-insight-grid{grid-template-columns:1fr}#reportPanel .analysis-hero{align-items:start}#reportPanel .analysis-proof{display:none}#reportPanel .video-kpi-grid{gap:10px}}
@media(max-width:650px){body #reportPanel.analysis-workspace{padding:18px 14px;border-radius:13px}#reportPanel .analysis-hero{margin-bottom:20px}#reportPanel .analysis-hero h2{font-size:25px}#reportPanel .analysis-hero h2 span{font-size:11px}#reportPanel .analysis-hero p{font-size:10px}#reportPanel .analysis-tabs{gap:6px;padding:5px;border-radius:11px;margin-bottom:22px}#reportPanel .analysis-tabs button{gap:8px;padding:12px 9px;flex-direction:column;align-items:start}#reportPanel .analysis-tabs svg{width:22px;height:22px;flex-basis:22px}#reportPanel .analysis-tabs b{font-size:12px;margin-bottom:4px}#reportPanel .analysis-tabs small{font-size:8px;line-height:1.6}#reportPanel .analysis-toolbar .report-controls{width:100%}#reportPanel .report-controls label{width:100%}#reportPanel .report-controls select{width:100%}#reportPanel .report-controls button{flex:1}#reportPanel .video-summary-head{flex-direction:column;align-items:start;gap:8px}#reportPanel .video-summary-head h3{font-size:20px}#reportPanel .video-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#reportPanel .video-kpi-grid article{padding:16px 13px}#reportPanel .video-kpi-grid strong{font-size:26px}#reportPanel .video-insight-grid>section,#reportPanel .video-opportunity-grid>section{padding:18px 14px}#reportPanel .video-opportunity-grid{grid-template-columns:1fr}#reportPanel .video-trend-chart{gap:4px;height:130px}#reportPanel .video-trend-point small{font-size:7px}#reportPanel .video-score{gap:10px}#reportPanel .video-score>strong{flex-basis:68px;font-size:35px}#reportPanel .analysis-advanced{padding:0 13px}#reportPanel .analysis-advanced>summary>span{display:block;margin:6px 0 0 15px}#reportPanel #easelPanel{padding:14px}#reportPanel .easel-setup,#reportPanel .easel-run{flex-wrap:wrap}#reportPanel .easel-setup label,#reportPanel .easel-run label{width:100%;min-width:0}#reportPanel .easel-setup input,#reportPanel .easel-run select,#reportPanel .easel-run input{width:100%;box-sizing:border-box}#reportPanel .easel-run button,#reportPanel .easel-setup button{flex:1}}

/* calm-workspace.css */
/* Unified calm workspace. Keep functionality visible; advanced content opens on demand. */
body.calm-ui{--rf-rail:230px;--rf-gutter:32px;--rf-bg:#f6f8fb;--rf-surface:#fff;--rf-line:#e5ebf2;--rf-ink:#21374f;--rf-ink-2:#51677f;--rf-muted:#71839a;--rf-muted-2:#93a1b2;--rf-accent:#3a79bd;--rf-accent-soft:#edf4fc;--rf-positive:#418c75;--cyan:#3b79bc;--magenta:#879ab0;--lime:#659181;--amber:#ba975e;color:#263e58;background:#f6f8fb;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Microsoft YaHei UI','PingFang SC',sans-serif;line-height:1.6;font-size:13px}
body.calm-ui .glow{display:none}body.calm-ui .shell{width:auto;max-width:1510px;margin:0 0 0 230px;padding:30px 32px 32px}body.calm-ui .topbar{position:fixed;left:0;top:0;bottom:0;width:230px;height:100dvh;box-sizing:border-box;padding:24px 14px 18px;display:flex;flex-direction:column;gap:0;background:#fff;backdrop-filter:none;border-right:1px solid #e6edf5;z-index:100;overflow:auto;min-height:0;margin:0}body.calm-ui .brand{padding:0 10px 18px;flex-shrink:0}body.calm-ui .brand h1{font-size:21px;letter-spacing:-.5px;color:#28486f}body.calm-ui .brand p{font-size:8px;letter-spacing:1.3px;color:#9aabc0}body.calm-ui .brand-mark{width:34px;height:34px;box-shadow:none;border-radius:10px;border:0;background:#edf4fc}body.calm-ui .brand-mark span{background:#5287bd;box-shadow:none}body.calm-ui .module-nav{display:flex;flex-direction:column;gap:3px;border:0;border-radius:0;padding:0;margin:0;overflow:visible;width:100%;background:none;box-shadow:none}body.calm-ui .module-nav:before{display:none}body.calm-ui .module-nav>button{flex:none;width:100%;height:39px;min-height:39px;border:0;background:none;box-shadow:none;border-radius:9px;padding:0 12px;justify-content:flex-start;font-size:12px;font-weight:500;color:#7a8a9e;gap:10px;white-space:nowrap}body.calm-ui .module-nav>button.active{background:#edf4fc;color:#3f7fbe;box-shadow:none}body.calm-ui .module-nav>button.active:before{display:none}body.calm-ui .module-nav>button:hover{background:#f4f7fb;color:#4a78a8}body.calm-ui .module-nav>button svg{width:16px;height:16px;opacity:.7;transform:none}body.calm-ui .nav-group-label{display:block;color:#a8b3c1;font-size:9px;letter-spacing:1.3px;margin:15px 12px 7px}body.calm-ui .nav-group-label:first-child{margin-top:2px}body.calm-ui .topbar>.connection-badge{margin-top:auto;flex-shrink:0;align-self:stretch;border:1px solid #e9eef5;border-radius:10px;box-shadow:none;background:#fbfcfe;padding:11px 12px;font-size:11px;color:#8998aa}body.calm-ui .connection-badge i{box-shadow:none}body.calm-ui .mobile-workspace-nav{display:none}
body.calm-ui .panel{background:#fff;border:1px solid #e4eaf2;border-radius:15px;box-shadow:0 2px 8px #18345303;margin-bottom:22px;min-width:0}body.calm-ui :is(.hero,.transcript-panel,.analytics-panel,.video-panel,.data-panel,.live-screens,.knowledge,#extractPanel,.writer-panel,#creatorCollectPanel){padding:26px 28px}body.calm-ui .writer-panel>.hero{padding:0;background:none;border:0;box-shadow:none;margin-bottom:20px}body.calm-ui .eyebrow{color:#9aadc3;letter-spacing:1.6px;font-size:9px;font-weight:600}body.calm-ui :is(.hero,.transcript-head,.analytics-head,.panel-head,.data-panel-head,.screens-header,.knowledge-head,.report-head) h2{font-size:25px;color:#2e4b71;letter-spacing:-.6px;margin:7px 0 12px;font-weight:600;line-height:1.35}body.calm-ui :is(h1,h2,h3,h4) em{color:#8aa0bb;font-style:normal;font-weight:400}body.calm-ui h2 em{font-size:12px;letter-spacing:0;display:block;margin:9px 0 0}body.calm-ui :is(.hero-copy,.screens-hint,.knowledge-hint,.report-head p,.transcript-head p,.analytics-head p,.data-panel-head p,.panel-head p){font-size:12px;color:#8093ac;line-height:1.8;max-width:760px;margin:0 0 20px}body.calm-ui h3{font-size:18px;color:#416084;font-weight:600}body.calm-ui h4{color:#4e6b90;font-size:14px;font-weight:600}body.calm-ui :is(.speech-note,.sr-hint,.ar-hint,.data-clean-note,.vm-method-note){font-size:11px;color:#8698ae;line-height:1.8}
body.calm-ui :is(button,.outline,.secondary,.primary,.solid){font-family:inherit;cursor:pointer;box-shadow:none;text-shadow:none}body.calm-ui button:not(.filter):not(.room-tab):not(.module-nav button):not(.analysis-tabs button):not(.kind-tab):not(.icon-button):not(.vm-top-video){font-size:12px;letter-spacing:0}body.calm-ui :is(.primary,.solid){background:#3d7bbc;border:1px solid #3d7bbc;color:#fff;border-radius:8px;padding:10px 16px;font-weight:500;min-height:38px;box-shadow:none}body.calm-ui :is(.secondary,.outline){border:1px solid #dce5f0;background:#fff;color:#6b87a7;border-radius:8px;padding:9px 14px;min-height:38px}body.calm-ui button:disabled{opacity:.48;cursor:not-allowed}body.calm-ui button:hover:not(:disabled){box-shadow:none}body.calm-ui :is(input:not([type=checkbox]):not([type=radio]),select,textarea){border:1px solid #dae4ef;border-radius:8px;background:#fff;color:#48668a;font-family:inherit;font-size:12px;line-height:1.6;min-width:0;box-sizing:border-box;box-shadow:none}body.calm-ui :is(input:not([type=checkbox]):not([type=radio]),select){min-height:39px;padding:8px 11px}body.calm-ui textarea{padding:11px;resize:vertical}body.calm-ui :is(input,select,textarea,button):focus-visible{outline:2px solid #88afd8;outline-offset:2px}body.calm-ui input::placeholder,body.calm-ui textarea::placeholder{color:#a6b4c5}body.calm-ui label{font-size:11px;color:#7a90ac}body.calm-ui :is(.connect-form,.analytics-controls,.toolbar,.data-panel-actions,.speech-button-row,.research-controls,.lt-inline-actions){gap:10px;flex-wrap:wrap}body.calm-ui .input-wrap{background:#fff;border:1px solid #dce5ef;border-radius:10px;box-shadow:none}body.calm-ui .input-wrap input{border:0;background:transparent}body.calm-ui .capability-row{margin-top:18px;padding-top:16px;border-top:1px solid #eef2f8;gap:18px;opacity:.8;font-size:10px;color:#91a3b9}body.calm-ui .capability-row i{box-shadow:none;background:#8db19f}
body.calm-ui :is(.metric-grid,.analytics-metrics,.speech-metrics,.data-manager-metrics,.vm-overview-metrics){gap:14px;margin:18px 0 22px}body.calm-ui :is(.metric,.analytics-metrics>article,.speech-metrics>article,.data-manager-metrics>article,.vm-overview-metrics>article){background:#fff;border:1px solid #e5eaf3;border-radius:13px;padding:20px;box-shadow:none;min-width:0}body.calm-ui :is(.metric,.analytics-metrics>article,.speech-metrics>article,.data-manager-metrics>article,.vm-overview-metrics>article)>span{color:#7d94b0;font-size:11px}body.calm-ui :is(.metric,.analytics-metrics>article,.speech-metrics>article,.data-manager-metrics>article,.vm-overview-metrics>article)>strong{font-size:29px;color:#385d87;letter-spacing:-.6px;font-weight:600}body.calm-ui :is(.metric,.analytics-metrics>article,.speech-metrics>article,.data-manager-metrics>article,.vm-overview-metrics>article)>small{color:#8496ad;font-size:9px}body.calm-ui :is(.metric.cyan,.metric.magenta,.metric.lime){border-color:#e5eaf3;background:#fff}
body.calm-ui .console-head{padding:20px 23px;border-bottom:1px solid #edf1f7}body.calm-ui .console-head h3{font-size:17px;margin:6px 0 0}body.calm-ui .filters{gap:7px;padding:15px 22px;flex-wrap:wrap;border-bottom:1px solid #eef2f7;background:#fafcfe}body.calm-ui .filter{border:1px solid transparent;color:#92a2b7;background:none;border-radius:7px;font-size:11px;padding:7px 10px}body.calm-ui .filter.active{color:#497dae;border-color:#dce7f4;background:#eff5fc}body.calm-ui .filter span{background:none;color:inherit}body.calm-ui .rooms-bar{padding:15px 22px;border-bottom:1px solid #edf1f7}body.calm-ui .room-tab{padding:7px 11px;border-radius:7px;box-shadow:none;background:#f7f9fc;border-color:#e6ecf4;color:#91a2b8;font-size:11px}body.calm-ui .room-tab.active{background:#ecf3fb;color:#5b86b5;border-color:#dce7f4}body.calm-ui .history-bar{background:#fff;border:0;padding:12px 0;gap:10px;flex-wrap:wrap}body.calm-ui .history-copy{min-width:0}body.calm-ui .table-head{background:#f7f9fc;color:#9aabc0;font-size:10px;border-bottom:1px solid #e9eff6}body.calm-ui .event-list{max-height:560px;overflow:auto}body.calm-ui .event-row{border-color:#eff3f8}body.calm-ui .empty-state{min-height:240px;color:#99aac0}body.calm-ui .empty-state strong{color:#7993b1;font-weight:500}body.calm-ui .radar{opacity:.3;transform:scale(.65)}body.calm-ui .live-status-board{box-shadow:none}
body.calm-ui .calm-disclosure,body.calm-ui .panel-collapse{border:1px solid #e3eaf3;border-radius:11px;background:#fff;box-shadow:none;margin:14px 0;min-width:0}body.calm-ui .calm-disclosure>summary{list-style-position:inside;cursor:pointer;padding:15px 17px;color:#718bad;font-size:12px;font-weight:500;display:list-item}body.calm-ui .calm-disclosure>summary>span{font-size:9px;font-weight:400;color:#abb7c8;margin-left:14px}body.calm-ui .calm-disclosure[open]>summary{border-bottom:1px solid #edf2f8}body.calm-ui .calm-disclosure-body{padding:16px 18px}body.calm-ui #monitorHistoryOptions{margin:12px 22px}body.calm-ui #recordingOptions{margin:0;max-width:100%;position:relative}body.calm-ui #recordingOptions>summary{padding:9px 12px;white-space:nowrap}body.calm-ui #recordingOptions .calm-disclosure-body{max-width:380px}body.calm-ui #recordingOptions .lt-record-group{display:flex;flex-wrap:wrap}.calm-ui .lt-record-status{font-size:10px;color:#9cacc0}body.calm-ui .lt-inline-head{padding:20px}body.calm-ui .lt-inline-grid{gap:16px}body.calm-ui .live-dialog-line p{color:#526d8e;line-height:1.9;font-size:15px}body.calm-ui .lt-room-pane{border:1px solid #e5ecf5;border-radius:12px;box-shadow:none}body.calm-ui .lt-inline-foot{color:#9aadc4}body.calm-ui .speech-settings,body.calm-ui .speech-monitor-controls{background:#fff;border-color:#e6edf4;box-shadow:none}body.calm-ui .speech-command-center{background:#fafcff;border:1px solid #e2eaf4;border-radius:12px}body.calm-ui .speech-block,body.calm-ui .speech-editor{border:1px solid #e3ebf5;border-radius:12px;box-shadow:none}body.calm-ui .speech-block p{line-height:1.9;color:#7087a2}body.calm-ui .speech-tabs{gap:6px;border-color:#e7eef6;background:#f7faff}body.calm-ui .speech-tabs button{color:#8fa1b8;background:none;border:0;font-size:11px}body.calm-ui .speech-tabs button.active{background:white;color:#4b83b7;box-shadow:0 2px 6px #23456605;border-radius:7px}body.calm-ui .speech-filters{gap:12px}body.calm-ui .screens-empty{background:#f8fafd;border:1px dashed #e0e8f3;border-radius:13px;color:#99abc0;min-height:280px;display:grid;place-items:center;padding:24px}body.calm-ui .screens-grid{gap:16px}body.calm-ui .screen-card{box-shadow:none;border:1px solid #e1e9f3;border-radius:13px}
body.calm-ui :is(.data-files-card,.data-settings-card,.ai-setup-card,.vm-analysis-card,.vm-dashboard,.knowledge-form){background:#fff;border:1px solid #e4ebf4;border-radius:12px;box-shadow:none;padding:20px;margin:16px 0}body.calm-ui :is(.data-files-card,.data-settings-card,.ai-setup-card)>header{display:flex;justify-content:space-between;gap:18px;align-items:center;flex-wrap:wrap}body.calm-ui :is(.data-files-card,.data-settings-card,.ai-setup-card) h3{font-size:16px;margin:0 0 8px}body.calm-ui :is(.data-files-card,.data-settings-card,.ai-setup-card) p{font-size:11px;color:#738aa5;line-height:1.7;max-width:700px}body.calm-ui :is(.data-file-table-wrap,.vm-table-scroll,.replay-table){overflow:auto;max-width:100%;border-radius:8px}body.calm-ui table th{background:#f8fafd;color:#6b839f;font-size:10px;font-weight:500}body.calm-ui table td{font-size:11px;color:#738ba7;border-color:#edf2f8}body.calm-ui .vm-dashboard-columns{gap:16px}body.calm-ui .vm-performance{background:#eff5f9;color:#8398b0}body.calm-ui .video-account{box-shadow:none;background:#fff;border:1px solid #e7edf4;border-radius:10px}body.calm-ui .writer-panel iframe{display:block;max-width:100%;box-shadow:none}body.calm-ui .data-clean-note{padding:16px;border-radius:9px;background:#f4f9f7;color:#7f9c8c}body.calm-ui .knowledge-columns{gap:18px}body.calm-ui .knowledge-item{box-shadow:none;border-color:#e7edf5}body.calm-ui .knowledge-hint{font-size:11px}body.calm-ui .analytics-chart,body.calm-ui .analytics-content{box-shadow:none}body.calm-ui footer{font-size:10px;color:#a2b0c2;padding:20px 0;gap:12px;line-height:1.7}body.calm-ui .icon-button{background:#f8fafd;border:1px solid #e4ebf4;border-radius:8px;color:#8a9eb9;box-shadow:none;width:37px;height:37px}body.calm-ui .danger-text,body.calm-ui .history-delete{color:#aa817c}body.calm-ui .status-line{font-size:11px;color:#9aacc2}body.calm-ui .status-line i{box-shadow:none;background:#89a8c6}body.calm-ui .hero h2:after{display:none}
@media(min-width:1680px){body.calm-ui .shell{margin-left:230px;padding-left:48px;padding-right:48px}}
@media(max-width:1050px){body.calm-ui .shell{margin:0;width:100%;padding:0 20px 28px;box-sizing:border-box;max-width:none}body.calm-ui .topbar{position:relative;width:auto;height:auto;min-height:0;left:auto;right:auto;top:auto;bottom:auto;margin:0 -20px 22px;padding:16px 20px;display:grid;grid-template-columns:1fr auto;gap:12px;border:0;border-bottom:1px solid #e4ebf3;background:#fff;overflow:visible;backdrop-filter:none}body.calm-ui .brand{padding:0}body.calm-ui .brand h1{font-size:20px}body.calm-ui .brand p{font-size:7px}body.calm-ui .topbar>.connection-badge{margin:0;grid-column:2;grid-row:1;align-self:center;padding:7px 10px;max-width:130px;font-size:10px}body.calm-ui .mobile-workspace-nav{grid-row:2;grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;border-radius:9px;background:#f6f9fd;border:1px solid #e6edf5;padding:7px 11px;gap:10px;color:#6a89b0;font-size:12px}body.calm-ui #mobileModuleToggle{border:0;border-radius:6px;background:#fff;font-size:11px;color:#8199b9;padding:6px 10px;min-height:32px}body.calm-ui .module-nav{display:none;grid-column:1/-1;grid-row:3;width:100%;position:static;overflow:visible;max-height:60dvh;overflow-y:auto;gap:6px;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid #edf1f7;padding-top:8px}body.calm-ui.mobile-menu-open .module-nav{display:grid}body.calm-ui .module-nav .nav-group-label{grid-column:1/-1;margin:7px 10px 2px;font-size:9px}body.calm-ui .module-nav>button{width:100%;height:42px;min-height:42px;font-size:12px;overflow:hidden}body.calm-ui :is(.hero,.transcript-panel,.analytics-panel,.video-panel,.data-panel,.live-screens,.knowledge,#extractPanel,.writer-panel,#creatorCollectPanel){padding:22px}body.calm-ui .analytics-head,.calm-ui .data-panel-head,.calm-ui .transcript-head{align-items:stretch;flex-wrap:wrap}body.calm-ui .metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}body.calm-ui .analytics-controls{width:100%;justify-content:flex-start}body.calm-ui .analytics-controls label{flex:1;min-width:130px}body.calm-ui .toolbar{justify-content:flex-start}body.calm-ui .speech-utility-grid{grid-template-columns:1fr}}
@media(max-width:650px){body.calm-ui .shell{padding:0 12px 24px}body.calm-ui .topbar{margin:0 -12px 16px;padding:13px 12px;gap:10px}body.calm-ui .panel{border-radius:12px;margin-bottom:16px}body.calm-ui :is(.hero,.transcript-panel,.analytics-panel,.video-panel,.data-panel,.live-screens,.knowledge,#extractPanel,.writer-panel,#creatorCollectPanel){padding:18px 14px}body.calm-ui :is(.hero,.transcript-head,.analytics-head,.panel-head,.data-panel-head,.screens-header,.knowledge-head,.report-head) h2{font-size:22px;letter-spacing:-.3px}body.calm-ui .hero-copy{font-size:11px}body.calm-ui :is(.connect-form,.analytics-controls,.data-panel-actions,.lt-inline-actions,.toolbar,.speech-button-row){width:100%;gap:8px;flex-wrap:wrap}body.calm-ui .connect-form .input-wrap{flex:1 1 100%;width:100%}body.calm-ui .connect-form>button{flex:1;min-height:41px;padding:9px 10px}body.calm-ui :is(.primary,.secondary,.outline,.solid){padding:9px 11px;min-height:39px;font-size:11px}body.calm-ui .metric-grid,body.calm-ui .analytics-metrics,body.calm-ui .speech-metrics,body.calm-ui .data-manager-metrics,body.calm-ui .vm-overview-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}body.calm-ui :is(.metric,.analytics-metrics>article,.data-manager-metrics>article,.vm-overview-metrics>article){padding:15px}body.calm-ui .metric>strong{font-size:26px}body.calm-ui .calm-disclosure-body{padding:14px 12px}body.calm-ui .calm-disclosure>summary{padding:12px;font-size:11px}body.calm-ui .calm-disclosure>summary>span{font-size:9px;margin-left:8px}body.calm-ui .console-head{padding:17px 14px;flex-direction:column;align-items:stretch;gap:13px}body.calm-ui .search{width:100%;flex:1 1 100%}body.calm-ui .filters{padding:12px 14px;gap:5px}body.calm-ui .filter{font-size:10px;padding:6px 8px}body.calm-ui #monitorHistoryOptions{margin:12px 14px}body.calm-ui .history-bar{display:flex;align-items:stretch;flex-direction:column}body.calm-ui .history-bar button{width:100%}body.calm-ui .rooms-bar{padding:12px 14px}body.calm-ui .room-tabs{overflow:auto}body.calm-ui .capability-row{display:none}body.calm-ui .lt-inline-head{padding:15px}body.calm-ui .lt-inline-actions>label{width:100%;min-width:0}body.calm-ui .lt-inline-actions select{width:100%}body.calm-ui .lt-inline-actions>button{flex:1}body.calm-ui #recordingOptions{width:100%}body.calm-ui .lt-inline-grid{grid-template-columns:1fr}body.calm-ui .lt-inline-feed{min-width:0}body.calm-ui .lt-room-pane{min-height:180px}body.calm-ui .screens-header{align-items:stretch;gap:12px}body.calm-ui .screens-actions{width:100%}body.calm-ui .screens-actions button{flex:1}body.calm-ui .speech-filters{display:flex;flex-wrap:wrap}body.calm-ui .speech-filters label{flex:1 1 100%;min-width:0}body.calm-ui .speech-tabs{flex-wrap:wrap}body.calm-ui .speech-view-tabs{display:flex;flex-wrap:wrap;gap:5px}body.calm-ui .speech-view-actions{width:100%;margin-top:8px}body.calm-ui .data-file-filters{width:100%;display:flex;flex-wrap:wrap;gap:8px}body.calm-ui .data-file-filters input,body.calm-ui .data-file-filters select{width:100%;min-width:0}body.calm-ui .data-path-form,.calm-ui .ai-setup-form,.calm-ui .speech-settings-grid{grid-template-columns:1fr;min-width:0}body.calm-ui :is(.data-path-form,.ai-setup-form,.speech-settings-grid) label{grid-column:auto;min-width:0}body.calm-ui .vm-dashboard-head,.calm-ui .vm-trend-controls{flex-direction:column;align-items:stretch}body.calm-ui .vm-segment{flex-wrap:wrap}body.calm-ui .vm-dashboard-columns{grid-template-columns:1fr}body.calm-ui footer{flex-direction:column;align-items:start}body.calm-ui .writer-panel iframe{min-height:680px!important}body.calm-ui .replay-table td{max-width:none}body.calm-ui .table-head{display:none}body.calm-ui .data-panel-actions>*{flex:1}body.calm-ui .video-kind-select{width:100%}}
@media(prefers-reduced-motion:reduce){body.calm-ui :is(.radar,.brand-mark,.panel,.screen-card,.speech-block){animation:none!important;transition:none!important}}
body.calm-ui [hidden]{display:none!important}
body.calm-ui .console>#monitorHistoryOptions{order:5}
body.calm-ui :is(.metric,.analytics-metrics>article,.speech-metrics>article,.data-manager-metrics>article):before,body.calm-ui :is(.metric,.analytics-metrics>article,.speech-metrics>article,.data-manager-metrics>article):after{box-shadow:none}
body.calm-ui :is(.primary,.solid):hover:not(:disabled){transform:none;background:#3675b5}
body.calm-ui .panel{animation:none}body.calm-ui .live-state-card:hover{transform:none;box-shadow:none}
body.calm-ui .data-file-table-wrap{max-height:580px}body.calm-ui .vm-table-scroll{max-height:520px}
body.calm-ui .writer-entry-card{border:1px solid #e2eaf3;border-radius:13px;background:#f8fbfe;padding:26px;margin-top:20px;max-width:860px}body.calm-ui .writer-entry-card h3{font-size:21px;margin:8px 0 12px;color:#4e729b}body.calm-ui .writer-entry-card p{font-size:12px;color:#8399b3;max-width:640px;line-height:1.8}body.calm-ui .writer-entry-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:22px 0 18px}body.calm-ui .writer-entry-actions a{text-decoration:none;font-size:12px;display:inline-flex;align-items:center;justify-content:center}body.calm-ui .writer-entry-card>small{font-size:10px;color:#9cacc0;line-height:1.7}body.calm-ui .writer-panel #writerEmbedOptions{max-width:100%}body.calm-ui .writer-panel #writerEmbedOptions[open]{background:#fff}body.calm-ui .writer-panel #writerEmbedOptions .calm-disclosure-body{padding:10px}
@media(max-width:650px){body.calm-ui .writer-entry-card{padding:18px}body.calm-ui .writer-entry-actions>*{flex:1 1 100%}body.calm-ui .writer-entry-card h3{font-size:18px}}
body.calm-ui .topbar>.connection-badge{position:static;left:auto;right:auto;top:auto;bottom:auto;width:auto;height:auto;white-space:nowrap;display:flex}
@media(max-width:1050px){body.calm-ui .topbar>.connection-badge{position:static;width:auto;max-width:130px;min-width:65px;white-space:nowrap;grid-column:2;grid-row:1;align-self:center;justify-self:end;line-height:1.5}body.calm-ui .topbar{grid-template-columns:minmax(0,1fr) auto}}
body.calm-ui .module-nav [hidden]{display:none!important}
body.calm-ui .hidden{display:none!important}
body.calm-ui .analytics-metrics>article:after,body.calm-ui .metric:after{background:#cfdae7!important;box-shadow:none!important}
body.calm-ui .analytics-head{padding:0 0 20px;margin-bottom:20px}body.calm-ui .analytics-controls{display:flex;align-items:end;gap:12px;flex-wrap:wrap}body.calm-ui .analytics-controls button{align-self:end}
body.calm-ui .speech-metrics>div{padding:17px;border:1px solid #e4eaf3;border-radius:11px;background:#fff;min-width:0}body.calm-ui .speech-metrics>div span{display:block;font-size:10px;color:#8b9eb6}body.calm-ui .speech-metrics>div strong{display:block;font-size:27px;color:#527698;margin-top:8px;font-weight:500}body.calm-ui .audience-review-grid{gap:14px}body.calm-ui .audience-review-grid>section{padding:18px;background:#f8fafd;border:1px solid #e7edf6;border-radius:11px;min-width:0}body.calm-ui .audience-review-grid p{font-size:11px;color:#8c9eb7;line-height:1.8}body.calm-ui .speech-category-summary{gap:8px;flex-wrap:wrap}body.calm-ui .speech-category-summary span{background:#f3f7fb;border:1px solid #e6edf5;border-radius:7px;font-size:10px;color:#8a9cb4;padding:6px 9px}body.calm-ui #analyticsTopicChips{gap:6px;display:flex;flex-wrap:wrap}body.calm-ui #analyticsTopicChips button{background:#f8fafd;border:1px solid #e4ebf4;border-radius:7px;font-size:10px;color:#899db6;padding:6px 9px;min-height:30px}body.calm-ui #analyticsTopicChips button.active{background:#edf4fc;border-color:#d4e3f4;color:#5388b7}body.calm-ui #analyticsTopicChips button.empty{opacity:.5}body.calm-ui #analyticsTopicList{margin:0;padding:0;background:none;border:0}body.calm-ui #topicEvidenceOptions{margin:14px 0 0}body.calm-ui #analyticsCategoryBar{gap:7px;display:flex;flex-wrap:wrap;margin:14px 0 18px}body.calm-ui #analyticsCategoryBar button{min-height:33px;box-shadow:none;border-radius:8px}body.calm-ui #analyticsCategorySetup.hidden{display:none!important}
@media(max-width:650px){body.calm-ui .audience-review-grid{grid-template-columns:1fr}body.calm-ui .speech-metrics>div{padding:14px}body.calm-ui #analyticsTopicChips button{font-size:9px;padding:5px 7px}}
body.calm-ui :is(.speech-note,.sr-hint,.ar-hint,.screens-hint,.hero-copy,.report-head p,.transcript-head p,.analytics-head p,.data-panel-head p,.panel-head p){color:#6b809b}body.calm-ui :is(.calm-disclosure>summary,.panel-collapse>summary){color:#58779b}body.calm-ui .nav-group-label{color:#8599b2}body.calm-ui .module-nav>button{color:#607b9a}body.calm-ui .module-nav>button.active{color:#3677b6}body.calm-ui .topbar>.connection-badge{color:#7f93ac}body.calm-ui .writer-entry-card p{color:#6d88a8}body.calm-ui .writer-entry-card>small{color:#879db7}body.calm-ui .calm-disclosure-body .calm-disclosure{box-shadow:none}

/* dashboard-accent.css */
/* Stronger data emphasis, restrained surfaces. Blue=acquisition, teal=interaction, violet=retention. */
body.calm-ui{--rf-accent:#2269c9;--rf-accent-soft:#eaf2ff;--rf-positive:#108568;--rf-warn:#a76c15;--cyan:#2269c9}
body.calm-ui .module-nav>button.active{background:#e8f1ff;color:#1c63b7}body.calm-ui .module-nav>button.active svg{opacity:1}body.calm-ui :is(.primary,.solid){background:#2269c9;border-color:#2269c9}body.calm-ui :is(.primary,.solid):hover:not(:disabled){background:#195bb5}
body.calm-ui :is(.metric,.analytics-metrics>article,.data-manager-metrics>article,.vm-overview-metrics>article,.speech-metrics>div,.research-kpis article){position:relative;background:linear-gradient(130deg,#f2f7ff,#fff 70%);border-color:#cfdff4}
body.calm-ui :is(.metric,.analytics-metrics>article,.data-manager-metrics>article,.vm-overview-metrics>article,.speech-metrics>div,.research-kpis article)>strong{color:#145fae;font-weight:650}
body.calm-ui :is(.metric,.analytics-metrics>article,.data-manager-metrics>article,.vm-overview-metrics>article,.speech-metrics>div,.research-kpis article)>span{color:#3f6086}
body.calm-ui :is(.metric,.analytics-metrics>article,.data-manager-metrics>article,.vm-overview-metrics>article,.speech-metrics>div,.research-kpis article):nth-child(2n){background:linear-gradient(135deg,#eff9f6,#fff 72%);border-color:#cce6df}
body.calm-ui :is(.metric,.analytics-metrics>article,.data-manager-metrics>article,.vm-overview-metrics>article,.speech-metrics>div,.research-kpis article):nth-child(2n)>strong{color:#067e64}
body.calm-ui .replay-metric[data-missing=false]{background:linear-gradient(135deg,#f0f6ff,#fff 70%);border-color:#c9dcf5;box-shadow:0 3px 10px #2468b708}
body.calm-ui .replay-metric[data-missing=false]>strong{color:#185eac}body.calm-ui .replay-metric[data-group=interaction][data-missing=false]{background:linear-gradient(135deg,#edf9f5,#fff 70%);border-color:#c8e7da}body.calm-ui .replay-metric[data-group=interaction][data-missing=false]>strong{color:#087b5e}body.calm-ui .replay-metric[data-group=retention][data-missing=false]{background:linear-gradient(135deg,#f4f1ff,#fff 70%);border-color:#ddd5f4}body.calm-ui .replay-metric[data-group=retention][data-missing=false]>strong{color:#6750b5}body.calm-ui .replay-metric[data-group=growth][data-missing=false]{background:linear-gradient(135deg,#fff7e9,#fff 70%);border-color:#ecd9b8}body.calm-ui .replay-metric[data-group=growth][data-missing=false]>strong{color:#a66a18}
body.calm-ui .replay-metric .metric-source{background:#e4efff;color:#2f6dad}body.calm-ui .replay-metric[data-missing=true]{background:#f6f7fa;border-color:#e2e6ed}body.calm-ui .replay-metric[data-missing=true]>strong{color:#a0a9b7}body.calm-ui .replay-metric[data-missing=true] .metric-source{color:#8793a7;background:#eceff4}
body.calm-ui .replay-metric-top{color:#3d5e88}body.calm-ui .replay-coverage[data-complete=true]{background:#e6f6ed;border-color:#b8dfc8;color:#21744e}body.calm-ui .replay-coverage[data-complete=false]{background:#fff5df;border-color:#ead098;color:#966511}
body.calm-ui .replay-focus-card{border-color:#cedff3}body.calm-ui .replay-focus-card h4{color:#255f9d}body.calm-ui .replay-quality-grid>div{background:#ebf3ff}body.calm-ui .replay-quality-grid strong{color:#1b66b5}body.calm-ui .replay-funnel-row i{background:linear-gradient(90deg,#7fb7fb,#2269c9)}body.calm-ui .replay-rate-pair b{color:#165d9f}body.calm-ui .positive{color:#058663}body.calm-ui .negative{color:#b76022}
body.calm-ui #reportPanel .video-kpi-grid article{background:linear-gradient(135deg,#edf5ff,#fff 72%);border-color:#cddff5}body.calm-ui #reportPanel .video-kpi-grid article strong{color:#195fae}body.calm-ui #reportPanel .video-kpi-grid article:nth-child(2n){background:linear-gradient(135deg,#eef9f6,#fff 72%);border-color:#cee7df}body.calm-ui #reportPanel .video-kpi-grid article:nth-child(2n) strong{color:#117c68}body.calm-ui #reportPanel .video-trend-point i{background:linear-gradient(#7fb5fb,#2269c9)}body.calm-ui #reportPanel .video-score>strong{color:#087e6b}body.calm-ui #reportPanel .video-score b{background:#249b88}body.calm-ui #reportPanel .analysis-tabs button[aria-selected=true]{color:#1e66be;border-color:#bdd4f2;background:#fff;box-shadow:0 2px 8px #2363ab0b}body.calm-ui #reportPanel .video-topic-chips>span{background:#eaf4ff;color:#4b77a7}
body.calm-ui .backfill-workbench{padding:24px;border:1px solid #cbdcf1;border-radius:14px;background:linear-gradient(125deg,#f4f8ff,#fff);margin:22px 0}body.calm-ui .backfill-workbench>header{display:flex;align-items:center;justify-content:space-between;gap:16px}body.calm-ui .backfill-workbench h3{font-size:20px;color:#275f9e;margin:6px 0 9px}body.calm-ui .backfill-workbench header p{font-size:11px;color:#7288a5;margin:0}body.calm-ui .backfill-chip{font-size:10px;color:#3879b5;background:#e7f1ff;border:1px solid #cadcf4;padding:7px 10px;border-radius:20px;white-space:nowrap}body.calm-ui #crBackfillMessage{font-size:12px;color:#396a9e;line-height:1.7}
body.calm-ui .backfill-job{padding:20px;margin-top:14px;border:1px solid #d4e2f2;border-radius:12px;background:#fff}body.calm-ui .backfill-job header{display:flex;justify-content:space-between;align-items:center;gap:14px}body.calm-ui .backfill-job header strong{color:#2f5f97;font-size:14px}body.calm-ui .backfill-job header b{font-size:20px;color:#2269c9;white-space:nowrap}body.calm-ui .backfill-job small{display:block;font-size:10px;color:#8396ae;line-height:1.7;margin-top:5px}body.calm-ui .backfill-progress-row{display:flex;gap:13px;align-items:center;margin:16px 0}body.calm-ui .backfill-progress-row strong{font-size:14px;color:#2269c9;flex:0 0 42px;text-align:right}body.calm-ui .backfill-progress-row progress{width:100%;flex:1;height:11px;appearance:none;border:0;border-radius:8px;overflow:hidden;background:#e8eff9}body.calm-ui .backfill-progress-row progress::-webkit-progress-bar{background:#e8eff9}body.calm-ui .backfill-progress-row progress::-webkit-progress-value{background:linear-gradient(90deg,#428aea,#1675cd)}body.calm-ui .backfill-progress-row progress::-moz-progress-bar{background:#2b7cd0}body.calm-ui .backfill-counts{display:flex;gap:8px;flex-wrap:wrap}body.calm-ui .backfill-counts span{padding:5px 9px;border-radius:6px;background:#eff3f8;color:#6e83a1;font-size:11px}body.calm-ui .backfill-counts .success{background:#e6f6ed;color:#137754}body.calm-ui .backfill-counts .partial{background:#fff3dc;color:#a27116}body.calm-ui .backfill-counts .failed{background:#fceae9;color:#ad514e}body.calm-ui .backfill-current{font-size:11px;color:#6685a8;line-height:1.7;overflow-wrap:anywhere}body.calm-ui .backfill-error{font-size:12px;color:#b05347;background:#fff3ef;padding:11px;border-radius:8px}body.calm-ui .backfill-actions{display:flex;gap:10px;flex-wrap:wrap;margin:15px 0}body.calm-ui .backfill-actions button{background:#edf4ff;color:#326aab;border:1px solid #c9dcf5;border-radius:8px;padding:8px 12px}body.calm-ui .backfill-empty{padding:22px;background:#f6f9fe;border:1px dashed #d5e2f3;border-radius:10px;color:#8398b4;font-size:12px;line-height:1.8}body.calm-ui .backfill-job[data-state=done]{border-color:#b6dbc5}body.calm-ui .backfill-job[data-state=done] header strong{color:#217f55}
@media(max-width:650px){body.calm-ui .backfill-workbench{padding:17px 13px}body.calm-ui .backfill-workbench>header{align-items:start;flex-direction:column;gap:10px}body.calm-ui .backfill-chip{font-size:9px}body.calm-ui .backfill-job{padding:16px 12px}body.calm-ui .backfill-job header{align-items:start;flex-direction:column;gap:10px}body.calm-ui .backfill-actions>button{flex:1 1 100%}body.calm-ui .backfill-counts span{font-size:10px}body.calm-ui .backfill-job .replay-table td{white-space:normal;overflow-wrap:anywhere}}

.easel-board-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.easel-board-tabs button{border:1px solid #c9dcf5;border-radius:9px;padding:9px 15px;background:#f5f8ff;color:#386aa7}.easel-board-tabs button[aria-pressed=true]{background:#2269c9;color:#fff}.easel-board-summary{padding:15px;border-radius:12px;background:#edf5ff;color:#215f9d;line-height:1.8}

/* live-executive.css */
/* Visual-only executive dashboard. Blue=reach, teal=interaction, violet=growth. */
#liveLeaderBoard{--vd-blue:#2568d8;--vd-teal:#078d7b;--vd-violet:#8053c9;--vd-ink:#203a58;--vd-muted:#72869d;--vd-line:#e2eaf4;--vd-soft:#f5f8fc;padding:26px;border:1px solid #dbe5f2;border-radius:18px;background:#fff;margin-bottom:22px;min-width:0;color:var(--vd-ink)}
#liveLeaderBoard .leader-head{display:flex;align-items:start;justify-content:space-between;gap:18px;margin-bottom:16px}#liveLeaderBoard .leader-head h3{font-size:25px;line-height:1.4;color:#203f65;margin:5px 0 8px}#liveLeaderBoard .leader-head .leader-note{margin:0;font-size:12px;color:var(--vd-muted)}.leader-head>div:last-child{display:flex;gap:8px;flex-wrap:wrap}.leader-head>div:first-child{display:block}
#liveLeaderBoard button{font-family:inherit;border:1px solid #d3e0f0;border-radius:8px;background:#fff;color:#386891;padding:8px 12px;line-height:1.5;cursor:pointer}#liveLeaderBoard button:hover{background:#f0f6ff;border-color:#acc8ec}#liveLeaderBoard button:focus-visible,#liveLeaderBoard select:focus-visible{outline:3px solid #c2d8ff;outline-offset:2px}#liveLeaderBoard .leader-primary{background:#2568d8;color:#fff;border-color:#2568d8}.leader-primary:hover{background:#1c5ec7!important}
.leader-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin:18px 0 14px;padding:15px;background:#f6f9fd;border:1px solid #e5edf6;border-radius:12px}.leader-controls label{display:grid;gap:6px;font-size:11px;color:#71869f}.leader-controls input{padding:8px 10px;font:inherit;background:#fff;border:1px solid #d7e1ef;border-radius:8px;color:#365475;max-width:180px;min-width:0}.leader-controls label:nth-child(4){flex:1;min-width:130px}.leader-controls label:nth-child(4) input{max-width:none;width:100%}#lrCoverage{font-size:11px;color:#8293a8;margin:10px 0 18px;line-height:1.8}#lrStatus{font-size:11px;color:#8797ab;margin:9px 0 14px}.leader-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:18px 0 22px}
.vd-metric{--vd-color:var(--vd-blue);padding:16px 15px;background:linear-gradient(145deg,#eff5ff,#fff 85%);border:1px solid #dbe6f6;border-radius:12px;min-width:0}.vd-metric[data-tone=teal]{--vd-color:var(--vd-teal);background:linear-gradient(145deg,#edf9f5,#fff 85%);border-color:#d6ede5}.vd-metric[data-tone=violet]{--vd-color:var(--vd-violet);background:linear-gradient(145deg,#f4effc,#fff 85%);border-color:#e6dcf7}.vd-metric[data-tone=slate]{--vd-color:#527398;background:linear-gradient(145deg,#f3f6fb,#fff 85%);border-color:#e2e9f2}.vd-metric>span{display:block;color:#5d7897;font-size:12px;font-weight:500}.vd-metric>strong{display:block;color:var(--vd-color);font-size:27px;font-weight:650;letter-spacing:-.4px;line-height:1.5;margin:6px 0 2px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.vd-metric em{font-size:11px;font-weight:400;font-style:normal;margin-left:4px;color:#8396ae;letter-spacing:0}.vd-metric>small{font-size:10px;display:block;color:#8a9aad;line-height:1.6;min-height:16px}.vd-metric[data-missing=true]{background:#f7f8fa;border-color:#e7ebf0}.vd-metric[data-missing=true]>strong{color:#a5afbe}
.leader-tabs{display:flex;gap:6px;padding:5px;background:#f0f4fa;border:1px solid #e3ebf5;border-radius:10px;width:max-content;max-width:100%;margin:0 0 16px}#liveLeaderBoard .leader-tabs button{border:0;background:none;padding:8px 22px;color:#7990aa;font-size:12px}#liveLeaderBoard .leader-tabs [aria-selected=true]{background:#fff;color:#2466bd;box-shadow:0 2px 7px #173f7120;font-weight:600}
.vd-lead-note{display:flex;gap:13px;align-items:center;padding:14px 16px;border-radius:11px;background:#edf4ff;border:1px solid #d7e6fc;margin-bottom:18px}.vd-lead-note>span{flex:0 0 auto;background:#dfeaff;color:#2866b3;border-radius:6px;padding:5px 9px;font-size:10px}.vd-lead-note>p{margin:0;color:#527599;font-size:12px;line-height:1.8}.vd-two-column{display:grid;grid-template-columns:1.12fr 1fr;gap:18px}.vd-panel{border:1px solid var(--vd-line);border-radius:14px;padding:21px;background:#fff;min-width:0}.vd-panel-head{display:flex;align-items:start;justify-content:space-between;gap:13px;margin-bottom:18px}#liveLeaderBoard .vd-panel-head h4{font-size:17px;color:#31577e;margin:0 0 7px;line-height:1.4}.vd-panel-head p{font-size:11px;color:#8b9bb0;margin:0;line-height:1.7}.vd-panel-head>span{font-size:11px;color:#8ca0b9;white-space:nowrap}.vd-inline-select{display:grid;gap:4px;color:#8b9bb0;font-size:10px}.vd-inline-select select,.vd-timeline-controls select{padding:7px 9px;border:1px solid #d7e3f2;border-radius:7px;background:#f8faff;font:inherit;color:#426b96;max-width:140px}
.vd-ranking{--vd-color:var(--vd-blue);display:grid;gap:10px}.vd-ranking[data-tone=teal]{--vd-color:var(--vd-teal)}#liveLeaderBoard .vd-rank-row{display:flex;align-items:center;gap:12px;text-align:left;border:0;border-radius:9px;padding:10px 9px;background:#f8fafd;width:100%;color:#41688f}#liveLeaderBoard .vd-rank-row:hover{background:#edf4ff}.vd-rank-index{font-size:12px;color:#89a2c3;font-weight:600;flex:0 0 25px}.vd-rank-main{flex:1;min-width:0}.vd-rank-label{display:block;font-size:12px;margin-bottom:8px;overflow-wrap:anywhere}.vd-bar-track{display:block;background:#eaf0f7;border-radius:10px;height:7px;overflow:hidden}.vd-bar-track>i{display:block;height:100%;width:0;background:linear-gradient(90deg,#8fbaf5,var(--vd-color,#2568d8));border-radius:10px}.vd-rank-main>small{font-size:9px;color:#a48a58;display:block;margin-top:4px}.vd-rank-row>strong{font-size:19px;flex:0 0 auto;font-variant-numeric:tabular-nums;color:#2d6bc0;font-weight:650;text-align:right}.vd-rank-row>strong>small{font-size:9px;color:#8498b3;display:block;font-weight:400}
.vd-efficiency-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.vd-efficiency-grid .vd-metric{padding:12px}.vd-efficiency-grid .vd-metric>strong{font-size:22px}.vd-coverage-strip{margin-top:17px;padding-top:16px;border-top:1px solid #edf1f6}.vd-coverage-ring{display:flex;gap:18px;align-items:center}.vd-ring{flex:0 0 87px;width:87px;height:87px;border-radius:50%;background:conic-gradient(#178e7d 0 var(--vd-percent),#e9eff5 var(--vd-percent) 100%);padding:8px;box-sizing:border-box}.vd-ring>div{border-radius:50%;background:#fff;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.vd-ring strong{color:#16816f;font-size:19px}.vd-ring span{font-size:8px;color:#8ba0b5}.vd-coverage-label{display:grid;gap:4px}.vd-coverage-label b{font-size:15px;color:#486c8e}.vd-coverage-label span{font-size:11px;color:#7d93aa}.vd-coverage-label small{font-size:10px;color:#a58c62}
.vd-account-section{margin-top:24px}.vd-accounts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.vd-account-card{border:1px solid #dce7f5;border-radius:14px;padding:19px;background:#fff;min-width:0}.vd-account-head{display:flex;gap:10px;align-items:center;margin-bottom:15px}.vd-avatar{width:35px;height:35px;flex:0 0 35px;border-radius:10px;background:#eaf2ff;color:#427bc0;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600}.vd-account-head>div:nth-child(2){flex:1;min-width:0}#liveLeaderBoard .vd-account-head h5{font-size:15px;color:#2f537b;margin:0}.vd-account-head p{font-size:10px;color:#95a5b9;margin:4px 0 0}.vd-status{padding:5px 8px;border-radius:6px;font-size:9px;color:#9e7b34;background:#fff5dc;white-space:nowrap}.vd-status[data-state=ok]{color:#28825e;background:#e6f6ed}.vd-account-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.vd-account-metrics .vd-metric{padding:10px 11px;border-radius:9px}.vd-account-metrics .vd-metric>strong{font-size:21px}.vd-account-metrics .vd-metric>small{font-size:9px}.vd-account-card>footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:15px;padding-top:12px;border-top:1px solid #edf2f7}.vd-account-card>footer>span{font-size:10px;color:#92a1b5}#liveLeaderBoard .vd-account-card>footer button{padding:6px 10px;font-size:11px;color:#286bb8;background:#f0f5ff;border-color:#d8e6fa}
.vd-await,.vd-day-list,.vd-session-list{border:1px solid #e1e9f3;border-radius:11px;padding:13px 15px;margin-top:18px;background:#f9fbfd}.vd-await>summary,.vd-day-list>summary,.vd-session-list>summary{font-size:12px;color:#69829f;cursor:pointer;line-height:1.8}.vd-await summary b,.vd-day-list summary b,.vd-session-list summary b{font-weight:600;color:#527aa2;margin-left:5px}.vd-await summary small{font-size:10px;color:#9aa9bc;margin-left:8px}.vd-await-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.vd-await-card{display:flex;align-items:center;gap:9px;padding:12px 9px;background:#fff;border:1px solid #e7edf4;border-radius:8px;min-width:0}.vd-await-card>div{flex:1;min-width:0}.vd-await-card b{font-size:11px;color:#617e9c}.vd-await-card p{font-size:9px;color:#a0acbc;margin:4px 0 0}#liveLeaderBoard .vd-await-card button{font-size:9px;padding:5px 6px;white-space:nowrap;color:#849bb4}.vd-await-card .vd-avatar{background:#f0f3f7;color:#91a4bb;width:29px;height:29px;flex-basis:29px;font-size:11px}.vd-empty{text-align:center;padding:40px 18px;border:1px dashed #dbe5f2;border-radius:10px;color:#91a0b5;font-size:12px;line-height:1.9;background:#f8fafd}.vd-empty:not(:last-child){margin-bottom:10px}.vd-chart{--vd-color:var(--vd-blue);min-width:0}.vd-chart[data-tone=violet]{--vd-color:var(--vd-violet)}.vd-chart[data-tone=teal]{--vd-color:var(--vd-teal)}.vd-chart svg{display:block;width:100%;height:auto;overflow:visible}.vd-chart text{font-family:inherit;font-size:11px;fill:#91a0b4}.vd-gridline{stroke:#e8eef6;stroke-width:1}.vd-line{stroke:var(--vd-color);stroke-width:2.7;fill:none;stroke-linejoin:round;stroke-linecap:round}.vd-dot{fill:var(--vd-color);stroke:#fff;stroke-width:1.2}.vd-dot:hover{r:6}.vd-chart p{font-size:9px;color:#93a5ba;margin:8px 0 0;line-height:1.8}.vd-day-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}.vd-day-card{background:#fff;border:1px solid #dee8f3;border-radius:11px;padding:15px}.vd-day-card>header{display:flex;justify-content:space-between;gap:10px;margin-bottom:13px}.vd-day-card>header>b{color:#557c9f;font-size:13px}.vd-day-card>header>span{font-size:10px;color:#94a6ba}.vd-day-card>details{font-size:10px;color:#8ca0b9;margin-top:10px;cursor:pointer}.vd-all-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.vd-all-metrics .vd-metric>strong{font-size:21px}.vd-all-metrics .vd-metric{padding:12px}.vd-month-banner{display:flex;justify-content:space-between;gap:16px;padding:19px 22px;border:1px solid #dce6f4;background:#f5f9ff;border-radius:12px;margin-bottom:14px}.vd-month-banner span{color:#8c9eb7;font-size:10px}.vd-month-banner h4{font-size:23px!important;margin:5px 0 0!important;color:#3e6591!important}.vd-month-banner em{font-style:normal;color:#9ab0ca;margin:0 8px}.vd-month-banner>p{font-size:11px;color:#8699b1;max-width:400px;line-height:1.8;margin:0}.vd-legend{display:flex;gap:15px;align-items:center;flex-wrap:wrap;font-size:10px;color:#8a9db3;margin-bottom:16px}.vd-legend span{display:flex;gap:5px;align-items:center}.vd-legend i{width:8px;height:8px;display:block;border-radius:2px}.vd-legend .previous{background:#adbed7}.vd-legend .current{background:#347ddc}.vd-legend small{margin-left:auto;font-size:9px;color:#9babbd}.vd-comparisons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.vd-comparison{padding:17px;border:1px solid #dfe8f3;border-radius:12px;background:#fff;min-width:0}.vd-comparison>header{display:flex;gap:7px;justify-content:space-between;align-items:center;margin-bottom:18px}#liveLeaderBoard .vd-comparison h5{font-size:13px;color:#547493;margin:0}.vd-comparison>header>span{font-size:11px;color:#94a0b2;background:#f2f5f8;padding:4px 7px;border-radius:5px;white-space:nowrap}.vd-comparison [data-direction=up]{color:#168b71;background:#e9f8ef}.vd-comparison [data-direction=down]{color:#b66e43;background:#fff1e8}.vd-compare-row{display:flex;align-items:center;gap:10px;margin-top:13px}.vd-compare-row>span{font-size:10px;color:#6f89a5;flex:0 0 49px}.vd-compare-row small{font-size:8px;color:#9caabf;display:block}.vd-compare-row .vd-bar-track{flex:1;height:8px}.vd-compare-row .previous{background:#b9c8df}.vd-compare-row .current{background:linear-gradient(90deg,#80b4f5,#2568d8)}.vd-compare-row b{text-align:right;font-size:15px;color:#426d9c;flex:0 0 auto;min-width:48px}.vd-comparison>p{font-size:9px;color:#9aa8ba;line-height:1.7;margin:15px 0 0}.vd-day-list>.vd-comparisons{margin-top:16px}
.leader-detail{margin-top:24px;border-top:1px solid #e1e9f3;padding-top:22px;scroll-margin-top:18px}.vd-session-list{background:#f8fafd}.vd-session-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:15px}.vd-session-card{background:#fff;border:1px solid #e0e9f5;border-radius:11px;padding:15px}.vd-session-card>header{display:flex;gap:10px;justify-content:space-between;align-items:center}.vd-session-card>header>b{font-size:12px;color:#5b7a9f}.vd-session-title{font-size:11px;color:#8e9fb3;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin:10px 0 13px}.vd-session-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.vd-session-values span{font-size:9px;display:block;color:#8da1b8}.vd-session-values b{font-size:16px;color:#4d749b;font-weight:600}.vd-session-card footer{margin-top:14px;display:flex;justify-content:space-between;gap:8px;align-items:center}.vd-session-card footer>span{font-size:9px;color:#9aa9bb}.vd-session-card footer>button{font-size:10px!important;padding:6px 8px!important;background:#eef5ff!important;color:#3b75b8!important}.vd-host-settings{display:flex;gap:10px;margin-top:12px}.vd-host-settings input{padding:9px 12px;border:1px solid #d7e1ef;border-radius:8px;flex:1;min-width:0}.vd-action-group{display:flex;flex-wrap:wrap;gap:8px}.vd-evidence-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.vd-evidence-overview article{padding:14px;border-radius:10px;border:1px solid #dce7f4;background:#f3f7fe}.vd-evidence-overview strong{font-size:24px;color:#3068b0;display:block}.vd-evidence-overview span{font-size:10px;color:#8b9db4}.vd-muted{font-size:10px;color:#9ba9bb;line-height:1.8}.vd-timeline-controls{display:flex;gap:15px;align-items:center;justify-content:space-between;margin:18px 0}.vd-timeline-controls label{font-size:11px;color:#7b94af;display:flex;gap:8px;align-items:center}.vd-timeline-controls>span{font-size:10px;color:#9cacbe}.vd-timeline{position:relative;padding-left:19px;display:grid;gap:16px}.vd-timeline:before{content:'';position:absolute;left:4px;top:10px;bottom:10px;width:2px;background:#dfeaf9}.vd-time-card{position:relative;padding:19px;border:1px solid #dce6f4;border-radius:13px;background:#fff;min-width:0}.vd-time-card:before{content:'';position:absolute;width:9px;height:9px;border-radius:50%;background:#77a5e4;left:-19px;top:25px;border:3px solid #eff5ff}.vd-time-card>header{display:flex;gap:10px;align-items:center;justify-content:space-between}.vd-time-label{font-size:14px;color:#426fa7;font-weight:600}.vd-time-card>header>span:last-child{font-size:10px;color:#97a8bf;max-width:55%;text-align:right}.vd-time-numbers{display:flex;gap:18px;flex-wrap:wrap;padding:12px 0;margin:10px 0;border-top:1px solid #edf2f8;border-bottom:1px solid #edf2f8;font-size:10px;color:#90a3b9}.vd-time-numbers b{font-size:13px;color:#6483a5;margin-left:4px}.vd-time-content{display:grid;grid-template-columns:1fr 1fr;gap:22px}#liveLeaderBoard .vd-time-content h5{font-size:12px;color:#607fa1;margin:2px 0 8px}.vd-time-content p,.vd-time-content ul{font-size:12px;color:#607d9b;line-height:1.85;margin:0;padding:0}.vd-time-content li{margin:4px 0 8px 17px}.vd-time-content li>span{font-size:9px;color:#a4b1c2;margin-right:7px}.vd-time-content details,.vd-pair-evidence{font-size:10px;color:#9aabbe;line-height:1.8;margin-top:8px}.vd-time-content summary,.vd-pair-evidence summary{cursor:pointer}.vd-source{padding:9px 10px;background:#f5f8fd;border-radius:7px;margin:8px 0!important;white-space:pre-wrap;overflow-wrap:anywhere}.vd-source b{display:block;font-size:9px;color:#93a5bc;margin-bottom:5px}.vd-pair-evidence p{font-size:11px;color:#7d95ae;background:#f6f9fc;padding:10px;border-radius:8px}.vd-pair-evidence small{display:block;font-size:9px;color:#a0afc1;margin-top:6px}.vd-time-card>footer{margin-top:13px;padding:10px 12px;background:#f1f7ff;border-radius:8px}.vd-time-card>footer p{font-size:11px;line-height:1.8;color:#6d8fb3;margin:0}.vd-time-card>footer small{font-size:9px;color:#a88d60;display:block;margin-top:5px}.vd-load-more{display:block;margin:18px auto 0;background:#f0f6ff!important;color:#3f75b5!important}.vd-ai-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.vd-ai-cards article{background:#f3f7fe;padding:16px;border:1px solid #dce6f5;border-radius:10px}.vd-ai-cards h5{font-size:12px;color:#5f7e9f;margin:0 0 8px}.vd-ai-cards p{font-size:11px;color:#8397ae;line-height:1.8;margin:0}.vd-ai-cards small{font-size:9px;color:#9cabbe}.vd-task-card{border-bottom:1px solid #e6edf5;padding:13px 0}.vd-task-card>b{font-size:12px;color:#63809e}.vd-task-card>span{font-size:10px;color:#9aaac0;margin-left:10px}.vd-task-card ul{font-size:11px;color:#8da0b7;line-height:1.8;margin:9px 0}#lrEvidence progress{width:100%;height:8px;accent-color:#3c7dd3;margin:12px 0}.leader-note{font-size:11px;color:#8da0b7;line-height:1.8;margin-top:18px}
body.calm-ui.leader-present .topbar,body.calm-ui.leader-present .mobile-workspace-nav{display:none!important}body.calm-ui.leader-present .shell{margin:0!important;max-width:none;padding:20px!important}body.calm-ui.leader-present #reportPanel{border:0;background:none;padding:0!important}body.calm-ui.leader-present #reportPanel>.report-head,body.calm-ui.leader-present #reportPanel>.analysis-hero,body.calm-ui.leader-present .analysis-tabs,body.calm-ui.leader-present #liveAnalysisView>.analysis-advanced,body.calm-ui.leader-present footer.page-footer{display:none!important}body.calm-ui.leader-present #liveLeaderBoard{max-width:1600px;margin:0 auto;padding:26px}.leader-present .leader-controls{display:none}.vd-standalone{margin:0;padding:28px;background:#f4f7fc;font-family:'Microsoft YaHei','Segoe UI',sans-serif;color:#27476b}.vd-standalone #liveLeaderBoard{max-width:1450px;margin:0 auto}.vd-export-title{max-width:1450px;margin:0 auto 20px}.vd-export-title h1{font-size:23px}.vd-export-title p{font-size:11px;color:#859ab2}.vd-standalone .vd-rank-row{display:flex;align-items:center;gap:12px;padding:10px;background:#f7faff;border:0;text-align:left;width:100%}.vd-standalone details summary{cursor:pointer}
@media(max-width:1100px){.leader-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.vd-comparisons{grid-template-columns:repeat(2,minmax(0,1fr))}.vd-await-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vd-two-column{grid-template-columns:1fr}.vd-all-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.vd-ai-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:750px){#liveLeaderBoard{padding:17px 13px;border-radius:13px}#liveLeaderBoard .leader-head{flex-direction:column;gap:12px}#liveLeaderBoard .leader-head h3{font-size:21px}.leader-controls{padding:12px;gap:10px}.leader-controls label{flex:1 1 130px;min-width:0}.leader-controls input{max-width:none;width:100%;box-sizing:border-box}.leader-controls>button{flex:1 1 120px;min-width:0;font-size:10px!important}.leader-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.vd-metric{padding:12px}.vd-metric>strong{font-size:24px}.leader-tabs{width:auto;display:flex}.leader-tabs>button{flex:1;padding:8px 9px!important;font-size:11px!important}.vd-lead-note{align-items:start;flex-direction:column;gap:8px;padding:12px}.vd-lead-note>p{font-size:11px}.vd-panel{padding:16px 12px}.vd-panel-head{gap:10px}.vd-panel-head h4{font-size:15px!important}.vd-inline-select{font-size:9px}.vd-accounts,.vd-day-cards,.vd-session-cards,.vd-comparisons,.vd-ai-cards{grid-template-columns:1fr}.vd-account-card{padding:14px 12px}.vd-account-metrics{gap:7px}.vd-account-metrics .vd-metric{padding:9px 8px}.vd-account-metrics .vd-metric>strong{font-size:18px}.vd-account-metrics .vd-metric>span{font-size:9px}.vd-metric em{font-size:9px}.vd-status{font-size:8px}.vd-await-grid{grid-template-columns:1fr}.vd-await summary small{display:block;margin-left:12px}.vd-all-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.vd-month-banner{flex-direction:column;padding:15px}.vd-legend small{margin-left:0}.vd-session-values{grid-template-columns:repeat(2,minmax(0,1fr))}.vd-evidence-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.vd-time-content{grid-template-columns:1fr;gap:18px}.vd-time-card{padding:14px 12px}.vd-time-card>header{flex-direction:column;align-items:start}.vd-time-card>header>span:last-child{max-width:none;text-align:left}.vd-time-numbers{gap:9px}.vd-action-group{width:100%}.leader-detail>.vd-panel-head{flex-direction:column}.vd-host-settings{flex-direction:column}.vd-host-settings button{align-self:end}.vd-standalone{padding:10px}body.calm-ui.leader-present .shell{padding:10px!important}body.calm-ui.leader-present #liveLeaderBoard{padding:16px 12px}}
@media print{body.calm-ui.leader-print .topbar,body.calm-ui.leader-print .mobile-workspace-nav,body.calm-ui.leader-print .analysis-tabs,body.calm-ui.leader-print #reportPanel>.report-head,body.calm-ui.leader-print #reportPanel>.analysis-hero,body.calm-ui.leader-print .leader-controls,body.calm-ui.leader-print .leader-tabs,body.calm-ui.leader-print #liveLeaderBoard button,body.calm-ui.leader-print #lrStatus,body.calm-ui.leader-print #lrSessions,body.calm-ui.leader-print #lrNarrative,body.calm-ui.leader-print #lrEvidence,body.calm-ui.leader-print #liveAnalysisView>.analysis-advanced,body.calm-ui.leader-print footer{display:none!important}body.calm-ui.leader-print .shell{margin:0;padding:0;max-width:none}body.calm-ui.leader-print #reportPanel{border:0;padding:0}body.calm-ui.leader-print #liveLeaderBoard{border:0;padding:0}body.calm-ui.leader-print .vd-panel,body.calm-ui.leader-print .vd-account-card,body.calm-ui.leader-print .vd-comparison{break-inside:avoid}body.calm-ui.leader-print .vd-two-column{grid-template-columns:1fr 1fr}body.calm-ui.leader-print .vd-comparisons{grid-template-columns:repeat(3,minmax(0,1fr))}body.calm-ui.leader-print .vd-accounts{grid-template-columns:repeat(2,minmax(0,1fr))}body.calm-ui.leader-print .vd-line{-webkit-print-color-adjust:exact;print-color-adjust:exact}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}@page{size:A3 landscape;margin:12mm}}
/* Daily operating brief: clear hierarchy, real data and coverage. */
.vd-daily-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:18px 0 12px}.vd-daily-toolbar p{font-size:14px;color:#475569;margin:0}.vd-daily-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.vd-daily-kpis .vd-metric{min-height:138px}.vd-daily-compare{background:#eff6ff;border-left:4px solid #2563eb;border-radius:8px;padding:12px 16px;margin:14px 0;display:flex;flex-wrap:wrap;gap:8px 18px;color:#1d4ed8}.vd-daily-compare span{font-size:12px;color:#475569}.vd-sales-head{font-size:15px;font-weight:750;margin:22px 0 12px}.vd-sales-head small{display:inline-block;margin-left:12px;font-size:12px;font-weight:400;color:#64748b}.vd-daily-sales{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.vd-sales-empty,.vd-sales-caution,.vd-daily-footnote{font-size:12px;color:#64748b;line-height:1.7}.vd-sales-empty{padding:14px;background:#f8fafc;border-radius:10px}.vd-focus-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.vd-focus-card{border:1px solid #e2e8f0;border-radius:14px;overflow:hidden;background:#fff;min-width:0}.vd-focus-card h5{margin:0;padding:14px 16px;border-bottom:1px solid #eef2f6;font-size:15px}.vd-focus-entry{display:grid;grid-template-columns:1fr auto;gap:7px;padding:15px 16px;border-bottom:1px solid #eef2f6}.vd-focus-entry>span{grid-column:1/-1;font-size:11px;color:#047857;font-weight:650}.vd-focus-entry[data-tone="attention"]>span{color:#b45309}.vd-focus-entry b{font-size:14px;overflow-wrap:anywhere}.vd-focus-entry strong{font-size:22px;font-variant-numeric:tabular-nums;color:#0f766e;white-space:nowrap}.vd-focus-entry[data-tone="attention"] strong{color:#b45309}.vd-focus-entry em{font-style:normal;font-size:11px;color:#64748b;margin-left:4px}.vd-focus-entry small{grid-column:1/-1;line-height:1.6;color:#64748b;font-size:11px}.vd-focus-card footer,.vd-focus-card>p{padding:10px 16px;font-size:11px;color:#64748b}.vd-daily-footnote{margin-bottom:0}
@media(max-width:900px){.vd-daily-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.vd-focus-grid{grid-template-columns:1fr}.vd-daily-sales{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.vd-daily-toolbar{align-items:flex-start;flex-direction:column}.vd-daily-kpis{gap:8px}.vd-daily-kpis .vd-metric{padding:12px}.vd-daily-kpis .vd-metric strong{font-size:26px}.vd-sales-head small{display:block;margin:5px 0}.vd-daily-sales{grid-template-columns:1fr}}

/* workspace-unified.css */
/* Unified workspace rhythm: one primary surface per module, quiet details and readable cards. */
body.calm-ui{--work-ink:#142b46;--work-muted:#63758a;--work-blue:#2563eb;--work-border:#e3eaf3;background:#f4f7fb;color:var(--work-ink)}
body.calm-ui .shell{max-width:1680px}body.calm-ui .panel,body.calm-ui .report-panel{border:1px solid var(--work-border);border-radius:18px;box-shadow:0 3px 18px #183e6810;background:#fff}
body.calm-ui h2{font-size:26px;letter-spacing:-.6px}body.calm-ui h3{font-size:21px}body.calm-ui h4{font-size:16px}body.calm-ui h5{font-size:14px}
body.calm-ui button,body.calm-ui input,body.calm-ui select,body.calm-ui textarea{border-radius:10px;font-size:13px}body.calm-ui button{min-height:36px;line-height:1.4}body.calm-ui button.solid,body.calm-ui .leader-primary{background:#2563eb;color:#fff;border-color:#2563eb}
body.calm-ui .panel>.panel-title,body.calm-ui .report-head{margin-bottom:20px;padding-bottom:18px;border-bottom:1px solid #edf1f6}body.calm-ui .panel-title p,body.calm-ui .report-head p{line-height:1.75;color:#63758a;font-size:13px;max-width:900px}
body.calm-ui .section-title{margin:20px 0 12px}body.calm-ui .research-controls,body.calm-ui .report-controls{display:flex;flex-wrap:wrap;align-items:end;gap:12px}body.calm-ui details>summary{cursor:pointer;line-height:1.6}
#arBody{margin-top:0;padding:0}#arBody .ar-report-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 20px}#arBody .ar-block{background:#fff;border:1px solid #e3eaf3;border-radius:16px;padding:22px;margin:16px 0;box-shadow:none}#arBody .ar-block h4{margin:0 0 18px;color:#203853}#arBody .ar-block h4 small{font-size:11px;font-weight:400;color:#75869a;margin-left:12px}#arBody .ar-quant{background:#fff}#arBody .ar-score{display:grid;grid-template-columns:120px 1fr;gap:22px;align-items:center;margin-bottom:22px}#arBody .ar-score-total{background:#eff6ff;color:#1d4ed8;border-radius:14px;min-height:118px;display:flex;flex-direction:column;align-items:center;justify-content:center}#arBody .ar-score-total strong{font-size:42px}#arBody .ar-score-total span{font-size:12px}#arBody .ar-score-dim{display:grid;grid-template-columns:130px 1fr 32px;gap:12px;align-items:center;margin:10px 0;font-size:13px}#arBody .ar-score-dim small{font-size:10px;color:#71849c}#arBody .ar-score-track{height:8px;background:#edf2f7;border-radius:10px;overflow:hidden}#arBody .ar-score-track i{display:block;height:100%;background:#3b82f6;border-radius:10px}#arBody .ar-score-track i[data-level=low]{background:#f59e0b}#arBody .ar-score-track i[data-level=good]{background:#0d9488}#arBody .ar-quant-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}#arBody .ar-quant-grid>article,#arBody .ar-insight-cards>article{border:1px solid #e6edf5;border-radius:12px;padding:17px;background:#f9fbff;min-width:0}#arBody .ar-quant-grid h5{margin:0 0 10px}#arBody p{font-size:13px;line-height:1.85;color:#4c617b;overflow-wrap:anywhere}#arBody .ar-insight-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}#arBody .ar-insight-cards p{margin:0}#arBody .ar-method-detail{margin-top:16px;font-size:12px;color:#71849c}#arBody .ar-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}#arBody .ar-kpis article{border-radius:12px;background:#f5f9ff;padding:18px;border:1px solid #e5edf8}#arBody .ar-kpis strong{font-size:27px;color:#1d4ed8}#arBody .ar-kpis span,#arBody .ar-kpis small{display:block;font-size:12px;color:#657990}
.vd-review-scope{padding:14px 18px;background:#eff6ff;border-radius:12px;color:#1d4ed8;font-weight:650;margin-bottom:16px}.vd-review-scope span{display:block;color:#63758a;font-size:12px;font-weight:400;margin-top:5px}.vd-period-changes,.vd-daily-changes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin:14px 0 20px}.vd-daily-changes{grid-template-columns:repeat(3,minmax(0,1fr))}.vd-period-changes article{background:#f8faff;border:1px solid #e1eafa;border-radius:14px;padding:18px}.vd-period-changes article>span{display:block;font-size:12px;color:#63758a}.vd-period-changes article>strong{display:block;font-size:29px;color:#1d4ed8;margin:10px 0}.vd-period-changes em{font-size:12px;font-style:normal;margin-left:5px;color:#63758a}.vd-period-changes article>b{font-size:13px;color:#0d9488}.vd-period-changes article[data-tone=attention]>b{color:#b45309}.vd-period-changes small{display:block;font-size:11px;color:#71849c;margin-top:7px}.vd-day-delta{display:block;color:#6d28d9;font-size:13px;margin-bottom:6px}
.vd-review-brief{padding:20px;border:1px solid #e3eaf3;border-radius:15px;background:#fff;margin:18px 0}.vd-review-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.vd-review-cards>article{border:1px solid #e4eaf1;border-left:4px solid #3b82f6;border-radius:12px;padding:15px 17px;background:#f8fbff}.vd-review-cards>article[data-tone=attention]{border-left-color:#f59e0b;background:#fffbf4}.vd-review-cards>article[data-tone=good]{border-left-color:#0d9488;background:#f5fbf9}.vd-review-cards h5{margin:0 0 8px}.vd-review-cards p{font-size:13px;line-height:1.85;margin:0;color:#52667e}.vd-review-cards details{font-size:12px;margin-top:10px;color:#52667e}.vd-action-title{margin:20px 0 12px}.vd-review-actions{display:grid;gap:10px}.vd-review-actions>article{display:flex;gap:14px;padding:14px 16px;background:#f8fafc;border-radius:11px}.vd-review-actions>article>span{font-size:21px;color:#2563eb;font-weight:700}.vd-review-actions p{margin:5px 0;font-size:13px;line-height:1.7;color:#52667e}.vd-review-actions small{color:#71849c;font-size:11px}.vd-session-picker{margin-top:22px}.vd-session-picker>header{margin-bottom:13px}.vd-session-picker h5{margin:0}.vd-session-picker p{font-size:12px;color:#71849c}.vd-evidence-detail>summary{padding:15px;background:#f8fafc;border-radius:11px;margin:16px 0;color:#2b4668;font-weight:650}
.collection-progress{padding:22px;background:#f7fbff;border:1px solid #dce8f8;border-radius:16px;margin:20px 0}.collection-progress header{display:flex;justify-content:space-between;gap:16px}.collection-progress h4{margin:5px 0 8px}.collection-progress header>b{font-size:30px;color:#1d4ed8}.collection-progress p{font-size:13px;color:#61758e;line-height:1.7}.collection-progress progress{display:block;width:100%;height:13px;margin:14px 0;accent-color:#2563eb}.collection-progress-stats{display:flex;flex-wrap:wrap;gap:20px}.collection-progress-stats span{font-size:12px;color:#61758e}.collection-progress-stats b{color:#203853}.collection-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.collection-items>article{background:#fff;border:1px solid #e4ebf4;border-radius:10px;padding:13px}.collection-items b,.collection-items span,.collection-items small{display:block;font-size:12px;line-height:1.7}.collection-items small{color:#75869a}#creatorCollectPanel .research-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}#creatorCollectPanel .research-cards>article{padding:20px;border:1px solid #e3eaf3;border-radius:14px;background:#fff}#creatorCollectPanel .research-cards small{display:block;font-size:11px;line-height:1.7;color:#71849c}#creatorCollectPanel .research-cards h5{font-size:16px;margin:0 0 10px}#crDailyHistory article{border-top:1px solid #e8eef6;padding:14px 0}#crDailyHistory small{display:block;font-size:11px;color:#71849c}#crDailyHistory p{font-size:12px;line-height:1.6;color:#63758a}body.calm-ui [data-workspace=report]{min-width:0}
@media(max-width:1050px){.vd-period-changes{grid-template-columns:repeat(2,minmax(0,1fr))}#creatorCollectPanel .research-cards{grid-template-columns:repeat(2,minmax(0,1fr))}#arBody .ar-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){body.calm-ui h2{font-size:22px}body.calm-ui .report-panel,body.calm-ui .panel{border-radius:13px}#arBody .ar-report-head{align-items:flex-start;flex-direction:column}#arBody .ar-block{padding:16px}#arBody .ar-score{grid-template-columns:80px 1fr;gap:13px}#arBody .ar-score-total{min-height:95px}#arBody .ar-score-total strong{font-size:31px}#arBody .ar-score-dim{grid-template-columns:80px 1fr 24px;font-size:10px;gap:7px}#arBody .ar-score-dim small{display:none}#arBody .ar-quant-grid,#arBody .ar-insight-cards,.vd-review-cards,#creatorCollectPanel .research-cards,.collection-items{grid-template-columns:1fr}.vd-daily-changes{grid-template-columns:1fr}.vd-period-changes{gap:8px}.vd-period-changes article{padding:12px}.vd-period-changes article>strong{font-size:23px}.collection-progress{padding:15px}.collection-progress header>b{font-size:24px}.collection-progress-stats{gap:10px 18px}.vd-review-brief{padding:15px}}
.collection-main-actions{display:flex;align-items:center;gap:18px;margin:18px 0}.collection-main-actions p{font-size:12px;line-height:1.7;color:#63758a;max-width:650px}.collection-main-actions button{flex-shrink:0}body.calm-ui .collection-account-toolbar{padding:18px;background:#f7faff;border:1px solid #e4edf8;border-radius:13px;margin:18px 0}
@media(max-width:650px){.collection-main-actions{align-items:stretch;flex-direction:column;gap:8px}.collection-main-actions p{margin:0}.collection-account-toolbar label{flex:1;min-width:100px}}
.vd-day-delta[data-direction=down]{color:#b45309}.vd-day-delta[data-direction=up]{color:#047857}body.calm-ui .collection-main-actions button{background:#2563eb;color:white;border:1px solid #2563eb;padding:11px 18px}body.calm-ui #creatorCollectPanel>.calm-disclosure{border:1px solid #e4ebf5;background:#fff;border-radius:12px;margin:14px 0}body.calm-ui #creatorCollectPanel>.calm-disclosure>summary{padding:15px;color:#395474}body.calm-ui #creatorCollectPanel>.calm-disclosure>summary>span{font-size:12px;color:#71849c;margin-left:12px}body.calm-ui #creatorCollectPanel .backfill-workbench{padding:22px;border:1px solid #e3eaf3;border-radius:15px;margin:20px 0;background:#fff}
body.calm-ui[data-workspace=monitor] #roomList,body.calm-ui[data-workspace=transcript] #hostTranscriptList{gap:16px}body.calm-ui[data-workspace=videos] .video-monitor-tabs{margin-bottom:18px}body.calm-ui[data-workspace=extract] .extract-panel,body.calm-ui[data-workspace=speech-review] .speech-block{border-radius:15px}body.calm-ui[data-workspace=data] .data-files-card,body.calm-ui[data-workspace=data] .data-location-card{padding:22px;border-radius:15px}body.calm-ui[data-workspace=analytics] .analytics-summary,body.calm-ui[data-workspace=insights] .insight-card{border-radius:14px}
body.calm-ui button:not(.module-nav button):not(.analysis-tabs button):not(.leader-tabs button):not(.room-tab):not(.kind-tab):not(.icon-button){font-family:inherit;background:#fff;border:1px solid #dce5f0;color:#355879;box-shadow:none;padding:9px 13px;border-radius:10px;font-weight:500}body.calm-ui button.solid,body.calm-ui button.primary,body.calm-ui button.leader-primary,body.calm-ui .collection-main-actions button{background:#2563eb;color:#fff;border-color:#2563eb}.collection-progress progress{appearance:none;-webkit-appearance:none;border:0;border-radius:20px;overflow:hidden;background:#e7eef7}.collection-progress progress::-webkit-progress-bar{background:#e7eef7;border-radius:20px}.collection-progress progress::-webkit-progress-value{background:linear-gradient(90deg,#2563eb,#14b8a6);border-radius:20px}.collection-progress progress:indeterminate{background:linear-gradient(90deg,#e7eef7,#bfdbfe,#e7eef7)}
@media(max-width:650px){body.calm-ui #creatorCollectPanel .backfill-workbench{padding:15px}body.calm-ui #creatorCollectPanel>.calm-disclosure>summary>span{display:block;margin:5px 0 0}.vd-review-scope span{line-height:1.7}.collection-progress h4{overflow-wrap:anywhere}}
/* Period reviews and source-backed radar charts. */
.hr-review-tabs{display:flex;gap:6px;background:#f1f5fb;border-radius:12px;padding:5px;margin:16px 0}.hr-review-tabs button{flex:1;padding:12px 16px!important;border:0!important;background:transparent!important;color:#667b93!important;font-weight:650!important}.hr-review-tabs button[aria-selected=true]{background:#fff!important;color:#1d4ed8!important;box-shadow:0 2px 7px #1e3a8a10!important}
#hrReviewControls{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin:15px 0 20px}#hrReviewControls label{display:flex;align-items:center;gap:10px;font-size:13px;color:#4a6280}#hrReviewControls span{font-size:12px;color:#74869b}.vd-review-scope small{display:block;margin-top:8px;font-weight:400;color:#9a6700;font-size:12px}
.hr-score-panel{border:1px solid #e1e9f4;border-radius:16px;padding:23px;background:linear-gradient(130deg,#fff,#f9fbff);margin:20px 0}.hr-total{text-align:right}.hr-total strong{font-size:36px;color:#6d28d9;font-variant-numeric:tabular-nums}.hr-total span{display:block;font-size:11px;color:#71849c;margin-top:3px}.hr-score-layout{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr);gap:28px;align-items:center}.hr-radar{margin:0;min-width:0}.hr-radar svg{display:block;width:100%;max-width:440px;margin:0 auto;overflow:visible}.hr-radar-grid{fill:none;stroke:#e1e8f3;stroke-width:1}.hr-radar-axis{stroke:#dbe5f2;stroke-width:1}.hr-radar-tick{fill:#9aa9bc;font-size:9px}.hr-radar-label{fill:#48617e;font-size:12px;font-weight:600}.hr-radar-number{fill:#6d28d9;font-size:12px;font-weight:700}.hr-radar-area{fill:#8b5cf633;stroke:#7c3aed;stroke-width:2}.hr-radar-line{stroke:#7c3aed;stroke-width:2}.hr-radar-dot{fill:#7c3aed;stroke:#fff;stroke-width:1.5}.hr-radar figcaption{text-align:center;color:#71849c;font-size:11px;margin-top:5px}.hr-radar-empty{padding:24px;text-align:center;color:#71849c;font-size:12px}
.hr-dimensions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.hr-dimensions article{background:#fff;border:1px solid #e5ebf4;border-radius:11px;padding:13px 14px;min-width:0}.hr-dimensions header{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.hr-dimensions header b{font-size:12px;color:#35516f}.hr-dimensions header span{font-size:10px;color:#8a99ab}.hr-dimensions header strong{margin-left:auto;font-size:16px;color:#6d28d9}.hr-dim-bar{height:5px;border-radius:10px;background:#eef2f8;overflow:hidden;margin:10px 0}.hr-dim-bar i{display:block;height:100%;background:linear-gradient(90deg,#6366f1,#a78bfa);border-radius:10px}.hr-dimensions small{display:block;font-size:10px;color:#74869b;line-height:1.7;overflow-wrap:anywhere}.hr-dimensions article[data-missing=true] strong{font-size:12px;color:#8392a5}.hr-score-note,.hr-score-method{font-size:11px;line-height:1.85;color:#71849c}.hr-score-method>summary{font-weight:600;color:#58708d}.hr-score-method p{margin:8px 0}.hr-mini-score{margin:16px 0 0;padding:14px 0 5px;border-top:1px solid #edf1f7}.hr-mini-score header{display:flex;align-items:center;justify-content:space-between;gap:10px}.hr-mini-score header b{font-size:12px;color:#58708d}.hr-mini-score header span{color:#6d28d9;font-size:12px;font-weight:650}.hr-mini-score p{margin:8px 0 0;text-align:center;font-size:10px;color:#8796a9}.hr-radar-compact svg{max-width:320px}.hr-radar-compact .hr-radar-label{font-size:13px}
@media(max-width:1100px){.hr-score-layout{grid-template-columns:1fr;gap:14px}.hr-radar svg{max-width:410px}}
@media(max-width:650px){.hr-score-panel{padding:14px}.hr-total strong{font-size:29px}.hr-dimensions{gap:8px}.hr-dimensions article{padding:11px}.hr-dimensions header{gap:5px}.hr-dimensions header span{display:none}.hr-review-tabs button{padding:11px 8px!important;font-size:12px!important}#hrReviewControls{gap:8px}#hrReviewControls label{width:100%}#hrReviewControls input{flex:1;min-width:0}}
.hr-await-card{display:grid!important;grid-template-columns:auto 1fr auto;align-items:center;gap:12px}.hr-await-radar{grid-column:1/-1;width:100%}.hr-await-radar .hr-radar svg{max-width:230px}.hr-await-radar .hr-mini-score{padding-top:10px;margin-top:0}.hr-await-radar .hr-radar-number{fill:#94a3b8}
.hr-await-radar>summary{padding:7px 0;color:#8191a5;font-size:11px}.hr-score-panel .hr-radar svg{max-width:470px}.hr-score-panel .hr-score-layout{gap:20px}.hr-mini-score .hr-radar svg{max-width:330px}
.hr-historical{margin:16px 0 20px}.hr-historical h5{margin:0 0 6px;color:#35516f}.hr-historical p{margin:0 0 13px;font-size:11px;color:#7b8da3;line-height:1.7}.hr-history-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}@media(max-width:650px){.hr-history-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}}
/* Daily host scores: dedicated daily view, no ranking or wide table. */
.ds-view-tabs{display:flex;gap:6px;padding:5px;border:1px solid #e4ebf5;border-radius:12px;background:#f1f5fb;margin:12px 0 20px}.ds-view-tabs button{flex:1;border:0!important;background:transparent!important;color:#667b93!important;padding:12px!important}.ds-view-tabs button[aria-selected=true]{background:#fff!important;color:#1d4ed8!important;box-shadow:0 2px 8px #1e3a8a12!important;font-weight:650!important}.ds-board{background:#fff;border:1px solid #e1e9f4;border-radius:17px;padding:23px}.ds-board-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:19px}.ds-board-head h4{font-size:20px;margin:6px 0 9px;color:#1d3553}.ds-board-head p{font-size:12px;color:#71849c;margin:0}.ds-board-badge{display:inline-block;padding:7px 10px;border-radius:8px;background:#f5f0ff;color:#6d28d9;font-size:11px;white-space:nowrap}.ds-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px}.ds-summary article{border:1px solid #e4ebf7;border-radius:12px;background:#f7faff;padding:16px}.ds-summary article:nth-child(2){background:#f8f4ff;border-color:#e9defc}.ds-summary article:nth-child(3){background:#fffaf2;border-color:#f6e8cd}.ds-summary span,.ds-summary small{display:block;font-size:11px;color:#7b8da3}.ds-summary strong{display:block;font-size:28px;color:#1d4ed8;margin:8px 0}.ds-summary article:nth-child(2) strong{color:#7c3aed}.ds-summary article:nth-child(3) strong{color:#b45309}.ds-controls{display:flex;align-items:end;flex-wrap:wrap;gap:12px;border-top:1px solid #edf1f7;padding-top:18px;margin-bottom:19px}.ds-controls label{display:flex;flex-direction:column;gap:6px;font-size:11px;color:#71849c}.ds-controls>span{font-size:11px;color:#8b9caf;align-self:center;margin-left:auto}.ds-host-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.ds-host-card{border:1px solid #e2e9f4;border-radius:15px;overflow:hidden;background:#fff;padding:18px;min-width:0}.ds-host-card>header{display:flex;justify-content:space-between;gap:12px;align-items:center}.ds-host-card>header>div:first-child{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;align-items:center;min-width:0}.ds-avatar{grid-row:span 2;width:35px;height:35px;border-radius:11px;background:#eff4ff;color:#2563eb;font-weight:650;display:grid;place-items:center}.ds-host-card h5{font-size:16px;margin:0;color:#203b5c;overflow-wrap:anywhere}.ds-host-card header small{font-size:10px;color:#8798ac}.ds-host-total{text-align:right;flex-shrink:0}.ds-host-total strong{display:block;font-size:35px;color:#7c3aed;line-height:1.15}.ds-host-total span{display:block;font-size:10px;color:#8292a5;margin-top:4px}.ds-host-card .hr-radar{margin-top:15px}.ds-host-card .hr-radar svg{max-width:345px}.ds-host-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px 0}.ds-host-values>div{background:#f7f9fc;border:1px solid #e9eef6;border-radius:9px;padding:11px;min-width:0}.ds-host-values span{display:block;font-size:10px;color:#7c8da1}.ds-host-values b{display:block;font-size:20px;color:#2c557c;margin-top:6px;font-variant-numeric:tabular-nums}.ds-host-values em{font-size:10px;color:#8090a4;font-style:normal;margin-left:3px}.ds-insight{border-left:3px solid #3b82f6;background:#f5f9ff;padding:12px 14px;border-radius:9px;min-height:88px}.ds-insight[data-attention=true]{border-left-color:#f59e0b;background:#fffbf3}.ds-insight>b{font-size:12px;color:#436182}.ds-insight[data-attention=true]>b{color:#a16207}.ds-insight p{margin:6px 0 0;font-size:12px;line-height:1.85;color:#5b708a}.ds-insight small{display:block;color:#8b9caf;font-size:10px;line-height:1.7;margin-top:6px}.ds-dimension-detail{margin:14px 0;font-size:11px;color:#71849c}.ds-dimension-detail summary{padding:8px 0;font-weight:550}.ds-dimension-list{display:grid;gap:8px;margin-top:8px}.ds-dimension-list article{background:#f8fafc;border:1px solid #e8eef7;border-radius:9px;padding:10px 12px}.ds-dimension-list header{display:flex;gap:10px;align-items:center}.ds-dimension-list header b{font-size:11px;color:#47627e}.ds-dimension-list header span{font-size:10px;color:#8697aa}.ds-dimension-list header strong{margin-left:auto;color:#7c3aed;font-size:12px}.ds-dimension-list p{margin:6px 0;font-size:10px;line-height:1.7}.ds-dimension-list small{font-size:10px;line-height:1.7;overflow-wrap:anywhere}.ds-host-card>footer{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid #edf1f7;padding-top:13px}.ds-host-card>footer>span{font-size:10px;color:#8293a8}.ds-host-card>footer button{font-size:11px!important;color:#2563eb!important}.ds-missing,.ds-method{margin-top:18px;font-size:12px;color:#687f9b;border-top:1px solid #e9eef6;padding-top:15px}.ds-missing-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.ds-missing-list article{border:1px solid #e4ebf5;border-radius:9px;padding:12px;display:flex;align-items:center;flex-wrap:wrap;gap:10px}.ds-missing-list b{font-size:12px;color:#4a6481}.ds-missing-list span{font-size:11px;color:#8a99ac}.ds-missing-list button{margin-left:auto;font-size:11px!important}.ds-method p,.ds-boundary{font-size:11px;line-height:1.9;color:#768aa3}.ds-updated{font-size:10px;color:#8a9caf;line-height:1.7;margin-top:16px}.ds-empty{padding:28px 18px;background:#f8fafc;border:1px dashed #dce6f3;border-radius:12px;color:#7890ac;font-size:13px;line-height:1.85;text-align:center;grid-column:1/-1}
@media(max-width:1050px){.ds-host-grid{grid-template-columns:1fr}.ds-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.ds-controls>span{margin-left:0}}
@media(max-width:650px){.ds-board{padding:14px;border-radius:12px}.ds-board-head{flex-direction:column;gap:8px}.ds-board-head h4{font-size:18px}.ds-summary{gap:8px}.ds-summary article{padding:12px}.ds-summary strong{font-size:23px}.ds-host-card{padding:14px}.ds-host-card h5{font-size:14px}.ds-host-total strong{font-size:28px}.ds-host-card header small{font-size:9px}.ds-host-values>div{padding:9px}.ds-host-values b{font-size:18px}.ds-host-card>footer{align-items:flex-start;flex-direction:column}.ds-host-card>footer button{width:100%}.ds-controls label{flex:1;min-width:100px}.ds-controls input,.ds-controls select{width:100%}.ds-missing-list{grid-template-columns:1fr}.ds-view-tabs button{padding:10px 7px!important;font-size:12px!important}}
.ds-filter-note{font-size:11px;color:#8193aa;line-height:1.7;margin:0 0 15px}

.lr-source-bar,.speech-ai-panel{padding:16px 20px;background:#eef5ff;border:1px solid #bfd6f8;border-radius:16px;margin:12px 0;color:#244168}.lr-source-bar{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.lr-source-bar p{flex:1;margin:0;font-size:13px;line-height:1.6}.lr-source-bar progress,.speech-ai-panel progress{width:100%;accent-color:#2762df}.speech-ai-panel header{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.speech-ai-panel small{display:block;color:#55708c;margin-top:8px}.speech-ai-job{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:8px 0}.speech-ai-diff{border:1px solid #cce0f2;padding:12px;border-radius:12px;margin:12px 0}.speech-ai-diff p{white-space:pre-wrap}.speech-ai-diff del{color:#a33a3a}.speech-ai-diff ins{color:#167258;text-decoration:none}.leader-controls select{min-height:40px;background:white;border:1px solid #c4d6e8;border-radius:10px;padding:8px 10px;color:#234168}button:disabled{cursor:not-allowed;opacity:.55}

#localWriterForm{display:grid;gap:14px;max-width:800px}#localWriterForm label{display:grid;gap:8px}#localWriterForm textarea,#localWriterForm select{border:1px solid #c8d7e9;border-radius:10px;padding:12px;font:inherit;color:#263d57;background:white}#localWriterGenerate{justify-self:start}

.speech-ai-inline-status{font-size:12px;color:#43627e;line-height:1.6}.speech-ai-selected{color:#225dbe;border-color:#b6cdf1;background:#eef5ff}.transcript-item .speech-ai-selected{margin:8px 10px 4px 0}.speech-button-row{flex-wrap:wrap}

.peer-rank-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.peer-rank-card{border:1px solid #cfddf1;border-radius:18px;padding:20px;background:#fff}.peer-rank-card>header{display:flex;align-items:center;gap:12px}.peer-rank-card h5{margin:0;font-size:17px}.peer-rank-card>header>strong{margin-left:auto;color:#2464d9;font-size:30px}.peer-rank-card em{display:block;font-style:normal;font-size:11px;color:#637892}.peer-rank-num{background:#2761d5;color:white;border-radius:12px;padding:10px;font-size:20px;font-weight:bold}.peer-rank-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0}.peer-rank-kpis>div{padding:10px;background:#edf5ff;border-radius:10px}.peer-rank-kpis small,.peer-rank-kpis b{display:block}.peer-method-strip{padding:12px;background:#eef5ff;color:#385779;margin-bottom:18px;border-radius:12px}@media(max-width:760px){.peer-rank-list{grid-template-columns:1fr}}

.speech-checked-controls{display:flex;gap:14px;flex-wrap:wrap;margin:16px 0}.speech-checked-controls label{display:grid;gap:6px}.speech-checked-pages{display:flex;gap:16px;align-items:center;justify-content:center;padding:18px}.checked-diff-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:12px 0}.checked-diff-grid>section{padding:14px;background:#f1f6fc;border-radius:12px}.checked-diff-grid>section:last-child{background:#eef8f3}.checked-diff-grid p{white-space:pre-wrap;line-height:1.8}.checked-diff-grid h4{margin:0 0 8px;font-size:14px}@media(max-width:700px){.checked-diff-grid{grid-template-columns:1fr}}

.ds-six-dimensions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}.ds-six-dimensions>section{padding:12px;border:1px solid #cdddf1;border-radius:12px;background:#eff6ff}.ds-six-dimensions span,.ds-six-dimensions strong,.ds-six-dimensions small{display:block}.ds-six-dimensions strong{font-size:21px;color:#215fcb}.ds-six-dimensions small{font-size:11px;color:#53718e;margin-top:5px}.ds-six-dimensions [data-state=zero]{border-color:#e5bb73;background:#fff9ec}.ds-six-dimensions [data-state=zero] strong{color:#a56512}.ds-six-dimensions [data-state=missing]{background:#f5f6f8}.hr-evidence-details{margin:12px 0;line-height:1.65}.hr-evidence-details p,.ds-six-dimensions details p{font-size:12px}.hr-evidence-details>section{border-top:1px solid #dde6f0;padding:12px 0}.ds-six-dimensions details{margin-top:8px;font-size:12px}@media(max-width:600px){.ds-six-dimensions{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* A filtered host occupies the full row; expanded evidence never squeezes into a narrow tile. */
.ds-host-grid>.ds-host-card:only-child{grid-column:1/-1}.ds-six-dimensions>section:has(details[open]){grid-column:1/-1}.ds-six-dimensions details p{overflow-wrap:anywhere;line-height:1.7}.ds-host-grid>.ds-host-card:only-child .hr-radar{max-width:420px;margin-inline:auto}

.peer-rules{border:1px solid #dce7f8;border-radius:14px;padding:18px;margin:16px 0;background:#f7faff}.peer-rules header{display:flex;justify-content:space-between;align-items:center;gap:12px}.peer-rules h5{margin:5px 0;font-size:17px;color:#183859}.peer-rules header>b{color:#245dcc;font-size:12px}.peer-rules-scale{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:13px 0}.peer-rules-scale span{padding:12px;border-radius:10px;background:#fff;font-size:12px;color:#60748b}.peer-rules-scale strong{display:block;font-size:23px;color:#245dcc}.peer-rules-scale span:first-child strong{color:#b57117}.peer-rules p{font-size:12px;line-height:1.8;color:#526982;margin:8px 0}.peer-rules summary{font-size:12px;color:#245dcc;cursor:pointer}.peer-rules-dimensions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}.peer-rules-dimensions article{padding:12px;border:1px solid #e1e9f5;border-radius:10px;background:#fff}.peer-rules-dimensions b{font-size:13px}.peer-rules-dimensions strong{float:right;color:#245dcc;font-size:12px}.peer-rules-dimensions small{display:block;color:#637990;line-height:1.7;margin-top:6px}@media(max-width:720px){.peer-rules header{align-items:flex-start;flex-direction:column}.peer-rules-dimensions{grid-template-columns:repeat(2,minmax(0,1fr))}}

.checked-speech-card .checked-diff-grid{grid-template-columns:1fr}.checked-speech-card .checked-diff-grid p,.speech-ai-diff .checked-diff-grid p{white-space:pre-wrap;line-height:1.95;font-size:14px;max-height:none;overflow:visible;display:block;-webkit-line-clamp:unset}.checked-speech-card .checked-diff-grid section{padding:20px;border-radius:14px}.checked-speech-card .speech-paragraph{white-space:pre-wrap}

.live-state-card.unknown{background:#fffbf2;border-color:#f0ddb7}.live-state-card.unknown>i{background:#c78323}.live-state-card.unknown small{color:#947133}.live-state-card small{white-space:normal;overflow-wrap:anywhere;max-width:55%;line-height:1.6}.live-state-card{min-height:78px}

.host-ai-action{margin:18px 0}.host-ai-progress{display:inline-block;color:#48637c;font-size:12px;margin-left:12px}.host-ai-report{background:#f8fbff;border:1px solid #d5e5f8;padding:20px;border-radius:16px;margin-top:16px}.host-ai-report>header{display:flex;align-items:start;justify-content:space-between;gap:12px}.host-ai-report h5{font-size:17px;margin:8px 0}.host-ai-report p{font-size:13px;line-height:1.8;color:#526882}.host-ai-report small{font-size:11px;color:#6d8094}.host-ai-dimensions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.host-ai-dimensions>article{background:white;border:1px solid #e1e9f4;padding:16px;border-radius:12px}.host-ai-dimensions article header{display:flex;justify-content:space-between;gap:8px}.host-ai-dimensions strong{color:#245dcc}.host-ai-dimensions pre{white-space:pre-wrap;max-height:300px;overflow:auto;font-size:11px}.host-ai-next{background:#f1f7fe;padding:10px;border-radius:8px}.host-ai-next b,.host-ai-dimensions summary{font-size:12px;color:#245dcc}.ds-host-card .host-ai-dimensions{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:720px){.host-ai-dimensions,.ds-host-card .host-ai-dimensions{grid-template-columns:1fr}}

.speech-filter-scope{padding:12px 16px;border-radius:10px;background:#edf5ff;border:1px solid #cfe2fa;color:#245dcc;font-size:12px;line-height:1.6;margin:12px 0}#speechReviewPanel #transcriptRoom{min-width:220px}

/* Compact evidence-based AI review: concise cards, full reasoning is expandable. */
.host-ai-overview{display:grid;grid-template-columns:100px 1fr 1.35fr;gap:10px;margin:18px 0}.host-ai-overview>div{background:#eaf3ff;border-radius:10px;padding:12px}.host-ai-overview span{display:block;font-size:11px;color:#647d99;margin-bottom:5px}.host-ai-overview strong{font-size:13px;color:#234b7a}.host-ai-overview>div:first-child strong{font-size:22px;color:#245dcc}.ds-host-card .host-ai-dimensions{grid-template-columns:repeat(3,minmax(0,1fr))}.host-ai-dimensions>article{border-top:3px solid var(--ai-tone,#4777df);padding:13px;min-width:0}.host-ai-dimensions>article[data-dimension=entry]{--ai-tone:#8759d9}.host-ai-dimensions>article[data-dimension=retention]{--ai-tone:#0e96ab}.host-ai-dimensions>article[data-dimension=interaction]{--ai-tone:#ce8920}.host-ai-dimensions>article[data-dimension=growth]{--ai-tone:#189568}.host-ai-dimensions>article[data-dimension=stability]{--ai-tone:#5264cf}.host-ai-dimensions>article[data-missing=true]{--ai-tone:#8997a8}.host-ai-dimensions>article>header strong{font-size:19px;color:var(--ai-tone,#4777df)}.host-ai-report .host-ai-observation{font-size:12px;line-height:1.75;margin:12px 0}.host-ai-next p{font-size:12px;line-height:1.7;margin:5px 0 0}.host-ai-detail{border-top:1px solid #edf1f6;margin-top:13px;padding-top:10px}.host-ai-detail h6{font-size:12px;margin:14px 0 4px}.host-ai-evidence{font-size:12px}.host-ai-evidence>div{margin:8px 0}.host-ai-evidence dt{color:#7b8ba0}.host-ai-evidence dd{margin:3px 0;color:#25496f;overflow-wrap:anywhere}.host-ai-summary{margin:16px 0;font-size:12px;color:#245dcc}.host-ai-time{display:block;margin-top:10px}.host-ai-report pre{white-space:pre-wrap;max-height:250px;overflow:auto;font-size:11px}.host-ai-report>header>b{white-space:nowrap;font-size:12px}@media(max-width:1100px){.host-ai-dimensions,.ds-host-card .host-ai-dimensions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.host-ai-dimensions,.ds-host-card .host-ai-dimensions{grid-template-columns:1fr}.host-ai-overview{grid-template-columns:1fr}.host-ai-report{padding:14px}.host-ai-report>header{flex-wrap:wrap}}

.host-ai-fold{margin-top:16px;border:1px solid #cbdcfa;border-radius:14px;background:#f7faff}.host-ai-fold>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px;cursor:pointer;list-style:none;color:#244574}.host-ai-fold>summary b{display:block;font-size:14px}.host-ai-fold>summary small{display:block;font-size:11px;color:#6d8094;margin:4px 0}.host-ai-fold>summary em{font-size:11px;font-style:normal;white-space:nowrap;color:#326cd1}.host-ai-digest{display:block;font-style:normal;font-size:12px;line-height:1.8;margin-top:6px}.host-ai-fold:not([open]) .host-ai-report{display:none}.host-ai-fold .host-ai-report{margin:0;border:0;border-top:1px solid #d8e4f6;border-radius:0 0 14px 14px}.ds-observation-notice{color:#875b13;background:#fff6df;border-left:3px solid #dfa624;padding:10px 14px;font-size:12px;line-height:1.7}.speech-session-head{display:flex;justify-content:space-between;gap:20px;margin:20px 0}.speech-session-head h3{margin:6px 0;font-size:20px}.speech-session-head p,#speechSessionStatus{color:#698098;font-size:12px;line-height:1.8}.speech-session-layout{display:grid;grid-template-columns:245px minmax(0,1fr);gap:20px;align-items:start}.speech-session-card{display:block;width:100%;text-align:left;background:white;border:1px solid #e0e8f4;border-radius:12px;padding:15px;margin:0 0 12px;cursor:pointer;white-space:normal;color:#234368}.speech-session-card.selected{border-color:#477ede;background:#eef5ff}.speech-session-card span,.speech-session-card b,.speech-session-card small,.speech-session-card em{display:block;margin-bottom:6px}.speech-session-card span{font-weight:700;font-size:14px}.speech-session-card b{font-size:12px}.speech-session-card small{font-size:11px;color:#6d8094;line-height:1.8}.speech-session-card em{font-size:11px;font-style:normal;color:#326cd1}.speech-session-document{border:1px solid #dbe6f5;border-radius:14px;padding:24px;background:#fff}.speech-session-document>header{display:flex;align-items:start;justify-content:space-between;gap:15px}.speech-session-document h3{font-size:21px;margin:6px 0}.speech-session-document header p{font-size:12px;color:#67819b}.speech-session-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0;font-size:11px;color:#6b819c}.speech-session-summary span{background:#edf5ff;padding:12px;border-radius:9px}.speech-session-summary b{font-size:20px;display:block;color:#245dcc}.speech-session-boundary{font-size:12px;line-height:1.8;color:#976e28;background:#fff9e9;padding:12px;border-radius:9px}.speech-session-tools{display:flex;gap:10px;margin:18px 0}.speech-session-passages section{border-top:1px solid #ecf0f5;padding:22px 0}.speech-session-passages time{font-size:11px;color:#7288a4}.speech-session-passages section p{white-space:pre-wrap;line-height:2.1;font-size:15px;color:#2b405b;margin:12px 0;overflow-wrap:anywhere}.speech-session-gap{font-size:12px;color:#ad7c24;padding:12px;background:#fff9eb}.speech-session-page{display:flex;gap:10px;align-items:center;margin:18px 0}@media(max-width:1100px){.speech-session-layout{grid-template-columns:1fr}#speechSessionList{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}}@media(max-width:720px){#speechSessionList{grid-template-columns:1fr}.speech-session-document{padding:16px}.speech-session-summary{grid-template-columns:repeat(2,1fr)}.speech-session-head,.speech-session-document>header{flex-wrap:wrap}}

.speech-session-tools{flex-wrap:wrap;align-items:center}.speech-word-status{font-size:12px;color:#326bd0}.speech-session-tools [data-export-session-word]{background:#edf6ff;border-color:#a9caf7;color:#245dcc;font-weight:600}

.analytics-loading.compact{min-height:72px;margin:12px 0;padding:16px;border:1px solid #cfdef7;border-radius:12px;background:#f2f7ff;color:#365b8f;text-align:left;place-items:start}.analytics-loading p{margin:6px 0}.analytics-loading small{color:#6c84a3}.analytics-export-selector select{min-width:170px}.analytics-controls{flex-wrap:wrap}
.speech-category-control{display:flex;align-items:center;gap:6px;font-size:12px;color:#4d647d}.speech-category-control select{min-height:34px;border:1px solid #c9d8ea;border-radius:9px;background:#fff;color:#244368;padding:0 8px}
.speech-ai-review{margin:18px 0;border:1px solid #cadcf7;border-radius:14px;background:#f8fbff;padding:20px}
.speech-ai-review>header{display:flex;justify-content:space-between;gap:14px;align-items:start}
.speech-ai-review h4{margin:4px 0;font-size:17px;color:#203d68}
.speech-ai-review header p{margin:4px 0 0;color:#4f6780;font-size:13px;line-height:1.8}
.speech-ai-review .speech-badge{flex:0 0 auto;padding:3px 8px;border-radius:999px;background:#e5f1ff;color:#2563ae;font-size:11px}
.speech-ai-category{margin-top:18px;border-top:1px solid #dfe8f5;padding-top:16px}
.speech-ai-category>h4{color:#1f446d;font-size:15px}
.speech-ai-category>ul{margin:8px 0 12px;padding-left:20px;color:#536b85;font-size:12px;line-height:1.8}
.speech-ai-category>article{background:#fff;border:1px solid #e1e9f4;border-radius:12px;padding:15px;margin:10px 0}
.speech-ai-category>article header{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.speech-ai-category>article strong{color:#274b78;font-size:13px}
.speech-ai-category>article small{color:#74879b;font-size:11px}
.speech-ai-category>article p{white-space:pre-wrap;line-height:2;color:#2c415d;font-size:14px;margin:10px 0 0}
.speech-ai-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;font-size:11px;color:#5f7387}.speech-ai-meta span{background:#fff;border:1px solid #dfe8f4;border-radius:999px;padding:3px 8px}

/* creator-controls.css */
.speech-host-state{padding:12px 16px;border-radius:12px;background:#edf3ff;border:1px solid #ceddfa;color:#244882;font-weight:600;line-height:1.6}.speech-host-state[data-state="paused"]{background:#fff5e5;border-color:#edd3a0;color:#86550c}.speech-host-state[data-state="active"]{background:#e8f8f1;border-color:#b9e4d3;color:#167353}.speech-host-state[data-state="error"]{background:#fff0ed;color:#a6412e}.creator-group-dialog{width:min(760px,calc(100vw - 32px));max-height:85vh;box-sizing:border-box;border:1px solid #dae3f0;border-radius:20px;padding:24px;color:#20334e;background:#f9fbff;box-shadow:0 20px 80px #15254055}.creator-group-dialog::backdrop{background:#13243a70}.creator-group-dialog header{display:flex;justify-content:space-between;align-items:center;gap:16px}.creator-group-dialog h2{margin:6px 0;font-size:22px}.creator-group-dialog p{line-height:1.6;color:#52657c}.creator-group-row{display:flex;justify-content:space-between;gap:20px;align-items:center;background:white;border:1px solid #dce5f1;border-radius:12px;padding:14px 16px;margin:10px 0}.creator-group-row label{display:grid;gap:6px;min-width:0}.creator-group-row small{font-size:12px;color:#6b7e95;overflow-wrap:anywhere}.creator-group-row select{min-width:145px;flex-shrink:0}.transcript-actions{flex-wrap:wrap;gap:12px}.transcript-actions button{white-space:nowrap}#transcriptHostPause{border-color:#d9bc7c;color:#8f6214}#creatorGroupStatus{font-size:13px}.analytics-controls{flex-wrap:wrap}@media(max-width:640px){.creator-group-dialog{padding:16px}.creator-group-row{flex-direction:column;align-items:stretch;gap:10px}.creator-group-row select{width:100%}.speech-host-state{font-size:13px}}

/* audience-filter.css */
.analytics-filtering-notice{display:grid;gap:7px;margin:14px 0;padding:16px 18px;border:1px solid #b9dfd2;background:#ecf8f3;border-radius:13px;color:#266f58}.analytics-filtering-notice strong{font-size:15px}.analytics-filtering-notice span{font-size:13px;font-weight:600}.analytics-filtering-notice small{color:#61786e;font-size:11px;line-height:1.7}#analyticsFilteringNotice:empty{display:none}

/* apple-polish.css */
/* ============================================================================
 * apple-polish.css — Live Assistant 8.0.0 visual system
 *
 * The goal is not “more decoration”; it is a calmer, more direct operating room:
 *   1. Apple-like typographic hierarchy and negative space;
 *   2. A restrained glass material for fixed chrome and primary cards;
 *   3. One motion language: 180–360ms, cubic-bezier(.32,.72,0,1);
 *   4. Video surfaces remain stable — no aggressive scaling while streams play.
 * ========================================================================== */

:root {
  --ap-ease: cubic-bezier(.32, .72, 0, 1);
  --ap-fast: 180ms;
  --ap-slow: 360ms;
  --ap-blue: #0071e3;
  --ap-blue-deep: #005bb8;
  --ap-blue-light: #40a0ff;
  --ap-ink: #1d1d1f;
  --ap-ink-secondary: #494950;
  --ap-muted: #75757d;
  --ap-line: rgba(17, 24, 39, .10);
  --ap-line-strong: rgba(17, 24, 39, .16);
  --ap-surface: rgba(255, 255, 255, .92);
  --ap-surface-raised: rgba(255, 255, 255, .97);
  --ap-focus: rgba(0, 113, 227, .28);
  --ap-shadow-card: 0 1px 1px rgba(16, 24, 40, .03), 0 8px 24px -12px rgba(16, 24, 40, .14);
  --ap-shadow-raised: 0 1px 1px rgba(16, 24, 40, .04), 0 18px 48px -20px rgba(16, 24, 40, .22);
  --ap-shadow-primary: 0 8px 20px -8px rgba(0, 92, 184, .48);
  --ap-radius: 18px;
  --ap-radius-lg: 24px;
}

html { color-scheme: light; }

body.calm-ui {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue",
    "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;
  color: var(--ap-ink);
  background:
    radial-gradient(1100px 700px at 8% -12%, rgba(64, 160, 255, .14), transparent 62%),
    radial-gradient(900px 600px at 92% 4%, rgba(107, 90, 214, .10), transparent 58%),
    linear-gradient(180deg, #fbfbfd 0%, #f5f5f7 44%, #f7f8fa 100%);
  background-attachment: fixed;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

body.calm-ui ::selection { background: rgba(0, 113, 227, .16); color: var(--ap-ink); }

/* --------------------------------------------------------------- Chrome --- */

body.calm-ui .topbar {
  background: rgba(250, 250, 252, .78);
  border-right: 1px solid rgba(17, 24, 39, .08);
  box-shadow: 1px 0 0 rgba(255, 255, 255, .70) inset, 12px 0 34px -28px rgba(16, 24, 40, .24);
  backdrop-filter: blur(22px) saturate(175%);
  -webkit-backdrop-filter: blur(22px) saturate(175%);
}

body.calm-ui .brand-mark {
  border-radius: 12px;
  box-shadow: 0 10px 24px -12px rgba(0, 91, 184, .65), 0 0 0 1px rgba(255, 255, 255, .55) inset;
}

body.calm-ui .brand h1 {
  letter-spacing: -.035em;
}

body.calm-ui .nav-group-label {
  color: rgba(117, 117, 125, .82);
  letter-spacing: .10em;
}

body.calm-ui .module-nav :is(button, a) {
  border-radius: 12px;
  letter-spacing: -.01em;
  transition: color var(--ap-fast) var(--ap-ease), background-color var(--ap-fast) var(--ap-ease),
    transform var(--ap-fast) var(--ap-ease), box-shadow var(--ap-slow) var(--ap-ease);
}

body.calm-ui .module-nav :is(button, a):hover {
  background: rgba(17, 24, 39, .045);
  color: var(--ap-ink);
  transform: translateY(-1px);
}

body.calm-ui .module-nav :is(button, a):active {
  transform: translateY(0) scale(.985);
}

body.calm-ui .module-nav :is(button, a).active {
  background: linear-gradient(135deg, rgba(0, 113, 227, .14), rgba(64, 160, 255, .09));
  color: #005bb8;
  box-shadow: 0 0 0 1px rgba(0, 113, 227, .13), 0 8px 20px -14px rgba(0, 91, 184, .65);
}

body.calm-ui .module-nav :is(button, a).active::before {
  width: 3px;
  border-radius: 0 4px 4px 0;
  background: linear-gradient(180deg, #40a0ff, #0071e3);
}

/* --------------------------------------------------------------- Cards --- */

body.calm-ui :is(.panel, .insight-card, .overview-card, .trend-card, .material-card,
  .talk-script-panel, .speech-block, .live-state-card, .auto-transcript-card,
  .live-transcript-card, .transcript-history-card, .product-speech-card, .archive-card) {
  border: 1px solid rgba(255, 255, 255, .76);
  border-radius: var(--ap-radius);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(252, 252, 254, .91)),
    linear-gradient(180deg, #ffffff, #f7f8fa);
  box-shadow: 0 0 0 1px rgba(17, 24, 39, .06), var(--ap-shadow-card);
  transition: border-color var(--ap-slow) var(--ap-ease), box-shadow var(--ap-slow) var(--ap-ease),
    transform var(--ap-slow) var(--ap-ease);
}

body.calm-ui :is(.panel, .insight-card, .overview-card, .trend-card):hover {
  border-color: rgba(255, 255, 255, .90);
  box-shadow: 0 0 0 1px rgba(17, 24, 39, .07), var(--ap-shadow-raised);
}

body.calm-ui :is(h1, h2, h3) {
  letter-spacing: -.035em;
}

body.calm-ui :is(.transcript-head, .analytics-head, .console-head) p,
body.calm-ui .panel > header p {
  color: var(--ap-muted);
  line-height: 1.6;
}

body.calm-ui .eyebrow {
  letter-spacing: .12em;
  color: rgba(0, 113, 227, .68);
}

/* ------------------------------------------------------------- Controls --- */

body.calm-ui :is(.primary, .speech-block .primary, .speech-button-row .primary) {
  border-radius: 13px;
  background: linear-gradient(180deg, #248cff, #0063cd 58%, #005bb8);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .28) inset, var(--ap-shadow-primary);
  transition: filter var(--ap-fast) var(--ap-ease), transform var(--ap-fast) var(--ap-ease),
    box-shadow var(--ap-slow) var(--ap-ease);
}

body.calm-ui :is(.primary, .speech-block .primary, .speech-button-row .primary):hover {
  filter: saturate(1.06) brightness(1.02);
  transform: translateY(-1px);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .30) inset, 0 12px 28px -10px rgba(0, 91, 184, .58);
}

body.calm-ui :is(.primary, .speech-block .primary, .speech-button-row .primary):active {
  transform: translateY(0) scale(.985);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .18) inset, 0 4px 12px -8px rgba(0, 91, 184, .60);
}

body.calm-ui :is(.secondary, .outline, .icon-button, .speech-tabs button, .transcript-toggle) {
  border-radius: 13px;
  border-color: var(--ap-line-strong);
  background: rgba(255, 255, 255, .90);
  box-shadow: 0 1px 1px rgba(16, 24, 40, .035), 0 6px 16px -12px rgba(16, 24, 40, .20);
  transition: all var(--ap-fast) var(--ap-ease);
}

body.calm-ui :is(.secondary, .outline, .icon-button, .speech-tabs button, .transcript-toggle):hover {
  border-color: rgba(0, 91, 184, .26);
  background: linear-gradient(180deg, #ffffff, #f7fbff);
  color: #005bb8;
  transform: translateY(-1px);
  box-shadow: 0 1px 1px rgba(16, 24, 40, .04), 0 10px 24px -14px rgba(0, 91, 184, .42);
}

body.calm-ui :is(.secondary, .outline, .icon-button, .speech-tabs button, .transcript-toggle):active {
  transform: translateY(0) scale(.985);
}

body.calm-ui :is(button, a, input, select, textarea, summary):focus-visible {
  outline: none;
  box-shadow: 0 0 0 4px var(--ap-focus), 0 1px 0 rgba(255, 255, 255, .40) inset;
}

body.calm-ui :is(input, textarea, select) {
  border-radius: 13px;
  border-color: var(--ap-line-strong);
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 1px 1px rgba(16, 24, 40, .025) inset;
  transition: border-color var(--ap-fast) var(--ap-ease), box-shadow var(--ap-fast) var(--ap-ease),
    background-color var(--ap-fast) var(--ap-ease);
}

body.calm-ui :is(input, textarea, select):hover {
  border-color: rgba(0, 91, 184, .22);
  background: #fff;
}

body.calm-ui :is(input, textarea, select):focus {
  border-color: rgba(0, 113, 227, .52);
  box-shadow: 0 0 0 4px rgba(0, 113, 227, .12);
}

body.calm-ui :is(.filter, .room-tab, .cat-chip) {
  border-radius: 999px;
  transition: all var(--ap-fast) var(--ap-ease);
}

body.calm-ui :is(.filter, .room-tab, .cat-chip).active {
  background: linear-gradient(180deg, #248cff, #0062cc);
  border-color: rgba(255, 255, 255, .22);
  box-shadow: 0 8px 18px -10px rgba(0, 91, 184, .65);
}

/* -------------------------------------------------------------- Numbers --- */

body.calm-ui :is(.metric, .analytics-metrics article, .speech-metrics > div,
  .insight-stats > *, .knowledge-stats > *) {
  border-radius: 16px;
  border-color: rgba(255, 255, 255, .78);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(250, 250, 252, .92)),
    linear-gradient(180deg, #ffffff, #f6f7f9);
  box-shadow: 0 0 0 1px rgba(17, 24, 39, .05), var(--ap-shadow-card);
}

body.calm-ui :is(.metric, .analytics-metrics article, .speech-metrics > div):hover {
  transform: translateY(-2px);
}

body.calm-ui :is(.metric strong, .analytics-metrics strong, .speech-metrics strong) {
  letter-spacing: -.045em;
}

/* ------------------------------------------------------------- Content --- */

body.calm-ui :is(.calm-disclosure, .speech-monitor-controls, .speech-settings) summary {
  border-radius: 14px;
  transition: background-color var(--ap-fast) var(--ap-ease), transform var(--ap-fast) var(--ap-ease);
}

body.calm-ui :is(.calm-disclosure, .speech-monitor-controls, .speech-settings) summary:hover {
  background: rgba(17, 24, 39, .035);
  transform: translateY(-1px);
}

body.calm-ui :is(table, .data-file-table) {
  border-collapse: separate;
  border-spacing: 0;
}

body.calm-ui th {
  color: rgba(117, 117, 125, .92);
  font-size: 11px;
  letter-spacing: .05em;
  text-transform: uppercase;
}

body.calm-ui tr:hover td {
  background: rgba(0, 113, 227, .025);
}

body.calm-ui .toast {
  border-radius: 15px;
  background: rgba(29, 29, 31, .90);
  box-shadow: 0 18px 44px -20px rgba(0, 0, 0, .55), 0 0 0 1px rgba(255, 255, 255, .08) inset;
  backdrop-filter: blur(20px) saturate(170%);
  -webkit-backdrop-filter: blur(20px) saturate(170%);
}

body.calm-ui dialog {
  border-radius: 22px;
  border-color: rgba(255, 255, 255, .78);
  background: linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(247, 248, 250, .97));
  box-shadow: 0 0 0 1px rgba(17, 24, 39, .07), 0 40px 100px -36px rgba(16, 24, 40, .42);
}

/* ------------------------------------------------------------ Live UI --- */

body.calm-ui .screen-card,
body.calm-ui .screens-grid .screen-card {
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, .12);
  box-shadow: 0 14px 38px -20px rgba(4, 12, 22, .70);
  transition: box-shadow var(--ap-slow) var(--ap-ease), border-color var(--ap-slow) var(--ap-ease);
}

body.calm-ui .screen-card:hover {
  border-color: rgba(64, 160, 255, .32);
  box-shadow: 0 20px 48px -20px rgba(0, 64, 140, .58);
}

/* 直播视频不做滤镜、不缩放：任何合成层变化都可能让长时间播放出现细微抖动。 */

body.calm-ui .screen-card.playing::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .10) inset;
}

body.calm-ui .lt-room-pane {
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255, 255, 255, .96), rgba(246, 247, 249, .90));
  border: 1px solid rgba(255, 255, 255, .78);
  box-shadow: 0 0 0 1px rgba(17, 24, 39, .05), var(--ap-shadow-card);
}

body.calm-ui .live-dialog-feed {
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(248, 249, 251, .94));
  border: 1px solid rgba(17, 24, 39, .07);
  scrollbar-width: thin;
}

body.calm-ui .speech-line,
body.calm-ui .live-dialog-line {
  transition: background-color var(--ap-fast) var(--ap-ease), transform var(--ap-fast) var(--ap-ease);
}

body.calm-ui .speech-line:hover,
body.calm-ui .live-dialog-line:hover {
  background: rgba(0, 113, 227, .035);
}

/* ------------------------------------------------------------ Motion --- */

@keyframes ap-rise {
  from { opacity: 0; transform: translateY(10px) scale(.995); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

body.calm-ui .module-hidden { display: none; }

body.calm-ui .panel:not(.module-hidden),
body.calm-ui .metric-grid > * {
  animation: ap-rise var(--ap-slow) var(--ap-ease) both;
}

body.calm-ui .metric-grid > *:nth-child(2) { animation-delay: 40ms; }
body.calm-ui .metric-grid > *:nth-child(3) { animation-delay: 80ms; }
body.calm-ui .metric-grid > *:nth-child(4) { animation-delay: 120ms; }

@media (prefers-reduced-motion: reduce) {
  body.calm-ui *,
  body.calm-ui *::before,
  body.calm-ui *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* --------------------------------------------------------- Responsive --- */

@media (max-width: 900px) {
  :root { --ap-radius: 16px; --ap-radius-lg: 20px; }
  body.calm-ui .panel { border-radius: 16px; }
}

/* apple-enterprise.css */
/* ============================================================================
 * apple-enterprise.css — Live Assistant 8.0.0 production visual layer
 *
 * This is the final, deliberate pass over the workspace:
 *   1. Apple-like hierarchy: neutral canvas, calm blue accent, strong numerals;
 *   2. Enterprise consistency: one spacing/radius/shadow scale across modules;
 *   3. Accessibility: 38px minimum controls, visible focus, iOS-style switches;
 *   4. Performance: no filters or scaling on live video surfaces.
 *
 * Design references reviewed (patterns only; no source copied):
 *   Apple Human Interface Guidelines, Radix UI Primitives, shadcn/ui.
 * ========================================================================== */

:root {
  --ae-ease: cubic-bezier(.32, .72, 0, 1);
  --ae-fast: 180ms;
  --ae-slow: 360ms;
  --ae-blue: #0071e3;
  --ae-blue-press: #0060c0;
  --ae-blue-soft: #eaf3ff;
  --ae-ink: #1d1d1f;
  --ae-ink-secondary: #424245;
  --ae-muted: #6e6e73;
  --ae-muted-2: #86868b;
  --ae-line: rgba(17, 24, 39, .09);
  --ae-line-strong: rgba(17, 24, 39, .16);
  --ae-surface: rgba(255, 255, 255, .94);
  --ae-surface-raised: rgba(255, 255, 255, .98);
  --ae-canvas: #f5f5f7;
  --ae-shadow-sm: 0 1px 1px rgba(16, 24, 40, .025), 0 7px 20px -14px rgba(16, 24, 40, .20);
  --ae-shadow-md: 0 1px 1px rgba(16, 24, 40, .035), 0 16px 42px -24px rgba(16, 24, 40, .28);
  --ae-shadow-lg: 0 1px 1px rgba(16, 24, 40, .04), 0 32px 72px -34px rgba(16, 24, 40, .38);
  --ae-radius: 20px;
  --ae-radius-sm: 12px;
  --ae-radius-xs: 9px;
  --ae-rail: 236px;
}

/* ------------------------------------------------------------ Foundation */

body.calm-ui {
  --rf-rail: var(--ae-rail);
  --rf-bg: var(--ae-canvas);
  --rf-bg-soft: #eeeef2;
  --rf-surface: #fff;
  --rf-surface-2: #fafafc;
  --rf-line: var(--ae-line);
  --rf-line-strong: var(--ae-line-strong);
  --rf-ink: var(--ae-ink);
  --rf-ink-2: var(--ae-ink-secondary);
  --rf-muted: var(--ae-muted);
  --rf-muted-2: var(--ae-muted-2);
  --rf-accent: var(--ae-blue);
  --rf-accent-press: var(--ae-blue-press);
  --rf-accent-soft: var(--ae-blue-soft);
  --rf-accent-line: rgba(0, 113, 227, .20);
  color: var(--ae-ink);
  font-size: 13.5px;
  line-height: 1.58;
  background:
    radial-gradient(980px 640px at 7% -8%, rgba(64, 160, 255, .12), transparent 60%),
    radial-gradient(820px 560px at 94% 1%, rgba(94, 92, 230, .08), transparent 58%),
    linear-gradient(180deg, #fbfbfd 0%, #f5f5f7 42%, #f7f8fa 100%);
  background-attachment: fixed;
}

body.calm-ui :is(h1, h2, h3, h4) {
  color: var(--ae-ink);
  letter-spacing: -.035em;
  text-wrap: optimize-legibility;
}

body.calm-ui :is(.hero-copy, .screens-hint, .knowledge-hint, .report-head p,
  .transcript-head p, .analytics-head p, .data-panel-head p, .panel-head p,
  .speech-note, .sr-hint, .ar-hint, .data-clean-note) {
  color: var(--ae-muted);
}

body.calm-ui .eyebrow {
  color: rgba(0, 90, 181, .72);
  font-size: 10px;
  font-weight: 680;
  letter-spacing: .13em;
}

/* ---------------------------------------------------------------- Chrome */

body.calm-ui .topbar {
  width: var(--ae-rail);
  padding: 24px 14px 18px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  background: rgba(250, 250, 252, .82);
  border-right: 1px solid rgba(17, 24, 39, .08);
  box-shadow: 1px 0 0 rgba(255, 255, 255, .72) inset, 16px 0 38px -32px rgba(16, 24, 40, .28);
  backdrop-filter: blur(24px) saturate(175%);
  -webkit-backdrop-filter: blur(24px) saturate(175%);
}

body.calm-ui .brand { padding: 0 10px 22px; }
body.calm-ui .brand h1 { font-size: 19px; font-weight: 680; color: var(--ae-ink); }
body.calm-ui .brand p { font-size: 8.5px; color: var(--ae-muted-2); letter-spacing: .13em; }

body.calm-ui .brand-mark {
  border: 0;
  border-radius: 12px;
  background: linear-gradient(145deg, #7cc0ff, #0071e3);
  box-shadow: 0 10px 24px -12px rgba(0, 91, 184, .70), 0 0 0 1px rgba(255, 255, 255, .50) inset;
}
body.calm-ui .brand-mark span { background: #fff; box-shadow: none; }

body.calm-ui .module-nav { gap: 3px; }
body.calm-ui .nav-group-label {
  margin: 15px 11px 7px;
  color: rgba(134, 134, 139, .88);
  font-size: 9.5px;
  font-weight: 680;
  letter-spacing: .10em;
}
body.calm-ui .nav-group-label:first-child { margin-top: 3px; }

body.calm-ui .module-nav :is(button, a) {
  height: 40px;
  min-height: 40px;
  padding: 0 11px;
  border-radius: 12px;
  color: var(--ae-ink-secondary);
  font-size: 12.5px;
  font-weight: 520;
}

body.calm-ui .module-nav :is(button, a):hover {
  color: var(--ae-ink);
  background: rgba(17, 24, 39, .045);
}

body.calm-ui .module-nav :is(button, a).active {
  color: #005bb8;
  background: linear-gradient(135deg, rgba(0, 113, 227, .15), rgba(64, 160, 255, .09));
  box-shadow: 0 0 0 1px rgba(0, 113, 227, .12), 0 8px 20px -15px rgba(0, 91, 184, .72);
}

body.calm-ui .topbar > .connection-badge {
  border-radius: 14px;
  border-color: var(--ae-line);
  background: rgba(255, 255, 255, .88);
  color: var(--ae-muted);
}

/* ------------------------------------------------------------------ Shell */

body.calm-ui .shell {
  max-width: 1680px;
  margin-left: var(--ae-rail);
  padding: 36px clamp(22px, 2.6vw, 44px) 96px;
}

body.calm-ui :is(.panel, .hero, .transcript-panel, .analytics-panel, .video-panel,
  .data-panel, .live-screens, .knowledge, #extractPanel, .writer-panel,
  #creatorCollectPanel) {
  min-width: 0;
  border: 1px solid rgba(255, 255, 255, .78);
  border-radius: var(--ae-radius);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .99), rgba(252, 252, 254, .93)),
    linear-gradient(180deg, #ffffff, #f8f9fb);
  box-shadow: 0 0 0 1px rgba(17, 24, 39, .055), var(--ae-shadow-sm);
}

body.calm-ui :is(.hero, .transcript-panel, .analytics-panel, .video-panel,
  .data-panel, .live-screens, .knowledge, #extractPanel, .writer-panel,
  #creatorCollectPanel) {
  padding: clamp(22px, 2vw, 32px);
}

body.calm-ui :is(.hero, .transcript-head, .analytics-head, .panel-head,
  .data-panel-head, .screens-header, .knowledge-head, .report-head) h2 {
  margin: 7px 0 12px;
  color: var(--ae-ink);
  font-size: clamp(22px, 1.6vw, 27px);
  font-weight: 680;
  line-height: 1.25;
}

body.calm-ui :is(h1, h2, h3, h4) em {
  color: var(--ae-muted);
  font-style: normal;
}

/* --------------------------------------------------------------- Controls */

body.calm-ui button:not(.module-nav button):not(.filter):not(.room-tab):not(.kind-tab):not(.analysis-tabs button):not(.leader-tabs button):not(.icon-button):not(.vm-top-video) {
  min-height: 38px;
  border-radius: var(--ae-radius-sm);
  border-color: var(--ae-line-strong);
  background: linear-gradient(180deg, #ffffff, #f8f9fb);
  color: var(--ae-ink);
  font-size: 12.5px;
  font-weight: 560;
  box-shadow: 0 1px 1px rgba(16, 24, 40, .035), 0 6px 16px -13px rgba(16, 24, 40, .26);
  transition: color var(--ae-fast) var(--ae-ease), background-color var(--ae-fast) var(--ae-ease),
    border-color var(--ae-fast) var(--ae-ease), transform var(--ae-fast) var(--ae-ease),
    box-shadow var(--ae-slow) var(--ae-ease);
}

body.calm-ui button:not(.module-nav button):not(.filter):not(.room-tab):not(.kind-tab):not(.analysis-tabs button):not(.leader-tabs button):not(.icon-button):not(.vm-top-video):hover:not(:disabled) {
  border-color: rgba(0, 91, 184, .24);
  color: #005bb8;
  background: linear-gradient(180deg, #ffffff, #f7fbff);
  transform: translateY(-1px);
  box-shadow: 0 1px 1px rgba(16, 24, 40, .04), 0 12px 26px -18px rgba(0, 91, 184, .50);
}

body.calm-ui button:not(.module-nav button):not(.filter):not(.room-tab):not(.kind-tab):not(.analysis-tabs button):not(.leader-tabs button):not(.icon-button):not(.vm-top-video):active:not(:disabled) {
  transform: translateY(0) scale(.985);
}

body.calm-ui :is(button.primary, button.solid, button.leader-primary,
  .collection-main-actions button) {
  border-color: rgba(255, 255, 255, .20);
  background: linear-gradient(180deg, #2f95ff, #0068da 60%, #005bb8);
  color: #fff;
  box-shadow: 0 1px 0 rgba(255, 255, 255, .28) inset, 0 10px 24px -12px rgba(0, 91, 184, .62);
}

body.calm-ui :is(button.primary, button.solid, button.leader-primary,
  .collection-main-actions button):hover:not(:disabled) {
  color: #fff;
  background: linear-gradient(180deg, #3b9dff, #006de3 60%, #0060c0);
}

body.calm-ui :is(input:not([type=checkbox]):not([type=radio]):not([type=range]), select, textarea) {
  min-height: 38px;
  border-radius: var(--ae-radius-sm);
  border-color: var(--ae-line-strong);
  background: rgba(255, 255, 255, .96);
  color: var(--ae-ink);
  font-size: 12.5px;
  box-shadow: 0 1px 1px rgba(16, 24, 40, .025) inset;
  transition: border-color var(--ae-fast) var(--ae-ease), box-shadow var(--ae-fast) var(--ae-ease),
    background-color var(--ae-fast) var(--ae-ease);
}

body.calm-ui textarea { line-height: 1.65; }

body.calm-ui :is(input:not([type=checkbox]):not([type=radio]):not([type=range]), select, textarea):focus {
  border-color: rgba(0, 113, 227, .55);
  box-shadow: 0 0 0 4px rgba(0, 113, 227, .12);
}

body.calm-ui :is(button, a, input, select, textarea, summary):focus-visible {
  outline: none;
  box-shadow: 0 0 0 4px rgba(0, 113, 227, .25), 0 1px 0 rgba(255, 255, 255, .45) inset;
}

/* iOS-style switches: the small native checkbox is now a 38 × 23 target. */
body.calm-ui input[type=checkbox] {
  appearance: none;
  -webkit-appearance: none;
  position: relative;
  width: 38px;
  height: 23px;
  min-height: 23px;
  margin: 0;
  border: 0;
  border-radius: 999px;
  background: #d8d8de;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .14) inset;
  cursor: pointer;
  transition: background-color var(--ae-fast) var(--ae-ease), box-shadow var(--ae-fast) var(--ae-ease);
}

body.calm-ui input[type=checkbox]::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 19px;
  height: 19px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(16, 24, 40, .24);
  transition: transform var(--ae-fast) var(--ae-ease);
}

body.calm-ui input[type=checkbox]:checked {
  background: linear-gradient(180deg, #2f95ff, #0068da);
  box-shadow: 0 1px 2px rgba(0, 64, 140, .22) inset;
}

body.calm-ui input[type=checkbox]:checked::after { transform: translateX(15px); }
body.calm-ui input[type=checkbox]:disabled { opacity: .42; cursor: not-allowed; }

/* Segmented controls and filters */

body.calm-ui :is(.filters, .speech-tabs, .analysis-tabs, .leader-tabs) {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 4px;
  border: 1px solid rgba(17, 24, 39, .06);
  border-radius: 15px;
  background: rgba(238, 238, 242, .88);
  box-shadow: 0 1px 1px rgba(255, 255, 255, .82) inset;
  overflow-x: auto;
  scrollbar-width: none;
}

body.calm-ui :is(.filters, .speech-tabs, .analysis-tabs, .leader-tabs)::-webkit-scrollbar { display: none; }

body.calm-ui :is(.filter, .speech-tabs button, .analysis-tabs button, .leader-tabs button, .kind-tab) {
  height: 34px;
  min-height: 34px;
  padding: 0 13px;
  border: 0;
  border-radius: 11px;
  background: transparent;
  color: var(--ae-muted);
  font-size: 12px;
  font-weight: 560;
  box-shadow: none;
  transition: color var(--ae-fast) var(--ae-ease), background-color var(--ae-fast) var(--ae-ease),
    box-shadow var(--ae-fast) var(--ae-ease);
}

body.calm-ui :is(.filter, .speech-tabs button, .analysis-tabs button, .leader-tabs button, .kind-tab):hover {
  color: var(--ae-ink);
  background: rgba(255, 255, 255, .70);
  transform: none;
  box-shadow: none;
}

body.calm-ui :is(.filter, .speech-tabs button, .analysis-tabs button, .leader-tabs button, .kind-tab).active {
  color: var(--ae-ink);
  background: #fff;
  box-shadow: 0 1px 1px rgba(16, 24, 40, .035), 0 5px 14px -10px rgba(16, 24, 40, .34);
}

/* ------------------------------------------------------------ Data cards */

body.calm-ui :is(.metric-grid, .analytics-metrics, .speech-metrics,
  .data-manager-metrics, .vm-overview-metrics) { gap: 14px; }

body.calm-ui :is(.metric, .analytics-metrics > article, .speech-metrics > article,
  .data-manager-metrics > article, .vm-overview-metrics > article) {
  min-width: 0;
  padding: 19px 21px;
  border: 1px solid rgba(255, 255, 255, .82);
  border-radius: 17px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .99), rgba(250, 250, 252, .94)),
    linear-gradient(180deg, #ffffff, #f7f8fa);
  box-shadow: 0 0 0 1px rgba(17, 24, 39, .05), var(--ae-shadow-sm);
}

body.calm-ui :is(.metric span, .analytics-metrics span, .speech-metrics span,
  .data-manager-metrics span, .vm-overview-metrics span) {
  color: var(--ae-muted);
  font-size: 11.5px;
  font-weight: 560;
}

body.calm-ui :is(.metric strong, .analytics-metrics strong, .speech-metrics strong,
  .data-manager-metrics strong, .vm-overview-metrics strong) {
  color: var(--ae-ink);
  font-size: clamp(24px, 1.65vw, 30px);
  font-weight: 660;
  letter-spacing: -.045em;
  font-variant-numeric: tabular-nums;
}

body.calm-ui :is(.metric small, .analytics-metrics small, .speech-metrics small) {
  color: var(--ae-muted-2);
}

/* ------------------------------------------------------------ Monitoring */

body.calm-ui .console-head {
  border-bottom: 1px solid var(--ae-line);
}

body.calm-ui .filters {
  margin: 16px 0 0;
  padding: 4px;
}

body.calm-ui .search {
  height: 38px;
  border-radius: 12px;
  border-color: var(--ae-line-strong);
  background: rgba(255, 255, 255, .94);
}

body.calm-ui .table-head {
  position: sticky;
  top: 0;
  z-index: 2;
  color: var(--ae-muted);
  background: rgba(250, 250, 252, .96);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
}

body.calm-ui .event-row {
  border-bottom-color: rgba(17, 24, 39, .055);
  transition: background-color var(--ae-fast) var(--ae-ease);
}

body.calm-ui .event-row:hover { background: rgba(0, 113, 227, .035); }

/* Fixed a real overflow: old minimum grid columns forced status text outside cards. */
body.calm-ui .live-state-card {
  display: grid;
  grid-template-columns: 9px minmax(0, 1fr) minmax(0, 1.15fr);
  align-items: center;
  gap: 12px;
  min-width: 0;
  overflow: hidden;
  border-radius: 15px;
}

body.calm-ui .live-state-card > * { min-width: 0; }
body.calm-ui .live-state-card small {
  max-width: none;
  overflow: hidden;
  color: var(--ae-muted);
  line-height: 1.45;
  text-overflow: ellipsis;
}

/* ------------------------------------------------- Transcript & live video */

body.calm-ui .lt-room-pane {
  border-radius: 20px;
  border-color: rgba(255, 255, 255, .82);
  background: linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(246, 247, 249, .93));
  box-shadow: 0 0 0 1px rgba(17, 24, 39, .055), var(--ae-shadow-sm);
}

body.calm-ui .screen-card {
  border-radius: 19px;
  border-color: rgba(255, 255, 255, .14);
  box-shadow: 0 18px 44px -25px rgba(4, 12, 22, .78);
}

/* Deliberately no transform/filter/animation on live video elements. */
body.calm-ui :is(.screen-card video, #ltRoomVideo video) {
  background: #000;
}

body.calm-ui :is(.speech-line, .live-dialog-line) {
  border-radius: 10px;
  transition: background-color var(--ae-fast) var(--ae-ease);
}

body.calm-ui :is(.speech-line, .live-dialog-line):hover {
  background: rgba(0, 113, 227, .035);
}

/* ------------------------------------------------------------- Disclosures */

body.calm-ui :is(.calm-disclosure, .panel-collapse) {
  border-radius: 16px;
  border-color: var(--ae-line);
  background: rgba(255, 255, 255, .82);
}

body.calm-ui :is(.calm-disclosure, .panel-collapse) > summary {
  min-height: 42px;
  border-radius: 13px;
  color: var(--ae-ink-secondary);
  font-weight: 580;
  transition: background-color var(--ae-fast) var(--ae-ease), color var(--ae-fast) var(--ae-ease);
}

body.calm-ui :is(.calm-disclosure, .panel-collapse) > summary:hover {
  color: #005bb8;
  background: rgba(0, 113, 227, .05);
}

/* --------------------------------------------------------------- Surfaces */

body.calm-ui :is(.speech-block, .auto-transcript-card, .live-transcript-card,
  .transcript-history-card, .product-speech-card, .archive-card,
  .insight-card, .overview-card, .trend-card) {
  border: 1px solid rgba(255, 255, 255, .82);
  border-radius: 17px;
  background: linear-gradient(180deg, rgba(255, 255, 255, .99), rgba(250, 250, 252, .94));
  box-shadow: 0 0 0 1px rgba(17, 24, 39, .05), var(--ae-shadow-sm);
}

body.calm-ui dialog {
  border-radius: 24px;
  border-color: rgba(255, 255, 255, .82);
  background: linear-gradient(180deg, rgba(255, 255, 255, .99), rgba(247, 248, 250, .98));
  box-shadow: 0 0 0 1px rgba(17, 24, 39, .07), var(--ae-shadow-lg);
}

body.calm-ui .toast {
  border-radius: 16px;
  background: rgba(29, 29, 31, .92);
  box-shadow: 0 20px 48px -22px rgba(0, 0, 0, .62), 0 0 0 1px rgba(255, 255, 255, .08) inset;
  backdrop-filter: blur(20px) saturate(175%);
  -webkit-backdrop-filter: blur(20px) saturate(175%);
}

body.calm-ui ::-webkit-scrollbar { width: 10px; height: 10px; }
body.calm-ui ::-webkit-scrollbar-track { background: transparent; }
body.calm-ui ::-webkit-scrollbar-thumb {
  border: 3px solid transparent;
  border-radius: 999px;
  background: rgba(17, 24, 39, .20);
  background-clip: content-box;
}
body.calm-ui ::-webkit-scrollbar-thumb:hover { background: rgba(17, 24, 39, .32); background-clip: content-box; }

/* ------------------------------------------------------------------ Motion */

@keyframes ae-fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Use opacity for panels: transform on a panel containing MSE video can create a
   new compositing layer and induce subtle jitter during long playback. */
body.calm-ui .panel:not(.module-hidden) {
  animation: ae-fade-in var(--ae-slow) var(--ae-ease) both;
}

body.calm-ui .metric-grid > * {
  animation: ae-fade-in var(--ae-slow) var(--ae-ease) both;
}

@media (prefers-reduced-motion: reduce) {
  body.calm-ui *,
  body.calm-ui *::before,
  body.calm-ui *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ------------------------------------------------------------- Responsive */

@media (max-width: 1050px) {
  /* Restore the workspace's mobile navigation; this file is loaded after
     calm-workspace.css, so it must explicitly restate the mobile layout. */
  :root { --ae-rail: 0px; }
  body.calm-ui .shell {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0 20px 34px;
    box-sizing: border-box;
  }
  body.calm-ui .topbar {
    position: relative;
    inset: auto;
    width: auto;
    height: auto;
    min-height: 0;
    margin: 0 -20px 22px;
    padding: 16px 20px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    overflow: visible;
    border-right: 0;
    border-bottom: 1px solid var(--ae-line);
    background: rgba(250, 250, 252, .92);
    box-shadow: 0 18px 40px -32px rgba(16, 24, 40, .34);
  }
  body.calm-ui .brand { padding: 0; }
  body.calm-ui .topbar > .connection-badge {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
    justify-self: end;
    max-width: 138px;
    margin: 0;
  }
  body.calm-ui .mobile-workspace-nav {
    grid-column: 1 / -1;
    grid-row: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 42px;
    padding: 7px 11px;
    border: 1px solid var(--ae-line);
    border-radius: 13px;
    background: rgba(255, 255, 255, .82);
    color: var(--ae-muted);
  }
  body.calm-ui .module-nav {
    display: none;
    position: static;
    grid-column: 1 / -1;
    grid-row: 3;
    width: 100%;
    max-height: 60dvh;
    overflow-y: auto;
    gap: 6px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding-top: 8px;
    border-top: 1px solid var(--ae-line);
  }
  body.calm-ui.mobile-menu-open .module-nav { display: grid; }
  body.calm-ui .module-nav :is(button, a) {
    width: 100%;
    height: 42px;
    min-height: 42px;
    overflow: hidden;
  }
  body.calm-ui :is(.hero, .transcript-panel, .analytics-panel, .video-panel,
    .data-panel, .live-screens, .knowledge, #extractPanel, .writer-panel,
    #creatorCollectPanel) { padding: 22px; }
}

@media (max-width: 650px) {
  :root { --ae-radius: 17px; --ae-radius-sm: 11px; }
  body.calm-ui .shell { padding: 0 12px 26px; }
  body.calm-ui .topbar {
    margin: 0 -12px 16px;
    padding: 13px 12px;
    gap: 10px;
  }
  body.calm-ui :is(.hero, .transcript-panel, .analytics-panel, .video-panel,
    .data-panel, .live-screens, .knowledge, #extractPanel, .writer-panel,
    #creatorCollectPanel) { padding: 18px 14px; }
  body.calm-ui :is(.hero, .transcript-head, .analytics-head, .panel-head,
    .data-panel-head, .screens-header, .knowledge-head, .report-head) h2 {
    font-size: 22px;
    letter-spacing: -.025em;
  }
  body.calm-ui :is(.metric-grid, .analytics-metrics, .speech-metrics,
    .data-manager-metrics, .vm-overview-metrics) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  body.calm-ui :is(.metric, .analytics-metrics > article, .speech-metrics > article,
    .data-manager-metrics > article, .vm-overview-metrics > article) { padding: 15px; }
  body.calm-ui button:not(.module-nav button):not(.filter):not(.room-tab):not(.kind-tab):not(.analysis-tabs button):not(.leader-tabs button):not(.icon-button):not(.vm-top-video) {
    min-height: 42px;
  }
}

@media print {
  body.calm-ui .topbar,
  body.calm-ui .toast,
  body.calm-ui button { display: none !important; }
  body.calm-ui .shell { margin: 0; padding: 0; }
  body.calm-ui .panel { break-inside: avoid; box-shadow: none; }
}

/* Enterprise accessibility pass: preserve the light Apple palette while
   keeping secondary labels above WCAG AA contrast. */
body.calm-ui .console-head h3 span,
body.calm-ui .event-time,
body.calm-ui .event-room,
body.calm-ui .room-tab,
body.calm-ui .room-tab span,
body.calm-ui .room-tab .room-delete { color: #4f5b68; }

body.calm-ui .room-tab { border-color: #d4dde8; background: #ffffff; }
body.calm-ui .room-tab.active {
  color: #005bb8;
  border-color: rgba(0, 91, 184, .22);
  background: rgba(0, 113, 227, .08);
}
body.calm-ui .room-tab .room-delete { font-weight: 560; }

/* Mobile module switch: keep the compact Apple look, but make the label
   comfortably readable and WCAG AA compliant. */
@media (max-width: 1050px) {
  body.calm-ui #mobileModuleToggle {
    min-height: 38px;
    padding: 7px 11px;
    border: 1px solid #d4dde8;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 560;
    color: #46586b;
  }
}
