/* 「我的监控」会员工作区：只作用于 body.member-workspace，不改动任何共享样式。
   数据模块（24h 趋势 / 双榜单 / 同行变化 / 快照）完全复用类目数据页的样式，
   这里只负责第一栏的会员登录界面、权益说明与指定/备用直播间展示。 */

body.member-workspace .member-hero {
  padding: 28px 0 8px;
}

/* ---------- 未登录：登录卡整块居中 ---------- */
/* 首屏只有登录卡一张内容，不再保留右侧空列，让卡片跨满整行后居中。 */
body.member-workspace .member-hero-auth {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  justify-items: center;
  grid-column: 1 / -1;
  padding: 4px 0 24px;
}
body.member-workspace .member-hero-auth[hidden] {
  display: none !important;
}
body.member-workspace .member-hero-auth .member-auth-box {
  width: 100%;
  max-width: 420px;
}
/* 未登录首屏只剩一张登录卡：把这一块撑到视口高度并垂直居中，页面不会显得空在半空。 */
body.member-workspace .member-hero:has(.member-hero-auth:not([hidden])) {
  min-height: calc(100vh - 150px);
  align-content: center;
}
body.member-workspace .member-auth-box {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 22px 24px 18px;
  transition: border-color .25s ease, background .25s ease;
}
/* 未登录用户点了「开通套餐」：把登录卡短暂点亮，让跳转落点看得见（颜色走主题变量，深浅色都可读）。 */
body.member-workspace .member-auth-box.is-reminder {
  border-color: var(--warn);
  background: var(--warn-bg);
}
body.member-workspace .member-auth-box h2 {
  font-size: 19px;
  margin-bottom: 6px;
}
body.member-workspace .member-auth-box form {
  display: grid;
  gap: 12px;
  margin-top: 16px;
}
body.member-workspace .member-auth-box input[type="text"],
body.member-workspace .member-auth-box input[type="password"] {
  width: 100%;
  border: 1px solid var(--line);
  background: var(--bg);
  border-radius: 8px;
  min-height: 42px;
  padding: 9px 12px;
  font-size: 14px;
  color: var(--text);
}
body.member-workspace .member-auth-box input:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
  border-color: var(--accent);
}
body.member-workspace .member-consent {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 12px;
  color: var(--muted);
}
body.member-workspace .member-consent input {
  margin-top: 3px;
}
body.member-workspace .member-auth-actions {
  display: flex;
  gap: 10px;
  margin-top: 4px;
}
body.member-workspace .member-auth-actions button {
  flex: 1;
}
body.member-workspace .member-auth-box > .caption {
  margin-top: 14px;
}
body.member-workspace .member-auth-box .inline-link {
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
}

/* ---------- 已登录：权益说明 + 监控配置 ---------- */
body.member-workspace .member-hero-panel {
  display: grid;
  gap: 20px;
}
body.member-workspace .member-panel-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}
body.member-workspace .member-panel-head h1 {
  font-size: 28px;
  letter-spacing: -0.03em;
}
body.member-workspace .member-panel-actions {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}

