@charset "utf-8";
/**
 * 自定义版面 — 布局引擎专用样式 v2.0
 * 依赖 theme.css 的 CSS 变量
 */

/* ============ 顶部 Tab 栏 ============ */
.lm-tabs {
  display: flex;
  align-items: center;
  height: 32px;
  background: var(--bg-panel);
  border-bottom: 1px solid var(--bg-border);
  padding: 0 4px;
  gap: 2px;
  flex-shrink: 0;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
}
.lm-tabs::-webkit-scrollbar { display: none; }

.lm-tab {
  display: flex;
  align-items: center;
  padding: 4px 14px;
  font-size: 12px;
  color: var(--text-secondary);
  cursor: pointer;
  border-radius: 4px 4px 0 0;
  border: 1px solid transparent;
  border-bottom: none;
  white-space: nowrap;
  user-select: none;
  transition: color 0.15s, background 0.15s;
  flex-shrink: 0;
}
.lm-tab:hover { color: var(--text-primary); background: var(--bg-hover); }
.lm-tab.active {
  color: var(--text-primary);
  background: var(--bg-app);
  border-color: var(--bg-border);
  font-weight: bold;
}

.lm-tab-add {
  padding: 4px 8px;
  font-size: 14px;
  color: var(--text-muted);
  cursor: pointer;
  user-select: none;
}
.lm-tab-add:hover { color: var(--accent); }

