  :root{
    --bg:#f4f6fa; --panel:#ffffff; --panel2:#f2f5fa; --border:#e1e6ef;
    --text:#18202f; --muted:#69738a;
    --bull:#d6362f; --bear:#0f8f6a; --accent:#b8730a; --blue:#3d7ebf;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  /* 用 overflow-x:clip 而不是 hidden：clip 不产生滚动容器，吸顶头部才能正常固定在顶端 */
  html{-webkit-text-size-adjust:100%;overflow-x:clip;}
  body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;line-height:1.5;-webkit-tap-highlight-color:transparent;overflow-x:clip;max-width:100%;}
  .wrap{max-width:1080px;width:100%;margin:0 auto;padding:16px 14px 40px;padding-bottom:calc(40px + env(safe-area-inset-bottom));}
  /* 顶栏用两行网格：标题 / 切换器 在左，行情块独占右侧并与内部列宽固定，
     切换指数时任何文字长度变化都不会引起重排，彻底消除跳动 */
  /* 顶栏：标题 + 指数切换 + 实时点位整块吸顶，页面上下滚动时始终可见 */
  header{position:sticky;top:0;z-index:80;
    display:grid;grid-template-columns:1fr auto;grid-template-areas:"title quote" "switch quote";
    gap:8px 12px;align-items:center;
    margin:-16px -14px 14px;padding:12px 14px 10px;}
  /* 吸顶底色用伪元素拉成左右通栏：内容仍受 .wrap 宽度约束，底色铺满整个视口宽 */
  header::before{content:'';position:absolute;top:0;bottom:0;left:50%;margin-left:-50vw;width:100vw;
    background:var(--bg);border-bottom:1px solid transparent;z-index:-1;
    transition:box-shadow .18s,border-color .18s;}
  /* 滚动后才显示分隔线（由 JS 切 .stuck），静止时视觉上与页面融为一体 */
  header.stuck::before{border-bottom-color:var(--border);box-shadow:0 4px 14px rgba(16,24,40,.07);}
  h1{grid-area:title;font-size:22px;font-weight:700;letter-spacing:1px;line-height:1.25;}
  h1 .sub{font-size:12px;font-weight:400;color:var(--muted);margin-left:8px;white-space:nowrap;}
  h1 .fun{font-size:.78em;font-weight:600;color:var(--bull);margin-left:4px;letter-spacing:0;vertical-align:1px;}
  .switch{grid-area:switch;justify-self:start;display:inline-flex;background:var(--panel);border:1px solid var(--border);border-radius:9px;padding:3px;gap:2px;}
  .switch button{background:transparent;border:0;color:var(--muted);font-size:13px;font-family:inherit;
    min-width:72px;padding:6px 8px;border-radius:7px;cursor:pointer;transition:background .15s,color .15s;text-align:center;white-space:nowrap;}
  .switch button:hover{color:var(--text);}
  .switch button.act{background:rgba(184,115,10,.13);color:var(--accent);font-weight:600;}
  /* 右上角：返回首页链接（上） + 行情卡（下），竖排右对齐；PC 端顶栏高度由左列决定，不会因此变高 */
  .hright{grid-area:quote;justify-self:end;display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:0;}
  .homelink{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;line-height:1;
    color:var(--muted);text-decoration:none;background:var(--panel);border:1px solid var(--border);
    border-radius:7px;padding:7px 9px;box-shadow:0 1px 3px rgba(16,24,40,.05);white-space:nowrap;
    transition:color .15s,border-color .15s,background .15s;}
  .homelink svg{width:10px;height:10px;flex:none;}
  .homelink:hover{color:var(--accent);border-color:rgba(184,115,10,.45);background:rgba(184,115,10,.08);}
  .quote{display:grid;grid-template-columns:146px 90px 98px auto;
    column-gap:10px;align-items:center;background:var(--panel);border:1px solid var(--border);border-radius:10px;
    padding:8px 12px;box-shadow:0 1px 3px rgba(16,24,40,.05);}
  .quote .info{min-width:0;}
  .quote .name{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .quote .px{font-size:21px;font-weight:700;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;}
  .quote .chg{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;}
  .quote .time{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .quote .ref{background:var(--panel2);border:1px solid var(--border);color:var(--muted);font-size:11px;padding:4px 9px;border-radius:6px;cursor:pointer;font-family:inherit;white-space:nowrap;}
  .quote .ref:hover{color:var(--text);border-color:#c3ccdc;}
  .quote .ref.on{color:var(--accent);border-color:rgba(184,115,10,.45);}
  .up{color:var(--bull);} .down{color:var(--bear);}
  .grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;min-width:0;}
  .card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px 18px;box-shadow:0 1px 3px rgba(16,24,40,.04);min-width:0;}
  #phaseCard,#projCard{min-height:0;grid-column:1/-1;}   /* 两卡各自独占整行，高度互不牵制 */
  #projBody{flex:1;display:flex;flex-direction:column;min-width:0;}
  .card h2{font-size:15px;margin-bottom:10px;color:var(--text);display:flex;align-items:center;gap:8px;line-height:1.35;}
  .card h2 .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex:none;}
  .card h2 .h2tip{font-size:11.5px;font-weight:500;color:var(--muted);letter-spacing:0;}
  .badge{display:inline-flex;align-items:center;gap:8px;font-size:18px;font-weight:700;padding:6px 14px;border-radius:8px;}
  .badge.bull{background:rgba(214,54,47,.10);color:var(--bull);border:1px solid rgba(214,54,47,.35);}
  .badge.bear{background:rgba(15,143,106,.10);color:var(--bear);border:1px solid rgba(15,143,106,.35);}
  .verdict{font-size:13px;color:var(--muted);margin-top:8px;}
  .verdict b{color:var(--text);}
  table{width:100%;border-collapse:collapse;font-size:13px;}
  th,td{padding:7px 8px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;}
  th{color:var(--muted);font-weight:500;}
  td.num{font-variant-numeric:tabular-nums;}
  #segTable .est{display:inline-block;margin-top:2px;font-size:10.5px;line-height:1.35;color:var(--accent);white-space:nowrap;}
  #segTable .cur{display:block;margin-top:1px;}
  /* ================= 阶段判定卡 ================= */
  .ph-head{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:10px;
    border:1px solid var(--border);background:var(--panel2);}
  .ph-head.bull{background:linear-gradient(135deg,rgba(214,54,47,.12),rgba(214,54,47,.02));border-color:rgba(214,54,47,.30);}
  .ph-head.warn{background:linear-gradient(135deg,rgba(184,115,10,.15),rgba(184,115,10,.02));border-color:rgba(184,115,10,.38);}
  .ph-head.bear{background:linear-gradient(135deg,rgba(15,143,106,.12),rgba(15,143,106,.02));border-color:rgba(15,143,106,.30);}
  /* 红绿灯口径（牛红熊绿）：阶段 1/2/4 = 红灯（牛市进攻），3/5 = 黄灯（震荡/背离警戒），6/7/8 = 绿灯（熊市防守） */
  .lights{flex:none;display:flex;flex-direction:column;gap:5px;padding:6px 7px;border-radius:13px;
    background:#101a26;box-shadow:inset 0 0 0 1px rgba(255,255,255,.07),0 1px 2px rgba(16,24,40,.18);}
  .lights i{display:block;width:12px;height:12px;border-radius:50%;background:#2a3543;box-shadow:inset 0 0 3px rgba(0,0,0,.55);}
  .lights i.r.on{background:#e5473b;box-shadow:0 0 10px 2px rgba(229,71,59,.6);}
  .lights i.y.on{background:#eea428;box-shadow:0 0 10px 2px rgba(238,164,40,.6);}
  .lights i.g.on{background:#12a67f;box-shadow:0 0 10px 2px rgba(18,166,127,.55);}
  .ph-main{flex:1;min-width:0;}
  .ph-tag{font-size:16px;font-weight:700;line-height:1.3;letter-spacing:.01em;}
  .ph-sub{margin-top:3px;font-size:12px;color:var(--muted);line-height:1.55;}
  .ph-sub b{color:var(--text);font-variant-numeric:tabular-nums;}
  /* 「现价 / 测算底」一段：PC 与上文同行，手机端整段另起一行 */
  .ph-px .cm{display:inline;}
  .ph-px .tgt{color:var(--bear);}
  .ph-step{flex:none;text-align:right;line-height:1;}
  .ph-step b{font-size:22px;font-variant-numeric:tabular-nums;letter-spacing:-.5px;}
  .ph-step span{font-size:10px;color:var(--muted);}
  .ph-head.bull .ph-step b{color:var(--bull);}
  .ph-head.warn .ph-step b{color:var(--accent);}
  .ph-head.bear .ph-step b{color:var(--bear);}

  /* 八阶段轨道：每条阶段的条件都显化，当前阶段整块高亮；PC 端 4×2 两行 */
  .stages{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px;}
  .stg{position:relative;border:1px solid var(--border);background:var(--panel2);border-radius:9px;padding:9px 10px 10px;min-width:0;}
  .stg .no{font-size:9.5px;font-weight:700;color:var(--muted);letter-spacing:.08em;line-height:1.2;}
  .stg .nm{font-size:12.5px;font-weight:600;line-height:1.3;margin-top:1px;}
  .stg .cd{margin-top:3px;font-size:10.5px;line-height:1.5;color:var(--muted);}
  .stg .st{position:absolute;top:8px;right:9px;font-size:9px;color:var(--muted);letter-spacing:.02em;}
  .stg.done{opacity:.62;}
  .stg.cur{z-index:1;border-color:rgba(184,115,10,.55);
    background:linear-gradient(135deg,rgba(184,115,10,.14),rgba(184,115,10,.04));
    box-shadow:0 0 0 3px rgba(184,115,10,.10),0 2px 8px rgba(184,115,10,.10);}
  .stg.cur .no{color:var(--accent);}
  .stg.cur .nm{color:var(--accent);font-weight:700;}
  .stg.cur .cd{color:#6f5417;font-weight:500;}
  .stg.cur .st{background:var(--accent);color:#fff;padding:1px 6px;border-radius:9px;top:7px;right:8px;}
  .stg.cur[data-k="bear"]{border-color:rgba(15,143,106,.5);
    background:linear-gradient(135deg,rgba(15,143,106,.13),rgba(15,143,106,.03));
    box-shadow:0 0 0 3px rgba(15,143,106,.09),0 2px 8px rgba(15,143,106,.10);}
  .stg.cur[data-k="bear"] .no,.stg.cur[data-k="bear"] .nm{color:var(--bear);}
  .stg.cur[data-k="bear"] .cd{color:#0a6650;}
  .stg.cur[data-k="bear"] .st{background:var(--bear);}

  /* 条件清单：每块一个卡匣，标题带命中计数 */
  .cond{margin-top:11px;border:1px solid var(--border);border-radius:9px;overflow:hidden;background:var(--panel);}
  .cond>.hd{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 11px;
    background:var(--panel2);border-bottom:1px solid var(--border);font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.02em;}
  .cond>.hd .cnt{font-size:11px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;}
  .cond>.hd .cnt.all{color:var(--bull);}
  .cond .check{display:flex;flex-direction:column;gap:0;margin:0;}
  .cond .item{display:grid;grid-template-columns:20px minmax(0,1fr);gap:9px;align-items:start;padding:9px 11px;border-top:1px solid var(--border);}
  .cond .item:first-child{border-top:0;}
  .check .ok,.check .no,.check .pend{flex:none;width:18px;height:18px;border-radius:50%;font-size:11px;
    display:flex;align-items:center;justify-content:center;font-weight:700;margin-top:1px;}
  .ok{background:rgba(214,54,47,.12);color:var(--bull);}
  .no{background:rgba(105,115,138,.13);color:var(--muted);}
  .pend{background:rgba(184,115,10,.15);color:var(--accent);}
  .check .lbl{min-width:0;}
  .check .lbl b{display:block;font-size:12.5px;line-height:1.45;font-weight:600;}
  .check .lbl span b{display:inline;font-size:inherit;line-height:inherit;font-variant-numeric:tabular-nums;}
  .check .lbl span{display:block;margin-top:1px;font-size:11.5px;color:var(--muted);line-height:1.55;word-break:break-word;}
  .cond-note{padding:8px 11px;border-top:1px solid var(--border);font-size:10.5px;color:var(--muted);line-height:1.55;}
  .alert{margin-top:11px;padding:9px 11px;border-radius:9px;font-size:11.5px;line-height:1.6;
    border:1px solid rgba(184,115,10,.35);background:rgba(184,115,10,.08);color:#7a5a1e;}

  /* ================= 底部测算卡 ================= */
  #projCard{display:flex;flex-direction:column;justify-content:flex-start;}
  .proj{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;}
  .proj .box{display:flex;flex-direction:column;justify-content:space-between;gap:7px;min-width:0;
    background:var(--panel2);border:1px solid var(--border);border-radius:9px;padding:9px 10px;min-height:80px;}
  .proj .box .k{font-size:11px;color:var(--muted);line-height:1.45;word-wrap:break-word;overflow-wrap:anywhere;}
  .proj .box .k .ks{display:block;margin-top:2px;font-size:10px;opacity:.85;line-height:1.4;font-weight:400;}
  .proj .box .v{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.15;letter-spacing:-.2px;}
  .proj .box .v small{font-size:10px;font-weight:500;color:var(--muted);margin-left:3px;letter-spacing:0;}
  /* 结论项：独占整行，左文右数 */
  .proj .box.wide{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between;gap:14px;min-height:0;
    background:linear-gradient(135deg,rgba(184,115,10,.11),rgba(184,115,10,.03));
    border-color:rgba(184,115,10,.35);padding:11px 14px;}
  .proj .box.wide .k{font-size:13.5px;color:#7a5a1e;}
  .proj .box.wide .k .ks{font-size:11px;}
  .proj .box.wide .v{font-size:31px;color:var(--accent);white-space:nowrap;}
  /* 前高 → 测算底 的行程条：左端前高、右端测算底（深绿），黑竖条 = 当前点位 */
  .dist{margin-top:12px;}
  .dbar{position:relative;height:10px;border-radius:6px;margin-top:26px;background:rgba(105,115,138,.16);}
  .dbar i{position:absolute;left:0;top:0;bottom:0;border-radius:6px;
    background:linear-gradient(90deg,rgba(214,54,47,.42),rgba(15,143,106,.92));}
  .dbar em{position:absolute;top:50%;width:3px;height:20px;margin-top:-10px;background:#101a26;border-radius:2px;
    transform:translateX(-1px);box-shadow:0 0 0 2px rgba(255,255,255,.95);}
  .dbar em u{position:absolute;left:50%;bottom:100%;margin-bottom:5px;transform:translateX(-50%);
    background:#101a26;color:#fff;font-style:normal;text-decoration:none;white-space:nowrap;
    font-size:10.5px;line-height:1.55;padding:0 6px;border-radius:5px;font-variant-numeric:tabular-nums;letter-spacing:.2px;}
  .dlbl{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-top:7px;font-size:10.5px;color:var(--muted);}
  .dlbl b{color:var(--text);font-weight:700;font-variant-numeric:tabular-nums;margin-left:4px;font-size:12px;}
  .dlbl .dr{color:#0a6650;}
  .dlbl .dr b{color:#0a6650;}
  .dft{display:flex;justify-content:space-between;gap:10px;margin-top:4px;font-size:10.5px;color:var(--muted);}
  .dft b{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums;}
  .dft b.rem{color:#0a6650;}
  .pf{margin-top:14px;padding-top:11px;font-size:11px;color:var(--muted);line-height:1.65;border-top:1px dashed var(--border);}
  .pf b{color:var(--text);font-weight:600;}
  /* 测算公式脚注：PC 端「起算基准 = …」这句接在前文后面、不强制另起一行（宽了自然折行），手机端才断开 */
  .pf .pbr{display:none;}
  #chartCard{grid-column:1 / -1;padding:10px 6px 6px;overflow:hidden;}
  #chart{width:100%;height:560px;}
  .foot{margin-top:18px;font-size:12px;color:var(--muted);border-top:1px solid var(--border);padding-top:14px;}
  .foot p{margin-bottom:6px;}
  /* 方法论出处链接：蓝色可点，悬停加深 */
  .flink{color:#1a63d8;text-decoration:none;border-bottom:1px solid rgba(26,99,216,.32);transition:color .15s,border-color .15s;}
  .flink:hover{color:#0d47a8;border-bottom-color:#0d47a8;}
  .loading{text-align:center;color:var(--muted);padding:60px 0;font-size:14px;}
  /* 交叉验证：每句独立一行 */
  .clines{margin-top:10px;font-size:12.5px;color:var(--muted);line-height:1.75;}
  .clines .cl{display:block;padding-left:8px;position:relative;}
  .clines .cl::before{content:'·';position:absolute;left:0;color:#b9c2d0;}
  .clines .cl b{color:var(--text);font-variant-numeric:tabular-nums;}
  .tblwrap{-webkit-overflow-scrolling:touch;overflow-x:auto;max-width:100%;}

  /* ---------- 移动端 ---------- */
  @media (max-width:820px){
    header{grid-template-columns:1fr;grid-template-areas:"title" "switch" "quote";gap:10px;}
    h1{font-size:19px;}
    /* 手机端：返回首页脱离文档流，浮在最右上角，不再占一行、不增加顶栏高度 */
    .hright{display:contents;}
    .homelink{position:absolute;top:8px;right:12px;z-index:2;}
    .quote{grid-area:quote;grid-template-columns:1fr 96px 106px auto;column-gap:10px;padding:9px 12px;}
    .quote .px{font-size:21px;}
  }
  @media (max-width:720px){
    .wrap{padding:12px 10px 26px;padding-bottom:calc(26px + env(safe-area-inset-bottom));}
    header{margin:-12px -10px 10px;padding:9px 10px 8px;}
    .grid{grid-template-columns:1fr;gap:10px;}
    h1{font-size:17px;letter-spacing:.5px;}
    h1 .sub{display:block;margin:3px 0 0;font-size:11px;}
    .switch{width:100%;}
    .switch button{flex:1;width:auto;padding:8px 0;min-width:0;font-size:12.5px;}
    /* 手机端行情块压成单行：名称+更新时间 / 点位 / 涨跌 / 刷新 同排，高度只为原来的约三分之一 */
    .quote{grid-template-columns:1fr auto auto auto;grid-template-areas:"info px chg ref";
      column-gap:7px;row-gap:0;padding:7px 10px;border-radius:9px;align-items:center;}
    .quote .info{grid-area:info;}
    .quote .ref{grid-area:ref;padding:3px 7px;font-size:10px;}
    .quote .px{grid-area:px;text-align:right;font-size:20px;line-height:1.2;}
    .quote .chg{grid-area:chg;text-align:right;min-width:0;font-size:11px;line-height:1.3;}
    .quote .name{font-size:11px;}
    .quote .time{font-size:9px;line-height:1.35;}
    /* 手机端返回首页按钮再收一档，避免吸顶区变高 */
    .homelink{top:7px;right:10px;font-size:10.5px;padding:6px 8px;border-radius:6px;}
    .card{padding:13px 12px;border-radius:10px;}
    /* 测算卡上下内边距各收 2px，让卡片更紧凑 */
    #projCard{padding-top:11px;padding-bottom:11px;}
    #phaseCard,#projCard{min-height:0;}
    .card h2{font-size:14px;gap:6px;margin-bottom:8px;}
    .badge{font-size:16px;padding:5px 11px;}
    .verdict{font-size:12px;}
    /* 阶段卡：手机两列轨道，条件文字略缩 */
    .ph-head{gap:9px;padding:10px 11px;}
    /* 状态标题强制单行：字号收到刚好放下，溢出即截断保护 */
    .ph-tag{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}
    .ph-sub{font-size:11.5px;}
    /* 手机端：现价另起一行，后继跟上测算底，避免整串挤成两行断在数字中间 */
    .ph-px{display:block;margin-top:2px;white-space:nowrap;}
    .ph-px .cm{display:none;}
    /* 「牛市最高…回撤」整体另起一行 */
    .ph-top{display:block;margin-top:1px;}
    .ph-step b{font-size:19px;}
    .stages{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;}
    .stg{padding:8px 9px 9px;}
    .stg .nm{font-size:12px;}
    .stg .cd{font-size:10px;line-height:1.45;}
    .cond .item{padding:8px 10px;gap:8px;}
    .check .lbl b{font-size:12px;}
    .check .lbl span{font-size:11px;}
    /* 测算卡：两列，结论行整行 */
    .proj{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
    .proj .box{padding:8px 9px;min-height:0;}
    .proj .box .v{font-size:17px;}
    /* 标题与四个小块内的每一句都强制单行（字号收一点，避免溢出） */
    #projCard h2{font-size:12.5px;letter-spacing:0;white-space:nowrap;gap:5px;}
    .proj .box .k{font-size:10.5px;white-space:nowrap;}
    .proj .box .k .ks{font-size:9.5px;white-space:nowrap;}
    /* 本轮底部测算 / 测算点位 / 测算公式：文字居中 */
    .proj .box.wide{flex-direction:column;align-items:center;gap:3px;padding:10px 12px;text-align:center;}
    .proj .box.wide .v{font-size:28px;}
    .dlbl,.dft{justify-content:center;gap:18px;text-align:center;}
    .pf{text-align:center;}
    .pf .pbr{display:block;}
    .pf .psep{display:none;}
    .dbar{margin-top:24px;height:9px;}
    .dlbl{font-size:10px;}
    .dlbl b{font-size:11px;}
    .dft{font-size:10px;}
    .clines{font-size:12px;line-height:1.7;}
    #chartCard{padding:10px 4px 4px;}
    /* 手机端图表总高：三块面板（K线196 + MACD78 + RSI72 = 346）+ 顶部图例 24 + 时间轴 24 + 缩放条 14 */
    #chart{height:408px;}
    .tblwrap{overflow-x:auto;margin:0 -12px;padding:0 12px;}
    table{font-size:11.5px;}
    th,td{padding:6px 5px;}
    .foot{font-size:11.5px;line-height:1.65;}
    .loading{padding:44px 0;}
  }
  @media (max-width:400px){
    .quote{column-gap:5px;padding:6px 8px;}
    .quote .px{font-size:17px;}
    .quote .chg{min-width:0;font-size:10.5px;}
    .quote .name{font-size:10.5px;}
    .quote .ref{padding:3px 6px;font-size:9.5px;}
    h1{font-size:16px;}
    .proj .box .v{font-size:15px;}
    #projCard h2{font-size:11.5px;}
    .proj .box .k{font-size:10px;}
    .proj .box .k .ks{font-size:9px;}
    th,td{padding:6px 4px;}
  }
  /* 小屏表格改「两行卡片」：阶段+涨跌 / 起·止·持续·顶底（同一行），彻底不用左右滑动 */
  @media (max-width:520px){
    #segTable thead{display:none;}
    #segTable,#segTable tbody{display:block;}
    #segTable tr{display:grid;grid-template-columns:auto auto auto 1fr;gap:3px 6px;align-items:baseline;
      padding:9px 0;border-bottom:1px solid var(--border);}
    #segTable td{border:0;padding:0;white-space:normal;}
    #segTable td:nth-child(1){grid-column:1 / span 2;grid-row:1;font-size:13px;font-weight:600;}
    #segTable td:nth-child(5){grid-column:3 / -1;grid-row:1;text-align:right;font-size:13px;font-weight:600;}
    #segTable td:nth-child(2){grid-column:1;grid-row:2;font-size:11.5px;color:var(--muted);white-space:nowrap;}
    #segTable td:nth-child(2)::before{content:'起 ';}
    #segTable td:nth-child(3){grid-column:2;grid-row:2;font-size:11.5px;color:var(--muted);white-space:nowrap;}
    #segTable td:nth-child(3)::before{content:'止 ';}
    #segTable td:nth-child(4){grid-column:3;grid-row:2;text-align:right;font-size:11.5px;color:var(--muted);white-space:nowrap;}
    #segTable td:nth-child(4)::before{content:'持续 ';}
    #segTable td:nth-child(6){grid-column:4;grid-row:2;text-align:right;font-size:11.5px;white-space:nowrap;}
    /* 进行中这一轮：①「持续」→「已持续」（文字自带，别再叠前缀）②当前点位与持续时间同一行 ③测算式单独成第三行
       阶段名与涨跌幅、起止时间、已持续、当前值全部沿用与其他行相同的字号（阶段/涨跌 13px，时间列 11.5px） */
    #segTable tr.ong td:nth-child(1){font-size:13px;font-weight:600;}
    #segTable tr.ong td:nth-child(5){font-size:13px;font-weight:600;}
    #segTable tr.ong td:nth-child(4)::before{content:'';}
    #segTable tr.ong td:nth-child(6){display:contents;}
    #segTable tr.ong .cur{grid-column:4;grid-row:2;text-align:right;white-space:nowrap;font-size:11.5px;}
    #segTable tr.ong .est{grid-column:1 / -1;grid-row:3;white-space:normal;text-align:right;font-size:10px;}
    #segTable .est{white-space:normal;text-align:right;font-size:10px;}
    .tblwrap{overflow-x:visible;margin:0;padding:0;}
  }
  /* 超小屏（≤355）再收一档，保证「已持续 + 当前」仍在一行内 */
  @media (max-width:355px){
    #segTable tr.ong td:nth-child(2),#segTable tr.ong td:nth-child(3),
    #segTable tr.ong td:nth-child(4){font-size:10.5px;}
    #segTable tr.ong .cur{font-size:10.5px;}
    .quote{column-gap:4px;}
    .quote .px{font-size:16px;}
    #projCard h2{font-size:11px;}
  }