/* 权益说明 */
body.member-workspace .member-benefits {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 20px 24px;
}
body.member-workspace .member-benefits h2 {
  font-size: 17px;
  margin-bottom: 12px;
}
body.member-workspace .member-benefits ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 8px 20px;
}
body.member-workspace .member-benefits li {
  position: relative;
  padding-left: 20px;
  font-size: 13px;
  color: var(--text);
}
body.member-workspace .member-benefits li::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 9px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent);
}
body.member-workspace .member-benefits > .caption {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}
body.member-workspace .member-password-field {
  position: relative;
}
body.member-workspace .member-password-field input {
  padding-right: 46px;
}
body.member-workspace .member-password-toggle {
  position: absolute;
  top: 50%;
  right: 7px;
  width: 34px;
  height: 34px;
  min-height: 34px;
  margin: 0;
  padding: 7px;
  transform: translateY(-50%);
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: var(--muted);
}
body.member-workspace .member-password-toggle:hover,
body.member-workspace .member-password-toggle[aria-pressed="true"] {
  background: var(--tint);
  color: var(--accent);
}
body.member-workspace .member-password-toggle svg {
  display: block;
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
body.member-workspace .member-password-toggle:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

/* 我的类目卡：在同一张卡里管理该类目的指定直播间。 */
body.member-workspace .member-category-rooms{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
body.member-workspace .member-category-rooms>span{font-size:12px;font-weight:650;color:var(--muted)}
body.member-workspace .member-category-room-list{display:flex;gap:8px;flex:1 1 220px;flex-wrap:wrap}
body.member-workspace .member-category-room-list a{padding:6px 9px;border:1px solid var(--line);border-radius:999px;background:var(--tint);font-size:12px}
body.member-workspace .member-category-rooms button{margin:0 0 0 auto;min-height:34px;padding:6px 11px;font-size:12px}
body.member-workspace .member-category-rooms.is-empty{align-items:flex-start}
body.member-workspace .member-category-rooms.is-empty p{flex:1 1 280px;margin:0;font-size:12px;line-height:1.7}
@media(max-width:600px){body.member-workspace .member-category-rooms{align-items:flex-start;flex-direction:column}body.member-workspace .member-category-rooms button{margin-left:0}.member-category-room-list{width:100%}}

/* 权益页类目设置复用卖家运营的一级/二级类目树，不再把全部类目纵向平铺。 */
body.member-workspace .seller-category-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin:14px 0}
body.member-workspace .seller-category-slot{min-width:0;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--tint)}
body.member-workspace .seller-category-slot-label{display:block;margin:4px 0 8px;font-size:13px;font-weight:650;color:var(--text)}
body.member-workspace .seller-category-slot .cat-tree{width:100%}
body.member-workspace .seller-category-slot .cat-tree-trigger{width:100%;max-width:none;background:var(--surface)}
body.member-workspace .seller-category-slot .cat-tree-panel{width:100%;max-width:min(520px,86vw)}
body.member-workspace .member-category-title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
body.member-workspace .member-category-title-row strong{min-width:0}
body.member-workspace .member-category-title-row .seller-category-change{min-height:30px;margin:0;padding:4px 10px;border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-size:12px}
body.member-workspace .member-category-title-row .seller-category-change:hover{background:var(--accent);color:var(--on-accent)}

