/* MX 平台大V实时观点——交易终端风格用户页；跟随全局主题（html.theme-dark 切换明暗两套变量） */
.mxv-root{--mxv-bg:#eef1f8;--mxv-panel:#ffffff;--mxv-card:#f6f8fd;
  --mxv-soft:#e9eef9;--mxv-soft-line:#ccd6ec;--mxv-line:#d9e1f2;--mxv-sep:#e3e9f5;
  --mxv-rail:#d4dded;--mxv-tick:#a8b8d8;--mxv-hover:#eaf0fb;--mxv-btn-line:#b7c6e8;
  --mxv-strong:#17203a;--mxv-text:#2a3550;--mxv-muted:#55648a;--mxv-faint:#8b98b8;
  --mxv-accent:#2e6bff;--mxv-accent-deep:#1f4fd6;
  --mxv-bull:#d8384f;--mxv-bull-deep:#a02538;--mxv-bull-soft:#fcedee;--mxv-bull-line:#f0bcc2;--mxv-bull-text:#c22a40;
  --mxv-bear:#0ca678;--mxv-bear-deep:#0b7d59;--mxv-bear-soft:#e2f6ee;--mxv-bear-line:#9adbc4;--mxv-bear-text:#067a56;
  --mxv-gold:#8a6d1a;--mxv-gold-soft:#faf0d7;
  --mxv-banner-bg:linear-gradient(100deg,#f3edff 0%,#e8f0ff 55%,#ffedf3 100%);
  --mxv-banner-line:#c9b8ec;--mxv-banner-shadow:0 0 14px rgba(91,58,138,.12);
  --mxv-drawer-line:#b7c9f2;--mxv-drawer-shadow:-8px 0 30px rgba(29,42,74,.15);
  background:var(--mxv-bg);color:var(--mxv-text);min-height:calc(100vh - 120px);
  padding:14px 16px 90px;font-size:14px;position:relative;}
/* 暗色终端一套（原配色不变） */
.theme-dark .mxv-root{--mxv-bg:#0b0f1a;--mxv-panel:#0f1626;--mxv-card:#101a2e;
  --mxv-soft:#101c33;--mxv-soft-line:#23375f;--mxv-line:#1e2a45;--mxv-sep:#16203a;
  --mxv-rail:#1a2a4d;--mxv-tick:#3a4c74;--mxv-hover:#131d33;--mxv-btn-line:#2a3f6e;
  --mxv-strong:#f2f6ff;--mxv-text:#c9d6f0;--mxv-muted:#8ea3c8;--mxv-faint:#4a5a78;
  --mxv-accent:#5b8cff;--mxv-accent-deep:#2e6bff;
  --mxv-bull:#ff5d6c;--mxv-bull-deep:#c2334a;--mxv-bull-soft:#2a1218;--mxv-bull-line:#5c2330;--mxv-bull-text:#ff8090;
  --mxv-bear:#2ee6a8;--mxv-bear-deep:#177a56;--mxv-bear-soft:#0f241d;--mxv-bear-line:#1d4a38;--mxv-bear-text:#5fe8bd;
  --mxv-gold:#ffd66b;--mxv-gold-soft:#241c0e;
  --mxv-banner-bg:linear-gradient(100deg,#1b1230 0%,#0e1a33 55%,#301324 100%);
  --mxv-banner-line:#5b3a8a;--mxv-banner-shadow:0 0 18px rgba(91,58,138,.35);
  --mxv-drawer-line:#2e4a8a;--mxv-drawer-shadow:-8px 0 30px rgba(0,0,0,.6);}
.mxv-root *{box-sizing:border-box;}
.mxv-statusbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px;}
.mxv-pill{background:var(--mxv-soft);border:1px solid var(--mxv-soft-line);border-radius:6px;padding:3px 10px;
  font-size:12px;color:var(--mxv-muted);}
.mxv-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:5px;}
.mxv-dot.live{background:var(--mxv-bear);animation:mxvBreath 2s ease-in-out infinite;}
.mxv-dot.off{background:var(--mxv-faint);}
.mxv-dot.sse{background:var(--mxv-faint);}
.mxv-dot.sse.on{background:var(--mxv-accent);box-shadow:0 0 6px rgba(91,140,255,.8);}
@keyframes mxvBreath{0%,100%{opacity:.4}50%{opacity:1}}
@keyframes mxvFlashIn{from{opacity:0;transform:translateY(-6px);background:rgba(91,140,255,.18)}to{opacity:1;transform:none}}
.mxv-timeline{background:var(--mxv-panel);border:1px solid var(--mxv-line);border-radius:10px;
  padding:10px 14px;margin-bottom:12px;user-select:none;}
.mxv-tl-track{position:relative;height:40px;touch-action:none;cursor:pointer;flex:1;min-width:0;}
.mxv-tl-track:active{cursor:grabbing;}
.mxv-tl-rail{position:absolute;top:16px;left:0;right:0;height:3px;background:var(--mxv-rail);border-radius:2px;}
.mxv-tl-done{position:absolute;top:16px;height:3px;border-radius:2px;
  background:linear-gradient(90deg,var(--mxv-accent-deep),var(--mxv-accent));box-shadow:0 0 8px rgba(91,140,255,.6);}
/* 1px 可见刻度 + 8px 透明热区（background-clip:content-box），移动端也点得中 */
.mxv-tl-tick{position:absolute;top:12px;width:9px;height:9px;margin-left:-4px;
  background-color:var(--mxv-tick);background-clip:content-box;padding:0 4px;cursor:pointer;}
.mxv-tl-tick:hover{background-color:var(--mxv-accent);}
.mxv-tl-tick.special{top:8px;height:13px;background-color:var(--mxv-gold);}
.mxv-tl-head{position:absolute;top:2px;transform:translateX(-50%);text-align:center;cursor:pointer;}
.mxv-tl-head .t{background:linear-gradient(90deg,var(--mxv-accent),var(--mxv-accent-deep));color:#fff;border-radius:5px;
  padding:1px 8px;font-size:12px;white-space:nowrap;box-shadow:0 0 10px rgba(91,140,255,.8);}
.mxv-tl-head .s{width:2px;height:10px;background:var(--mxv-accent);margin:0 auto;box-shadow:0 0 6px var(--mxv-accent);}
.mxv-tl-label{position:absolute;top:26px;transform:translateX(-50%);font-size:9px;
  color:var(--mxv-faint);white-space:nowrap;pointer-events:none;font-variant-numeric:tabular-nums;}
.mxv-tl-label.special{color:var(--mxv-gold);}
.mxv-tl-meta{display:flex;gap:10px;margin-top:6px;font-size:12px;color:var(--mxv-faint);flex-wrap:wrap;}
.mxv-btn{background:var(--mxv-rail);border:1px solid var(--mxv-btn-line);color:var(--mxv-strong);border-radius:6px;padding:3px 10px;
  cursor:pointer;font-size:12px;}
.mxv-btn:hover{border-color:var(--mxv-accent);}
.mxv-btn.latest{background:var(--mxv-bear-soft);border-color:var(--mxv-bear-line);color:var(--mxv-bear);}
.mxv-btn.latest.has-new{animation:mxvBreath 1.2s infinite;}
/* 交易日月历选择器：日期按钮弹出，居中于状态栏下方；主题色走 --mxv-* 变量 */
.mxv-day-btn{font-variant-numeric:tabular-nums;}
.mxv-cal{position:absolute;top:46px;left:50%;transform:translateX(-50%);z-index:80;
  width:288px;max-width:calc(100vw - 32px);background:var(--mxv-panel);border:1px solid var(--mxv-line);
  border-radius:12px;padding:12px;box-shadow:0 10px 30px rgba(0,0,0,.25);}
.mxv-cal .cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.mxv-cal .cal-head b{color:var(--mxv-strong);font-size:14px;font-variant-numeric:tabular-nums;}
.mxv-cal .nav{background:none;border:1px solid var(--mxv-btn-line);color:var(--mxv-muted);border-radius:6px;
  width:26px;height:26px;font-size:16px;line-height:1;cursor:pointer;}
.mxv-cal .nav:hover{border-color:var(--mxv-accent);color:var(--mxv-strong);}
.mxv-cal .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;}
.mxv-cal .cal-w{color:var(--mxv-faint);font-size:11px;text-align:center;padding:4px 0;}
.mxv-cal .cal-d{background:none;border:1px solid transparent;border-radius:8px;color:var(--mxv-faint);
  font-size:13px;padding:6px 0;cursor:default;font-variant-numeric:tabular-nums;}
