/* Strategy workbench: final visual layer only. Business logic and interactions stay unchanged. */
body.view-strategy {
  --st-page: #0b1016;
  --st-panel: #101720;
  --st-panel-2: #141d27;
  --st-panel-3: #18232f;
  --st-line: rgba(185, 199, 219, 0.13);
  --st-line-strong: rgba(185, 199, 219, 0.24);
  --st-text: #edf2f8;
  --st-muted: #9aa8ba;
  --st-faint: #68778b;
  --st-blue: #5aa6ff;
  --st-blue-soft: rgba(90, 166, 255, 0.11);
  --st-red: #ff625d;
  --st-red-soft: rgba(255, 98, 93, 0.09);
  --st-green: #35cf83;
  --st-green-soft: rgba(53, 207, 131, 0.09);
  --st-amber: #efb64f;
  --st-amber-soft: rgba(239, 182, 79, 0.10);
}

body.view-strategy .strategy-page {
  padding: 14px clamp(14px, 2.2vw, 34px) 72px !important;
  background: var(--st-page) !important;
}

body.view-strategy .strategy-shell {
  width: 100% !important;
  max-width: 1720px !important;
  min-width: 0;
  margin: 0 auto !important;
}

body.view-strategy .strategy-hero {
  display: block !important;
  min-height: 0 !important;
  margin: 0 0 14px !important;
  padding: 0 !important;
  overflow: hidden;
  border: 1px solid var(--st-line) !important;
  border-radius: 8px !important;
  background: var(--st-panel) !important;
  box-shadow: none !important;
}

body.view-strategy .strategy-hero::before { display: none !important; }

body.view-strategy .strategy-hero-head {
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 14px 16px;
}

body.view-strategy .strategy-hero-heading {
  min-width: 0;
  display: flex;
  align-items: baseline;
  gap: 12px;
}

body.view-strategy .strategy-kicker {
  margin: 0 !important;
  color: var(--st-blue) !important;
  font-size: 11px !important;
  font-weight: 760 !important;
  line-height: 1.2;
  white-space: nowrap;
}

body.view-strategy .strategy-title {
  margin: 0 !important;
  color: var(--st-text) !important;
  font-size: 23px !important;
  font-weight: 760 !important;
  line-height: 1.15 !important;
}

body.view-strategy .strategy-subtitle {
  min-width: 0 !important;
  display: flex !important;
  align-items: center;
  justify-content: flex-end !important;
  gap: 8px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

body.view-strategy .strategy-date-input,
body.view-strategy .strategy-threshold,
body.view-strategy .sc-threshold-input {
  height: 34px !important;
  border-color: var(--st-line) !important;
  border-radius: 7px !important;
  background: var(--st-panel-2) !important;
  box-shadow: none !important;
}

body.view-strategy .strategy-date-input {
  min-width: 142px;
  padding: 0 10px !important;
  color: var(--st-text) !important;
}

body.view-strategy .strategy-threshold {
  margin: 0 !important;
  padding: 0 7px 0 10px !important;
}

body.view-strategy .strategy-threshold .st-lbl {
  color: var(--st-muted) !important;
  font-size: 11px !important;
}

body.view-strategy .strategy-hero-utility {
  min-height: 48px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 16px;
  border-top: 1px solid var(--st-line);
  background: rgba(255, 255, 255, 0.015);
}

body.view-strategy .strategy-snapshot-banner {
  flex: 0 1 auto;
  margin: 0 !important;
  padding: 5px 8px !important;
  border-color: rgba(239, 182, 79, 0.25) !important;
  border-radius: 6px !important;
  color: #efc875 !important;
  background: var(--st-amber-soft) !important;
  font-size: 11px !important;
}

body.view-strategy .strategy-hero .strategy-board-search-section {
  width: min(390px, 100%) !important;
  display: flex !important;
  align-items: center;
  gap: 8px;
  margin: 0 0 0 auto !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}

body.view-strategy .strategy-hero .strategy-board-search-bar {
  flex: 1 1 auto;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto auto !important;
  gap: 6px !important;
  margin: 0 !important;
}

body.view-strategy .strategy-hero .strategy-board-search-input,
body.view-strategy .strategy-hero .strategy-board-search-btn,
body.view-strategy .strategy-hero .strategy-board-search-clear {
  height: 32px !important;
  min-height: 32px !important;
  border-radius: 7px !important;
}

body.view-strategy .strategy-hero .strategy-board-search-input {
  padding: 0 10px !important;
  border-color: var(--st-line) !important;
  background: var(--st-panel-2) !important;
  color: var(--st-text) !important;
}

body.view-strategy .strategy-hero .strategy-board-search-btn {
  border-color: rgba(90, 166, 255, 0.28) !important;
  background: var(--st-blue-soft) !important;
  color: #9dccff !important;
}

body.view-strategy .strategy-hero .strategy-board-search-clear {
  border-color: var(--st-line) !important;
  background: transparent !important;
  color: var(--st-muted) !important;
}

body.view-strategy .strategy-hero .strategy-board-search-hint { display: none !important; }
body.view-strategy .strategy-mainlines { margin: 0 0 14px !important; }

body.view-strategy .mainline-wrap,
body.view-strategy .ml-review,
body.view-strategy .ml-l2-history,
body.view-strategy .strategy-focus-section,
body.view-strategy .theme-calib {
  width: 100%;
  border: 1px solid var(--st-line) !important;
  border-radius: 8px !important;
  background: var(--st-panel) !important;
  box-shadow: none !important;
}

body.view-strategy .mainline-wrap {
  padding: 0 !important;
  overflow: hidden;
}

body.view-strategy .ml-title,
body.view-strategy .strategy-section-head,
body.view-strategy .mlr-head {
  min-height: 48px !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 12px 16px !important;
  border-bottom: 1px solid var(--st-line) !important;
  background: transparent !important;
}

body.view-strategy .ml-title::before,
body.view-strategy .strategy-section-title::before {
  content: "";
  flex: 0 0 auto;
  width: 3px !important;
  height: 16px !important;
  margin: 0 2px 0 0 !important;
  border-radius: 2px !important;
  background: var(--st-blue) !important;
}

body.view-strategy .ml-title > span,
body.view-strategy .strategy-section-title,
body.view-strategy .mlr-title {
  color: var(--st-text) !important;
  font-size: 15px !important;
  font-weight: 760 !important;
  line-height: 1.25;
}

body.view-strategy .ml-title small {
  min-width: 0;
  margin-left: auto !important;
  overflow: hidden;
  color: var(--st-faint) !important;
  font-size: 11px !important;
  line-height: 1.35;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.view-strategy .ml-status,
body.view-strategy .ml-dual-note,
body.view-strategy .rht-loading {
  margin: 12px 14px !important;
  border-radius: 7px !important;
}

body.view-strategy .ml-dual-note {
  padding: 8px 10px !important;
  border: 1px solid rgba(90, 166, 255, 0.16);
  background: var(--st-blue-soft) !important;
  color: #a8cffd !important;
  font-size: 11px !important;
}

body.view-strategy .ml-cols {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  align-items: start !important;
  gap: 0 !important;
  padding: 0 14px 14px;
}

body.view-strategy .ml-col {
  min-width: 0;
  padding: 0 12px;
}

body.view-strategy .ml-col:first-child { padding-left: 0; }
body.view-strategy .ml-col:last-child {
  padding-right: 0;
  border-left: 1px solid var(--st-line);
}

body.view-strategy .ml-col-title {
  min-height: 44px;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 10px 2px !important;
  border-bottom: 1px solid var(--st-line) !important;
  color: var(--st-text) !important;
  font-size: 13px !important;
  font-weight: 720 !important;
}

body.view-strategy .ml-col-title small {
  color: var(--st-faint) !important;
  font-size: 10px !important;
  font-weight: 580 !important;
  opacity: 1 !important;
}

/* 命中率随行(2026-07-26,Owner 二次修订:直接进标题行,跟在"××主线预测"后面)。
   标签中性小字、数字亮色加粗主角(Owner 反馈首版 11px 全灰看不清);
   仍不用金/红(那两色在本页有确认态语义);暂无样本弱化,不许用 0% 冒充。 */
body.view-strategy .ml-hitrate {
  margin-left: 10px;
  display: inline;
  color: var(--st-muted);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .02em;
  cursor: help;
  white-space: nowrap;
}
body.view-strategy .ml-hitrate b {
  color: var(--st-text);
  font-size: 13px;
  font-weight: 820;
  letter-spacing: 0;
}
body.view-strategy .ml-hitrate.is-empty {
  color: var(--st-faint);
  cursor: default;
}
/* ≤430px 窄屏修正(Local #292 阻断:nowrap 徽标把同花顺标题挤成两行;其量测页断点
   400→390,换真实 .ml-cols 单列规则复测为 405–420,阈值取 430 留余量):
   列头改为可折行,标题 span(本身是 flex 容器,含标题文本与徽标)flex-basis 100% 独占整行,
   副标签退到下一行——标题与徽标同行且都不再被挤压,徽标 white-space 放开必要时内部折行。
   标题文本 nowrap 防 CJK 单字竖排。桌面(>430)保持行内形态不变。
   实测 340–430 全区间:标题 1 行、副标签 1 行、零横向溢出。 */
@media (max-width: 430px) {
  body.view-strategy .ml-col-title {
    flex-wrap: wrap !important;
  }
  body.view-strategy .ml-col-title > span {
    flex: 1 1 100%;
    white-space: nowrap;
  }
  body.view-strategy .ml-hitrate {
    display: block;
    margin-left: 0;
    margin-top: 4px;
    white-space: normal;
  }
}

body.view-strategy .ml-grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 8px !important;
  padding-top: 10px;
}

body.view-strategy .ml-card {
  min-width: 0;
  min-height: 0 !important;
  gap: 8px !important;
  padding: 13px !important;
  border: 1px solid var(--st-line) !important;
  border-left: 3px solid rgba(185, 199, 219, 0.22) !important;
  border-radius: 7px !important;
  background: var(--st-panel-2) !important;
  box-shadow: none !important;
}

body.view-strategy .ml-card:hover {
  transform: none !important;
  border-color: var(--st-line-strong) !important;
  border-left-color: rgba(185, 199, 219, 0.34) !important;
  background: var(--st-panel-3) !important;
}

body.view-strategy .ml-card.has-expected-star {
  border-color: rgba(239, 182, 79, 0.25) !important;
  border-left-color: var(--st-amber) !important;
  background: #181c20 !important;
}

body.view-strategy .ml-card.has-confirmed-star,
body.view-strategy .ml-card.confirmed-mainline {
  border-color: rgba(255, 98, 93, 0.25) !important;
  border-left-color: var(--st-red) !important;
  background: #1a191d !important;
  box-shadow: none !important;
}

body.view-strategy .ml-top {
  grid-template-columns: 28px minmax(0, 1fr) auto !important;
  align-items: start !important;
  gap: 9px !important;
}

body.view-strategy .ml-rank {
  width: 27px !important;
  height: 27px !important;
  border: 1px solid var(--st-line) !important;
  border-radius: 6px !important;
  background: rgba(255, 255, 255, 0.035) !important;
  color: var(--st-muted) !important;
  font-size: 11px !important;
}

body.view-strategy .ml-card.lead .ml-rank {
  border-color: rgba(255, 98, 93, 0.24) !important;
  background: var(--st-red-soft) !important;
  color: #ff9691 !important;
}

body.view-strategy .ml-name-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: baseline !important;
  gap: 7px 12px !important;
}

body.view-strategy .ml-name {
  min-width: 0;
  color: var(--st-text) !important;
  font-size: 16px !important;
  font-weight: 760 !important;
  line-height: 1.3 !important;
  overflow-wrap: anywhere;
}

body.view-strategy .ml-head-pulse {
  min-width: 0;
  display: flex !important;
  align-items: baseline;
  justify-content: flex-end;
  gap: 9px;
}

body.view-strategy .ml-head-stat {
  display: inline-flex !important;
  align-items: baseline;
  gap: 4px;
  padding: 0 !important;
  border: 0 !important;
}

body.view-strategy .ml-head-stat i {
  max-width: 88px !important;
  color: var(--st-faint) !important;
  font-size: 9px !important;
}

body.view-strategy .ml-head-stat b {
  font-size: 12px !important;
  font-variant-numeric: tabular-nums;
}

body.view-strategy .ml-name-flags {
  min-height: 20px !important;
  gap: 5px !important;
  margin-top: 5px !important;
}

body.view-strategy .ml-name-flags > span,
body.view-strategy .ml-confirmed,
body.view-strategy .ml-newtheme,
body.view-strategy .ml-dual,
body.view-strategy .ml-stage {
  min-height: 20px !important;
  padding: 0 7px !important;
  border-radius: 5px !important;
  font-size: 9.5px !important;
  line-height: 18px !important;
}

body.view-strategy .ml-sub {
  margin-top: 4px !important;
  color: var(--st-faint) !important;
  font-size: 10px !important;
}

body.view-strategy .ml-score-wrap {
  min-width: 54px;
  display: flex !important;
  align-items: stretch !important;
  gap: 3px !important;
}

body.view-strategy .ml-score,
body.view-strategy .ml-predict {
  min-width: 48px !important;
  min-height: 45px;
  padding: 5px 6px !important;
  border: 0 !important;
  border-left: 1px solid var(--st-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
}

body.view-strategy .ml-score b,
body.view-strategy .ml-predict b {
  color: var(--st-text) !important;
  font-size: 17px !important;
  line-height: 1.1;
}

body.view-strategy .ml-score span,
body.view-strategy .ml-predict span {
  color: var(--st-faint) !important;
  font-size: 9px !important;
}

body.view-strategy .ml-signal-strip {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 0 !important;
  border-top: 1px solid var(--st-line);
  border-bottom: 1px solid var(--st-line);
}

body.view-strategy .ml-signal-cell,
body.view-strategy .ml-signal-cell.support {
  min-width: 0 !important;
  min-height: 34px !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: baseline !important;
  justify-content: center !important;
  gap: 5px !important;
  padding: 7px 5px !important;
  border: 0 !important;
  border-right: 1px solid var(--st-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
}

body.view-strategy .ml-signal-cell:last-child { border-right: 0 !important; }
body.view-strategy .ml-signal-cell i { color: var(--st-faint) !important; font-size: 9px !important; }
body.view-strategy .ml-signal-cell b { color: var(--st-text) !important; font-size: 12px !important; }

body.view-strategy .ml-proof-row:not(.ml-star-proof) {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  flex-wrap: wrap;
}

body.view-strategy .ml-proof-lbl {
  flex: 0 0 auto;
  color: var(--st-faint) !important;
  font-size: 9px !important;
  line-height: 24px;
}

body.view-strategy .ml-stock.ml-leaderstock,
body.view-strategy .ml-board,
body.view-strategy .ml-stock:not(.ml-starstock) {
  max-width: 100%;
  min-height: 24px;
  padding: 3px 7px !important;
  border-color: var(--st-line) !important;
  border-radius: 5px !important;
  background: rgba(255, 255, 255, 0.025) !important;
  overflow-wrap: anywhere;
  white-space: normal !important;
}

body.view-strategy .ml-star-proof {
  display: block !important;
  margin-top: 1px;
  padding: 9px !important;
  border: 1px solid rgba(239, 182, 79, 0.18) !important;
  border-left: 3px solid var(--st-amber) !important;
  border-radius: 6px;
  background: var(--st-amber-soft) !important;
}

body.view-strategy .ml-card.has-confirmed-star .ml-star-proof,
body.view-strategy .ml-card.confirmed-mainline .ml-star-proof {
  border-color: rgba(255, 98, 93, 0.18) !important;
  border-left-color: var(--st-red) !important;
  background: var(--st-red-soft) !important;
}

body.view-strategy .ml-star-proof-head { margin-bottom: 7px !important; }
body.view-strategy .ml-star-proof-title { color: var(--st-text) !important; }
body.view-strategy .ml-star-proof-summary { color: var(--st-muted) !important; }

body.view-strategy .ml-star-list {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)) !important;
  gap: 6px !important;
}

body.view-strategy .ml-stock.ml-starstock {
  min-width: 0 !important;
  min-height: 54px !important;
  padding: 7px 8px !important;
  border: 1px solid rgba(239, 182, 79, 0.22) !important;
  border-radius: 6px !important;
  background: rgba(11, 16, 22, 0.38) !important;
  box-shadow: none !important;
}

body.view-strategy .ml-stock.ml-starstock.confirmed {
  border-color: rgba(255, 98, 93, 0.30) !important;
  background: rgba(255, 98, 93, 0.07) !important;
}

body.view-strategy .ml-star-state {
  min-height: 20px !important;
  padding: 0 6px !important;
  border-radius: 5px !important;
  font-size: 9px !important;
  line-height: 18px !important;
}

body.view-strategy .ml-star-ratios {
  gap: 10px !important;
  padding-top: 5px !important;
}

body.view-strategy .ml-reason {
  margin: 0 !important;
  padding: 1px 0 0 !important;
  color: #b9c7d7 !important;
  font-size: 11px !important;
  line-height: 1.45;
}

body.view-strategy .ml-card-actions {
  display: flex !important;
  gap: 7px !important;
  margin-top: 1px !important;
  padding-top: 8px;
  border-top: 1px solid var(--st-line);
}

body.view-strategy .ml-toggle,
body.view-strategy .ml-confirm-btn {
  min-height: 32px;
  padding: 0 11px !important;
  border-radius: 6px !important;
  font-size: 10.5px !important;
}

body.view-strategy .ml-toggle {
  border-color: var(--st-line) !important;
  background: transparent !important;
  color: var(--st-muted) !important;
}

body.view-strategy .ml-confirm-btn {
  border-color: rgba(239, 182, 79, 0.28) !important;
  background: var(--st-amber-soft) !important;
  color: #efc875 !important;
}

body.view-strategy .ml-card .ml-details {
  margin-top: 2px !important;
  padding-top: 12px !important;
  border-top: 1px solid var(--st-line) !important;
}

body.view-strategy .ml-detail-grid,
body.view-strategy .ml-detail-evidence,
body.view-strategy .ml-leader-list {
  border-color: var(--st-line) !important;
}

body.view-strategy .ml-detail-section-title,
body.view-strategy .ml-leader-list-title { color: var(--st-muted) !important; }

body.view-strategy .ml-review {
  margin: 14px 0 0 !important;
  padding: 0 14px 14px !important;
  overflow: hidden;
}

body.view-strategy .mlr-head {
  margin: 0 -14px !important;
  justify-content: space-between !important;
}

body.view-strategy .mlr-title::before {
  content: "";
  width: 3px;
  height: 16px;
  border-radius: 2px;
  background: var(--st-amber);
}

body.view-strategy .mlr-title .mlr-ic { display: none !important; }

body.view-strategy .mlr-stats {
  display: flex !important;
  align-items: center;
  gap: 5px !important;
}

body.view-strategy .mlr-chip {
  min-height: 23px;
  display: inline-flex;
  align-items: center;
  padding: 0 7px !important;
  border-color: var(--st-line) !important;
  border-radius: 5px !important;
  background: rgba(255, 255, 255, 0.025) !important;
  color: var(--st-muted) !important;
  font-size: 9.5px !important;
}

body.view-strategy .mlr-sub {
  margin: 9px 0 !important;
  padding: 0 2px;
}

body.view-strategy .mlr-sub small {
  color: var(--st-faint) !important;
  font-size: 10px !important;
}

body.view-strategy .mlr-list {
  display: flex !important;
  flex-direction: column;
  gap: 1px !important;
  overflow: hidden;
  border: 1px solid var(--st-line);
  border-radius: 7px;
  background: var(--st-line);
}

body.view-strategy .mlr-row,
body.view-strategy .mlr-row.hit-ok,
body.view-strategy .mlr-row.hit-near,
body.view-strategy .mlr-row.hit-miss,
body.view-strategy .mlr-row.hit-wait,
body.view-strategy .mlr-row.hit-na,
body.view-strategy .mlr-row.hit-invalid {
  margin: 0;
  padding: 10px 11px !important;
  border: 0 !important;
  border-left: 3px solid rgba(185, 199, 219, 0.22) !important;
  border-radius: 0 !important;
  background: var(--st-panel-2) !important;
  box-shadow: none !important;
}

body.view-strategy .mlr-row:hover { background: var(--st-panel-3) !important; }

body.view-strategy .mlr-row.star-confirmed {
  border-left-color: var(--st-red) !important;
  background: #1a191d !important;
}

body.view-strategy .mlr-row.star-expected {
  border-left-color: var(--st-amber) !important;
  background: #181c20 !important;
}

body.view-strategy .mlr-l1 {
  display: grid !important;
  grid-template-columns: 44px auto minmax(170px, 1fr) 14px minmax(210px, 1.2fr) auto;
  align-items: center !important;
  gap: 8px !important;
}

body.view-strategy .mlr-day {
  min-width: 0 !important;
  color: var(--st-muted) !important;
  font-size: 11px !important;
}

body.view-strategy .mlr-day { grid-column: 1; }
body.view-strategy .mlr-star-signal { grid-column: 2; }
body.view-strategy .mlr-pred { grid-column: 3; }
body.view-strategy .mlr-arrow { grid-column: 4; }
body.view-strategy .mlr-result { grid-column: 5; }
body.view-strategy .mlr-invalid { grid-column: 6; }
body.view-strategy .mlr-arrow { text-align: center; }
body.view-strategy .mlr-result { min-width: 0; }

body.view-strategy .mlr-no-star {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 1px 6px;
  border: 1px solid var(--st-line);
  border-radius: 5px;
  background: rgba(255, 255, 255, 0.025);
  color: var(--st-muted);
  font-size: 9.5px;
  font-weight: 650;
  line-height: 1.2;
  white-space: nowrap;
}