.lm-tab-label {
  max-width: 120px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lm-tab-move,
.lm-tab-del {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 17px;
  height: 17px;
  margin-left: 2px;
  padding: 0;
  border: 0;
  border-radius: 3px;
  color: var(--text-muted);
  background: transparent;
  font: 700 12px/1 Arial, sans-serif;
  cursor: pointer;
}
.lm-tab-move:hover { color: var(--accent); background: var(--bg-hover); }
.lm-tab-del { color: #f87171; }
.lm-tab-del:hover { color: #fff; background: rgba(248,113,113,.28); }

/* ============ 工具栏 ============ */
.lm-toolbar {
  display: flex;
  align-items: center;
  height: 28px;
  background: var(--bg-panel);
  border-bottom: 1px solid var(--bg-border);
  padding: 0 8px;
  gap: 8px;
  flex-shrink: 0;
}

.lm-toolbar-btn {
  padding: 2px 10px;
  font-size: 11px;
  color: var(--text-secondary);
  background: transparent;
  border: 1px solid var(--bg-border);
  border-radius: 3px;
  cursor: pointer;
  user-select: none;
}
.lm-toolbar-btn:hover { color: var(--text-primary); border-color: var(--accent); }
.lm-toolbar-btn.primary { color: #fff; background: var(--accent); border-color: var(--accent); }
.lm-toolbar-btn.primary:hover { background: var(--accent-hover); }


.lm-toolbar-btn.primary {
  color: #fff;
  background: var(--accent);
  border-color: var(--accent);
}
.lm-toolbar-btn.danger {
  color: var(--up-color);
  border-color: rgba(230,65,58,.45);
}

.lm-toolbar-spacer { flex: 1; }

.lm-toolbar-msg {
  font-size: 11px;
  color: var(--text-muted);
  transition: color 0.3s;
}

/* ============ 布局容器 ============ */
.lm-viewport {
  flex: 1;
  position: relative;
  overflow: hidden;
  background: var(--bg-app);
}

/* ============ 分割容器 ============ */
.lm-split {
  display: flex;
  width: 100%;
  height: 100%;
  position: relative;
}
.lm-split.lm-h { flex-direction: row; }
.lm-split.lm-v { flex-direction: column; }

/* ============ 分隔条（拖拽手柄） ============ */
.lm-divider {
  flex-shrink: 0;
  background: var(--bg-border);
  z-index: 10;
  position: relative;
  transition: background 0.15s;
  overflow: visible;
}
.lm-divider::before {
  content: '';
  position: absolute;
  z-index: 11;
  pointer-events: auto;
}
.lm-divider:hover, .lm-divider.dragging { background: var(--accent); }

.lm-split.lm-h > .lm-divider {
  width: 5px;
  cursor: col-resize;
}
.lm-split.lm-h > .lm-divider::before {
  left: -3px;
  right: -3px;
  top: 0;
  bottom: 0;
  cursor: col-resize;
}
.lm-split.lm-v > .lm-divider {
  height: 5px;
  cursor: row-resize;
}
.lm-split.lm-v > .lm-divider::before {
  left: 0;
  right: 0;
  top: -3px;
  bottom: -3px;
  cursor: row-resize;
}

/* ★ v3.8: 复盘拆分模块适配正式版 DOM
   正式版 .rp-hero-left 原本在大复盘面板中只占 55%，拆成独立 cell 后必须占满格子。 */
.lm-cell-body .rp-layout-v3 > .rp-hero-left {
  flex: 1 1 auto !important;
  width: 100%;
  height: 100%;
  border-right: 0 !important;
  min-height: 0;
}
.lm-cell-body .rp-layout-v3 > .rp-hero-left > .rp-plate-grid {
  flex: 1 1 auto;
  min-height: 0;
}
.lm-cell-body .rp-layout-v3 > .rp-hero-right {
  flex: 1 1 auto !important;
  width: 100%;
  height: 100%;
  min-height: 0;
}
.lm-cell-body .rp-layout-v3 > .rp-hero-right > .rp-matrix-board {
  flex: 1 1 auto;
  min-height: 0;
}


/* ============ 格子（叶子节点） ============ */
.lm-cell {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--bg-border);
  background: var(--bg-panel);
  display: flex;
  flex-direction: column;
}

/* 格子标题栏（含模块名+操作按钮） */
.lm-cell-header {
  display: flex;
  align-items: center;
  height: 22px;
  padding: 0 6px;
  background: rgba(0,0,0,0.15);
  border-bottom: 1px solid var(--bg-border);
  flex-shrink: 0;
  font-size: 11px;
  color: var(--text-secondary);
  user-select: none;
}

/* 浏览模式：压缩外层 chrome，避免标题重复和顶部占用过高 */
body.lm-view-mode .lm-header { display: none; }
body.lm-view-mode .lm-tabs { height: 26px; padding-right: 150px; }
body.lm-view-mode .lm-toolbar {
  position: absolute;
  top: 0;
  right: 6px;
  z-index: 20;
  height: 26px;
  padding: 0;
  background: transparent;
  border-bottom: 0;
  gap: 4px;
}
body.lm-view-mode #lm-btn-save,
body.lm-view-mode #lm-btn-reset,
body.lm-view-mode .lm-toolbar-msg { display: none; }
body.lm-view-mode .lm-toolbar-btn { padding: 1px 8px; font-size: 10px; background: rgba(0,0,0,.18); }
body.lm-view-mode .lm-cell-header { display: none; }
body.lm-view-mode .lm-cell { border-color: rgba(80,88,105,.55); }


/* 浏览模式：锁定布局，避免误操作。只有开启编辑模式才显示布局操作控件 */
body.lm-view-mode .lm-cell-btn,
body.lm-view-mode .lm-cell-zoom-label {
  display: none !important;
}
body.lm-view-mode .lm-cell-empty {
  cursor: default;
  pointer-events: none;
}
body.lm-view-mode .lm-divider {
  cursor: default !important;
  opacity: .45;
}
body.lm-view-mode .lm-divider::before {
  pointer-events: none !important;
  cursor: default !important;
}
body.lm-view-mode .lm-divider:hover {
  background: var(--bg-border);
}
body.lm-edit-mode .lm-cell-header {
  background: rgba(29, 78, 216, 0.10);
}
body.lm-edit-mode .lm-divider {
  opacity: 1;
}
.lm-cell-title { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lm-cell-btn {
  padding: 0 4px;
  cursor: pointer;
  color: var(--text-muted);
  font-size: 12px;
}
.lm-cell-btn:hover { color: var(--text-primary); }

/* 缩放控件 */
.lm-cell-btn-zoom-in, .lm-cell-btn-zoom-out {
  font-size: 13px;
  font-weight: bold;
  width: 18px;
  text-align: center;
  line-height: 18px;
}
.lm-cell-zoom-label {
  font-size: 10px;
  color: var(--text-muted);
  min-width: 28px;
  text-align: center;
  cursor: pointer;
  font-family: Arial, sans-serif;
  user-select: none;
}

/* 格子内容区（模块渲染到这里） */
.lm-cell-body {
  flex: 1;
  overflow: auto;
  position: relative;
  min-width: 0;
  min-height: 0;
}
.lm-cell-body > iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  border: 0;
}

/* 编辑模式遮罩：默认完全不挡交互（浏览模式下 iframe/原生模块正常使用）。
   开启编辑模式时铺满内容区并接住鼠标事件，使右键切割菜单对 iframe 类模块
   （龙虎榜/风向标/资金方向/板块核心/云图/舆情等）也能生效，同时避免误点模块内部。
   遮罩挂在 .lm-cell 上（不在 body 内，避免被模块 mount 的 innerHTML 清除）；
   top:22px 让开编辑模式的标题栏，保证更换/清空/缩放按钮仍可点击。 */
.lm-cell-editmask {
  position: absolute;
  top: 22px;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 5;
  display: none;
  cursor: context-menu;
  background: transparent;
}
body.lm-edit-mode .lm-cell-editmask {
  display: block;
}
body.lm-edit-mode .lm-cell-editmask:hover {
  background: rgba(54, 133, 223, 0.06);
}

/* 空格子：显示 + 按钮 */
.lm-cell-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  gap: 8px;
  cursor: pointer;
}
.lm-cell-empty:hover { background: var(--bg-hover); }
.lm-cell-empty-icon { font-size: 24px; color: var(--text-muted); }
.lm-cell-empty-text { font-size: 11px; color: var(--text-muted); }

/* ============ 右键菜单 ============ */
.lm-ctx-menu {
  position: fixed;
  z-index: 9999;
  background: var(--bg-panel);
  border: 1px solid var(--bg-border);
  border-radius: 4px;
  padding: 4px 0;
  min-width: 140px;
  box-shadow: 0 4px 16px rgba(0,0,0,0.5);
}
.lm-ctx-item {
  padding: 5px 14px;
  font-size: 12px;
  color: var(--text-primary);
  cursor: pointer;
  user-select: none;
}
.lm-ctx-item:hover { background: var(--accent-bg); }
.lm-ctx-sep { height: 1px; background: var(--bg-border); margin: 3px 0; }

/* ============ 模块选择下拉面板 ============ */
/* ============ 模块选择面板 v3.13：搜索 + Tab分类 + 精简条目 ============ */
.lm-mod-picker {
  position: fixed;
  z-index: 9998;
  background: var(--bg-panel);
  border: 1px solid var(--bg-border);
  border-radius: 8px;
  padding: 0;
  width: 300px;
  max-height: 420px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 8px 28px rgba(0,0,0,0.55);
}
/* 搜索框 */
.lm-mp-search {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 9px 10px;
  border-bottom: 1px solid var(--bg-border);
  flex-shrink: 0;
}
.lm-mp-search-ico { font-size: 12px; opacity: .7; flex-shrink: 0; }
.lm-mp-search-input {
  flex: 1;
  min-width: 0;
  background: var(--bg-app);
  border: 1px solid var(--bg-border);
  border-radius: 5px;
  padding: 5px 8px;
  font-size: 12px;
  color: var(--text-primary);
  outline: none;
}
.lm-mp-search-input:focus { border-color: var(--accent); }
.lm-mp-search-input::placeholder { color: var(--text-muted); }
/* Tab 分类栏 */
.lm-mp-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  padding: 7px 8px;
  border-bottom: 1px solid var(--bg-border);
  flex-shrink: 0;
}
.lm-mp-tab {
  font-size: 11px;
  padding: 3px 9px;
  border-radius: 12px;
  color: var(--text-muted);
  cursor: pointer;
  white-space: nowrap;
  border: 1px solid transparent;
  transition: background .12s, color .12s;
}
.lm-mp-tab:hover { color: var(--text-primary); background: var(--bg-hover); }
.lm-mp-tab.active {
  color: var(--accent);
  background: var(--accent-bg);
  border-color: var(--accent);
}
/* 列表容器 */
.lm-mp-list {
  flex: 1;
  overflow-y: auto;
  padding: 5px;
  min-height: 0;
}
.lm-mp-empty {
  text-align: center;
  color: var(--text-muted);
  font-size: 11px;
  padding: 26px 10px;
}
.lm-mod-picker-item {
  padding: 6px 8px;
  font-size: 12px;
  color: var(--text-primary);
  cursor: pointer;
  border-radius: 5px;
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 34px;
}
.lm-mod-picker-item:hover { background: var(--accent-bg); }
.lm-mod-icon { width: 22px; font-size: 15px; text-align: center; flex-shrink: 0; }
.lm-mod-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.lm-mod-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lm-mod-desc { font-size: 10px; color: var(--text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.lm-mod-picker-item.disabled {
  color: var(--text-muted);
  cursor: not-allowed;
}
.lm-mod-picker-item.disabled:hover { background: transparent; }

/* ============ Toast 提示 ============ */
.lm-toast {
  position: fixed;
  bottom: 40px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--bg-panel);
  border: 1px solid var(--bg-border);
  padding: 8px 20px;
  border-radius: 6px;
  font-size: 12px;
  color: var(--text-primary);
  box-shadow: 0 4px 16px rgba(0,0,0,0.5);
  z-index: 99999;
  animation: lm-toast-in 0.2s ease-out;
}
@keyframes lm-toast-in { from { opacity: 0; transform: translateX(-50%) translateY(10px); } }


/* ─── 列配置面板 ─── */
.lm-col-panel {
  position: fixed;
  z-index: 90000;
  background: var(--bg-panel, #1a1d23);
  border: 1px solid var(--bg-border, #333);
  border-radius: 6px;
  padding: 8px;
  min-width: 150px;
  max-height: 340px;
  overflow-y: auto;
  box-shadow: 0 4px 16px rgba(0,0,0,0.5);
  font-size: 12px;
  color: var(--text-primary, #e0e0e0);
}
.lm-col-panel-title {
  font-weight: bold; font-size: 12px; margin-bottom: 6px;
  color: var(--accent, #e6a23c); padding-bottom: 4px; border-bottom: 1px solid var(--bg-border, #333);
}
.lm-col-panel-list { display: flex; flex-direction: column; gap: 2px; }
.lm-col-panel-row {
  display: flex; align-items: center; gap: 6px; padding: 3px 4px; cursor: grab;
  border-radius: 3px; user-select: none;
}
.lm-col-panel-row:hover { background: var(--bg-hover, rgba(255,255,255,0.05)); }
.lm-col-panel-row input[type="checkbox"] { margin: 0; cursor: pointer; }
.lm-col-drag { margin-left: auto; color: var(--text-muted, #666); font-size: 10px; cursor: grab; }
.lm-col-panel-reset {
  margin-top: 6px; padding: 4px 0; text-align: center; cursor: pointer; font-size: 11px;
  color: var(--text-muted, #999); border-top: 1px solid var(--bg-border, #333);
}
.lm-col-panel-reset:hover { color: var(--accent, #e6a23c); }

/* 列配置按钮 */
.lm-cell-btn-cols { font-size: 11px; }

/* ============ v3.20 格子级紧凑显示 ============
   通达信 CEF81 无 Container Query；layout-engine.js 统一写入 lm-w-* 与 lm-h-*。
   只按模块列优先级收缩，不改变数据、排序、分页和接口。 */

/* 打板竞价：工具栏保持单行，窄格只隐藏低优先级列。 */
.lm-cell[data-mod-id="bidding"] .lm-cell-body { overflow: hidden; }
.lm-cell[data-mod-id="bidding"] .mb-filter-bar {
  overflow-x: auto;
  overflow-y: hidden;
  white-space: nowrap;
  scrollbar-width: none;
}
.lm-cell[data-mod-id="bidding"] .mb-filter-bar::-webkit-scrollbar { display: none; }
.lm-cell[data-mod-id="bidding"] .mb-filter-bar > * { flex-shrink: 0; }
.lm-cell[data-mod-id="bidding"].lm-w-md #mod-bidding th,
.lm-cell[data-mod-id="bidding"].lm-w-md #mod-bidding td,
.lm-cell[data-mod-id="bidding"].lm-w-sm #mod-bidding th,
.lm-cell[data-mod-id="bidding"].lm-w-sm #mod-bidding td,
.lm-cell[data-mod-id="bidding"].lm-w-xs #mod-bidding th,
.lm-cell[data-mod-id="bidding"].lm-w-xs #mod-bidding td { padding-left: 3px !important; padding-right: 3px !important; }
.lm-cell[data-mod-id="bidding"].lm-w-md .mb-table-scroll table { min-width: 640px !important; width: 100% !important; }
.lm-cell[data-mod-id="bidding"].lm-w-md .mb-view-bidding .mb-c0,
.lm-cell[data-mod-id="bidding"].lm-w-md .mb-view-bidding .mb-c10,
.lm-cell[data-mod-id="bidding"].lm-w-md .mb-view-bidding .mb-c11,
.lm-cell[data-mod-id="bidding"].lm-w-md .mb-view-bidding .mb-c13,
.lm-cell[data-mod-id="bidding"].lm-w-md .mb-view-bidding .mb-c14,
.lm-cell[data-mod-id="bidding"].lm-w-md .mb-view-bidding .mb-c15,
.lm-cell[data-mod-id="bidding"].lm-w-md .mb-view-tail .mb-c0,
.lm-cell[data-mod-id="bidding"].lm-w-md .mb-view-tail .mb-c11,
.lm-cell[data-mod-id="bidding"].lm-w-md .mb-view-tail .mb-c12,
.lm-cell[data-mod-id="bidding"].lm-w-md .mb-view-tail .mb-c14,
.lm-cell[data-mod-id="bidding"].lm-w-md .mb-view-compare .mb-c0,
.lm-cell[data-mod-id="bidding"].lm-w-md .mb-view-compare .mb-c9 { display: none; }

.lm-cell[data-mod-id="bidding"].lm-w-sm .mb-table-scroll table { min-width: 460px !important; width: 100% !important; }
.lm-cell[data-mod-id="bidding"].lm-w-sm .mb-view-bidding .mb-c0,
.lm-cell[data-mod-id="bidding"].lm-w-sm .mb-view-bidding .mb-c1,
.lm-cell[data-mod-id="bidding"].lm-w-sm .mb-view-bidding .mb-c6,
.lm-cell[data-mod-id="bidding"].lm-w-sm .mb-view-bidding .mb-c8,
.lm-cell[data-mod-id="bidding"].lm-w-sm .mb-view-bidding .mb-c10,
.lm-cell[data-mod-id="bidding"].lm-w-sm .mb-view-bidding .mb-c11,
.lm-cell[data-mod-id="bidding"].lm-w-sm .mb-view-bidding .mb-c13,
.lm-cell[data-mod-id="bidding"].lm-w-sm .mb-view-bidding .mb-c14,
.lm-cell[data-mod-id="bidding"].lm-w-sm .mb-view-bidding .mb-c15,
.lm-cell[data-mod-id="bidding"].lm-w-sm .mb-view-tail .mb-c0,
.lm-cell[data-mod-id="bidding"].lm-w-sm .mb-view-tail .mb-c1,
.lm-cell[data-mod-id="bidding"].lm-w-sm .mb-view-tail .mb-c4,
.lm-cell[data-mod-id="bidding"].lm-w-sm .mb-view-tail .mb-c8,
.lm-cell[data-mod-id="bidding"].lm-w-sm .mb-view-tail .mb-c9,
.lm-cell[data-mod-id="bidding"].lm-w-sm .mb-view-tail .mb-c11,
.lm-cell[data-mod-id="bidding"].lm-w-sm .mb-view-tail .mb-c12,
.lm-cell[data-mod-id="bidding"].lm-w-sm .mb-view-tail .mb-c13,
.lm-cell[data-mod-id="bidding"].lm-w-sm .mb-view-tail .mb-c14,
.lm-cell[data-mod-id="bidding"].lm-w-sm .mb-view-compare .mb-c0,
.lm-cell[data-mod-id="bidding"].lm-w-sm .mb-view-compare .mb-c1,
.lm-cell[data-mod-id="bidding"].lm-w-sm .mb-view-compare .mb-c9 { display: none; }
.lm-cell[data-mod-id="bidding"].lm-w-sm .mb-c2 { width: 58px; }
.lm-cell[data-mod-id="bidding"].lm-w-sm .mb-c3 { width: 46px; }
.lm-cell[data-mod-id="bidding"].lm-w-sm .mb-col-pct { width: 62px; }
.lm-cell[data-mod-id="bidding"].lm-w-sm .mb-col-money { width: 72px; }

.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-table-scroll table { min-width: 304px !important; width: 100% !important; }
.lm-cell[data-mod-id="bidding"].lm-w-xs #mod-bidding > .toolbar > span:last-child { max-width: 72px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-view-bidding .mb-c0,
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-view-bidding .mb-c1,
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-view-bidding .mb-c5,
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-view-bidding .mb-c6,
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-view-bidding .mb-c8,
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-view-bidding .mb-c9,
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-view-bidding .mb-c10,
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-view-bidding .mb-c11,
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-view-bidding .mb-c13,
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-view-bidding .mb-c14,
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-view-bidding .mb-c15,
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-view-tail .mb-c0,
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-view-tail .mb-c1,
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-view-tail .mb-c4,
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-view-tail .mb-c6,
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-view-tail .mb-c7,
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-view-tail .mb-c8,
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-view-tail .mb-c9,
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-view-tail .mb-c11,
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-view-tail .mb-c12,
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-view-tail .mb-c13,
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-view-tail .mb-c14,
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-view-compare .mb-c0,
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-view-compare .mb-c1,
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-view-compare .mb-c3,
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-view-compare .mb-c4,
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-view-compare .mb-c5,
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-view-compare .mb-c9 { display: none; }
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-c2 { width: 54px; }
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-c3 { width: 42px; }
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-col-pct { width: 56px; }
.lm-cell[data-mod-id="bidding"].lm-w-xs .mb-col-money { width: 68px; }

/* 完整天梯：涨停原因是核心决策信息；窄格优先牺牲金额列，保留原因。 */
.lm-cell[data-mod-id="ladder"] .lm-cell-body { overflow: hidden; }
.lm-cell[data-mod-id="ladder"].lm-w-md .ml-col-reason,
.lm-cell[data-mod-id="ladder"].lm-w-sm .ml-col-reason { display: table-column; }
.lm-cell[data-mod-id="ladder"].lm-w-md .ml-col-reason { width: calc(100% - 338px) !important; }
.lm-cell[data-mod-id="ladder"].lm-w-sm .ml-col-reason { width: calc(100% - 240px) !important; }
.lm-cell[data-mod-id="ladder"].lm-w-md .ml-th-reason,
.lm-cell[data-mod-id="ladder"].lm-w-md .ml-td-reason,
.lm-cell[data-mod-id="ladder"].lm-w-md .ml-th-main,
.lm-cell[data-mod-id="ladder"].lm-w-md .ml-td-main,
.lm-cell[data-mod-id="ladder"].lm-w-sm .ml-th-reason,
.lm-cell[data-mod-id="ladder"].lm-w-sm .ml-td-reason { display: table-cell; }
.lm-cell[data-mod-id="ladder"].lm-w-sm .ml-col-amount,
.lm-cell[data-mod-id="ladder"].lm-w-sm .ml-col-main,
.lm-cell[data-mod-id="ladder"].lm-w-xs .ml-col-reason,
.lm-cell[data-mod-id="ladder"].lm-w-xs .ml-col-main,
.lm-cell[data-mod-id="ladder"].lm-w-xs .ml-col-amount,
.lm-cell[data-mod-id="ladder"].lm-w-xs .ml-col-seal {
  display: table-column;
  visibility: collapse;
  width: 0 !important;
}
.lm-cell[data-mod-id="ladder"].lm-w-sm .ml-th-amount,
.lm-cell[data-mod-id="ladder"].lm-w-sm .ml-th-main,
.lm-cell[data-mod-id="ladder"].lm-w-sm .ml-td-amount,
.lm-cell[data-mod-id="ladder"].lm-w-sm .ml-td-main,
.lm-cell[data-mod-id="ladder"].lm-w-xs .ml-th-reason,
.lm-cell[data-mod-id="ladder"].lm-w-xs .ml-th-main,
.lm-cell[data-mod-id="ladder"].lm-w-xs .ml-th-amount,
.lm-cell[data-mod-id="ladder"].lm-w-xs .ml-th-seal,
.lm-cell[data-mod-id="ladder"].lm-w-xs .ml-td-reason,
.lm-cell[data-mod-id="ladder"].lm-w-xs .ml-td-main,
.lm-cell[data-mod-id="ladder"].lm-w-xs .ml-td-amount,
.lm-cell[data-mod-id="ladder"].lm-w-xs .ml-td-seal { display: table-cell; }
.lm-cell[data-mod-id="ladder"].lm-w-sm .ml-toolbar,
.lm-cell[data-mod-id="ladder"].lm-w-xs .ml-toolbar { padding-left: 5px !important; padding-right: 5px !important; gap: 5px !important; }
.lm-cell[data-mod-id="ladder"].lm-w-sm .ml-header-stats,
.lm-cell[data-mod-id="ladder"].lm-w-xs .ml-header-stats { gap: 5px !important; }
.lm-cell[data-mod-id="ladder"].lm-w-sm .ml-header-stats .ml-stat-chip:nth-child(n+4),
.lm-cell[data-mod-id="ladder"].lm-w-sm .ml-mood-badge,
.lm-cell[data-mod-id="ladder"].lm-w-xs .ml-header-date,
.lm-cell[data-mod-id="ladder"].lm-w-xs .ml-header-stats .ml-stat-chip:nth-child(n+3),
.lm-cell[data-mod-id="ladder"].lm-w-xs .ml-mood-badge { display: none; }
.lm-cell[data-mod-id="ladder"].lm-w-xs .ml-sc-label { display: none; }
.lm-cell[data-mod-id="ladder"].lm-w-xs .ml-td-plate { width: 62px !important; padding-left: 3px !important; padding-right: 3px !important; }
.lm-cell[data-mod-id="ladder"].lm-w-xs .ml-col-plate { width: 62px !important; }

/* 问财：动态指标按返回顺序保留，查询相关字段始终排在前面。 */
.lm-cell[data-mod-id="wencaiPick"] .lm-cell-body { overflow: hidden; }
.lm-cell[data-mod-id="wencaiPick"].lm-w-md .wc-table { width: 730px !important; min-width: 730px !important; }
.lm-cell[data-mod-id="wencaiPick"].lm-w-md .wc-dyn-col { display: none; }
.lm-cell[data-mod-id="wencaiPick"].lm-w-md .wc-dyn-0,
.lm-cell[data-mod-id="wencaiPick"].lm-w-md .wc-dyn-1,
.lm-cell[data-mod-id="wencaiPick"].lm-w-md .wc-dyn-2,
.lm-cell[data-mod-id="wencaiPick"].lm-w-md .wc-dyn-3,
.lm-cell[data-mod-id="wencaiPick"].lm-w-md .wc-dyn-4 { display: table-cell; }

.lm-cell[data-mod-id="wencaiPick"].lm-w-sm .wc-table { width: 470px !important; min-width: 470px !important; }
.lm-cell[data-mod-id="wencaiPick"].lm-w-sm .wc-table .mb-col-idx,
.lm-cell[data-mod-id="wencaiPick"].lm-w-sm .wc-table .mb-col-sector,
.lm-cell[data-mod-id="wencaiPick"].lm-w-sm .wc-dyn-col { display: none; }
.lm-cell[data-mod-id="wencaiPick"].lm-w-sm .wc-dyn-0,
.lm-cell[data-mod-id="wencaiPick"].lm-w-sm .wc-dyn-1,
.lm-cell[data-mod-id="wencaiPick"].lm-w-sm .wc-dyn-2 { display: table-cell; }
.lm-cell[data-mod-id="wencaiPick"].lm-w-sm .wc-table th.mb-col-name,
.lm-cell[data-mod-id="wencaiPick"].lm-w-sm .wc-table td.mb-col-name { left: 20px; }
.lm-cell[data-mod-id="wencaiPick"].lm-w-sm .wc-table th.mb-col-code,
.lm-cell[data-mod-id="wencaiPick"].lm-w-sm .wc-table td.mb-col-code { left: 112px; }

.lm-cell[data-mod-id="wencaiPick"].lm-w-xs .wc-toolbar-hint,
.lm-cell[data-mod-id="wencaiPick"].lm-w-xs .wc-meta-query,
.lm-cell[data-mod-id="wencaiPick"].lm-w-xs .wc-kpis { display: none; }
.lm-cell[data-mod-id="wencaiPick"].lm-w-xs .wc-table { width: 300px !important; min-width: 300px !important; }
.lm-cell[data-mod-id="wencaiPick"].lm-w-xs .wc-table .mb-col-idx,
.lm-cell[data-mod-id="wencaiPick"].lm-w-xs .wc-table .mb-col-code,
.lm-cell[data-mod-id="wencaiPick"].lm-w-xs .wc-table .mb-col-sector,
.lm-cell[data-mod-id="wencaiPick"].lm-w-xs .wc-dyn-col { display: none; }
.lm-cell[data-mod-id="wencaiPick"].lm-w-xs .wc-dyn-0,
.lm-cell[data-mod-id="wencaiPick"].lm-w-xs .wc-dyn-1 { display: table-cell; }
.lm-cell[data-mod-id="wencaiPick"].lm-w-xs .wc-table .mb-col-name { width: 84px; }
.lm-cell[data-mod-id="wencaiPick"].lm-w-xs .wc-table th.mb-col-name,
.lm-cell[data-mod-id="wencaiPick"].lm-w-xs .wc-table td.mb-col-name { left: 20px; border-right: 1px solid var(--bg-border); }

/* 盘后涨停表：用显式列类处理 rowspan 板块列，避免 nth-child 错位。 */
.lm-cell[data-mod-id="replayTable"] .lm-cell-body { overflow: hidden; }
.lm-cell[data-mod-id="replayTable"].lm-w-md .rt-col-amount,
.lm-cell[data-mod-id="replayTable"].lm-w-sm .rt-col-seal,
.lm-cell[data-mod-id="replayTable"].lm-w-sm .rt-col-amount,
.lm-cell[data-mod-id="replayTable"].lm-w-sm .rt-col-reason,
.lm-cell[data-mod-id="replayTable"].lm-w-sm .rt-col-plate,
.lm-cell[data-mod-id="replayTable"].lm-w-xs .rt-col-rank,
.lm-cell[data-mod-id="replayTable"].lm-w-xs .rt-col-time,
.lm-cell[data-mod-id="replayTable"].lm-w-xs .rt-col-seal,
.lm-cell[data-mod-id="replayTable"].lm-w-xs .rt-col-amount,
.lm-cell[data-mod-id="replayTable"].lm-w-xs .rt-col-reason,
.lm-cell[data-mod-id="replayTable"].lm-w-xs .rt-col-plate { display: none; }
.lm-cell[data-mod-id="replayTable"].lm-w-sm .rp-topbar,
.lm-cell[data-mod-id="replayTable"].lm-w-xs .rp-topbar { padding-left: 5px; padding-right: 5px; overflow-x: auto; overflow-y: hidden; white-space: nowrap; }
.lm-cell[data-mod-id="replayTable"].lm-w-sm .zt-toolbar-sub,
.lm-cell[data-mod-id="replayTable"].lm-w-xs .zt-toolbar-sub,
.lm-cell[data-mod-id="replayTable"].lm-w-xs .rp-top-title { display: none; }
.lm-cell[data-mod-id="replayTable"].lm-w-sm .rp-top-left,
.lm-cell[data-mod-id="replayTable"].lm-w-xs .rp-top-left { gap: 4px; }
.lm-cell[data-mod-id="replayTable"].lm-w-xs .ws-sub-title { padding-top: 2px; padding-bottom: 2px; }

/* 超矮情绪格压成单行，避免默认布局里标题占掉全部高度。 */
.lm-cell[data-mod-id="emotion"].lm-h-xs .lm-cell-body > div {
  padding: 2px 6px !important;
  overflow: hidden !important;
  display: flex;
  align-items: center;
}
.lm-cell[data-mod-id="emotion"].lm-h-xs .lm-cell-body > div > div:first-child { display: none; }
.lm-cell[data-mod-id="emotion"].lm-h-xs .lm-cell-body > div > div:nth-child(2) { display: flex !important; flex-wrap: nowrap !important; gap: 8px !important; overflow: hidden; white-space: nowrap; }
.lm-cell[data-mod-id="emotion"].lm-h-xs .lm-cell-body > div > div:nth-child(2) > div:nth-child(n+5) { display: none; }

/* 超矮资讯卡切换为摘要态，避免在 57/80px 格子中滚动长列表。 */
.lm-cell[data-mod-id="tomorrow"].lm-h-xs .tmr-card { padding: 3px 5px !important; overflow: hidden !important; display: flex; flex-direction: column; }
.lm-cell[data-mod-id="tomorrow"].lm-h-xs .tmr-title { margin-bottom: 2px !important; font-size: 11px !important; line-height: 14px; }
.lm-cell[data-mod-id="tomorrow"].lm-h-xs .tmr-list { overflow: hidden !important; min-height: 0; }
.lm-cell[data-mod-id="tomorrow"].lm-h-xs .tmr-day { padding: 0 !important; }
.lm-cell[data-mod-id="tomorrow"].lm-h-xs .tmr-day-label { display: none; }
.lm-cell[data-mod-id="tomorrow"].lm-h-xs .tmr-item { padding: 2px 4px !important; margin: 1px 0 !important; font-size: 10px !important; align-items: center !important; }
.lm-cell[data-mod-id="tomorrow"].lm-h-xs .tmr-item-title { line-height: 13px !important; -webkit-line-clamp: 1 !important; white-space: nowrap; text-overflow: ellipsis; }
.lm-cell[data-mod-id="tomorrow"].lm-h-xs .tmr-item-meta { flex-direction: row !important; gap: 1px !important; margin-left: 4px !important; }
.lm-cell[data-mod-id="tomorrow"].lm-h-xs .tmr-day > .tmr-item:nth-child(n+4) { display: none !important; }

.lm-cell[data-mod-id="themeTop"].lm-h-xs .theme-top-card { padding: 3px 6px !important; overflow: hidden !important; display: flex; align-items: center; gap: 8px; }
.lm-cell[data-mod-id="themeTop"].lm-h-xs .theme-top-title { margin: 0 !important; font-size: 11px !important; flex-shrink: 0; }
.lm-cell[data-mod-id="themeTop"].lm-h-xs .theme-top-row { min-width: 0; flex: 1; padding: 0 !important; border: 0 !important; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lm-cell[data-mod-id="themeTop"].lm-h-xs .theme-top-row:nth-child(n+5) { display: none; }


/* ============ v3 细滚动条：低存在感，hover 更易拖 ============ */
.lm-viewport,
.lm-cell-body,
.lm-mod-picker,
.lm-col-panel,
.rp-layout-v3,
.rp-layout-v3 * {
  scrollbar-width: thin;
  scrollbar-color: rgba(115, 124, 140, .38) transparent;
}
.lm-viewport::-webkit-scrollbar,
.lm-cell-body::-webkit-scrollbar,
.lm-mod-picker::-webkit-scrollbar,
.lm-col-panel::-webkit-scrollbar,
.rp-layout-v3::-webkit-scrollbar,
.rp-layout-v3 *::-webkit-scrollbar {
  width: 5px;
  height: 5px;
}
.lm-viewport::-webkit-scrollbar-track,
.lm-cell-body::-webkit-scrollbar-track,
.lm-mod-picker::-webkit-scrollbar-track,
.lm-col-panel::-webkit-scrollbar-track,
.rp-layout-v3::-webkit-scrollbar-track,
.rp-layout-v3 *::-webkit-scrollbar-track {
  background: transparent;
}
.lm-viewport::-webkit-scrollbar-thumb,
.lm-cell-body::-webkit-scrollbar-thumb,
.lm-mod-picker::-webkit-scrollbar-thumb,
.lm-col-panel::-webkit-scrollbar-thumb,
.rp-layout-v3::-webkit-scrollbar-thumb,
.rp-layout-v3 *::-webkit-scrollbar-thumb {
  background: rgba(115, 124, 140, .28);
  border-radius: 6px;
}
.lm-viewport:hover::-webkit-scrollbar-thumb,
.lm-cell-body:hover::-webkit-scrollbar-thumb,
.lm-mod-picker:hover::-webkit-scrollbar-thumb,
.lm-col-panel:hover::-webkit-scrollbar-thumb,
.rp-layout-v3:hover::-webkit-scrollbar-thumb,
.rp-layout-v3 *:hover::-webkit-scrollbar-thumb {
  background: rgba(150, 160, 180, .58);
}
/* CSS Document */

