/* Generated verbatim from the accepted product-v4 visual baseline. */
/* FinPrisme 产品原型 v4 · 第一批：外壳、实时流、报告
   视觉方向见 docs/product/PRODUCT-DIRECTION-ALIGNMENT-2026-09-16-ZH.md §8
   范围与状态清单见 docs/design/PRODUCT-PROTOTYPE-V4-SURFACE-INVENTORY-2026-09-16-ZH.md */

:root{
  --bg:#f2f3f5; --panel:#ffffff; --panel-2:#e9ebee; --sunk:#e4e7ea;
  --ink:#15181d; --ink-2:#3d444d; --ink-3:#5b6470; --line:#dde0e5; --line-2:#c6cbd2;
  --fact:#8c1d18; --read:#7d3560; --data:#35627f;
  --spectrum-read:#9d4a7c;
  --fact-soft:#f6e9e7; --read-soft:#f7e8f0; --data-soft:#e7f0f5;
  /* 方向层：红 / 绿。默认按语种绑定——zh-tw 红涨绿跌，en 与 ms 绿涨红跌；读者可随时切换。
     色盲由形状（▲▼）承担，不靠改色相回避。 */
  --c-rise:#bb2418; --c-fall:#127a57;
  --c-rise-soft:#fae9e6; --c-fall-soft:#e4f3ec;
  --up:var(--c-rise); --down:var(--c-fall);
  --up-soft:var(--c-rise-soft); --down-soft:var(--c-fall-soft);
  /* 价值层：金。只回答「这条值得停下来」——精选位、头条位、深度专题、会员与资料库。
     不进方向层（涨跌）也不进结构层（形态），否则会退化成装饰。 */
  --gold:#8f6a1c; --gold-1:#b8893a; --gold-2:#e8cf8e; --gold-line:#d8bc7e; --gold-soft:#faf3e2;
  --accent:#8c1d18; --on-accent:#ffffff;
  --display:"Archivo Narrow","Noto Sans SC","PingFang SC","Hiragino Sans GB",sans-serif;
  --ui:"Archivo",-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --r:4px;
  --shadow:0 1px 2px rgba(20,24,30,.06), 0 14px 30px -22px rgba(20,24,30,.45);
  --shadow-lg:0 2px 6px rgba(20,24,30,.08), 0 30px 70px -30px rgba(20,24,30,.55);
  --ease:cubic-bezier(.2,.6,.3,1);
  --row-y:16px; --lede:block;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#14171d; --panel:#1b1f27; --panel-2:#232833; --sunk:#101318;
    --ink:#e9edf3; --ink-2:#c2ccd8; --ink-3:#959fad; --line:#2a303a; --line-2:#39414d;
    --fact:#e0695d; --read:#e090bd; --data:#79b1d2; --spectrum-read:#d07fa8;
    --fact-soft:#2a1b19; --read-soft:#2a1a24; --data-soft:#182530;
    --c-rise:#ff6f5f; --c-fall:#3ec795;
    --c-rise-soft:#2e1a17; --c-fall-soft:#13291f;
    --gold:#e8c877; --gold-1:#d4ac57; --gold-2:#f7e6b4; --gold-line:#6d5a2c; --gold-soft:#241f12;
    --accent:#e0695d; --on-accent:#1b0f0d;
    --shadow:0 1px 0 rgba(255,255,255,.04), 0 18px 40px -26px rgba(0,0,0,.85);
    --shadow-lg:0 1px 0 rgba(255,255,255,.05), 0 34px 80px -34px rgba(0,0,0,.95);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#14171d; --panel:#1b1f27; --panel-2:#232833; --sunk:#101318;
  --ink:#e9edf3; --ink-2:#c2ccd8; --ink-3:#959fad; --line:#2a303a; --line-2:#39414d;
  --fact:#e0695d; --read:#e090bd; --data:#79b1d2; --spectrum-read:#d07fa8;
  --fact-soft:#2a1b19; --read-soft:#2a1a24; --data-soft:#182530;
  --c-rise:#ff6f5f; --c-fall:#3ec795;
  --c-rise-soft:#2e1a17; --c-fall-soft:#13291f;
  --gold:#e8c877; --gold-1:#d4ac57; --gold-2:#f7e6b4; --gold-line:#6d5a2c; --gold-soft:#241f12;
  --accent:#e0695d; --on-accent:#1b0f0d;
  --shadow:0 1px 0 rgba(255,255,255,.04), 0 18px 40px -26px rgba(0,0,0,.85);
  --shadow-lg:0 1px 0 rgba(255,255,255,.05), 0 34px 80px -34px rgba(0,0,0,.95);
  color-scheme:dark;
}
/* 涨跌配色约定：默认红涨绿跌；切换后绿涨红跌。只换映射，不换色相。 */
:root[data-dir="green-up"]{ --up:var(--c-fall); --down:var(--c-rise); --up-soft:var(--c-fall-soft); --down-soft:var(--c-rise-soft); }
:root[data-density="compact"]{ --row-y:10px; --lede:none; }
:root[data-density="compact"] .rcard .q,
:root[data-density="compact"] .resrow .snip,
:root[data-density="compact"] .ct-row .ev span{display:none}

*{box-sizing:border-box}
html{background:var(--bg);-webkit-text-size-adjust:100%;scrollbar-color:var(--line-2) var(--sunk)}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);font-family:var(--ui);font-size:14px;line-height:1.55;
  transition:background .35s var(--ease),color .35s var(--ease)}
::selection{background:var(--accent);color:var(--on-accent)}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
h1,h2,h3,h4,p{margin:0}
a{color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}
*::-webkit-scrollbar{width:10px;height:8px}
*::-webkit-scrollbar-track{background:var(--sunk)}
*::-webkit-scrollbar-thumb{background:var(--line-2);border:2px solid var(--sunk);border-radius:99px}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums}
.wrap{max-width:1340px;margin:0 auto;padding:0 22px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
[hidden]{display:none !important}

/* ========== 刻度轨（签名） ========== */
.rail{position:relative;padding-left:26px}
.rail::before{content:"";position:absolute;left:8px;top:var(--row-y);bottom:var(--row-y);width:1px;background:var(--line)}
.rail > .ticks{position:absolute;left:0;top:var(--row-y);display:flex;flex-direction:column;gap:4px}
.ticks i{display:block;height:2px;width:9px;background:var(--line-2);border-radius:1px}
.ticks i.on{width:17px}
[data-form="fact"] .ticks i.on{background:var(--fact)}
[data-form="read"] .ticks i.on{background:var(--read)}
[data-form="data"] .ticks i.on{background:var(--data)}
[data-form="report"] .ticks i.on{background:var(--ink)}
[data-form="fix"] .ticks i.on{background:var(--read)}
[data-form="fix"] .ticks i.on:nth-child(2){width:9px}
[data-form="pull"] .ticks i.on{background:var(--ink-3)}
[data-form="pull"] .ticks i{opacity:.75}

/* ========== 原型条 ========== */
.protobar{background:var(--ink);color:var(--bg);font-size:11.5px}
.protobar .wrap{display:flex;gap:14px;align-items:center;justify-content:space-between;padding-block:7px;flex-wrap:wrap}
.protobar a{color:inherit}

/* ========== 外壳 ========== */
header.shell{position:sticky;top:0;z-index:40;background:var(--bg);border-bottom:1px solid var(--line)}
header.shell .wrap{display:flex;align-items:center;gap:20px;min-height:60px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px}
.wordmark{font-family:var(--display);font-size:21px;font-weight:700;letter-spacing:-.015em}
.wordmark em{font-style:normal;color:var(--accent)}
nav.sections{display:flex;gap:1px;margin-left:8px}
nav.sections button{padding:8px 13px;font-size:13.5px;color:var(--ink-2);border-radius:3px;white-space:nowrap;position:relative}
nav.sections button:hover{color:var(--ink);background:var(--panel-2)}
nav.sections button[aria-current="page"]{color:var(--ink);font-weight:600}
nav.sections button[aria-current="page"]::after{content:"";position:absolute;left:11px;right:11px;bottom:-1px;height:2px;background:var(--accent)}
.shell-right{margin-left:auto;display:flex;align-items:center;gap:8px}
.ctrl{border:1px solid var(--line);background:var(--panel);border-radius:3px;padding:6px 11px;font-size:12px;color:var(--ink-2);display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.ctrl:hover{border-color:var(--line-2);color:var(--ink)}
.ctrl svg{width:14px;height:14px}
.ctrl.cta{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}
.spectrum{height:2px;display:flex}
.spectrum i{flex:1;transform-origin:left;animation:spread .6s var(--ease) both}
.spectrum i:nth-child(1){background:var(--fact)}
.spectrum i:nth-child(2){background:var(--spectrum-read);animation-delay:.06s}
.spectrum i:nth-child(3){background:var(--data);animation-delay:.12s}
@keyframes spread{from{transform:scaleX(0)}to{transform:scaleX(1)}}

footer.site{border-top:1px solid var(--line);background:var(--panel);margin-top:60px}
footer.site .wrap{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:28px;padding-block:30px}
footer.site h4{font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);font-weight:700;margin-bottom:10px}
footer.site a,footer.site span{display:block;font-size:12.5px;color:var(--ink-2);text-decoration:none;padding:3px 0}
footer.site a:hover{color:var(--ink)}
footer.site .about{font-size:12.5px;color:var(--ink-2);line-height:1.6;max-width:42ch}
footer.site .legal{border-top:1px solid var(--line);font-size:11.5px;color:var(--ink-3);padding-block:14px}

/* ========== 脉搏条 ========== */
.pulse{background:var(--panel);border-bottom:1px solid var(--line)}
.pulse .wrap{display:flex;overflow-x:auto}
.pulse .cell{flex:0 0 auto;min-width:154px;padding:12px 20px 11px;border-right:1px solid var(--line);position:relative}
.pulse .cell:first-child{padding-left:0}
.pulse .cell::after{content:"";position:absolute;left:20px;bottom:0;width:18px;height:2px;background:var(--data)}
.pulse .cell:first-child::after{left:0}
.pulse .k{font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3);font-weight:600}
.pulse .v{font-family:var(--mono);font-size:19px;font-weight:600;letter-spacing:-.03em;margin-top:3px;font-variant-numeric:tabular-nums}
.pulse .v small{font-family:var(--ui);font-size:11px;color:var(--ink-3);letter-spacing:0}
.pulse .d{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);margin-top:3px}
.pulse-note{font-size:11px;color:var(--ink-3);padding:7px 0 9px}

/* ========== 布局 ========== */
main{padding:24px 0 40px}
.cols{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:40px;align-items:start}
.slug{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.slug h3{font-family:var(--display);font-size:13px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;display:flex;align-items:center;gap:9px}
.slug h3::before{content:"";width:17px;height:2px;background:var(--accent)}
.slug a,.slug button.link{font-size:12px;text-decoration:none;color:var(--accent)}
.controls{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px solid var(--line-2)}
.chip{border:1px solid var(--line);background:var(--panel);border-radius:3px;padding:5px 11px;font-size:12.5px;color:var(--ink-2)}
.chip:hover{border-color:var(--line-2);color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--bg);font-weight:600}
.daystamp{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--ink-3);padding:14px 0 2px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.daystamp .back{font-family:var(--ui);font-size:11.5px;color:var(--accent);letter-spacing:0}

/* 连接状态 */
.live{display:flex;align-items:center;gap:7px;margin-left:auto;font-size:11.5px;color:var(--ink-2)}
.dot{width:6px;height:6px;border-radius:99px;background:var(--up);box-shadow:0 0 0 3px color-mix(in oklab,var(--up) 20%,transparent)}
.live[data-state="reconnect"] .dot{background:var(--read);box-shadow:0 0 0 3px color-mix(in oklab,var(--read) 20%,transparent);animation:blink 1.1s steps(2,end) infinite}
.live[data-state="offline"] .dot{background:var(--ink-3);box-shadow:none}
@keyframes blink{50%{opacity:.25}}
.live button{font-size:11.5px;color:var(--accent);text-decoration:underline;text-underline-offset:3px}

/* ========== 时间流行 ========== */
.row{display:grid;grid-template-columns:70px minmax(0,1fr);gap:16px;padding:var(--row-y) 0;border-bottom:1px solid var(--line)}
.row.rail{padding-left:28px}
.row:hover{background:color-mix(in oklab,var(--panel) 55%,transparent)}
.row .when{font-family:var(--mono);font-size:12px;color:var(--ink-2);padding-top:3px;letter-spacing:-.02em}
.meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:6px}
.form{font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;font-weight:700;display:inline-flex;align-items:center;gap:6px}
.form::before{content:"";width:13px;height:2px;background:currentColor}
[data-form="fact"] .form{color:var(--fact)}
[data-form="read"] .form{color:var(--read)}
[data-form="data"] .form{color:var(--data)}
[data-form="report"] .form{color:var(--ink)}
[data-form="fix"] .form{color:var(--read)}
[data-form="pull"] .form{color:var(--ink-3)}
.domain{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.row h2{font-family:var(--display);font-size:20px;line-height:1.24;font-weight:700;letter-spacing:-.012em}
.row h2 .q{display:block;font-family:var(--ui);font-size:12.5px;font-weight:400;letter-spacing:0;color:var(--ink-2);line-height:1.5;margin-top:5px}
.row .lede{display:var(--lede);font-size:13px;color:var(--ink-2);margin-top:7px;max-width:68ch}
.row .src{font-size:11.5px;color:var(--ink-3);margin-top:8px}
.row .src b{color:var(--ink-2);font-weight:600}
.row .val{font-family:var(--mono);font-size:22px;font-weight:600;letter-spacing:-.03em;margin:2px 0 4px}
.row .val small{font-family:var(--ui);font-size:12px;color:var(--ink-3);letter-spacing:0;margin-left:3px}
.row.withdrawn h2{text-decoration:line-through;text-decoration-color:var(--ink-3);color:var(--ink-3)}
.refline{font-size:12px;color:var(--ink-2);background:var(--panel-2);padding:9px 12px;border-radius:var(--r);margin-top:8px}
.refline::before{content:"";display:inline-block;width:13px;height:2px;background:var(--read);vertical-align:middle;margin-right:9px}
.refline b{font-weight:600}
[data-form="pull"] .refline::before{background:var(--ink-3)}
.acts{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.act{border:1px solid var(--line);border-radius:3px;padding:5px 10px;font-size:11.5px;color:var(--ink-2);background:var(--panel);display:inline-flex;align-items:center;gap:6px}
.act:hover{border-color:var(--line-2);color:var(--ink)}
.act.primary{border-color:color-mix(in oklab,var(--accent) 50%,var(--line));color:var(--accent);font-weight:600}
.act.primary:hover{background:var(--fact-soft)}
.act[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.act svg{width:13px;height:13px}

/* 侧栏 */
.side{display:flex;flex-direction:column;gap:26px;position:sticky;top:78px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r)}
.panel .hd{padding:11px 15px;border-bottom:1px solid var(--line);font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--ink-2);display:flex;justify-content:space-between;align-items:center}
.panel .hd a{font-size:11px;text-decoration:none}
.panel .bd{padding:13px 15px}
.mini-item{padding:var(--row-y) 0;border-bottom:1px solid var(--line)}
.mini-item:last-child{border-bottom:0;padding-bottom:0}
.mini-item:first-child{padding-top:0}
.mini-item h4{font-family:var(--display);font-size:15px;font-weight:600;line-height:1.3}
.mini-item .t{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);margin-top:5px}
.cal{display:grid;grid-template-columns:54px 1fr;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}
.cal:last-child{border-bottom:0}
.cal .when{font-family:var(--mono);font-size:11.5px;color:var(--accent);font-weight:600;line-height:1.35}
.cal .what{font-size:12.5px;line-height:1.4}
.cal .state{font-size:11px;color:var(--ink-3);margin-top:3px}
.toolwrap{display:flex;flex-wrap:wrap;gap:6px}

/* ========== 状态块：空 / 错误 / 骨架 / 锁定 ========== */
.empty,.errorbox{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:26px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}
.empty .mark,.errorbox .mark{display:flex;gap:4px}
.empty .mark i,.errorbox .mark i{display:block;width:16px;height:2px;background:var(--line-2);border-radius:1px}
.errorbox .mark i:first-child{background:var(--down)}
.empty h4,.errorbox h4{font-family:var(--display);font-size:17px;font-weight:700}
.empty p,.errorbox p{font-size:13px;color:var(--ink-2);max-width:46ch}
.empty .acts,.errorbox .acts{justify-content:center}

