
  :root {
    --bg: #F6F4EF;
    --panel: #FFFFFF;
    --line: #E4E0D6;
    --ink: #1C1E22;
    --muted: #6E747E;
    --red: #D62B40;
    --teal: #0F8476;
    --amber: #A9761C;
    --serif: "Songti SC", "Noto Serif SC", "STSong", "SimSun", serif;
    --mono: "JetBrains Mono", "Cascadia Mono", Consolas, monospace;
    --sans: -apple-system, "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;
  }

  * { box-sizing: border-box; }
  html, body { margin: 0; padding: 0; }
  body {
    background: var(--bg); color: var(--ink);
    font-family: var(--sans); -webkit-font-smoothing: antialiased; line-height: 1.6;
  }

  .wrap { max-width: 1060px; margin: 0 auto; padding: 24px 24px 64px; }

  /* —— 顶部品牌 —— */
  .topbar {
    display: flex; align-items: center; justify-content: space-between;
    gap: 24px; flex-wrap: wrap; padding-bottom: 20px; border-bottom: 1px solid var(--line);
  }
  .brand { display: flex; align-items: center; gap: 14px; }
  .mark { width: 38px; height: 38px; flex: none; }
  .brand h1 { font-family: var(--serif); font-weight: 700; font-size: 26px; letter-spacing: .02em; margin: 0; line-height: 1.1; }
  .brand p { margin: 3px 0 0; color: var(--muted); font-size: 12px; }

  /* —— 导航 —— */
  .nav { display: flex; gap: 4px; flex-wrap:wrap; }
  .nav button {
    background: transparent; border: 1px solid transparent; color: var(--muted);
    font-family: var(--serif); font-size: 15px; padding: 8px 16px; cursor: pointer; border-radius: 4px; white-space:nowrap;
  }
  .nav button.active { color: var(--ink); border-color: var(--line); background: var(--panel); }
  .nav button:hover { color: var(--ink); }

  .intro { margin: 24px 0; font-family: var(--serif); font-size: 15px; max-width: 60em; color: var(--ink); }
  .intro b { color: var(--red); }

  /* —— 通用面板 —— */
  .section { margin-top: 20px; }
  .section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; }
  .section-head h2 { font-family: var(--serif); font-size: 19px; margin: 0; font-weight: 700; }
  .section-head .sub { color: var(--muted); font-size: 12px; }
  .panel { background: var(--panel); border: 1px solid var(--line); padding: 20px; }

  .grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
  @media (max-width: 760px) { .grid { grid-template-columns: 1fr; } }

  .engine { background: var(--panel); border: 1px solid var(--line); display: flex; flex-direction: column; }
  .engine-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 20px; border-bottom: 1px solid var(--line); }
  .engine-head .name { font-family: var(--serif); font-size: 19px; font-weight: 700; margin: 0; }
  .role-tag { font-size: 11px; padding: 2px 9px; border-radius: 3px; border: 1px solid var(--line); color: var(--muted); white-space: nowrap; }
  .engine-body { padding: 20px; display: flex; flex-direction: column; gap: 15px; flex: 1; }
  .engine-desc { color: var(--muted); font-size: 13px; margin: 0; }

  .field { display: flex; flex-direction: column; gap: 6px; }
  .field label { font-size: 12px; color: var(--muted); display: flex; justify-content: space-between; align-items: baseline; }
  .field label .hint { font-size: 11px; color: #8A909A; }
  .field input, .field textarea {
    background: var(--bg); border: 1px solid var(--line); border-radius: 4px;
    color: var(--ink); font-family: var(--mono); font-size: 13px; padding: 10px 12px; width: 100%;
  }
  .field textarea { resize: vertical; min-height: 74px; font-family: var(--sans); line-height: 1.5; }
  .field input:focus, .field textarea:focus { outline: none; border-color: var(--red); }
  .field input::placeholder, .field textarea::placeholder { color: #B3B8BF; }
  .field select {
    background: var(--bg); border: 1px solid var(--line); border-radius: 4px;
    color: var(--ink); font-family: var(--mono); font-size: 13px; padding: 10px 12px; width: 100%;
  }
  .field select:focus { outline: none; border-color: var(--red); }

  .key-row { display: flex; gap: 8px; }
  .key-row input { flex: 1; }

  .engine-foot { margin-top: auto; padding-top: 16px; border-top: 1px solid var(--line); }
  .btn {
    display: inline-flex; align-items: center; gap: 7px; cursor: pointer; border-radius: 4px;
    font-size: 13px; padding: 9px 16px; font-family: var(--sans);
    border: 1px solid transparent; transition: opacity .15s;
  }
  .btn:hover { opacity: .85; }
  .btn:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
  .btn-ghost { background: transparent; border-color: var(--line); color: var(--ink); }
  .btn-primary { background: var(--red); color: #fff; }
  .btn-teal { background: var(--teal); color: #FFFFFF; }
  .btn-block { width: 100%; justify-content: center; }
  .btn:disabled { opacity: .45; cursor: default; }
  .btn.sm { padding: 6px 12px; font-size: 12px; }

  .test-status { font-size: 12px; margin-top: 10px; min-height: 18px; font-family: var(--mono); }
  .test-status.ok { color: var(--teal); }
  .test-status.err { color: var(--red); }
  .test-status.testing { color: var(--amber); }

  .savebar { margin-top: 20px; padding: 18px 20px; background: var(--panel); border: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
  .savebar .note { color: var(--muted); font-size: 12px; max-width: 46em; }
  .savebar .note b { color: var(--ink); }

  .led { display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px; border: 1px solid var(--line); border-radius: 999px; font-size: 12px; color: var(--muted); white-space: nowrap; }
  .dot { width: 8px; height: 8px; border-radius: 50%; background: #C9C5BB; flex: none; }
  .led.on .dot { background: var(--teal); box-shadow: 0 0 0 3px rgba(15,132,118,.2); }
  .led.on { color: var(--ink); }
  .led.err .dot { background: var(--red); }
  .led.testing .dot { background: var(--amber); animation: pulse 1s ease-in-out infinite; }
  @keyframes pulse { 50% { opacity: .35; } }

  /* —— 数据 / 回测视图 —— */
  .stat-row { display: flex; gap: 28px; flex-wrap: wrap; }
  .stat .num { font-family: var(--serif); font-size: 30px; font-weight: 700; line-height: 1; }
  .stat .lbl { color: var(--muted); font-size: 12px; margin-top: 4px; }
  .stat .num b { font-size: 15px; font-weight: 700; }

  .bar-wrap { height: 6px; background: var(--bg); border: 1px solid var(--line); border-radius: 999px; overflow: hidden; margin-top: 14px; }
  .bar-fill { height: 100%; background: var(--red); width: 0; transition: width .3s; }

  .strat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
  @media (max-width: 760px) { .strat-grid { grid-template-columns: 1fr; } }
  .strat {
    background: var(--bg); border: 1px solid var(--line); padding: 14px 16px; cursor: pointer;
    border-radius: 4px; text-align: left; transition: border-color .15s;
  }
  .strat:hover { border-color: #C9C5BB; }
  .strat.active { border-color: var(--red); box-shadow: inset 0 0 0 1px var(--red); }
  .strat .sname { font-family: var(--serif); font-size: 15px; font-weight: 700; }
  .strat .sdesc { color: var(--muted); font-size: 11.5px; margin-top: 6px; line-height: 1.5; }

  .metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
  @media (max-width: 760px) { .metrics { grid-template-columns: repeat(2, 1fr); } }
  .metric { background: var(--bg); border: 1px solid var(--line); padding: 14px 16px; border-radius: 4px; }
  .metric .mval { font-family: var(--mono); font-size: 22px; font-weight: 700; line-height: 1.1; }
  .metric .mlbl { color: var(--muted); font-size: 11px; margin-top: 5px; }
  .up { color: var(--red); }
  .down { color: var(--teal); }

  .chart { width: 100%; height: auto; display: block; background: var(--bg); border: 1px solid var(--line); }
  .legend { display: flex; gap: 20px; font-size: 12px; color: var(--muted); margin-top: 10px; }
  .legend .sw { display: inline-block; width: 12px; height: 3px; vertical-align: middle; margin-right: 6px; }

  .table-wrap { overflow: auto; max-height: 420px; border: 1px solid var(--line); }
  table { width: 100%; border-collapse: collapse; font-size: 12px; font-family: var(--mono); }
  th, td { padding: 8px 10px; text-align: right; white-space: nowrap; border-bottom: 1px solid var(--line); }
  th { position: sticky; top: 0; background: var(--panel); color: var(--muted); font-weight: 500; font-size: 11px; }
  td:nth-child(1), th:nth-child(1) { text-align: left; }
  td:nth-child(3), th:nth-child(3) { text-align: left; }
  td:nth-child(9), th:nth-child(9) { text-align: left; max-width: 320px; white-space: normal; }
  .side-buy { color: var(--red); }
  .side-sell { color: var(--teal); }
  .month-row td { background: var(--bg); font-family: var(--serif); font-size: 12.5px; text-align: left; border-bottom: 1px solid var(--line); }

  .bt-list { display: flex; flex-direction: column; gap: 8px; }
  .bt-row { display: flex; align-items: center; gap: 14px; padding: 10px 14px; background: var(--bg); border: 1px solid var(--line); border-radius: 4px; cursor: pointer; }
  .bt-row:hover { border-color: #C9C5BB; }
  .bt-row .bt-name { font-family: var(--serif); font-weight: 700; }
  .bt-row .bt-meta { color: var(--muted); font-size: 12px; margin-left: auto; font-family: var(--mono); }


  .live-settings > .field { max-width: 520px; }
  .live-help { font-size:13px; line-height:1.8; color:var(--text-muted, #606875); margin:12px 0; overflow-wrap:anywhere; }
  .live-options { border:0; padding:0; margin:22px 0; display:flex; flex-wrap:wrap; gap:12px 24px; }
  .live-options legend { font-size:13px; font-weight:600; padding:0; margin-bottom:10px; }
  .live-options .chk { min-height:36px; }
  .live-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:16px; }
  .live-details { border-top:1px solid var(--border, #e1e5eb); margin-top:20px; padding-top:16px; }
  .live-details summary { cursor:pointer; font-size:13px; }
  .live-empty { padding:14px 20px; color:var(--text-muted, #606875); font-size:13px; line-height:1.8; }
  #pickTable table { min-width:950px; font-variant-numeric:tabular-nums; }
  #pickTable td:last-child { text-align:left; min-width:220px; max-width:380px; white-space:normal; }
  #viewLive :focus-visible { outline:2px solid var(--primary, #3564bb); outline-offset:3px; }
  @media(max-width:640px) { .live-options { gap:8px 16px; } .live-actions .btn { flex:1 1 140px; } }

  /* ============ 视图三：实盘监控 ============ */
  .channel-row { display: flex; align-items: flex-start; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--line); }
  .channel-row:last-child { border-bottom: none; }
  .channel-info { flex: 1; min-width: 0; }
  .channel-info .cname { font-family: var(--serif); font-weight: 700; }
  .channel-info .cdesc { color: var(--muted); font-size: 12px; margin-top: 2px; }
  .channel-info input { margin-top: 8px; }
  .feishu-connection { padding: 20px; margin-bottom: 12px; }
  .feishu-heading, .feishu-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
  .feishu-heading h3 { font-family: var(--serif); margin: 0; font-size: 18px; }
  .feishu-recommended { color: #09695F; background: #E7F3EF; padding: 2px 8px; border-radius: 4px; font-size: 12px; }
  .feishu-connection p { margin: 8px 0 14px; font-size: 13px; }
  .feishu-actions { margin-top: 14px; }
  .feishu-actions [hidden] { display: none; }
  .feishu-binding { display: flex; gap: 24px; align-items: center; margin-top: 20px; flex-wrap: wrap; }
  .feishu-binding[hidden] { display: none; }
  .feishu-binding img { width: 200px; height: 200px; max-width: 100%; image-rendering: pixelated; }
  .feishu-binding ol { margin: 0; padding-left: 22px; font-size: 13px; }
  .feishu-code { display: block; font-family: var(--mono); font-size: 30px; letter-spacing: .12em; margin: 8px 0; user-select: all; }
  #feishuState { font-size: 13px; overflow-wrap: anywhere; }
  @media (max-width: 540px) { .feishu-binding { gap: 12px; } .feishu-actions .btn { flex: 1 1 auto; } }
  .form-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
  @media (max-width: 760px) { .form-grid { grid-template-columns: repeat(2, 1fr); } }
  .chk { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); cursor: pointer; }
  .chk input { accent-color: var(--red); }
  .check { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); cursor: pointer; }
  .check input { accent-color: var(--red); }

  .toast {
    position: fixed; right: 24px; bottom: 24px; z-index: 50; background: var(--panel);
    border: 1px solid var(--line); border-left: 3px solid var(--teal); color: var(--ink);
    padding: 12px 18px; font-size: 13px; border-radius: 4px; opacity: 0; transform: translateY(8px);
    pointer-events: none; transition: opacity .25s, transform .25s;
  }
  .toast.show { opacity: 1; transform: none; }
  .toast.err { border-left-color: var(--red); }

  footer { margin-top: 40px; color: #8A909A; font-size: 11px; text-align: center; }
  .muted { color: var(--muted); }

  /* ============ 视图四：智能研究 ============ */
  .agent-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
  @media (max-width: 760px) { .agent-grid { grid-template-columns: 1fr; } }
  .agent-card { background: var(--panel); border: 1px solid var(--line); padding: 16px 18px; }
  .agent-card .ahead { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
  .agent-card .aname { font-family: var(--serif); font-size: 15px; font-weight: 700; }
  .agent-card .asum { font-size: 13px; color: var(--ink); line-height: 1.6; min-height: 3em; }
  .agent-card .apoints { margin: 10px 0 0; padding-left: 16px; font-size: 12px; color: var(--muted); }
  .research-reports { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:20px; }
  .research-report { min-width:0; padding:20px 0; border-top:1px solid var(--line); overflow-wrap:anywhere; }
  .research-report h3 { font-family:var(--serif); font-size:18px; margin:0; }
  .research-report h4 { font-size:13px; margin:18px 0 6px; }
  .research-report p, .research-report li { font-size:13px; line-height:1.9; }
  .research-report ul { margin:6px 0; padding-left:20px; }
  .research-report .report-analysis { white-space:pre-wrap; }
  .research-strategy { margin-top:20px; padding:20px; background:var(--panel); border:1px solid var(--line); overflow-wrap:anywhere; }
  .research-strategy h3 { margin:0 0 12px; font-family:var(--serif); font-size:18px; }
  .research-strategy p { font-size:13px; }
  .research-conditions { width:100%; border-collapse:collapse; table-layout:fixed; font-family:var(--sans); font-size:13px; }
  .research-conditions th, .research-conditions td { padding:12px 8px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; white-space:normal; overflow-wrap:anywhere; }
  .research-conditions th:nth-child(2) { width:76px; }
  #rsResult:focus { outline:2px solid var(--ink); outline-offset:4px; }
  @media(max-width:760px) { .research-reports { grid-template-columns:1fr; gap:0; } .research-strategy { padding:14px; } }
  .tag { display: inline-block; font-size: 11px; padding: 2px 9px; border-radius: 3px; border: 1px solid var(--line); white-space: nowrap; }
  .tag.good { color: var(--red); border-color: rgba(214,43,64,.45); }
  .tag.bad  { color: var(--teal); border-color: rgba(15,132,118,.45); }
  .tag.mid  { color: var(--muted); }

  .jev-card { background: linear-gradient(160deg, #F3E9E0, var(--panel)); border: 1px solid var(--red); padding: 20px; margin-top: 12px; }
  .jev-card .jhead { font-family: var(--serif); font-size: 13px; color: var(--muted); }
  .jev-card .jverdict { font-family: var(--serif); font-size: 40px; font-weight: 700; line-height: 1; margin-top: 6px; }
  .jev-card .jmeta { display: flex; gap: 26px; flex-wrap: wrap; margin-top: 14px; font-size: 13px; color: var(--ink); }
  .jev-card .jmeta b { color: var(--muted); font-weight: 500; margin-right: 5px; }

  .cmp-table td, .cmp-table th { text-align: center; }
  .cmp-table td:first-child, .cmp-table th:first-child { text-align: left; }
  .opt-reason { font-size: 12.5px; color: var(--ink); line-height: 1.6; background: var(--bg); border: 1px solid var(--line); padding: 12px 14px; margin-top: 12px; }

  /* 行业涨停表：独立覆盖通用交易明细表的列对齐规则。 */
  .limit-up-head { padding: 16px 20px 10px; }
  .limit-up-head h2 { font-size: 16px; }
  .limit-up-tools { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
  .limit-up-tools label { font-size: 12px; color: var(--muted); }
  .limit-up-tools input { padding: 6px 8px; border: 1px solid var(--line); border-radius: 4px; background: var(--panel); color: var(--ink); font-family: var(--sans); }
  .limit-up-tools input:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
  .limit-up-note { padding: 0 20px 12px; margin: 0; font-size: 12px; color: var(--muted); }
  .limit-up-status { padding: 0 20px 12px; font-size: 12px; color: var(--muted); }
  .limit-up-empty { padding: 22px 20px; font-size: 13px; color: var(--muted); white-space: normal; }
  .limit-up-table { min-width: 640px; font-family: var(--sans); }
  .limit-up-table th, .limit-up-table td { text-align: left; padding: 12px 16px; vertical-align: top; }
  .limit-up-table thead th { z-index: 1; background: var(--bg); }
  .limit-up-table tbody th { position: static; color: var(--ink); font-size: 13px; font-weight: 600; width: 130px; }
  .limit-up-table td:nth-child(2), .limit-up-table td:nth-child(3) { width: 120px; font-variant-numeric: tabular-nums; }
  .limit-up-table td:last-child { white-space: normal; min-width: 240px; }
  .limit-up-days { color: var(--red); font-weight: 600; }
  .limit-up-stocks { display: flex; gap: 8px 18px; flex-wrap: wrap; }
  .limit-up-stocks span { white-space: nowrap; }
  .limit-up-stocks small { color: var(--muted); font-family: var(--mono); font-size: 11px; }
  .limit-up-caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  @media (max-width: 760px) { .limit-up-head { align-items: flex-start; } }

/* 沿用暖白、红涨绿跌，以独立栅格和紧凑数据行整理首页层级。 */
#viewHome, #viewHome .section, #viewHome .panel { min-width: 0; }
#dashStatus { margin: 0 0 18px; font-size: 12px; }
#dashIndexes {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px 24px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--line, #e4e0d6);
}
#dashIndexes .stat { min-width: 0; display: flex; flex-direction: column-reverse; gap: 6px; }
#dashIndexes .stat .num { font-family: var(--mono, monospace); font-size: clamp(22px, 2.5vw, 30px); line-height: 1.25; font-variant-numeric: tabular-nums; }
#dashIndexes .stat .lbl { margin: 0; color: #545b64; font-size: 12px; }
#dashStats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  column-gap: 28px;
  row-gap: 0;
  margin-top: 12px;
}
#dashStats .stat { min-width: 0; display: flex; flex-direction: row-reverse; justify-content: space-between; align-items: baseline; gap: 8px; padding: 9px 0; }
#dashStats .stat .num { font-family: var(--mono, monospace); font-size: 17px; line-height: 1.35; font-weight: 600; font-variant-numeric: tabular-nums; }
#dashStats .stat .lbl { margin: 0; color: #545b64; font-size: 12px; white-space: nowrap; }
.market-home { margin-top: 16px; padding: 0; min-width: 0; }
.market-home-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 20px; padding: 18px 20px 10px; }
.market-home-head h2 { margin: 0; font-family: var(--serif, serif); font-size: 18px; }
.market-home-tools { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px 10px; margin-left: auto; }
.market-home-tools label { color: #545b64; font-size: 12px; }
.market-home-tools select, .market-home-tools input { max-width: 100%; min-height: 36px; border: 1px solid var(--line, #e4e0d6); border-radius: 4px; padding: 6px 9px; background: var(--panel, #fff); color: var(--ink, #1c1e22); font: inherit; font-size: 12px; caret-color: var(--red, #d62b40); }
.market-home-date-tools { display: inline-flex; align-items: center; gap: 8px; }
.market-home-date-tools[hidden] { display: none; }
.market-home-tools button { min-height: 36px; }
.market-home-tools select:hover, .market-home-tools input:hover { border-color: #a09b91; }
.market-home-tools :focus-visible, .market-home-scroll:focus-visible { outline: 2px solid var(--red, #d62b40); outline-offset: 3px; }
.market-home-status { padding: 0 20px 14px; margin: 0; color: #545b64; font-size: 12px; line-height: 1.7; overflow-wrap: anywhere; }
.market-home-source { margin: 0 20px 14px; color: #626871; font-size: 12px; line-height: 1.8; }
.market-home-source summary { cursor: pointer; }
.market-home-scroll { width: 100%; max-width: 100%; max-height: 580px; overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #b8b1a4 #f6f4ef; border-top: 1px solid var(--line, #e4e0d6); }
.market-home-scroll::-webkit-scrollbar { height: 9px; width: 9px; }
.market-home-scroll::-webkit-scrollbar-track { background: #f6f4ef; }
.market-home-scroll::-webkit-scrollbar-thumb { border: 2px solid #f6f4ef; border-radius: 8px; background: #b8b1a4; }
.market-home-table { width: 100%; border-collapse: separate; border-spacing: 0; font-family: var(--sans, sans-serif); font-size: 12px; font-variant-numeric: tabular-nums; }
.market-home-table th, .market-home-table td { padding: 11px 12px; max-width: none; white-space: nowrap; vertical-align: middle; border-bottom: 1px solid var(--line, #e4e0d6); text-align: right; }
.market-home-table thead th { position: sticky; top: 0; z-index: 2; background: #f6f4ef; color: #545b64; font-size: 12px; font-weight: 600; }
.market-home-table tbody th { position: static; background: #fff; color: var(--ink, #1c1e22); font-size: 12px; font-weight: 500; }
.market-home-table tr > :first-child { text-align: left; }
.market-home-table tbody tr:hover > * { background: #faf8f3; }
.market-home-table .up { color: #bd2136; }
.market-home-table .down { color: #086f63; }
.market-home-sentiment { min-width: 1120px; }
.market-home-table.market-home-sentiment th:first-child { min-width: 112px; }
.market-home-table.market-home-sentiment th:nth-child(3), .market-home-table.market-home-sentiment td:nth-child(3), .market-home-table.market-home-sentiment th:nth-child(9), .market-home-table.market-home-sentiment td:nth-child(9) { text-align: right; max-width: none; white-space: nowrap; }
.market-home-table.market-home-sentiment td:last-child, .market-home-table.market-home-sentiment th:last-child { min-width: 340px; max-width: 540px; text-align: left; white-space: normal; }
.market-home-hotspots { min-width: 1040px; }
.market-home-table.market-home-hotspots th, .market-home-table.market-home-hotspots td { text-align: left; }
.market-home-table.market-home-hotspots th:nth-child(1) { min-width: 100px; }
.market-home-table.market-home-hotspots .market-home-hotspot-stock { min-width: 210px; white-space: normal; }
.market-home-hotspots .market-home-stock { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 6px; white-space: normal; }
.market-home-hotspots .market-home-stock small, .market-home-hotspots .market-home-stock b { white-space: nowrap; }
.market-home-table.market-home-hotspots .market-home-industry-total { background: #faf8f3; font-weight: 600; vertical-align: top; }
.market-home-hotspots tbody + tbody tr:first-child > * { border-top: 1px solid #c9c2b5; }
.market-home-hotspots tbody th[scope="rowgroup"] { vertical-align: top; font-weight: 600; background: #faf8f3; }
.market-home-days { color: #bd2136; font-weight: 600; }
.market-home-stocks { display: flex; flex-wrap: wrap; gap: 5px 16px; line-height: 1.8; }
.market-home-stock { white-space: nowrap; }
.market-home-stock small { color: #545b64; font-family: var(--mono, monospace); font-size: 11px; }
.market-home-stock b { color: #bd2136; font-weight: 500; font-size: 11px; }
.market-home-row-note { display: block; color: #765314; font-size: 10px; margin-top: 3px; }
.market-home-missing, .market-home-muted { color: #626871; }
.market-home-empty { padding: 32px 20px; font-size: 13px; color: #545b64; line-height: 1.8; }
.market-home-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.market-home ::selection { color: #1c1e22; background: #f0cbd0; }
.research-history-row { width: 100%; color: inherit; text-align: left; font: inherit; }
.research-history-row:focus-visible { outline: 2px solid var(--red, #d62b40); outline-offset: 3px; }
@media (max-width: 760px) {
  #dashIndexes { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  #dashStats { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 22px; }
  .market-home-head { align-items: flex-start; }
  .market-home-tools { gap: 8px; }
}
@media (max-width: 520px) {
  #dashIndexes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #dashStats { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 20px; }
  .market-home-head { padding: 16px 14px 10px; }
  .market-home-tools { width: 100%; justify-content: flex-start; margin-left: 0; }
  .market-home-status { padding-right: 14px; padding-left: 14px; }
  .market-home-tools select, .market-home-tools input, .market-home-tools button { min-height: 42px; }
}

/* 沿用首页暖白、红涨绿跌，以图表和简短文字表达盘面。 */
.market-charts { min-width:0; margin-top:20px; color:var(--ink,#1c1e22); }
.market-charts-section { min-width:0; padding:20px 0; border-top:1px solid var(--line,#e4e0d6); }
.market-charts-head { display:flex; align-items:center; justify-content:space-between; gap:12px 20px; flex-wrap:wrap; margin-bottom:12px; }
.market-charts h2 { font-family:var(--serif,serif); font-size:19px; margin:0; font-weight:600; }
.market-charts h3 { font-size:13px; font-weight:600; margin:0 0 10px; }
.market-charts-tools { display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px; }
.market-charts-tools label { display:inline-flex; align-items:center; gap:7px; color:#545b64; font-size:12px; }
.market-charts select, .market-charts input { max-width:100%; min-height:36px; padding:6px 9px; border:1px solid var(--line,#e4e0d6); border-radius:4px; background:var(--panel,#fff); color:var(--ink,#1c1e22); font:inherit; font-size:12px; }
.market-charts button { min-height:36px; }
.market-charts :focus-visible { outline:2px solid var(--red,#bd2136); outline-offset:3px; }
.market-charts-note { color:#545b64; font-size:12px; line-height:1.8; margin:8px 0 14px; overflow-wrap:anywhere; }
.market-charts-history { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 24px; }
.market-charts-history > :last-child { grid-column:1 / -1; }
.market-charts-plot { width:100%; min-width:0; height:310px; }
#marketForecastChart { height:310px; }
#marketForecastConfidenceChart { height:255px; }
.market-charts-note:empty, .market-forecast-summary:empty, .market-forecast-models:empty { display:none; }
.market-charts [hidden] { display:none !important; }
.market-forecast-summary { margin:2px 0 20px; max-width:85ch; color:#545b64; font-size:12px; line-height:1.9; overflow-wrap:anywhere; }
.market-forecast-chart-head { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:6px 16px; margin-top:20px; }
.market-forecast-chart-head h3 { margin:0; }
.market-forecast-chart-head p { margin:0; color:#545b64; font-size:12px; line-height:1.8; }
.market-forecast-models { display:flex; flex-wrap:wrap; gap:12px 32px; padding:16px 0 0; margin:16px 0 0; border-top:1px solid var(--line,#e4e0d6); list-style:none; font-size:12px; line-height:1.8; }
.market-forecast-models li { display:flex; flex-wrap:wrap; gap:2px 10px; min-width:0; overflow-wrap:anywhere; }
.market-forecast-models strong { font-weight:600; }
.market-forecast-models span { color:#545b64; }
.market-forecast-risks { padding-left:18px; max-width:85ch; color:#545b64; line-height:1.9; margin:10px 0 0; overflow-wrap:anywhere; }
.market-forecast-risks li + li { margin-top:5px; }
#dashBoardsChart { width:100%; min-width:0; height:300px; }
#dashBoardsStatus { margin:0; padding:0 20px 14px; color:#545b64; font-size:12px; line-height:1.8; }
.market-charts-day-grid { display:grid; grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr); gap:24px; align-items:start; }
.market-charts-plot-scroll { max-height:560px; overflow-y:auto; overflow-x:hidden; scrollbar-width:thin; }
.market-charts-details { border-top:1px solid var(--line,#e4e0d6); margin-top:16px; padding-top:12px; color:#545b64; font-size:12px; }
.market-charts-details summary { cursor:pointer; }
#marketStocksDetail { max-height:240px; overflow:auto; white-space:pre-wrap; font-family:inherit; line-height:1.8; margin:10px 0 0; }
@media(max-width:850px) {
 .market-charts-history, .market-charts-day-grid { grid-template-columns:minmax(0,1fr); }
 .market-charts-history > :last-child { grid-column:auto; }
 .market-charts-plot { height:300px; }
}
@media(max-width:520px) {
 .market-charts-section { padding:16px 0; }
 .market-charts-head { align-items:flex-start; }
 .market-charts-tools { width:100%; gap:8px; }
 .market-charts-tools label { flex-wrap:wrap; }
 .market-charts select, .market-charts input, .market-charts button { min-height:42px; }
 .market-forecast-chart-head { align-items:flex-start; flex-direction:column; }
 .market-forecast-models { flex-direction:column; gap:8px; }
 #marketForecastChart { height:290px; }
 #marketForecastConfidenceChart { height:255px; }
}


.platform-strip{background:#eeece6;border-bottom:1px solid var(--line);font-size:12px;color:#62686d}.platform-strip-inner{max-width:1240px;min-height:44px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.prototype-caption{display:flex;align-items:center;gap:8px;white-space:nowrap;font-weight:500}.prototype-dot{width:6px;height:6px;background:var(--teal);border-radius:50%}.prototype-caption-note{color:#84898d;font-size:11px;font-weight:400;border-left:1px solid #d8d5cc;padding-left:9px;margin-left:3px}.platform-tools label{font-size:11px;color:#757a7e}.platform-strip .platform-tools{gap:12px}.platform-strip select{font:12px var(--sans);min-height:30px;cursor:pointer}.platform-strip #platformAccount{display:flex;align-items:center;gap:4px;padding-left:12px;border-left:1px solid #d8d5cc}.platform-strip #platformAccount .btn{background:transparent;border-color:transparent;padding:5px 9px;min-height:32px;font:12px var(--sans);color:#4d5559}.platform-strip #platformAccount .btn:hover{background:#e3e1d8;color:var(--ink)}.platform-strip #platformAccount .btn:last-child{color:var(--teal);font-weight:600}.platform-strip #platformAccount .btn:focus-visible{outline:2px solid var(--teal);outline-offset:1px}.platform-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.platform-strip select{border:1px solid var(--line);background:white;padding:5px 8px;border-radius:4px;color:var(--ink)}.platform-addition{color:var(--teal);font-size:10px;border:1px solid #cbded6;background:#f0f7f4;padding:1px 6px;border-radius:3px;white-space:nowrap}.platform-view{margin-top:24px}.platform-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.platform-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.platform-note{font-size:11px;color:var(--muted);line-height:1.8;margin:10px 0}.platform-wallet{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.platform-balance{font-size:32px;font-family:var(--mono);line-height:1.8}.platform-badge{font-size:10px;color:var(--teal);padding:2px 6px;background:#f0f7f4;border:1px solid #cbded6;border-radius:3px}.platform-overlay{position:fixed;inset:0;z-index:100;background:#1c1e2270;display:flex;align-items:center;justify-content:center;padding:20px}.platform-dialog{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:24px;width:470px;max-width:100%;max-height:90vh;overflow:auto}.platform-dialog h2{font:700 19px var(--serif);margin:0}.platform-dialog .field{margin:14px 0}.platform-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.platform-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}.platform-plan{padding:15px 8px;border:1px solid var(--line);background:#fff;border-radius:4px;font-size:12px}.platform-plan.active{border-color:var(--teal);background:#f0f7f4}.platform-label{background:#faf5e8;border:1px solid #e7d8b5;padding:10px 12px;color:#866620;font-size:11px;line-height:1.8;margin:12px 0}.platform-cost{font-size:11px;color:var(--amber);margin:7px 0}.platform-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;padding:12px 18px;font-size:12px;border-radius:5px;z-index:200;max-width:90vw}[hidden]{display:none!important}.platform-progress{height:5px;background:#eee8dd;margin-top:10px}.platform-progress span{height:100%;display:block;background:var(--teal)}
@media(max-width:680px){.platform-strip-inner{min-height:44px;padding:8px 20px;flex-wrap:wrap;gap:5px}.platform-strip .platform-tools{width:auto;gap:6px;flex-wrap:nowrap}.platform-strip #platformAccount{padding-left:4px;gap:0}.platform-strip #platformAccount .btn{font-size:11px;padding:5px 6px}.platform-strip .platform-tools label{display:none}.prototype-caption-note{display:none}.platform-strip select{max-width:110px}.platform-grid{grid-template-columns:1fr}.platform-strip{font-size:10px}.platform-dialog{padding:18px}}

.wrap.platform-pages-open{max-width:1240px}.platform-pages-open .topbar{max-width:none;margin:0;gap:16px}.platform-pages-open .brand h1{font-size:24px}.platform-pages-open .nav{gap:2px}.platform-pages-open .nav button{font-family:var(--sans);font-size:13px;padding:9px 14px}.platform-pages-open .nav button.active{border-color:#cdded7;background:#eaf2ed;color:#246d60}.platform-view{margin-top:32px;padding-bottom:12px;min-width:0}.ref-page-head{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:27px}.ref-page-head h2{font:700 27px/1.4 var(--serif);margin:0 0 8px}.ref-page-head p{font-size:12px;line-height:1.8;color:var(--muted);margin:0}.ref-page-head .btn{min-height:40px}.ref-card{background:white;border:1px solid var(--line);border-radius:8px;min-width:0;overflow:hidden}.ref-card-head{padding:18px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.ref-card-head h3{font:700 16px var(--serif);margin:0}.ref-card-body{padding:20px 22px}.ref-link{border:0;background:none;padding:5px 0;min-height:30px;color:var(--teal);font:12px var(--sans);cursor:pointer;text-align:left}.ref-link:hover{text-decoration:underline;text-underline-offset:4px}.ref-icon{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;vertical-align:middle}.ref-tag{display:inline-flex;align-items:center;gap:5px;font:10px var(--sans);padding:3px 7px;border:1px solid #e3e5da;border-radius:4px;color:#616960;background:#f4f4ee;white-space:nowrap}.ref-tag.teal{background:#eef6f0;border-color:#d3e5da;color:var(--teal)}.ref-tag.amber{background:#fcf6e8;border-color:#eadcbd;color:#8a672b}.community-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:22px;align-items:start}.community-aside{display:grid;gap:18px}.community-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:16px}.community-tabs{display:flex;gap:4px;flex-wrap:wrap}.community-tabs button,.member-filters button{border:0;background:transparent;color:var(--muted);border-radius:5px;padding:8px 12px;font:12px var(--sans);min-height:36px;cursor:pointer}.community-tabs button.active,.member-filters button.active{background:var(--ink);color:white}.community-search{display:flex;align-items:center;gap:8px;padding:7px 11px;border:1px solid var(--line);background:white;border-radius:5px;color:var(--muted);max-width:230px}.community-search input{width:100%;min-width:0;border:0;background:none;font:12px var(--sans);padding:4px 0;outline:none}.community-result-head{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:11px;padding:0 2px 13px}.community-result-head select{border:0;background:transparent;color:var(--ink);font:11px var(--sans);padding:4px}.community-feed{display:grid;gap:16px}.community-post{padding:23px 25px;transition:border-color .15s}.community-post:hover{border-color:#c4c1b5}.community-author{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--muted)}.community-avatar{display:inline-flex;align-items:center;justify-content:center;width:29px;height:29px;flex-shrink:0;border:1px solid #e0e6d5;border-radius:50%;background:#edf1e7;color:#53634b;font-size:11px}.community-author strong{font-weight:500;color:#465145}.community-author time{margin-left:auto;font:10px var(--mono)}.community-post-title{border:0;background:none;cursor:pointer;padding:0;margin:15px 0 9px;font:700 19px/1.6 var(--serif);color:var(--ink);text-align:left}.community-post-title:hover{color:var(--teal)}.community-summary{font-size:12px;color:#697064;line-height:1.9;margin:0}.community-snapshot{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:13px 16px;margin-top:16px;border:1px solid #ebe8df;border-radius:6px;background:#faf9f5}.community-snapshot span{display:block;color:var(--muted);font-size:10px}.community-snapshot strong{display:block;font:600 17px var(--mono);margin-top:6px}.community-snapshot small{grid-column:1/-1;color:var(--muted);font-size:9px}.community-post-actions{display:flex;align-items:center;gap:19px;margin-top:18px}.community-post-actions button{display:flex;align-items:center;gap:6px;min-height:31px;font-size:11px;padding:4px 0;border:0;background:none;color:var(--muted);cursor:pointer}.community-post-actions button:hover{color:var(--ink)}.community-post-actions button[aria-pressed=true]{color:var(--teal)}.community-post-actions button:last-child{margin-left:auto}.community-guide{padding:0;margin:0;list-style:none;display:grid;gap:17px}.community-guide li{display:flex;gap:11px;align-items:flex-start}.community-guide i{display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:#f2f0e9;color:#78806e;font:10px var(--mono);flex-shrink:0}.community-guide strong{font-size:12px;font-weight:600;display:block}.community-guide p{font-size:11px;line-height:1.8;margin:4px 0 0;color:var(--muted)}.community-rules{font-size:10px;line-height:1.9;margin:15px 0 0;padding-top:13px;border-top:1px solid var(--line);color:var(--muted)}.community-personal{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 0;border:0;background:none;font:12px var(--sans);color:#555f51;cursor:pointer}.community-personal+button{border-top:1px solid var(--line)}.community-personal strong{font:600 13px var(--mono)}.community-topics{display:flex;flex-wrap:wrap;gap:8px}.community-topics button{border:1px solid var(--line);background:#f7f6f1;color:#697064;border-radius:4px;padding:6px 9px;font-size:11px;cursor:pointer}.community-empty{padding:45px 24px;text-align:center}.community-empty h3{font:700 17px var(--serif);margin:0 0 9px}.community-empty p{font-size:12px;color:var(--muted);margin:0 0 16px}.community-form label{display:block;font-size:12px;color:var(--muted);margin:14px 0 7px}.community-form input,.community-form textarea,.community-form select{width:100%;border:1px solid var(--line);padding:10px 12px;border-radius:4px;background:#faf9f5;color:var(--ink);font:13px var(--sans)}.community-form textarea{min-height:120px;resize:vertical;line-height:1.8}.community-comments{display:grid;gap:16px;margin:20px 0}.community-comment{padding-bottom:14px;border-bottom:1px solid var(--line);font-size:12px;line-height:1.8}.community-comment strong{display:block;color:var(--teal);font-size:11px;margin-bottom:5px}.member-layout{display:grid;grid-template-columns:184px minmax(0,1fr);gap:24px;align-items:start}.member-nav{padding:10px}.member-identity{display:flex;align-items:center;gap:10px;padding:12px 9px 20px;margin-bottom:8px;border-bottom:1px solid var(--line)}.member-identity .community-avatar{width:35px;height:35px;font-size:14px}.member-identity strong{display:block;font-size:12px}.member-identity small{display:block;font-size:10px;color:var(--muted);margin-top:4px}.member-nav nav{display:grid;gap:4px}.member-nav nav button{display:flex;align-items:center;gap:10px;width:100%;padding:12px;border:0;border-radius:5px;background:none;color:#6c7568;text-align:left;font:12px var(--sans);min-height:42px;cursor:pointer}.member-nav nav button.active{background:#edf4ed;color:var(--teal);font-weight:600}.member-nav nav button:hover{background:#f4f4ed}.member-main{display:grid;gap:20px;min-width:0}.member-balance-head{display:flex;align-items:center;justify-content:space-between;gap:18px}.member-balance-head p{font-size:11px;color:var(--muted);margin:0}.member-balance-number{font:600 38px/1.4 var(--mono);letter-spacing:-1px;margin:7px 0}.member-balance-number small{font:12px var(--sans);color:var(--muted);letter-spacing:0;margin-left:7px}.member-balance-head .btn{background:var(--ink);border-color:var(--ink);color:white;min-height:40px}.member-balances{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;border-top:1px solid var(--line);margin-top:20px;padding-top:18px}.member-balances>div+div{border-left:1px solid var(--line);padding-left:22px}.member-balances label{font-size:11px;color:var(--muted)}.member-balances strong{display:block;font:600 21px var(--mono);margin-top:7px}.member-balances small{display:block;font-size:9px;color:var(--muted);margin-top:7px}.member-note{display:flex;align-items:flex-start;gap:8px;font-size:10px;line-height:1.8;color:#8a733e;margin:18px 0 0}.member-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:18px}.member-quota{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line);font-size:11px}.member-quota:last-child{border:0;padding-bottom:0}.member-quota strong{font:500 12px var(--mono)}.member-invite-text{font-size:12px;color:var(--muted);line-height:1.8;margin:0 0 16px}.member-reward{display:flex;gap:7px;align-items:baseline;color:var(--teal);margin:5px 0 12px}.member-reward strong{font:600 28px var(--mono)}.member-reward span{font-size:11px}.member-table{overflow-x:auto}.member-table table{width:100%;border-collapse:collapse;white-space:nowrap;text-align:left;font-size:11px}.member-table th{padding:12px 20px;font-weight:400;color:var(--muted);background:#faf9f5;border-bottom:1px solid var(--line)}.member-table td{padding:15px 20px;border-bottom:1px solid #efede5}.member-table tr:last-child td{border-bottom:0}.member-table .amount{font:600 12px var(--mono);color:var(--teal)}.member-table .amount.spent{color:var(--red)}.member-table-note{border-top:1px solid var(--line);font-size:10px;color:var(--muted);padding:14px 20px;line-height:1.8}.member-filters{display:flex;flex-wrap:wrap;gap:4px;padding:12px 16px;border-bottom:1px solid var(--line)}.member-setting{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}.member-setting:last-child{border:0;padding-bottom:0}.member-setting strong{display:block;font-size:12px;font-weight:500}.member-setting p{font-size:11px;color:var(--muted);line-height:1.8;margin:6px 0 0}.member-setting .btn{flex-shrink:0}.member-toggle input{width:34px;height:20px;appearance:none;background:#d7dbd0;border-radius:20px;position:relative;cursor:pointer;margin:0}.member-toggle input:checked{background:var(--teal)}.member-toggle input:before{content:'';position:absolute;left:3px;top:3px;width:14px;height:14px;border-radius:50%;background:white;transition:transform .15s}.member-toggle input:checked:before{transform:translateX(14px)}.member-invite-link{display:flex;align-items:center;gap:9px;margin:14px 0}.member-invite-link input{width:100%;min-width:0;padding:11px 12px;border:1px solid var(--line);border-radius:4px;background:#faf9f5;font:11px var(--mono)}.member-invite-link .btn{white-space:nowrap}.member-invite-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:22px 0;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.member-invite-stats span{font-size:11px;color:var(--muted)}.member-invite-stats strong{display:block;font:600 25px var(--mono);margin-top:8px}.platform-overlay .platform-dialog{width:540px}
@media(max-width:1000px){.community-layout{grid-template-columns:minmax(0,1fr) 230px;gap:18px}.community-toolbar{flex-wrap:wrap;gap:12px}.community-search{max-width:none;width:100%}.member-layout{grid-template-columns:168px minmax(0,1fr);gap:18px}.member-shortcuts{grid-template-columns:1fr}.community-post{padding:20px}}
@media(max-width:760px){.platform-view{margin-top:26px}.ref-page-head{align-items:flex-start;gap:12px;margin-bottom:21px}.ref-page-head h2{font-size:24px}.ref-page-head p{font-size:11px}.ref-page-head .btn{padding:9px 11px;font-size:11px}.community-layout{grid-template-columns:1fr}.community-aside{grid-template-columns:1fr 1fr;gap:14px}.community-aside .ref-card:first-child{grid-column:1/-1}.community-tabs{width:100%;overflow:auto;flex-wrap:nowrap}.community-tabs button{white-space:nowrap;min-height:40px;padding:8px 10px}.community-post-title{font-size:18px}.community-author{gap:7px;flex-wrap:wrap}.community-author time{font-size:9px}.community-snapshot{padding:12px;gap:8px}.community-snapshot strong{font-size:15px}.community-post-actions{gap:16px}.member-layout{grid-template-columns:1fr;gap:18px}.member-nav{padding:7px}.member-identity{display:none}.member-nav nav{display:flex;gap:4px;overflow:auto;scrollbar-width:none}.member-nav nav::-webkit-scrollbar{display:none}.member-nav nav button{width:auto;white-space:nowrap;padding:9px 12px;min-height:40px}.member-nav nav .ref-icon{display:none}.member-balance-number{font-size:34px}.member-balances{gap:10px}.member-balances>div+div{padding-left:12px}.member-balances strong{font-size:19px}.ref-card-head,.ref-card-body{padding:18px}.member-setting{gap:10px}.member-setting p{font-size:10px}.member-invite-stats{gap:10px}.member-invite-link{flex-wrap:wrap}.member-invite-link .btn{width:100%}.community-form input,.community-form textarea{font-size:14px}.ref-card .btn{min-height:40px}}
@media(max-width:420px){.community-aside{grid-template-columns:1fr}.community-author time{width:100%;margin-left:36px}.member-balances label{font-size:10px}.community-tabs button{font-size:11px;padding:8px}.ref-page-head .btn{font-size:10px}}
@media(prefers-reduced-motion:reduce){.community-post,.member-toggle input:before{transition:none}}


  .wrap.backtest-workspace-open { max-width:1600px; }
  .backtest-workspace-open .topbar { max-width:1012px; margin-left:auto; margin-right:auto; }
  @media(max-width:640px) { .wrap.backtest-workspace-open { padding-left:8px; padding-right:8px; } }
/* 平台页面沿用平台化原型的颜色、字体与用户中心/社区组件。 */
.platform-app .wrap{max-width:1240px}.platform-app .brand-link{color:inherit;text-decoration:none}.platform-app .nav a{display:inline-flex;align-items:center;color:var(--muted);padding:8px 12px;border:1px solid transparent;border-radius:4px;text-decoration:none;font:14px var(--serif);min-height:40px}.platform-app .nav a.active{background:white;border-color:var(--line);color:var(--ink)}.platform-app a{color:var(--teal);text-underline-offset:3px}.platform-app a:focus-visible,.platform-app button:focus-visible,.platform-app input:focus-visible,.platform-app textarea:focus-visible,.platform-app select:focus-visible{outline:2px solid var(--red);outline-offset:3px}.platform-app input,.platform-app textarea{caret-color:var(--red)}.platform-app ::selection{background:#f2cdd1;color:var(--ink)}.skip-link{position:absolute;top:-60px;left:20px;background:white;padding:10px;z-index:100}.skip-link:focus{top:10px}.platform-app .platform-tools{justify-content:flex-end}.platform-app .platform-tools a{padding:7px 5px}.platform-app .ref-page-head p{max-width:70ch}.platform-app .member-nav nav a{display:block;padding:11px 12px;color:#535e50;text-decoration:none;min-height:42px;border-radius:4px;font-size:13px}.platform-app .member-nav nav a.active{background:#edf4ed;color:#0c7063;font-weight:600}.platform-app .member-nav nav a:hover{background:#f4f4ed}.platform-app .ref-card-head h3{line-height:1.5}.platform-app .community-summary{color:#596052}.platform-app .community-author{color:#60675c}.platform-app .platform-note,.platform-app .member-invite-text{font-size:12px;color:#5e655b}.platform-app .btn{text-decoration:none;min-height:40px;justify-content:center}.platform-app .btn-primary{background:var(--red);color:#fff}.platform-app .btn:disabled{opacity:.55;cursor:not-allowed}.platform-app .field{margin-bottom:18px}.platform-app .field label{font-size:13px;color:#525a60}.platform-app .field input,.platform-app .field textarea,.platform-app .field select{font-family:var(--sans);font-size:14px;min-height:42px}.platform-app .field input::placeholder,.platform-app .field textarea::placeholder{color:#72787d}.platform-form{max-width:620px}.auth-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,480px);gap:80px;align-items:start;padding:28px 0 40px}.auth-copy h2{font:700 34px/1.5 var(--serif);margin:6px 0 20px}.auth-copy p{max-width:45ch;font-size:14px;color:#62686d;line-height:2}.auth-tabs{display:flex;gap:22px;border-bottom:1px solid var(--line);margin-bottom:24px}.auth-tabs a{padding:0 0 12px;text-decoration:none;color:#62686d}.auth-tabs a.active{color:var(--red);border-bottom:2px solid var(--red)}.form-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:20px}.form-result{font-size:13px;line-height:1.8;margin:16px 0 0;overflow-wrap:anywhere}.form-result.error{color:#b01e32}.form-result.success{color:#0c7063}.form-result:empty{display:none}.platform-banner{background:#faf5e8;border:1px solid #e7d8b5;padding:12px 16px;margin-top:20px;font-size:13px;line-height:1.8}.loading-state,.empty-state,.error-state{padding:38px 24px;line-height:1.8;color:#5e655b;font-size:13px}.error-state{color:#b01e32;background:#fff9f8}.error-state p,.empty-state p{margin:0 0 14px}.platform-footer{border-top:1px solid var(--line);margin-top:40px;padding-top:20px;color:#62686d;font-size:11px}.platform-kv{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px 20px;margin:0;font-size:13px}.platform-kv dt{color:#62686d}.platform-kv dd{margin:0;overflow-wrap:anywhere}.platform-app .member-table table{font-family:var(--sans)}.platform-app .member-table td,.platform-app .member-table th{text-align:left;white-space:normal;min-width:100px;font-size:12px}.platform-app .member-table .numeric{text-align:right;font-family:var(--mono);white-space:nowrap}.status-tag{display:inline-block;border:1px solid var(--line);border-radius:4px;padding:2px 7px;font-size:11px;background:#f8f7f3;color:#525b51;white-space:nowrap}.status-tag.success{color:#0a6d5e;background:#eef6f0;border-color:#c8ddd0}.status-tag.warn{color:#855d15;background:#fcf6e8;border-color:#eadcbd}.status-tag.error{color:#b01e32;background:#fff0f1;border-color:#ecc9cf}.platform-pager{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px 20px;font-size:12px;color:#62686d}.platform-pager .form-actions{margin:0}.platform-search{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}.platform-search input,.platform-search select{padding:10px 12px;border:1px solid var(--line);border-radius:4px;background:white;font:13px var(--sans);min-height:42px}.platform-search input{flex:1;min-width:140px}.community-feed .ref-card{border-radius:6px}.community-body{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:2;max-width:75ch}.post-title{font:700 28px/1.5 var(--serif);overflow-wrap:anywhere;margin:18px 0}.community-comment{white-space:pre-wrap;overflow-wrap:anywhere}.community-post-actions a{font-size:12px}.platform-app .community-post-title{display:block;text-decoration:none;color:var(--ink)}.platform-app .community-post-title:hover{color:var(--red)}.platform-app .community-guide p{color:#5e655b}.admin-filter{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:18px}.admin-filter input{border:1px solid var(--line);padding:10px 12px;background:white;min-height:42px}.admin-review{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.admin-review textarea{width:100%;border:1px solid var(--line);padding:10px;font:13px var(--sans);min-height:68px}.admin-review .form-actions{margin-top:8px}.platform-app .member-setting label{font-size:13px}.platform-app .member-setting input[type=checkbox]{width:20px;height:20px;accent-color:var(--teal)}.platform-app .member-identity small{overflow-wrap:anywhere}.platform-app .member-balances small{font-size:11px}.platform-app .member-balances label{font-size:12px}.platform-app .member-setting p{font-size:12px}.platform-app .platform-balance{font-family:var(--mono)}.platform-app .community-toolbar{align-items:end}.inline-error{padding:14px;background:#fff5f5;color:#b01e32;font-size:13px}.admin-record{padding:20px 22px;border-bottom:1px solid var(--line)}.admin-record:last-child{border-bottom:0}.admin-record h3{font:700 16px var(--serif);margin:0 0 10px}.admin-record .platform-kv{grid-template-columns:120px minmax(0,1fr)}
@media(max-width:1000px){.auth-layout{gap:35px}.platform-app .topbar{gap:18px}.platform-app .nav{width:100%}}@media(max-width:760px){.platform-app .wrap{padding:20px 16px 40px}.auth-layout{grid-template-columns:1fr;gap:20px;padding-top:0}.auth-copy h2{font-size:27px;margin-bottom:10px}.auth-copy p{margin:6px 0}.platform-app .member-nav nav a{white-space:nowrap;min-height:42px}.platform-app .platform-tools{justify-content:flex-start}.platform-app .platform-strip-inner{padding:10px 16px}.platform-app .ref-page-head{flex-wrap:wrap}.platform-app .ref-page-head h2{font-size:25px}.platform-app .ref-page-head p{font-size:12px}.platform-kv{grid-template-columns:100px minmax(0,1fr);gap:10px}.platform-app .member-balances{grid-template-columns:1fr}.platform-app .member-balances>div+div{border-left:0;padding:12px 0 0;border-top:1px solid var(--line)}.platform-app .nav a{padding:7px 9px;font-size:13px}.platform-app .community-aside{grid-template-columns:1fr}.platform-app .community-author time{margin-left:0}.post-title{font-size:24px}.platform-pager{flex-wrap:wrap}.platform-app .member-shortcuts{grid-template-columns:1fr}.platform-app .community-toolbar{gap:14px}.platform-app .member-setting{align-items:flex-start}.platform-app .member-setting input{flex:none}}
.research-frame{width:100%;min-height:850px;border:1px solid var(--line);background:white}.platform-banner.error{background:#fff0f1;border-color:#ecc9cf;color:#b01e32}
.system-record{background:#faf9f5;border:1px solid var(--line);padding:16px;max-height:320px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.8 var(--mono)}