.mxv-cal .cal-d.out{opacity:.45;}
.mxv-cal .cal-d.today{border-color:var(--mxv-btn-line);}
.mxv-cal .cal-d.has{color:var(--mxv-strong);cursor:pointer;}
.mxv-cal .cal-d.has:hover{background:var(--mxv-hover);border-color:var(--mxv-accent);}
.mxv-cal .cal-d.sel{background:linear-gradient(90deg,var(--mxv-accent),var(--mxv-accent-deep));color:#fff;font-weight:700;}
.mxv-cal .cal-d.sel:hover{background:linear-gradient(90deg,var(--mxv-accent),var(--mxv-accent-deep));border-color:transparent;}
.mxv-cal .cal-tip{margin-top:8px;color:var(--mxv-faint);font-size:11px;text-align:center;}
.mxv-banner{background:var(--mxv-banner-bg);
  border:1px solid var(--mxv-banner-line);border-radius:12px;padding:12px 16px;margin-bottom:12px;
  box-shadow:var(--mxv-banner-shadow);}
.mxv-banner .text{color:var(--mxv-strong);line-height:1.8;font-size:15px;}
.mxv-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;}
.mxv-chip{border-radius:20px;padding:2px 10px;font-size:12px;cursor:pointer;border:1px solid;}
.mxv-chip.bull{background:var(--mxv-bull-soft);border-color:var(--mxv-bull-line);color:var(--mxv-bull-text);}
.mxv-chip.bear{background:var(--mxv-bear-soft);border-color:var(--mxv-bear-line);color:var(--mxv-bear-text);}
.mxv-chip.neutral{background:var(--mxv-soft);border-color:var(--mxv-soft-line);color:var(--mxv-muted);}
.mxv-boards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;}
@media (max-width:900px){.mxv-boards{grid-template-columns:1fr;}}
.mxv-board{background:var(--mxv-panel);border:1px solid var(--mxv-line);border-radius:10px;padding:10px 12px;}
.mxv-board-head{display:flex;align-items:center;gap:10px;margin:0 0 6px;}
.mxv-board-head h3{margin:0;margin-right:auto;color:var(--mxv-accent);font-size:14px;}
.mxv-board-head .cnt{color:var(--mxv-faint);font-size:11px;font-weight:normal;margin-left:4px;font-variant-numeric:tabular-nums;}
.mxv-heat-legend{font-size:11px;color:var(--mxv-faint);margin:0 0 8px;}
/* 热力标签卡（两行）：上=名称+净多空，下=多中空迷你条、条上居中总数；颜色=净方向，深浅/字号=提及热度 */
.mxv-heat-wrap{display:flex;flex-wrap:wrap;gap:5px;align-items:stretch;}
.mxv-heat-wrap.clamped{overflow:hidden;}
.mxv-heat{display:inline-flex;flex-direction:column;justify-content:space-between;gap:3px;border-radius:8px;
  padding:5px 10px;cursor:pointer;min-width:76px;
  border:1px solid transparent;font-size:12px;line-height:1.5;position:relative;
  transition:transform .12s ease,box-shadow .12s ease;}