/* 监控配置：类目 + 指定 + 备用 */
body.member-workspace .member-monitor-config {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
}
body.member-workspace .member-config-block {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 18px 20px;
  min-width: 0;
}
body.member-workspace .member-config-block h3 {
  font-size: 13px;
  color: var(--muted);
  font-weight: 600;
  margin-bottom: 12px;
  letter-spacing: 0.02em;
}
body.member-workspace .member-category-line {
  font-size: 17px;
  font-weight: 650;
  color: var(--accent);
  overflow-wrap: anywhere;
}
body.member-workspace .member-category-line small {
  display: block;
  font-size: 12px;
  font-weight: 400;
  color: var(--muted);
  margin-top: 6px;
}
body.member-workspace .member-category-line.is-empty {
  font-size: 14px;
  font-weight: 400;
  color: var(--muted);
}
body.member-workspace .member-room-list-ol {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
  counter-reset: room;
}
body.member-workspace .member-room-list-ol li {
  counter-increment: room;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  min-width: 0;
}
body.member-workspace .member-room-list-ol li::before {
  content: counter(room);
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 6px;
  background: var(--accent-soft);
  color: var(--accent);
  font-size: 11px;
  font-weight: 700;
}
body.member-workspace .member-room-list-ol li.is-empty::before {
  background: var(--tint);
  color: var(--muted);
}
body.member-workspace .member-room-list-ol li.is-empty,
body.member-workspace .member-room-list-ol li.is-empty a {
  color: var(--muted);
}
body.member-workspace .member-room-list-ol a {
  color: var(--accent);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
body.member-workspace .member-room-list-ol .member-room-none {
  color: var(--muted);
  overflow-wrap: anywhere;
}

body.member-workspace .member-status:not(:empty) {
  margin-top: 12px;
}

/* ---------- 响应式 ---------- */
@media (max-width: 900px) {
  body.member-workspace .member-hero-auth {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  body.member-workspace .member-panel-head {
    align-items: flex-start;
  }
}
@media (max-width: 560px) {
  body.member-workspace .member-panel-actions {
    width: 100%;
  }
  body.member-workspace .member-panel-actions > * {
    flex: 1 1 auto;
    justify-content: center;
  }
}

/* 标准版双类目切换导航（我的类目1 / 我的类目2） */
body.member-workspace .member-category-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
body.member-workspace .member-category-tab{display:flex;flex-direction:column;gap:2px;align-items:flex-start;padding:8px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);cursor:pointer;font:inherit;text-align:left;line-height:1.3}
body.member-workspace .member-category-tab .member-category-tab-index{font-size:12px;color:var(--muted)}
body.member-workspace .member-category-tab strong{font-weight:500;font-size:14px;color:var(--text)}
body.member-workspace .member-category-tab:hover{border-color:var(--accent)}
body.member-workspace .member-category-tab.is-active{border-color:var(--accent);background:var(--accent-soft)}
body.member-workspace .member-category-tab.is-active .member-category-tab-index{color:var(--accent)}
body.member-workspace .member-category-tab.is-active strong{color:var(--accent)}

/* ---------- 指定/备用直播间的添加入口（2026-09-28 新增）---------- */
body.member-workspace .member-config-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
body.member-workspace .member-config-head h3{margin-bottom:12px}
body.member-workspace .member-config-head .tag{flex:0 0 auto;margin-bottom:12px}
body.member-workspace .member-room-add{width:100%;margin-top:12px;font-size:12px}
body.member-workspace .member-room-list-ol a{flex:1 1 auto;min-width:0}
body.member-workspace .member-room-remove{flex:0 0 auto;margin-left:auto;font-size:11px;padding:2px 9px;line-height:1.7}
body.member-workspace .member-room-list-ol li>span.muted{flex:0 0 auto;margin-left:auto;font-size:12px}

/* ---------- 系统推荐房：照官网类目卡片排版（卖家 / 封面+在播人数 / 标题，2026-10-10 新增） ----------
   ★ 这里一律用 #system-rooms 起头，**不能**套 body.member-workspace！
   本区块实际挂在「卖家运营页 /data」上，那页的 body 是 `data-workspace ops-workspace`，
   没有 member-workspace 类 ⇒ 带 body.member-workspace 前缀的规则一条都不会生效，
   表现就是「卡片退化成普通列表：一行一个、LIVE 也没有红底」，2026-10-10 线上真实踩过。
   用 id 起头同时也天然压过本文件里 .member-room-list-ol 那批基础规则（权重更高）。 */
#system-rooms .member-config-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.data-workspace #system-rooms{margin-bottom:48px;padding-top:30px;padding-bottom:32px}
.data-workspace #system-rooms .member-config-head{margin-bottom:10px}
.data-workspace #system-rooms .member-config-head h2{font-size:24px;line-height:1.4;font-weight:700}
.data-workspace #system-rooms #system-rooms-note{margin-bottom:12px}
/* 固定「1 行 × 4 个」并排。第 5 个起（后备池）先躺在 DOM 里不显示，
   某张封面加载失败时由 JS 撤掉坏的那格、把后备顶上来，保持前排 4 个。 */
#system-rooms-list{
  list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;counter-reset:room}
#system-rooms-list li{min-width:0}
#system-rooms-list li::before{display:none}
#system-rooms-list li.live-room-card{
  display:grid;grid-template-rows:auto auto auto;align-items:stretch;
  gap:6px;counter-increment:none;font-size:13px;margin:0}
#system-rooms-list li.live-room-card.is-buffer{display:none}
#system-rooms-list li.is-empty{grid-column:1/-1;counter-increment:none}
#system-rooms-list .member-room-none{color:var(--muted)}
#system-rooms-list li.official-category-entry{
  grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:18px;
  min-height:92px;padding:18px 20px;border:1px solid var(--line);border-radius:12px;
  background:linear-gradient(105deg,var(--tint),transparent);counter-increment:none}