.skel{padding:var(--row-y) 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:70px minmax(0,1fr);gap:16px}
.sk{background:linear-gradient(90deg,var(--panel-2) 25%,var(--sunk) 37%,var(--panel-2) 63%);background-size:400% 100%;border-radius:2px;animation:shimmer 1.6s linear infinite}
@keyframes shimmer{from{background-position:100% 0}to{background-position:0 0}}
.sk.t{height:11px;width:52px}
.sk.h{height:17px;width:72%;margin-bottom:8px}
.sk.h2{height:17px;width:46%;margin-bottom:10px}
.sk.p{height:11px;width:88%;margin-bottom:6px}
.sk.p2{height:11px;width:64%}

.lock{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:22px;display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.lock .icon{width:38px;height:38px;border:1px solid var(--line-2);border-radius:var(--r);display:grid;place-items:center;color:var(--read);flex:0 0 auto}
.lock h4{font-family:var(--display);font-size:18px;font-weight:700}
.lock p{font-size:13px;color:var(--ink-2);margin-top:5px;max-width:52ch}
.lock .go{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.freefirst{font-size:12px;color:var(--ink-3);margin-top:10px}

.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,16px);background:var(--ink);color:var(--bg);border-radius:99px;padding:10px 18px;font-size:13px;box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:opacity .22s var(--ease),transform .22s var(--ease);z-index:90}
.toast.on{opacity:1;transform:translate(-50%,0)}

/* ========== 报告 ========== */
.sec-head{margin-bottom:22px}
.sec-head h1{font-family:var(--display);font-size:40px;line-height:1.02;letter-spacing:-.028em;font-weight:700}
.sec-head p{font-size:14.5px;color:var(--ink-2);margin-top:10px;max-width:60ch}
.lede-report{display:grid;grid-template-columns:1.05fr .95fr;gap:30px;padding-bottom:28px;border-bottom:1px solid var(--line-2);margin-bottom:26px}
.cover{position:relative;aspect-ratio:16/10;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.cover svg{position:absolute;inset:0;width:100%;height:100%}
.cover .issue{position:absolute;left:14px;bottom:13px;font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;background:var(--panel);border:1px solid var(--line);padding:4px 9px;border-radius:3px}
.lede-report h2{font-family:var(--display);font-size:33px;line-height:1.1;letter-spacing:-.02em;font-weight:700;margin-top:10px}
.lede-report .stand{font-size:14.5px;color:var(--ink-2);margin-top:11px;max-width:56ch}
.facts{display:flex;gap:26px;flex-wrap:wrap;margin-top:18px}
.facts div{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-weight:600}
.facts b{display:block;font-family:var(--mono);font-size:17px;font-weight:600;color:var(--ink);letter-spacing:-.02em;margin-top:3px}
.rgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.rcard{display:flex;flex-direction:column;gap:11px}
.rcard .cover{aspect-ratio:3/2}
.rcard h3{font-family:var(--display);font-size:19px;line-height:1.22;font-weight:700;letter-spacing:-.01em}
.rcard .q{display:block;font-family:var(--ui);font-size:12.5px;font-weight:400;color:var(--ink-2);line-height:1.5;margin-top:5px}
.rcard .foot{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);display:flex;gap:9px;flex-wrap:wrap;margin-top:auto;padding-top:6px;align-items:center}
.member{display:inline-flex;align-items:center;gap:5px;font-family:var(--ui);font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;font-weight:700;color:var(--read)}

.colgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.colcard{border:1px solid var(--line);background:var(--panel);border-radius:var(--r);padding:16px;display:flex;flex-direction:column;gap:8px}
.colcard h4{font-family:var(--display);font-size:17px;font-weight:700}
.colcard p{font-size:12.5px;color:var(--ink-2);line-height:1.5}
.colcard .rate{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);margin-top:auto}

.arch-row{display:grid;grid-template-columns:104px minmax(0,1fr) auto;gap:18px;align-items:baseline;padding:var(--row-y) 0;border-bottom:1px solid var(--line)}
.arch-row .no{font-family:var(--mono);font-size:12px;color:var(--accent);font-weight:600}
.arch-row h4{font-family:var(--display);font-size:16.5px;font-weight:600;line-height:1.3}
.arch-row .d{font-family:var(--mono);font-size:11px;color:var(--ink-3)}
.arch-row.none h4{color:var(--ink-3);font-weight:500}

.article{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:26px;margin-top:26px}
.article h3{font-family:var(--display);font-size:26px;line-height:1.16;letter-spacing:-.018em;font-weight:700;margin-top:10px}
.article .stand{font-size:15px;color:var(--ink-2);margin-top:10px;max-width:62ch}
.article p{font-size:14.5px;line-height:1.72;color:var(--ink-2);margin-top:13px;max-width:70ch}
.article h4{font-family:var(--display);font-size:18px;margin-top:22px;font-weight:700}
.cite{font-family:var(--mono);font-size:10px;color:var(--accent);vertical-align:super;padding:0 1px}
.appendix{margin-top:22px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.appendix .hd{padding:10px 14px;background:var(--panel-2);font-size:11px;letter-spacing:.09em;text-transform:uppercase;font-weight:700;color:var(--ink-2)}
.appendix table{width:100%;border-collapse:collapse;font-size:13px}
.appendix th,.appendix td{padding:10px 14px;border-bottom:1px solid var(--line);text-align:left}
.appendix th{font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);font-weight:700}
.appendix td.n{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right}
.sources{margin-top:20px;border-top:1px solid var(--line);padding-top:14px;display:grid;gap:8px}
.sources div{font-size:12px;color:var(--ink-2);display:grid;grid-template-columns:20px 1fr;gap:9px}
.sources .n{font-family:var(--mono);color:var(--accent);font-weight:600}

.cardpreview{display:grid;grid-template-columns:300px minmax(0,1fr);gap:24px;align-items:start;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:20px}
.shot{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--bg)}
.shot .top{height:3px;display:flex}
.shot .top i{flex:1}
.shot .top i:nth-child(1){background:var(--fact)}
.shot .top i:nth-child(2){background:var(--read)}
.shot .top i:nth-child(3){background:var(--data)}
.shot .body{padding:16px}
.shot h4{font-family:var(--display);font-size:18px;line-height:1.2;font-weight:700;margin-top:8px}
.shot .figs{display:flex;gap:14px;margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.shot .figs div{font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:700}
.shot .figs b{display:block;font-family:var(--mono);font-size:14px;color:var(--ink);margin-top:2px}
.shot .foot{display:flex;justify-content:space-between;align-items:center;margin-top:12px;font-family:var(--mono);font-size:9.5px;color:var(--ink-3)}

/* ========== 解读抽屉 ========== */
.fab{position:fixed;right:22px;bottom:22px;z-index:60;background:var(--accent);color:var(--on-accent);border-radius:99px;padding:12px 18px;font-size:13.5px;font-weight:600;display:inline-flex;align-items:center;gap:9px;box-shadow:var(--shadow-lg);transition:transform .2s var(--ease)}
.fab:hover{transform:translateY(-2px)}
.fab svg{width:16px;height:16px}
.scrim{position:fixed;inset:0;background:rgba(10,12,16,.4);opacity:0;pointer-events:none;transition:opacity .28s var(--ease);z-index:70}
.scrim.on{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,100%);background:var(--panel);border-left:1px solid var(--line);box-shadow:var(--shadow-lg);z-index:80;display:flex;flex-direction:column;transform:translateX(100%);visibility:hidden;transition:transform .32s var(--ease),visibility 0s linear .32s}
.drawer.on{transform:none;visibility:visible;transition:transform .32s var(--ease),visibility 0s}
.drawer .dh{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line)}
.drawer .dh h3{font-family:var(--display);font-size:17px;font-weight:700}
.drawer .dh .x{margin-left:auto;border:1px solid var(--line);border-radius:3px;width:28px;height:28px;display:grid;place-items:center;color:var(--ink-2)}
.ctx{padding:13px 18px;border-bottom:1px solid var(--line);background:var(--panel-2)}
.ctx .lbl{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-weight:700}
.ctx h4{font-family:var(--display);font-size:16px;line-height:1.28;font-weight:700;margin-top:6px}
.angles{display:flex;gap:7px;padding:13px 18px;flex-wrap:wrap;border-bottom:1px solid var(--line)}
.angle{border:1px solid var(--line);border-radius:3px;padding:6px 11px;font-size:12.5px;color:var(--ink-2);background:var(--bg)}
.angle:hover{border-color:var(--line-2);color:var(--ink)}
.angle[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}
.answer{padding:18px;overflow-y:auto;flex:1}
.verdict{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:3px;padding:5px 12px 5px 5px;font-size:12.5px;margin-bottom:13px;color:var(--ink-2)}
.verdict .badge{font-size:11px;font-weight:700;letter-spacing:.05em;padding:3px 9px;border-radius:2px;color:var(--on-accent)}
.verdict.pos .badge{background:var(--up)} .verdict.neg .badge{background:var(--down)} .verdict.neu .badge{background:var(--ink-3)}
.verdict.unk .badge{background:transparent;color:var(--ink-3);border:1px dashed var(--line-2);font-weight:600}
.answer p{font-size:13.5px;line-height:1.7;color:var(--ink)}
.answer p+p{margin-top:11px}
.mat{margin-top:17px;border-top:1px solid var(--line);padding-top:13px}
.mat .h{font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);font-weight:700;margin-bottom:9px}
.mat ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.mat li{font-size:12.5px;color:var(--ink-2);display:grid;grid-template-columns:16px 1fr;gap:9px;align-items:baseline}
.mat .n{font-family:var(--mono);font-size:11px;color:var(--accent);font-weight:600}
.askbar{display:flex;gap:9px;padding:13px 18px;border-top:1px solid var(--line);background:var(--bg);align-items:center;flex-wrap:wrap}
.askbar input{flex:1;min-width:150px;background:var(--panel);border:1px solid var(--line);border-radius:3px;padding:9px 12px;font:inherit;font-size:13px;color:var(--ink)}
.askbar input::placeholder{color:var(--ink-3)}
.quota{font-size:11.5px;color:var(--ink-3);width:100%}
.disclaim{font-size:11px;color:var(--ink-3);padding:10px 18px;border-top:1px solid var(--line);line-height:1.55}

/* ========== 组件库 ========== */
.lib-sec{margin-bottom:34px}
.lib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}
.lib-item{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:15px;display:flex;flex-direction:column;gap:10px}
.lib-item .name{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(122px,1fr));gap:10px}
.sw{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--panel)}
.sw .chipcolor{height:44px}
.sw .lab{padding:8px 10px;font-size:11px;color:var(--ink-2)}
.sw .lab b{display:block;font-family:var(--mono);font-size:10.5px;color:var(--ink-3);font-weight:400;margin-top:2px}
.typelist > div{padding:12px 0;border-bottom:1px solid var(--line)}
.typelist > div:last-child{border-bottom:0}
.typelist .n{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);margin-bottom:6px}

/* ========== 日历（第二批） ========== */
.ct-head,.ct-row{display:grid;grid-template-columns:96px 46px minmax(0,1fr) 62px 86px 92px 92px 118px;gap:14px;align-items:center;padding:var(--row-y) 0;border-bottom:1px solid var(--line)}
.ct-head{font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);font-weight:700;border-bottom:1px solid var(--line-2);padding-bottom:9px}
.ct-row:hover{background:color-mix(in oklab,var(--panel) 55%,transparent)}
.ct-row.sel{background:var(--panel)}
.ct-row .when{font-family:var(--mono);font-size:12px;color:var(--ink-2);line-height:1.35}
.ct-row .region{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--ink-3)}
.ct-row .ev{font-family:var(--display);font-size:16px;font-weight:600;line-height:1.3;text-align:left}
.ct-row .ev span{display:block;font-family:var(--ui);font-size:11.5px;font-weight:400;color:var(--ink-3);margin-top:3px}
.imp{display:flex;gap:3px}
.imp i{display:block;width:12px;height:2px;background:var(--line-2);border-radius:1px}
.imp i.on{background:var(--fact)}
.val{font-family:var(--mono);font-size:13px;color:var(--ink-2);font-variant-numeric:tabular-nums}
.val.actual{color:var(--ink);font-weight:600}
.val.none{color:var(--ink-3);font-family:var(--ui);font-size:12px}
.val::before{content:attr(data-l);display:none;font-family:var(--ui);font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);margin-right:6px}
.state{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--ink-3);display:inline-flex;align-items:center;gap:6px}
.state::before{content:"";width:11px;height:2px;background:var(--line-2)}
.state.released{color:var(--data)} .state.released::before{background:var(--data)}
.state.soon{color:var(--fact)} .state.soon::before{background:var(--fact)}
.ct-acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}

.dayview{border-top:1px solid var(--line-2)}
.hourblock{display:grid;grid-template-columns:72px minmax(0,1fr);gap:18px;padding:16px 0;border-bottom:1px solid var(--line)}
.hourblock .h{font-family:var(--mono);font-size:13px;color:var(--ink-3);letter-spacing:-.02em}
.hourblock .items{display:grid;gap:12px}
.hourblock .it{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}
.hourblock .it h4{font-family:var(--display);font-size:16px;font-weight:600}
.hourblock .quiet{font-size:12.5px;color:var(--ink-3)}

.monthgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--panel)}
.monthgrid .dow{padding:9px 10px;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-weight:700;border-bottom:1px solid var(--line);border-right:1px solid var(--line);background:var(--panel-2)}
.monthgrid .dow:nth-child(7n){border-right:0}
.monthcell{min-height:92px;padding:9px 10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:6px}
.monthcell:nth-child(7n){border-right:0}
.monthcell .n{font-family:var(--mono);font-size:11.5px;color:var(--ink-3)}
.monthcell.today .n{color:var(--accent);font-weight:600}
.monthcell.muted{background:var(--sunk)}
.mev{font-size:11.5px;line-height:1.35;display:flex;gap:6px;align-items:flex-start;text-align:left;width:100%}
.mev::before{content:"";width:9px;height:2px;background:var(--line-2);margin-top:7px;flex:0 0 auto}
.mev.f::before{background:var(--fact)} .mev.d::before{background:var(--data)}
.mev:hover{color:var(--accent)}

.evdetail{display:grid;grid-template-columns:1.2fr .8fr;gap:26px;margin-top:26px;align-items:start}
.evcard{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:22px}
.evcard .top{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.evcard h3{font-family:var(--display);font-size:24px;line-height:1.16;font-weight:700;letter-spacing:-.015em}
.evcard .sub{font-size:13px;color:var(--ink-2);margin-top:8px;max-width:56ch}
.fieldgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.fieldgrid .f .k{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-weight:700}
.fieldgrid .f .v{font-family:var(--mono);font-size:19px;font-weight:600;letter-spacing:-.025em;margin-top:4px}
.fieldgrid .f .v.none{font-family:var(--ui);font-size:14px;font-weight:400;color:var(--ink-3)}
.remind{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:16px}
.remind h4{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-2);font-weight:700}
.remind .state-line{display:flex;gap:9px;align-items:flex-start;margin-top:12px;font-size:13px;color:var(--ink-2);line-height:1.55}
.remind .state-line i{display:block;width:13px;height:2px;background:var(--line-2);margin-top:9px;flex:0 0 auto}
.remind .state-line.on i{background:var(--up)}
.remind .state-line.warn i{background:var(--read)}
.remind .state-line.off i{background:var(--ink-3)}

/* ========== 数据（第二批） ========== */
.boards{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:20px}
.dgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.dcard{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:15px;display:flex;flex-direction:column;gap:10px;text-align:left;width:100%}
.dcard:hover{border-color:var(--line-2)}
.dcard h4{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);font-weight:700}
.dval{font-family:var(--mono);font-size:26px;font-weight:600;letter-spacing:-.035em;line-height:1;font-variant-numeric:tabular-nums}
.dval small{font-family:var(--ui);font-size:12px;color:var(--ink-3);letter-spacing:0;margin-left:2px}
.dfoot{display:flex;justify-content:space-between;align-items:center;gap:8px;font-family:var(--mono);font-size:10.5px;color:var(--ink-3)}
.demo{font-family:var(--ui);font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);border:1px dashed var(--line-2);border-radius:2px;padding:1px 6px}
.delta{font-family:var(--mono);font-size:11.5px;font-weight:600}
.delta.down{color:var(--down)} .delta.up{color:var(--up)}
.empty-note{font-size:12.5px;color:var(--ink-3);line-height:1.55}

