
.crow{display:flex;gap:6px;align-items:center;margin-bottom:8px;flex-wrap:wrap;font-size:13px;cursor:grab;border:1px dashed transparent;border-radius:var(--radius-sm);padding:4px 6px}
.crow:hover{border-color:var(--card-border);background:var(--bg-soft)}
.crow.drag{opacity:.4;border-color:var(--accent);cursor:grabbing}
.crow.drag-over{border-top:2px solid var(--accent)}
.crow .del{color:var(--up);cursor:pointer;border:none;background:none;font-size:16px;padding:0 6px}
.drag-handle{color:var(--text-3);font-size:14px;user-select:none;padding:0 4px}
.mode{display:flex;gap:16px;align-items:center;font-size:13px;color:var(--text-2);margin:10px 0;flex-wrap:wrap}
.mode label{display:flex;gap:4px;align-items:center;cursor:pointer}
#btnRun{background:var(--accent);color:var(--accent-fg);border:none;padding:8px 26px;border-radius:var(--radius-sm);font-size:14px;cursor:pointer}
#btnRun:hover{background:var(--accent-hover)}
.btn.mini{background:var(--btn-bg);color:var(--text-2);border:1px solid var(--btn-border);border-radius:var(--radius-sm);padding:6px 12px;font-size:12px;cursor:pointer}
.btn.mini:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}
.tmpl{display:inline-block;margin:0 8px 8px 0;padding:5px 14px;background:var(--accent-soft);color:var(--accent);border:1px solid var(--card-border);border-radius:20px;font-size:12px;cursor:pointer}
.tmpl:hover{background:var(--accent);color:var(--accent-fg)}
#fErr{color:var(--up);font-size:12px;margin-left:10px}
#formulaInput{flex:1;min-width:340px;padding:8px 10px;border:1px solid var(--input-border);border-radius:var(--radius-sm);font-size:13px;font-family:Consolas,monospace;box-sizing:border-box;background:var(--input-bg);color:var(--text)}
#fHint{color:var(--text-3);font-size:12px;margin-top:6px;line-height:1.7}
#resInfo{font-size:13px;color:var(--text-2)}
th.sortable{cursor:pointer;user-select:none}
th.sortable:hover{background:var(--accent-soft)}
th.col-drag{opacity:.45;border-top:2px solid var(--accent)}
th.col-drop-l{border-left:3px solid var(--accent)}
th.col-drop-r{border-right:3px solid var(--accent)}
.num{text-align:right;font-family:Consolas,monospace}
.pg{display:flex;gap:8px;align-items:center;margin-top:12px;font-size:13px}
.pg a{color:var(--accent);text-decoration:none;padding:4px 12px;background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-sm);cursor:pointer}
.pg a:hover{background:var(--accent-soft)}
.pg span{color:var(--text-2)}
.fsel{position:relative;display:inline-block}
.fsel-btn{background:var(--input-bg);border:1px solid var(--input-border);color:var(--text);border-radius:var(--radius-sm);padding:6px 10px;font-size:13px;cursor:pointer;min-width:130px;text-align:left}
.fsel-btn:hover{border-color:var(--accent)}
.fsel-panel{position:absolute;top:100%;left:0;z-index:99;background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);width:300px;margin-top:2px;display:flex;flex-direction:column}
.fsel-q{padding:7px 10px;border:none;border-bottom:1px solid var(--card-border);background:var(--bg-soft);color:var(--text);font-size:13px;outline:none}
.fsel-list{overflow-y:auto;max-height:320px}
.fsel-cat{font-size:11px;color:var(--text-3);padding:6px 10px 2px;font-weight:bold}
.fsel-item{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;cursor:pointer;font-size:13px}
.fsel-item:hover{background:var(--accent-soft)}
.fsel-star{cursor:pointer;color:var(--text-3);padding-left:10px;font-size:14px}
.fsel-star.on{color:#e6a23c}
.opf .op-btn{min-width:96px;text-align:left}
.opf .op-panel{width:132px}
.opf .op-panel .fsel-list{max-height:none}
.logic-btn{background:var(--input-bg);border:1px solid var(--input-border);color:var(--text);border-radius:var(--radius-sm);padding:6px 10px;font-size:13px;cursor:pointer;min-width:48px;text-align:center}
.logic-btn:hover{border-color:var(--accent);color:var(--accent)}
.logic-btn:disabled,.logic-btn.locked{opacity:.55;cursor:not-allowed}
.collapse-head{display:flex;justify-content:space-between;align-items:center;cursor:pointer;user-select:none}
.collapse-head .arrow{color:var(--text-3);font-size:12px}
.pop{position:relative;display:inline-block}
.pop-panel{position:absolute;top:100%;left:0;z-index:99;background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);margin-top:4px;padding:10px;min-width:420px}
.col-item{display:inline-block;width:31%;padding:3px 4px;font-size:12px;color:var(--text-2);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plan-item{display:flex;justify-content:space-between;align-items:center;padding:6px 4px;border-bottom:1px solid var(--card-border);font-size:13px}
.plan-item .ops a{color:var(--accent);margin-left:10px;cursor:pointer;font-size:12px}
.ret-table{font-size:12px}
#btBox{margin-top:10px}
/* 结果表格紧凑化（2026-09-04：theme 全局 13px+指标卡 .num 24px 误伤数据格→压到 11px 数据密度） */
/* width:max-content+min-width:100%：表格按内容宽排（用户调列宽才生效），不满容器时撑满，超宽横向滚动 */
#tblWrap table{font-size:12px;line-height:1.45;width:max-content;min-width:100%}
#tblWrap th{font-size:12px;position:relative;height:26px;padding:0;white-space:nowrap;border-right:1px solid var(--card-border);overflow:hidden}
#tblWrap td{font-size:12px;padding:2px 6px;white-space:nowrap;height:22px}
#tblWrap td.num{font-size:11px;font-weight:normal;color:inherit}
#tblWrap th.sortable{font-size:12px}
/* 表头文字=绝对定位层：不参与列宽计算→列宽可拖到极小（文字截断显示…）；数据格文字 inline 层保留内容自适应 */
#tblWrap .th-txt{position:absolute;left:6px;right:24px;top:0;bottom:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center}
#tblWrap .th-arrow{position:absolute;right:13px;top:0;bottom:0;display:flex;align-items:center;font-size:11px;color:var(--text-3)}
#tblWrap .td-txt{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}
#tblWrap td a.t{text-decoration:none;color:var(--accent)}
#fScore{padding:5px 6px;border:1px solid var(--input-border);border-radius:var(--radius-sm);background:var(--input-bg);color:var(--text);font-size:12px}
/* 列宽调整=表头右缘可视分隔带(10px)：鼠标移上高亮=按住拖宽；表头中间按住=拖列序；单击=排序 */
#tblWrap th{position:relative}
#tblWrap .col-resizer{position:absolute;right:0;top:0;bottom:0;width:10px;cursor:col-resize;user-select:none;z-index:5}
#tblWrap .col-resizer:hover,#tblWrap .col-resizer.active{background:var(--accent);opacity:.25}
/* ===== 三期② 选股器×游资挂钩：游资列徽章（2026-09-11 v3 计数标识） =====
   ⛔ 只显"游资N/⚠拉萨"短标识防长名号撑乱列宽；细节全在 hover 浮层
   ⛔ 窄列显示策略（2026-09-11 二修）：td 像素 max-width clamp 锁列宽防反弹；
      徽章容器 flex-wrap 窄列自动换行堆叠 → ⚠拉萨 永远可见（勿 overflow:hidden 裁切，
      会把它挤出可视区）；行高随徽章行数自适应 */
#tblWrap td.yzcol{white-space:normal}
#tblWrap td.yzcol .stk-yz-row{display:flex;flex-wrap:wrap;gap:3px;vertical-align:middle;justify-content:flex-start}
.stk-yz{display:inline-flex;align-items:center;font-size:10px;line-height:1.5;padding:0 7px;border-radius:9px;
        background:var(--accent-soft);color:var(--accent);cursor:pointer;white-space:nowrap;border:1px solid transparent}
.stk-yz:hover{background:var(--accent);color:var(--accent-fg)}
.stk-yz.lasa{background:rgba(217,48,38,.13);color:var(--up);border-color:rgba(217,48,38,.30)}
.stk-yz.lasa:hover{background:var(--up);color:#fff;border-color:var(--up)}