#system-rooms-list .official-category-entry>div{display:grid;gap:5px;min-width:0}
#system-rooms-list .official-category-entry strong{color:var(--text);font-size:14px}
#system-rooms-list .official-category-entry span{color:var(--muted);font-size:12px;line-height:1.6}
#system-rooms-list .official-category-entry>a{
  flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;padding:8px 11px;
  border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:8px;
  color:var(--accent);font-size:12px;font-weight:700;text-decoration:none;background:var(--surface)}
#system-rooms-list .official-category-entry>a:hover{border-color:var(--accent)}
#system-rooms-list .official-category-entry>a span{color:inherit;font-size:14px;line-height:1}
#system-rooms-list .live-room-seller{
  color:var(--text);font-weight:500;font-size:13px;text-decoration:none;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#system-rooms-list .live-room-seller:hover{color:var(--accent)}
/* 比例必须跟官网封面原图一致：实测 8 张全是 640×988（0.648）。
   写成 9/16 会把每张封面上下裁掉约 13%。 */
#system-rooms-list .live-room-cover{
  position:relative;display:block;aspect-ratio:640/988;
  border-radius:10px;overflow:hidden;background:var(--tint);border:1px solid var(--line)}
#system-rooms-list .live-room-image{width:100%;height:100%;display:block;object-fit:cover}
#system-rooms-list .live-room-badge{
  position:absolute;left:8px;top:8px;z-index:1;
  padding:1px 6px;border-radius:4px;background:#e0242c;color:#fff;
  font-size:12px;font-weight:500;line-height:1.6;font-variant-numeric:tabular-nums}
#system-rooms-list .live-room-title{
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;color:var(--text);font-size:13px;line-height:1.5;
  white-space:normal;text-overflow:clip;text-decoration:none}
#system-rooms-list .live-room-title.is-empty{color:var(--muted)}
/* 窄屏也**不折行**：仍然一行 4 个，改成横向滑动。 */
@media (max-width:700px){
  .data-workspace #system-rooms{margin-bottom:36px;padding-top:24px;padding-bottom:26px}
  .data-workspace #system-rooms .member-config-head h2{font-size:21px}
  #system-rooms-list{
    grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:46%;
    overflow-x:auto;padding-bottom:6px}
  #system-rooms-list li.official-category-entry{
    grid-column:auto;grid-row:1;width:calc(100vw - 64px);max-width:100%;
    align-items:flex-start;flex-direction:column}
}

/* ---------- 卖家运营页 · 统一直播复盘 ---------- */
.anchor-alias{position:relative;top:-88px;display:block;width:0;height:0;overflow:hidden}
.recap-heading,.recap-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.recap-heading h2{color:var(--accent);margin-bottom:6px}
/* 直播复盘标题直接复用「竞拍人数榜单排名（Most Bidders）」那一套：同字号、同字重、同字间距、同青蓝色，
   不再用「把 64px 缩到 48px」的折中写法。 */