.bigchart{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:20px}
.bigchart .hd{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.bigchart h3{font-family:var(--display);font-size:22px;font-weight:700;letter-spacing:-.015em}
.bigchart .now{font-family:var(--mono);font-size:30px;font-weight:600;letter-spacing:-.035em}
.bigchart .now small{font-family:var(--ui);font-size:12px;color:var(--ink-3);letter-spacing:0;display:block;margin-top:4px}
.bigchart svg{width:100%;height:250px;display:block}
.bigchart svg text{font-family:var(--mono);font-variant-numeric:tabular-nums;fill:var(--ink-3)}
.bigchart svg text.now{fill:var(--ink)}
.legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px;font-size:12px;color:var(--ink-2)}
.legend span{display:inline-flex;align-items:center;gap:7px}
.legend i{width:14px;height:2px;border-radius:1px}
.histtable{width:100%;border-collapse:collapse;font-size:13px;margin-top:6px}
.histtable th,.histtable td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left}
.histtable th{font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);font-weight:700}
.histtable td.n{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right}
.rev{font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--read);border:1px solid color-mix(in oklab,var(--read) 45%,var(--line));border-radius:2px;padding:1px 6px;margin-left:8px}

/* ========== 音频条（第二批） ========== */
.audiobar{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel-2);padding:12px 15px;margin-top:20px;flex-wrap:wrap}
.audiobar button.play{width:34px;height:34px;border-radius:99px;border:1px solid var(--line-2);display:grid;place-items:center;background:var(--panel);flex:0 0 auto}
.audiobar .track{flex:1;min-width:150px}
.audiobar .bar{height:3px;background:var(--line);border-radius:99px;overflow:hidden}
.audiobar .bar i{display:block;height:100%;width:0;background:var(--accent)}
.audiobar .lab{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10.5px;color:var(--ink-3);margin-top:6px}
.audiobar .hint{font-size:11.5px;color:var(--ink-3);width:100%}

/* ========== 解读抽屉的更多状态（第二批） ========== */
.think{display:grid;gap:10px}
.think .step{display:grid;grid-template-columns:14px 1fr;gap:10px;font-size:13px;color:var(--ink-2);align-items:baseline}
.think .step i{display:block;width:13px;height:2px;background:var(--line-2);margin-top:8px}
.think .step.done i{background:var(--up)}
.think .step.now i{background:var(--accent);animation:pulse 1.1s ease-in-out infinite}
@keyframes pulse{50%{opacity:.3}}
.think .sk{height:11px;border-radius:2px}
.think .lines{display:grid;gap:7px;margin-top:6px}
.refusal{border:1px solid var(--line);border-radius:var(--r);background:var(--panel-2);padding:16px}
.refusal h4{font-family:var(--display);font-size:16px;font-weight:700}
.refusal p{font-size:13px;color:var(--ink-2);margin-top:8px;line-height:1.6}
.refusal ul{margin:10px 0 0;padding-left:18px;font-size:13px;color:var(--ink-2);line-height:1.8}
.quotabox{border:1px solid color-mix(in oklab,var(--read) 40%,var(--line));background:var(--read-soft);border-radius:var(--r);padding:16px}
.quotabox h4{font-family:var(--display);font-size:16px;font-weight:700}
.quotabox p{font-size:13px;color:var(--ink-2);margin-top:7px;line-height:1.6}
.quotabox .acts{margin-top:12px}
.srcpanel{border:1px solid var(--line);border-radius:var(--r);margin-top:10px;overflow:hidden}
.srcpanel .sh{padding:10px 13px;background:var(--panel-2);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);font-weight:700;display:flex;justify-content:space-between;align-items:center}
.srcpanel .si{padding:12px 13px;border-top:1px solid var(--line);font-size:12.5px;color:var(--ink-2);line-height:1.6}
.srcpanel .si b{display:block;color:var(--ink);font-weight:600;margin-bottom:4px}
.srcpanel .si q{color:var(--ink);font-style:normal}
.srcpanel .si .meta2{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);margin-top:6px}
.histlist{display:grid;gap:8px}
.histlist button{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:11px 13px;text-align:left;width:100%}
.histlist button:hover{border-color:var(--line-2)}
.histlist .t{font-size:13px;color:var(--ink);line-height:1.4}
.histlist .m{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);margin-top:5px}
.followup{border-top:1px solid var(--line);margin-top:16px;padding-top:14px}
.followup .q{font-size:13px;font-weight:600;color:var(--ink);display:flex;gap:9px}
.followup .q::before{content:"问";font-family:var(--mono);font-size:10.5px;color:var(--accent);border:1px solid var(--line);border-radius:2px;padding:1px 5px;height:fit-content}

/* ========== 会员与账户（第三批） ========== */
.steps{display:flex;gap:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--panel);margin-bottom:24px}
.steps .s{flex:1;padding:12px 15px;border-right:1px solid var(--line);display:flex;gap:10px;align-items:center;font-size:12.5px;color:var(--ink-3)}
.steps .s:last-child{border-right:0}
.steps .s .n{font-family:var(--mono);font-size:10.5px;border:1px solid var(--line-2);border-radius:99px;width:20px;height:20px;display:grid;place-items:center;flex:0 0 auto}
.steps .s.on{color:var(--ink);font-weight:600}
.steps .s.on .n{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.steps .s.done .n{background:var(--up);border-color:var(--up);color:var(--on-accent)}

.checkout{display:grid;grid-template-columns:1.25fr .75fr;gap:26px;align-items:start}
.co-block{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:20px;margin-bottom:18px}
.co-block h4{font-family:var(--display);font-size:17px;font-weight:700;margin-bottom:4px}
.co-block p{font-size:12.5px;color:var(--ink-2);line-height:1.55}
.optrow{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.optrow:last-child{border-bottom:0}
.optrow .t{font-size:13.5px}
.optrow .t b{display:block;font-family:var(--display);font-size:16px;font-weight:700;margin-bottom:3px}
.optrow .p{font-family:var(--mono);font-size:14px;font-weight:600;white-space:nowrap}
.summary{border:1px solid var(--line-2);border-radius:var(--r);background:var(--panel);padding:20px;position:sticky;top:78px}
.summary h4{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);font-weight:700}
.sline{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:var(--ink-2);padding:9px 0;border-bottom:1px solid var(--line)}
.sline .n{font-family:var(--mono);font-variant-numeric:tabular-nums}
.sline.discount{color:var(--up)}
.stotal{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-top:14px;margin-top:6px}
.stotal .k{font-size:13px;color:var(--ink-2)}
.stotal .v{font-family:var(--mono);font-size:28px;font-weight:600;letter-spacing:-.035em}
.fineprint{font-size:11.5px;color:var(--ink-3);line-height:1.6;margin-top:12px}

.statecard{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:30px;display:flex;flex-direction:column;align-items:flex-start;gap:12px;max-width:640px}
.statecard .mark{display:flex;gap:4px}
.statecard .mark i{display:block;width:18px;height:2px;border-radius:1px;background:var(--line-2)}
.statecard.ok .mark i:first-child{background:var(--up)}
.statecard.wait .mark i:first-child{background:var(--read);animation:pulse 1.2s ease-in-out infinite}
.statecard h3{font-family:var(--display);font-size:24px;font-weight:700;letter-spacing:-.015em}
.statecard p{font-size:13.5px;color:var(--ink-2);line-height:1.65;max-width:52ch}

.mcenter{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.mstat{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:16px}
.mstat .k{font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);font-weight:700}
.mstat .v{font-family:var(--mono);font-size:24px;font-weight:600;letter-spacing:-.03em;margin-top:5px}
.mstat .n{font-size:11.5px;color:var(--ink-3);margin-top:5px;line-height:1.5}
.usebar{height:5px;border-radius:99px;background:var(--sunk);overflow:hidden;margin-top:9px}
.usebar i{display:block;height:100%;background:var(--accent)}

.chjoin{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.chrow{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:16px;display:flex;flex-direction:column;gap:9px}
.chrow .top{display:flex;align-items:center;gap:10px}
.chrow .plat{width:26px;height:26px;border:1px solid var(--line);border-radius:4px;display:grid;place-items:center;font-family:var(--mono);font-size:9.5px;color:var(--ink-3)}
.chrow h4{font-family:var(--display);font-size:16px;font-weight:700}
.chrow .badge{margin-left:auto;font-size:10px;letter-spacing:.07em;text-transform:uppercase;font-weight:700;border:1px solid var(--line);border-radius:2px;padding:2px 7px;color:var(--ink-3)}
.chrow .badge.joined{color:var(--up);border-color:color-mix(in oklab,var(--up) 45%,var(--line))}
.chrow .badge.expired{color:var(--ink-3)}
.chrow p{font-size:12.5px;color:var(--ink-2);line-height:1.55}
.invite{display:flex;gap:8px;align-items:center;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r);padding:9px 12px;font-family:var(--mono);font-size:11.5px;color:var(--ink-2);overflow:hidden}
.invite span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}


.note{font-size:12px;color:var(--ink-3);line-height:1.6;max-width:80ch;margin-top:16px}

/* ========== 会员档位页 ========== */
.record{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:18px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.record .k{font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);font-weight:700}
.record .v{font-family:var(--mono);font-size:24px;font-weight:600;letter-spacing:-.03em;margin-top:4px}
.record .n{font-size:11.5px;color:var(--ink-3);margin-top:3px;line-height:1.45}
.cycle{display:inline-flex;border:1px solid var(--line);border-radius:3px;overflow:hidden;margin:0 0 20px}
.cycle button{padding:8px 16px;font-size:13px;color:var(--ink-2)}
.cycle button[aria-pressed="true"]{background:var(--ink);color:var(--bg);font-weight:600}
.cycle .save{font-family:var(--mono);font-size:10.5px;color:var(--up);margin-left:6px}
.cycle button[aria-pressed="true"] .save{color:var(--bg)}
.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}
.plan{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:22px;display:flex;flex-direction:column;gap:13px;position:relative}
.plan.on{border-color:var(--accent);box-shadow:var(--shadow)}
.plan .flag{position:absolute;top:-1px;right:16px;background:var(--accent);color:var(--on-accent);font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;padding:3px 9px;border-radius:0 0 3px 3px}
.plan .tier{font-family:var(--display);font-size:15px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--ink-2);display:flex;align-items:center;gap:9px}
.plan .tier::before{content:"";width:16px;height:2px;background:var(--line-2)}
.plan.on .tier{color:var(--accent)} .plan.on .tier::before{background:var(--accent)}
.price{font-family:var(--mono);font-size:34px;font-weight:600;letter-spacing:-.04em;line-height:1}
.price small{font-family:var(--ui);font-size:12.5px;font-weight:400;color:var(--ink-3);letter-spacing:0}
.price s{font-family:var(--ui);font-size:13px;color:var(--ink-3);margin-left:8px;font-weight:400}
.yearly{font-size:12px;color:var(--ink-3)}
.plan ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.plan li{font-size:13px;color:var(--ink-2);display:grid;grid-template-columns:14px 1fr;gap:10px;align-items:start}
.plan li i{display:block;width:13px;height:2px;background:var(--line-2);margin-top:9px}
.plan.on li i{background:var(--accent)}
.plan .go{margin-top:auto;border:1px solid var(--line-2);border-radius:3px;padding:11px 14px;text-align:center;font-size:13px;font-weight:600;color:var(--ink-2)}
.plan.on .go{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.cmp-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--panel)}
.cmp{width:100%;border-collapse:collapse;font-size:13px}
.cmp th,.cmp td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.cmp thead th{font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--line-2)}
.cmp tbody th{font-weight:500;color:var(--ink-2)}
.cmp td{text-align:center;width:118px;color:var(--ink-2)}
.cmp td.y{color:var(--ink)}
.cmp td .mark{display:inline-block;width:13px;height:2px;background:var(--accent);vertical-align:middle}
.cmp td .no{display:inline-block;width:13px;height:2px;background:var(--line-2);vertical-align:middle}
.faq{display:grid;gap:10px}
.faq details{border:1px solid var(--line);border-radius:var(--r);background:var(--panel)}
.faq summary{padding:13px 16px;font-size:13.5px;font-weight:600;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";width:13px;height:2px;background:var(--accent);flex:0 0 auto}
.faq details[open] summary::after{background:var(--ink-3)}
.faq p{padding:0 16px 14px;font-size:13px;color:var(--ink-2);line-height:1.65;max-width:72ch}

/* ========== 搜索与已保存（第三批） ========== */
.searchbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.searchbar input{flex:1;min-width:220px;background:var(--panel);border:1px solid var(--line-2);border-radius:var(--r);padding:12px 15px;font:inherit;font-size:15px;color:var(--ink)}
.searchbar input::placeholder{color:var(--ink-3)}
.resmeta{font-size:12.5px;color:var(--ink-3);margin:14px 0 18px}
.resgroup{margin-bottom:26px}
.resrow{display:grid;grid-template-columns:78px minmax(0,1fr);gap:16px;padding:var(--row-y) 0;border-bottom:1px solid var(--line)}
.resrow .when{font-family:var(--mono);font-size:11.5px;color:var(--ink-3)}
.resrow h4{font-family:var(--display);font-size:17px;font-weight:600;line-height:1.28}
.resrow mark{background:color-mix(in oklab,var(--accent) 18%,transparent);color:inherit;padding:0 2px;border-radius:2px}
.resrow .snip{font-size:12.5px;color:var(--ink-2);margin-top:5px;line-height:1.55;max-width:70ch}
.resrow .foot{font-size:11px;color:var(--ink-3);margin-top:6px;display:flex;gap:10px;flex-wrap:wrap}
.savedrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:var(--row-y) 0;border-bottom:1px solid var(--line)}
.savedrow h4{font-family:var(--display);font-size:16.5px;font-weight:600;line-height:1.3}
.savedrow .m{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);margin-top:5px}

/* 账户浮层 */
.acctwrap{position:relative}
.acctpanel{position:absolute;right:0;top:calc(100% + 8px);width:290px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-lg);padding:15px;z-index:50}
.acctpanel h4{font-family:var(--display);font-size:16px;font-weight:700}
.acctpanel p{font-size:12.5px;color:var(--ink-2);line-height:1.55;margin-top:6px}
.acctpanel .who{display:flex;gap:10px;align-items:center;padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:12px}
.acctpanel .who .av{width:32px;height:32px;border-radius:99px;background:var(--panel-2);border:1px solid var(--line);display:grid;place-items:center;font-family:var(--mono);font-size:12px;color:var(--ink-2)}
.acctpanel .who .nm{font-size:13px;font-weight:600}
.acctpanel .who .sub{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);margin-top:2px}
.acctpanel .links{display:grid;gap:2px;margin-top:12px}
.acctpanel .links button{text-align:left;padding:8px 9px;border-radius:3px;font-size:13px;color:var(--ink-2)}
.acctpanel .links button:hover{background:var(--panel-2);color:var(--ink)}
.acctpanel .demoswitch{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);display:flex;gap:6px;flex-wrap:wrap}