body.view-strategy .mlr-l2 {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px 12px !important;
  margin-top: 8px !important;
  padding-top: 8px !important;
  border-top-color: var(--st-line) !important;
}

body.view-strategy .mlr-star-signal,
body.view-strategy .mlr-hit,
body.view-strategy .mlr-perf,
body.view-strategy .mlr-star-slot { border-radius: 5px !important; }

/* Prediction review: confirmed mainlines lead; failed expectations remain secondary evidence. */
body.view-strategy .mlr-title-block {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 9px;
}

body.view-strategy .mlr-title-block > small {
  padding-left: 9px;
  border-left: 1px solid var(--st-line-strong);
  color: var(--st-faint);
  font-size: 10px;
  font-weight: 650;
  line-height: 1.2;
  white-space: nowrap;
}

body.view-strategy .mlr-title::before { background: var(--st-blue) !important; }

body.view-strategy .mlr-outcome-summary {
  display: inline-flex;
  align-items: stretch;
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--st-line);
  border-radius: 6px;
  background: var(--st-line);
}

body.view-strategy .mlr-outcome-summary > span {
  min-width: 82px;
  min-height: 34px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: baseline;
  gap: 4px;
  padding: 7px 9px;
  background: var(--st-panel-2);
  font-variant-numeric: tabular-nums;
}

body.view-strategy .mlr-outcome-summary i,
body.view-strategy .mlr-outcome-summary small {
  color: var(--st-faint);
  font-size: 9px;
  font-style: normal;
  font-weight: 650;
}