body.data-workspace #category-radar-title{font-family:inherit;font-size:clamp(46px,5.2vw,64px);font-weight:850;line-height:1.02;letter-spacing:-.055em;color:var(--accent);white-space:nowrap}
body.data-workspace #recap-title{font-family:inherit;font-size:clamp(32px,3.2vw,42px);font-weight:800;line-height:1.08;letter-spacing:-.04em;color:var(--accent)}
@media(max-width:700px){body.data-workspace #category-radar-title{font-size:clamp(28px,8.5vw,36px)}body.data-workspace #recap-title{font-size:clamp(28px,8.5vw,36px)}}
.recap-subtitle{margin:0;font-size:14px;line-height:1.65;color:var(--muted)}
.recap-panel .recap-filters{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,1fr) auto;gap:14px;align-items:end;margin:20px 0 10px}
.recap-panel .recap-filters .recap-filter{display:grid;gap:7px;font-size:12px;color:var(--muted);min-width:0}
.recap-filter-head{display:flex;align-items:center;gap:8px;min-width:0}
.recap-panel .recap-filters label{font-size:12px;color:var(--muted);min-width:0;white-space:nowrap}
/* 卖家标签右侧的类目小标签：小边框、不抢视觉，随当前类目变化。 */
.recap-category-chip{flex:0 0 auto;padding:1px 8px;border:1px solid var(--line);border-radius:999px;font-size:11px;line-height:1.6;color:var(--accent);background:var(--accent-soft);white-space:nowrap;max-width:12em;overflow:hidden;text-overflow:ellipsis}
.recap-panel .recap-filters select{width:100%;max-width:none;min-height:42px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);padding:8px 10px;font:inherit}
.recap-panel .recap-refresh{min-height:42px;align-self:end;padding:8px 20px;white-space:nowrap}
/* 监控摘要卡：两列指标 + 细线 + 一行口径说明与折叠入口；详情在原卡片内展开。 */
.recap-session{margin-top:14px;border:1px solid var(--line);border-radius:10px;background:var(--tint);font-size:12px;overflow:hidden}
.recap-overview-metrics{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 24px;padding:16px 18px 14px}
.recap-overview-metrics dt{font-size:12px;color:var(--muted);margin-bottom:6px}
.recap-overview-metrics dd{margin:0;font-size:18px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.recap-overview-foot{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:11px 18px;border-top:1px solid var(--line)}
.recap-overview-note{flex:1 1 auto;min-width:0;margin:0;font-size:12px;line-height:1.6;color:var(--muted)}
.recap-overview-chip{flex:0 0 auto;padding:1px 8px;border:1px solid var(--line);border-radius:999px;font-size:11px;line-height:1.6;color:var(--muted);white-space:nowrap}
.recap-details-toggle{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;margin-left:auto;padding:4px 2px;border:0;background:none;color:var(--accent);font:inherit;font-size:12px;font-weight:600;cursor:pointer}
.recap-details-toggle:hover{color:var(--accent-hover)}
.recap-details-toggle .chev{width:11px;height:8px;transition:transform .16s ease}
.recap-details-toggle[aria-expanded="true"] .chev{transform:rotate(180deg)}
.recap-monitor-details{display:grid;gap:7px;padding:13px 18px 15px;border-top:1px solid var(--line)}
.recap-monitor-details[hidden]{display:none}
.recap-monitor-details dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 14px;margin:0;font-size:12px;line-height:1.7}
.recap-monitor-details dt{color:var(--muted);white-space:nowrap}
.recap-monitor-details dd{margin:0;color:var(--text);overflow-wrap:anywhere}
.recap-details-note{margin:2px 0 0;font-size:11px;line-height:1.7;color:var(--muted)}
.recap-overview-empty{margin:0;padding:14px 18px;font-size:12px;color:var(--muted)}
.recap-gate{display:grid;justify-items:center;gap:12px;padding:56px 24px;margin:20px 0 8px;border:1px dashed var(--line);border-radius:12px;background:var(--tint);text-align:center}
.recap-gate strong{font-size:18px;color:var(--text)}
.recap-gate p{max-width:52ch;font-size:12px;line-height:1.85;color:var(--muted)}
.recap-gate-actions{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:center;margin-top:4px}
.recap-session strong{color:var(--text);font-size:14px}
.recap-panel .recap-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0 28px}
.recap-panel .recap-summary dl{padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.recap-panel .recap-summary dd{font-size:21px;color:var(--text);overflow-wrap:anywhere}
.recap-chart-section{padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.recap-section-head h3{font-size:16px;margin:0 0 5px}
.recap-chart{display:flex;align-items:stretch;gap:6px;min-height:190px;margin-top:18px;padding:8px 2px 0;overflow-x:auto}
.recap-bar{display:grid;grid-template-rows:18px 100px auto auto;gap:5px;align-items:end;min-width:64px;padding:0 5px 6px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer}
.recap-bar:hover,.recap-bar.is-active{border-color:var(--accent);background:var(--accent-soft)}
.recap-bar:disabled{cursor:default}.recap-bar-value{text-align:center;font-size:11px;color:var(--text)}
.recap-bar-fill{display:block;height:var(--bar-height);min-height:3px;border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,var(--accent),color-mix(in srgb,var(--accent) 55%,transparent))}
.recap-bar.is-partial .recap-bar-fill{background:repeating-linear-gradient(135deg,var(--accent),var(--accent) 5px,transparent 5px,transparent 9px);outline:1px solid var(--accent)}
.recap-bar.is-missing{opacity:.72;background:repeating-linear-gradient(135deg,transparent,transparent 6px,var(--line) 6px,var(--line) 8px)}
.recap-bar.is-missing .recap-bar-fill{background:transparent}.recap-bar time,.recap-bar small{text-align:center;font-size:10px;white-space:nowrap}.recap-bar small{font-size:9px}
.recap-event-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.recap-event{display:grid;grid-template-columns:112px minmax(0,1fr);gap:16px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.recap-thumb{width:112px;aspect-ratio:1;border:1px solid var(--line);border-radius:8px;overflow:hidden;padding:0;background:var(--tint);color:var(--muted);font-size:11px;cursor:pointer}
.recap-thumb img{display:block;width:100%;height:100%;object-fit:cover}.recap-thumb-missing{display:grid;place-items:center;text-align:center;padding:10px;cursor:default}
.recap-event-copy{min-width:0}.recap-event-copy h4{font-size:14px;margin:2px 0 8px;overflow-wrap:anywhere}.recap-event-copy p{margin:5px 0;font-size:12px}.recap-event-price{font-size:17px!important;font-weight:650;color:var(--accent)}
.recap-event-copy details{margin-top:7px;font-size:11px;color:var(--muted)}.recap-event-copy summary{cursor:pointer}.recap-disclaimer{margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}
/* 买家排行榜：公共页打码 + 悬停说明，会员指定房全部可点 */
.recap-buyers-section{padding:22px 0;border-top:1px solid var(--line)}
.recap-buyers-section .recap-section-head{align-items:flex-start}
.recap-buyers-section .recap-section-head>div{flex:1 1 auto;min-width:0}
.recap-buyers-section .recap-section-head>a{flex:none;white-space:nowrap;align-self:flex-start}
#recap-buyers-note{max-width:78ch}
.recap-buyers{margin-top:14px;padding-bottom:38px;overflow-x:auto}
.recap-buyers-table{width:100%;border-collapse:collapse;font-size:13px}
.recap-buyers-table th{text-align:left;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.recap-buyers-table td{padding:11px 10px;border-bottom:1px solid var(--line);color:var(--text);vertical-align:middle;white-space:nowrap}
.recap-buyers-table th:nth-child(n+2),.recap-buyers-table td:nth-child(n+2){text-align:right;font-variant-numeric:tabular-nums}
.recap-buyers-table tr.is-revealed td{background:var(--accent-soft)}
.recap-buyer-line{display:inline-flex;align-items:center;gap:9px;min-width:0}
.recap-buyer-rank{display:inline-grid;place-items:center;flex:none;width:20px;height:20px;border-radius:6px;background:var(--tint);color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}
.recap-buyers-table tr.is-revealed .recap-buyer-rank{background:var(--accent);color:#fff}
.recap-buyer-name{position:relative;font-weight:600;overflow-wrap:anywhere}
.recap-buyer-name.is-open{color:var(--accent);text-decoration:none;border-bottom:1px solid transparent}
.recap-buyer-name.is-open:hover,.recap-buyer-name.is-open:focus-visible{border-bottom-color:var(--accent)}
.recap-buyer-name.is-masked{color:var(--muted);letter-spacing:.02em;cursor:help;outline:none}
.recap-buyer-name.is-masked::after{content:attr(data-tip);position:absolute;left:0;top:calc(100% + 6px);z-index:5;padding:5px 9px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text);font-size:11px;font-weight:500;letter-spacing:0;white-space:nowrap;box-shadow:0 6px 16px rgba(0,0,0,.12);opacity:0;visibility:hidden;transform:translateY(-3px);transition:opacity .12s ease,transform .12s ease}
.recap-buyer-name.is-masked:hover::after,.recap-buyer-name.is-masked:focus-visible::after{opacity:1;visibility:visible;transform:translateY(0)}
.recap-buyer-name.is-masked:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}
/* 会员榜前 50 名、每页 10 名：翻页条贴右下角，与成交明细分页同一套按钮观感 */
.recap-buyers-pager{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:4px;font-size:12px;color:var(--muted)}
.recap-buyers-pager button{min-height:34px;padding:6px 14px}
.recap-buyers-pager span{font-variant-numeric:tabular-nums;white-space:nowrap}
.recap-panel .recap-summary small{display:block;margin-top:6px;font-size:11px;line-height:1.6}
@media(max-width:760px){.recap-buyers-section .recap-section-head{display:block}.recap-buyers-section .recap-section-head>a{display:inline-block;margin-top:9px;white-space:normal}#recap-buyers-note{max-width:none}.recap-buyers{padding-bottom:34px}.recap-buyers-table{font-size:12px;min-width:320px}.recap-buyers-table td,.recap-buyers-table th{padding:9px 7px}}
.recap-member-cta{margin-left:auto;text-decoration:none}.events-pager:has(.recap-member-cta:not([hidden])){justify-content:flex-end}
/* 平板：卖家占整行，日期与场次并排，刷新按钮单独一行铺满。 */
@media(max-width:900px){.recap-panel .recap-filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.recap-panel .recap-filter-seller{grid-column:1 / -1}.recap-panel .recap-refresh{grid-column:1 / -1;justify-self:stretch}}
@media(max-width:760px){.recap-panel .recap-filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin:16px 0 8px}.recap-panel .recap-summary{grid-template-columns:1fr}.recap-heading{align-items:center}.recap-overview-metrics{grid-template-columns:1fr;gap:10px}.recap-overview-foot{align-items:flex-start}.recap-details-toggle{margin-left:0}.recap-chart{min-height:170px}.recap-event-list{grid-template-columns:1fr}.recap-event{grid-template-columns:84px minmax(0,1fr);gap:11px}.recap-thumb{width:84px}.recap-event-copy h4{font-size:13px}.recap-section-head{align-items:flex-start}}

/* ---------- 直播间选择弹窗：方式1 输入卖家账号 / 方式2 系统自动 / 方式3 浏览候选 ---------- */
body.member-workspace .room-picker-dialog{
  width:min(880px,calc(100vw - 32px));
  max-height:min(86vh,860px);
  padding:0;margin:auto;
  border:1px solid var(--line);border-radius:14px;
  background:var(--surface);color:var(--text);
  overflow:hidden;
}
body.member-workspace .room-picker-dialog::backdrop{background:rgba(6,20,26,.62)}
body.member-workspace .room-picker-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 24px 14px;border-bottom:1px solid var(--line)}
body.member-workspace .room-picker-header h2{font-size:19px;margin:0 0 4px}
body.member-workspace .room-picker-header p{margin:0;font-size:12px;line-height:1.7;max-width:62ch}
body.member-workspace .room-picker-modes{display:flex;gap:8px;padding:14px 24px 0;flex-wrap:wrap}
body.member-workspace .room-picker-modes button{display:flex;flex-direction:column;gap:2px;align-items:flex-start;padding:9px 16px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--text);cursor:pointer;font:inherit;font-size:13px;line-height:1.3;text-align:left}
body.member-workspace .room-picker-modes button span{font-size:11px;color:var(--muted)}
body.member-workspace .room-picker-modes button:hover{border-color:var(--accent)}
body.member-workspace .room-picker-modes button.is-active{border-color:var(--accent);background:var(--accent-soft);font-weight:600}
body.member-workspace .room-picker-modes button.is-active span{color:var(--accent)}
body.member-workspace .room-picker-body{padding:16px 24px;overflow:auto;max-height:calc(86vh - 260px)}
body.member-workspace .room-picker-body > section > .caption{margin-top:0;font-size:12px;line-height:1.75;max-width:78ch}
body.member-workspace .room-picker-body label{font-size:12px;color:var(--muted)}
body.member-workspace .room-picker-body textarea{width:100%;min-height:82px;margin-top:6px;border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:8px;padding:9px 11px;font:inherit;font-size:13px;resize:vertical}
body.member-workspace .room-picker-body code{font-size:11px}
body.member-workspace .room-picker-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-top:14px;flex-wrap:wrap}
body.member-workspace .room-picker-target{display:flex;gap:14px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:8px 14px;margin:0}
body.member-workspace .room-picker-target legend{font-size:11px;color:var(--muted);padding:0 4px}
body.member-workspace .room-picker-target label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text)}
body.member-workspace .room-picker-footer{display:flex;align-items:center;gap:12px;padding:14px 24px 18px;border-top:1px solid var(--line);flex-wrap:wrap}
body.member-workspace .room-picker-count{font-size:12px;color:var(--muted);margin:0;flex:0 0 auto}
body.member-workspace .room-picker-footer .shop-status{flex:1 1 120px;font-size:12px;margin:0}
body.member-workspace .room-picker-actions{display:flex;gap:10px;flex:0 0 auto;margin-left:auto}
body.member-workspace .member-room-group{margin-top:16px}
body.member-workspace .member-room-group h4{font-size:13px;margin:0 0 4px;display:flex;align-items:center;gap:8px}
body.member-workspace .room-picker-dialog .member-room-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin:14px 0 4px}
body.member-workspace .room-picker-dialog .member-room-option{display:flex;align-items:flex-start;gap:10px;padding:11px 13px;border:1px solid var(--line);border-radius:8px;cursor:pointer;font-size:12px;line-height:1.5;min-width:0;background:var(--bg)}
body.member-workspace .room-picker-dialog .member-room-option:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
body.member-workspace .room-picker-dialog .member-room-option input{flex:0 0 17px;width:17px;height:17px;min-height:17px;margin:2px 0 0}
body.member-workspace .room-picker-dialog .member-room-option span{display:grid;gap:3px;min-width:0}
body.member-workspace .room-picker-dialog .member-room-option strong{overflow-wrap:anywhere;color:var(--text)}
body.member-workspace .room-picker-dialog .member-room-option small{font-size:11px;color:var(--accent)}
body.member-workspace .room-picker-dialog .member-room-option code{font-size:10px;color:var(--muted);overflow-wrap:anywhere}
@media (max-width:560px){
  body.member-workspace .room-picker-modes{flex-direction:column}
  body.member-workspace .room-picker-row{flex-direction:column;align-items:stretch}
  body.member-workspace .room-picker-footer{flex-direction:column;align-items:stretch}
  body.member-workspace .room-picker-actions{margin-left:0}
  body.member-workspace .room-picker-actions button{flex:1 1 auto}
}