/* ========== 原型控制台（非产品界面） ========== */
.console-toggle{position:fixed;left:18px;bottom:18px;z-index:60;background:var(--ink);color:var(--bg);border-radius:99px;padding:9px 15px;font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:8px;box-shadow:var(--shadow-lg)}
.console-toggle i{display:block;width:12px;height:2px;background:var(--bg);border-radius:1px}
.console{position:fixed;left:18px;bottom:64px;z-index:61;width:min(330px,calc(100vw - 36px));max-height:72vh;overflow-y:auto;background:var(--panel);border:1px solid var(--line-2);border-radius:var(--r);box-shadow:var(--shadow-lg);padding:16px}
.console h4{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);font-weight:700;margin:16px 0 8px}
.console h4:first-of-type{margin-top:12px}
.console .lead{font-size:12px;color:var(--ink-2);line-height:1.55}
.console .lead b{color:var(--ink)}
.console .set{display:flex;gap:6px;flex-wrap:wrap}
.console .close{position:absolute;right:14px;top:12px;border:1px solid var(--line);border-radius:3px;width:26px;height:26px;display:grid;place-items:center;color:var(--ink-2)}
.console .hd{display:flex;align-items:center;gap:10px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.console .hd strong{font-family:var(--display);font-size:15px}
.console .hd span{font-size:11px;color:var(--ink-3);margin-left:auto}

/* ========== 占位（后续批次） ========== */
.later{border:1px dashed var(--line-2);border-radius:var(--r);background:var(--panel);padding:34px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.later .b{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--read);border:1px solid var(--read);border-radius:2px;padding:2px 8px}
.later h3{font-family:var(--display);font-size:22px;font-weight:700}
.later p{font-size:13.5px;color:var(--ink-2);max-width:56ch;line-height:1.6}
.later ul{margin:0;padding-left:18px;font-size:13px;color:var(--ink-2);line-height:1.8}

.view{display:none}
.view.on{display:block;animation:in .3s var(--ease) both}
@keyframes in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .view.on,.spectrum i,.sk,.think .step.now i,.live[data-state="reconnect"] .dot,.statecard.wait .mark i:first-child{animation:none}
  .drawer,.scrim,.fab,.toast,.audiobar .bar i{transition:none}
}

@media (max-width:980px){
  .ct-head{display:none}
  .ct-row{grid-template-columns:auto auto;gap:7px 16px;padding:15px 0}
  .ct-row .ev{grid-column:1/-1;order:-1}
  .ct-row .when,.ct-row .region{order:-2}
  .ct-row .val::before{display:inline}
  .ct-row .imp,.ct-acts{grid-column:1/-1}
  .ct-acts{justify-content:flex-start}
  .evdetail{grid-template-columns:1fr;gap:18px}
  .checkout{grid-template-columns:1fr;gap:18px}
  .summary{position:static}
  .mcenter,.chjoin{grid-template-columns:1fr 1fr}
  .plans{grid-template-columns:1fr}
  .record{grid-template-columns:1fr 1fr}
  .steps{flex-wrap:wrap}
  .steps .s{flex:1 1 44%;border-bottom:1px solid var(--line)}
  .fieldgrid{grid-template-columns:1fr 1fr}
  .dgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .monthgrid{font-size:11px}
  .monthcell{min-height:74px}
  .cols{grid-template-columns:1fr;gap:28px}
  .side{position:static}
  .lede-report{grid-template-columns:1fr;gap:20px}
  .rgrid{grid-template-columns:1fr 1fr}
  .colgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cardpreview{grid-template-columns:1fr}
  footer.site .wrap{grid-template-columns:1fr 1fr;gap:22px}
}
@media (max-width:620px){
  .wrap{padding:0 15px}
  header.shell .wrap{min-height:0;padding-block:11px;gap:10px}
  nav.sections{order:3;width:100%;overflow-x:auto;margin-left:0}
  .shell-right{margin-left:auto}
  .row,.skel{grid-template-columns:1fr;gap:3px}
  .row h2{font-size:18.5px}
  .sec-head h1{font-size:30px}
  .lede-report h2{font-size:26px}
  .rgrid,.colgrid,.dgrid{grid-template-columns:1fr}
  .arch-row{grid-template-columns:1fr;gap:4px}
  .fieldgrid{grid-template-columns:1fr}
  .hourblock{grid-template-columns:1fr;gap:8px}
  .mcenter,.chjoin,.record{grid-template-columns:1fr}
  .steps .s{flex:1 1 100%;border-right:0}
  .resrow{grid-template-columns:1fr;gap:4px}
  .savedrow{grid-template-columns:1fr;gap:10px;align-items:flex-start}
  .acctpanel{position:fixed;left:15px;right:15px;top:auto;bottom:14px;width:auto}
  .monthgrid{grid-template-columns:repeat(7,minmax(0,1fr));font-size:10px}
  .monthcell{min-height:58px;padding:6px}
  .monthcell .mev{font-size:9.5px;line-height:1.25;min-height:26px;align-items:center}
  .monthcell .mev::before{width:7px;margin-top:0}
  .bigchart svg{height:190px}
  .rail,.row.rail{padding-left:22px}
  .rail::before{left:6px}
  .lock .go{margin-left:0;width:100%}
  .shell-right{gap:6px}
  .shell-right{max-width:100%;flex-wrap:wrap}
  .ctrl{padding:6px 9px}
  .drawer{top:auto;height:88vh;width:100%;border-left:0;border-top:1px solid var(--line);border-radius:var(--r) var(--r) 0 0;transform:translateY(100%)}
  .drawer.on{transform:none;visibility:visible}
  .fab{right:14px;bottom:14px}
  .console-toggle{left:14px;bottom:14px;padding:8px 13px;font-size:11.5px}
  .console{left:14px;bottom:56px}
  main{padding-bottom:86px}
  footer.site .wrap{grid-template-columns:1fr}
}

/* ==================================================================
   v5 增补：功能性板块头部、两级筛选、方向色、可视化组件、商业金色
   ================================================================== */

/* ---------- 板块头部：状态，不是说明文 ---------- */
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;
  padding-bottom:13px;border-bottom:2px solid var(--ink);margin-bottom:18px}
.sec-head p{display:none}
#view-en .sec-head p,#view-lib .sec-head p{display:block;font-size:14.5px;color:var(--ink-2);margin-top:10px;max-width:60ch}
.sec-meta{display:flex;align-items:center;gap:0;flex-wrap:wrap;font-family:var(--mono);font-size:11px;
  color:var(--ink-3);font-variant-numeric:tabular-nums;letter-spacing:.02em;padding-bottom:4px}
.sec-meta > span{padding:0 11px;border-left:1px solid var(--line-2)}
.sec-meta > span:first-child{padding-left:0;border-left:0}
.sec-meta b{color:var(--ink);font-weight:600}

/* ---------- 两级筛选 ---------- */
.filterbar{border-bottom:1px solid var(--line-2);padding-bottom:11px;margin-bottom:2px}
.filterbar .row{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.filterbar .row + .row{margin-top:9px;padding-top:9px;border-top:1px dotted var(--line)}
.filterbar .axis{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);
  font-weight:700;margin-right:3px;flex:0 0 auto}