.mxv-heat:hover{transform:translateY(-1px);}
.mxv-heat .r1{display:flex;align-items:baseline;justify-content:space-between;gap:6px;white-space:nowrap;}
.mxv-heat b{font-size:10px;font-weight:600;font-variant-numeric:tabular-nums;opacity:.75;}
.mxv-heat .r2{position:relative;display:flex;height:9px;border-radius:4px;overflow:hidden;background:var(--mxv-rail);}
.mxv-heat .r2 i{flex:none;height:100%;}
.mxv-heat .r2 i.b{background:var(--mxv-bull);}
.mxv-heat .r2 i.n{background:var(--mxv-muted);}
.mxv-heat .r2 i.s{background:var(--mxv-bear);}
.mxv-heat .r2 em{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-style:normal;font-size:9px;font-weight:700;line-height:1;color:#fff;text-shadow:0 0 3px rgba(0,0,0,.55);}
.mxv-heat.bull{color:var(--mxv-bull-text);background:var(--mxv-bull-soft);border-color:var(--mxv-bull-line);}
.mxv-heat.bear{color:var(--mxv-bear-text);background:var(--mxv-bear-soft);border-color:var(--mxv-bear-line);}
.mxv-heat.neutral{color:var(--mxv-muted);background:var(--mxv-soft);border-color:var(--mxv-soft-line);}
.mxv-heat.h2{font-weight:600;}
.mxv-heat.h3,.mxv-heat.h4{font-weight:700;}
.mxv-heat.h4{font-size:13px;}
/* 热度档只用字号/字重区分：全档统一软底+描边，避免实底色与迷你条同色相撞、总数看不清 */
/* 联动高亮：热力块/明细行/今日操作 chip 被命中时描边放大 */
.mxv-heat.hl{box-shadow:0 0 0 2px var(--mxv-accent);transform:scale(1.08);z-index:1;}
.mxv-row.hl{background:var(--mxv-hover);box-shadow:inset 0 0 0 1px var(--mxv-accent);}
.mxv-chip.hl{box-shadow:0 0 0 2px var(--mxv-accent);transform:scale(1.06);}
.mxv-row{display:flex;align-items:center;gap:8px;padding:7px 4px;border-top:1px solid var(--mxv-sep);
  cursor:pointer;border-radius:6px;}
.mxv-row:hover{background:var(--mxv-hover);}
.mxv-row .rank{width:20px;color:var(--mxv-faint);font-size:12px;text-align:center;}
.mxv-row .name{width:88px;color:var(--mxv-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.mxv-ratio{flex:1;height:10px;border-radius:5px;overflow:hidden;display:flex;background:var(--mxv-rail);}
.mxv-ratio .b{background:linear-gradient(90deg,var(--mxv-bull-deep),var(--mxv-bull));}
.mxv-ratio .n{background:var(--mxv-muted);} /* 中段：中立大V，与文字「中」同色 */
.mxv-ratio .s{background:linear-gradient(90deg,var(--mxv-bear),var(--mxv-bear-deep));}
.mxv-net .neu{color:var(--mxv-muted);} /* 多/中/空 文字里的「中」与比例条中段同色 */
.mxv-net{width:88px;text-align:right;font-size:12px;}
.mxv-net.bull{color:var(--mxv-bull);}.mxv-net.bear{color:var(--mxv-bear);}.mxv-net.flat{color:var(--mxv-faint);}
.mxv-momo{width:30px;text-align:center;font-size:12px;}
.mxv-momo.up{color:var(--mxv-bull);}.mxv-momo.down{color:var(--mxv-bear);}.mxv-momo.flat{color:var(--mxv-faint);}
.mxv-actions{font-size:11px;color:var(--mxv-gold);}
/* 操作列定宽：长短不一的「买入×2」文字不挤压 flex:1 的比例条，保证每行红黄绿图与多/中/空列纵向对齐 */
.mxv-row .mxv-actions{width:96px;flex:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;}
/* 点击截断的操作列：换行展开全部，再点收回 */
.mxv-row .mxv-actions.open{white-space:normal;word-break:break-all;}
.mxv-latest-time{font-size:11px;color:var(--mxv-faint);width:38px;text-align:right;}
.mxv-feed,.mxv-kols{background:var(--mxv-panel);border:1px solid var(--mxv-line);border-radius:10px;
  padding:10px 12px;margin-bottom:12px;}
/* 观点流批内两列报纸流：左列顶部最新、右列底部最早；中缝细线；窄屏回落单列 */
.mxv-feed-cols{display:grid;grid-template-columns:1fr 1fr;column-gap:22px;position:relative;}
.mxv-feed-cols::before{content:"";position:absolute;top:4px;bottom:4px;left:50%;width:1px;background:var(--mxv-sep);}
.mxv-feed-cols.single{grid-template-columns:1fr;}
.mxv-feed-cols.single::before{display:none;}
.mxv-feed-col{min-width:0;}
@media (max-width:760px){
  .mxv-feed-cols{grid-template-columns:1fr;column-gap:0;}
  .mxv-feed-cols::before{display:none;}
}
/* 观点流行内网格列对齐：时间/多空/操作/标的/大V 定宽或限宽，正文占余宽——行行对齐不错开 */
.mxv-feed-item{display:grid;grid-template-columns:40px 46px 38px minmax(48px,78px) minmax(64px,100px) minmax(0,1fr);
  gap:8px;align-items:baseline;padding:5px 6px;margin:0 -6px;border-top:1px solid var(--mxv-sep);
  font-size:13px;border-radius:6px;position:relative;
  transition:background .15s ease,transform .15s ease,box-shadow .15s ease;}
.mxv-feed-col .mxv-feed-item:first-child{border-top:none;}
.mxv-feed-item .target,.mxv-feed-item [data-act="kol"]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.mxv-feed-item .mxv-badge{text-align:center;}
.mxv-feed-item .sum{min-width:0;}
/* 中窄屏：定宽列收窄，防名称列挤掉正文（minmax 上限会优先于 fr 膨胀） */
@media (max-width:1100px){
  .mxv-feed-item{grid-template-columns:36px 42px 34px minmax(40px,60px) minmax(52px,100px) minmax(0,1fr);}
}
/* 窄屏单列流：进一步压缩，徽章减内边距 */
@media (max-width:760px){
  .mxv-feed-item{grid-template-columns:32px 40px 30px minmax(32px,50px) minmax(42px,72px) minmax(0,1fr);gap:8px 4px;font-size:12px;}
  .mxv-feed-item .mxv-badge{padding:0 4px;}
}
/* 题材个股名/大V名可点开抽屉 */
.mxv-feed-item [data-act]{cursor:pointer;}
.mxv-feed-item [data-act]:hover{text-decoration:underline;text-underline-offset:2px;}
/* 标的联动高亮：整行淡底+描边并轻微放大，同标的在流内一眼成串 */
.mxv-feed-item.hl{background:var(--mxv-hover);box-shadow:inset 0 0 0 1px var(--mxv-accent);
  transform:scale(1.03);transform-origin:left center;z-index:1;}
.mxv-feed-item.hl .target{font-weight:700;}
.mxv-feed-item.fresh{animation:mxvFlashIn .8s ease;}
.mxv-feed-sep{display:flex;align-items:center;gap:10px;margin:10px 0 2px;color:var(--mxv-faint);
  font-size:11px;}
.mxv-feed-sep::before,.mxv-feed-sep::after{content:"";flex:1;height:1px;background:var(--mxv-sep);}
.mxv-feed-sep span{white-space:nowrap;}
.mxv-badge{border-radius:4px;padding:0 6px;font-size:11px;}
.mxv-badge.bull{background:var(--mxv-bull-soft);color:var(--mxv-bull);}
.mxv-badge.bear{background:var(--mxv-bear-soft);color:var(--mxv-bear);}
.mxv-badge.neutral{background:var(--mxv-soft);color:var(--mxv-muted);}
.mxv-badge.act{background:var(--mxv-gold-soft);color:var(--mxv-gold);}
.mxv-badge.flip{background:var(--mxv-soft);color:var(--mxv-accent);}
.mxv-badge.actchg{background:var(--mxv-soft);color:var(--mxv-muted);}
.mxv-sum-tag{display:inline-block;border-radius:4px;padding:0 5px;margin-right:6px;font-size:11px;
  background:var(--mxv-soft);color:var(--mxv-accent);vertical-align:baseline;}
.mxv-sum-tag.advice{color:var(--mxv-gold);}
.mxv-kols{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;}
/* 折叠只裁到单行：渐隐收窄到底部 10px（=卡片内边距），不再吃掉可见那行的最后一行标签 */
.mxv-kols.collapsed{overflow:hidden;
  -webkit-mask-image:linear-gradient(180deg,#000 calc(100% - 10px),transparent);mask-image:linear-gradient(180deg,#000 calc(100% - 10px),transparent);}
.mxv-kol-head{display:flex;align-items:center;gap:10px;margin:0 0 8px;}
.mxv-kol-head h3{margin:0;margin-right:auto;color:var(--mxv-accent);font-size:14px;}
.mxv-mode{display:inline-flex;border:1px solid var(--mxv-btn-line);border-radius:6px;overflow:hidden;}
.mxv-mode button{background:var(--mxv-soft);border:none;border-left:1px solid var(--mxv-btn-line);color:var(--mxv-muted);
  padding:3px 12px;font-size:12px;cursor:pointer;}
.mxv-mode button:first-child{border-left:none;}
.mxv-mode button.on{background:var(--mxv-rail);color:var(--mxv-strong);}
.mxv-more{background:none;border:none;color:var(--mxv-accent);
  cursor:pointer;font-size:12px;padding:3px 6px;white-space:nowrap;}
.mxv-board .mxv-more{display:block;margin:6px auto 0;} /* 双榜明细底部的更多/收起居中成块 */
.mxv-more[hidden]{display:none;}
.mxv-more:hover{color:var(--mxv-strong);}
.mxv-kolcard{background:var(--mxv-card);border:1px solid var(--mxv-line);border-radius:10px;padding:10px;
  cursor:pointer;display:flex;gap:10px;}
.mxv-kolcard:hover{border-color:var(--mxv-accent);}
.mxv-kolcard img,.mxv-kolcard .ava{width:36px;height:36px;border-radius:50%;background:var(--mxv-rail);flex:none;}
/* 头像右下角「持仓」角标按钮：大V总览/观点流大V卡片通用，点开预估持仓抽屉 */
.mxv-avawrap{position:relative;flex:none;}
.mxv-hold-btn{position:absolute;right:-5px;bottom:-4px;border:1px solid var(--mxv-btn-line);
  background:var(--mxv-panel);color:var(--mxv-muted);font-size:10px;line-height:1;
  border-radius:8px;padding:2px 4px;cursor:pointer;}
.mxv-hold-btn:hover{color:var(--mxv-accent);border-color:var(--mxv-accent);}
.mxv-hold-btn.inline{position:static;margin-left:auto;padding:2px 8px;font-size:11px;} /* 大V抽屉头部行内变体 */
.mxv-kolcard .n{color:var(--mxv-text);font-size:13px;}
.mxv-kolcard .fav{color:var(--mxv-gold);font-size:11px;margin-left:3px;}
.mxv-kolcard .mini{display:flex;height:5px;border-radius:3px;overflow:hidden;margin:5px 0;background:var(--mxv-rail);}
.mxv-kolcard .mini .b{background:var(--mxv-bull);}.mxv-kolcard .mini .s{background:var(--mxv-bear);}
.mxv-kolcard .mini .n{background:var(--mxv-muted);} /* 中性占比段，与明细比例条中段同色 */
.mxv-kolcard .tags{font-size:11px;color:var(--mxv-muted);line-height:1.6;}
.mxv-stockcard{background:var(--mxv-card);border:1px solid var(--mxv-line);border-radius:10px;padding:10px;cursor:pointer;}
.mxv-stockcard:hover{border-color:var(--mxv-accent);}
.mxv-stockcard .n{color:var(--mxv-text);font-size:13px;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;}
.mxv-stockcard .names{font-size:11px;color:var(--mxv-muted);line-height:1.7;margin-top:4px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
/* ---- 观点流筛选行：方向/操作词多选 chips + 大V多选下拉（搜索 + 复选）+ 重置 ---- */
.mxv-feed-filters{display:flex;flex-direction:column;gap:6px;align-items:flex-start;margin:0 0 8px;}
.mxv-fgroup{display:inline-flex;gap:6px;flex-wrap:wrap;align-items:center;}
.mxv-fgroup .lab{color:var(--mxv-faint);font-size:11px;margin-right:2px;flex:none;width:24px;}
.mxv-fchip{background:var(--mxv-soft);border:1px solid var(--mxv-soft-line);color:var(--mxv-muted);
  border-radius:20px;padding:2px 10px;font-size:12px;cursor:pointer;font-variant-numeric:tabular-nums;}
.mxv-fchip:hover{border-color:var(--mxv-accent);}
.mxv-fchip.on{background:var(--mxv-rail);border-color:var(--mxv-accent);color:var(--mxv-strong);}
.mxv-fchip.bull.on{background:var(--mxv-bull-soft);border-color:var(--mxv-bull-line);color:var(--mxv-bull-text);}
.mxv-fchip.bear.on{background:var(--mxv-bear-soft);border-color:var(--mxv-bear-line);color:var(--mxv-bear-text);}
.mxv-fchip.neutral.on{background:var(--mxv-soft);border-color:var(--mxv-soft-line);color:var(--mxv-text);}
.mxv-fchip.zero{opacity:.55;} /* 0 计数词：置灰但可点击，保证已选筛选总能取消 */
.mxv-fkol-wrap{position:relative;}
.mxv-fkol-panel{position:absolute;left:0;top:calc(100% + 4px);z-index:70;width:240px;max-width:calc(100vw - 40px);
  background:var(--mxv-panel);border:1px solid var(--mxv-line);border-radius:10px;padding:8px;
  box-shadow:0 10px 30px rgba(0,0,0,.25);}
.mxv-fkol-toolbar{display:flex;gap:6px;align-items:center;margin-bottom:6px;}
/* margin/min-height 必须显式归位：全局 .form-control 的 margin-bottom:16px 会在 align-items:center
   行里把输入框顶离中线（左侧标签贴底），移动端媒体查询的 min-height:44px 会压过 height:26px */
.mxv-fkol-toolbar .form-control{flex:1;min-width:0;height:26px;min-height:26px;margin:0;font-size:12px;padding:2px 8px;}
.mxv-fkol-list{max-height:260px;overflow-y:auto;}
.mxv-fkol-item{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:6px;cursor:pointer;
  font-size:12px;color:var(--mxv-text);}
.mxv-fkol-item:hover{background:var(--mxv-hover);}
.mxv-fkol-item.on{color:var(--mxv-strong);font-weight:600;}
.mxv-fkol-item input{cursor:pointer;}
.mxv-fkol-all{border-bottom:1px solid var(--mxv-sep);margin:0 0 2px;padding:5px 6px 7px;
  font-weight:600;color:var(--mxv-strong);}
.mxv-fkol-empty{color:var(--mxv-faint);text-align:center;padding:12px 0;font-size:12px;}
/* 搜索行：标的/大V名关键词输入，输入即筛选；规格对齐大V下拉内搜索框（26px 高）
   margin/min-height 归位原因同上（全局 form-control 边距与移动端 min-height 干扰） */
.mxv-fsearch-wrap{display:inline-flex;gap:6px;align-items:center;}
.mxv-fsearch{width:220px;max-width:60vw;height:26px;min-height:26px;margin:0;font-size:12px;padding:2px 10px;}
.mxv-drawer-mask{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:90;}
.mxv-drawer{position:fixed;top:0;right:0;bottom:0;width:min(640px,100%);background:var(--mxv-panel);
  border-left:2px solid var(--mxv-drawer-line);z-index:91;overflow-y:auto;padding:16px;
  /* 顶出状态栏高度（安卓 APP edge-to-edge 注入的 --safe-top / PWA env()），右上角 ✕ 不被状态栏压住 */
  padding-top:calc(16px + var(--safe-top, 0px));
  box-shadow:var(--mxv-drawer-shadow);}
@media (max-width:640px){.mxv-drawer{width:100%;}}
.mxv-drawer h3{margin:0;color:var(--mxv-strong);}
.mxv-drawer .close{float:right;background:none;border:none;color:var(--mxv-faint);font-size:20px;cursor:pointer;}
.mxv-op{border-top:1px solid var(--mxv-line);padding:10px 0;}
.mxv-op .head{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.mxv-op .ava{width:26px;height:26px;border-radius:50%;background:var(--mxv-rail);}
.mxv-op .who{color:var(--mxv-text);font-size:13px;}
.mxv-op .when{color:var(--mxv-faint);font-size:11px;margin-left:auto;}
.mxv-op .sum{margin:5px 0 0 34px;color:var(--mxv-muted);font-size:13px;}
.mxv-op-evidence{margin:6px 0 0 34px;}
.mxv-op-evidence summary{cursor:pointer;color:var(--mxv-accent);font-size:12px;}
.mxv-op-evidence .ev{background:var(--mxv-card);border:1px solid var(--mxv-line);border-radius:8px;
  padding:8px 10px;margin-top:6px;font-size:12px;color:var(--mxv-muted);}
.mxv-op-evidence .ev .c{color:var(--mxv-text);margin:4px 0;white-space:pre-wrap;}
.mxv-op-evidence .ev .raw{background:none;border:none;color:var(--mxv-accent);cursor:pointer;
  font-size:12px;padding:0;}
.mxv-empty{color:var(--mxv-faint);text-align:center;padding:30px 0;}

/* ================= 管理端设置页（admin/mx-views）=================
   走全局主题变量，不进 .mxv-root 暗色终端；前缀 mxva- 避免与页面样式冲突 */

/* 页头：标题 + 启用开关两端布局 */
.mxva-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;}
.mxva-switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;user-select:none;flex:none;}
.mxva-switch input{position:absolute;opacity:0;width:0;height:0;}
.mxva-switch-ui{width:44px;height:26px;border-radius:13px;background:var(--color-line);
  position:relative;transition:background .2s ease;flex:none;}
.mxva-switch-ui::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;
  border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .2s ease;}
.mxva-switch input:checked+.mxva-switch-ui{background:var(--color-accent);}
.mxva-switch input:checked+.mxva-switch-ui::after{transform:translateX(18px);}
.mxva-switch input:focus-visible+.mxva-switch-ui{outline:2px solid var(--color-accent-text);outline-offset:2px;}
.mxva-switch-text{font-weight:600;color:var(--color-text-strong);font-size:var(--text-body);}

/* 卡片网格 */
.mxva-grid{display:grid;gap:14px;}
.mxva-card{border:var(--border-default);border-radius:var(--radius-sm);padding:14px 16px;
  background:var(--color-surface-hover);}
.mxva-card-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap;}
.mxva-card-head b{font-size:var(--text-body);color:var(--color-text-strong);}
.mxva-card-head .muted{font-size:var(--text-xs);}
.mxva-head-ops{display:inline-flex;gap:8px;margin-left:auto;}
.mxva-note{color:var(--color-text-muted);font-size:var(--text-xs);margin:10px 0 0;line-height:1.6;}
.mxva-sub{display:flex;align-items:baseline;gap:8px;margin:14px 0 8px;font-size:var(--text-sm);}
.mxva-sub:first-child{margin-top:0;}
.mxva-sub .muted{font-size:var(--text-xs);}
.mxva-row-gap{margin-top:10px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.mxva-toolbar-wrap{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.mxva-warn{color:var(--color-danger);font-size:var(--text-xs);margin-top:6px;}

/* 快照时刻表：时段行 + 固定时刻 chips + 解析预览 */
.mxva-seg-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap;}
.mxva-seg-row .form-control{width:auto;min-width:118px;}
.mxva-seg-arrow{color:var(--color-text-muted);}
.mxva-seg-every{color:var(--color-text-muted);font-size:var(--text-sm);}
.mxva-seg-row select.form-control{min-width:104px;}
.mxva-extra-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.mxva-extra-row .form-control{width:118px;}
.mxva-preview-count{font-size:var(--text-sm);color:var(--color-text-strong);margin-bottom:8px;}
.mxva-time-chips{display:flex;gap:6px;flex-wrap:wrap;}
.mxva-time-chip{background:var(--color-accent-soft);color:var(--color-accent-text);
  border-radius:6px;padding:2px 8px;font-size:var(--text-xs);font-variant-numeric:tabular-nums;}
.mxva-time-chip.gold{background:var(--color-warn-soft,#faf0d7);color:#8a6d1a;}
.theme-dark .mxva-time-chip.gold{background:rgba(250,204,21,.15);color:#facc15;}

/* 研判参数 */
.mxva-param-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;}
.mxva-param{display:flex;flex-direction:column;gap:6px;font-size:var(--text-sm);
  color:var(--color-text-strong);font-weight:var(--font-weight-medium);}
.mxva-param input{max-width:160px;}
.mxva-param .muted{font-weight:normal;font-size:var(--text-xs);}

/* 标签（chips）编辑：题材参考表 / 固定时刻 / 候选 */
.mxva-chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center;}
.mxva-chips-wrap{margin-bottom:10px;}
.mxva-tag{display:inline-flex;align-items:center;gap:6px;background:var(--color-accent-soft);
  color:var(--color-text);border-radius:var(--radius-pill);padding:4px 6px 4px 12px;font-size:var(--text-sm);}
.mxva-tag .btn-sm{padding:0 8px;min-height:22px;line-height:20px;}
.mxva-tag-x{background:none;border:none;color:var(--color-text-muted);cursor:pointer;
  font-size:15px;line-height:1;padding:2px 4px;border-radius:50%;}
.mxva-tag-x:hover{color:var(--color-danger);background:var(--color-danger-soft);}
.mxva-chip-add{display:flex;gap:8px;align-items:center;}
.mxva-chip-add .form-control{max-width:280px;}

/* 大V范围下拉：基于 AI分析 的 ai-kol-dropdown 基础样式做定制 */
.mxva-kol-wrap{margin-bottom:2px;}
.mxva-kol-menu{grid-template-columns:1fr;}
.mxva-kol-menu.open{display:block;}
.mxva-kol-toolbar{display:flex;gap:8px;align-items:center;margin-bottom:10px;position:sticky;top:-12px;
  background:var(--color-surface);padding:4px 0;z-index:1;}
.mxva-kol-toolbar .form-control{flex:1;min-width:0;}
.mxva-kol-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
  gap:8px;max-height:340px;overflow-y:auto;}
.mxva-kol-items .ai-kol-item.disabled .ai-kol-name{color:var(--color-text-muted);}
.mxva-kol-items .ai-kol-item.disabled .ai-kol-platform{color:var(--color-danger);}
.mxva-kol-empty{grid-column:1/-1;color:var(--color-text-muted);text-align:center;padding:18px 0;}

/* 运行状态卡 */
.mxva-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:10px;}
.mxva-stat{border:var(--border-default);border-radius:var(--radius-sm);padding:8px 12px;
  display:flex;flex-direction:column;gap:2px;background:var(--color-surface);}
.mxva-stat .k{font-size:var(--text-xs);color:var(--color-text-muted);}
.mxva-stat .v{font-size:var(--text-body);font-weight:var(--font-weight-semibold);
  color:var(--color-text-strong);font-variant-numeric:tabular-nums;}
.mxva-stat.warn .v{color:var(--color-danger);}
.mxva-lastbatch{font-size:var(--text-sm);color:var(--color-text-muted);}
.mxva-lastbatch.warn b{color:var(--color-danger);}
.mxva-err{display:block;margin-top:4px;color:var(--color-danger);font-size:var(--text-xs);}
.mxva-bf-run{margin-top:10px;border-top:var(--border-default);padding-top:10px;}
.mxva-bf-run .row{display:flex;justify-content:space-between;align-items:center;gap:10px;
  font-size:var(--text-sm);margin-bottom:6px;}
.mxva-bf-bar{height:6px;border-radius:3px;background:var(--color-line);overflow:hidden;}
.mxva-bf-bar>div{height:100%;background:var(--brand-gradient);transition:width .4s ease;}

/* 保存栏：吸底随页面滚动 */
.mxva-savebar{position:sticky;bottom:12px;z-index:20;display:flex;align-items:center;gap:12px;
  margin-top:14px;padding:10px 16px;border:var(--border-default);border-radius:var(--radius-sm);
  background:var(--color-surface);box-shadow:var(--shadow-lg);}
.mxva-save-hint{flex:1;font-size:var(--text-sm);color:var(--color-text-muted);}
.mxva-save-hint.dirty{color:var(--color-accent-text);font-weight:var(--font-weight-semibold);}

/* 提示词编辑区 */
.mxva-prompt-section{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px;}
.mxva-prompt-area{width:100%;resize:vertical;font-family:var(--font-mono,monospace);font-size:var(--text-xs);
  line-height:1.7;min-height:200px;}
.mxva-prompt-section + .mxva-card{margin-top:14px;}
.mxva-prompt-foot{display:flex;align-items:center;gap:10px;margin-top:8px;}
.mxva-prompt-foot .muted{font-size:var(--text-xs);}

/* 提示词预览弹窗 */
.mxva-preview-mask{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;
  padding:24px;background:rgba(0,0,0,0.5);}
.mxva-preview-dialog{max-width:800px;width:100%;max-height:80vh;display:flex;flex-direction:column;
  border:var(--border-default);border-radius:var(--radius-sm);
  background:var(--color-surface);box-shadow:var(--shadow-lg);}
.mxva-preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:12px 16px;border-bottom:var(--border-default);}
.mxva-preview-head b{font-size:var(--text-body);color:var(--color-text-strong);}
.mxva-preview-body{flex:1;overflow:auto;margin:0;padding:16px;}
.mxva-preview-loading{color:var(--color-text-muted);font-size:var(--text-sm);padding:24px;text-align:center;}
.mxva-preview-section{margin-bottom:16px;}
.mxva-preview-section:last-child{margin-bottom:0;}
.mxva-preview-label{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);
  color:var(--color-text-muted);margin-bottom:6px;}
.mxva-preview-code{margin:0;font-family:var(--font-mono,monospace);font-size:var(--text-xs);
  line-height:1.7;white-space:pre-wrap;word-break:break-word;color:var(--color-text);}
.mxva-preview-foot{display:flex;justify-content:flex-end;gap:8px;
  padding:10px 16px;border-top:var(--border-default);}
@media (max-width:900px){
  .mxva-prompt-section{grid-template-columns:1fr;}
}

@media (max-width:640px){
  .mxva-seg-row .form-control{min-width:96px;}
  .mxva-chip-add{flex-wrap:wrap;}
  .mxva-chip-add .form-control{max-width:none;flex:1;}
}