/* Inline registration keeps credentials in the current form. */
body.member-workspace .member-auth-box [hidden]{display:none!important}
body.member-workspace #member-register-fields{display:grid;gap:12px}
body.member-workspace .member-auth-box input[type="email"],body.member-workspace .member-auth-box input[type="number"]{width:100%;border:1px solid var(--line);background:var(--bg);border-radius:8px;min-height:42px;padding:9px 12px;font-size:14px;color:var(--text)}
body.member-workspace .member-captcha-row{display:flex;align-items:center;gap:10px;min-width:0}
body.member-workspace .member-captcha-question{flex:1;min-width:0;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--tint);color:var(--text);font-weight:700;font-variant-numeric:tabular-nums}
body.member-workspace .member-captcha-row button{flex:none;margin:0}
body.member-workspace .member-auth-status{font-size:12px;line-height:1.7;color:var(--text);overflow-wrap:anywhere;margin-top:12px}
body.member-workspace .member-auth-status:empty{display:none}
/* 未登录点套餐入口的提醒文案：用警示色，避免被当成普通的表单校验提示。 */
body.member-workspace .member-auth-status.is-warn{color:var(--warn);font-weight:600}
body.member-workspace #member-register-policy{display:grid;gap:10px}

body.member-workspace .member-data-empty{border-top:1px solid var(--line);padding:24px 0;margin-top:24px}
body.member-workspace .member-data-empty p{color:var(--muted);max-width:66ch;margin-top:10px;font-size:13px;line-height:1.8}
body.member-workspace .member-empty-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:16px}
body.member-workspace .member-empty-actions button{margin:0}
body.member-workspace #member-data-empty[hidden],body.member-workspace .member-monitor-config[hidden]{display:none!important}