.chip.sub{border-style:dashed;font-size:12px;padding:4px 9px}
.chip.sub[aria-pressed="true"]{border-style:solid}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:3px;overflow:hidden;background:var(--panel)}
.seg button{padding:5px 12px;font-size:12.5px;color:var(--ink-2);border-right:1px solid var(--line)}
.seg button:last-child{border-right:0}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--bg);font-weight:600}
.chip.heat{padding-left:8px;display:inline-flex;align-items:center;gap:6px}
.chip.heat i{width:7px;height:7px;border-radius:50%;background:var(--line-2);flex:0 0 auto}
.chip.heat[data-heat="warm"] i{background:#d9a441}
.chip.heat[data-heat="hot"] i{background:#d9722f}
.chip.heat[data-heat="explosive"] i{background:var(--c-rise)}
.chip.heat[aria-pressed="true"]{background:var(--panel-2);border-color:var(--line-2);color:var(--ink);font-weight:600}

/* ---------- 方向色（只作用于数字与变动） ---------- */
.dir{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:600}
.dir.up{color:var(--up)} .dir.down{color:var(--down)} .dir.flat{color:var(--ink-3)}
.dir::before{font-family:var(--ui);font-size:.85em;margin-right:2px}
.dir.up::before{content:"▲"} .dir.down::before{content:"▼"} .dir.flat::before{content:"–"}
.pill{display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);font-size:11px;font-weight:600;
  padding:1px 6px;border-radius:2px;font-variant-numeric:tabular-nums}
.pill.up{background:var(--up-soft);color:var(--up)} .pill.down{background:var(--down-soft);color:var(--down)}
.dirnote{font-size:11px;color:var(--ink-3)}

/* ---------- Sparkline ---------- */
.spark{display:block;width:100%;height:34px;overflow:visible}
.spark path.ln{fill:none;stroke:var(--ink-3);stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.spark path.ar{fill:var(--ink-3);opacity:.08}
.spark circle.end{fill:var(--ink)}
/* 已收录历史与最新快照之间没有观测：虚线连过去，不补点 */
.spark path.gap{fill:none;stroke:var(--ink-3);stroke-width:1.2;stroke-dasharray:2 2.5;vector-effect:non-scaling-stroke}
.spark.up path.ln{stroke:var(--up)} .spark.up path.ar{fill:var(--up)} .spark.up circle.end{fill:var(--up)}
.spark.down path.ln{stroke:var(--down)} .spark.down path.ar{fill:var(--down)} .spark.down circle.end{fill:var(--down)}
.sparkwrap{position:relative}
.sparkwrap .demo{position:absolute;right:0;top:-13px}

/* ---------- 清算痛点条 ---------- */
.painrow{display:grid;grid-template-columns:104px minmax(0,1fr);gap:16px;align-items:center;
  padding:14px 0;border-bottom:1px solid var(--line)}
.painrow .sym{display:flex;align-items:center;gap:9px}
.painrow .sym b{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.02em}
.painrow .sym i{width:22px;height:22px;border-radius:50%;border:1px solid var(--line-2);display:grid;
  place-items:center;font-style:normal;font-size:9px;font-family:var(--mono);color:var(--ink-3);flex:0 0 auto}
.painbar{position:relative;padding-top:19px;padding-bottom:17px}
.painbar .track{height:7px;border-radius:99px;
  background:linear-gradient(90deg,var(--down) 0%,var(--down) 8%,var(--line-2) 50%,var(--up) 92%,var(--up) 100%)}
.painbar .mk{position:absolute;top:13px;width:2px;height:19px;background:var(--ink);border-radius:1px;transform:translateX(-1px)}
.painbar .mk::after{content:"";position:absolute;left:-3px;top:6px;width:8px;height:8px;border-radius:50%;
  background:var(--panel);border:2px solid var(--ink)}
.painbar .cap{position:absolute;top:0;font-family:var(--mono);font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.painbar .cap.l{left:0;color:var(--down)} .painbar .cap.r{right:0;color:var(--up)}
/* 英文抽查页演示语种绑定：en 默认绿涨红跌 */
#view-en{--up:var(--c-fall);--down:var(--c-rise);--up-soft:var(--c-fall-soft);--down-soft:var(--c-rise-soft)}
:root[data-dir="green-up"] #view-en{--up:var(--c-rise);--down:var(--c-fall);--up-soft:var(--c-rise-soft);--down-soft:var(--c-fall-soft)}
.painbar .cap.c{color:var(--ink);transform:translateX(-50%)}
.painbar .foot{position:absolute;bottom:0;font-family:var(--mono);font-size:10px;color:var(--ink-3);white-space:nowrap}
.painbar .foot.l{left:0} .painbar .foot.r{right:0}

/* ---------- 资金费率条带 ---------- */
.fstrip{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.fstrip .f{background:var(--panel);padding:11px 12px}
.fstrip .f .s{font-family:var(--mono);font-size:11px;color:var(--ink-3);font-weight:600}
.fstrip .f .r{font-family:var(--mono);font-size:16px;font-weight:600;font-variant-numeric:tabular-nums;margin-top:2px}
.fstrip .f .b{height:3px;margin-top:7px;background:var(--line);border-radius:2px;position:relative;overflow:hidden}
.fstrip .f .b i{position:absolute;top:0;bottom:0;left:50%;border-radius:2px}
.fstrip .f.up .r{color:var(--up)} .fstrip .f.up .b i{background:var(--up)}
.fstrip .f.down .r{color:var(--down)} .fstrip .f.down .b i{background:var(--down)}

/* ---------- 本周日历节奏 ---------- */
.wpulse{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;align-items:end;
  border:1px solid var(--line);background:var(--panel);border-radius:var(--r);padding:14px 14px 11px}
.wpulse .d{display:flex;flex-direction:column;align-items:center;gap:6px}
.wpulse .bars{display:flex;align-items:flex-end;gap:2px;height:52px}
.wpulse .bars i{width:6px;background:var(--data);border-radius:1px 1px 0 0;opacity:.45}
.wpulse .bars i.hi{background:var(--fact);opacity:1}
.wpulse .lbl{font-family:var(--mono);font-size:10px;color:var(--ink-3);text-align:center;line-height:1.35}
.wpulse .lbl b{display:block;color:var(--ink);font-size:12px;font-weight:600}
.wpulse .d.today .lbl b{color:var(--accent)}
.wpulse .d.today{background:var(--panel-2);border-radius:3px;margin:-4px -2px;padding:4px 2px}

/* ---------- 交易时段轨 ---------- */
.sess{border:1px solid var(--line);background:var(--panel);border-radius:var(--r);overflow:hidden}
.sessrow{display:grid;grid-template-columns:132px minmax(0,1fr);gap:14px;align-items:center;padding:11px 14px;
  border-bottom:1px solid var(--line)}
.sessrow:last-child{border-bottom:0}
.sessrow .nm{font-size:12.5px}
.sessrow .nm small{display:block;font-family:var(--mono);font-size:10px;color:var(--ink-3)}
.sesstrack{position:relative;height:16px;background:var(--sunk);border-radius:2px;overflow:hidden}
.sesstrack .seg{position:absolute;top:0;bottom:0}
.sesstrack .seg.main{background:var(--data);opacity:.75}
.sesstrack .seg.pre,.sesstrack .seg.after{background:var(--data);opacity:.28}
.sesstrack .seg.brk{background:var(--line-2)}
.sessnow{position:relative;height:13px}
.sessnow i{position:absolute;top:0;width:1px;height:100%;background:var(--accent)}
.sessnow i::after{content:"现在";position:absolute;top:0;left:3px;font-family:var(--mono);font-size:9.5px;color:var(--accent)}
.sesshours{display:grid;grid-template-columns:132px minmax(0,1fr);gap:14px;padding:0 14px 9px}
.sesshours .t{display:flex;justify-content:space-between;font-family:var(--mono);font-size:9.5px;color:var(--ink-3)}

/* ---------- 主题 / 关系对象 ---------- */
.tagwall{display:flex;gap:8px;flex-wrap:wrap}
.tagwall a,.tagwall button{display:inline-flex;align-items:baseline;gap:7px;border:1px solid var(--line);
  background:var(--panel);border-radius:3px;padding:7px 11px;font-size:13px;color:var(--ink);text-decoration:none}
.tagwall .n{font-family:var(--mono);font-size:11px;color:var(--ink-3)}
.tagwall [data-w="3"]{font-size:15px;font-weight:600}
.tagwall [data-w="2"]{font-size:14px}
.objgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:14px}
.objcard{border:1px solid var(--line);background:var(--panel);border-radius:var(--r);padding:14px;
  display:flex;flex-direction:column;gap:9px;text-align:left}
.objcard .kind{font-size:10px;letter-spacing:.11em;text-transform:uppercase;font-weight:700;color:var(--ink-3)}
.objcard h4{font-size:15px;font-family:var(--display);letter-spacing:-.01em}
.objcard .n{font-family:var(--mono);font-size:11px;color:var(--ink-3)}

/* ---------- 商业金色（只在会员面） ---------- */
.gold-eyebrow{display:inline-flex;align-items:center;gap:7px;font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;font-weight:700;color:var(--gold)}
.gold-eyebrow::before{content:"";width:16px;height:1px;background:linear-gradient(90deg,transparent,var(--gold-1))}
.gold-head{font-family:var(--display);font-size:clamp(28px,4vw,46px);line-height:1.05;letter-spacing:-.03em;font-weight:700;
  background:linear-gradient(96deg,var(--gold-1) 0%,var(--gold-2) 44%,var(--gold-1) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.plan.pick{border-color:var(--gold-line);box-shadow:0 0 0 1px var(--gold-line) inset}
.goldtag{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;letter-spacing:.07em;
  padding:2px 8px;border-radius:2px;color:var(--gold);background:var(--gold-soft);border:1px solid var(--gold-line)}
.memberonly{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:600;color:var(--gold)}
.memberonly::before{content:"";width:6px;height:6px;border-radius:1px;transform:rotate(45deg);
  background:linear-gradient(135deg,var(--gold-1),var(--gold-2))}
.goldrule{height:1px;background:linear-gradient(90deg,var(--gold-line),transparent);margin:0 0 18px}

@media (max-width:980px){
  .painrow{grid-template-columns:86px minmax(0,1fr);gap:12px}
  .wpulse{padding:11px 8px 9px}
  .sessrow,.sesshours{grid-template-columns:96px minmax(0,1fr);gap:10px}
}
@media (max-width:620px){
  .sec-head{align-items:flex-start;flex-direction:column;gap:9px}
  .sec-meta{padding-bottom:0}
  .wpulse{gap:3px;padding:10px 6px 8px}
  .wpulse .bars{height:40px} .wpulse .bars i{width:4px}
  .painrow{grid-template-columns:1fr;gap:2px}
  .filterbar .axis{flex:1 0 100%;width:auto;margin-bottom:2px}
}

/* ---------- 会员面的金色（覆盖通用红/墨色） ---------- */
.cycle .save{color:var(--gold)}
.cycle button[aria-pressed="true"] .save{color:var(--gold-2)}
.plan.on{border-color:var(--gold-line);box-shadow:0 0 0 1px var(--gold-line) inset,var(--shadow)}
.plan.on .flag{background:linear-gradient(96deg,var(--gold-1),var(--gold-2));color:#3a2c07;border-radius:0 0 3px 3px}
.plan.on .price{color:var(--ink)}
.plan.on .go{background:linear-gradient(96deg,var(--gold-1),var(--gold-2));color:#3a2c07;border-color:var(--gold-line)}
.plan.on .go:hover{filter:brightness(1.05)}
.plan.on ul i{background:var(--gold-1)}
#view-plans .record .v,#view-library .record .v{font-variant-numeric:tabular-nums}
.sessnow{height:16px}
.sessnow i::after{white-space:nowrap;font-weight:600;background:var(--bg);padding:0 3px}
@media (max-width:620px){
  .slug{flex-wrap:wrap}
  .slug .dirnote,.slug .memberonly{width:100%}
  .fstrip{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ==================================================================
   图标系统：跨语种宽度恒定的识别锚点。图标+文字为默认，纯图标只给通用符号。
   ================================================================== */
.ic{width:1em;height:1em;flex:0 0 auto;display:inline-block;vertical-align:-.14em}
.ic-s{width:12px;height:12px} .ic-m{width:14px;height:14px} .ic-l{width:17px;height:17px}
.sections button .ic{width:15px;height:15px;margin-right:6px;opacity:.72}
.sections button[aria-current="page"] .ic{opacity:1}
.meta .form{display:inline-flex;align-items:center;gap:5px}
.meta .form .ic{width:12px;height:12px}
.act .ic{width:13px;height:13px;margin-right:5px}
.acctpanel .links button .ic,.console .set .chip .ic{width:13px;height:13px;margin-right:6px;opacity:.7}
.ctrl .ic{width:14px;height:14px}
.empty .mark .ic,.empty > .ic{width:26px;height:26px;color:var(--ink-3)}
.state .ic{width:11px;height:11px;margin-right:4px}
.prec{display:inline-flex;align-items:center;gap:4px;color:var(--ink-3)}
.prec .ic{width:12px;height:12px}
/* 形态色：图标继承刻度轨的形态色 */
.form-fact{color:var(--fact)} .form-read{color:var(--spectrum-read)} .form-data{color:var(--data)}
.form-fix{color:var(--warn,var(--ink-2))} .form-pull{color:var(--ink-3)}
.when .prec{display:block;margin-top:3px;opacity:.6}
.remind .seg button{padding:5px 10px;font-size:12px}

/* ---------- 方向标签：FinPrisme 的判断，用方向层颜色 ---------- */
.tone{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;
  padding:1px 6px 1px 5px;border-radius:2px;letter-spacing:.04em;line-height:1.6}
.tone.up{color:var(--up);background:var(--up-soft)}
.tone.down{color:var(--down);background:var(--down-soft)}
.tone.flat{color:var(--ink-3);background:var(--panel-2)}
.tone .ic{opacity:.9}

/* ---------- 金色价值层：精选 / 头条 / 深度 / 会员 ---------- */
.slug.gold h3{color:var(--gold)}
.slug.gold h3::before{background:linear-gradient(90deg,var(--gold-1),var(--gold-2))}
.form.gold-form{color:var(--gold)}
.lede-report .issue,.rcard .issue{color:var(--gold);font-weight:700}
.side .hd span{display:inline-flex;align-items:center;gap:6px}
.side .hd span .ic{opacity:.62}
.side .hd.gold span{color:var(--gold)}
.side .hd.gold span .ic{opacity:1}
.side .hd.gold{border-bottom-color:var(--gold-line)}
.toolwrap .chip{display:inline-flex;align-items:center;gap:5px}
.toolwrap .chip .ic{opacity:.6}

/* ==================================================================
   术语锚：给专业词一个不抢读、跨设备一致的解释入口
   点线下划线不是链接色——专业读者的视线可以完全略过它
   ================================================================== */
.term{border:0;background:none;padding:0;margin:0;font:inherit;color:inherit;cursor:help;
  border-bottom:1px dotted var(--line-2);text-align:inherit;line-height:inherit}
.term:hover,.term[aria-expanded="true"]{border-bottom-color:var(--accent);border-bottom-style:solid}
.term:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}

.termcard{position:fixed;z-index:130;width:312px;max-width:calc(100vw - 32px);
  background:var(--panel);border:1px solid var(--line-2);border-radius:var(--r);
  box-shadow:var(--shadow-lg);padding:15px 16px 13px;font-size:12.5px;line-height:1.62;color:var(--ink-2)}
.termcard[hidden]{display:none !important}
.termcard h5{font-family:var(--display);font-size:15px;font-weight:700;color:var(--ink);
  letter-spacing:-.01em;line-height:1.3;margin:0 0 3px;display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}
.termcard h5 em{font-family:var(--mono);font-style:normal;font-size:11px;color:var(--ink-3);font-weight:500}
.termcard .why{margin-top:8px;padding-top:8px;border-top:1px dotted var(--line)}
.termcard .why b{color:var(--ink-3);font-size:10px;letter-spacing:.11em;text-transform:uppercase;
  display:block;margin-bottom:3px;font-weight:700}
.termcard .now{margin-top:9px;padding:7px 9px;background:var(--panel-2);border-radius:3px;
  font-family:var(--mono);font-size:11.5px;color:var(--ink);font-variant-numeric:tabular-nums}
.termcard .now span{display:block;color:var(--ink-3);font-size:10px;margin-top:2px}
.termcard .go{margin-top:11px;display:flex;gap:8px;align-items:center}
.gloss-finder{width:min(100%,480px);padding:12px;margin-bottom:18px;background:var(--panel);color:var(--ink);border:1px solid var(--line-2);border-radius:var(--r);font:inherit}
.termcard{max-height:calc(100dvh - 32px);overflow:auto}
.termcard .go .act{padding:4px 9px;font-size:11.5px}
.termcard .go .more{margin-left:auto;font-size:11px;color:var(--ink-3);background:none;border:0;
  text-decoration:underline;text-underline-offset:2px;cursor:pointer}

/* 术语表 */
.gloss{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:16px}
.glosscard{border:1px solid var(--line);background:var(--panel);border-radius:var(--r);padding:16px}
.glosscard h4{font-family:var(--display);font-size:16px;font-weight:700;letter-spacing:-.01em;
  display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.glosscard h4 em{font-family:var(--mono);font-style:normal;font-size:11px;color:var(--ink-3);font-weight:500}
.glosscard p{font-size:12.5px;color:var(--ink-2);line-height:1.62;margin-top:7px}
.glosscard .why{margin-top:8px;padding-top:8px;border-top:1px dotted var(--line);font-size:12.5px;color:var(--ink-2)}
.glosscard .now{margin-top:9px;font-family:var(--mono);font-size:11px;color:var(--ink-3)}
.glossgroup{margin:26px 0 12px}

/* 文末术语条 */
.termstrip{margin-top:22px;padding-top:14px;border-top:1px solid var(--line)}
.termstrip b{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);
  font-weight:700;display:block;margin-bottom:8px}
.termstrip .list{display:flex;gap:8px;flex-wrap:wrap}
.termstrip .list button{border:1px solid var(--line);background:var(--panel);border-radius:3px;
  padding:4px 10px;font-size:12px;color:var(--ink-2)}
.termstrip .list button:hover{border-color:var(--line-2);color:var(--ink)}

@media (max-width:620px){
  /* 手机上不做悬浮：同一张卡从底部升起 */
  .termcard{position:fixed;left:12px;right:12px;bottom:12px;top:auto !important;width:auto;max-width:none;
    padding:17px 17px 15px;font-size:13.5px}
  .termcard::before{content:"";position:absolute;top:7px;left:50%;transform:translateX(-50%);
    width:34px;height:3px;border-radius:2px;background:var(--line-2)}
  .termcard h5{margin-top:6px}
}

/* 数值卡：术语锚移到卡外，避免 button 嵌套 */
.dcell{position:relative;display:flex}
.dcell > .dcard{flex:1}
.dcell .dcard h4{padding-right:20px}
.dinfo{position:absolute;top:11px;right:11px;border-bottom:0;opacity:.4;color:var(--ink-3);line-height:0}
.dinfo:hover,.dinfo[aria-expanded="true"]{opacity:1;color:var(--accent)}
.dprev{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);margin-top:-4px}
.dnext{font-family:var(--mono);font-size:10px;color:var(--ink-3);padding-top:7px;border-top:1px dotted var(--line)}
.formula{font-family:var(--mono);font-size:11.5px;color:var(--ink-2);background:var(--panel-2);
  border-radius:3px;padding:9px 11px;margin:0 0 14px;line-height:1.7}
.formula sub,.formula sup{font-size:9px}

/* ==================================================================
   实施状态叠加层（只在原型控制台打开时渲染，不属于产品界面）
   用墨阶与边框样式区分，不用色相——避免和方向层红绿、价值层金色抢读
   ================================================================== */
.implbadge{display:inline-flex;align-items:center;gap:4px;font-family:var(--ui);font-size:9.5px;
  font-weight:700;letter-spacing:.08em;padding:1px 6px;border-radius:2px;line-height:1.7;
  vertical-align:middle;white-space:nowrap}
.implbadge[data-s="live"]{background:var(--ink);color:var(--bg);border:1px solid var(--ink)}
.implbadge[data-s="ready"]{background:transparent;color:var(--ink-2);border:1px dashed var(--line-2)}
.implbadge[data-s="pending"]{background:transparent;color:var(--ink-3);border:1px dotted var(--line-2);opacity:.85}
.implbadge .ic{width:10px;height:10px}

:root[data-impl-on] [data-impl]{outline:1px dashed var(--line-2);outline-offset:3px}
:root[data-impl-on] section.view[data-impl]{outline:0}
.implmark{display:block;margin:0 0 8px}
.implmark .note{display:inline;font-size:11px;color:var(--ink-3);margin-left:8px;max-width:none}

/* 视图级状态条 */
.implbar{position:sticky;top:0;z-index:45;display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:7px 22px;background:var(--panel-2);border-bottom:1px solid var(--line-2);font-size:11.5px;color:var(--ink-2)}
.implbar strong{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.implbar .x{margin-left:auto;font-size:11px;color:var(--ink-3);text-decoration:underline;
  text-underline-offset:2px;background:none;border:0;cursor:pointer}

.impllegend{display:grid;grid-template-columns:auto 1fr;gap:5px 9px;align-items:center;
  margin:9px 0 4px;font-size:11px;color:var(--ink-3)}

@media (max-width:620px){
  .implbar{padding:6px 16px;font-size:11px}
  .implbar .note{display:none}
}

/* ==================================================================
   频道体系：Web 端只做目录、绑定与偏好，不呈现频道内的消息流
   ================================================================== */
.bindgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:16px}
.bindcard{border:1px solid var(--line);background:var(--panel);border-radius:var(--r);padding:16px;
  display:flex;flex-direction:column;gap:10px}
.bindcard .bhd{display:flex;gap:11px;align-items:flex-start}
.pmark{flex:0 0 auto;width:34px;height:34px;border-radius:7px;border:1px solid var(--line-2);
  display:grid;place-items:center;font-family:var(--mono);font-size:11px;font-weight:600;color:var(--ink-2)}
.bindcard h4{font-family:var(--display);font-size:16px;font-weight:700;letter-spacing:-.01em}
.bstate{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;letter-spacing:.05em;
  margin-top:3px}
.bstate::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--line-2)}
.bstate.s-linked{color:var(--ink)} .bstate.s-linked::before{background:var(--ink)}
.bstate.s-pending{color:var(--gold)} .bstate.s-pending::before{background:var(--gold-1)}
.bstate.s-none{color:var(--ink-3)}
.bstate.s-blocked{color:var(--ink-3)} .bstate.s-blocked::before{background:transparent;border:1px dotted var(--line-2)}
.bindcard[data-bind="ln"]{opacity:.72}
.bhow{font-size:12.5px;color:var(--ink-2);line-height:1.62}
.bmeta{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);padding-top:9px;border-top:1px dotted var(--line)}
.bindcard .acts{margin-top:auto;padding-top:2px}

.chgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:16px}
.chcard{border:1px solid var(--line);background:var(--panel);border-radius:var(--r);padding:16px;
  display:flex;flex-direction:column;gap:9px}
.chcard .chhd{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.chcard h4{font-family:var(--display);font-size:16px;font-weight:700;letter-spacing:-.01em}
.chtier{flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;
  letter-spacing:.07em;padding:2px 7px;border-radius:2px}
.chtier.free{color:var(--ink-2);background:var(--panel-2);border:1px solid var(--line)}
.chtier.paid{color:var(--gold);background:var(--gold-soft);border:1px solid var(--gold-line)}
.chmeta{display:flex;gap:0;flex-wrap:wrap;font-family:var(--mono);font-size:10.5px;color:var(--ink-3)}
.chmeta span{padding:0 9px;border-left:1px solid var(--line)}
.chmeta span:first-child{padding-left:0;border-left:0}
.chcad{font-size:12.5px;color:var(--ink-2);line-height:1.6}
.chfoot{display:flex;align-items:center;justify-content:space-between;gap:8px;
  font-family:var(--mono);font-size:10.5px;color:var(--ink-3);padding-top:9px;border-top:1px dotted var(--line)}
.chjoined{display:inline-flex;align-items:center;gap:4px;color:var(--ink);font-weight:600}
.chcard .acts{margin-top:auto}

.prefbox{border:1px solid var(--line);background:var(--panel);border-radius:var(--r);overflow:hidden}
.prefrow{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 17px;
  border-bottom:1px solid var(--line)}
.prefrow:last-child{border-bottom:0}
.prefrow h4{font-size:14px;font-weight:600}
.prefrow p{font-size:12.5px;color:var(--ink-3);margin-top:3px;max-width:46ch}
.prefrow .seg{flex:0 0 auto}

@media (max-width:620px){
  .prefrow{flex-direction:column;align-items:flex-start;gap:11px}
  .prefrow .seg{width:100%;flex-wrap:wrap}
  .chmeta span{padding:0 7px}
}

/* ==================================================================
   KOL 雷达：授权门 + 聚合分布。私域来源的输出策略决定呈现深度。
   ================================================================== */
.gatebox{border:1px solid var(--line-2);background:var(--panel);border-radius:var(--r);padding:20px 22px}
.gatebox .ghd{display:flex;align-items:center;gap:11px;margin-bottom:11px}
.gatebox .ghd .ic{color:var(--ink-3)}
.gatebox h3{font-family:var(--display);font-size:19px;font-weight:700;letter-spacing:-.015em}
.gatebox > p{font-size:13.5px;color:var(--ink-2);line-height:1.68;max-width:78ch}
.gtiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(196px,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:3px;overflow:hidden;margin:16px 0 13px}
.gtier{background:var(--panel-2);padding:11px 13px}
.gtier b{display:block;font-size:12.5px;color:var(--ink);margin-bottom:4px}
.gtier span{font-size:11.5px;color:var(--ink-3);line-height:1.55;display:block}
.gtier em{display:block;font-style:normal;font-family:var(--mono);font-size:10.5px;color:var(--ink-2);margin-top:5px}
.gtier:first-child{background:var(--panel)}
.gtier:first-child b{color:var(--accent)}
.gnote{font-size:12px;color:var(--ink-3);line-height:1.6;padding-top:11px;border-top:1px dotted var(--line);max-width:78ch}

.hbars{display:grid;gap:7px}
.hbar{display:grid;grid-template-columns:96px minmax(0,1fr) 84px;gap:12px;align-items:center}
.hbar .hl{font-size:12.5px;color:var(--ink-2)}
.hbar .ht{height:14px;background:var(--sunk);border-radius:2px;overflow:hidden}
.hbar .ht i{display:block;height:100%;background:var(--data);border-radius:2px}
.hbar.muted .ht i{background:var(--line-2)}
.hbar.muted .hl,.hbar.muted .hn{color:var(--ink-3)}
.hbar .hn{font-family:var(--mono);font-size:12px;font-variant-numeric:tabular-nums;text-align:right;color:var(--ink)}
.hbar .hn small{font-family:var(--ui);font-size:10.5px;color:var(--ink-3);margin-left:6px}

.cols2{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:start}
.evbox{border:1px solid var(--line);background:var(--panel);border-radius:var(--r);padding:18px}
.evbig{font-family:var(--mono);font-size:44px;font-weight:600;letter-spacing:-.04em;line-height:1;color:var(--ink-3)}
.evbig small{font-family:var(--ui);font-size:16px;margin-left:2px}
.evlab{font-size:12.5px;color:var(--ink-2);margin-top:7px;font-weight:600}
.evbox p{font-size:12.5px;color:var(--ink-3);line-height:1.65;margin-top:10px}

.orgbox{display:grid;gap:6px;border:1px solid var(--line);background:var(--panel);border-radius:var(--r);padding:16px}
.orgrow{display:grid;grid-template-columns:132px minmax(0,1fr) 40px;gap:12px;align-items:center}
.orgrow .on{font-family:var(--mono);font-size:12px;color:var(--ink-2)}
.orgrow .ot{height:10px;background:var(--sunk);border-radius:2px;overflow:hidden}
.orgrow .ot i{display:block;height:100%;background:var(--spectrum-read);border-radius:2px}
.orgrow .oc{font-family:var(--mono);font-size:12px;text-align:right;font-variant-numeric:tabular-nums}

@media (max-width:980px){ .cols2{grid-template-columns:1fr;gap:24px} }
@media (max-width:620px){
  .hbar{grid-template-columns:76px minmax(0,1fr) 70px;gap:8px}
  .hbar .hl{font-size:11.5px}
  .orgrow{grid-template-columns:96px minmax(0,1fr) 34px;gap:8px}
  .gatebox{padding:16px}
}
.gatebox[data-level="meta"],.gatebox[data-level="derived"]{border-color:var(--line);background:var(--panel-2)}
.gatebox[data-level="meta"] .gtiers,.gatebox[data-level="derived"] .gtiers{display:none}
.gatebox[data-level="meta"] .ghd .ic,.gatebox[data-level="derived"] .ghd .ic{color:var(--ink-2)}

/* 数据首屏 · 跨市场
   两个对象回答两件事：并排的读数回答「三个市场现在在哪」，区间条回答「哪条离常态最远」。
   区间条用结构层的 --data，不用方向层的涨跌色：它标的是位置，不是判断。 */
.xm{margin-bottom:34px}
.xmwrap{border:1px solid var(--line);background:var(--panel);border-radius:var(--r);overflow:hidden}
.xmhead,.xmline{display:grid;grid-template-columns:132px repeat(3,minmax(0,1fr));gap:14px;padding:12px 15px}
.xmhead{background:var(--panel-2);border-bottom:1px solid var(--line);
  font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);font-weight:700}
.xmline{border-bottom:1px solid var(--line)}
.xmline:last-child{border-bottom:0}
.xmq{font-size:12px;color:var(--ink-2);line-height:1.5}
.xmq .term{font-size:12px}
.xmc{display:flex;flex-direction:column;gap:4px;min-width:0}
.xmc b{font-family:var(--mono);font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.2}
.xmc b small{font-family:var(--ui);font-size:10px;color:var(--ink-3);font-weight:400;margin-left:2px}
.xmc b.none{font-family:var(--ui);font-size:12px;font-weight:600;color:var(--ink-3)}
.xmc b.date{font-size:14px;color:var(--ink-2)}
.xmc span{font-size:10.5px;color:var(--ink-3);line-height:1.5}
.xmc .term{font-size:10.5px}
.xmc .dir{font-style:normal;font-size:10.5px}
.xmline.next{background:var(--panel-2)}
.xmcalc{font-family:var(--ui);font-size:8.5px;font-weight:700;color:var(--data);
  border:1px solid var(--data);border-radius:2px;padding:0 2.5px;margin-left:4px;
  vertical-align:super;line-height:1.5}
.xmleg{margin:10px 0 0;font-size:11.5px;color:var(--ink-3)}
.xmleg .xmcalc{vertical-align:baseline;margin:0 3px 0 0}

.xmbars{border:1px solid var(--line);background:var(--panel);border-radius:var(--r);overflow:hidden}
.xmrow{display:grid;grid-template-columns:196px 82px minmax(0,470px) 40px;gap:14px;
  justify-content:start;align-items:center;padding:11px 15px;border-bottom:1px solid var(--line)}
.xmrow:last-child{border-bottom:0}
.xmk{font-size:12px;color:var(--ink-2);min-width:0}
.xmk .term{font-size:12px}
.xmv{font-family:var(--mono);font-size:14px;font-variant-numeric:tabular-nums;text-align:right}
.xmv small{font-family:var(--ui);font-size:10px;color:var(--ink-3);margin-left:2px}
.xmt{display:flex;align-items:center;gap:10px;min-width:0}
.xmlo,.xmhi{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);
  font-variant-numeric:tabular-nums;flex:none}
.xmtrack{position:relative;flex:1;min-width:40px;height:7px;background:var(--sunk);border-radius:4px}
/* 中点刻度：给眼睛一个参照，位置高低不用读数字也看得出来 */
.xmtrack::after{content:"";position:absolute;left:50%;top:1px;width:1px;height:5px;background:var(--line-2)}
.xmtrack i{position:absolute;top:-4px;width:3px;height:15px;background:var(--data);
  border-radius:1.5px;transform:translateX(-50%)}
.xmp{font-family:var(--mono);font-size:11.5px;color:var(--ink-3);text-align:right;
  font-variant-numeric:tabular-nums}
.slug.xmboards{margin-top:34px}
@media(max-width:760px){
  /* 窄屏横向滚动比压字好，但问题一列必须钉住，否则滚到第三个市场就不知道在比什么 */
  .xmwrap{overflow-x:auto}
  .xmhead,.xmline{min-width:500px;gap:12px;padding:11px 13px;grid-template-columns:104px repeat(3,minmax(0,1fr))}
  .xmq,.xmhead>div:first-child{position:sticky;left:0;z-index:1;
    padding-left:13px;margin-left:-13px;box-shadow:1px 0 0 var(--line)}
  .xmline .xmq{background:var(--panel)}
  .xmline.next .xmq,.xmhead>div:first-child{background:var(--panel-2)}
  .xmrow{grid-template-columns:minmax(0,1fr) 56px;grid-template-areas:"k v" "t p";
    gap:9px 10px;padding:12px 13px}
  .xmk{grid-area:k}.xmv{grid-area:v}.xmt{grid-area:t}.xmp{grid-area:p}
}

/* 衍生品结构表：持仓量条 + 以 1.0 为中轴的多空比 */
.dtable{border:1px solid var(--line);background:var(--panel);border-radius:var(--r);overflow:hidden}
.dhead,.drow{display:grid;grid-template-columns:104px 132px repeat(3,minmax(0,1fr)) 92px;
  gap:14px;align-items:center;padding:10px 15px}
.dhead{background:var(--panel-2);border-bottom:1px solid var(--line);
  font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);font-weight:700}
.dhead .term{border-bottom-color:var(--line-2);font-size:10px;letter-spacing:.09em;text-transform:uppercase}
.drow{border-bottom:1px solid var(--line)}
.drow:last-child{border-bottom:0}
.dsym b{font-family:var(--mono);font-size:13px;font-weight:600;display:block}
.dsym span{font-size:10px;color:var(--ink-3)}
.doi{position:relative;height:16px;background:var(--sunk);border-radius:2px;overflow:hidden}
.doi i{position:absolute;top:0;bottom:0;left:0;background:var(--data);opacity:.55}
.doi span{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;
  justify-content:flex-end;padding-right:6px;font-family:var(--mono);font-size:11px;font-variant-numeric:tabular-nums}
.drat{display:flex;align-items:center;gap:8px}
.drat .t{position:relative;flex:1;min-width:0;height:16px;background:var(--sunk);border-radius:2px}
.drat .t::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--line-2)}
.drat i{position:absolute;top:2px;bottom:2px;border-radius:1px}
.drat i.up{background:var(--up)} .drat i.down{background:var(--down)}
.drat b{flex:0 0 auto;width:34px;text-align:right;font-family:var(--mono);font-size:11px;
  font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink-2)}
