
/* ============================================================
   专家广场 · AI 专家大会场（Three.js + DOM 混合 · 参考实现移植）
   ============================================================ */
.hall-page { padding: 0 !important; overflow: hidden; display: flex; flex-direction: column; }
.hall-page.hidden { display: none; }

.hall-header { position: relative; flex: 0 0 auto; height: 112px; padding: 16px 28px 0 30px; z-index: 20; background: rgba(255, 255, 255, 0.97); border-bottom: 1px solid #e3e8ee; }
.hall-header-main h2 { margin: 0; font-size: 26px; line-height: 34px; color: var(--fb-navy-900); }
.hall-header-main p { margin: 2px 0 0; color: #738196; font-size: 12px; }
.hall-header-actions { position: absolute; top: 18px; right: 26px; display: flex; gap: 8px; }
.hall-header-actions .hall-btn { height: 34px; padding: 0 13px; border: 1px solid #d9e0ea; border-radius: 7px; background: #fff; color: #43536a; font-size: 11px; font-family: inherit; cursor: pointer; transition: all 0.15s; }
.hall-header-actions .hall-btn:hover { border-color: #b9cdea; }
.hall-header-actions .hall-btn-primary { color: #fff; border-color: #175fea; background: #175fea; }
.hall-header-actions .hall-btn-primary:hover { background: #1252d1; border-color: #1252d1; }
.hall-header-actions .hall-btn.management-active { color: #8a652e; border-color: #e3c388; background: #fff7e8; }
.hall-btn { font-family: inherit; cursor: pointer; transition: all 0.15s; }

.hall-filter-bar { position: absolute; left: 30px; bottom: 8px; display: flex; gap: 8px; }
.hall-filter-chip { height: 30px; padding: 0 15px; border: 1px solid #e0e5ec; border-radius: 15px; color: #637187; background: white; font-size: 11px; font-family: inherit; cursor: pointer; transition: all 0.15s; }
.hall-filter-chip i { font-style: normal; opacity: 0.65; margin-left: 2px; }
.hall-filter-chip:hover { border-color: #b9c6da; }
.hall-filter-chip.active { color: white; border-color: #175fea; background: #175fea; }
.hall-filter-chip.active i { opacity: 0.85; }

.hall-manage-tip { position: absolute; top: 9px; left: 50%; z-index: 35; transform: translateX(-50%); display: flex; align-items: center; gap: 8px; padding: 7px 15px; border: 1px solid #efdcad; border-radius: 17px; color: #80642e; background: #fff9eb; font-size: 11px; box-shadow: 0 5px 15px rgba(89, 70, 34, 0.07); }
.hall-manage-tip.hidden { display: none; }
.hall-manage-tip .hall-btn-sm { height: 26px; padding: 0 10px; font-size: 11px; }

.hall-container { position: relative; flex: 1; min-height: 0; overflow: hidden; background: linear-gradient(180deg, #f6f8fb 0%, #f4f2ee 100%); }
.hall-canvas-wrap { position: absolute; inset: 0; z-index: 0; }
.hall-canvas-wrap canvas { display: block; }

/* 桌牌（seat-nameplate）：只显名称，border-bottom 为分类色，选中 #175fea */
.hall-label {
  position: absolute; left: 0; top: 0;
  transform: translate(-50%, -50%);
  min-width: 82px; max-width: 112px; min-height: 25px;
  display: flex; align-items: center; justify-content: center;
  padding: 4px 7px;
  border: 1px solid #dfe4eb;
  border-bottom-width: 2px;
  border-bottom-color: var(--cat-color, #39857D);
  border-radius: 5px;
  outline: 0;
  color: #27364c;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 3px 8px rgba(31, 43, 60, 0.08);
  font-size: 10px;
  white-space: nowrap;
  cursor: grab;
  user-select: none;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.hall-label:hover { transform: translate(-50%, -50%) translateY(-1px) scale(1.04); box-shadow: 0 6px 14px rgba(31, 43, 60, 0.12); z-index: 25; }
.hall-label:active { cursor: grabbing; }
.hall-label.is-dim { opacity: 0.14; pointer-events: none !important; }
.hall-label.is-selected { border-color: #9cbdfc; border-bottom-color: #175fea !important; box-shadow: 0 7px 18px rgba(23, 95, 234, 0.14); }
.hall-label-name { overflow: hidden; text-overflow: ellipsis; font-weight: 600; }
.hall-label-menu {
  position: absolute; top: -7px; right: -6px;
  width: 20px; height: 18px; padding: 0;
  border: 1px solid #dfe4eb; border-radius: 8px;
  color: #5d6c81; background: white;
  line-height: 12px; font-size: 9px;
  font-family: inherit; cursor: pointer;
}
.hall-label-empty { min-width: 70px; border-style: dashed; border-bottom-width: 1px; border-bottom-color: #dfe4eb; color: #99a3b2; background: rgba(255, 255, 255, 0.72); cursor: pointer; }
.hall-label-empty:hover { color: #175fea; border-color: #8eb2f5; background: rgba(248, 251, 255, 0.96); }
.hall-label-empty .hall-label-add { color: inherit; }

/* 分类铭牌（Html 投影，min-width 82 h28 藏青 + 左 3px 分类色线） */
.hall-cat-sign {
  position: absolute; left: 0; top: 0;
  transform: translate(-50%, -50%);
  min-width: 82px; height: 28px;
  display: flex; align-items: center; justify-content: center;
  padding: 0 12px; overflow: hidden;
  border-radius: 5px;
  color: white; background: #203a60;
  box-shadow: 0 5px 12px rgba(27, 43, 69, 0.15);
  font-size: 10px; font-weight: 600; white-space: nowrap;
  pointer-events: none;
}
.hall-cat-sign::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--cat-color, #B6925D); }

/* 中央协同对话席 */
.hall-stage {
  position: absolute; left: 50%; bottom: 100px; z-index: 20;
  width: 420px; min-height: 142px;
  transform: translateX(-50%);
  padding: 14px 16px;
  border: 1px solid #e2e7ee; border-radius: 16px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 15px 36px rgba(29, 44, 67, 0.12);
  transition: 0.14s ease;
}
.hall-stage.is-droptarget { border-color: #175fea; background: #f7faff; transform: translateX(-50%) scale(1.012); box-shadow: 0 18px 42px rgba(23, 95, 234, 0.14); }
.hall-stage.hidden { display: none; }
.hall-stage-head { display: flex; align-items: baseline; }
.hall-stage-head b { font-size: 15px; color: var(--fb-navy-900); }
.hall-stage-head span { margin-left: 10px; color: #8490a0; font-size: 9px; }
.hall-stage-slots { display: grid; grid-template-columns: repeat(5, 1fr); gap: 7px; margin-top: 10px; }
.hall-slot { position: relative; height: 52px; display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 8px; }
.hall-slot.empty { border: 1px dashed #cbd3dd; color: #a1abb9; background: #fbfcfd; font-size: 17px; }
.hall-slot.occupied { border: 1px solid #ccdaef; color: #32465f; background: #f3f7fd; }
.hall-slot-avatar { width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: #345d9e; font-size: 8px; }
.hall-slot small { margin-top: 2px; font-size: 9px; white-space: nowrap; }
.hall-slot-x { position: absolute; top: 2px; right: 4px; padding: 0; border: 0; color: #8d98a8; background: transparent; font-size: 10px; cursor: pointer; }
.hall-stage-actions { display: flex; justify-content: center; gap: 8px; margin-top: 10px; }
.hall-stage-actions .hall-btn { height: 32px; padding: 0 16px; border-radius: 7px; font-size: 10px; }
.hall-stage-actions .hall-btn:disabled { opacity: 0.42; cursor: default; }

/* 详情面板 */
.hall-detail {
  position: absolute; top: 13px; right: 13px; bottom: 86px; z-index: 45;
  width: 326px; overflow-y: auto; padding: 18px;
  border: 1px solid #e1e6ec; border-radius: 13px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 16px 42px rgba(24, 39, 65, 0.13);
  animation: hallDetailIn 0.18s ease both;
}
.hall-detail.hidden { display: none; }
@keyframes hallDetailIn { from { opacity: 0; transform: translateX(12px); } to { opacity: 1; transform: none; } }
.hall-detail-inner { display: flex; flex-direction: column; min-height: 100%; }
.hall-detail-head { position: relative; display: flex; align-items: center; gap: 11px; }
.hall-detail-avatar { width: 42px; height: 42px; flex: none; display: grid; place-items: center; border-radius: 9px; color: white; font-weight: 700; }
.hall-detail-head h3 { margin: 0; font-size: 16px; color: var(--fb-navy-900); }
.hall-detail-cat { margin-top: 4px; display: flex; align-items: center; gap: 5px; color: #788697; font-size: 10px; }
.hall-detail-cat span { width: 6px; height: 6px; border-radius: 50%; }
.hall-detail-x { position: absolute; top: -8px; right: -4px; border: 0; color: #8490a0; background: none; font-size: 18px; cursor: pointer; }
.hall-detail-desc { margin: 17px 0 0; color: #5c6c81; font-size: 12px; line-height: 1.8; }
.hall-detail section { margin-top: 20px; }
.hall-detail h4 { margin: 0 0 10px; color: #293a51; font-size: 12px; }
.hall-detail-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.hall-detail-tags span { height: 25px; display: inline-flex; align-items: center; padding: 0 9px; border-radius: 13px; color: #278071; background: #e9f7f3; font-size: 10px; }
.hall-detail-actions { margin-top: auto; padding-top: 20px; display: grid; gap: 8px; }
.hall-detail-actions .hall-btn { height: 38px; border-radius: 7px; }
.hall-link { height: 30px; border: 0; background: transparent; color: #68788c; font-size: 12px; cursor: pointer; font-family: inherit; }
.hall-link:hover { color: #175fea; }

/* 拖拽预览 */
.hall-drag-preview {
  position: fixed; z-index: 99999; height: 42px;
  display: flex; align-items: center; gap: 7px; padding: 0 11px;
  pointer-events: none;
  border: 1px solid #dce3ec; border-radius: 9px;
  background: #fff; box-shadow: 0 12px 30px rgba(25, 43, 72, 0.16);
  color: #31435c; font-size: 10px;
}
.hall-drag-preview.hidden { display: none; }
.hall-drag-preview .hall-slot-avatar { width: 22px; height: 22px; border-radius: 6px; background: #315ea8; font-size: 8px; }
.dp-name { font-weight: 600; }

/* 二维席位图 */
.hall-2d { position: absolute; inset: 0; z-index: 5; overflow: hidden; }
.hall-2d.hidden { display: none; }
.hall-2d-seat { position: absolute; transform: translate(-50%, -50%); border: 1px solid #dfe4ec; border-top: 3px solid var(--cat, #39857D); border-radius: 999px; background: #fff; color: var(--fb-text); padding: 4px 11px; font-size: 11px; font-family: inherit; cursor: pointer; white-space: nowrap; }
.hall-2d-seat:hover { border-color: #9CBDFC; box-shadow: 0 6px 14px rgba(23, 95, 234, 0.14); }
.hall-2d-seat.empty { border-style: dashed; color: #8190A3; }

/* WebGL 降级提示 + 加载 */
.hall-fallback { position: absolute; top: 12px; left: 50%; transform: translateX(-50%); z-index: 46; padding: 8px 16px; border-radius: 17px; background: #fff9eb; border: 1px solid #efdcad; color: #80642e; font-size: 11px; }
.hall-fallback.hidden { display: none; }
.hall-loading { position: absolute; inset: 0; z-index: 55; display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 13px; color: var(--fb-text-2); background: rgba(246, 248, 251, 0.85); }
.hall-loading::before { content: ""; width: 18px; height: 18px; border-radius: 50%; border: 2px solid #d8e0ea; border-top-color: #175fea; animation: hallSpin 0.8s linear infinite; }
@keyframes hallSpin { to { transform: rotate(360deg); } }
.hall-loading.hidden { display: none; }

/* 动效降级（置于文件最末尾） */
@media (prefers-reduced-motion: reduce) {
  .hall-btn, .hall-label, .hall-stage, .hall-filter-chip, .hall-detail, .hall-loading::before { transition: none !important; animation: none !important; }
}

/* Reference auditorium: porcelain, brushed champagne gold and midnight blue. */
:root { --fb-navy-900: #182b4d; --fb-text: #263955; --fb-text-2: #718098; }
.main:has(#experts-view:not(.hidden)) > .composer { display: none; }
.sidebar-motto { padding: 12px 10px 22px; color: #8a98ac; font-size: 13px; line-height: 1.9; }
.sidebar-motto span { display: block; margin-top: 9px; font-size: 9px; letter-spacing: 1px; }
.hall-header { height: auto; min-height: 100px; padding: 23px 28px; display: flex; align-items: center; justify-content: space-between; gap: 20px; background: linear-gradient(110deg,#f9fbff,#f2f6fd); }
.hall-header-main h2 { font-size: 28px; letter-spacing: 1px; }
.hall-header-main p { font-size: 12px; line-height: 1.7; margin-top: 6px; max-width: 630px; }
.hall-header-actions { position: static; flex-shrink: 0; gap: 10px; }
.hall-header-actions .hall-btn { height: 40px; font-size: 12px; color: #2455bd; padding: 0 16px; border-radius: 9px; }
.hall-header-actions .hall-btn-primary { color: white; }
.hall-btn { border: 1px solid #d5dfef; border-radius: 8px; background: #fff; color: #2455bd; padding: 8px 14px; font-size: 12px; }
.hall-btn:hover:not(:disabled) { background: #eef4ff; border-color: #86aaff; }
.hall-btn-primary { color: white; background: #1551ed; border-color: #1551ed; box-shadow: 0 3px 7px #1551ed18; }
.hall-btn-primary:hover:not(:disabled) { color: white; background: #1046d2; }
.hall-btn:disabled { opacity: .5; cursor: not-allowed; }
.hall-btn:focus-visible,.hall-label:focus-visible,.hall-2d-seat:focus-visible { outline: 3px solid #6998ff; outline-offset: 3px; }
.hall-dd { position: relative; }
.hall-dd-menu { position: absolute; right: 0; top: calc(100% + 8px); width: 160px; padding: 6px; background: white; border: 1px solid #dce4ef; border-radius: 10px; box-shadow: 0 12px 30px #182b4d20; }
.hall-dd-menu button { display: block; width: 100%; padding: 11px; border: 0; background: none; color: #324764; text-align: left; cursor: pointer; border-radius: 5px; }
.hall-dd-menu button:hover { background: #edf3ff; }
.hall-container { isolation: isolate; background: #eee8de; }
.hall-labels { position: absolute; inset: 0; pointer-events: none; }
.hall-label { pointer-events: auto; flex-direction: column; gap: 4px; min-width: 88px; max-width: 124px; padding: 8px 10px; min-height: 48px; border: 1px solid #d7c9b4; border-bottom: 3px solid #c4ae88; border-radius: 6px; background: linear-gradient(135deg,#fff,#f1f0ee); box-shadow: 0 5px 7px #533f2926; color: #20324e; font-size: 11px; touch-action: none; }
.hall-label-category { font-size: 9px; line-height: 16px; padding: 0 7px; border-radius: 5px; background: #e6eafb; color: #6479af; }
.hall-label { transform: translateX(-50%) scale(var(--hall-label-scale,1)); transform-origin: top center; }
.hall-label { min-height: 38px; padding: 5px 8px; gap: 2px; }
.hall-label-category { line-height: 14px; }
.hall-container:not(.is-managing) .hall-label-empty { visibility: hidden; }
.hall-label:hover { transform: translateX(-50%) scale(calc(var(--hall-label-scale,1) * 1.035)); }
.hall-label-empty { opacity: .35; min-width: 62px; min-height: 27px; padding: 5px; }
.hall-label-empty:hover,.management-active .hall-label-empty { opacity: 1; }
.hall-label.is-selected { box-shadow: 0 0 0 2px #2a62ec,0 8px 22px #183b7426; }
.hall-cat-sign { height: 36px; min-width: 116px; font-size: 15px; letter-spacing: 1px; border: 2px solid #cfb581; border-radius: 9px 9px 4px 4px; background: linear-gradient(120deg,#233956,#173968 65%,#112c4d); box-shadow: 0 4px 0 #78694d,0 7px 10px #51463426; }
.hall-cat-sign::before { display: none; }
.hall-wall-brand { position: absolute; top: 5%; left: 45%; transform: translateX(-50%); text-align: center; color: #d8bd87; pointer-events: none; text-shadow: 0 2px 3px #0002; }
.hall-brand-name { font-size: clamp(23px,2.25vw,38px); font-weight: 600; letter-spacing: -.5px; }
.hall-wall-brand strong { display: block; font-size: 17px; font-weight: 500; letter-spacing: 5px; margin-top: 10px; }
.hall-wall-brand small { display: block; font-size: 8px; letter-spacing: 2px; margin-top: 10px; }
.hall-wall-copy { position: absolute; top: 9%; font-size: 14px; line-height: 1.9; letter-spacing: 3px; color: #827d73; pointer-events: none; }
.hall-wall-copy-left { left: 8%; }.hall-wall-copy-right { right: 8%; }
.hall-stage { left: 45%; bottom: 8%; width: clamp(370px,30vw,480px); padding: 22px 29px 25px; border: 2px solid #e4d2af; border-bottom: 7px solid #ccb182; border-radius: 44% 44% 22% 22% / 23% 23% 12% 12%; background: linear-gradient(150deg,#fffdf9,#f6f4f2); box-shadow: 0 10px 0 #ab8d5d,0 22px 0 #253b5d,0 33px 0 #1e304b,0 36px 0 #d6b777,0 45px 27px #51453733; }
.hall-stage-head { flex-direction: column; align-items: center; gap: 7px; }
.hall-container:not(.is-2d) .hall-stage { transform: translateX(-50%) scale(var(--hall-label-scale,1)); transform-origin: bottom center; }
.hall-container:not(.is-2d) .hall-stage.is-droptarget { transform: translateX(-50%) scale(calc(var(--hall-label-scale,1) * 1.012)); }
.hall-stage-head b { font-size: 21px; }
.hall-stage-head span { margin: 0; font-size: 11px; text-align: center; }
.hall-stage-slots { gap: 10px; margin: 17px 15px 0; }
.hall-slot { height: 61px; }
.hall-slot.empty { background: #ffffff40; border: 2px dashed #d8dce2; font-size: 24px; color: #8590a0; }
.hall-slot-avatar { width: 26px; height: 26px; font-size: 12px; }
.hall-slot-x { font-size: 17px; }
.hall-slot-order { position:absolute; top:4px; left:6px; font-size:9px; font-weight:600; color:#6b84ac; }
.hall-stage-actions { margin-top: 16px; gap: 8px; }
.hall-stage-actions .hall-btn { flex: 1; height: 36px; font-size: 11px; padding: 0 8px; white-space: nowrap; }
.hall-stage-motto { position: absolute; left: 0; top: calc(100% + 15px); width: 100%; text-align: center; font-size: 12px; letter-spacing: 4px; color: #e3c28b; pointer-events: none; }
.hall-detail { width: 268px; top: 18px; right: 18px; bottom: 58px; padding: 35px 22px 20px; border-radius: 10px; background: #fffffff5; box-shadow: 0 10px 30px #33446224; }
.hall-detail-head { gap: 13px; }
.hall-detail-head h3 { font-size: 16px; line-height: 1.6; }
.hall-detail-avatar { width: 52px; height: 58px; font-size: 25px; border-radius: 12px; }
.hall-detail-cat { font-size: 11px; color: #688ac5; }
.hall-detail-desc { margin-top: 22px; font-size: 13px; line-height: 1.9; }
.hall-detail section { margin-top: 26px; }
.hall-detail h4 { font-size: 13px; }
.hall-detail-tags { gap: 6px; }
.hall-detail-tags span { border-radius: 5px; background: #d9f7ef; height: auto; min-height: 25px; font-size: 11px; padding: 4px 7px; }
.hall-detail-guidance { font-size: 12px; line-height: 1.9; color: #7b879a; }
.hall-detail-scenario { border-left: 3px solid #bca174; background: #f6f5f1; padding: 10px; color: #76736c; font-size: 12px; }
.hall-detail-x { top: -25px; right: -10px; font-size: 26px; }
.hall-detail-actions .hall-btn { height: 39px; font-size: 12px; }
.hall-scene-tools { position: absolute; bottom: 14px; left: 20px; z-index: 25; display: flex; align-items: center; gap: 14px; color: #7b7f85; font-size: 10px; padding: 7px 12px; border: 1px solid #ffffff90; border-radius: 30px; background: #ffffffc4; backdrop-filter: blur(8px); }
.hall-scene-tools button { font: inherit; color: #345c93; border: 0; background: none; cursor: pointer; }
.hall-manage-tip { position: relative; top: auto; left: auto; transform: none; border-radius: 0; flex-shrink: 0; z-index: 30; box-shadow: none; }
.hall-compact .hall-label { min-width: 68px; padding: 5px 6px; font-size: 10px; min-height: 26px; }
.hall-compact .hall-label-category { display: none; }
.hall-2d { padding: 24px; display: grid; grid-template-columns: repeat(auto-fill,minmax(140px,1fr)); align-content: start; gap: 12px; overflow-y: auto; bottom: 300px; background: linear-gradient(130deg,#edf3fb,#f6f3ed); }
.hall-2d-seat { position: static; transform: none; border-radius: 10px; padding: 16px 10px; white-space: normal; min-height: 70px; }
.hall-2d-seat strong { display: block; font-size: 12px; }.hall-2d-seat small { display: block; margin-top: 7px; color: #8090a5; }
.is-2d .hall-wall-brand,.is-2d .hall-wall-copy { display: none; }
.is-2d .hall-stage { bottom: 65px; left: 50%; border-radius: 18px; box-shadow: 0 8px 25px #1e304b18; }
.is-2d .hall-stage-motto { display: none; }
.is-2d .hall-detail { bottom: 20px; }
.expert-modal-mask { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; background: #13213970; backdrop-filter: blur(4px); padding: 20px; }
.expert-modal-mask.hidden { display: none; }
.expert-modal { width: min(600px,100%); max-height: 90vh; overflow-y: auto; padding: 26px; border-radius: 16px; background: white; box-shadow: 0 22px 90px #0003; }
.expert-modal-header,.expert-modal-footer,.modal-footer-right { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.expert-modal-header h3 { font-size: 20px; }.hall-modal-x { border: none; background: none; font-size: 26px; color: #8290a4; cursor: pointer; }
.expert-form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 22px 0; }.expert-form .full { grid-column: 1/-1; }
.expert-form label span { display: block; margin-bottom: 7px; font-size: 12px; color: #50607a; }
.expert-form input,.expert-form select,.expert-form textarea { width: 100%; border: 1px solid #d8e0eb; border-radius: 6px; padding: 10px; font: inherit; font-size: 13px; }
.expert-modal-footer button { border: 1px solid #d8e0eb; border-radius: 7px; padding: 9px 18px; cursor: pointer; }.expert-modal-footer .primary-button { background: #1551ed; color: white; border-color: #1551ed; }.danger-button { color: #c74747; background: #fff; }.target-seat-tip { font-size: 12px; color: #95784b; padding-top: 12px; }
@media (max-width: 1450px) {
  .hall-header { padding: 18px 22px; gap: 12px; }.hall-header-main p { max-width: 430px; font-size: 11px; }.hall-header-actions { gap: 6px; }.hall-header-actions .hall-btn { padding: 0 11px; font-size: 11px; }
  .hall-detail { width: 235px; padding: 33px 18px 15px; }.hall-detail-head h3 { font-size: 14px; }.hall-detail-avatar { width: 43px; height: 48px; }.hall-detail section { margin-top: 19px; }
  .hall-stage { width: 400px; padding: 19px 22px; left: 44%; }.hall-stage-head b { font-size: 19px; }.hall-stage-head span { font-size: 10px; }.hall-label { min-width: 79px; max-width: 108px; font-size: 10px; padding: 7px; }
}
@media (max-width: 1100px) { .hall-header { flex-wrap: wrap; }.hall-header-main p { max-width: none; }.hall-header-actions { margin-top: 3px; }.hall-detail { width: 240px; }.hall-wall-copy { display: none; } }
@media (max-width: 767px) {
  .hall-header { padding: 14px; gap: 7px; }.hall-header-main h2 { font-size: 23px; }.hall-header-main p { font-size: 10px; }.hall-header-actions { width: 100%; gap: 5px; }.hall-header-actions .hall-btn { height: 34px; padding: 0 8px; font-size: 10px; }
  .hall-2d { padding: 12px; gap: 8px; grid-template-columns: repeat(2,minmax(0,1fr)); bottom: 247px; }.hall-stage,.is-2d .hall-stage { width: calc(100% - 24px); bottom: 40px; padding: 16px 12px; }.hall-stage-head b { font-size: 17px; }.hall-stage-slots { margin: 12px 0 0; gap: 6px; }.hall-slot { height: 47px; }.hall-stage-actions { margin-top: 10px; gap: 5px; }.hall-stage-actions .hall-btn { font-size: 10px; padding: 0 5px; }.hall-stage-head span { font-size: 9px; }
  .hall-detail { inset: 12px; width: auto; bottom: 12px; padding: 34px 23px 20px; }.hall-detail section { margin-top: 20px; }.hall-scene-tools { bottom: 7px; left: 12px; padding: 4px 10px; gap: 10px; font-size: 9px; }.hall-scene-tools span:last-child { display: none; }.hall-manage-tip { flex-wrap: wrap; font-size: 10px; padding: 8px; }.expert-form { grid-template-columns: 1fr; }.sidebar-motto { display: none; }
}
@media (max-height: 820px) and (min-width: 1024px) {
  .hall-stage { padding: 14px 20px 17px; width: 370px; }
  .hall-stage-head b { font-size: 17px; }.hall-stage-head span { font-size: 9px; }
  .hall-stage-slots { margin-top: 10px; gap: 7px; }.hall-slot { height: 42px; }
  .hall-stage-actions { margin-top: 10px; }.hall-stage-actions .hall-btn { height: 31px; font-size: 10px; }
  .hall-cat-sign { font-size: 12px; height: 29px; min-width: 94px; }
  .hall-wall-brand { top: 3%; }.hall-brand-name { font-size: 27px; }.hall-wall-brand strong { font-size: 12px; margin-top: 6px; }.hall-wall-brand small { font-size: 6px; margin-top: 6px; }
}
@media (max-width: 767px) { .hall-header-actions .hall-btn { white-space: nowrap; padding: 0 6px; font-size: 9px; } }

/* Quiet finishing: category hierarchy stays distinct without heavy ornament. */
.hall-cat-sign { z-index: 27; min-width: 112px; height: 34px; padding: 0 18px; border: 1px solid #c4af86; border-radius: 7px; font-size: 13px; letter-spacing: 1px; font-weight: 600; background: linear-gradient(115deg,#2c405a,#213956); box-shadow: 0 2px 0 #a4906b,0 5px 10px #24364f18; }
.hall-stage { border-width: 1px; border-bottom-width: 3px; background: linear-gradient(145deg,#fffefb,#f8f6f2); box-shadow: 0 6px 0 #c7b593,0 18px 0 #263b58,0 21px 0 #bda47a,0 30px 23px #51453724; }
.hall-detail { background: #fff; border-color: #e8e9ec; box-shadow: 0 8px 30px #20355016; }
.hall-label { border-color: #ded5c5; border-bottom-width: 2px; box-shadow: 0 3px 6px #533f291c; }
.hall-label.is-selected { box-shadow: 0 0 0 1.5px #3268e5,0 4px 10px #183b741a; }
.hall-wall-brand strong { letter-spacing: 4px; }.hall-wall-brand small { opacity: .75; }
@media (max-height: 820px) { .hall-cat-sign { height: 28px; min-width: 90px; font-size: 11px; padding: 0 12px; } }

/* Muted category accents match the seated expert's tie. */
.hall-label:not(.hall-label-empty) { background:color-mix(in srgb,var(--cat-color) 12%,#fffefa); border-color:color-mix(in srgb,var(--cat-color) 40%,#e6e2db); border-bottom:3px solid var(--cat-color); }
.hall-label-category { color:var(--cat-color); background:color-mix(in srgb,var(--cat-color) 10%,#fff); }
.hall-label.is-selected { outline:2px solid #3268e5; outline-offset:2px; }
.hall-mode-select {display:flex;justify-content:center;align-items:center;gap:12px;margin:12px 0;font-size:11px;color:#687a90;}
.hall-mode-select select,.hall-debate-side select {border:1px solid #d9e1ec;border-radius:6px;background:#fff;color:#284462;padding:6px;font:inherit;}
.hall-stage-slots.is-debate-selection {display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.hall-debate-side {display:grid;gap:6px;min-width:0;text-align:left;}.hall-debate-side b {font-size:12px;color:#526b86;}.hall-debate-side:last-child b {color:#8b755b;}.hall-debate-side select {width:100%;font-size:10px;}
.debate-config {max-width:850px;max-height:90vh;overflow:auto;}.debate-config form {display:grid;gap:12px;}.debate-config textarea {width:100%;box-sizing:border-box;}.debate-columns {display:grid;grid-template-columns:1fr 1fr;gap:20px;}.debate-columns section {background:#f5f7fa;border-top:3px solid #526b86;padding:14px;border-radius:6px;}.debate-columns section:last-child {border-color:#8b755b;}.debate-config p {font-size:12px;color:#708099;line-height:1.7;}
.hall-container .hall-stage.hall-drawer{position:absolute;left:auto!important;right:12px!important;top:64px!important;bottom:12px!important;width:min(480px,calc(100% - 24px))!important;max-height:calc(100% - 76px)!important;height:auto;box-sizing:border-box;overflow:auto;transform:translateX(calc(100% + 24px))!important;visibility:hidden;transition:transform .25s ease,visibility .25s;z-index:35;padding-top:48px}
.hall-container .hall-stage.hall-drawer.is-drawer-open{transform:translateX(0)!important;visibility:visible}
.hall-drawer-toggle{position:absolute;right:16px;top:14px;z-index:36;padding:10px 16px;border:1px solid #c8d5e4;border-radius:9px;background:#fffefb;color:#284b74;box-shadow:0 3px 12px #203a5414;cursor:pointer}
.hall-drawer-close{position:absolute;right:14px;top:10px;border:0;background:transparent;color:#526d8a;padding:6px 10px;cursor:pointer}
.has-roundtable>.hall-drawer-toggle{display:none}
@media(prefers-reduced-motion:reduce){.hall-container .hall-stage.hall-drawer{transition:none}}
.hall-page>.hall-header{display:none}
.hall-page>.hall-browser-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 16px;padding:10px 18px}
.hall-browser-controls .hall-header-actions{position:static;grid-column:2;grid-row:1;display:flex;align-items:center;gap:6px;margin:0;flex-wrap:nowrap;width:auto}
.hall-browser-controls .hall-filter-bar{grid-column:1;grid-row:1;min-width:0;overflow-x:auto;white-space:nowrap;flex-wrap:nowrap;padding:2px}
.hall-browser-controls .hall-page-bar{grid-column:1;grid-row:2;margin:0;padding:0;font-size:10px}
#hall-container .hall-stage.hall-drawer{left:16px!important;right:16px!important;top:auto!important;bottom:12px!important;width:calc(100% - 32px)!important;height:min(520px,70%);max-height:70%!important;transform:translateY(calc(100% + 24px))!important;border-radius:18px 18px 10px 10px;padding:52px 24px 20px}
#hall-container .hall-stage.hall-drawer.is-drawer-open{transform:translateY(0)!important;visibility:visible}
.hall-container>.hall-drawer-toggle{top:auto;bottom:12px;left:16px;right:16px;text-align:left;height:44px;border-radius:12px;background:#fffdf8;font-size:14px;font-weight:600}
.hall-container:has(.is-drawer-open)>.hall-drawer-toggle{bottom:calc(min(520px,70%) - 36px);border-bottom:1px solid #e6dfd0;border-radius:16px 16px 0 0;box-shadow:none}
.hall-drawer .hall-drawer-close{display:none}
@media(max-width:1100px){.hall-browser-controls .hall-header-actions .hall-btn{font-size:10px;padding:0 7px}.hall-browser-controls .hall-filter-chip{font-size:10px;padding:0 8px}.hall-page>.hall-browser-controls{gap:4px 8px;padding:8px}}
#experts-view #hall-container .hall-stage.hall-drawer{left:50%!important;right:auto!important;bottom:12px!important;width:min(600px,calc(100% - 32px))!important;height:300px;max-height:calc(100% - 70px)!important;padding:46px 20px 14px;transform:translate(-50%,calc(100% + 24px))!important;border-radius:16px}
#experts-view #hall-container .hall-stage.hall-drawer.is-drawer-open{transform:translate(-50%,0)!important}
#experts-view #hall-container>.hall-drawer-toggle{left:50%;right:auto;width:min(600px,calc(100% - 32px));transform:translateX(-50%);bottom:12px;height:38px;font-size:12px}
#experts-view #hall-container:has(.is-drawer-open)>.hall-drawer-toggle{bottom:274px;border-radius:16px 16px 0 0}
#experts-view .hall-drawer>h3{display:none}
#experts-view .hall-drawer .hall-assembly-tabs{margin:0 auto 8px}
#experts-view #hall-container .hall-stage.hall-drawer:has(.hall-assembly:not([hidden])){height:380px}
#experts-view #hall-container:has(.is-drawer-open .hall-assembly:not([hidden]))>.hall-drawer-toggle{bottom:354px}
/* Business focus preserves seats, hit targets and the existing auditorium. */
.hall-business-filter{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:6px 16px;color:#233950;font-size:12px}
.hall-business-filter select{height:34px;max-width:210px;background:#fffdf8;border:1px solid #cfc5b5;border-radius:5px;color:#233950;padding:0 28px 0 10px}
.hall-business-filter select:focus-visible{outline:2px solid #175fea;outline-offset:2px}
.hall-business-zone{display:block;font-size:9px;color:#776a54;line-height:1.1}
.hall-business-match{display:block;font-size:10px;font-weight:600;color:#735a2c;line-height:1.1}
.hall-business-match:empty{display:none}
#experts-view .hall-label .hall-business-zone,#experts-view .hall-label .hall-business-match{color:#53616b}
#experts-view .hall-label .hall-business-zone.business-domain-zone-active{color:#253a49}
#experts-view .hall-label .business-domain-zone-dimmed{color:#667078}
#experts-view .hall-label{width:auto;min-width:70px;max-width:132px;padding:2px 6px;transform:translateX(-50%) scale(var(--business-label-scale,1));transform-origin:top center}
#experts-view .hall-label .hall-label-name{max-width:100%;font-size:12px;line-height:14px}
.hall-business-meta{display:flex;justify-content:center;gap:3px;white-space:nowrap}
#experts-view .hall-label .hall-business-meta small{font-size:9px}
#experts-view .hall-label-empty{opacity:.75}
#experts-view .hall-label-empty .hall-business-zone{color:#665637}
#experts-view .hall-label-empty:has(.business-domain-zone-active){opacity:1;border-color:#b59a68}
.hall-browser-controls .hall-business-filter{grid-column:1;grid-row:1;padding:0;flex-wrap:nowrap;white-space:nowrap;min-width:0}
.hall-browser-controls .hall-business-filter select{min-width:0}
#experts-view [data-business-match]{transition:opacity 180ms,filter 180ms,box-shadow 180ms}
#experts-view [data-business-match="primary"]{opacity:1;box-shadow:0 0 0 1px #b59a68,0 2px 5px #18304920}
#experts-view [data-business-match="secondary"]{opacity:.87;box-shadow:0 0 0 1px #cfc5b5}
#experts-view [data-business-match="none"]{opacity:.36;filter:saturate(.6)}
#experts-view .hall-label.is-business-selected,#experts-view .hall-2d-seat.is-business-selected{opacity:1;filter:none;outline:2px solid #175fea;outline-offset:1px}
#experts-view .hall-business-zone.business-domain-zone-active,#experts-view .hall-category-group.business-domain-zone-active>h3{color:#233950;font-weight:700;text-decoration:underline;text-decoration-color:#b59a68;text-underline-offset:3px}
#experts-view .hall-category-group.business-domain-zone-dimmed>h3{color:#827b70}
@media(prefers-reduced-motion:reduce){#experts-view [data-business-match]{transition:none}}
#experts-view .hall-label,#experts-view .hall-2d-seat{background:var(--business-background,#eeece7);color:#293b49;border:1px solid var(--business-accent,#9b968b);border-left:3px solid var(--business-accent,#9b968b);box-shadow:0 2px 5px #28344118;backdrop-filter:none;-webkit-backdrop-filter:none}
#experts-view .hall-label .hall-label-name,#experts-view .hall-2d-seat strong{color:#293b49}
#experts-view [data-business-match="primary"]{box-shadow:0 0 0 1px var(--business-accent,#9b968b),0 2px 5px #18304920}

/* M24 减持前置触达扫描组件 */
.rpc-group{margin:10px 0;border:1px solid var(--border,#e3e6ee);border-radius:10px;overflow:hidden}
.rpc-group-head{display:flex;align-items:center;gap:8px;padding:8px 14px;background:rgba(120,130,160,.08);font-weight:600;font-size:.9em}
.rpc-candidate{margin:8px 12px}
.rpc-detail{margin:6px 12px 4px}
.rpc-detail>summary{cursor:pointer;font-size:.82em;color:#667eea;user-select:none}
.rpc-promote-note{margin:6px 12px 10px;font-size:.76em;color:#8a8f9d;border-top:1px dashed var(--border,#e3e6ee);padding-top:6px}