body.view-strategy .mlr-outcome-summary b { font-size: 15px; font-weight: 820; }
body.view-strategy .mlr-outcome-summary .confirmed b { color: #ff817d; }
body.view-strategy .mlr-outcome-summary .missed b { color: #d6a653; }
body.view-strategy .mlr-outcome-summary .pending b { color: #8fb9e8; }

body.view-strategy .mlr-overview {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  gap: 8px;
  padding: 10px 2px;
  border-bottom: 1px solid var(--st-line);
}

body.view-strategy .mlr-overview .mlr-sub {
  min-width: 0;
  margin: 0 !important;
  text-align: left;
}

body.view-strategy .mlr-list {
  gap: 14px !important;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
}

body.view-strategy .mlr-group { min-width: 0; }

body.view-strategy .mlr-group-head {
  min-height: 31px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 0 2px 7px;
}

body.view-strategy .mlr-group-title {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 7px;
}

body.view-strategy .mlr-group-title > i {
  width: 7px;
  height: 7px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--st-faint);
}

body.view-strategy .mlr-group-title > b {
  color: var(--st-text);
  font-size: 12px;
  font-weight: 780;
}

body.view-strategy .mlr-group-title > small,
body.view-strategy .mlr-group-head > em {
  color: var(--st-faint);
  font-size: 9.5px;
  font-style: normal;
  font-weight: 650;
}

body.view-strategy .mlr-group.confirmed .mlr-group-title > i {
  background: var(--st-red);
  box-shadow: 0 0 0 4px rgba(255, 98, 93, 0.10);
}

body.view-strategy .mlr-group.missed .mlr-group-title > i { background: #c99a49; }
body.view-strategy .mlr-group.pending .mlr-group-title > i { background: #7fa8d5; }

body.view-strategy .mlr-group-list {
  display: flex;
  flex-direction: column;
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--st-line);
  border-radius: 7px;
  background: var(--st-line);
}

body.view-strategy .mlr-group.confirmed .mlr-group-list { border-color: rgba(255, 98, 93, 0.24); }
body.view-strategy .mlr-group.missed .mlr-group-list { border-color: rgba(201, 154, 73, 0.18); }

body.view-strategy .mlr-row.star-confirmed {
  border-left-color: var(--st-red) !important;
  background: linear-gradient(90deg, rgba(255, 98, 93, 0.105), rgba(24, 25, 30, 0.96) 31%) !important;
}

body.view-strategy .mlr-row.star-missed {
  border-left-color: #c99a49 !important;
  background: linear-gradient(90deg, rgba(201, 154, 73, 0.055), rgba(20, 27, 34, 0.98) 28%) !important;
}

body.view-strategy .mlr-row.star-pending {
  border-left: 3px dashed #7398c1 !important;
  background: linear-gradient(90deg, rgba(90, 166, 255, 0.045), rgba(20, 29, 39, 0.98) 28%) !important;
}

body.view-strategy .mlr-star-signal.confirmed {
  border-color: rgba(255, 98, 93, 0.40) !important;
  background: rgba(255, 98, 93, 0.13) !important;
  color: #ffaaa6 !important;
}

body.view-strategy .mlr-star-signal.confirmed b { color: #fff1f0 !important; }

body.view-strategy .mlr-star-signal.missed {
  border-color: rgba(201, 154, 73, 0.30) !important;
  background: rgba(201, 154, 73, 0.075) !important;
  color: #d7ae67 !important;
}

body.view-strategy .mlr-star-signal.missed b { color: #e1c99f !important; }

body.view-strategy .mlr-star-signal.pending {
  border: 1px dashed rgba(115, 152, 193, 0.42) !important;
  background: rgba(90, 166, 255, 0.045) !important;
  color: #9ebbdc !important;
}

body.view-strategy .mlr-star-signal.pending b { color: #c6d6e9 !important; }

body.view-strategy .mlr-star-slot.confirmed {
  background: rgba(255, 98, 93, 0.055) !important;
  box-shadow: inset 2px 0 0 rgba(255, 98, 93, 0.48) !important;
}

body.view-strategy .mlr-star-slot.missed {
  background: rgba(201, 154, 73, 0.04) !important;
  box-shadow: inset 2px 0 0 rgba(201, 154, 73, 0.32) !important;
}

body.view-strategy .mlr-star-slot.pending {
  background: rgba(90, 166, 255, 0.035) !important;
  box-shadow: inset 2px 0 0 rgba(115, 152, 193, 0.30) !important;
}

body.view-strategy .mlr-stock-review,
body.view-strategy .mlr-stock-review-head {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

body.view-strategy .mlr-stock-review { flex-wrap: wrap; }
body.view-strategy .mlr-stock-review-head { flex: 0 1 auto; }
body.view-strategy .mlr-stock-review .mlr-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.view-strategy .ml-l2-history,
body.view-strategy .strategy-focus-section,
body.view-strategy .theme-calib {
  margin-top: 14px !important;
  padding: 0 14px 14px !important;
}

body.view-strategy .ml-l2-history .strategy-section-head,
body.view-strategy .strategy-focus-section .strategy-section-head,
body.view-strategy .theme-calib .strategy-section-head {
  margin: 0 -14px 12px !important;
}

body.view-strategy .strategy-section-sub {
  margin-left: auto;
  color: var(--st-faint) !important;
  font-size: 10px !important;
}

body.view-strategy .ml-l2-job-grid {
  overflow: hidden;
  border: 1px solid var(--st-line) !important;
  border-radius: 7px;
  background: var(--st-line);
}

body.view-strategy .ml-l2-job {
  grid-template-columns: minmax(210px, 0.72fr) minmax(190px, 0.52fr) minmax(0, 1.76fr) !important;
  gap: 14px !important;
  padding: 10px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--st-line) !important;
  background: var(--st-panel-2) !important;
}

body.view-strategy .ml-l2-job:last-child { border-bottom: 0 !important; }

body.view-strategy .ml-l2-job-meta span {
  min-height: 28px !important;
  padding: 4px 6px !important;
  border: 0 !important;
  border-right: 1px solid var(--st-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
}

body.view-strategy .ml-l2-job-meta span:last-child { border-right: 0 !important; }
body.view-strategy .ml-l2-stock-list { gap: 5px !important; }

body.view-strategy .ml-l2-stock {
  border-color: var(--st-line) !important;
  border-radius: 6px !important;
  background: rgba(255, 255, 255, 0.02) !important;
  box-shadow: none !important;
}

body.view-strategy .ml-l2-stock.is-expected {
  border-color: rgba(239, 182, 79, 0.34) !important;
  background: var(--st-amber-soft) !important;
}

body.view-strategy .ml-l2-stock.is-confirmed {
  border-color: rgba(255, 98, 93, 0.34) !important;
  background: var(--st-red-soft) !important;
}

body.view-strategy .ml-l2-stock-summary { padding: 8px !important; }

body.view-strategy .strategy-board-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)) !important;
  gap: 8px !important;
}

body.view-strategy .strategy-board-card {
  min-height: 0 !important;
  padding: 13px !important;
  border-color: var(--st-line) !important;
  border-radius: 7px !important;
  background: var(--st-panel-2) !important;
  box-shadow: none !important;
}

body.view-strategy .strategy-board-card:hover {
  transform: none !important;
  border-color: var(--st-line-strong) !important;
  background: var(--st-panel-3) !important;
}

body.view-strategy .strategy-card-head {
  min-height: 30px !important;
  align-items: center !important;
}

body.view-strategy .strategy-card-name {
  min-width: 0;
  color: var(--st-text) !important;
  font-size: 15px !important;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

body.view-strategy .strategy-card-metrics {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 !important;
  margin-top: 10px !important;
  border-top: 1px solid var(--st-line);
  border-bottom: 1px solid var(--st-line);
}

body.view-strategy .sc-metric {
  min-height: 46px !important;
  justify-content: center;
  padding: 6px 9px !important;
  border: 0 !important;
  border-right: 1px solid var(--st-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
}

body.view-strategy .sc-metric:last-child { border-right: 0 !important; }
body.view-strategy .sc-label { color: var(--st-faint) !important; font-size: 9px !important; }
body.view-strategy .sc-metric b,
body.view-strategy .sc-metric span:last-child { font-size: 14px !important; }

body.view-strategy .strategy-board-explain {
  margin-top: 9px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

body.view-strategy .strategy-board-explain li {
  color: var(--st-muted) !important;
  font-size: 10.5px !important;
}

body.view-strategy .strategy-card-foot {
  margin-top: 10px !important;
  padding-top: 9px !important;
  border-top-color: var(--st-line) !important;
}

body.view-strategy .sc-smart-btn {
  min-height: 32px !important;
  padding: 0 11px !important;
  border-color: rgba(90, 166, 255, 0.26) !important;
  border-radius: 6px !important;
  background: var(--st-blue-soft) !important;
  color: #9dccff !important;
}

body.view-strategy .strategy-empty,
body.view-strategy .strategy-search-state,
body.view-strategy .rht-loading {
  min-height: 84px;
  display: grid;
  place-items: center;
  padding: 18px !important;
  border: 1px dashed var(--st-line) !important;
  border-radius: 7px !important;
  background: rgba(255, 255, 255, 0.012) !important;
  color: var(--st-muted) !important;
  text-align: center;
}

body.view-strategy .strategy-note { display: none !important; }

@media (max-width: 1160px) {
  body.view-strategy .strategy-hero-head {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }

  body.view-strategy .strategy-subtitle { justify-content: flex-start !important; }
  body.view-strategy .ml-cols { grid-template-columns: 1fr !important; gap: 14px !important; }
  body.view-strategy .ml-col { padding: 0 !important; }
  body.view-strategy .ml-col:last-child {
    padding-top: 4px !important;
    border-left: 0;
    border-top: 1px solid var(--st-line);
  }

  body.view-strategy .ml-l2-job { grid-template-columns: 1fr minmax(190px, 0.55fr) !important; }
  body.view-strategy .ml-l2-stock-list { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  body.view-strategy .strategy-page { padding: 10px 10px 56px !important; }

  body.view-strategy .strategy-hero-head,
  body.view-strategy .strategy-hero-utility,
  body.view-strategy .ml-title,
  body.view-strategy .strategy-section-head,
  body.view-strategy .mlr-head {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  body.view-strategy .strategy-hero-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
  }

  body.view-strategy .strategy-title { font-size: 21px !important; }
  body.view-strategy .strategy-subtitle {
    width: 100%;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
  }

  body.view-strategy .strategy-date-input,
  body.view-strategy .strategy-threshold { width: 100% !important; min-width: 0 !important; }

  body.view-strategy .strategy-threshold {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 58px;
    justify-content: stretch;
  }

  body.view-strategy .strategy-threshold .st-lbl {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.view-strategy .sc-threshold-input { width: 58px !important; }

  body.view-strategy .strategy-hero-utility { align-items: stretch; flex-direction: column; }
  body.view-strategy .strategy-snapshot-banner { width: 100%; }
  body.view-strategy .strategy-hero .strategy-board-search-section { width: 100% !important; margin: 0 !important; }

  body.view-strategy .ml-title { align-items: flex-start !important; flex-wrap: wrap; }
  body.view-strategy .ml-title small {
    flex: 0 0 100%;
    margin: 0 0 0 5px !important;
    text-align: left;
    white-space: normal;
  }

  body.view-strategy .ml-cols { padding: 0 10px 10px; }
  body.view-strategy .ml-card { padding: 11px !important; }
  body.view-strategy .mainline-wrap,
  body.view-strategy .ml-cols,
  body.view-strategy .ml-col,
  body.view-strategy .ml-grid,
  body.view-strategy .ml-card { min-width: 0 !important; max-width: 100% !important; }
  body.view-strategy .ml-top { grid-template-columns: 27px minmax(0, 1fr) !important; }
  body.view-strategy .ml-score-wrap { grid-column: 2; justify-content: flex-start !important; }
  body.view-strategy .ml-name-row { grid-template-columns: 1fr; }
  body.view-strategy .ml-head-pulse { justify-content: flex-start; flex-wrap: wrap; }
  body.view-strategy .ml-star-list { grid-template-columns: 1fr !important; }
  body.view-strategy .ml-detail-grid,
  body.view-strategy .ml-detail-evidence .ml-proof { grid-template-columns: 1fr !important; }
  body.view-strategy .mlr-head {
    align-items: stretch !important;
    flex-direction: column;
  }

  body.view-strategy .mlr-title-block { justify-content: space-between; }
  body.view-strategy .mlr-outcome-summary { width: 100%; }
  body.view-strategy .mlr-outcome-summary > span { min-width: 0; flex: 1 1 0; }
  body.view-strategy .mlr-overview { align-items: flex-start; flex-direction: column; }
  body.view-strategy .mlr-overview .mlr-sub { margin-left: 0 !important; text-align: left; }
  body.view-strategy .mlr-group-head { align-items: flex-start; }
  body.view-strategy .mlr-group-title { flex-wrap: wrap; }

  body.view-strategy .mlr-l1 {
    grid-template-columns: 42px minmax(0, 1fr) auto !important;
    gap: 7px !important;
  }

  body.view-strategy .mlr-star-signal { grid-column: 2 / -1; }
  body.view-strategy .mlr-pred {
    grid-column: 1 / -1;
    width: 100%;
    flex-wrap: wrap;
    padding-left: 49px;
  }
  body.view-strategy .mlr-pred .mlr-slot {
    width: 100%;
    flex: 0 0 100%;
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    align-items: center;
    gap: 6px;
  }
  body.view-strategy .mlr-arrow { display: none; }
  body.view-strategy .mlr-result {
    grid-column: 1 / -1;
    width: 100%;
    padding-left: 49px;
  }
  body.view-strategy .mlr-invalid { grid-column: 2 / -1; }
  body.view-strategy .mlr-l2 { grid-template-columns: 1fr !important; }
  body.view-strategy .mlr-l2 .mlr-slot {
    width: 100%;
    display: grid !important;
    grid-template-columns: 48px minmax(0, 1fr);
    align-items: start;
    gap: 4px 7px;
  }
  body.view-strategy .mlr-l2 .mlr-label { grid-column: 1; padding-top: 3px; }
  body.view-strategy .mlr-stock-review { grid-column: 2; width: 100%; }
  body.view-strategy .mlr-stock-review-head { width: 100%; }
  body.view-strategy .mlr-performance {
    width: 100%;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  body.view-strategy .mlr-perf { justify-content: space-between; }
  body.view-strategy .mlr-perf i,
  body.view-strategy .mlr-perf b { white-space: nowrap; }
  body.view-strategy .ml-l2-job { grid-template-columns: 1fr !important; gap: 8px !important; }
  body.view-strategy .ml-l2-job-meta { max-width: none !important; }
  body.view-strategy .ml-l2-stock-list { grid-template-columns: 1fr !important; }
  body.view-strategy .ml-l2-max-money { gap: 2px !important; }
  body.view-strategy .ml-l2-max-money i { white-space: normal !important; }
  body.view-strategy .strategy-board-grid { grid-template-columns: 1fr !important; }
  body.view-strategy .strategy-section-sub { flex: 0 0 100%; margin-left: 5px; }
}

/* ===== 三要件预备主线层(2026-07-21):琥珀降级,与回看"未兑现候选"同构 ===== */
body.view-strategy .ml-reserve {
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px dashed rgba(255, 200, 87, 0.35);
}
body.view-strategy .ml-reserve-head {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 6px;
}
body.view-strategy .ml-reserve-head span {
  font-size: 12px;
  font-weight: 600;
  color: #e8b64c;
}
body.view-strategy .ml-reserve-head small {
  font-size: 10px;
  color: var(--text-faint);
}
body.view-strategy .ml-reserve-card {
  position: relative;
  opacity: 0.92;
}
body.view-strategy .ml-reserve-card > .ml-card,
body.view-strategy .ml-reserve-card .ml-card {
  border-color: rgba(255, 200, 87, 0.35);
  background: rgba(255, 200, 87, 0.05);
}
/* 缺件状态栏走文档流,置于卡片上方——不用绝对定位角标,避免压住卡片右上角的
   预判分/主线分(Codex #201 补充意见,半导体卡 815/1505 实测重叠)。 */
body.view-strategy .ml-reserve-bar {
  font-size: 10px;
  line-height: 1.5;
  padding: 2px 8px;
  margin-bottom: 4px;
  border-radius: 6px;
  border: 1px dashed rgba(255, 200, 87, 0.5);
  color: #e8b64c;
  background: rgba(255, 200, 87, 0.08);
}
/* 预备卡即使含确认明星(缺龙头件)也保持琥珀降级视觉,不套正式榜的红色确认样式 */
body.view-strategy .ml-reserve-card .ml-card.has-confirmed-star {
  border-color: rgba(255, 200, 87, 0.35) !important;
  border-left-color: var(--st-amber) !important;
  background: rgba(255, 200, 87, 0.05) !important;
}
/* 预备卡紧凑化:保留头部脉冲、明星证据行(核心证据,不可隐藏——Codex #201 三审 P2)、
   龙头/分数;明细/信号带/趋势等次级拆解收起 */
body.view-strategy .ml-reserve-card .ml-detail-section,
body.view-strategy .ml-reserve-card .ml-signal-strip,
body.view-strategy .ml-reserve-card .ml-newtheme,
body.view-strategy .ml-reserve-card .ml-trend,
body.view-strategy .ml-reserve-card .ml-srcpairs {
  display: none !important;
}
/* 明星证据行保留但压缩:预备卡必须能看到是哪只预期/确认明星 */
body.view-strategy .ml-reserve-card .ml-star-proof {
  padding: 4px 8px !important;
  font-size: 11px !important;
  line-height: 1.4 !important;
  border-color: rgba(255, 200, 87, 0.3) !important;
  border-left-color: var(--st-amber) !important;
  background: var(--st-amber-soft) !important;
}
/* 预备回看行(盘后预判回看的预备层结果) */
body.view-strategy .mlr-reserve-line { flex-wrap: wrap; gap: 6px; opacity: 0.95; }
body.view-strategy .mlr-reserve-item {
  display: inline-flex;
  align-items: baseline;
  gap: 5px;
  padding: 2px 8px;
  border: 1px dashed rgba(255, 200, 87, 0.4);
  border-radius: 6px;
  font-size: 11px;
}
body.view-strategy .mlr-reserve-item b { color: var(--st-text); font-weight: 640; }
body.view-strategy .mlr-reserve-item i { color: var(--st-faint); font-style: normal; font-size: 10px; }
body.view-strategy .mlr-reserve-item em { font-style: normal; font-size: 10px; color: var(--st-muted); }
body.view-strategy .mlr-reserve-item em.sealed { color: var(--st-red); }
body.view-strategy .mlr-reserve-item em.missed { color: var(--st-amber); }
body.view-strategy .mlr-reserve-item em.wait { color: var(--st-faint); }

/* ===== Strategy command center refinement (2026-07-21) ===== */
body.view-strategy {
  --st-page: #090d12;
  --st-panel: #0e141b;
  --st-panel-2: #111921;
  --st-panel-3: #15202a;
  --st-line: rgba(194, 207, 224, 0.12);
  --st-line-strong: rgba(194, 207, 224, 0.23);
  --st-text: #f0f4f8;
  --st-muted: #a3afbd;
  --st-faint: #6f7d8d;
  --st-blue: #4aa3ff;
  --st-cyan: #42c7c2;
  --st-red: #ff625d;
  --st-amber: #e7ad46;
  --st-green: #35cf83;
}

body.view-strategy .strategy-page {
  padding-top: 18px !important;
}

body.view-strategy .strategy-hero {
  position: relative;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: stretch;
  border-color: rgba(194, 207, 224, 0.15) !important;
  background: #0e141b !important;
}

body.view-strategy .strategy-hero::after {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: var(--st-blue);
  pointer-events: none;
}

body.view-strategy .strategy-hero-head {
  min-height: 58px;
  gap: 22px;
  padding: 10px 16px 10px 18px;
}

body.view-strategy .strategy-hero-heading {
  align-items: center;
  gap: 10px;
}

body.view-strategy .strategy-kicker {
  min-height: 22px;
  display: inline-flex;
  align-items: center;
  padding: 0 7px;
  border: 1px solid rgba(74, 163, 255, 0.22);
  border-radius: 5px;
  background: rgba(74, 163, 255, 0.07);
  font-size: 10px !important;
  letter-spacing: 0 !important;
}

body.view-strategy .strategy-title {
  font-size: 20px !important;
  letter-spacing: 0 !important;
}

body.view-strategy .strategy-subtitle {
  flex: 0 0 auto;
  margin-left: auto !important;
}

body.view-strategy .strategy-date-input,
body.view-strategy .strategy-threshold,
body.view-strategy .sc-threshold-input {
  height: 32px !important;
  background: #111922 !important;
}

body.view-strategy .strategy-hero-utility {
  min-height: 58px;
  min-width: 340px;
  padding: 10px 14px;
  border-top: 0;
  border-left: 1px solid var(--st-line);
  background: #0b1117;
}

body.view-strategy .strategy-hero .strategy-board-search-section {
  width: min(360px, 100%) !important;
}

body.view-strategy .strategy-hero .strategy-board-search-input {
  background: #101821 !important;
}

body.view-strategy .strategy-mainlines {
  margin-bottom: 18px !important;
}

body.view-strategy .mainline-wrap,
body.view-strategy .ml-review {
  border-right: 0 !important;
  border-left: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}

body.view-strategy .mainline-wrap {
  border-top-color: rgba(194, 207, 224, 0.18) !important;
}

body.view-strategy .ml-title,
body.view-strategy .mlr-head {
  min-height: 54px !important;
  padding: 13px 2px !important;
  background: transparent !important;
}

body.view-strategy .ml-title::before,
body.view-strategy .mlr-title::before {
  width: 3px !important;
  height: 20px !important;
  margin-right: 7px !important;
  border-radius: 0 !important;
}

body.view-strategy .ml-title > span,
body.view-strategy .mlr-title {
  font-size: 17px !important;
  font-weight: 780 !important;
  letter-spacing: 0 !important;
}

body.view-strategy .ml-status {
  min-height: 34px;
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0 !important;
  padding: 8px 2px 9px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--st-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
}

body.view-strategy .ml-cols {
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr) !important;
  gap: 20px !important;
  padding: 0 0 16px;
}

body.view-strategy .ml-col {
  padding: 0 !important;
}

body.view-strategy .ml-col:last-child {
  padding-left: 20px !important;
}

body.view-strategy .ml-col-title {
  min-height: 48px;
  padding: 12px 1px 10px !important;
}

body.view-strategy .ml-col-title > span {
  letter-spacing: 0 !important;
}

body.view-strategy .ml-card {
  position: relative;
  gap: 10px !important;
  padding: 15px !important;
  border-color: rgba(194, 207, 224, 0.15) !important;
  border-left-width: 1px !important;
  border-radius: 8px !important;
  background: #111820 !important;
}

body.view-strategy .ml-card::before {
  content: "";
  position: absolute;
  inset: -1px auto -1px -1px;
  width: 3px;
  border-radius: 8px 0 0 8px;
  background: rgba(194, 207, 224, 0.24);
  pointer-events: none;
}

body.view-strategy .ml-card.has-expected-star,
body.view-strategy .ml-reserve-card .ml-card.has-confirmed-star {
  border-color: rgba(231, 173, 70, 0.30) !important;
  background: #17191a !important;
}

body.view-strategy .ml-card.has-expected-star::before,
body.view-strategy .ml-reserve-card .ml-card.has-confirmed-star::before {
  background: var(--st-amber);
}

body.view-strategy .ml-card.has-confirmed-star,
body.view-strategy .ml-card.confirmed-mainline {
  border-color: rgba(255, 98, 93, 0.32) !important;
  background: #181719 !important;
}

body.view-strategy .ml-card.has-confirmed-star::before,
body.view-strategy .ml-card.confirmed-mainline::before {
  background: var(--st-red);
}

body.view-strategy .ml-card:hover {
  transform: translateY(-1px) !important;
  border-color: rgba(194, 207, 224, 0.28) !important;
  background: #141d26 !important;
}

body.view-strategy .ml-top {
  grid-template-columns: 30px minmax(0, 1fr) auto !important;
  gap: 11px !important;
}

body.view-strategy .ml-rank {
  width: 30px !important;
  height: 30px !important;
  border-radius: 5px !important;
  font-size: 12px !important;
  font-weight: 780 !important;
}

body.view-strategy .ml-name-row {
  grid-template-columns: minmax(128px, 1fr) minmax(0, max-content);
  align-items: center !important;
}

body.view-strategy .ml-name {
  font-size: 18px !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
}

body.view-strategy .ml-head-pulse {
  min-height: 30px;
  padding: 4px 9px;
  border: 1px solid var(--st-line);
  border-radius: 6px;
  background: #0c1218;
}

body.view-strategy .ml-head-stat + .ml-head-stat {
  padding-left: 9px !important;
  border-left: 1px solid var(--st-line) !important;
}

body.view-strategy .ml-head-stat i {
  font-size: 9px !important;
}

body.view-strategy .ml-head-stat b {
  font-size: 13px !important;
}

body.view-strategy .ml-name-flags {
  margin-top: 7px !important;
}

body.view-strategy .ml-sub,
body.view-strategy .ml-srcpairs {
  font-size: 10px !important;
}

body.view-strategy .ml-score-wrap {
  min-width: 118px;
  gap: 0 !important;
  overflow: hidden;
  border: 1px solid var(--st-line);
  border-radius: 6px;
  background: #0c1218;
}

body.view-strategy .ml-score,
body.view-strategy .ml-predict {
  min-width: 58px !important;
  min-height: 52px;
  justify-content: center;
  padding: 7px 8px !important;
  border-left: 0 !important;
}

body.view-strategy .ml-predict {
  border-left: 1px solid var(--st-line) !important;
}

body.view-strategy .ml-score b,
body.view-strategy .ml-predict b {
  font-size: 19px !important;
}

body.view-strategy .ml-signal-strip {
  overflow: hidden;
  border: 1px solid var(--st-line);
  border-radius: 6px;
  background: #0c1218;
}

body.view-strategy .ml-signal-cell,
body.view-strategy .ml-signal-cell.support {
  min-height: 38px !important;
  justify-content: flex-start !important;
  padding: 8px 11px !important;
}

body.view-strategy .ml-signal-cell i {
  font-size: 10px !important;
}

body.view-strategy .ml-signal-cell b {
  margin-left: auto;
  font-size: 14px !important;
}

body.view-strategy .ml-proof-row:not(.ml-star-proof) {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 7px;
}

body.view-strategy .ml-proof-row:not(.ml-star-proof) > .ml-proof-lbl {
  grid-row: 1 / span 4;
  align-self: stretch;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  padding-top: 5px;
}

body.view-strategy .ml-proof-row:not(.ml-star-proof) > :not(.ml-proof-lbl) {
  grid-column: 2;
}

body.view-strategy .ml-stock.ml-leaderstock,
body.view-strategy .ml-board,
body.view-strategy .ml-stock:not(.ml-starstock) {
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 5px 8px !important;
  background: #0d141b !important;
}

body.view-strategy .ml-star-proof {
  display: grid !important;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 10px !important;
  align-items: stretch;
  padding: 0 !important;
  overflow: hidden;
  border: 1px solid rgba(231, 173, 70, 0.28) !important;
  border-left-width: 1px !important;
  background: #121516 !important;
}

body.view-strategy .ml-star-proof-head {
  min-height: 66px;
  display: flex !important;
  flex-direction: column;
  align-items: flex-start !important;
  justify-content: center;
  gap: 4px;
  margin: 0 !important;
  padding: 10px 12px;
  border-right: 1px solid rgba(231, 173, 70, 0.22);
  background: rgba(231, 173, 70, 0.08);
}

body.view-strategy .ml-card.has-confirmed-star .ml-star-proof,
body.view-strategy .ml-card.confirmed-mainline .ml-star-proof {
  border-color: rgba(255, 98, 93, 0.32) !important;
  background: #151314 !important;
}

body.view-strategy .ml-card.has-confirmed-star .ml-star-proof-head,
body.view-strategy .ml-card.confirmed-mainline .ml-star-proof-head {
  border-right-color: rgba(255, 98, 93, 0.24);
  background: rgba(255, 98, 93, 0.10);
}

body.view-strategy .ml-star-proof-title {
  font-size: 11px !important;
  font-weight: 780 !important;
}

body.view-strategy .ml-star-proof-summary {
  font-size: 10px !important;
}

body.view-strategy .ml-star-list {
  align-content: center;
  padding: 7px 8px 7px 0;
}

body.view-strategy .ml-stock.ml-starstock {
  min-height: 52px !important;
  display: grid !important;
  grid-template-columns: minmax(88px, 1fr) auto;
  align-items: center;
  gap: 4px 10px;
  padding: 7px 9px !important;
  border: 0 !important;
  border-radius: 5px !important;
  background: #0d1318 !important;
}

body.view-strategy .ml-stock.ml-starstock.confirmed {
  background: rgba(255, 98, 93, 0.075) !important;
}

body.view-strategy .ml-star-name {
  font-size: 14px !important;
}

body.view-strategy .ml-star-ratios {
  grid-column: 1 / -1;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 !important;
  padding-top: 6px !important;
  border-top: 1px solid var(--st-line);
}

body.view-strategy .ml-star-ratios > span {
  justify-content: space-between;
  padding: 0 8px;
  border-right: 1px solid var(--st-line);
}

body.view-strategy .ml-star-ratios > span:first-child { padding-left: 0; }
body.view-strategy .ml-star-ratios > span:last-child { border-right: 0; }

body.view-strategy .ml-reason {
  min-height: 32px;
  display: flex;
  align-items: center;
  padding: 7px 9px !important;
  border-left: 2px solid var(--st-line-strong);
  background: rgba(255, 255, 255, 0.018);
}

body.view-strategy .ml-card-actions {
  margin-top: 0 !important;
}

body.view-strategy .ml-toggle,
body.view-strategy .ml-confirm-btn {
  min-height: 34px !important;
}

body.view-strategy .ml-reserve {
  margin-top: 14px;
  padding-top: 11px;
}

body.view-strategy .ml-reserve-bar {
  margin-bottom: 7px;
  padding: 5px 9px;
  border-radius: 5px;
  background: rgba(231, 173, 70, 0.06);
}

body.view-strategy .ml-reserve-card .ml-star-proof {
  padding: 0 !important;
  font-size: inherit !important;
  line-height: inherit !important;
}

body.view-strategy .ml-review {
  margin-top: 20px !important;
  padding: 0 0 18px !important;
}

body.view-strategy .mlr-head {
  margin: 0 !important;
}

body.view-strategy .mlr-title-block {
  gap: 11px;
}

body.view-strategy .mlr-title-block > small {
  font-size: 11px;
}

body.view-strategy .mlr-outcome-summary {
  border-radius: 5px;
  background: transparent;
}

body.view-strategy .mlr-outcome-summary > span {
  min-width: 94px;
  min-height: 38px;
  padding: 8px 10px;
  background: #10171f;
}

body.view-strategy .mlr-overview {
  padding: 11px 2px 14px;
}

body.view-strategy .mlr-group {
  position: relative;
  padding-left: 14px;
}

body.view-strategy .mlr-group::before {
  content: "";
  position: absolute;
  inset: 31px auto 0 3px;
  width: 1px;
  background: var(--st-line);
}

body.view-strategy .mlr-group-title > i {
  position: relative;
  z-index: 1;
  margin-left: -14px;
  box-shadow: 0 0 0 5px var(--st-page);
}

body.view-strategy .mlr-group-list {
  gap: 6px;
  overflow: visible;
  border: 0;
  background: transparent;
}

body.view-strategy .mlr-row,
body.view-strategy .mlr-row.hit-ok,
body.view-strategy .mlr-row.hit-near,
body.view-strategy .mlr-row.hit-miss,
body.view-strategy .mlr-row.hit-wait,
body.view-strategy .mlr-row.hit-na,
body.view-strategy .mlr-row.hit-invalid {
  padding: 12px 13px !important;
  border: 1px solid var(--st-line) !important;
  border-left: 3px solid rgba(194, 207, 224, 0.25) !important;
  border-radius: 7px !important;
  background: #10171f !important;
}

body.view-strategy .mlr-row.star-confirmed {
  border-color: rgba(255, 98, 93, 0.26) !important;
  border-left-color: var(--st-red) !important;
  background: #181719 !important;
}

body.view-strategy .mlr-row.star-missed {
  border-color: rgba(231, 173, 70, 0.20) !important;
  border-left-color: var(--st-amber) !important;
  background: #17191a !important;
}

body.view-strategy .mlr-row.star-pending {
  border-left: 3px dashed #7398c1 !important;
  background: #111922 !important;
}

body.view-strategy .mlr-l1 {
  grid-template-columns: 50px minmax(0, 1fr) auto;
  align-items: start !important;
  gap: 12px !important;
}

body.view-strategy .mlr-day {
  min-height: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-right: 1px solid var(--st-line);
  color: #b6c1ce !important;
  font-weight: 760;
  font-variant-numeric: tabular-nums;
}

body.view-strategy .mlr-route {
  grid-column: 2;
  min-width: 0;
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
}

body.view-strategy .mlr-route.has-outcome {
  grid-template-columns: minmax(230px, 0.9fr) minmax(280px, 1.1fr);
  gap: 16px;
}

body.view-strategy .mlr-route-primary,
body.view-strategy .mlr-route-outcome {
  min-width: 0;
  min-height: 28px;
  display: flex;
  align-items: center;
  gap: 8px;
}

body.view-strategy .mlr-route-primary {
  flex-wrap: wrap;
}

body.view-strategy .mlr-route-primary .mlr-pred {
  min-width: 180px;
  flex: 1 1 220px;
}

body.view-strategy .mlr-route-outcome {
  padding-left: 16px;
  border-left: 1px solid var(--st-line);
}

body.view-strategy .mlr-star-signal {
  grid-column: auto;
  min-height: 28px;
  padding: 4px 8px !important;
}

body.view-strategy .mlr-pred,
body.view-strategy .mlr-result {
  grid-column: auto;
  min-height: 28px;
  align-items: center;
}

body.view-strategy .mlr-route .mlr-arrow {
  grid-column: auto;
  flex: 0 0 auto;
  width: 18px;
  margin: 0;
  text-align: center;
}

body.view-strategy .mlr-route .mlr-result {
  flex: 1 1 auto;
}

body.view-strategy .mlr-l1 > .mlr-invalid {
  grid-column: 3;
  align-self: start;
  margin-top: 3px;
}

body.view-strategy .mlr-l2:not(.mlr-reserve-line) {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  margin: 10px 0 0 60px !important;
  padding: 9px 0 0 !important;
}

body.view-strategy .mlr-l2:not(.mlr-reserve-line) > .mlr-slot {
  min-width: 0;
}

body.view-strategy .ml-l2-history,
body.view-strategy .strategy-focus-section,
body.view-strategy .theme-calib {
  border-right: 0 !important;
  border-left: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}

@media (max-width: 1180px) {
  body.view-strategy .strategy-hero {
    grid-template-columns: 1fr;
  }

  body.view-strategy .strategy-hero-utility {
    min-width: 0;
    border-top: 1px solid var(--st-line);
    border-left: 0;
  }

  body.view-strategy .strategy-hero .strategy-board-search-section {
    width: min(420px, 100%) !important;
  }

  body.view-strategy .ml-cols {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  body.view-strategy .ml-col:last-child {
    padding: 12px 0 0 !important;
  }
}

@media (max-width: 760px) {
  body.view-strategy .topbar {
    max-width: 100vw;
    overflow: hidden;
    position: relative !important;
    top: auto !important;
  }

  body.view-strategy .topbar-actions {
    width: 100%;
    max-width: calc(100vw - 20px);
    flex: 1 0 100%;
    justify-content: flex-end;
    gap: 5px;
  }

  body.view-strategy .account-pill.is-logged-in {
    max-width: 100% !important;
    gap: 4px;
    padding-right: 5px;
    padding-left: 8px;
  }

  body.view-strategy .account-pill.is-logged-in .account-chip-action {
    padding: 0 8px;
    font-size: 11px;
  }

  body.view-strategy .account-chip-name { max-width: 72px; }
  body.view-strategy .account-chip-role { padding-right: 6px; padding-left: 6px; }

  body.view-strategy .kpi-corner {
    max-width: calc(100vw - 82px);
    overflow: hidden;
    padding-right: 6px;
    padding-left: 6px;
  }

  body.view-strategy .kpi-corner .kpi-home-btn { padding-right: 8px; padding-left: 7px; }
  body.view-strategy .kpi-corner .kpi-item { min-width: 56px; padding-right: 7px; padding-left: 7px; }

  body.view-strategy .strategy-page {
    padding-top: 10px !important;
  }

  body.view-strategy .strategy-hero-head {
    gap: 10px;
    padding: 12px 12px 11px 15px !important;
  }

  body.view-strategy .strategy-hero-heading {
    width: 100%;
    align-items: center;
    flex-direction: row;
  }

  body.view-strategy .strategy-title {
    font-size: 19px !important;
  }

  body.view-strategy .strategy-subtitle {
    gap: 7px !important;
  }

  body.view-strategy .strategy-hero-utility {
    min-height: 0;
    padding: 9px 11px 10px 14px !important;
  }

  body.view-strategy .ml-title,
  body.view-strategy .mlr-head {
    width: 100%;
    overflow: hidden;
    padding-left: 1px !important;
    padding-right: 1px !important;
  }

  body.view-strategy .ml-cols {
    padding: 0 0 12px;
  }

  body.view-strategy .ml-col:last-child {
    padding-top: 9px !important;
  }

  body.view-strategy .ml-card {
    padding: 12px !important;
  }

  body.view-strategy .ml-top {
    grid-template-columns: 28px minmax(0, 1fr) !important;
  }

  body.view-strategy .ml-name-row {
    grid-template-columns: 1fr;
    gap: 7px !important;
  }

  body.view-strategy .ml-head-pulse {
    justify-content: flex-start;
  }

  body.view-strategy .ml-score-wrap {
    grid-column: 1 / -1;
    width: 100%;
  }

  body.view-strategy .ml-score,
  body.view-strategy .ml-predict {
    flex: 1 1 0;
  }

  body.view-strategy .ml-signal-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.view-strategy .ml-signal-cell:nth-child(2) {
    border-right: 0 !important;
  }

  body.view-strategy .ml-signal-cell:nth-child(-n+2) {
    border-bottom: 1px solid var(--st-line) !important;
  }

  body.view-strategy .ml-star-proof {
    grid-template-columns: 1fr;
  }

  body.view-strategy .ml-star-proof-head {
    min-height: 0;
    flex-direction: row;
    justify-content: space-between;
    padding: 8px 10px;
    border-right: 0;
    border-bottom: 1px solid rgba(231, 173, 70, 0.22);
  }

  body.view-strategy .ml-card.has-confirmed-star .ml-star-proof-head,
  body.view-strategy .ml-card.confirmed-mainline .ml-star-proof-head {
    border-right: 0;
    border-bottom-color: rgba(255, 98, 93, 0.24);
  }

  body.view-strategy .ml-star-list {
    padding: 7px;
  }

  body.view-strategy .mlr-group {
    padding-left: 9px;
  }

  body.view-strategy .mlr-group-title > i {
    margin-left: -9px;
  }

  body.view-strategy .mlr-l1 {
    grid-template-columns: 44px minmax(0, 1fr) !important;
    gap: 8px !important;
  }

  body.view-strategy .mlr-day {
    justify-content: flex-start;
    border-right: 0;
  }

  body.view-strategy .mlr-route {
    grid-column: 2;
  }

  body.view-strategy .mlr-route.has-outcome {
    grid-template-columns: minmax(0, 1fr);
    gap: 7px;
  }

  body.view-strategy .mlr-route-primary {
    align-items: flex-start;
  }

  body.view-strategy .mlr-route-primary .mlr-pred,
  body.view-strategy .mlr-route-outcome .mlr-result {
    width: 100%;
    padding-left: 0;
  }

  body.view-strategy .mlr-route-outcome {
    padding: 7px 0 0;
    border-top: 1px solid var(--st-line);
    border-left: 0;
  }

  body.view-strategy .mlr-l1 > .mlr-invalid {
    grid-column: 2;
    margin-top: 0;
  }

  body.view-strategy .mlr-l2:not(.mlr-reserve-line) {
    margin-left: 0 !important;
  }

  body.view-strategy .theme-calib .strategy-section-head {
    max-width: 100%;
    overflow: hidden;
  }

  body.view-strategy .theme-calib .strategy-section-sub {
    width: 100%;
    max-width: 100%;
    flex-basis: 100%;
    margin-left: 0;
    overflow-wrap: anywhere;
    white-space: normal;
  }
}

/* ===== L2 scan disclosure 2026-07-22: calm by default, evidence on demand ===== */
body.view-strategy .ml-l2-history {
  padding: 0 14px !important;
}

body.view-strategy .ml-l2-history-disclosure {
  overflow: hidden;
  border: 1px solid var(--st-line);
  border-radius: 7px;
  background: var(--st-panel-2);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.022);
}

body.view-strategy .ml-l2-history-summary,
body.view-strategy .ml-l2-job-summary {
  list-style: none;
}

body.view-strategy .ml-l2-history-summary::-webkit-details-marker,
body.view-strategy .ml-l2-job-summary::-webkit-details-marker {
  display: none;
}

body.view-strategy .ml-l2-history-summary::marker,
body.view-strategy .ml-l2-job-summary::marker {
  content: '';
}

body.view-strategy .ml-l2-history-summary {
  min-height: 54px;
  display: grid;
  grid-template-columns: minmax(210px, auto) minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 10px 13px;
  cursor: pointer;
  background: rgba(255, 255, 255, 0.012);
  transition: background-color 160ms ease;
}

body.view-strategy .ml-l2-history-summary:hover,
body.view-strategy .ml-l2-history-disclosure[open] > .ml-l2-history-summary {
  background: rgba(255, 255, 255, 0.026);
}

body.view-strategy .ml-l2-history-summary:focus-visible,
body.view-strategy .ml-l2-job-summary:focus-visible {
  outline: 2px solid rgba(74, 155, 255, 0.72);
  outline-offset: -2px;
}

body.view-strategy .ml-l2-history-heading {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

body.view-strategy .ml-l2-history-heading .strategy-section-title {
  display: inline-flex;
  align-items: center;
  font-size: 14px !important;
  white-space: nowrap;
}

body.view-strategy .ml-l2-history-heading small {
  padding-left: 8px;
  border-left: 1px solid var(--st-line);
  color: var(--st-faint);
  font-size: 10px;
  font-weight: 650;
  white-space: nowrap;
}

body.view-strategy .ml-l2-history-overview {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0;
  overflow: hidden;
}

body.view-strategy .ml-l2-history-overview > span {
  min-width: 0;
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  padding: 0 10px;
  border-right: 1px solid var(--st-line);
  white-space: nowrap;
}

body.view-strategy .ml-l2-history-overview > span:first-child { padding-left: 0; }
body.view-strategy .ml-l2-history-overview > span:last-child { padding-right: 0; border-right: 0; }
body.view-strategy .ml-l2-history-overview b { color: var(--st-text); font-size: 12px; font-weight: 780; }
body.view-strategy .ml-l2-history-overview i { color: var(--st-faint); font-size: 10px; font-style: normal; }
body.view-strategy .ml-l2-history-overview .confirmed b,
body.view-strategy .ml-l2-history-overview .confirmed i { color: #ff766f; }
body.view-strategy .ml-l2-history-overview .confirmed-history b,
body.view-strategy .ml-l2-history-overview .confirmed-history i { color: #f19a82; }
body.view-strategy .ml-l2-history-overview .expected b,
body.view-strategy .ml-l2-history-overview .expected i { color: #eab451; }
body.view-strategy .ml-l2-history-overview .running b,
body.view-strategy .ml-l2-history-overview .running i { color: #6aa8ef; }

body.view-strategy .ml-l2-history-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  color: var(--st-muted);
  font-size: 10px;
  white-space: nowrap;
}

body.view-strategy .ml-l2-history-toggle i {
  font-style: normal;
}

body.view-strategy .ml-l2-history-toggle .when-open { display: none; }
body.view-strategy .ml-l2-history-disclosure[open] .ml-l2-history-toggle .when-closed { display: none; }
body.view-strategy .ml-l2-history-disclosure[open] .ml-l2-history-toggle .when-open { display: inline; }

body.view-strategy .ml-l2-history-toggle b,
body.view-strategy .ml-l2-job-toggle {
  width: 7px;
  height: 7px;
  border-right: 1px solid #7990ae;
  border-bottom: 1px solid #7990ae;
  transform: rotate(45deg) translateY(-2px);
  transition: transform 160ms ease;
}

body.view-strategy .ml-l2-history-disclosure[open] .ml-l2-history-toggle b,
body.view-strategy .ml-l2-job[open] .ml-l2-job-toggle {
  transform: rotate(225deg) translate(-1px, -1px);
}

body.view-strategy .ml-l2-history-panel {
  padding: 8px;
  border-top: 1px solid var(--st-line);
  background: rgba(8, 12, 18, 0.20);
  animation: ml-l2-panel-in 160ms ease-out;
}

@keyframes ml-l2-panel-in {
  from { opacity: 0; transform: translateY(-3px); }
  to { opacity: 1; transform: translateY(0); }
}

body.view-strategy .ml-l2-job-grid {
  display: grid !important;
  gap: 5px;
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}

body.view-strategy .ml-l2-job {
  display: block !important;
  padding: 0 !important;
  border: 1px solid var(--st-line) !important;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.014) !important;
}

body.view-strategy .ml-l2-job:last-child {
  border-bottom: 1px solid var(--st-line) !important;
}

body.view-strategy .ml-l2-job.has-star {
  border-color: rgba(205, 169, 91, 0.25) !important;
}

body.view-strategy .ml-l2-job-summary {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(190px, 0.52fr) minmax(130px, auto) 18px;
  align-items: center;
  gap: 12px;
  padding: 8px 10px;
  cursor: pointer;
  transition: background-color 150ms ease;
}

body.view-strategy .ml-l2-job-summary:hover,
body.view-strategy .ml-l2-job[open] > .ml-l2-job-summary {
  background: rgba(255, 255, 255, 0.024);
}

body.view-strategy .ml-l2-job-head {
  gap: 5px !important;
}

body.view-strategy .ml-l2-job-meta {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 !important;
  border-left: 1px solid var(--st-line);
  border-right: 1px solid var(--st-line);
}

body.view-strategy .ml-l2-job-meta span {
  min-height: 24px !important;
  padding: 2px 7px !important;
}

body.view-strategy .ml-l2-job-stars {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  color: var(--st-faint);
  font-size: 10px;
  white-space: nowrap;
}

body.view-strategy .ml-l2-job-stars span {
  font-weight: 730;
}

body.view-strategy .ml-l2-job-stars .confirmed { color: #ff766f; }
body.view-strategy .ml-l2-job-stars .expected { color: #eab451; }
body.view-strategy .ml-l2-job-stars.is-empty { font-weight: 560; }

body.view-strategy .ml-l2-job-toggle {
  display: block;
  justify-self: center;
}

body.view-strategy .ml-l2-job-body {
  padding: 8px;
  border-top: 1px solid var(--st-line);
  background: rgba(7, 11, 16, 0.24);
}

body.view-strategy .ml-l2-job-body .ml-l2-empty {
  padding: 7px 4px;
}

/* L2 stock detail: make every threshold's amounts and ratios independently scannable. */
body.view-strategy .ml-l2-stock-detail {
  border-top: 1px solid var(--st-line);
  background: rgba(4, 9, 15, 0.24);
}

body.view-strategy .ml-l2-stock-detail .ml-l2-buckets {
  padding: 10px 10px 11px !important;
  border-top: 0 !important;
}

body.view-strategy .ml-l2-bucket-title {
  min-width: 0;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 0 1px 8px;
}

body.view-strategy .ml-l2-bucket-title b {
  color: var(--st-text);
  font-size: 11px;
  font-weight: 760;
}

body.view-strategy .ml-l2-bucket-title small {
  overflow: hidden;
  color: var(--st-faint);
  font-size: 9px;
  line-height: 1.45;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 逐档明细 6 列紧凑表(2026-07-24 重设计):买/卖成对、比值为视觉主角、限宽左对齐,
   不再铺满整页。列宽合计约 560px,超窄屏才横向滚动。 */
body.view-strategy .ml-l2-bucket-table-wrap {
  width: max-content;
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid var(--st-line);
  border-radius: 8px;
  background: rgba(8, 13, 20, 0.42);
  scrollbar-color: rgba(126, 151, 184, 0.34) transparent;
  scrollbar-width: thin;
}

body.view-strategy .ml-l2-bucket-table {
  width: 560px;
  border-spacing: 0;
  border-collapse: separate;
  table-layout: fixed;
}

body.view-strategy .ml-l2-bucket-table col,
body.view-strategy .ml-l2-bucket-table .col-bucket { width: 92px; }
body.view-strategy .ml-l2-bucket-table .col-amt { width: 138px; }
body.view-strategy .ml-l2-bucket-table .col-ratio { width: 58px; }
body.view-strategy .ml-l2-bucket-table .col-support { width: 58px; }

body.view-strategy .ml-l2-bucket-table th,
body.view-strategy .ml-l2-bucket-table td {
  height: 36px;
  padding: 5px 8px;
  border-bottom: 1px solid rgba(174, 190, 214, 0.08);
  text-align: right;
  vertical-align: middle;
  white-space: nowrap;
}

body.view-strategy .ml-l2-bucket-table tbody tr:last-child th,
body.view-strategy .ml-l2-bucket-table tbody tr:last-child td {
  border-bottom: 0;
}

/* 组分隔线:主动｜被动｜合力 三段边界 */
body.view-strategy .ml-l2-bucket-table thead .grp-passive,
body.view-strategy .ml-l2-bucket-table thead .col-support,
body.view-strategy .ml-l2-bucket-table thead tr:nth-child(2) th:nth-child(3),
body.view-strategy .ml-l2-bucket-table tbody td:nth-child(2),
body.view-strategy .ml-l2-bucket-table tbody td:nth-child(4),
body.view-strategy .ml-l2-bucket-table tbody td:nth-child(6) {
  border-left: 1px solid rgba(126, 159, 205, 0.15);
}

/* 表头两行:组名(主动成交/被动成交/合力比)+ 子列名 */
body.view-strategy .ml-l2-bucket-table thead th {
  height: 24px;
  padding: 3px 8px;
  color: var(--st-faint);
  background: rgba(255, 255, 255, 0.026);
  font-size: 10px;
  font-weight: 650;
  letter-spacing: 0;
  text-align: right;
}

body.view-strategy .ml-l2-bucket-table thead .grp {
  text-align: center;
  color: var(--st-muted);
  font-size: 11px;
  font-weight: 740;
}

body.view-strategy .ml-l2-bucket-table thead .grp-active { color: #d98f8b; }
body.view-strategy .ml-l2-bucket-table thead .grp-passive { color: #8aa9cf; }

body.view-strategy .ml-l2-bucket-table thead .col-bucket,
body.view-strategy .ml-l2-bucket-table thead .col-amt { text-align: left; }

body.view-strategy .ml-l2-bucket-table thead .col-ratio { text-align: center; }

body.view-strategy .ml-l2-bucket-table thead .col-support {
  color: #cbb27e;
  font-size: 11px;
  font-weight: 740;
  text-align: center;
  vertical-align: middle;
}

body.view-strategy .ml-l2-bucket-table .ml-l2-bucket-row {
  display: table-row !important;
  background: transparent;
}

body.view-strategy .ml-l2-bucket-table .ml-l2-bucket-row:hover {
  background: rgba(255, 255, 255, 0.022);
}

body.view-strategy .ml-l2-bucket-table .ml-l2-bucket-row.is-max {
  background: rgba(74, 155, 255, 0.07) !important;
}

body.view-strategy .ml-l2-bucket-table .ml-l2-bucket-row.is-empty .ml-l2-amt-pair,
body.view-strategy .ml-l2-bucket-table .ml-l2-bucket-row.is-empty .ml-l2-table-ratio {
  opacity: 0.55;
}

/* 档位名(粘性左列) */
body.view-strategy .ml-l2-bucket-table .ml-l2-bucket-name {
  position: sticky;
  left: 0;
  z-index: 1;
  display: table-cell !important;
  padding-left: 10px;
  color: var(--st-text);
  background: #0c131d;
  text-align: left;
}

body.view-strategy .ml-l2-bucket-table .ml-l2-bucket-row.is-max .ml-l2-bucket-name {
  background: #102033;
  box-shadow: inset 3px 0 0 #4a9bff;
}

body.view-strategy .ml-l2-bucket-table .ml-l2-bucket-name b {
  display: inline-block;
  color: var(--st-text);
  font-size: 12px;
  font-weight: 760;
}

body.view-strategy .ml-l2-bucket-table .ml-l2-bucket-name i {
  display: inline-block;
  margin-left: 5px;
  padding: 1px 5px;
  border-radius: 4px;
  color: #8abaff;
  background: rgba(74, 155, 255, 0.12);
  font-size: 8px;
  font-style: normal;
  line-height: 1.4;
  vertical-align: 1px;
}

body.view-strategy .ml-l2-bucket-table .ml-l2-bucket-name small {
  display: block;
  margin-top: 1px;
  overflow: hidden;
  color: #d6a768;
  font-size: 9px;
  font-weight: 520;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 买/卖成对格:小标签 + 数值,买红卖绿,斜杠弱化 */
body.view-strategy .ml-l2-amt-pair {
  padding: 5px 8px;
  text-align: left;
}

body.view-strategy .ml-l2-amt-pair .ml-l2-table-money {
  display: inline-flex;
  align-items: baseline;
  gap: 3px;
}

body.view-strategy .ml-l2-amt-pair .ml-l2-table-money i {
  color: var(--st-faint);
  font-size: 9px;
  font-style: normal;
}

body.view-strategy .ml-l2-amt-sep {
  margin: 0 6px;
  color: rgba(174, 190, 214, 0.3);
  font-style: normal;
}

body.view-strategy .ml-l2-table-money b {
  font-size: 11.5px;
  font-variant-numeric: tabular-nums;
  font-weight: 720;
}

body.view-strategy .ml-l2-table-money.is-buy b { color: var(--st-red); }
body.view-strategy .ml-l2-table-money.is-sell b { color: var(--st-green); }

/* 比值:视觉主角,更大更醒目;三类比值各自淡色底,合力比最强调 */
body.view-strategy .ml-l2-table-ratio {
  text-align: center;
}

body.view-strategy .ml-l2-table-ratio b {
  font-size: 14px;
  font-variant-numeric: tabular-nums;
  font-weight: 760;
  color: #d6e2f2;
}

body.view-strategy .ml-l2-table-ratio.is-active { background: rgba(217, 143, 139, 0.05); }
body.view-strategy .ml-l2-table-ratio.is-passive { background: rgba(138, 169, 207, 0.05); }
body.view-strategy .ml-l2-table-ratio.is-support {
  background: rgba(203, 178, 126, 0.07);
}
body.view-strategy .ml-l2-table-ratio.is-support b { color: #ecd9ad; }

body.view-strategy .ml-l2-bucket-table .ml-l2-bucket-row.is-max .ml-l2-table-ratio b { color: #eaf1fb; }

@media (max-width: 920px) {
  body.view-strategy .ml-l2-history-summary {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  body.view-strategy .ml-l2-history-overview {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-content: flex-start;
  }

  body.view-strategy .ml-l2-history-toggle {
    grid-column: 2;
    grid-row: 1;
  }

  body.view-strategy .ml-l2-job-summary {
    grid-template-columns: minmax(0, 1fr) auto 18px;
    gap: 8px;
  }

  body.view-strategy .ml-l2-job-meta {
    grid-column: 1 / 3;
    grid-row: 2;
    width: min(300px, 100%);
    border-left: 0;
  }

  body.view-strategy .ml-l2-job-stars {
    grid-column: 2;
    grid-row: 1;
  }

  body.view-strategy .ml-l2-job-toggle {
    grid-column: 3;
    grid-row: 1;
  }
}

@media (max-width: 600px) {
  body.view-strategy .ml-l2-history {
    padding: 0 10px !important;
  }

  body.view-strategy .ml-l2-history-summary {
    min-height: 0;
    gap: 8px 10px;
    padding: 10px;
  }

  body.view-strategy .ml-l2-history-heading {
    gap: 6px;
  }

  body.view-strategy .ml-l2-history-heading small {
    padding-left: 6px;
  }

  body.view-strategy .ml-l2-history-overview {
    overflow-x: auto;
    scrollbar-width: none;
  }

  body.view-strategy .ml-l2-history-overview::-webkit-scrollbar { display: none; }
  body.view-strategy .ml-l2-history-overview > span { padding: 0 7px; }
  body.view-strategy .ml-l2-history-toggle i { display: none !important; }
  body.view-strategy .ml-l2-history-panel { padding: 6px; }

  body.view-strategy .ml-l2-job-summary {
    grid-template-columns: minmax(0, 1fr) 18px;
    padding: 8px;
  }

  body.view-strategy .ml-l2-job-head {
    flex-wrap: wrap;
  }

  body.view-strategy .ml-l2-job-head time {
    display: none;
  }

  body.view-strategy .ml-l2-job-stars {
    grid-column: 1;
    grid-row: 2;
    justify-content: flex-start;
  }

  body.view-strategy .ml-l2-job-meta {
    grid-column: 1 / -1;
    grid-row: 3;
    width: 100%;
  }

  body.view-strategy .ml-l2-job-toggle {
    grid-column: 2;
    grid-row: 1;
  }

  body.view-strategy .ml-l2-job-body {
    padding: 6px;
  }

  body.view-strategy .ml-l2-stock-detail .ml-l2-buckets {
    padding: 9px 6px 7px !important;
  }

  body.view-strategy .ml-l2-bucket-title {
    display: block;
  }

  body.view-strategy .ml-l2-bucket-title small {
    display: block;
    margin-top: 3px;
    overflow: visible;
    text-align: left;
    text-overflow: clip;
    white-space: normal;
  }
}

/* Prediction review timeline: restrained width and list-based hierarchy. */
body.view-strategy .ml-review {
  width: min(100%, 1040px);
  margin: 20px 0 0 !important;
}

body.view-strategy .mlr-overview {
  gap: 7px;
  padding: 10px 0 13px;
}

body.view-strategy .mlr-stats {
  width: auto;
  display: flex !important;
  flex-wrap: wrap;
  gap: 0 !important;
}

body.view-strategy .mlr-chip {
  min-width: auto;
  min-height: 19px;
  justify-content: flex-start;
  padding: 0 10px !important;
  border: 0 !important;
  border-right: 1px solid var(--st-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  white-space: nowrap;
}

body.view-strategy .mlr-chip:first-child {
  padding-left: 0 !important;
}

body.view-strategy .mlr-chip:last-child {
  border-right: 0 !important;
}

body.view-strategy .mlr-group {
  padding-left: 0;
}

body.view-strategy .mlr-group::before {
  display: none;
}

body.view-strategy .mlr-group-title > i {
  margin-left: 0;
}

body.view-strategy .mlr-group-list {
  gap: 0;
  overflow: hidden;
  border: 1px solid var(--st-line);
  border-radius: 6px;
  background: #10171f;
}

body.view-strategy .mlr-row,
body.view-strategy .mlr-row.hit-ok,
body.view-strategy .mlr-row.hit-near,
body.view-strategy .mlr-row.hit-miss,
body.view-strategy .mlr-row.hit-wait,
body.view-strategy .mlr-row.hit-na,
body.view-strategy .mlr-row.hit-invalid {
  overflow: hidden;
  padding: 0 !important;
  border: 0 !important;
  border-bottom: 1px solid var(--st-line) !important;
  border-left: 2px solid rgba(194, 207, 224, 0.24) !important;
  border-radius: 0 !important;
  background: #10171f !important;
}

body.view-strategy .mlr-row:last-child {
  border-bottom: 0 !important;
}

body.view-strategy .mlr-row.star-confirmed {
  border-left-color: var(--st-red) !important;
  background: #10171f !important;
}

body.view-strategy .mlr-row.star-missed {
  border-left-color: var(--st-amber) !important;
  background: #10171f !important;
}

body.view-strategy .mlr-row.star-pending {
  border-left: 2px dashed #7398c1 !important;
  background: #10171f !important;
}

@media (min-width: 900px) {
  body.view-strategy .mlr-group.confirmed .mlr-group-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: 8px;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  body.view-strategy .mlr-group.confirmed .mlr-row {
    height: 100%;
    min-width: 0;
    border: 1px solid var(--st-line) !important;
    border-left: 2px solid var(--st-red) !important;
    border-radius: 6px !important;
  }

  body.view-strategy .mlr-group.confirmed .mlr-row:last-child {
    border-bottom: 1px solid var(--st-line) !important;
  }

  body.view-strategy .mlr-group.confirmed .mlr-compare {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  body.view-strategy .mlr-group.confirmed .mlr-compare-arrow {
    height: 10px;
    line-height: 10px;
    transform: rotate(90deg);
  }

  body.view-strategy .mlr-group.confirmed .mlr-compare-block.outcome {
    padding-top: 8px;
    border-top: 1px solid var(--st-line);
  }

  body.view-strategy .mlr-group.confirmed .mlr-evidence-grid {
    grid-template-columns: 1fr;
  }

  body.view-strategy .mlr-group.confirmed .mlr-evidence-grid > .mlr-slot,
  body.view-strategy .mlr-group.confirmed .mlr-evidence-grid > .mlr-slot:nth-child(n+3) {
    grid-column: auto;
    border-top: 0 !important;
    border-right: 0 !important;
    border-bottom: 1px solid var(--st-line) !important;
  }

  body.view-strategy .mlr-group.confirmed .mlr-evidence-grid > .mlr-slot:last-child {
    border-bottom: 0 !important;
  }
}

body.view-strategy .mlr-card-head {
  min-height: 42px;
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  border-bottom: 1px solid var(--st-line);
}

body.view-strategy .mlr-card-head .mlr-day {
  min-height: 25px;
  justify-content: flex-start;
  border-right: 1px solid var(--st-line);
  color: #c5cfda !important;
  font-size: 12px !important;
  font-weight: 780;
  font-variant-numeric: tabular-nums;
}

body.view-strategy .mlr-card-identity {
  min-width: 0;
  display: flex;
  align-items: center;
}

body.view-strategy .mlr-card-state {
  overflow: hidden;
  color: var(--st-text);
  font-size: 12px;
  font-weight: 760;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.view-strategy .mlr-card-state.quiet {
  color: var(--st-muted);
  font-weight: 670;
}

body.view-strategy .mlr-card-head .mlr-star-signal {
  min-height: 0;
  max-width: 100%;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  overflow: hidden;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.view-strategy .mlr-card-head .mlr-star-signal i {
  flex: 0 0 auto;
  padding-right: 7px;
  border-right: 1px solid currentColor;
  opacity: 0.74;
}

body.view-strategy .mlr-card-head .mlr-star-signal b {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.view-strategy .mlr-card-head .mlr-phase,
body.view-strategy .mlr-card-head .mlr-invalid {
  justify-self: end;
}

body.view-strategy .mlr-compare {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 28px minmax(0, 1fr);
  align-items: stretch;
  gap: 0;
  padding: 10px 12px;
}

body.view-strategy .mlr-compare-block {
  min-width: 0;
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr);
  align-items: start;
  gap: 10px;
}

body.view-strategy .mlr-compare-block > div {
  min-width: 0;
}

body.view-strategy .mlr-block-label {
  padding-top: 5px;
  color: var(--st-faint);
  font-size: 9.5px;
  font-weight: 720;
  line-height: 1.35;
  white-space: nowrap;
}

body.view-strategy .mlr-compare-arrow {
  align-self: center;
  color: #53677e;
  font-size: 14px;
  text-align: center;
}

body.view-strategy .mlr-compare .mlr-pred,
body.view-strategy .mlr-compare .mlr-result {
  min-height: 28px;
  display: flex;
  align-items: center;
}

body.view-strategy .mlr-compare .mlr-result {
  min-width: 0;
  gap: 7px;
}

body.view-strategy .mlr-source-grid {
  width: 100%;
  min-width: 0;
  display: grid;
  gap: 4px;
}

body.view-strategy .mlr-source-row {
  min-width: 0;
  min-height: 25px;
  display: grid;
  grid-template-columns: 50px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
}

body.view-strategy .mlr-source-row + .mlr-source-row {
  padding-top: 4px;
  border-top: 1px solid rgba(194, 207, 224, 0.08);
}

body.view-strategy .mlr-source-name {
  color: var(--st-faint);
  font-size: 9.5px;
  font-weight: 650;
}

body.view-strategy .mlr-source-row strong {
  min-width: 0;
  overflow: hidden;
  color: var(--st-text);
  font-size: 12px;
  font-weight: 760;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.view-strategy .mlr-source-row.no-mainline strong,
body.view-strategy .mlr-source-row.unavailable strong,
body.view-strategy .mlr-source-row.unknown strong {
  color: var(--st-muted);
  font-weight: 660;
}

body.view-strategy .mlr-actual {
  min-width: 0;
  overflow: hidden;
  color: #e5edf7 !important;
  font-size: 13px;
  font-weight: 780 !important;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.view-strategy .mlr-actual i {
  margin-left: 7px !important;
  color: var(--st-muted) !important;
  font-size: 10px !important;
  font-weight: 620 !important;
}

body.view-strategy .mlr-evidence-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin: 0 12px 10px;
  border-top: 1px solid var(--st-line);
  background: transparent;
}

body.view-strategy .mlr-evidence-grid > .mlr-slot {
  min-width: 0;
  display: grid !important;
  grid-template-columns: 48px minmax(0, 1fr);
  align-items: start;
  gap: 8px;
  padding: 8px 10px;
  border: 0 !important;
  border-right: 1px solid var(--st-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.view-strategy .mlr-evidence-grid > .mlr-slot:last-child {
  border-right: 0 !important;
}

body.view-strategy .mlr-evidence-grid > .mlr-slot:nth-child(even) {
  border-right: 0 !important;
}

body.view-strategy .mlr-evidence-grid > .mlr-slot:nth-child(n+3) {
  border-top: 1px solid var(--st-line) !important;
}

body.view-strategy .mlr-evidence-grid > .mlr-slot:last-child:nth-child(odd) {
  grid-column: 1 / -1;
  border-right: 0 !important;
}

body.view-strategy .mlr-evidence-grid > .mlr-slot > .mlr-label {
  padding-top: 2px;
  color: var(--st-faint);
  font-size: 9.5px;
  font-weight: 670;
}

body.view-strategy .mlr-evidence-grid .mlr-star-slot.confirmed {
  background: transparent !important;
  box-shadow: none !important;
}

body.view-strategy .mlr-evidence-grid .mlr-star-slot.missed {
  background: transparent !important;
  box-shadow: none !important;
}

body.view-strategy .mlr-evidence-grid .mlr-star-slot.pending {
  background: transparent !important;
  box-shadow: none !important;
}

body.view-strategy .mlr-stock-review {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(76px, auto) minmax(0, 1fr);
  align-items: center;
  gap: 8px;
}

body.view-strategy .mlr-stock-review-head {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 5px;
}

body.view-strategy .mlr-stock-review-head .mlr-name {
  min-width: 0;
  overflow: hidden;
  color: #e7eef7;
  font-size: 11px;
  font-weight: 720;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.view-strategy .mlr-performance {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
}

body.view-strategy .mlr-perf {
  min-width: 0;
  min-height: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 5px;
  padding: 0 7px;
  border: 0 !important;
  border-left: 1px solid rgba(194, 207, 224, 0.09) !important;
  border-radius: 0 !important;
  background: transparent !important;
}

body.view-strategy .mlr-perf:first-child {
  border-left: 0 !important;
}

body.view-strategy .mlr-perf i,
body.view-strategy .mlr-perf b {
  white-space: nowrap;
}

body.view-strategy .mlr-conversion-slot {
  align-items: center !important;
}

body.view-strategy .mlr-reserve-line {
  margin: 0 12px 9px;
  padding-top: 7px;
  border-top: 1px dashed rgba(231, 173, 70, 0.20);
  opacity: 1;
}

body.view-strategy .mlr-reserve-line > summary {
  min-height: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
  list-style: none;
}

body.view-strategy .mlr-reserve-line > summary::-webkit-details-marker {
  display: none;
}

body.view-strategy .mlr-reserve-line > summary > span {
  min-width: 0;
  display: flex;
  align-items: baseline;
  gap: 8px;
}

body.view-strategy .mlr-reserve-line > summary b {
  color: #d2aa68;
  font-size: 10px;
  font-weight: 720;
}

body.view-strategy .mlr-reserve-line > summary small {
  overflow: hidden;
  color: var(--st-faint);
  font-size: 9px;
  font-weight: 570;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.view-strategy .mlr-reserve-line > summary > em {
  flex: 0 0 auto;
  color: #9d8255;
  font-size: 9px;
  font-style: normal;
  font-weight: 680;
}

body.view-strategy .mlr-reserve-line > summary > em::after {
  content: "";
  width: 6px;
  height: 6px;
  display: inline-block;
  margin: 0 2px 2px 7px;
  border-right: 1px solid #9d8255;
  border-bottom: 1px solid #9d8255;
  transform: rotate(45deg);
  transition: transform 150ms ease;
}

body.view-strategy .mlr-reserve-line[open] > summary > em::after {
  margin-bottom: -1px;
  transform: rotate(225deg);
}

body.view-strategy .mlr-reserve-items {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  padding-top: 8px;
}

body.view-strategy .mlr-reserve-item {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(70px, auto) minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
  padding: 6px 8px;
  border: 1px solid rgba(231, 173, 70, 0.16);
  border-radius: 5px;
  background: rgba(231, 173, 70, 0.025);
}

body.view-strategy .mlr-reserve-item b,
body.view-strategy .mlr-reserve-item i,
body.view-strategy .mlr-reserve-item em {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 980px) {
  body.view-strategy .mlr-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.view-strategy .mlr-stock-review {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  body.view-strategy .mlr-overview {
    padding-top: 10px;
  }

  body.view-strategy .mlr-stats {
    gap: 0 !important;
  }

  body.view-strategy .mlr-chip {
    min-height: 21px;
    padding: 0 7px !important;
    font-size: 9px !important;
  }

  body.view-strategy .mlr-group {
    padding-left: 0;
  }

  body.view-strategy .mlr-group::before {
    display: none;
  }

  body.view-strategy .mlr-group-title > i {
    margin-left: 0;
  }

  body.view-strategy .mlr-card-head {
    grid-template-columns: 52px minmax(0, 1fr) auto;
    gap: 8px;
    padding: 8px 10px;
  }

  body.view-strategy .mlr-card-head .mlr-day {
    font-size: 11px !important;
  }

  body.view-strategy .mlr-card-head .mlr-phase {
    grid-column: 3;
  }

  body.view-strategy .mlr-card-head .mlr-invalid {
    grid-column: 2 / -1;
  }

  body.view-strategy .mlr-card-head .mlr-star-signal {
    padding-right: 6px !important;
    padding-left: 6px !important;
  }

  body.view-strategy .mlr-compare {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 10px;
  }

  body.view-strategy .mlr-compare-block {
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 8px;
  }

  body.view-strategy .mlr-compare-arrow {
    height: 12px;
    line-height: 12px;
    transform: rotate(90deg);
  }

  body.view-strategy .mlr-compare-block.outcome {
    padding-top: 9px;
    border-top: 1px solid var(--st-line);
  }

  body.view-strategy .mlr-source-row {
    grid-template-columns: 44px minmax(0, 1fr) auto;
    gap: 6px;
  }

  body.view-strategy .mlr-evidence-grid {
    grid-template-columns: 1fr;
    margin: 0 10px 10px;
  }

  body.view-strategy .mlr-evidence-grid > .mlr-slot {
    grid-template-columns: 44px minmax(0, 1fr);
    padding: 9px 8px;
    border-right: 0 !important;
    border-bottom: 1px solid var(--st-line) !important;
  }

  body.view-strategy .mlr-evidence-grid > .mlr-slot:last-child {
    border-bottom: 0 !important;
  }

  body.view-strategy .mlr-stock-review {
    grid-template-columns: minmax(82px, auto) minmax(0, 1fr);
    gap: 5px;
  }

  body.view-strategy .mlr-perf {
    padding: 0 5px;
  }

  body.view-strategy .mlr-reserve-line {
    margin: 0 10px 10px;
  }

  body.view-strategy .mlr-reserve-items {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 430px) {
  body.view-strategy .mlr-stock-review {
    grid-template-columns: 1fr;
  }

  body.view-strategy .mlr-reserve-line > summary small {
    display: none;
  }
}

/* Strategy workspace polish: clearer hierarchy with fewer nested frames. */
body.view-strategy {
  --st-page: #090e13;
  --st-panel: #0f161e;
  --st-panel-2: #121a23;
  --st-panel-3: #16212b;
  --st-line: rgba(182, 198, 219, 0.12);
  --st-line-strong: rgba(182, 198, 219, 0.22);
  --st-text: #edf3f9;
  --st-muted: #a2afbf;
  --st-faint: #748397;
  --st-blue: #61aaf8;
  --st-blue-soft: rgba(97, 170, 248, 0.10);
  --st-red: #ff6864;
  --st-red-soft: rgba(255, 104, 100, 0.08);
  --st-green: #3bcf88;
  --st-green-soft: rgba(59, 207, 136, 0.08);
  --st-amber: #e7b557;
  --st-amber-soft: rgba(231, 181, 87, 0.08);
}

body.view-strategy .strategy-page {
  padding-top: 18px !important;
  background: #090e13 !important;
}

body.view-strategy .strategy-hero {
  margin-bottom: 20px !important;
  border-color: rgba(182, 198, 219, 0.14) !important;
  background: #0f161e !important;
}

body.view-strategy .strategy-hero-head {
  min-height: 62px;
  padding: 11px 15px;
}

body.view-strategy .strategy-hero-heading {
  align-items: center;
  gap: 13px;
}

body.view-strategy .strategy-kicker {
  position: relative;
  padding: 0 14px 0 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #79b7fa !important;
  font-size: 10px !important;
  letter-spacing: 0 !important;
}

body.view-strategy .strategy-kicker::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  width: 1px;
  height: 18px;
  background: var(--st-line-strong);
  transform: translateY(-50%);
}

body.view-strategy .strategy-title {
  font-size: 21px !important;
  font-weight: 760 !important;
}

body.view-strategy .strategy-date-input,
body.view-strategy .strategy-threshold,
body.view-strategy .sc-threshold-input {
  border-color: rgba(182, 198, 219, 0.16) !important;
  background: #0b1219 !important;
}

body.view-strategy .strategy-hero-utility {
  min-height: 62px;
  border-left-color: rgba(182, 198, 219, 0.12);
  background: #0b1118;
}

body.view-strategy .mainline-wrap,
body.view-strategy .ml-review {
  border-top-color: rgba(182, 198, 219, 0.18) !important;
  border-bottom-color: rgba(182, 198, 219, 0.13) !important;
}

body.view-strategy .ml-title,
body.view-strategy .mlr-head {
  min-height: 60px !important;
  padding: 15px 2px !important;
}

body.view-strategy .ml-title::before,
body.view-strategy .mlr-title::before {
  height: 18px !important;
  background: #61aaf8 !important;
}

body.view-strategy .ml-title > span,
body.view-strategy .mlr-title {
  font-size: 18px !important;
  font-weight: 760 !important;
}

body.view-strategy .ml-title small {
  max-width: 66%;
  color: #7e8da0 !important;
  line-height: 1.45;
}

body.view-strategy .ml-status {
  min-height: 38px;
  padding: 9px 2px 10px !important;
  border-bottom-color: rgba(182, 198, 219, 0.10) !important;
}

body.view-strategy .ml-dual-note {
  margin: 11px 0 4px !important;
  padding: 8px 10px !important;
  border-color: rgba(97, 170, 248, 0.14);
  background: rgba(97, 170, 248, 0.055) !important;
}

body.view-strategy .ml-cols {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: 28px !important;
  padding: 0 0 22px;
}

body.view-strategy .ml-col:last-child {
  padding-left: 28px !important;
  border-left-color: rgba(182, 198, 219, 0.10);
}

body.view-strategy .ml-col-title {
  min-height: 54px;
  padding: 14px 1px 12px !important;
  border-bottom-color: rgba(182, 198, 219, 0.11) !important;
}

body.view-strategy .ml-col-title > span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 760;
}

body.view-strategy .ml-col-title > span::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #61aaf8;
  box-shadow: 0 0 0 3px rgba(97, 170, 248, 0.09);
}

body.view-strategy .ml-col:nth-child(2) .ml-col-title > span::before {
  background: #43c6aa;
  box-shadow: 0 0 0 3px rgba(67, 198, 170, 0.09);
}

body.view-strategy .ml-col-title small {
  color: #7d8ca0 !important;
  font-size: 10px !important;
}

body.view-strategy .ml-col > .rht-loading {
  min-height: 76px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin: 12px 0 0 !important;
  padding: 16px 18px !important;
  border: 1px solid rgba(182, 198, 219, 0.10) !important;
  border-radius: 7px !important;
  background: #0c131a !important;
  color: #8997a9 !important;
  line-height: 1.55;
  text-align: left;
}

body.view-strategy .ml-grid {
  gap: 10px !important;
  padding-top: 12px;
}

body.view-strategy .ml-card {
  gap: 11px !important;
  padding: 16px !important;
  border-color: rgba(182, 198, 219, 0.13) !important;
  background: #101820 !important;
}

body.view-strategy .ml-card::before {
  width: 2px;
  background: rgba(182, 198, 219, 0.30);
}

body.view-strategy .ml-card:hover {
  transform: translateY(-1px) !important;
  border-color: rgba(182, 198, 219, 0.24) !important;
  background: #131c25 !important;
}

body.view-strategy .ml-card.has-expected-star,
body.view-strategy .ml-reserve-card .ml-card.has-confirmed-star {
  border-color: rgba(231, 181, 87, 0.22) !important;
  background: #14191d !important;
}

body.view-strategy .ml-card.has-confirmed-star,
body.view-strategy .ml-card.confirmed-mainline {
  border-color: rgba(255, 104, 100, 0.24) !important;
  background: #15191d !important;
}

body.view-strategy .ml-top {
  grid-template-columns: 30px minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 12px !important;
}

body.view-strategy .ml-rank {
  border-color: rgba(182, 198, 219, 0.12) !important;
  background: #0c131a !important;
}

body.view-strategy .ml-name {
  font-size: 19px !important;
  font-weight: 780 !important;
}

body.view-strategy .ml-head-pulse {
  min-height: 28px;
  padding: 0 !important;
  border: 0;
  border-radius: 0;
  background: transparent;
}

body.view-strategy .ml-head-stat {
  min-height: 28px;
  padding: 0 8px !important;
  border-left: 1px solid rgba(182, 198, 219, 0.12) !important;
}

body.view-strategy .ml-head-stat:first-child {
  padding-left: 0 !important;
  border-left: 0 !important;
}

body.view-strategy .ml-head-stat + .ml-head-stat {
  padding-left: 8px !important;
  border-left-color: rgba(182, 198, 219, 0.12) !important;
}

body.view-strategy .ml-head-stat i {
  color: #748397 !important;
}

body.view-strategy .ml-score-wrap {
  min-width: 120px;
  border-color: rgba(182, 198, 219, 0.12);
  background: #0b1219;
}

body.view-strategy .ml-score,
body.view-strategy .ml-predict {
  min-height: 54px;
}

body.view-strategy .ml-score b,
body.view-strategy .ml-predict b {
  color: #e8eff7;
  font-size: 20px !important;
}

body.view-strategy .ml-signal-strip {
  border: 0;
  border-top: 1px solid rgba(182, 198, 219, 0.10);
  border-bottom: 1px solid rgba(182, 198, 219, 0.10);
  border-radius: 0;
  background: transparent;
}

body.view-strategy .ml-signal-cell,
body.view-strategy .ml-signal-cell.support {
  min-height: 40px !important;
  padding: 8px 10px !important;
  background: transparent !important;
}

body.view-strategy .ml-proof-row:not(.ml-star-proof) {
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 8px;
}

body.view-strategy .ml-stock.ml-leaderstock,
body.view-strategy .ml-board,
body.view-strategy .ml-proof-row .ml-stock:not(.ml-starstock) {
  min-height: 30px;
  padding: 6px 4px !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(182, 198, 219, 0.09) !important;
  border-radius: 0 !important;
  background: transparent !important;
}

body.view-strategy .ml-proof-row .ml-stock:last-child {
  border-bottom: 0 !important;
}

body.view-strategy .ml-star-proof {
  grid-template-columns: 108px minmax(0, 1fr);
  border-color: rgba(231, 181, 87, 0.20) !important;
  border-radius: 7px !important;
  background: #101619 !important;
}

body.view-strategy .ml-star-proof-head {
  border-right-color: rgba(231, 181, 87, 0.16);
  background: rgba(231, 181, 87, 0.055);
}

body.view-strategy .ml-card.has-confirmed-star .ml-star-proof,
body.view-strategy .ml-card.confirmed-mainline .ml-star-proof {
  border-color: rgba(255, 104, 100, 0.22) !important;
  background: #121618 !important;
}

body.view-strategy .ml-card.has-confirmed-star .ml-star-proof-head,
body.view-strategy .ml-card.confirmed-mainline .ml-star-proof-head {
  border-right-color: rgba(255, 104, 100, 0.18);
  background: rgba(255, 104, 100, 0.065);
}

body.view-strategy .ml-stock.ml-starstock {
  background: #0c1318 !important;
}

body.view-strategy .ml-stock.ml-starstock.confirmed {
  background: rgba(255, 104, 100, 0.055) !important;
}

body.view-strategy .ml-reason {
  border-left-color: rgba(182, 198, 219, 0.20);
  background: rgba(255, 255, 255, 0.012);
  color: #94a2b4;
  line-height: 1.5;
}

body.view-strategy .ml-toggle,
body.view-strategy .ml-confirm-btn {
  border-color: rgba(182, 198, 219, 0.13) !important;
  background: #0c131a !important;
}

body.view-strategy .ml-reserve {
  margin-top: 16px;
  padding-top: 0;
  border-top: 0;
}

body.view-strategy .ml-reserve-head {
  min-height: 34px;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 0 2px 8px;
  border-bottom: 1px solid rgba(231, 181, 87, 0.14);
}

body.view-strategy .ml-reserve-head > span {
  color: #e2b65d;
  font-size: 11px;
  font-weight: 760;
}

body.view-strategy .ml-reserve-head > small {
  color: #81745d;
  font-size: 9px;
}

body.view-strategy .ml-reserve-bar {
  margin: 0 !important;
  padding: 7px 1px 6px;
  border: 0 !important;
  border-radius: 0;
  background: transparent;
  color: #bf9850;
  font-size: 10px;
  font-weight: 700;
}

body.view-strategy .ml-reserve-card {
  min-width: 0;
}

body.view-strategy .ml-review {
  padding-bottom: 22px !important;
}

body.view-strategy .mlr-head {
  border-bottom-color: rgba(182, 198, 219, 0.11) !important;
}

body.view-strategy .mlr-title-block > small {
  color: #748397;
}

body.view-strategy .mlr-overview {
  gap: 9px;
  padding: 11px 0 15px;
  border-bottom: 1px solid rgba(182, 198, 219, 0.08);
}

body.view-strategy .mlr-chip {
  color: #8f9db0 !important;
}

body.view-strategy .mlr-group {
  margin-top: 18px;
}

body.view-strategy .mlr-group-head {
  min-height: 34px;
  padding-bottom: 8px;
}

body.view-strategy .mlr-group-title {
  align-items: baseline;
  gap: 8px;
}

body.view-strategy .mlr-group-title > b {
  color: #dce5ee;
  font-size: 12px;
  font-weight: 760;
}

body.view-strategy .mlr-group-title > small,
body.view-strategy .mlr-group-head > em {
  color: #718095;
  font-size: 9px;
}

body.view-strategy .mlr-group-list {
  border-color: rgba(182, 198, 219, 0.11);
  background: #0e151c;
}

body.view-strategy .mlr-row,
body.view-strategy .mlr-row.hit-ok,
body.view-strategy .mlr-row.hit-near,
body.view-strategy .mlr-row.hit-miss,
body.view-strategy .mlr-row.hit-wait,
body.view-strategy .mlr-row.hit-na,
body.view-strategy .mlr-row.hit-invalid {
  background: #0f171f !important;
}

body.view-strategy .mlr-card-head {
  min-height: 45px;
  border-bottom-color: rgba(182, 198, 219, 0.09);
  background: rgba(255, 255, 255, 0.012);
}

body.view-strategy .mlr-card-state {
  font-size: 12px;
}

body.view-strategy .mlr-compare {
  padding: 12px;
}

body.view-strategy .mlr-block-label,
body.view-strategy .mlr-source-name,
body.view-strategy .mlr-evidence-grid > .mlr-slot > .mlr-label {
  color: #77869a;
}

body.view-strategy .mlr-evidence-grid {
  border-top-color: rgba(182, 198, 219, 0.09);
}

body.view-strategy .mlr-evidence-grid > .mlr-slot {
  border-color: rgba(182, 198, 219, 0.08) !important;
}

body.view-strategy .mlr-reserve-line {
  border-top: 1px solid rgba(231, 181, 87, 0.14);
}

@media (min-width: 900px) {
  body.view-strategy .mlr-group.confirmed .mlr-group-list {
    gap: 10px;
  }

  body.view-strategy .mlr-group.confirmed .mlr-row {
    border-color: rgba(182, 198, 219, 0.12) !important;
    border-left-color: var(--st-red) !important;
    background: #0f171f !important;
  }
}

body.view-strategy .strategy-focus-section {
  width: 100%;
  margin-top: 20px;
  border-right: 0 !important;
  border-left: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}

body.view-strategy .strategy-focus-section .strategy-section-head {
  min-height: 54px !important;
  padding: 13px 2px !important;
  border-bottom-color: rgba(182, 198, 219, 0.10) !important;
}

body.view-strategy .strategy-focus-section .strategy-empty {
  width: min(100%, 580px);
  min-height: 88px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin: 14px 0 0;
  padding: 18px 20px;
  border: 1px solid rgba(182, 198, 219, 0.11) !important;
  border-style: solid !important;
  border-radius: 7px;
  background: #0c131a;
  color: #8e9bad;
  line-height: 1.65;
  text-align: left;
}

body.view-strategy .ml-l2-history {
  border-color: rgba(182, 198, 219, 0.13) !important;
  background: #0f161e !important;
}

body.view-strategy .ml-l2-history-summary,
body.view-strategy .ml-l2-job-summary {
  border-color: rgba(182, 198, 219, 0.10) !important;
  background: transparent !important;
}

body.view-strategy .ml-l2-job,
body.view-strategy .ml-l2-stock,
body.view-strategy .ml-l2-stock-detail {
  border-color: rgba(182, 198, 219, 0.11) !important;
  background: #101820 !important;
}

@media (max-width: 980px) {
  body.view-strategy .ml-cols {
    gap: 22px !important;
  }

  body.view-strategy .ml-col:last-child {
    padding-left: 22px !important;
  }

  body.view-strategy .ml-name-row {
    grid-template-columns: 1fr;
  }

  body.view-strategy .ml-head-pulse {
    justify-content: flex-start;
  }
}

@media (max-width: 760px) {
  body.view-strategy .strategy-page {
    padding: 12px 12px 52px !important;
  }

  body.view-strategy .strategy-hero {
    margin-bottom: 16px !important;
  }

  body.view-strategy .strategy-hero-head {
    min-height: 58px;
    padding: 11px 12px;
  }

  body.view-strategy .strategy-kicker {
    padding-right: 11px !important;
  }

  body.view-strategy .strategy-title {
    font-size: 19px !important;
  }

  body.view-strategy .ml-title,
  body.view-strategy .mlr-head {
    min-height: 54px !important;
    padding: 13px 1px !important;
  }

  body.view-strategy .ml-title {
    flex-wrap: wrap;
  }

  body.view-strategy .ml-title small {
    width: 100%;
    max-width: none;
    margin: 0 !important;
    text-align: left;
    white-space: normal;
  }

  body.view-strategy .ml-cols {
    grid-template-columns: 1fr !important;
    gap: 22px !important;
  }

  body.view-strategy .ml-col:last-child {
    padding: 20px 0 0 !important;
    border-top: 1px solid rgba(182, 198, 219, 0.10);
    border-left: 0;
  }

  body.view-strategy .ml-card {
    padding: 13px !important;
  }

  body.view-strategy .ml-top {
    grid-template-columns: 28px minmax(0, 1fr) !important;
    align-items: start !important;
  }

  body.view-strategy .ml-score-wrap {
    grid-column: 1 / -1;
    width: 100%;
  }

  body.view-strategy .ml-score,
  body.view-strategy .ml-predict {
    flex: 1 1 50%;
  }

  body.view-strategy .ml-star-proof {
    grid-template-columns: 1fr;
  }

  body.view-strategy .ml-star-proof-head {
    min-height: 0;
    flex-direction: row;
    justify-content: space-between;
    padding: 9px 10px;
    border-right: 0;
    border-bottom: 1px solid rgba(231, 181, 87, 0.14);
  }

  body.view-strategy .ml-star-list {
    padding: 7px;
  }

  body.view-strategy .strategy-focus-section .strategy-empty {
    width: 100%;
  }
}

/* ===== Local Claude polish 2026-07-24: quiet notes, scannable stats, tight clusters.
   Visual layer only — business logic, interactions and layout contracts stay unchanged. ===== */

/* 空态/状态说明降噪:大边框盒改为左侧细accent的安静便签,两栏重复出现时不再喧宾夺主 */
body.view-strategy .ml-col > .rht-loading {
  min-height: 0;
  margin: 12px 0 0 !important;
  padding: 11px 13px !important;
  border: 0 !important;
  border-left: 2px solid rgba(151, 170, 195, 0.35) !important;
  border-radius: 0 6px 6px 0 !important;
  background: rgba(255, 255, 255, 0.018) !important;
  color: #93a1b3 !important;
}

body.view-strategy .strategy-focus-section .strategy-empty {
  min-height: 0;
  padding: 13px 15px;
  border: 0 !important;
  border-left: 2px solid rgba(151, 170, 195, 0.35) !important;
  border-radius: 0 6px 6px 0;
  background: rgba(255, 255, 255, 0.018);
}

/* 预备主线三层标题(组头/说明条/卡片)间距收紧,减少进入卡片前的视觉台阶 */
body.view-strategy .ml-reserve-head {
  padding-bottom: 6px;
}

body.view-strategy .ml-reserve-head > small {
  font-size: 10px;
}

body.view-strategy .ml-reserve-bar {
  padding: 6px 1px 7px;
}

/* 回看统计条:命中率是全页最重要的结论数字,由分隔线文本升级为可扫读的胶囊 */
body.view-strategy .mlr-overview {
  gap: 8px;
  padding: 12px 0 14px;
}

body.view-strategy .mlr-stats {
  gap: 6px !important;
}

body.view-strategy .mlr-chip {
  min-height: 24px;
  padding: 2px 11px !important;
  border: 1px solid rgba(182, 198, 219, 0.13) !important;
  border-right: 1px solid rgba(182, 198, 219, 0.13) !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, 0.02) !important;
  color: #a3b0c1 !important;
}

body.view-strategy .mlr-chip:first-child {
  padding-left: 11px !important;
}

body.view-strategy .mlr-chip:last-child {
  border-right: 1px solid rgba(182, 198, 219, 0.13) !important;
}

body.view-strategy .mlr-sub small {
  color: #7c8b9f;
  line-height: 1.6;
}

/* 转化胶囊按内容收窄,不再拉成整行空框 */
body.view-strategy .mlr-conversion-slot .mlr-expected {
  width: max-content;
  max-width: 100%;
}

/* L2 个股摘要:四个金额从整行均分改为紧凑簇,消除超宽视口下的大片留白 */
body.view-strategy .ml-l2-max-money {
  grid-template-columns: repeat(4, minmax(0, max-content));
  gap: 4px 22px;
}

/* 题材校准:说明紧跟标题,不再漂到 1720px 壳的最右端 */
body.view-strategy .theme-calib .strategy-section-head {
  justify-content: flex-start;
  gap: 14px;
}

/* 9px 字号下限提升到 10px,信息密度不变但可读性提升 */
body.view-strategy .mlr-group-title > small,
body.view-strategy .mlr-group-head > em {
  font-size: 10px;
}

body.view-strategy .ml-l2-bucket-title small {
  font-size: 10px;
}

body.view-strategy .ml-l2-stock-id small {
  font-size: 10px;
}

body.view-strategy .mlr-block-label {
  font-size: 10px;
}

body.view-strategy .ml-reserve-head > small,
body.view-strategy .mlr-group-title > small {
  line-height: 1.4;
}

@media (max-width: 760px) {
  body.view-strategy .mlr-stats {
    gap: 5px !important;
  }

  body.view-strategy .mlr-chip {
    min-height: 22px;
    padding: 1px 9px !important;
    font-size: 10px !important;
  }

  body.view-strategy .ml-l2-max-money {
    grid-template-columns: repeat(2, minmax(0, max-content));
    gap: 3px 16px;
  }
}

/* ===== Local Claude strategy restructure 2026-07-24 (C-only, Owner-confirmed):
   Kept the "C" parts — KPI band (双源结论分开) / review date-table / L2 table.
   The "A" merged dual-source card was REVERTED per Owner: 东财与同花顺是两套独立预测,
   保持来源隔离展示,不合并龙头/明星/分数/阶段,不做跨源统一名次。
   Display layer only — all computation, auth gates and interactions unchanged.
   Builds on the "Local Claude polish" layer above; no rules duplicated from it. ===== */

/* ---- KPI 带 ---- */
body.view-strategy .strategy-kpis {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
  gap: 10px;
  margin-bottom: 20px;
}

body.view-strategy .strategy-kpis.has-l2 {
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr);
}

body.view-strategy .strategy-kpi {
  min-height: 86px;
  padding: 12px 15px;
  border: 1px solid rgba(182, 198, 219, 0.13);
  border-radius: 9px;
  background: #0f161e;
}

body.view-strategy .strategy-kpi.verdict {
  border-color: rgba(231, 181, 87, 0.28);
  background: linear-gradient(180deg, rgba(231, 181, 87, 0.05), rgba(231, 181, 87, 0.008)), #0f161e;
}

body.view-strategy .strategy-kpi .kpi-label {
  margin-bottom: 6px;
  color: #748397;
  font-size: 10px;
  font-weight: 720;
}

body.view-strategy .strategy-kpi .kpi-main {
  color: #edf3f9;
  font-size: 15px;
  font-weight: 740;
  line-height: 1.45;
}

body.view-strategy .strategy-kpi .kpi-main b {
  color: #e7b557;
  font-weight: 780;
}

body.view-strategy .strategy-kpi .kpi-main.quiet {
  color: #66788d;
  font-size: 12px;
  font-weight: 500;
}

body.view-strategy .strategy-kpi .kpi-sub {
  margin-top: 4px;
  color: #8b99ac;
  font-size: 11px;
  line-height: 1.5;
}

body.view-strategy .strategy-kpi .kpi-row {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 16px;
}

body.view-strategy .strategy-kpi .kpi-row span { font-size: 11px; color: #748397; }
body.view-strategy .strategy-kpi .kpi-row span i { font-style: normal; display: block; }
body.view-strategy .strategy-kpi .kpi-row span b { display: block; margin-top: 1px; color: #edf3f9; font-size: 16px; font-weight: 760; }
body.view-strategy .strategy-kpi .kpi-row span.hot b { color: #ff6864; }
body.view-strategy .strategy-kpi .kpi-row span.trace b { color: #f19a82; }
body.view-strategy .strategy-kpi .kpi-row span.amb b { color: #e7b557; }

/* 今日结论:东财 / 同花顺两源分开成行,各自独立不合并 */
body.view-strategy .kpi-verdict-lines { display: flex; flex-direction: column; gap: 4px; }
body.view-strategy .kpi-src-line { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
body.view-strategy .kpi-src-line > i {
  flex: 0 0 auto; width: 44px;
  color: #748397; font-size: 11px; font-style: normal; font-weight: 700;
}
body.view-strategy .kpi-src-line > b {
  min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  color: #edf3f9; font-size: 14px; font-weight: 740;
}
body.view-strategy .kpi-src-line.quiet > b { color: #8b99ac; font-weight: 600; }

/* ---- C:回看表格 ---- */
body.view-strategy .mlr-table {
  overflow: hidden;
  border: 1px solid rgba(182, 198, 219, 0.12);
  border-radius: 9px;
  background: #0f161e;
}

body.view-strategy .mlr-table-head,
body.view-strategy .mlr-line-sum {
  display: grid;
  grid-template-columns: 50px 118px minmax(0, 1fr) 96px 62px 62px 62px 20px;
  gap: 10px;
  align-items: center;
  padding: 8px 14px;
}

body.view-strategy .mlr-table-head {
  border-bottom: 1px solid rgba(182, 198, 219, 0.10);
  background: rgba(255, 255, 255, 0.02);
  color: #748397;
  font-size: 10px;
  font-weight: 650;
}

body.view-strategy .mlr-table-head .num { text-align: right; }

body.view-strategy .mlr-line { border-bottom: 1px solid rgba(182, 198, 219, 0.07); }
body.view-strategy .mlr-line:last-child { border-bottom: 0; }
body.view-strategy .mlr-line-sum { list-style: none; cursor: pointer; min-height: 38px; box-shadow: inset 3px 0 0 rgba(148, 163, 184, 0.22); }
body.view-strategy .mlr-line-sum::-webkit-details-marker { display: none; }
body.view-strategy .mlr-line-sum:hover { background: rgba(255, 255, 255, 0.02); }
body.view-strategy .mlr-line.star-confirmed > .mlr-line-sum { box-shadow: inset 3px 0 0 #ff6864; }
body.view-strategy .mlr-line.star-missed > .mlr-line-sum { box-shadow: inset 3px 0 0 #e7b557; }
body.view-strategy .mlr-line.star-pending > .mlr-line-sum { box-shadow: inset 3px 0 0 #7398c1; }

body.view-strategy .mlr-line-day { color: #c5cfda; font-size: 12px; font-weight: 760; font-variant-numeric: tabular-nums; }
body.view-strategy .mlr-line-badge { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; font-weight: 740; color: #8b99ac; }
body.view-strategy .mlr-line.star-confirmed .mlr-line-badge { color: #ff6864; }
body.view-strategy .mlr-line.star-missed .mlr-line-badge { color: #e7b557; }
body.view-strategy .mlr-line.star-pending .mlr-line-badge { color: #7fa4d0; }
body.view-strategy .mlr-line-badge.quiet { color: #66788d; font-weight: 600; }
body.view-strategy .mlr-line-flow { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #8b99ac; font-size: 12px; }
body.view-strategy .mlr-line-flow i { margin: 0 4px; color: #566373; font-style: normal; }
body.view-strategy .mlr-line-flow b { color: #cdd8e4; font-weight: 720; }
body.view-strategy .mlr-line-invalid { margin-left: 8px; color: #8a6d3b; font-size: 10px; font-style: normal; }
body.view-strategy .mlr-line-star {
  min-width: 0;
  display: grid;
  grid-auto-rows: minmax(18px, auto);
  align-self: stretch;
  align-items: center;
  overflow: hidden;
  color: #edf3f9;
  font-size: 12px;
  font-weight: 720;
}
body.view-strategy .mlr-line-star i { color: #566373; font-style: normal; font-weight: 500; }
body.view-strategy .mlr-line-stock-name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  line-height: 18px;
}
body.view-strategy .mlr-line-perf {
  display: grid;
  grid-auto-rows: minmax(18px, auto);
  align-self: stretch;
  align-items: center;
  text-align: right;
  font-size: 11.5px;
  font-variant-numeric: tabular-nums;
}
body.view-strategy .mlr-line-perf-item {
  min-height: 18px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  white-space: nowrap;
}
body.view-strategy .mlr-line-perf b { font-weight: 740; color: #566373; }
body.view-strategy .mlr-line-perf b.up { color: #ff6864; }
body.view-strategy .mlr-line-perf b.down { color: #3bcf88; }
body.view-strategy .mlr-line-caret { position: relative; width: 8px; height: 8px; justify-self: end; }
body.view-strategy .mlr-line-caret::before {
  content: ""; position: absolute; inset: 0;
  border-right: 1.5px solid #566373; border-bottom: 1.5px solid #566373;
  transform: rotate(45deg); transition: transform 0.15s ease;
}
body.view-strategy .mlr-line[open] > .mlr-line-sum .mlr-line-caret::before { transform: rotate(-135deg); }

body.view-strategy .mlr-line > .mlr-row {
  margin: 0 !important;
  border: 0 !important;
  border-top: 1px solid rgba(182, 198, 219, 0.10) !important;
  border-radius: 0 !important;
  background: rgba(4, 9, 15, 0.30) !important;
}

/* 回看命中语义:整行表达主线结果,明星徽标继续独立表达明星状态。 */
body.view-strategy .mlr-line.hit-ok > .mlr-line-sum {
  box-shadow: inset 4px 0 0 #ff6864;
  background: linear-gradient(90deg, rgba(255, 104, 100, 0.11), rgba(255, 104, 100, 0.025) 42%, transparent 76%);
}

body.view-strategy .mlr-line.hit-ok > .mlr-line-sum:hover {
  background: linear-gradient(90deg, rgba(255, 104, 100, 0.16), rgba(255, 104, 100, 0.045) 46%, rgba(255, 255, 255, 0.012));
}

body.view-strategy .mlr-line.hit-ok > .mlr-line-sum .mlr-line-day,
body.view-strategy .mlr-line.hit-ok > .mlr-line-sum .mlr-line-flow b {
  color: #ffaaa6;
}

body.view-strategy .mlr-line.hit-miss > .mlr-line-sum {
  box-shadow: inset 4px 0 0 #3fc98a;
  background: linear-gradient(90deg, rgba(63, 201, 138, 0.075), rgba(63, 201, 138, 0.018) 42%, transparent 76%);
}

body.view-strategy .mlr-line.hit-miss > .mlr-line-sum:hover {
  background: linear-gradient(90deg, rgba(63, 201, 138, 0.115), rgba(63, 201, 138, 0.035) 46%, rgba(255, 255, 255, 0.01));
}

body.view-strategy .mlr-line.hit-miss > .mlr-line-sum .mlr-line-day,
body.view-strategy .mlr-line.hit-miss > .mlr-line-sum .mlr-line-flow b {
  color: #7cddb0;
}

body.view-strategy .mlr-line.hit-near > .mlr-line-sum {
  box-shadow: inset 4px 0 0 #e7b557;
  background: linear-gradient(90deg, rgba(231, 181, 87, 0.075), rgba(231, 181, 87, 0.018) 42%, transparent 76%);
}

body.view-strategy .mlr-line.hit-wait > .mlr-line-sum {
  box-shadow: inset 4px 0 0 #7398c1;
  background: linear-gradient(90deg, rgba(115, 152, 193, 0.07), rgba(115, 152, 193, 0.016) 42%, transparent 76%);
}

/* 预判回看逐主线证据：双源、多主线各自携带明星、龙头和后续表现。 */
body.view-strategy .mlr-formal-evidence {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(182, 198, 219, 0.10);
}

body.view-strategy .mlr-formal-evidence-title {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 8px;
}

body.view-strategy .mlr-formal-evidence-title b { color: #dbe5ef; font-size: 12px; }
body.view-strategy .mlr-formal-evidence-title span { color: #6f8093; font-size: 10.5px; }

body.view-strategy .mlr-formal-grid {
  overflow: hidden;
  border: 1px solid rgba(182, 198, 219, 0.10);
  border-radius: 7px;
  background: rgba(7, 13, 20, 0.34);
}

body.view-strategy .mlr-formal-item {
  padding: 10px 12px;
  border-bottom: 1px solid rgba(182, 198, 219, 0.08);
}

body.view-strategy .mlr-formal-item:last-child { border-bottom: 0; }
body.view-strategy .mlr-formal-item.is-qualified { box-shadow: inset 3px 0 0 rgba(255, 104, 100, 0.78); }

body.view-strategy .mlr-formal-item > header {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 22px;
}

body.view-strategy .mlr-formal-source {
  width: 42px;
  color: #7e8da0;
  font-size: 10.5px;
  font-weight: 700;
}

body.view-strategy .mlr-formal-item > header strong { color: #eef4fa; font-size: 13px; }

body.view-strategy .mlr-formal-status {
  margin-left: auto;
  color: #7e8da0;
  font-size: 10px;
  font-weight: 700;
}

body.view-strategy .mlr-formal-status.ok { color: #ff7772; }
body.view-strategy .mlr-formal-status.miss { color: #52d497; }
body.view-strategy .mlr-formal-status.wait { color: #7fa4d0; }

body.view-strategy .mlr-formal-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 12px;
  margin: 3px 0 8px 50px;
  color: #6f8093;
  font-size: 10px;
}

body.view-strategy .mlr-formal-item > section {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 8px;
  align-items: start;
  padding-top: 7px;
}

body.view-strategy .mlr-formal-item > section + section {
  margin-top: 7px;
  border-top: 1px solid rgba(182, 198, 219, 0.06);
}

body.view-strategy .mlr-formal-item > section > label {
  padding-top: 2px;
  color: #6f8093;
  font-size: 10px;
}

body.view-strategy .mlr-formal-stocks {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 10px;
}

body.view-strategy .mlr-formal-leader { min-width: 0; }
body.view-strategy .mlr-formal-leader > i { display: block; margin-bottom: 2px; color: #6f8093; font-size: 9.5px; font-style: normal; }

body.view-strategy .mlr-line.hit-ok > .mlr-row {
  border-top-color: rgba(255, 104, 100, 0.20) !important;
  background: linear-gradient(180deg, rgba(255, 104, 100, 0.055), rgba(4, 9, 15, 0.34) 110px) !important;
}

body.view-strategy .mlr-line.hit-miss > .mlr-row {
  border-top-color: rgba(63, 201, 138, 0.16) !important;
  background: linear-gradient(180deg, rgba(63, 201, 138, 0.035), rgba(4, 9, 15, 0.34) 110px) !important;
}

body.view-strategy .mlr-hit.ok,
body.view-strategy .mlr-hit.miss {
  gap: 5px;
  font-weight: 760;
}

body.view-strategy .mlr-hit.ok {
  color: #ffd4d1;
  border-color: rgba(255, 104, 100, 0.46);
  background: rgba(255, 104, 100, 0.15);
  box-shadow: inset 0 0 0 1px rgba(255, 104, 100, 0.06);
}

body.view-strategy .mlr-hit.ok::before {
  content: "✓";
  color: #ff7772;
  font-size: 11px;
  line-height: 1;
}

body.view-strategy .mlr-hit.miss {
  color: #a8e9c9;
  border-color: rgba(63, 201, 138, 0.34);
  background: rgba(63, 201, 138, 0.095);
}

body.view-strategy .mlr-hit.miss::before {
  content: "×";
  color: #52d497;
  font-size: 13px;
  line-height: 1;
}

/* ---- C:L2 扫描记录表格化(仅重排既有 DOM;初始折叠交互保持 Owner 锁定不变) ---- */
body.view-strategy .ml-l2-job-summary {
  display: grid !important;
  grid-template-columns: minmax(150px, 1.35fr) 52px 72px 46px minmax(80px, 0.9fr) minmax(58px, 0.7fr) minmax(58px, 0.7fr) minmax(120px, 1fr) 20px;
  gap: 10px;
  align-items: center;
}

body.view-strategy .ml-l2-job-head,
body.view-strategy .ml-l2-job-meta { display: contents !important; }

body.view-strategy .ml-l2-job-meta > span { display: inline-flex; align-items: baseline; gap: 5px; white-space: nowrap; }

/* polish 层的题材校准修正补全:说明不再被 margin-left:auto 推到最右 */
body.view-strategy .theme-calib .strategy-section-sub { margin-left: 0; }

/* ---- 移动端 ---- */
@media (max-width: 980px) {
  body.view-strategy .strategy-kpis,
  body.view-strategy .strategy-kpis.has-l2 { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  body.view-strategy .mlr-table-head { display: none; }
  body.view-strategy .mlr-line-sum { grid-template-columns: 44px minmax(0, 1fr) 20px; gap: 6px 8px; padding: 9px 12px; }
  body.view-strategy .mlr-line-badge { grid-column: 2; }
  body.view-strategy .mlr-line-flow { grid-column: 1 / 3; font-size: 11.5px; white-space: normal; }
  body.view-strategy .mlr-line-star,
  body.view-strategy .mlr-line-perf { display: none; }
  body.view-strategy .mlr-line-caret { grid-column: 3; grid-row: 1; }
  body.view-strategy .mlr-formal-evidence-title { display: block; }
  body.view-strategy .mlr-formal-evidence-title span { display: block; margin-top: 3px; }
  body.view-strategy .mlr-formal-stocks { grid-template-columns: 1fr; }
  body.view-strategy .mlr-formal-meta { margin-left: 0; }
  body.view-strategy .ml-l2-job-summary { grid-template-columns: minmax(0, 1fr) auto 20px; }
}

/* ===== Codex 2026-07-24: make mainline, confirmed-star, and review-hit states unmistakable. ===== */
body.view-strategy .ml-proof-row.ml-star-proof {
  display: block !important;
  grid-template-columns: none !important;
  gap: 0 !important;
  overflow: visible !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

body.view-strategy .ml-card.has-confirmed-star .ml-star-proof,
body.view-strategy .ml-card.confirmed-mainline .ml-star-proof {
  border: 0 !important;
  background: transparent !important;
}

body.view-strategy .ml-star-proof .ml-star-proof-head {
  min-height: 0 !important;
  flex-direction: row !important;
  align-items: baseline !important;
  justify-content: flex-start !important;
  gap: 6px !important;
  margin: 0 0 8px !important;
  padding: 0 !important;
  border-right: 0 !important;
  background: transparent !important;
}

body.view-strategy .ml-card.has-confirmed-star .ml-star-proof-head,
body.view-strategy .ml-card.confirmed-mainline .ml-star-proof-head {
  border-right: 0 !important;
  background: transparent !important;
}

body.view-strategy .ml-star-proof .ml-star-proof-summary::before {
  content: "·";
  margin-right: 5px;
  color: var(--st-faint);
}

body.view-strategy .ml-star-proof .ml-star-list {
  display: flex !important;
  flex-wrap: wrap;
  gap: 8px;
  align-content: flex-start;
  padding: 0 !important;
}

body.view-strategy .ml-star-proof .ml-stock.ml-starstock {
  min-height: 0 !important;
  width: max-content;
  max-width: 100%;
  gap: 7px 12px !important;
  padding: 9px 12px !important;
  border: 1px solid rgba(231, 181, 87, 0.30) !important;
  border-radius: 7px !important;
  background: #11181e !important;
}

body.view-strategy .ml-star-proof .ml-star-ratios {
  display: flex !important;
  grid-template-columns: none !important;
  gap: 16px !important;
  padding-top: 8px !important;
}

body.view-strategy .ml-star-proof .ml-star-ratios > span {
  justify-content: flex-start;
  gap: 4px;
  padding: 0 !important;
  border-right: 0 !important;
}

/* Mainline is the strongest card state: red rail, bright badge, and a distinct header anchor. */
body.view-strategy .ml-card.confirmed-mainline {
  position: relative;
  border-color: rgba(255, 104, 100, 0.62) !important;
  background: linear-gradient(135deg, rgba(255, 104, 100, 0.16), #151a20 42%, #101820 100%) !important;
  box-shadow: inset 4px 0 0 #ff6864, 0 0 0 1px rgba(255, 104, 100, 0.08), 0 12px 26px rgba(0, 0, 0, 0.18) !important;
}

body.view-strategy .ml-card.confirmed-mainline::before {
  width: 4px !important;
  background: #ff6864 !important;
}

body.view-strategy .ml-card.confirmed-mainline .ml-rank {
  border-color: rgba(255, 104, 100, 0.62) !important;
  background: #e95753 !important;
  color: #fff !important;
}

body.view-strategy .ml-card.confirmed-mainline .ml-name {
  color: #fff !important;
}

body.view-strategy .ml-card.confirmed-mainline .ml-daily-confirmed {
  border: 1px solid rgba(255, 255, 255, 0.20) !important;
  background: #e95753 !important;
  color: #fff !important;
  box-shadow: 0 4px 12px rgba(233, 87, 83, 0.24) !important;
  font-weight: 820 !important;
}

/* Confirmed stars are gold evidence inside the mainline card; expected stars stay quieter. */
body.view-strategy .ml-card.has-expected-star:not(.confirmed-mainline) {
  border-color: rgba(231, 181, 87, 0.34) !important;
  box-shadow: inset 3px 0 0 rgba(231, 181, 87, 0.72) !important;
}

body.view-strategy .ml-card.has-confirmed-star:not(.confirmed-mainline) {
  border-color: rgba(239, 185, 79, 0.52) !important;
  background: linear-gradient(135deg, rgba(239, 185, 79, 0.12), #14191d 44%, #101820 100%) !important;
  box-shadow: inset 4px 0 0 #efb94f, 0 0 0 1px rgba(239, 185, 79, 0.06) !important;
}

body.view-strategy .ml-star-proof .ml-stock.ml-starstock.confirmed {
  border-color: rgba(239, 185, 79, 0.62) !important;
  background: rgba(239, 185, 79, 0.10) !important;
  box-shadow: inset 3px 0 0 #efb94f !important;
}

body.view-strategy .ml-star-proof .ml-stock.ml-starstock.confirmed .ml-star-name {
  color: #fff2ce !important;
}

body.view-strategy .ml-star-proof .ml-stock.ml-starstock.confirmed .ml-star-state {
  border: 1px solid rgba(255, 255, 255, 0.18) !important;
  background: #efb94f !important;
  color: #17130b !important;
  font-weight: 820 !important;
}

/* A successful review hit owns the whole row, not just a small status pill. */
body.view-strategy .mlr-line.hit-ok > .mlr-line-sum {
  min-height: 42px;
  border-top: 1px solid rgba(255, 104, 100, 0.30);
  border-bottom: 1px solid rgba(255, 104, 100, 0.24);
  box-shadow: inset 6px 0 0 #ff6864;
  background: linear-gradient(90deg, rgba(255, 104, 100, 0.22), rgba(255, 104, 100, 0.07) 48%, rgba(255, 104, 100, 0.015) 82%);
}

body.view-strategy .mlr-line.hit-ok > .mlr-line-sum:hover {
  background: linear-gradient(90deg, rgba(255, 104, 100, 0.27), rgba(255, 104, 100, 0.09) 48%, rgba(255, 255, 255, 0.018));
}

body.view-strategy .mlr-line.hit-ok > .mlr-line-sum .mlr-line-badge {
  color: #fff !important;
  font-weight: 820;
}

body.view-strategy .mlr-hit.ok {
  border-color: #ff7772 !important;
  background: #e95753 !important;
  color: #fff !important;
  box-shadow: 0 3px 10px rgba(233, 87, 83, 0.22) !important;
}

body.view-strategy .mlr-hit.ok::before {
  color: #fff !important;
}

body.view-strategy .mlr-line.hit-ok > .mlr-row.star-confirmed {
  border-top-color: rgba(239, 185, 79, 0.30) !important;
  background: linear-gradient(180deg, rgba(239, 185, 79, 0.08), rgba(4, 9, 15, 0.34) 120px) !important;
  box-shadow: inset 4px 0 0 #efb94f;
}

body.view-strategy .mlr-line.hit-miss > .mlr-line-sum {
  opacity: 0.78;
}

@media (max-width: 760px) {
  body.view-strategy .ml-star-proof .ml-stock.ml-starstock {
    width: 100%;
  }

  body.view-strategy .ml-card.confirmed-mainline {
    box-shadow: inset 4px 0 0 #ff6864, 0 0 0 1px rgba(255, 104, 100, 0.08) !important;
  }
}

/* ===== Local Claude 2026-07-24: 今日主线榜卡片紧凑化(Owner 反馈卡片太大太宽)。
   收紧标题/排名/评分/信号条尺寸,龙头行由整行 space-between 改为左对齐消除中间空档,
   压实内边距与垂直节奏。纯样式:不改任何主线/龙头/明星判定、评分或交互。 ===== */

/* 卡片整体:更小内边距、更紧的分节间距;并限制物理宽度、左对齐,不再撑满双源栏。
   限宽依据实测卡内自然内容宽度:明星信号行 550px 最宽(3 只明星盒并排)+ 左右内边距 26px
   = 576px 为不换行下限,取 600px 留余量;较原 674px 收窄约 11%,且明星盒不被迫换行。 */
body.view-strategy .ml-card {
  width: 100%;
  /* !important 用于覆盖 max-width:760px 媒体查询里旧的 .ml-card{max-width:100% !important}:
     否则 601–760px 区间正式卡会撑满(实测 736px)而预备卡仍 600px,两者不齐。
     容器不足 600px 时仍自然缩到可用宽度,不影响手机。 */
  max-width: 600px !important;
  margin-right: auto;
  gap: 8px !important;
  padding: 12px 13px !important;
}
body.view-strategy .ml-grid { gap: 8px !important; justify-items: start; }
/* 预备卡 wrapper 必须显式 width:100%:.ml-grid 的 justify-items:start 会让 wrapper 按内容收缩,
   内层 .ml-card{width:100%} 只能继承收缩宽度 → 各预备卡宽度不一(实测 372~542px)、边缘不齐。 */
body.view-strategy .ml-reserve-card {
  width: 100%;
  max-width: 600px !important;
  margin-right: auto;
}

/* 窄卡下头部:标题与指标条保持同一行(标题优先、指标条按内容收缩),指标条内部可换行 */
body.view-strategy .ml-name-row {
  grid-template-columns: minmax(0, auto) minmax(0, max-content) !important;
  column-gap: 10px;
}
body.view-strategy .ml-head-pulse { flex-wrap: wrap; }

/* 头部:排名块与标题收小 */
body.view-strategy .ml-top { gap: 10px !important; }
body.view-strategy .ml-rank { width: 26px !important; height: 26px !important; font-size: 11px !important; }
body.view-strategy .ml-name { font-size: 15px !important; font-weight: 780 !important; }
body.view-strategy .ml-name-flags { margin-top: 5px !important; }
body.view-strategy .ml-sub, body.view-strategy .ml-srcpairs { font-size: 9.5px !important; }

/* 涨幅/资金指标条更紧 */
body.view-strategy .ml-head-pulse { min-height: 26px !important; padding: 3px 8px !important; }
body.view-strategy .ml-head-stat b { font-size: 12px !important; }

/* 评分块收窄、降高、数字缩小 */
body.view-strategy .ml-score-wrap { min-width: 90px !important; }
body.view-strategy .ml-score, body.view-strategy .ml-predict {
  min-width: 44px !important; min-height: 40px !important; padding: 5px 7px !important;
}
body.view-strategy .ml-score b, body.view-strategy .ml-predict b { font-size: 15px !important; }
body.view-strategy .ml-score span, body.view-strategy .ml-predict span { font-size: 8.5px !important; }

/* 信号条(涨停/大涨/冲板/共振)改为左对齐紧凑排列,不再 4 等宽格铺满整卡;标签+数字贴合成组 */
body.view-strategy .ml-signal-strip {
  display: flex !important;
  grid-template-columns: none !important;
  flex-wrap: wrap;
}
body.view-strategy .ml-signal-cell,
body.view-strategy .ml-signal-cell.support {
  flex: 0 0 auto !important;
  min-height: 28px !important; padding: 4px 14px !important;
  justify-content: flex-start !important; gap: 5px !important;
}
body.view-strategy .ml-signal-cell:first-child { padding-left: 2px !important; }
body.view-strategy .ml-signal-cell b { margin-left: 0 !important; font-size: 12px !important; }
body.view-strategy .ml-signal-cell i { font-size: 9px !important; }

/* 龙头/共振/活跃行:左对齐消除整行中间空档(核心宽度问题),行更矮 */
body.view-strategy .ml-proof-row:not(.ml-star-proof) { grid-template-columns: 36px minmax(0, 1fr) !important; gap: 7px !important; }
body.view-strategy .ml-proof-lbl { font-size: 9px !important; }
body.view-strategy .ml-stock.ml-leaderstock,
body.view-strategy .ml-board,
body.view-strategy .ml-proof-row .ml-stock:not(.ml-starstock) {
  justify-content: flex-start !important;
  min-height: 25px !important;
  gap: 8px !important;
  padding: 4px 3px !important;
}
/* 龙头名固定不压缩,主因/板数据紧随其后、可省略号收尾 */
body.view-strategy .ml-stock.ml-leaderstock > i,
body.view-strategy .ml-board > i,
body.view-strategy .ml-proof-row .ml-stock:not(.ml-starstock) > i {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 10.5px !important;
}

/* 明星信号盒略收紧 */
body.view-strategy .ml-star-proof .ml-stock.ml-starstock { padding: 8px 10px !important; }

/* 建议行与操作按钮收紧 */
body.view-strategy .ml-reason { min-height: 0 !important; padding: 6px 9px !important; font-size: 11px !important; }
body.view-strategy .ml-toggle, body.view-strategy .ml-confirm-btn { min-height: 30px !important; }

/* 预备主线卡:标题层与卡片间距收紧,减少进入卡片前的台阶 */
body.view-strategy .ml-reserve { margin-top: 12px !important; }
body.view-strategy .ml-reserve-bar { margin-bottom: 6px !important; }

@media (max-width: 760px) {
  body.view-strategy .ml-card { padding: 11px !important; }
  body.view-strategy .ml-name { font-size: 15px !important; }
}

/* =========================================================================
   主线卡片重构(2026-07-25):左柱锚点 + 明星前置 + QI 认证标识
   设计目标:①左柱把主线分做成排序锚,扫列表即强弱梯度;②明星条升为卡片主角,
   确认明星佩戴与主页同款 QI 标识;③盘面数字降为支撑材料。
   纯展示层:不改任何主线/龙头/明星判定、评分与交互逻辑。
   ========================================================================= */
body.view-strategy .ml-card {
  display: grid !important;
  grid-template-columns: 80px minmax(0, 1fr);
  gap: 0 !important;
  padding: 0 !important;
  overflow: hidden;
}

/* ---------- 左柱:排序锚 ---------- */
body.view-strategy .ml-rail {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  padding: 13px 7px 11px;
  background: var(--st-panel-2);
  border-right: 1px solid var(--st-line);
}
body.view-strategy .ml-card.has-confirmed-star .ml-rail {
  background: linear-gradient(180deg, rgba(239, 185, 79, .13), rgba(239, 185, 79, .03));
  border-right-color: rgba(239, 185, 79, .3);
}
body.view-strategy .ml-card.confirmed-mainline .ml-rail {
  background: linear-gradient(180deg, rgba(255, 98, 93, .13), rgba(255, 98, 93, .03));
  border-right-color: rgba(255, 98, 93, .3);
}
body.view-strategy .ml-card.has-expected-star .ml-rail {
  background: linear-gradient(180deg, rgba(231, 173, 70, .1), rgba(231, 173, 70, .025));
  border-right-color: rgba(231, 173, 70, .24);
}
body.view-strategy .ml-rail .ml-rank {
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  margin: 0 0 3px !important;
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--st-faint) !important;
  font-size: 9.5px !important;
  font-weight: 700 !important;
  letter-spacing: .06em;
}
body.view-strategy .ml-card.has-confirmed-star .ml-rail .ml-rank { color: var(--st-gold) !important; }
body.view-strategy .ml-card.confirmed-mainline .ml-rail .ml-rank { color: #ff8b86 !important; }
body.view-strategy .ml-rail-score {
  font-size: 26px;
  font-weight: 800;
  line-height: .95;
  letter-spacing: -.03em;
  font-variant-numeric: tabular-nums;
  color: var(--st-text);
}
body.view-strategy .ml-rail-score-l {
  margin-top: 2px;
  color: var(--st-faint);
  font-size: 8.5px;
  letter-spacing: .04em;
}
/* 强度条:相对当日最强主线的比例,列表纵览即可比 */
body.view-strategy .ml-rail-bar {
  width: 38px;
  height: 2.5px;
  margin-top: 7px;
  border-radius: 2px;
  background: rgba(194, 207, 224, .14);
  overflow: hidden;
}
body.view-strategy .ml-rail-bar i {
  display: block;
  height: 100%;
  border-radius: 2px;
  background: var(--st-faint);
}
body.view-strategy .ml-card.has-confirmed-star .ml-rail-bar i { background: var(--st-gold); }
body.view-strategy .ml-card.confirmed-mainline .ml-rail-bar i { background: var(--st-red); }
body.view-strategy .ml-card.has-expected-star .ml-rail-bar i { background: var(--st-amber); }
body.view-strategy .ml-rail-pred {
  width: 100%;
  margin-top: 8px;
  padding-top: 7px;
  border-top: 1px solid var(--st-line);
  text-align: center;
}
body.view-strategy .ml-rail-pred b {
  color: var(--st-muted);
  font-size: 12.5px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
body.view-strategy .ml-rail-pred i {
  display: block;
  color: var(--st-faint);
  font-size: 8px;
  font-style: normal;
  letter-spacing: .03em;
}

/* ---------- 右侧内容区 ---------- */
body.view-strategy .ml-cardbody {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 11px 13px 10px;
}
body.view-strategy .ml-cardbody > .ml-top {
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 4px !important;
}

/* ---------- QI 认证标识(与主页左上角同款 SVG) ---------- */
body.view-strategy .ml-qi-mark {
  flex-shrink: 0;
  width: 34px;
  height: 25px;
  display: block;
  align-self: center;
}
body.view-strategy .ml-qi-mark .qim-orbit { stroke: var(--border-strong); fill: none; }
body.view-strategy .ml-qi-mark .qim-line { stroke: var(--text); fill: none; }
body.view-strategy .ml-qi-mark .qim-fill { fill: var(--text); stroke: none; }
body.view-strategy .ml-qi-mark .qim-spark { fill: var(--accent); }
/* 待认证:预期明星佩戴同款轮廓但灰度无高亮点,与确认版对齐并形成"未盖章/已盖章"对比 */
body.view-strategy .ml-qi-mark.pending { opacity: .42; }
/* 冷石板,不用暖金——QI 标识任何状态都不着金色(见 STRATEGY_VISUAL_SEMANTICS.md §2) */
body.view-strategy .ml-qi-mark.pending .qim-orbit { stroke: rgba(127, 155, 189, .6); }
body.view-strategy .ml-qi-mark.pending .qim-line { stroke: var(--st-muted); }
body.view-strategy .ml-qi-mark.pending .qim-fill { fill: var(--st-muted); }
/* 无明星:留白占位,保持三态卡片文字起始线一致 */
body.view-strategy .ml-qi-mark.empty { visibility: hidden; }

/* ---------- 明星条:卡片主角 ---------- */
body.view-strategy .ml-proof-row.ml-star-proof {
  display: flex !important;
  border-left-width: 3px !important;
  align-items: flex-start;
  gap: 10px !important;
  margin: 0 !important;
  padding: 9px 11px !important;
  border: 1px solid rgba(231, 173, 70, .32) !important;
  border-left: 4px solid var(--st-amber) !important;
  border-radius: 8px !important;
  background: linear-gradient(96deg, rgba(231, 173, 70, .15), rgba(231, 173, 70, .04) 62%, transparent) !important;
}
body.view-strategy .ml-card.has-confirmed-star .ml-proof-row.ml-star-proof {
  border-color: rgba(239, 185, 79, .42) !important;
  border-left-color: var(--st-gold) !important;
  background: linear-gradient(96deg, rgba(239, 185, 79, .18), rgba(239, 185, 79, .05) 62%, transparent) !important;
}
body.view-strategy .ml-card.confirmed-mainline .ml-proof-row.ml-star-proof {
  border-color: rgba(255, 98, 93, .34) !important;
  border-left-color: var(--st-red) !important;
  background: linear-gradient(96deg, rgba(255, 98, 93, .16), rgba(255, 98, 93, .045) 62%, transparent) !important;
}
body.view-strategy .ml-star-proof .ml-star-proof-head {
  min-height: 0 !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: center;
  gap: 1px !important;
  flex-shrink: 0;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}
body.view-strategy .ml-star-proof .ml-star-proof-title {
  font-size: 9.5px !important;
  font-weight: 780 !important;
  letter-spacing: .07em;
  color: #eec173 !important;
}
body.view-strategy .ml-card.has-confirmed-star .ml-star-proof .ml-star-proof-title { color: #f6cd7c !important; }
body.view-strategy .ml-card.confirmed-mainline .ml-star-proof .ml-star-proof-title { color: #ff9c97 !important; }
body.view-strategy .ml-star-proof .ml-star-proof-summary {
  font-size: 9px !important;
  color: var(--st-faint) !important;
}
body.view-strategy .ml-star-proof .ml-star-list {
  flex: 1;
  min-width: 0;
  display: flex !important;
  flex-direction: column;
  gap: 5px;
  padding: 0 !important;
  align-content: initial;
}
body.view-strategy .ml-star-proof .ml-stock.ml-starstock {
  width: 100%;
  min-height: 0 !important;
  display: flex !important;
  align-items: center;
  gap: 9px !important;
  padding: 4px 8px !important;
  border: 0 !important;
  border-radius: 5px !important;
  background: rgba(255, 255, 255, .04) !important;
}
body.view-strategy .ml-star-proof .ml-stock.ml-starstock.confirmed {
  border: 0 !important;
  box-shadow: none !important;
  background: rgba(239, 185, 79, .12) !important;
}
body.view-strategy .ml-star-identity { display: inline-flex; align-items: baseline; gap: 5px; min-width: 0; }
body.view-strategy .ml-star-name {
  font-size: 15px !important;
  font-weight: 780 !important;
  letter-spacing: -.015em;
}
body.view-strategy .ml-star-state {
  font-size: 9.5px !important;
  font-weight: 700;
  flex-shrink: 0;
}
/* 三比值:右侧微型统计栏,列宽统一右对齐 */
body.view-strategy .ml-star-proof .ml-star-ratios {
  margin-left: auto;
  display: flex !important;
  grid-template-columns: none !important;
  gap: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  flex-shrink: 0;
}
body.view-strategy .ml-star-proof .ml-star-ratios > span {
  display: flex !important;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: 1px;
  min-width: 52px;
  padding: 0 9px !important;
  border-right: 1px solid rgba(255, 255, 255, .09) !important;
}
body.view-strategy .ml-star-proof .ml-star-ratios > span:last-child { border-right: 0 !important; padding-right: 0 !important; }
body.view-strategy .ml-star-proof .ml-star-ratios i {
  font-size: 8px !important;
  font-style: normal;
  letter-spacing: .02em;
  white-space: nowrap;
  color: var(--st-faint) !important;
}
body.view-strategy .ml-star-proof .ml-star-ratios b {
  font-size: 11.5px !important;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--st-muted) !important;
}

/* ---------- 龙头行 ---------- */
body.view-strategy .ml-proof-row:not(.ml-star-proof) {
  display: flex !important;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px !important;
  grid-template-columns: none !important;
}
body.view-strategy .ml-proof-row:not(.ml-star-proof) > .ml-proof-lbl {
  grid-row: auto !important;
  align-self: center !important;
  padding: 0 !important;
  flex-shrink: 0;
  font-size: 9px !important;
  font-weight: 650;
  letter-spacing: .06em;
  color: var(--st-faint) !important;
}
body.view-strategy .ml-proof-row:not(.ml-star-proof) > :not(.ml-proof-lbl) { grid-column: auto !important; }
body.view-strategy .ml-proof-row .ml-stock.ml-leaderstock {
  min-height: 0 !important;
  display: inline-flex !important;
  align-items: baseline;
  justify-content: flex-start !important;
  gap: 5px !important;
  padding: 3px 9px !important;
  border-radius: 5px !important;
  border: 1px solid transparent;
  background: var(--st-panel-2) !important;
  font-size: 12.5px;
  font-weight: 670;
}
body.view-strategy .ml-proof-row .ml-stock.ml-leaderstock.top { border-color: var(--st-line-strong); }
body.view-strategy .ml-proof-row .ml-stock.ml-leaderstock i {
  font-size: 10px;
  font-style: normal;
  font-weight: 400;
  color: var(--st-faint);
  font-variant-numeric: tabular-nums;
}

/* ---------- 盘面数字:核心3 | 扩散3 ---------- */
body.view-strategy .ml-signal-strip {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 1px !important;
  border: 1px solid var(--st-line) !important;
  border-radius: 7px !important;
  background: var(--st-line) !important;
  overflow: hidden;
}
body.view-strategy .ml-signal-cell,
body.view-strategy .ml-signal-cell.support {
  min-height: 0 !important;
  display: block !important;
  justify-content: flex-start !important;
  padding: 6px 8px !important;
  border: 0 !important;
  background: var(--st-panel) !important;
}
body.view-strategy .ml-signal-cell.core { background: #101820 !important; }
body.view-strategy .ml-signal-cell i {
  display: block;
  margin-bottom: 2px;
  font-size: 8.5px !important;
  letter-spacing: .03em;
  color: var(--st-faint) !important;
}
body.view-strategy .ml-signal-cell b {
  margin-left: 0 !important;
  font-size: 13.5px !important;
  font-weight: 750;
  line-height: 1.1;
  letter-spacing: -.01em;
  font-variant-numeric: tabular-nums;
}

/* ---------- 页脚 ---------- */
body.view-strategy .ml-reason {
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  font-size: 10.5px !important;
  line-height: 1.5;
  color: var(--st-faint) !important;
}
body.view-strategy .ml-card-actions {
  margin: 0 !important;
  padding-top: 8px;
  border-top: 1px solid var(--st-line);
}
body.view-strategy .ml-toggle,
body.view-strategy .ml-confirm-btn {
  min-height: 0 !important;
  padding: 3px 10px !important;
  font-size: 10.5px !important;
}

/* ---------- 窄屏:左柱转横向头条 ---------- */
@media (max-width: 560px) {
  body.view-strategy .ml-card { grid-template-columns: minmax(0, 1fr); }
  body.view-strategy .ml-rail {
    flex-direction: row;
    justify-content: flex-start;
    gap: 9px;
    padding: 8px 12px;
    border-right: 0;
    border-bottom: 1px solid var(--st-line);
  }
  body.view-strategy .ml-card.has-confirmed-star .ml-rail { border-bottom-color: rgba(255, 98, 93, .26); }
  body.view-strategy .ml-card.has-expected-star .ml-rail { border-bottom-color: rgba(231, 173, 70, .24); }
  body.view-strategy .ml-rail .ml-rank { margin-bottom: 0 !important; }
  body.view-strategy .ml-rail-score { font-size: 20px; }
  body.view-strategy .ml-rail-score-l { margin-top: 0; }
  body.view-strategy .ml-rail-bar { margin-top: 0; width: 44px; }
  body.view-strategy .ml-rail-pred {
    width: auto;
    margin: 0 0 0 auto;
    padding: 0;
    border-top: 0;
    display: flex;
    align-items: baseline;
    gap: 4px;
  }
  body.view-strategy .ml-rail-pred i { display: inline; }
  /* [Codex #276 P1-1] 媒体查询不增加特异性:必须写到与桌面规则(.ml-star-proof .ml-star-ratios,
     0-3-1)同级,否则窄屏下三比值仍显示,最右列被 overflow:hidden 裁掉、股名被挤到 0 宽。 */
  body.view-strategy .ml-star-proof .ml-star-ratios { display: none !important; }
  body.view-strategy .ml-signal-strip { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  body.view-strategy .ml-card { padding: 0 !important; }
}

/* 头部脉冲:板块涨幅/资金活跃度/方向,紧随题材名 */
body.view-strategy .ml-head-pulse {
  min-height: 0 !important;
  display: flex !important;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}
body.view-strategy .ml-head-stat {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  padding: 0 9px 0 0 !important;
  margin-right: 9px;
  border-left: 0 !important;
  border-right: 1px solid var(--st-line);
}
body.view-strategy .ml-head-stat:last-child { border-right: 0; margin-right: 0; padding-right: 0 !important; }
body.view-strategy .ml-head-stat i { font-size: 9px !important; color: var(--st-faint); }
body.view-strategy .ml-head-stat b { font-size: 13px !important; font-weight: 750; font-variant-numeric: tabular-nums; }
body.view-strategy .ml-name-row {
  display: flex !important;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px 10px !important;
  grid-template-columns: none !important;
}
body.view-strategy .ml-name { font-size: 18px !important; font-weight: 770 !important; letter-spacing: -.02em !important; }
body.view-strategy .ml-name-flags { margin-top: 0 !important; gap: 4px; }
body.view-strategy .ml-sub { font-size: 10.5px !important; color: var(--st-faint) !important; }

/* 明星状态标签:确认=金实心,预期=琥珀描边(承接 #262 金色证据语义) */
body.view-strategy .ml-star-proof .ml-stock.ml-starstock .ml-star-state {
  padding: 1px 6px !important;
  border-radius: 4px !important;
  border: 1px solid rgba(231, 173, 70, .45) !important;
  background: transparent !important;
  color: #eec173 !important;
  font-weight: 700 !important;
  box-shadow: none !important;
}
body.view-strategy .ml-star-proof .ml-stock.ml-starstock.confirmed .ml-star-state {
  border-color: transparent !important;
  background: var(--st-gold) !important;
  color: #17130b !important;
  font-weight: 800 !important;
}
body.view-strategy .ml-star-proof .ml-stock.ml-starstock .ml-star-name { color: var(--st-text) !important; }
body.view-strategy .ml-star-proof .ml-stock.ml-starstock.confirmed .ml-star-name { color: #ffeec4 !important; }
/* 龙头 chip 统一底色,压掉旧的明星高亮底 */
body.view-strategy .ml-card .ml-proof-row .ml-stock.ml-leaderstock,
body.view-strategy .ml-card.has-confirmed-star .ml-proof-row .ml-stock.ml-leaderstock,
body.view-strategy .ml-card.confirmed-mainline .ml-proof-row .ml-stock.ml-leaderstock {
  background: var(--st-panel-2) !important;
  box-shadow: none !important;
}
body.view-strategy .ml-card .ml-proof-row .ml-stock.ml-leaderstock.top {
  border-color: var(--st-line-strong) !important;
}
/* 无明星态:强度够但 L2 未出明星的方向不隐身,明确写出扫描状态 */
body.view-strategy .ml-proof-row.ml-star-proof.is-empty {
  border-style: dashed !important;
  border-color: var(--st-line) !important;
  border-left: 3px solid var(--st-line-strong) !important;
  /* 3px 状态边比确认/预期态的 1px 厚 2px,边框计入盒宽会把内容整体右推;
     这里回扣 2px 内边距(11 → 9),让三态"明星信号"文字起始线真正对齐。
     改动 border-left 宽度时必须同步改这里(见 STRATEGY_VISUAL_SEMANTICS.md §2)。 */
  padding-left: 9px !important;
  background: transparent !important;
}
body.view-strategy .ml-star-proof.is-empty .ml-star-proof-title { color: var(--st-faint) !important; }
body.view-strategy .ml-star-none {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  font-size: 11.5px;
  color: var(--st-faint);
}

/* =========================================================================
   确认明星卡精修(Owner 定稿方案A · 金箔徽章版,2026-07-25)
   问题:原「确认金 #efb94f」与「预期琥珀 #e7ad46」色相仅差 1.4°、RGB 距离 17,
        两态几乎同色。现确认=金(认证/勋章),预期=冷石板(未坐实/待定,色相 210°),
        红色仍专属 Owner 人工确认的当日主线。
   ========================================================================= */
body.view-strategy {
  --st-gold: #f0c04a;
  --st-gold-hi: #ffe9a8;
  --st-slate: #7f9bbd;
}

/* ---------- QI 徽章外框:三态同尺寸,不着色 ----------
   外框只负责 40×40 占位对齐(三态文字起始线不能错开),不承载状态色。
   确认态由卡片层表达(金边 + 金箔顶线 + 金色明星条 + 金色左柱),
   徽章位置只放与主页完全一致的 QI 标识——Owner 2026-07-25 定稿:
   "qi 的标识不应该是黄色",外圈金环同属 QI 标识的视觉整体,一并去掉。 */
body.view-strategy .ml-qi-seal {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  align-self: center;
  border-radius: 50%;
  border: 1px solid transparent;
  background: transparent;
  box-shadow: none;
}
body.view-strategy .ml-qi-seal.empty { visibility: hidden; }
body.view-strategy .ml-qi-seal .ml-qi-mark { width: 30px; height: 22px; }
body.view-strategy .ml-qi-mark .qim-orbit { stroke: var(--border-strong); }
body.view-strategy .ml-qi-mark .qim-line { stroke: var(--text); }
body.view-strategy .ml-qi-mark .qim-fill { fill: var(--text); }
body.view-strategy .ml-qi-mark.pending { opacity: .5; }
body.view-strategy .ml-qi-mark.pending .qim-orbit { stroke: rgba(127, 155, 189, .6); }
body.view-strategy .ml-qi-mark.pending .qim-line { stroke: var(--st-muted); }
body.view-strategy .ml-qi-mark.pending .qim-fill { fill: var(--st-muted); }

/* ---------- 确认明星卡:金箔顶边 + 金色左柱 ---------- */
body.view-strategy .ml-card.has-confirmed-star { position: relative; }
body.view-strategy .ml-card.has-confirmed-star:not(.confirmed-mainline) {
  border-color: rgba(240, 192, 74, .34) !important;
  background: var(--st-panel) !important;
  box-shadow: none !important;
}
/* 卡顶一道金箔高光(::before 已被左色条占用,这里用 ::after) */
body.view-strategy .ml-card.has-confirmed-star::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, var(--st-gold-hi) 18%, var(--st-gold) 42%, transparent 78%);
}
body.view-strategy .ml-card.has-confirmed-star .ml-rail {
  background: linear-gradient(165deg, rgba(240, 192, 74, .20), rgba(240, 192, 74, .045) 55%, transparent);
  border-right-color: rgba(240, 192, 74, .28);
}
body.view-strategy .ml-card.has-confirmed-star .ml-rail .ml-rank { color: var(--st-gold) !important; }
body.view-strategy .ml-card.has-confirmed-star .ml-rail-score {
  color: var(--st-gold-hi);
  text-shadow: 0 0 18px rgba(240, 192, 74, .28);
}
body.view-strategy .ml-card.has-confirmed-star .ml-rail-bar i {
  background: linear-gradient(90deg, var(--st-gold), var(--st-gold-hi));
}

/* ---------- 确认明星条 ---------- */
body.view-strategy .ml-card.has-confirmed-star .ml-proof-row.ml-star-proof {
  border-color: rgba(240, 192, 74, .3) !important;
  border-left: 1px solid rgba(240, 192, 74, .3) !important;
  background: linear-gradient(100deg, rgba(240, 192, 74, .17), rgba(240, 192, 74, .05) 55%, rgba(240, 192, 74, .015)) !important;
}
body.view-strategy .ml-card.has-confirmed-star .ml-star-proof .ml-star-proof-title {
  color: var(--st-gold) !important;
  font-weight: 800 !important;
  letter-spacing: .09em;
}
body.view-strategy .ml-star-proof .ml-stock.ml-starstock.confirmed {
  background: transparent !important;
  padding-left: 0 !important;
}
body.view-strategy .ml-star-proof .ml-stock.ml-starstock.confirmed .ml-star-name {
  color: var(--st-gold-hi) !important;
  font-size: 16px !important;
  font-weight: 800 !important;
}
body.view-strategy .ml-star-proof .ml-stock.ml-starstock.confirmed .ml-star-state {
  border-color: transparent !important;
  background: var(--st-gold) !important;
  color: #17130b !important;
}
body.view-strategy .ml-card.has-confirmed-star .ml-star-proof .ml-star-ratios > span {
  border-right-color: rgba(240, 192, 74, .18) !important;
}
body.view-strategy .ml-card.has-confirmed-star .ml-star-proof .ml-star-ratios b { color: var(--st-muted) !important; }

/* ---------- 预期明星:冷石板(与金拉开 170° 色相) ---------- */
body.view-strategy .ml-card.has-expected-star:not(.confirmed-mainline) {
  border-color: rgba(127, 155, 189, .26) !important;
  box-shadow: none !important;
}
body.view-strategy .ml-card.has-expected-star .ml-rail {
  background: linear-gradient(180deg, rgba(127, 155, 189, .1), transparent 70%);
  border-right-color: rgba(127, 155, 189, .22);
}
body.view-strategy .ml-card.has-expected-star .ml-rail .ml-rank { color: var(--st-slate) !important; }
body.view-strategy .ml-card.has-expected-star .ml-rail-bar i { background: var(--st-slate); }
body.view-strategy .ml-card.has-expected-star .ml-proof-row.ml-star-proof {
  border: 1px dashed rgba(127, 155, 189, .4) !important;
  background: rgba(127, 155, 189, .06) !important;
}
body.view-strategy .ml-card.has-expected-star .ml-star-proof .ml-star-proof-title { color: var(--st-slate) !important; }
body.view-strategy .ml-star-proof .ml-stock.ml-starstock:not(.confirmed) {
  background: transparent !important;
  padding-left: 0 !important;
}
body.view-strategy .ml-star-proof .ml-stock.ml-starstock:not(.confirmed) .ml-star-state {
  border-color: rgba(127, 155, 189, .45) !important;
  background: transparent !important;
  color: #b9cde4 !important;
}

/* =========================================================================
   Panda 管理员操作口径(2026-07-26)
   预期明星只观察；确认明星只在实时 L2 首次封板确认点形成买点；
   正式主线的首位龙头在主线有效期内保留操作角色。历史回看不生成当前信号。
   ========================================================================= */
body.view-strategy .ml-action-tag {
  display: inline-flex;
  align-items: center;
  min-height: 19px;
  margin-left: 3px;
  padding: 1px 6px;
  border: 1px solid rgba(74, 155, 255, .34);
  border-radius: 4px;
  background: rgba(74, 155, 255, .10);
  color: #8fc1ff;
  font-size: 9.5px;
  font-style: normal;
  font-weight: 760;
  line-height: 1;
  white-space: nowrap;
}
body.view-strategy .ml-star-proof .ml-stock.ml-starstock .ml-star-state.is-watch {
  border-color: rgba(127, 155, 189, .45) !important;
  background: transparent !important;
  color: #b9cde4 !important;
}
body.view-strategy .ml-star-proof .ml-stock.ml-starstock.confirmed .ml-star-state.is-buy {
  border-color: rgba(240, 192, 74, .8) !important;
  background: var(--st-gold) !important;
  color: #17130b !important;
  box-shadow: 0 0 0 2px rgba(240, 192, 74, .09) !important;
}
body.view-strategy .ml-star-proof .ml-stock.ml-starstock.confirmed .ml-star-state.is-review {
  border-color: rgba(240, 192, 74, .38) !important;
  background: rgba(240, 192, 74, .08) !important;
  color: #f0cf8a !important;
  box-shadow: none !important;
}
body.view-strategy .ml-action-guide {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 30px;
  margin-top: 8px;
  padding: 6px 9px;
  border: 1px solid var(--st-line);
  border-left: 3px solid var(--st-slate);
  border-radius: 5px;
  background: rgba(127, 155, 189, .045);
}
body.view-strategy .ml-action-guide-label {
  flex: 0 0 auto;
  color: var(--st-faint);
  font-size: 9.5px;
  font-weight: 760;
}
body.view-strategy .ml-action-guide b {
  min-width: 0;
  color: var(--st-muted);
  font-size: 11px;
  font-weight: 650;
  line-height: 1.45;
}
body.view-strategy .ml-action-guide.is-action {
  border-left-color: var(--st-gold);
  background: linear-gradient(90deg, rgba(240, 192, 74, .09), rgba(74, 155, 255, .035));
}
body.view-strategy .ml-action-guide.is-action b { color: #f3ddb1; }
body.view-strategy .ml-action-guide.is-review {
  border-left-color: var(--st-line-strong);
  background: transparent;
}

@media (max-width: 760px) {
  body.view-strategy .ml-action-guide {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
  }
}