.dfr{font-family:var(--mono);font-size:11.5px;font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
.dfr.up{color:var(--up)} .dfr.down{color:var(--down)} .dfr.flat{color:var(--ink-3)}

@media (max-width:980px){
  .dhead,.drow{grid-template-columns:82px 96px repeat(3,minmax(0,1fr)) 76px;gap:9px;padding:9px 11px}
}
@media (max-width:620px){
  .dtable{overflow-x:auto}
  .dhead,.drow{min-width:620px}
}

/* ==================================================================
   洪流治理：构成条、聚合行、片段行、权利占位行
   真实构成：24 小时 6,480 条，其中 66% 只有正文片段、没有标题
   ================================================================== */
.compo{border:1px solid var(--line);background:var(--panel);border-radius:var(--r);
  padding:13px 15px 11px;margin:14px 0 4px}
.compo .ch{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:9px}
.compo .ch strong{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:-.01em}
.compo .ch span{font-size:11.5px;color:var(--ink-3)}
.cbar{display:flex;height:8px;border-radius:2px;overflow:hidden;background:var(--sunk)}
.cbar i{display:block;height:100%}
.cbar .c1,.cleg b.c1{background:var(--fact)}
.cbar .c2,.cleg b.c2{background:var(--spectrum-read)}
.cbar .c3,.cleg b.c3{background:var(--line-2)}
.cleg{display:flex;gap:16px;flex-wrap:wrap;margin-top:8px;font-family:var(--mono);font-size:10.5px;color:var(--ink-3)}
.cleg span{display:inline-flex;align-items:center;gap:5px}
.cleg b{width:8px;height:8px;border-radius:2px;display:inline-block}

/* 同题多源聚合 */
.cluster{margin-top:9px}
.cluster summary{display:inline-flex;align-items:center;gap:6px;cursor:pointer;list-style:none;
  font-size:12px;color:var(--ink-2);border:1px solid var(--line);background:var(--panel);
  border-radius:3px;padding:3px 9px}
.cluster summary::-webkit-details-marker{display:none}
.cluster summary:hover{border-color:var(--line-2);color:var(--ink)}
.cluster[open] summary{background:var(--panel-2)}
.cluster .cl{margin-top:9px;border-left:2px solid var(--line);padding-left:12px;display:grid;gap:7px}
.clrow{display:grid;grid-template-columns:62px 82px minmax(0,1fr);gap:10px;align-items:baseline;font-size:12px}
.clrow .ct,.clrow .cs{font-family:var(--mono);font-size:10.5px;color:var(--ink-3)}
.clrow .cx{color:var(--ink-2);line-height:1.5}
.clnote{font-size:11px;color:var(--ink-3);margin-top:9px;line-height:1.55}

/* 片段行：无标题条目不给假标题 */
.row.brief .frag,.row.gated .frag{font-size:13.5px;color:var(--ink-2);line-height:1.62;margin-top:2px}
.row.brief .meta .form,.row.gated .meta .form{color:var(--ink-3)}
.row.brief{opacity:.92}
.row.gated{opacity:.66}
.row.gated .frag{color:var(--ink-3)}
:root[data-density="compact"] .row.brief .frag{display:-webkit-box;-webkit-line-clamp:1;
  -webkit-box-orient:vertical;overflow:hidden}

@media (max-width:620px){
  .clrow{grid-template-columns:56px minmax(0,1fr);gap:4px 9px}
  .clrow .cx{grid-column:1/-1}
  .cleg{gap:10px}
}

/* ==================================================================
   真图：卡片 sparkline / 前值→现值双点 / 收益率曲线 / 名义构成分解
   ================================================================== */
.chartwrap{margin:2px 0 1px}
.dcard .spark{height:32px}
.dcard.flat{justify-content:flex-start}

.dumb{display:block;width:100%;height:32px;overflow:visible}
.dumb .tr{stroke:var(--line);stroke-width:1.5;vector-effect:non-scaling-stroke}
.dumb .mv{stroke-width:2.5;vector-effect:non-scaling-stroke}
.dumb .p{fill:var(--panel);stroke:var(--line-2);stroke-width:1.5;vector-effect:non-scaling-stroke}
.dumb .c{stroke:none}
.dumb.up .mv{stroke:var(--up)} .dumb.up .c{fill:var(--up)}
.dumb.down .mv{stroke:var(--down)} .dumb.down .c{fill:var(--down)}
.dumb.flat .mv{stroke:var(--line-2)} .dumb.flat .c{fill:var(--ink-3)}

.curvebox{border:1px solid var(--line);background:var(--panel);border-radius:var(--r);
  padding:14px 16px 12px;margin-bottom:22px}
.curve{display:block;width:100%;height:auto;max-height:240px}
.curve .g{stroke:var(--line);stroke-width:1;fill:none;vector-effect:non-scaling-stroke}
.curve .yl{fill:var(--ink-3);font-family:var(--mono);font-size:10px;text-anchor:end}
.curve .xl{fill:var(--ink-3);font-family:var(--ui);font-size:11px;text-anchor:middle}
.curve .vl{fill:var(--ink);font-family:var(--mono);font-size:11px;font-weight:600;text-anchor:middle}
.curve .cur{fill:none !important;stroke:var(--fact);stroke-width:2.2;stroke-linejoin:round;
  stroke-linecap:round;vector-effect:non-scaling-stroke}
.curve .old{fill:none !important;stroke:var(--ink-3);stroke-width:1.6;stroke-dasharray:5 4;
  stroke-linejoin:round;vector-effect:non-scaling-stroke}
.curve .dc{fill:var(--fact);stroke:none}
.curve .do{fill:var(--ink-3);stroke:none;opacity:.7}
.curvelegend{display:flex;align-items:center;gap:16px;margin-top:6px;font-size:11.5px;color:var(--ink-3)}
.curvelegend span{display:inline-flex;align-items:center;gap:6px}
.curvelegend .lc::before{content:"";width:16px;height:2.5px;background:var(--fact);border-radius:2px}
.curvelegend .lo::before{content:"";width:16px;height:0;border-top:2px dashed var(--ink-3);opacity:.8}

.decomp{border:1px solid var(--line);background:var(--panel);border-radius:var(--r);padding:16px}
.dbar{display:flex;height:40px;border-radius:3px;overflow:hidden}
.dbar i{display:flex;align-items:center;padding:0 11px;font-style:normal;min-width:0}
.dbar i span{font-family:var(--mono);font-size:11.5px;font-weight:600;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.dbar .real{background:var(--data);color:#fff}
.dbar .be{background:var(--spectrum-read);color:#fff}
.dsum{display:flex;align-items:baseline;gap:9px;margin-top:11px;padding-top:10px;border-top:1px dotted var(--line)}
.dsum b{font-family:var(--mono);font-size:24px;font-weight:600;letter-spacing:-.03em}
.dsum span{font-size:12.5px;color:var(--ink-3)}

@media (max-width:620px){
  .dbar{height:34px}
  .dbar i{padding:0 7px}
  .dbar i span{font-size:10px}
  .curve{max-height:200px}
}

/* ==================================================================
   会员版面：深色棱镜 hero ＋ 权益对照预览
   hero 固定深色（两个主题下一致），是这一页唯一的重量级视觉
   ================================================================== */
.mhero{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:28px;align-items:center;
  background:#14161c;border-radius:6px;overflow:hidden;padding:38px 34px;margin:6px 0 0;
  box-shadow:0 30px 70px -40px rgba(0,0,0,.7)}
.mhero::before{content:"";position:absolute;inset:0;
  background:radial-gradient(120% 120% at 78% 72%,rgba(212,172,87,.16),transparent 58%);pointer-events:none}
.mh-copy{position:relative;z-index:1;min-width:0}
.mh-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;font-weight:700;color:#d4ac57}
.mh-eyebrow::before{content:"";width:18px;height:1px;background:linear-gradient(90deg,transparent,#d4ac57)}
.mhero h1{font-family:var(--display);font-size:clamp(28px,3.4vw,42px);line-height:1.14;
  letter-spacing:-.03em;font-weight:700;color:#f2f4f7;margin-top:14px;text-wrap:balance}
.mhero h1 b{background:linear-gradient(96deg,#d4ac57,#f7e6b4 46%,#d4ac57);
  -webkit-background-clip:text;background-clip:text;color:transparent;font-weight:700}
.mhero p{font-size:14px;line-height:1.72;color:#aeb6c2;margin-top:16px;max-width:52ch}
.mhero p b{color:#e8edf3;font-weight:600}
.mh-acts{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:22px}
.mh-cta{display:inline-flex;align-items:center;gap:8px;text-decoration:none;
  background:linear-gradient(96deg,#d4ac57,#f7e6b4);color:#31250a;font-weight:700;font-size:14px;
  padding:11px 20px;border-radius:4px}
.mh-cta:hover{filter:brightness(1.06)}
.mh-note{font-size:11.5px;color:#8b94a1}
.mh-art{position:relative;z-index:1;min-width:0}
.prism{display:block;width:100%;height:auto}
.prism .glass{fill:rgba(255,255,255,.07);stroke:rgba(255,255,255,.3);stroke-width:1.4}
.prism .fan path{stroke-linecap:round;opacity:.92}
.prism .l{fill:#8b94a1;font-family:var(--ui);font-size:12px;text-anchor:end}
.prism .l.g{fill:#f7e6b4;font-weight:700}

.mstats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line);border-top:0;border-radius:0 0 6px 6px;overflow:hidden;margin-bottom:8px}
.mstats > div{background:var(--panel);padding:14px 16px}
.mstats b{display:block;font-family:var(--mono);font-size:22px;font-weight:600;letter-spacing:-.03em}
.mstats span{display:block;font-size:11.5px;color:var(--ink-3);margin-top:3px;line-height:1.5}

/* 权益对照 */
.bgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.bcard{border:1px solid var(--line);background:var(--panel);border-radius:var(--r);overflow:hidden}
.bhead{padding:13px 16px;border-bottom:1px solid var(--line);background:var(--panel-2)}
.bhead h4{display:flex;align-items:center;gap:8px;font-size:14.5px;font-weight:600}
.bprev{display:grid;grid-template-columns:1fr 1.1fr}
.bside{padding:14px 16px;min-width:0}
.bside.free{background:var(--panel)}
.bside.paid{border-left:1px solid var(--gold-line);background:var(--gold-soft)}
.bl{display:inline-block;font-size:10px;letter-spacing:.1em;font-weight:700;color:var(--ink-3);margin-bottom:9px}
.bside.paid .bl{color:var(--gold)}
.bmini b{display:block;font-size:13px;font-weight:600;line-height:1.5}
.bmini i{display:block;font-family:var(--mono);font-size:19px;font-style:normal;font-weight:600;margin-top:5px}
.bmini p{font-size:12px;color:var(--ink-2);line-height:1.62;margin-top:7px}
.bmini small{display:block;font-family:var(--mono);font-size:10px;color:var(--ink-3);margin-top:8px}
.bspark{display:block;width:100%;height:34px;margin-top:8px}
.bspark .ln{fill:none;stroke:var(--ink-3);stroke-width:1.6;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.bspark.gold .ln{stroke:var(--gold-1);stroke-width:2}
.bchips{display:flex;gap:5px;flex-wrap:wrap;margin-top:9px}
.bchips span{font-size:11px;color:var(--ink-2);border:1px solid var(--line);border-radius:99px;padding:2px 9px}
.bpush{display:flex;gap:9px;align-items:flex-start;margin-top:9px;padding:9px 10px;
  border:1px solid var(--gold-line);background:var(--gold-soft);border-radius:4px}
.bpush i{color:var(--gold);line-height:0;padding-top:2px}
.bpush b{font-size:12px;font-weight:600;display:block}
.bpush span{font-family:var(--mono);font-size:10px;color:var(--ink-3);display:block;margin-top:2px}

@media (max-width:980px){
  .mhero{grid-template-columns:1fr;gap:22px;padding:28px 22px}
  .mh-art{max-width:460px}
  .mstats{grid-template-columns:1fr 1fr}
  .bgrid{grid-template-columns:1fr}
}
@media (max-width:620px){
  .mhero{padding:22px 17px}
  .mhero p{font-size:13.5px}
  .mstats{grid-template-columns:1fr 1fr}
  .bprev{grid-template-columns:1fr}
  .bside.paid{border-left:0;border-top:2px solid var(--gold-line)}
}
.bigchart svg.bigchart,svg.bigchart{display:block;width:100%;height:auto}
svg.bigchart .g{stroke:var(--line);stroke-width:1;fill:none;vector-effect:non-scaling-stroke}
svg.bigchart .yl{fill:var(--ink-3);font-family:var(--mono);font-size:10px;text-anchor:end}
svg.bigchart .xl{fill:var(--ink-3);font-family:var(--mono);font-size:10px;text-anchor:middle}
svg.bigchart .ln{fill:none;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}

/* ==================================================================
   方案卡 · 市场模块 · 价格条 · 对照表
   ================================================================== */
.plan .tagline{font-size:12.5px;color:var(--ink-3);margin-top:4px;line-height:1.5}
.plan .price{display:flex;align-items:baseline;gap:2px;margin-top:12px}
.plan .pv{font-family:var(--mono);font-size:34px;font-weight:600;letter-spacing:-.04em;line-height:1}
.plan .price small{font-family:var(--ui);font-size:12px;color:var(--ink-3)}
.plan .permo{font-family:var(--mono);font-size:11px;color:var(--ink-3);margin-top:6px}
.pdelta{display:flex;gap:7px;align-items:flex-start;font-size:12px;line-height:1.55;
  color:var(--ink-2);background:var(--panel-2);border-radius:4px;padding:9px 11px;margin-top:13px}
.pdelta .ic{color:var(--ink-3);flex:0 0 auto;margin-top:2px}
.plan.on .pdelta{background:var(--gold-soft);border:1px solid var(--gold-line)}
.plan.on .pdelta .ic{color:var(--gold)}
.plan ul{display:grid;gap:8px;margin:14px 0 0;padding:0;list-style:none}
.plan ul li{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.55;color:var(--ink-2)}
.plan ul li .ic{flex:0 0 auto;margin-top:2px;color:var(--ink-3)}
.plan.on ul li .ic{color:var(--gold-1)}

/* 市场模块 */
.modgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(266px,1fr));gap:14px}
.modcard{border:1px solid var(--line);background:var(--panel);border-radius:var(--r);padding:15px;
  display:flex;flex-direction:column;gap:8px}
.modcard.off{opacity:.55}
.modcard .mhd{display:flex;align-items:flex-start;justify-content:space-between;gap:9px}
.modcard h4{font-size:14.5px;font-weight:600;line-height:1.4}
.mstate{flex:0 0 auto;font-size:10px;color:var(--ink-3);border:1px dashed var(--line-2);
  border-radius:2px;padding:1px 6px;line-height:1.7}
.modcard p{font-size:12px;color:var(--ink-3);line-height:1.6}
.mfoot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;
  padding-top:10px;border-top:1px dotted var(--line)}
.mp{font-family:var(--mono);font-size:13px;font-weight:600}
.mp small{font-family:var(--ui);font-size:10.5px;color:var(--ink-3);font-weight:400}
.modcard .act[aria-pressed="true"]{background:var(--gold-soft);border-color:var(--gold-line);color:var(--gold)}
.modcard[data-selected] {border-color:var(--gold-line);box-shadow:0 0 0 1px var(--gold-line) inset}

/* 价格条 */
.pricebar{position:sticky;bottom:12px;z-index:30;display:flex;align-items:center;justify-content:space-between;
  gap:18px;flex-wrap:wrap;margin-top:22px;padding:14px 18px;border-radius:6px;
  background:#14161c;box-shadow:0 18px 44px -24px rgba(0,0,0,.7)}
.pb-left{min-width:0}
.pb-k{display:block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#8b94a1}
.pb-left strong{display:block;font-size:13.5px;color:#e8edf3;margin-top:3px;font-weight:600}
.pb-right{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.pb-sum{font-family:var(--mono);font-size:26px;font-weight:600;letter-spacing:-.03em;
  background:linear-gradient(96deg,#d4ac57,#f7e6b4 50%,#d4ac57);-webkit-background-clip:text;
  background-clip:text;color:transparent}
.pb-unit{font-size:12px;color:#8b94a1}
.pricebar .cta{margin-left:6px;background:linear-gradient(96deg,#d4ac57,#f7e6b4);color:#31250a;
  border-color:transparent;font-weight:700}

/* 对照表 */
.cmptools{margin:0 0 12px}
.cmp2 th:first-child{width:38%}
.cmp2 .cgrp th{background:var(--panel-2);font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;
  color:var(--ink-3);font-weight:700;padding-top:13px}
.cmp2 tr[data-same="1"] th,.cmp2 tr[data-same="1"] td{color:var(--ink-3)}
.cmp2 td.hl{color:var(--ink);font-weight:600}
.cmp2 thead th.core{color:var(--gold)}
.cmp2 tbody tr:not(.cgrp):hover td,.cmp2 tbody tr:not(.cgrp):hover th{background:var(--panel-2)}
.cy{color:var(--gold);line-height:0;display:inline-block}
.cn{color:var(--line-2)}
.cmp2 td:nth-child(3){background:linear-gradient(var(--gold-soft),var(--gold-soft))}
:root[data-theme="dark"] .cmp2 td:nth-child(3),
:root:not([data-theme="light"]) .cmp2 td:nth-child(3){background:rgba(212,172,87,.06)}

@media (max-width:980px){
  .pricebar{position:static}
  .cmp2 th:first-child{width:auto}
}
@media (max-width:620px){
  .plan .pv{font-size:28px}
  .modgrid{grid-template-columns:1fr}
  .pb-right{width:100%;justify-content:space-between}
  .pricebar .cta{margin-left:0;width:100%;justify-content:center}
}

/* ==================================================================
   会员中心 / 到期提醒 / 退款申请
   ================================================================== */
.mybox{border:1px solid var(--line);background:var(--panel);border-radius:var(--r);overflow:hidden}
.myrow{display:grid;grid-template-columns:minmax(0,1.5fr) auto 92px auto;gap:14px;align-items:center;
  padding:12px 15px;border-bottom:1px solid var(--line)}
.myrow:last-child{border-bottom:0}
.myrow .t{font-size:13.5px;display:inline-flex;align-items:center;gap:7px;min-width:0}
.myrow .t .ic{color:var(--ink-3);flex:0 0 auto}
.myrow .s{font-size:11px;color:var(--ink-3);white-space:nowrap}
.myrow .s.ok{color:var(--ink);font-weight:600}
.myrow .p{font-family:var(--mono);font-size:12px;color:var(--ink-2);text-align:right;font-variant-numeric:tabular-nums}

.expmark{display:inline-flex;color:var(--ink-3);line-height:0;margin-bottom:4px}
.statecard.ok .expmark{color:var(--up)}
.expwrap[data-exp="over"] .expmark,.refcase[data-refcase="late"] .expmark{color:var(--accent)}
.expmeta{font-family:var(--mono);font-size:11.5px;color:var(--ink-3);line-height:1.6}
.statecard h3{font-family:var(--display);font-size:21px;font-weight:700;letter-spacing:-.02em}
.statecard p{font-size:13.5px;color:var(--ink-2);line-height:1.68;max-width:64ch}

.mspec{display:block;font-family:var(--mono);font-size:10.5px;color:var(--ink-3);margin-top:5px}

@media (max-width:620px){
  .myrow{grid-template-columns:1fr auto;gap:6px 10px;padding:11px 13px}
  .myrow .p{grid-column:1;text-align:left}
  .myrow .act{grid-column:2;justify-self:end}
}

/* ==================================================================
   报告栏目归档：真实的四个付费栏目与它们的期号
   ================================================================== */
.proggrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.progcard{border:1px solid var(--line);background:var(--panel);border-radius:var(--r);padding:16px;
  display:flex;flex-direction:column;gap:9px}
.progcard .phd{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.progcard h4{font-family:var(--display);font-size:17px;font-weight:700;letter-spacing:-.012em}
.pcad{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);white-space:nowrap}
.pnote{font-size:12.5px;color:var(--ink-3);line-height:1.6}
.isslist{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:3px;overflow:hidden}
.issrow{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:10px;align-items:baseline;
  background:var(--panel);padding:8px 10px;font-size:12.5px}
.issrow .d{font-family:var(--mono);font-size:10.5px;color:var(--ink-3)}
.issrow .t{color:var(--ink-2);line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.issrow .k{font-size:10px;color:var(--ink-3);white-space:nowrap}
.issrow.empty2{grid-template-columns:1fr;color:var(--ink-3);font-size:12px}
.pfoot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;
  padding-top:9px;border-top:1px dotted var(--line);font-family:var(--mono);font-size:11px;color:var(--ink-3)}

.partgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(218px,1fr));gap:14px}
.partcard{border:1px solid var(--line);background:var(--panel);border-radius:var(--r);padding:15px;position:relative}
.partcard .pn{position:absolute;top:13px;right:14px;font-family:var(--mono);font-size:11px;color:var(--line-2);font-weight:600}
.partcard h4{display:flex;align-items:center;gap:7px;font-size:14px;font-weight:600}
.partcard h4 .ic{color:var(--ink-3)}
.partcard p{font-size:12.5px;color:var(--ink-3);line-height:1.62;margin-top:7px}

@media (max-width:980px){ .proggrid{grid-template-columns:1fr} }
@media (max-width:620px){ .issrow{grid-template-columns:40px minmax(0,1fr)} .issrow .k{display:none} }

/* ==================================================================
   跨内容关系：主题分组、单主题的全部内容、关系对象目录
   ================================================================== */
.tgroup{margin-bottom:22px}
.tagwall button .n{margin-left:6px}
.tagwall button[data-topicgo]{cursor:pointer}

.relhead{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-bottom:16px}
.relhead > div{background:var(--panel);padding:13px 15px}
.relhead b{display:block;font-family:var(--mono);font-size:22px;font-weight:600;letter-spacing:-.03em}
.relhead span{display:block;font-size:11.5px;color:var(--ink-3);margin-top:2px}

.relbox{border:1px solid var(--line);background:var(--panel);border-radius:var(--r);overflow:hidden}
.relrow{display:grid;grid-template-columns:46px 52px minmax(0,1fr) 78px;gap:12px;align-items:baseline;
  padding:11px 15px;border-bottom:1px solid var(--line)}
.relrow:last-child{border-bottom:0}
.relrow:hover{background:var(--panel-2)}
.relrow .rd{font-family:var(--mono);font-size:10.5px;color:var(--ink-3)}
.relrow .rk{font-size:10.5px;color:var(--ink-3);white-space:nowrap}
.relrow .rt{text-align:left;font-size:13.5px;line-height:1.5;color:var(--ink);min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.relrow .rt:hover{color:var(--accent)}
.relrow .rs{font-size:10.5px;color:var(--ink-3);text-align:right;white-space:nowrap}

.relgap{border:1px solid var(--line-2);border-left:3px solid var(--accent);background:var(--panel);
  border-radius:0 var(--r) var(--r) 0;padding:14px 16px;margin-top:16px}
.relgap h4{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600}
.relgap h4 .ic{color:var(--ink-3)}
.relgap ul{margin:9px 0 0;padding-left:18px;display:grid;gap:5px}
.relgap li,.relgap p{font-size:12.5px;color:var(--ink-2);line-height:1.65}
.relgap p{margin-top:8px;max-width:72ch}

.objcard h4 em{font-style:normal;font-family:var(--mono);font-size:11px;color:var(--ink-3);margin-left:7px}
.objcard .bind{display:block;font-family:var(--mono);font-size:10px;color:var(--ink-3);line-height:1.6;
  background:var(--panel-2);border-radius:3px;padding:6px 8px;word-break:break-all}
.objn{font-family:var(--mono);font-size:11px;color:var(--ink-2)}
.objn.off{color:var(--ink-3)}
.objcard.off{opacity:.62}
.objwhy{font-size:12px;color:var(--ink-3);line-height:1.6;margin-top:2px}

@media (max-width:620px){
  .relhead{grid-template-columns:1fr 1fr}
  .relrow{grid-template-columns:46px minmax(0,1fr);gap:4px 10px}
  .relrow .rk,.relrow .rs{font-size:10px}
  .relrow .rt{grid-column:1/-1;white-space:normal}
}
.relrow .rt .loc{display:inline-block;font-family:var(--mono);font-size:9.5px;font-weight:700;
  letter-spacing:.06em;color:var(--ink-3);border:1px solid var(--line-2);border-radius:2px;
  padding:0 4px;margin-right:7px;vertical-align:1px}

/* ── 报告 ↔ 数据序列：这条边的两个方向 ───────────────────────── */
.edgebox{border:1px solid var(--line);border-radius:10px;padding:16px 18px;background:var(--panel-2)}
.edgehead{display:flex;flex-wrap:wrap;gap:22px;padding-bottom:14px;border-bottom:1px solid var(--line-2)}
.edgehead>div{display:flex;flex-direction:column;gap:2px}
.edgehead b{font:600 21px/1 var(--mono);letter-spacing:-.01em;color:var(--gold)}
.edgehead span{font-size:11.5px;color:var(--ink-3)}
.edgehead .off b{color:var(--ink-3)}
.edgerule{margin:14px 0 0;font-size:12.5px;line-height:1.85;color:var(--ink-2)}
.edgerule b{color:var(--ink);font-weight:600}
.edgebars{display:grid;gap:5px;margin-top:14px}
.ebar{display:grid;grid-template-columns:158px minmax(0,1fr) auto;align-items:center;gap:10px}
.ebar code{font:11px/1 var(--mono);color:var(--ink-3);letter-spacing:.01em}
.ebar i{height:9px;border-radius:2px;background:var(--gold-line);display:block}
.ebar b{font:600 11.5px/1 var(--mono);color:var(--ink-2)}

.usedby{display:grid;gap:1px;background:var(--line-2);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.ubrow{display:grid;grid-template-columns:200px 1fr;gap:16px;background:var(--panel);padding:12px 14px;align-items:start}
.ubkey{display:flex;flex-direction:column;gap:3px}
.ubname{font-size:13px;font-weight:600;color:var(--ink);line-height:1.45}
.ubkey code{font:10.5px/1 var(--mono);color:var(--ink-3)}
.ubn{font:11px/1 var(--mono);color:var(--ink-3)}
.ublist{display:flex;flex-direction:column;gap:6px;align-items:start;min-width:0}
.ubt{background:none;border:0;padding:0;text-align:left;font-size:12.5px;line-height:1.6;color:var(--ink);cursor:pointer;display:flex;gap:9px;align-items:baseline}
.ubt:hover{color:var(--fact)}
.ubd{font:11px/1 var(--mono);color:var(--ink-3);flex:none}
.ubmore{font-size:11.5px;color:var(--ink-3)}
.appendix td.sx,.appendix th:last-child{font-size:11px;color:var(--ink-3);white-space:nowrap}
@media(max-width:720px){
  .ubrow{grid-template-columns:1fr;gap:8px}
  .ubkey{flex-direction:row;align-items:baseline;gap:8px;flex-wrap:wrap}
  .ebar{grid-template-columns:minmax(0,1fr) auto;gap:5px 10px}
  .ebar code{grid-column:1;grid-row:1;font-size:10px}
  .ebar b{grid-column:2;grid-row:1}
  .ebar i{grid-column:1/-1;grid-row:2}
  .appendix td.sx,.appendix th:last-child{white-space:normal}
}
.apxscroll{overflow-x:auto}
.mev.off{color:var(--ink-3);cursor:default}
.mev.off::before{background:var(--line-2)}
.sxgo{background:none;border:0;padding:0;display:inline-flex;align-items:center;gap:4px;color:var(--data);cursor:pointer;font:inherit}
.sxgo code{font:11px/1 var(--mono);color:inherit}
.sxgo:hover{color:var(--fact)}
.sxgo .ic{width:11px;height:11px}

/* ── 免费能用到什么程度：摊开来讲，不跟任何东西对照 ───────────── */
.freegrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:10px;overflow:hidden}
.fitem{background:var(--panel);padding:15px 16px;display:flex;gap:11px;align-items:flex-start;min-width:0}
.fitem .ic{color:var(--fact);flex:none;margin-top:2px;width:15px;height:15px}
.fitem b{display:block;font-size:13.5px;font-weight:600;line-height:1.5}
.fitem span{display:block;font-size:12px;color:var(--ink-2);line-height:1.6;margin-top:3px}
@media(max-width:900px){.freegrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.freegrid{grid-template-columns:1fr}}

/* ── 外观面板与页脚入口 ───────────────────────────────── */
#look-panel .prefrow{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:9px 0}
#look-panel .prefrow+.prefrow{border-top:1px solid var(--line)}
#look-panel .prefrow .pl{width:100%;font-size:11px;color:var(--ink-3)}
.quiet-times{display:flex;gap:16px;flex-wrap:wrap}
.quiet-times label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2)}
.quiet-times input{font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line-2);border-radius:var(--r);padding:8px;min-height:40px}
.quiet-error{font-size:12px;color:var(--ink);flex-basis:100%}
@media(max-width:360px){
  .shell-right{gap:4px}
  .shell-right .ctrl{padding-inline:8px}
}
footer.site .flink{background:none;border:0;padding:0;text-align:left;display:block;
  font-size:13px;line-height:2;color:var(--ink-2);cursor:pointer}
footer.site .flink:hover{color:var(--accent)}
.filterbar .axis.push{margin-left:auto}
.filterbar .livepush{margin-left:14px}
@media(max-width:900px){
  .filterbar .axis.push{margin-left:0}
  .filterbar .livepush{margin-left:0;width:100%}
}
.filterbar .axis.gapL{margin-left:10px}
@media(max-width:900px){.filterbar .axis.gapL{margin-left:0}}

/* ── 关系对象：到达页，不是浏览目的地 ─────────────────────── */
.crumb{display:flex;gap:7px;align-items:center;font-size:12px;color:var(--ink-3);margin-bottom:12px}
.crumb .link{font-size:12px}
.bindbox{border:1px solid var(--line);border-radius:10px;padding:14px 16px;background:var(--panel)}
.bindbox code{display:inline-block;font:11px/1.9 var(--mono);color:var(--data);
  border:1px solid var(--line);border-radius:3px;padding:1px 7px;margin:0 6px 6px 0}
.bindbox p{margin:6px 0 0;font-size:12.5px;line-height:1.8;color:var(--ink-2)}
.tagwall button.hasobj::after{content:"";width:5px;height:5px;border-radius:50%;background:var(--data);
  display:inline-block;margin-left:5px;vertical-align:middle}

/* ── 控制台：供给缺口（不是产品界面） ─────────────────────── */
.gaplist{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:6px;overflow:hidden}
.gaprow{display:grid;grid-template-columns:62px 1fr;gap:10px;background:var(--panel);padding:9px 11px;align-items:start}
.gaprow .gk{font-size:10px;letter-spacing:.06em;padding:2px 0;border-radius:3px;text-align:center;font-weight:700}
.gaprow.gsupply .gk{color:#8c1d18;background:var(--fact-soft)}
.gaprow.grights .gk{color:var(--gold);background:var(--gold-soft)}
.gaprow.gbuild .gk{color:var(--data);background:var(--data-soft)}
.gaprow b{display:block;font-size:12.5px;line-height:1.5}
.gaprow .gw{display:block;font-size:11.5px;color:var(--ink-2);line-height:1.6;margin-top:2px}
.gaprow .gn{display:block;font:10.5px/1.7 var(--mono);color:var(--ink-3);margin-top:3px}

/* ── EN 抽查页的英文外壳条 ────────────────────────────────── */
.enshell{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:10px 0 14px;margin-bottom:6px;
  border-bottom:1px solid var(--line)}
.enbrand{font:600 17px/1 var(--display);letter-spacing:-.01em}
.enbrand em{font-style:normal;color:var(--accent)}
.ennav{display:flex;gap:16px;font-size:12.5px;color:var(--ink-3)}
.ennav b{color:var(--ink);font-weight:600}
/* ── 月视图在窄屏横向滚动，不再把七列压成竖排 ─────────────── */
@media(max-width:700px){
  .monthwrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .monthwrap .monthgrid{min-width:560px}
}

/* ── KOL 雷达：按标的聚合，方向拆开 ───────────────────────── */
.sglist{display:grid;gap:1px;background:var(--line-2);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.sgrow{display:grid;grid-template-columns:62px minmax(0,1fr) 74px 82px 94px;gap:12px;align-items:center;
  background:var(--panel);padding:11px 14px}
.ssym{font:600 13px/1 var(--mono);color:var(--ink)}
.sbar{display:flex;height:10px;border-radius:2px;overflow:hidden;background:var(--sunk)}
.sbar i{display:block;height:100%}
.sbar .l{background:var(--up)} .sbar .s{background:var(--down)} .sbar .u{background:var(--line-2)}
.sn{font:600 13px/1 var(--mono);text-align:right}
.sn small{font-weight:400;color:var(--ink-3);margin-left:3px}
.sbias{font-size:12px;font-weight:600}
.sbias.up{color:var(--up)} .sbias.down{color:var(--down)} .sbias.flat{color:var(--ink-3);font-weight:400}
.sdir{font-size:11px;color:var(--ink-3);text-align:right}
@media(max-width:820px){
  .sgrow{grid-template-columns:52px minmax(0,1fr) auto;gap:8px;row-gap:3px}
  .sbias{grid-column:2;font-size:11.5px}
  .sdir{grid-column:3;grid-row:2;font-size:10.5px;white-space:nowrap}
  .sn{white-space:nowrap}
}

/* ── 首屏「此刻」：一句判断 ＋ 三条支撑 ─────────────────────── */
.nowbox{border:1px solid var(--line);border-left:3px solid var(--read);border-radius:8px;
  background:var(--panel);padding:14px 16px;margin-bottom:14px}
.nowhd{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.nowt{font:11px/1 var(--mono);letter-spacing:.08em;color:var(--ink-3);text-transform:uppercase}
.nowt b{font-size:13px;color:var(--ink)}
.nowtag{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--read)}
.nowlede{margin:9px 0 0;font-size:14.5px;line-height:1.7;color:var(--ink)}
.nowlede b{font-weight:600}
.nowgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:12px;
  background:var(--line);border:1px solid var(--line);border-radius:6px;overflow:hidden}
.nowitem{background:var(--panel);border:0;padding:10px 12px;text-align:left;cursor:pointer;display:block;min-width:0}
.nowitem:hover{background:var(--panel-2)}
.nk{display:block;font-size:10.5px;letter-spacing:.09em;color:var(--ink-3);text-transform:uppercase}
.nv{display:block;font-size:13px;line-height:1.5;color:var(--ink);margin-top:3px}
.nv b{font-family:var(--mono);font-weight:600}
.nd{display:block;font-size:11.5px;line-height:1.55;color:var(--ink-2);margin-top:3px}
/* ── 筛选默认收起 ───────────────────────────────────────── */
.fmore-btn{margin-left:auto}
.fmore-btn[aria-expanded="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.daycount{font-size:11.5px;color:var(--ink-3);margin-left:auto}
@media(max-width:820px){
  .nowgrid{grid-template-columns:1fr}
  .fmore-btn{margin-left:0}
  .daycount{margin-left:0;width:100%}
}
.row.flash{animation:fp-flash 1.4s var(--ease)}
@keyframes fp-flash{0%{background:var(--read-soft)}100%{background:transparent}}
@media(prefers-reduced-motion:reduce){.row.flash{animation:none;background:var(--read-soft)}}

/* ── 窄屏首屏压缩：把空间还给内容 ─────────────────────────── */
@media(max-width:820px){
  .pulse .cell{min-width:132px;padding:9px 14px 8px}
  .pulse .cell .v{font-size:21px}
  .pulse-note{padding:7px 0 8px;font-size:11px}
  .nowbox{padding:11px 13px;margin-bottom:11px}
  .nowlede{font-size:13.5px;line-height:1.62;margin-top:7px}
  .nowgrid{margin-top:10px}
  .nowitem{padding:8px 11px;display:grid;grid-template-columns:auto 1fr;gap:2px 9px;align-items:baseline}
  .nk{grid-row:1}
  .nv{grid-row:1;margin-top:0;font-size:12.5px}
  .nd{grid-column:1/-1;grid-row:2;margin-top:1px;font-size:11px}
  .daystamp{flex-wrap:wrap;row-gap:2px}
  .daycount{width:auto;font-size:11px}
}
@media(max-width:820px){
  /* 市场 chips 改横向滚动，不再换成三行；「更多筛选」黏在行尾始终可见 */
  #domain-row{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;
    scrollbar-width:none;padding-right:2px}
  #domain-row::-webkit-scrollbar{display:none}
  #domain-row .chip{flex:0 0 auto}
  #domain-row .axis{display:none}
  .fmore-btn{position:sticky;right:0;background:var(--bg);box-shadow:-10px 0 10px -6px var(--bg)}
  .fmore-btn[aria-expanded="true"]{box-shadow:none}
}
/* grid 子项默认 min-width:auto，行内不换行的 chips 会把整列撑宽并顶开视口 */
.cols > *{min-width:0}

/* 报告首页 · 跟踪中的问题
   付费价值不写成一句话：同一个问题的每一篇按时间排开，免费的单篇与会员的专题／研究自然分层，
   最右一格是下一个日程节点。读者看到的是「这件事有人一直在跟」，不是「会员更好」。 */
.threads{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:34px}
.thread{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:15px 16px 12px;display:flex;flex-direction:column;gap:12px;min-width:0}
.thread header{display:flex;flex-direction:column;gap:4px}
.thread h4{font-family:var(--display);font-size:17px;line-height:1.25;font-weight:700;letter-spacing:-.005em;text-wrap:balance}
.tcount{font-family:var(--mono);font-size:10.5px;color:var(--ink-3)}
.tnodes{list-style:none;margin:0;padding:0;position:relative}
.tnodes::before{content:"";position:absolute;left:4px;top:8px;bottom:14px;width:1px;background:var(--line-2)}
.tnodes li{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:8px;row-gap:1px;padding:6px 0 7px 16px}
.tnodes li::before{content:"";position:absolute;left:0;top:10px;width:9px;height:9px;border-radius:50%;background:var(--panel);border:2px solid var(--ink-3);box-sizing:border-box}
.tnodes .td{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);font-variant-numeric:tabular-nums;padding-top:2px;grid-row:span 2}
.tnodes .tt{font-size:12.5px;line-height:1.45;color:var(--ink)}
.tnodes .tk{font-size:10.5px;color:var(--ink-3);display:flex;align-items:center;gap:5px}
.tnodes li.paid::before{border-color:var(--gold-1);background:var(--gold-soft)}
.tnodes li.free-issue::before{border-color:var(--gold-1)}
.tnodes li.next::before{border-style:dashed;border-color:var(--line-2)}
.tnodes li.next .tt{color:var(--ink-2)}
.tnodes li.next.none .tt{color:var(--ink-3)}
@media(max-width:1100px){.threads{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.threads{grid-template-columns:1fr}}

/* 外观面板 · 显示时区 */
.tzsel{font:inherit;font-size:12px;color:var(--ink);background:var(--panel);border:1px solid var(--line-2);
  border-radius:var(--r);padding:4px 6px;max-width:100%}
.tzsel:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.tznow{flex-basis:100%;font-size:10.5px;color:var(--ink-3)}

/* 频道规则条：权益颗粒度是频道，这四条是读者需要先知道的 */
.chrules{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin:0 0 26px}
.chrules > div{background:var(--panel);padding:13px 15px;min-width:0}
.chrules b{display:block;font-size:13px;letter-spacing:.02em}
.chrules span{display:block;font-size:12px;color:var(--ink-3);line-height:1.6;margin-top:5px}
@media(max-width:900px){.chrules{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.chrules{grid-template-columns:1fr}}
