  /* 筛选行：所有名单共用 */
  .filters{display:flex; flex-wrap:wrap; gap:6px; margin:4px 0 12px; align-items:center;}
  .filters button{font-size:12.5px; padding:6px 12px; border:1px solid var(--line); border-radius:2px;
    background:var(--panel); color:var(--ink-2); cursor:pointer; white-space:nowrap;}
  .filters button.on{background:var(--accent); border-color:var(--accent); color:#fff;}
  .flab{font-size:12px; color:var(--ink-3); margin-right:4px; min-width:4.6em;}

  /* 顶栏：所有页面共用一份 */
  .topbar{display:flex; align-items:center; gap:12px;
    padding:10px clamp(14px,3vw,26px); border-bottom:1px solid var(--line); background:var(--panel);
    position:sticky; top:env(safe-area-inset-top, 0px); z-index:9;}
  .topbar .brand{font-family:"IBM Plex Serif",Georgia,serif; font-size:19px; font-weight:600;
    color:var(--ink); text-decoration:none; letter-spacing:-.01em; flex:none;}
  .topbar .mini{position:relative; flex:1 1 140px; min-width:100px;}
  .topbar .mini input{width:100%; border:1px solid var(--line); background:var(--ground); color:var(--ink);
    border-radius:999px; padding:8px 16px; font-size:14px; outline:none; font-family:"Noto Sans SC",sans-serif;}
  .topbar .mini input:focus{border-color:var(--accent);}
  .topbar .tnav{display:flex; gap:14px; flex:none;}
  .topbar .tnav a{font-size:13px; color:var(--ink-2); text-decoration:none; white-space:nowrap;}
  .topbar .tnav a:hover{color:var(--accent);}
  *,*::before,*::after{box-sizing:border-box;}

  :root{
    color-scheme: light;
    --ground:#f7f7f5; --panel:#ffffff; --line:#e6e3dd; --line-soft:#f0eee9;
    --ink:#1f1f1d; --ink-2:#4a4843; --ink-3:#7a776f;
    --accent:#9a5b18; --accent-soft:#f5e9da;
    --rise:#c9352b; --fall:#1e8e5a;            /* A股习惯：红涨绿跌 */
    --red:#c9352b; --red-soft:#fae9e6;
    --amber:#8a6a12; --amber-soft:#f6ecd2;
    --green:#1e8e5a; --green-soft:#e2f1ea;
    --blue:#2a4e77; --blue-soft:#e2eaf3;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      color-scheme: dark;
      --ground:#17161a; --panel:#201f24; --line:#35333a; --line-soft:#2a2930;
      --ink:#efece6; --ink-2:#c0bcb3; --ink-3:#8b867c;
      --accent:#e2a662; --accent-soft:#3a2d1c;
      --rise:#f1675b; --fall:#4fbe8b;
      --red:#f1675b; --red-soft:#3b2220;
      --amber:#d9b45a; --amber-soft:#362f18;
      --green:#4fbe8b; --green-soft:#1d3029;
      --blue:#8db4de; --blue-soft:#1d2a3a;
    }
  }
  :root[data-theme="dark"]{
    color-scheme: dark;
    --ground:#17161a; --panel:#201f24; --line:#35333a; --line-soft:#2a2930;
    --ink:#efece6; --ink-2:#c0bcb3; --ink-3:#8b867c;
    --accent:#e2a662; --accent-soft:#3a2d1c;
    --rise:#f1675b; --fall:#4fbe8b;
    --red:#f1675b; --red-soft:#3b2220;
    --amber:#d9b45a; --amber-soft:#362f18;
    --green:#4fbe8b; --green-soft:#1d3029;
    --blue:#8db4de; --blue-soft:#1d2a3a;
  }
  body{
    margin:0; background:var(--ground); color:var(--ink);
    font-family:"Noto Sans SC", -apple-system, BlinkMacSystemFont, "PingFang SC", sans-serif;
    font-size:15px; line-height:1.7;
  }
  .wrap{max-width:900px; margin:0 auto; padding-inline:16px; padding-block:28px 56px;}
  header.top{border-bottom:2px solid var(--ink); padding-bottom:14px; margin-bottom:26px;}
  .kicker{font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:11px; letter-spacing:.16em;
          text-transform:uppercase; color:var(--accent); margin:0 0 6px;}
  h1{font-family:"IBM Plex Serif", Georgia, serif; font-weight:600; font-size:clamp(24px,3.4vw,32px); line-height:1.25; margin:0 0 8px; text-wrap:balance; letter-spacing:.01em;}
  .sub{color:var(--ink-3); font-size:13px; margin:0;}
  .stats{display:flex; flex-wrap:wrap; gap:8px 20px; margin-top:14px;
         font-family:"IBM Plex Mono", monospace; font-size:12.5px; color:var(--ink-2); font-variant-numeric:tabular-nums;}
  .stats b{color:var(--ink); font-weight:600;}
  section{margin-bottom:34px;}
  h2{font-family:"IBM Plex Serif", Georgia, serif; font-weight:600; font-size:17px; margin:0 0 4px; letter-spacing:.02em;}
  .note{color:var(--ink-3); font-size:12.5px; margin:0 0 14px;}
  .rows{display:flex; flex-direction:column; gap:1px; background:var(--line-soft);
        border:1px solid var(--line); border-radius:3px; overflow:hidden;}
  .row{display:grid; grid-template-columns:96px 1fr auto; gap:6px 14px; align-items:baseline;
       background:var(--panel); padding:12px 14px;}
  .when{font-family:"IBM Plex Mono", monospace; font-size:12px; color:var(--ink-3);
        font-variant-numeric:tabular-nums; white-space:nowrap;}
  .what{min-width:0;}
  .what strong{font-weight:700;}
  .what p{margin:3px 0 0; font-size:13px; color:var(--ink-2);}
  .pill{font-size:11.5px; font-weight:500; padding:2px 9px; border-radius:2px; white-space:nowrap;}
  .p-red{background:var(--red-soft); color:var(--red);}
  .p-amber{background:var(--amber-soft); color:var(--amber);}
  .p-green{background:var(--green-soft); color:var(--green);}
  .p-blue{background:var(--blue-soft); color:var(--blue);}
  .p-mute{background:var(--line-soft); color:var(--ink-3);}
  @media (max-width:560px){
    .row{grid-template-columns:1fr auto; }
    .when{grid-column:1 / -1; order:-1;}
  }
  .move{display:grid; grid-template-columns:1fr 78px 1fr; gap:6px 14px; align-items:baseline;
        background:var(--panel); padding:11px 14px;}
  .move .pct{font-family:"IBM Plex Mono", monospace; font-weight:600; font-size:13.5px;
              color:var(--red); text-align:right; font-variant-numeric:tabular-nums;}
  .move p{margin:0; font-size:12.5px; color:var(--ink-2);}
  @media (max-width:560px){ .move{grid-template-columns:1fr auto;} .move p{grid-column:1 / -1;} }
  .finding{background:var(--panel); border:1px solid var(--line); border-left:3px solid var(--accent);
           border-radius:2px; padding:13px 15px; margin-bottom:10px;}
  .finding h3{font-size:14.5px; margin:0 0 5px;}
  .finding p{margin:0; font-size:13.5px; color:var(--ink-2);}
  .finding .tag{font-family:"IBM Plex Mono", monospace; font-size:11px; color:var(--ink-3); letter-spacing:.06em;}
  .rules{border-top:1px solid var(--line); padding-top:16px;}
  .rules ol{margin:0; padding-left:20px;}
  .rules li{margin-bottom:9px; font-size:13.5px; color:var(--ink-2);}
  .rules li b{color:var(--ink);}
  footer{margin-top:40px; border-top:1px solid var(--line); padding-top:14px;
         font-size:12px; color:var(--ink-3);}
  .legend{display:flex; flex-wrap:wrap; gap:10px; margin-top:10px; font-size:12px; color:var(--ink-3);}

  .cards{display:flex; flex-direction:column; gap:12px;}
  .card{background:var(--panel); border:1px solid var(--line); border-radius:3px; padding:14px 16px;}
  .card-top{display:flex; align-items:center; justify-content:space-between; gap:10px;
            border-bottom:1px solid var(--line-soft); padding-bottom:9px; margin-bottom:10px;}
  .card-top h3{font-size:15.5px; margin:0;}
  .code{font-family:"IBM Plex Mono", monospace; font-size:12px; color:var(--ink-3); font-weight:400; margin-left:4px;}
  .card dl{display:grid; grid-template-columns:76px 1fr; gap:7px 14px; margin:0;}
  .card dt{font-size:12px; color:var(--ink-3); letter-spacing:.04em; white-space:nowrap;}
  .card dd{margin:0; font-size:13.5px; color:var(--ink-2);}
  @media (max-width:560px){
    .card dl{grid-template-columns:1fr; gap:2px 0;}
    .card dt{margin-top:7px;}
  }
  .warn{margin:12px 0 0; padding:11px 14px; font-size:12.5px; line-height:1.65;
        background:var(--red-soft); color:var(--red); border-radius:2px;}
  .warn b{font-weight:700;}

  .tl{margin-top:12px; border-top:1px solid var(--line-soft); padding-top:9px;}
  .tl summary{cursor:pointer; font-size:12.5px; color:var(--accent); list-style:none;}
  .tl summary::-webkit-details-marker{display:none;}
  .tl summary::before{content:"▸ "; }
  .tl[open] summary::before{content:"▾ "; }
  .tl-list{list-style:none; margin:10px 0 2px; padding:0; display:flex; flex-direction:column; gap:5px;}
  .tl-list li{display:grid; grid-template-columns:82px 62px 1fr; gap:10px; align-items:baseline;
              font-size:12.5px; color:var(--ink-2); padding-left:10px; border-left:2px solid var(--line);}
  .tl-date{font-family:"IBM Plex Mono", monospace; color:var(--ink-3); font-variant-numeric:tabular-nums;}
  .tl-kind{font-size:11px; color:var(--ink-3);}
  .tl-f{border-left-color:var(--blue) !important;}
  .tl-now{border-left-color:var(--accent) !important; color:var(--accent) !important; font-weight:500;}
  .tl-now .tl-date{color:var(--accent);}
  @media (max-width:560px){
    .tl-list li{grid-template-columns:76px 1fr;}
    .tl-kind{grid-column:2; }
    .tl-t{grid-column:1 / -1; padding-left:0;}
  }

  .score{display:grid; grid-template-columns:repeat(auto-fit, minmax(96px,1fr)); gap:1px;
         background:var(--line-soft); border:1px solid var(--line); border-radius:3px; overflow:hidden;}
  .sc{background:var(--panel); padding:14px 12px; text-align:center;}
  .sc b{display:block; font-family:"IBM Plex Mono", monospace; font-size:22px; color:var(--ink);
        font-variant-numeric:tabular-nums; line-height:1.2;}
  .sc span{font-size:11.5px; color:var(--ink-3);}

  a{color:var(--accent);}
  .nav{text-transform:none; letter-spacing:0; font-family:"Noto Sans SC", sans-serif; font-size:12px;}

  .wrap{max-width:min(920px, 100%);}

  .topbar .mini{position:relative;}
  .msug{position:absolute; left:0; right:0; top:calc(100% + 6px); z-index:20;
    display:flex; flex-direction:column; background:var(--panel);
    border-radius:8px; overflow:hidden; box-shadow:0 6px 20px rgba(0,0,0,.18);}
  .msug:empty{display:none;}
  .msug button{text-align:left; padding:10px 16px; border:none; border-bottom:1px solid var(--line-soft);
    background:transparent; color:var(--ink); font-size:14px; cursor:pointer; font-family:"Noto Sans SC",sans-serif;}
  .msug button:hover{background:var(--line-soft);}
  .msug button i{font-style:normal; color:var(--ink-3); font-size:12px; font-family:"IBM Plex Mono",monospace; margin-left:6px;}

  .stat{display:flex; align-items:center; gap:7px; padding:5px 11px; flex:none;
    background:var(--line-soft); border:1px solid var(--line); border-radius:999px;
    font-size:11.5px; color:var(--ink-3); line-height:1.5; white-space:nowrap;}
  .stat b{color:var(--ink); font-weight:500; font-family:"IBM Plex Mono",monospace;}
  .stat .dot{width:7px; height:7px; border-radius:50%; background:var(--green); flex:none;}
  @media (max-width:640px){
    .stat{order:4; flex-basis:100%; justify-content:center; border-radius:6px;}
  }
  @media (max-width:900px){ .stat .nx{display:none;} }
  .topbar .mini input{min-width:80px;}
  .topbar .mini{flex:1 1 140px; min-width:100px;}

  @media (max-width:1300px){
    .topbar{flex-wrap:wrap; row-gap:8px;}
    .topbar .brand{order:1;}
    .topbar .tnav{order:2; margin-left:auto;}
    .topbar .stat, .stat{order:3;}
    .topbar .mini{order:4; flex-basis:100%;}
  }
  @media (min-width:1301px){ .topbar{flex-wrap:nowrap;} }

  /* A股习惯：红涨绿跌。正数＝涨＝红，负数＝跌＝绿 */
  .up{color:var(--rise) !important;}
  .down{color:var(--fall) !important;}
  /* 表头：小一号、加字间距 */
  table.t th{letter-spacing:.04em; text-transform:none;}
  /* 区块之间用留白分层，不用四边框 */
  .card, .det{box-shadow:0 1px 2px rgba(0,0,0,.05);}
  :root:not([data-theme="light"]) .card, :root[data-theme="dark"] .card{box-shadow:none;}
  /* 名单页切换：下划线式，不用填充按钮 */
  .modes{gap:0; border-bottom:1px solid var(--line); margin-bottom:18px;}
  .modes button{border:none; border-radius:0; background:transparent;
    color:var(--ink-3); padding:10px 18px; font-size:14.5px;
    border-bottom:2px solid transparent; margin-bottom:-1px;}
  .modes button.on{color:var(--ink) !important; font-weight:500 !important;
    border-bottom-color:var(--accent) !important;}
  .modes button:hover{color:var(--ink-2) !important;}

  /* 手机：筛选按钮横向滑动，表格让出空间 */
  @media (max-width:640px){
    .filters{flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch;
      padding-bottom:4px; scrollbar-width:none;}
    .filters::-webkit-scrollbar{display:none;}
    .filters button{flex:none;}
    .flab{position:sticky; left:0; background:var(--ground); padding-right:6px; z-index:1;}
    table.t th:nth-child(4), table.t td:nth-child(4){display:none;}
    table.t th, table.t td{padding:7px 6px; font-size:12.5px;}
  }
  .more{font-size:13px; padding:8px 18px; border:1px solid var(--line); border-radius:999px;
    background:var(--panel); color:var(--ink-2); cursor:pointer;}
  .more:hover{border-color:var(--accent); color:var(--accent);}
