/* ==========================================================================
   接单雷达 · 全站唯一的样式表（按 docs/52 设计规范；定稿静态稿的 site.css 原样搬来，末尾是生成器补充的组件）
   生成器（src/oppo/site.py）把本文件原样输出为 assets/site.css，页面用 ?v=<内容哈希> 引用，改了就换地址，不怕缓存。
   顺序：令牌 → 基础 → 布局 → 顶栏 → 按钮 → 首屏与行情条 → 章节头 → 机会卡与徽章
         → 瓷砖 → 货架小卡 → 周报与订阅 → 货架行 → 机会页 → 货架页 → 页脚 → 底部导航
         → 补充：通用页头与空状态、榜单、决策指南表、项目步骤块、搜索、周报正文、类型筛选、装备库与入口页
   ========================================================================== */

/* ---------- 令牌（浅色） ---------- */
:root{
  --bg:#F7F8F6;          /* 底：暖灰 */
  --bg-glass:rgba(247,248,246,.92);
  --card:#FFFFFF;        /* 卡 */
  --ink:#14171A;         /* 墨 */
  --ink-2:#5B6470;       /* 次墨 */
  --line:#E4E7E2;        /* 线 */
  --line-2:#CFD4CC;      /* 线（悬停加深一档） */
  --brand:#0F766E;       /* 主色：深青，雷达色 */
  --brand-ink:#0F766E;
  --brand-soft:#E6F1EF;
  --on-brand:#FFFFFF;
  --live:#16A34A;        /* 活跃 / 空白 */
  --live-ink:#15803D;    /* 活跃的文字色（小字要够对比度） */
  --live-soft:#E8F5EC;
  --cold:#9CA3AF;        /* 转冷（只用于点，不用于文字） */
  --window:#D97706;      /* 窗口 */
  --window-ink:#B45309;
  --window-soft:#FCF1E2;
  --risk:#DC2626;        /* 风险：红只用在这里 */
  --risk-soft:#FCECEC;
  --sweep:rgba(15,118,110,.30);
  --shadow:0 1px 2px rgba(0,0,0,.04);
  --shadow-hover:0 2px 10px rgba(20,23,26,.07);

  --font:-apple-system,BlinkMacSystemFont,"PingFang SC","Noto Sans SC","Helvetica Neue",sans-serif;  /* BlinkMacSystemFont：Chrome 不认 -apple-system，缺它数字会落到苹方、等宽数字失效 */
  --r:12px; --r-sm:8px;
  --maxw:1080px; --gut:24px; --side:16px;
  color-scheme:light dark;
}

/* ---------- 令牌（深色：逐个映射，不是自动反色） ---------- */
@media (prefers-color-scheme:dark){
  :root{
    --bg:#0F1214;
    --bg-glass:rgba(15,18,20,.9);
    --card:#171B1E;
    --ink:#E8ECEF;
    --ink-2:#9AA4AE;
    --line:#272D32;
    --line-2:#3A4249;
    --brand:#2BA89B;
    --brand-ink:#5CCABE;
    --brand-soft:#10302D;
    --on-brand:#051B19;
    --live:#34C46A;
    --live-ink:#63D98E;
    --live-soft:#113522;
    --cold:#646D77;
    --window:#EFA23A;
    --window-ink:#F4B863;
    --window-soft:#382810;
    --risk:#F06A6A;
    --risk-soft:#3B1A1A;
    --sweep:rgba(92,202,190,.28);
    --shadow:0 1px 2px rgba(0,0,0,.35);
    --shadow-hover:0 2px 12px rgba(0,0,0,.45);
  }
}

/* ---------- 基础 ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 var(--font);-webkit-font-smoothing:antialiased;overflow-wrap:break-word}
h1,h2,h3,p,ol,ul,dl,dd,figure{margin:0}
body{text-wrap:pretty}
ol,ul{padding:0;list-style:none}
a{color:var(--brand-ink);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
svg{flex:none}
b,strong{font-weight:600}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}
.num,.big,dd{font-variant-numeric:tabular-nums}
.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.wrap{max-width:calc(var(--maxw) + 2 * var(--side));margin:0 auto;padding:0 var(--side)}
.muted{color:var(--ink-2)}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}

/* ---------- 顶栏 ---------- */
.topbar{background:var(--card);border-bottom:1px solid var(--line);position:relative;z-index:30}
.topbar-in{display:flex;align-items:center;gap:24px;height:64px}
.logo{display:inline-flex;align-items:center;gap:8px;color:var(--ink);font-size:20px;font-weight:700;letter-spacing:.04em;flex:none}
.logo:hover{text-decoration:none}
.logo-mark{width:24px;height:24px;color:var(--brand)}
.nav{display:flex;align-items:center;justify-content:center;gap:4px;flex:1 1 auto;min-width:0}
.nav a{position:relative;display:block;padding:8px 10px;font-size:14px;color:var(--ink-2);white-space:nowrap;border-radius:var(--r-sm)}
.nav a:hover{color:var(--ink);text-decoration:none;background:var(--bg)}
.nav a[aria-current="page"]{color:var(--ink);font-weight:600}
.nav a[aria-current="page"]::after{content:"";position:absolute;left:10px;right:10px;bottom:-13px;height:2px;border-radius:2px;background:var(--brand)}
.top-actions{display:flex;align-items:center;gap:12px;flex:none}
.search{display:inline-flex;align-items:center;gap:8px;height:36px;width:208px;padding:0 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg);color:var(--ink-2);font-size:14px}
.search:hover{text-decoration:none;border-color:var(--line-2)}
.search svg{width:16px;height:16px}
.search kbd{margin-left:auto;font:12px/1 var(--font);color:var(--ink-2);border:1px solid var(--line);border-radius:4px;padding:3px 5px;background:var(--card)}
@media (max-width:1023px){
  .search{width:36px;padding:0;justify-content:center}
  .search span,.search kbd{display:none}
  .nav{justify-content:flex-start}
}
@media (max-width:767px){
  .topbar-in{height:56px}
  .nav,.search{display:none}
  .top-actions{margin-left:auto}
}

/* ---------- 按钮：一个实心（每页只一个）、其余描边 ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:44px;padding:0 20px;border-radius:var(--r-sm);border:1px solid transparent;font:600 16px/1 var(--font);white-space:nowrap;cursor:pointer;transition:background .15s,border-color .15s,filter .15s}
.btn:hover{text-decoration:none}
.btn-solid{background:var(--brand);color:var(--on-brand)}
.btn-solid:hover{filter:brightness(1.1)}
.btn-ghost{background:transparent;border-color:var(--brand);color:var(--brand-ink)}
.btn-ghost:hover{background:var(--brand-soft)}
.btn-sm{height:32px;padding:0 12px;font-size:14px}
.btn-xs{height:28px;padding:0 10px;font-size:12px}

/* ---------- 首屏：独占一屏（白底带），下一节标题只在屏底露头 ---------- */
.hero{display:flex;align-items:center;min-height:clamp(420px,calc(100vh - 300px),560px);padding:56px 0;background:var(--card);border-bottom:1px solid var(--line)}
.hero > .wrap{width:100%}
.hero-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gut);align-items:center}
.hero-text{grid-column:1 / span 5}
.hero-grid > .ticker{grid-column:6 / span 7}
.hero h1{font-size:28px;line-height:1.3;font-weight:700;letter-spacing:.01em}
.h1-main{display:inline-flex;align-items:center;gap:12px;flex-wrap:wrap}
.h1-sub{display:block;margin-top:8px;font-size:20px;line-height:1.4;font-weight:500;color:var(--ink-2)}
.hero-how{margin-top:24px;font-size:16px;color:var(--ink-2)}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.hero .ticker{background:var(--bg);box-shadow:none}

/* 母题：雷达扫描弧——全站只在这里动（慢、静音），减少动态时静止 */
.sweep{position:relative;flex:none;width:32px;height:32px;border-radius:50%;border:1px solid var(--line-2);overflow:hidden}
.sweep::before{content:"";position:absolute;inset:7px;border-radius:50%;border:1px solid var(--line)}
.sweep::after{content:"";position:absolute;inset:0;border-radius:50%;
  background:conic-gradient(from 0deg,transparent 0deg,var(--sweep) 64deg,var(--brand) 64deg 65.5deg,transparent 66deg);
  opacity:.9;animation:sweep 8s linear infinite}
.sweep i{position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px 0 0 -2px;border-radius:50%;background:var(--brand);z-index:1}
@keyframes sweep{to{transform:rotate(1turn)}}

@media (max-width:1023px){
  .hero-text,.hero-grid > .ticker{grid-column:1 / -1}
}
@media (max-width:767px){
  .hero{padding:32px 0}
  .hero-grid{gap:32px}
  .hero-how{margin-top:16px}
  .hero-cta{margin-top:24px}
  .hero-cta .btn{flex:1 1 auto}
}

/* ---------- 行情条（首页实时条；机会页用同一组件的小号） ---------- */
.ticker{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);min-width:0}
.ticker-hd{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;padding:12px 16px;border-bottom:1px solid var(--line);font-size:12px;color:var(--ink-2)}
.ticker-hd b{color:var(--live-ink)}
.pulse{position:relative;width:8px;height:8px;border-radius:50%;background:var(--live);flex:none}
.pulse::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--live);animation:breathe 2.6s ease-out infinite}
@keyframes breathe{0%{transform:scale(1);opacity:.55}75%,100%{transform:scale(2.8);opacity:0}}
.cells{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0}
.cell{padding:16px;border-left:1px solid var(--line);min-width:0}
.cell:first-child{border-left:0}
.cell dt{font-size:12px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cell .v{margin-top:4px;white-space:nowrap}
.big{font-size:40px;line-height:1.1;font-weight:600;letter-spacing:-.01em;color:var(--ink)}
.unit{margin-left:4px;font-size:14px;color:var(--ink-2)}
.cell .s{margin-top:4px;font-size:12px;color:var(--ink-2)}
/* 小号：机会页"这个方向的行情"，数字 28 号 */
.ticker-sm .big{font-size:28px;line-height:1.15}
.ticker-sm .cell{padding:12px 16px}
@media (max-width:767px){
  .cells{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cell:nth-child(3){border-left:0}
  .cell:nth-child(n+3){border-top:1px solid var(--line)}
}

/* ---------- 章节头：28 号标题 + 14 号说明 + 右侧"全部 →"；章节间 64 ---------- */
.sec{margin-top:64px}
.sec-hd{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px}
.sec-hd h2{font-size:28px;line-height:1.3;font-weight:700}
.sec-hd p{margin-top:4px;font-size:14px;color:var(--ink-2)}
.more{flex:none;font-size:14px;font-weight:600;color:var(--brand-ink);white-space:nowrap}

/* ---------- 机会卡（全站唯一） ---------- */
.board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gut)}
.ocard{position:relative;display:flex;flex-direction:column;gap:12px;min-width:0;padding:20px 24px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);transition:border-color .15s,box-shadow .15s}
.ocard:hover{border-color:var(--line-2);box-shadow:var(--shadow-hover)}
.ocard:focus-within{outline:2px solid var(--brand);outline-offset:2px}
.ocard-hd{display:flex;align-items:center;gap:12px;min-width:0}
.ocard h3{flex:1 1 auto;min-width:0;font-size:20px;line-height:1.35;font-weight:600}
.ocard h3 a{display:flex;min-width:0;color:var(--ink)}
.ocard h3 a:hover{text-decoration:none}
.ocard h3 a:focus-visible{outline:none}
.ocard h3 a::after{content:"";position:absolute;inset:0;border-radius:var(--r)}   /* 整卡可点 */
.ocard .cat{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ocard .mkt{flex:none;color:var(--ink-2);font-weight:400;white-space:pre}
.ocard-who{font-size:14px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.onums{display:grid;grid-template-columns:3fr 3fr 3fr 5fr;gap:12px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.onums div{min-width:0}
.onums dt{font-size:12px;color:var(--ink-2);white-space:nowrap}
.onums dd{margin-top:2px;font-size:28px;line-height:1.15;font-weight:600;white-space:nowrap}
.onums dd.na{font-size:20px;line-height:1.6;font-weight:400;color:var(--ink-2)}
.ocard-ft{display:flex;align-items:center;gap:8px;min-width:0}
.ocard-ft .go{margin-left:auto;font-size:14px;font-weight:600;color:var(--brand-ink);white-space:nowrap}
.ocard:hover .go{text-decoration:underline;text-underline-offset:3px}

/* 状态点：颜色 + 文字，不只靠颜色 */
.status{display:inline-flex;align-items:center;gap:6px;flex:none;font-size:12px;color:var(--ink-2);white-space:nowrap}
.status::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--cold)}
.status.on{color:var(--live-ink);font-weight:600}
.status.on::before{background:var(--live)}

/* 徽章：最多两个；只在有含义时上色（空白 = 绿，窗口 = 琥珀） */
.badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;border:1px solid var(--line);background:var(--card);font-size:12px;line-height:1;color:var(--ink-2);white-space:nowrap}
.badge.gap{background:var(--live-soft);border-color:transparent;color:var(--live-ink)}
.badge.win{background:var(--window-soft);border-color:transparent;color:var(--window-ink)}

@media (max-width:767px){
  .board{grid-template-columns:1fr;gap:12px}
  .ocard{padding:16px}
  .ocard-hd{align-items:flex-start}
  .ocard h3 a{display:block}
  .ocard .cat{white-space:normal}
  .onums{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:12px}
}

/* ---------- 瓷砖（你想折腾什么 / 适合哪些项目） ---------- */
.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gut)}
.tiles.t3{grid-template-columns:repeat(3,minmax(0,1fr))}
.tile{display:flex;flex-direction:column;gap:8px;min-width:0;padding:20px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);color:var(--ink);transition:border-color .15s,box-shadow .15s}
.tile:hover{text-decoration:none;border-color:var(--line-2);box-shadow:var(--shadow-hover)}
.tile svg{width:24px;height:24px;color:var(--ink-2)}
.tile b{margin-top:4px;font-size:20px;line-height:1.3}
.tile span{font-size:14px;color:var(--ink-2)}
@media (max-width:1023px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:767px){
  .tiles,.tiles.t3{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .tile{padding:16px}
}

/* ---------- 装备库：6 个货架小卡，一行 ---------- */
.shelves{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}
.shelf-card{display:flex;flex-direction:column;gap:4px;min-width:0;padding:16px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);color:var(--ink);transition:border-color .15s}
.shelf-card:hover{text-decoration:none;border-color:var(--line-2)}
.shelf-card b{font-size:16px}
.shelf-card .n{font-size:12px;color:var(--ink-2)}
.shelf-card span:last-child{margin-top:4px;font-size:14px;color:var(--ink-2)}
@media (max-width:1023px){.shelves{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:767px){.shelves{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}

/* ---------- 周报与提醒 ---------- */
.digest{display:grid;grid-template-columns:7fr 5fr;gap:var(--gut)}
.panel{min-width:0;padding:24px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.eyebrow{font-size:12px;font-weight:600;color:var(--ink-2)}
.panel h3{margin-top:4px;font-size:20px;line-height:1.4}
.dlist{margin-top:16px;counter-reset:d}
.dlist li{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:baseline;gap:12px;padding:10px 0;border-top:1px solid var(--line);font-size:14px}
.dlist li::before{counter-increment:d;content:counter(d);font-size:12px;color:var(--ink-2);font-variant-numeric:tabular-nums}
.dlist b{font-size:20px;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.dlist small{display:block;font-size:12px;color:var(--ink-2);font-weight:400;text-align:right}
.panel .more{display:inline-block;margin-top:16px}
.subform{display:flex;gap:8px;margin-top:16px}
.subform input{flex:1 1 auto;min-width:0;height:44px;padding:0 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg);color:var(--ink);font:16px var(--font)}
.subform input::placeholder{color:var(--ink-2)}
.subform input:focus{outline:2px solid var(--brand);outline-offset:1px;border-color:transparent}
.alertrow{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;margin-top:24px;padding-top:24px;border-top:1px solid var(--line)}
.alertrow svg{width:24px;height:24px;color:var(--ink-2);grid-row:span 2}
.alertrow b{font-size:16px}
.alertrow p{font-size:14px;color:var(--ink-2)}
.alertrow .btn{grid-column:2;justify-self:start;margin-top:8px}
.rss{margin-top:16px;font-size:12px;color:var(--ink-2)}
@media (max-width:767px){
  .digest{grid-template-columns:1fr;gap:12px}
  .panel{padding:20px 16px}
}

/* ---------- 货架行（全站唯一）：名称 / 一句用途 / 费用 / 适合谁 / 直达 ---------- */
.shelf{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}
.shelf thead th{padding:10px 16px;font-size:12px;font-weight:600;color:var(--ink-2);text-align:left;background:var(--bg);border-bottom:1px solid var(--line);white-space:nowrap}
.shelf tbody th,.shelf tbody td{padding:16px;text-align:left;vertical-align:middle;border-top:1px solid var(--line);font-weight:400}
.shelf tbody tr:first-child > *{border-top:0}
.shelf .c-name{width:18%}
.shelf .c-fee{width:22%}
.shelf .c-who{width:15%}
.shelf .c-go{width:96px}
.s-name{font-size:16px;font-weight:700;color:var(--ink)}
.aff{display:inline-block;margin-left:6px;padding:0 4px;border:1px solid var(--line);border-radius:4px;font-size:12px;line-height:18px;font-weight:400;color:var(--ink-2);vertical-align:2px}
.s-use{font-size:14px;color:var(--ink-2)}
.s-use b{color:var(--ink);font-variant-numeric:tabular-nums}
.s-fee{font-size:14px;color:var(--ink);font-variant-numeric:tabular-nums}
.s-fee .na{font-size:12px;color:var(--ink-2)}
.s-fee small{display:block;margin-top:2px;font-size:12px;line-height:1.4;color:var(--ink-2);font-variant-numeric:normal}
.s-fee.na{color:var(--ink-2)}
.s-go{text-align:right!important;white-space:nowrap}
.tag{display:inline-block;max-width:100%;padding:0 8px;border:1px solid var(--line);border-radius:999px;background:var(--bg);font-size:12px;line-height:20px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
@media (max-width:767px){
  .shelf,.shelf tbody{display:block}
  .shelf thead,.shelf colgroup{display:none}
  .shelf tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name go" "use use" "fee who";gap:6px 12px;padding:16px;border-top:1px solid var(--line)}
  .shelf tbody tr:first-child{border-top:0}
  .shelf tbody th,.shelf tbody td{display:block;padding:0;border:0}
  .shelf .s-nm{grid-area:name;align-self:center}
  .shelf .s-use{grid-area:use}
  .shelf .s-fee{grid-area:fee;align-self:center}
  .shelf .s-who{grid-area:who;justify-self:end;align-self:center}
  .shelf .s-go{grid-area:go;align-self:center}
}

/* ---------- 机会页 ---------- */
.crumbs{display:flex;flex-wrap:wrap;gap:4px 8px;padding:16px 0 12px;font-size:12px;color:var(--ink-2)}
.crumbs a{color:var(--ink-2)}

/* 顶部粘性摘要：标题、4 个数、两个徽章、主按钮 */
.osum{position:sticky;top:0;z-index:20;background:var(--card);border-top:1px solid var(--line);border-bottom:1px solid var(--line);box-shadow:var(--shadow)}
.osum-in{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"badges nums cta" "title nums cta";align-items:center;gap:8px 40px;padding-top:16px;padding-bottom:16px}
.osum .badges{grid-area:badges;display:flex;gap:8px;min-width:0}
.osum h1{grid-area:title;min-width:0;font-size:28px;line-height:1.25;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.osum h1 .mkt{color:var(--ink-2);font-weight:400}
.osum-nums{grid-area:nums;display:grid;grid-template-columns:repeat(4,auto);gap:0 28px;align-self:center}
.osum-nums dt{font-size:12px;color:var(--ink-2);white-space:nowrap}
.osum-nums dd{font-size:28px;line-height:1.15;font-weight:600;white-space:nowrap}
.osum-nums dd.delta{font-size:12px;line-height:1.5;font-weight:600;color:var(--live-ink)}
.osum .btn{grid-area:cta}
@media (max-width:1023px){
  .osum-in{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"badges cta" "title cta" "nums nums";gap:8px 24px}
  .osum-nums{justify-content:start;margin-top:4px}
}
@media (max-width:767px){
  .osum{top:-36px}   /* 徽章行先滚走；标题、按钮与四个数留在顶部 */
  .osum-in{grid-template-areas:"badges badges" "title cta" "nums nums";gap:8px 12px;padding-top:12px;padding-bottom:12px}
  .osum h1{font-size:19px;line-height:1.35;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}   /* 长类目名换到第二行，市场（· 海外）不被截掉 */
  .osum .btn{height:36px;padding:0 14px;font-size:14px}
  .osum-nums{grid-template-columns:repeat(4,minmax(0,auto));justify-content:space-between;gap:0 12px;margin-top:0}
  .osum-nums dd{font-size:20px;line-height:1.3}
}

/* 结论：一句话 + 四条标准 */
.verdict{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gut);align-items:start;padding-top:32px}
.verdict-main{grid-column:1 / span 7}
.verdict .lead{font-size:20px;line-height:1.5;font-weight:600}
.verdict .who{margin-top:8px;font-size:16px;color:var(--ink)}
.verdict .fit{margin-top:8px;font-size:14px;color:var(--ink-2)}
.checks{grid-column:8 / span 5;padding:16px 20px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.checks h2{font-size:12px;font-weight:600;color:var(--ink-2)}
.checks ul{margin-top:8px}
.checks li{display:flex;align-items:baseline;gap:8px;padding:2px 0;font-size:14px}
.checks li::before{content:"✓";flex:none;width:14px;font-weight:700;color:var(--ink)}
.checks li.no{color:var(--ink-2)}
.checks li.no::before{content:"✕";color:var(--ink-2)}
.checks .call{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:14px;color:var(--ink-2)}
.checks .call b{color:var(--ink);font-size:16px}
@media (max-width:767px){
  .verdict{grid-template-columns:1fr;gap:16px;padding-top:24px}
  .verdict-main,.checks{grid-column:1 / -1}
  .verdict .lead{font-size:20px}
}

/* 分节：标题 + 右侧一句结论；后四节默认折叠 */
.osecs{margin-top:40px;border-top:1px solid var(--line)}
.osec{border-bottom:1px solid var(--line);scroll-margin-top:132px}
.osec summary{display:flex;align-items:center;gap:16px;padding:20px 0;cursor:pointer;list-style:none}
.osec summary::-webkit-details-marker{display:none}
.osec summary h2{flex:1 1 auto;min-width:0;font-size:20px;line-height:1.4;font-weight:600}
.osec summary .concl{font-size:14px;color:var(--ink-2);text-align:right;font-variant-numeric:tabular-nums}
.osec summary::after{content:"";flex:none;width:8px;height:8px;margin:-4px 4px 0 0;border-right:1.75px solid var(--ink-2);border-bottom:1.75px solid var(--ink-2);transform:rotate(45deg);transition:transform .15s}
.osec details[open] > summary::after{transform:rotate(-135deg);margin-top:4px}
.osec summary:hover h2{color:var(--brand-ink)}
.rdot{display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;background:var(--risk);vertical-align:1px}
.obody{padding-bottom:32px}
.obody > * + *{margin-top:16px}
.note{font-size:12px;color:var(--ink-2)}
.prose{max-width:720px}
.prose p + p{margin-top:12px}

/* 谁在买什么 */
.seglist li{display:grid;grid-template-columns:56px minmax(0,1fr);gap:4px 16px;padding:16px 0;border-top:1px solid var(--line)}
.seglist li:first-child{border-top:0;padding-top:4px}
.seglist .n{grid-row:span 3;font-size:28px;line-height:1.15;font-weight:600;font-variant-numeric:tabular-nums}
.seglist .n small{display:block;font-size:12px;font-weight:400;color:var(--ink-2)}
.seglist .t{font-size:16px;font-weight:600}
.seglist .m{font-size:14px;color:var(--ink-2)}
.seglist .x{font-size:14px}
.seglist .x a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px}
.seglist .x a:hover{color:var(--brand-ink);text-decoration-color:currentColor}

/* 需求证据表：标题 / 来源 / 预算 / 竞标 / 日期 */
.etable{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;font-size:14px}
.etable th,.etable td{padding:12px 16px;text-align:left;vertical-align:top;border-top:1px solid var(--line)}
.etable thead th{border-top:0;background:var(--bg);font-size:12px;font-weight:600;color:var(--ink-2);white-space:nowrap}
.etable .c-src{width:16%}
.etable .c-bud{width:16%}
.etable .c-bid{width:11%}
.etable .c-date{width:10%}
.etable .r{text-align:right;white-space:nowrap}
.etable td{font-variant-numeric:tabular-nums}
.etable td.t{overflow-wrap:anywhere}
.etable td.t a{color:var(--ink);font-weight:500;text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px}
.etable td.t a:hover{color:var(--brand-ink);text-decoration-color:currentColor}
@media (max-width:767px){
  .etable,.etable tbody,.etable tr{display:block}
  .etable colgroup,.etable thead{display:none}
  .etable tr{padding:12px 16px;border-top:1px solid var(--line)}
  .etable tbody tr:first-child{border-top:0}
  .etable td{display:inline;padding:0;border:0;font-size:12px;color:var(--ink-2)}
  .etable td.t{display:block;margin-bottom:4px;font-size:14px;color:var(--ink)}
  .etable td.m + td.m::before{content:" · "}
  .etable td.m + td.m[data-l]::before{content:" · " attr(data-l) " "}
  .etable .r{text-align:left}
}

/* 价格带：横向区间条（中位档高亮，其余灰） */
.tier{padding:20px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.tier figcaption{font-size:14px;color:var(--ink-2)}
.tier figcaption b{color:var(--ink);font-size:20px;font-variant-numeric:tabular-nums}
.tier-track{display:flex;gap:2px;height:12px;margin-top:40px}
.tier-track span{position:relative;display:block;height:100%;background:var(--line)}
.tier-track span:first-child{border-radius:6px 0 0 6px}
.tier-track span:last-child{border-radius:0 6px 6px 0}
.tier-track span.on{background:var(--brand)}
.tier-track span.on em{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);font-style:normal;font-size:12px;font-weight:600;color:var(--ink);white-space:nowrap}
.tier-track span.on em::after{content:"";position:absolute;left:50%;top:100%;width:1px;height:6px;background:var(--ink-2)}
.tier-ticks{position:relative;height:18px;margin-top:6px;font-size:12px;color:var(--ink-2);font-variant-numeric:tabular-nums}
.tier-ticks span{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap}
.tier-ticks span:first-child{transform:none}
.tier-ticks span:last-child{transform:none;right:0;left:auto!important}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.facts div{min-width:0}
.facts dt{font-size:12px;color:var(--ink-2)}
.facts dd{margin-top:2px;font-size:16px;font-weight:600}
.facts dd small{display:block;font-size:12px;font-weight:400;color:var(--ink-2)}
@media (max-width:767px){
  .tier{padding:16px}
  .tier-ticks .hide-sm{display:none}
  .facts{grid-template-columns:1fr;gap:12px}
}

/* 供给与拥挤 */
.pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.stat{min-width:0;padding:16px 20px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.stat dt{font-size:12px;color:var(--ink-2)}
.stat dd.v{margin-top:4px;font-size:28px;line-height:1.15;font-weight:600}
.stat dd.v .unit{font-weight:400}
.stat dd.s{margin-top:8px;font-size:14px;color:var(--ink-2)}
.scale{margin-top:16px}
.scale-track{position:relative;display:flex;gap:2px;height:8px}
.scale-track span{height:100%;background:var(--line)}
.scale-track span:first-child{border-radius:4px 0 0 4px}
.scale-track span:last-child{border-radius:0 4px 4px 0}
.scale-track span:nth-child(2){background:var(--line-2)}
.scale-track span:nth-child(3){background:var(--cold)}
.scale-track span:nth-child(4){background:var(--ink-2)}
.scale-mark{position:absolute;top:-5px;width:2px;height:18px;margin-left:-1px;background:var(--ink);border-radius:1px}
.scale-labels{display:flex;gap:2px;margin-top:8px;font-size:12px;color:var(--ink-2)}
.scale-labels span{min-width:0}
.scale-labels b{color:var(--ink)}
@media (max-width:767px){.pair{grid-template-columns:1fr;gap:12px}}

/* 用 AI 怎么交付 */
.steps{counter-reset:s}
.steps li{position:relative;padding:0 0 12px 36px}
.steps li::before{counter-increment:s;content:counter(s);position:absolute;left:0;top:1px;width:24px;height:24px;border-radius:50%;border:1px solid var(--line-2);font-size:12px;line-height:22px;text-align:center;color:var(--ink-2);font-variant-numeric:tabular-nums}

/* 风险 */
.risks li{position:relative;padding:12px 0 12px 20px;border-top:1px solid var(--line)}
.risks li:first-child{border-top:0;padding-top:4px}
.risks li::before{content:"";position:absolute;left:0;top:20px;width:8px;height:8px;border-radius:50%;background:var(--risk)}
.risks li:first-child::before{top:12px}

.pagenote{margin-top:24px;font-size:12px;color:var(--ink-2)}

/* ---------- 货架页 ---------- */
.zhead{padding:24px 0 32px}
.zhead h1{font-size:28px;line-height:1.3;font-weight:700}
.zhead .lead{margin-top:8px;max-width:720px;font-size:16px;color:var(--ink-2)}
.zmeta{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:12px;font-size:12px;color:var(--ink-2)}
.zmeta span::before{content:"";display:inline-block;width:4px;height:4px;margin:0 8px 2px 0;border-radius:50%;background:var(--line-2)}
.zmeta span:first-child::before{display:none}

/* 小类标签栏（粘性） */
.ztabs{position:sticky;top:0;z-index:20;background:var(--bg-glass);-webkit-backdrop-filter:saturate(1.4) blur(8px);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--line)}
.ztabs-in{position:relative;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.ztabs-in::-webkit-scrollbar{display:none}
.ztabs a{position:relative;flex:none;padding:14px 12px;font-size:14px;color:var(--ink-2);white-space:nowrap}
.ztabs a:first-child{margin-left:-12px}
.ztabs a:hover{color:var(--ink);text-decoration:none}
.ztabs a[aria-current="true"]{color:var(--ink);font-weight:600}
.ztabs a[aria-current="true"]::after{content:"";position:absolute;left:12px;right:12px;bottom:0;height:2px;border-radius:2px;background:var(--brand)}
.zsec{padding-top:64px;scroll-margin-top:32px}
.zsec:first-of-type{padding-top:40px}
.zsec .eyebrow{letter-spacing:.02em}
.zsec h2{margin-top:4px;font-size:28px;line-height:1.3;font-weight:700}
.zguide{margin-top:12px;max-width:760px;font-size:16px;color:var(--ink)}
.zguide b{font-variant-numeric:tabular-nums}
.zguide p + p{margin-top:8px}
.zsec .shelf{margin-top:24px}
.dmap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px;max-width:880px;margin-top:20px}
.dmap div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-width:0;padding:8px 0;border-top:1px solid var(--line);font-size:14px}
.dmap dt{min-width:0;color:var(--ink)}
.dmap dd{flex:none;color:var(--ink-2);text-align:right}
.dmap dd b{color:var(--ink)}
@media (max-width:767px){
  .zhead{padding:16px 0 24px}
  .zmeta{flex-direction:column;gap:2px}
  .zmeta span::before{display:none}
  .ztabs a:first-child{margin-left:-4px}
  .zsec{padding-top:48px}
  .zsec:first-of-type{padding-top:32px}
  .zsec h2{font-size:20px;line-height:1.4}
  .dmap{grid-template-columns:1fr}
}

/* ---------- 页脚：数据口径 / 联盟披露 / 订阅与 RSS ---------- */
.foot{margin-top:64px;background:var(--card);border-top:1px solid var(--line)}
.foot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gut);padding-top:32px;padding-bottom:24px}
.foot h2{font-size:14px;font-weight:600}
.foot p{margin-top:8px;font-size:12px;color:var(--ink-2)}
.foot .links{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:8px;font-size:12px}
.foot .fine{padding-bottom:32px;font-size:12px;color:var(--ink-2)}
@media (max-width:767px){.foot-grid{grid-template-columns:1fr;gap:20px}}

/* ---------- 手机底部导航：首页 / 行情 / 装备 / 搜索 ---------- */
.tabbar{display:none}
@media (max-width:767px){
  body{padding-bottom:calc(64px + env(safe-area-inset-bottom))}
  .tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-template-columns:repeat(4,1fr);padding:6px 0 calc(6px + env(safe-area-inset-bottom));background:var(--card);border-top:1px solid var(--line)}
  .tabbar a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 0;font-size:12px;color:var(--ink-2)}
  .tabbar a:hover{text-decoration:none}
  .tabbar a[aria-current="page"]{color:var(--brand-ink);font-weight:600}
  .tabbar svg{width:22px;height:22px}
}

/* ==========================================================================
   补充：静态稿之外的页面（行情榜、决策指南、项目页、搜索、周报、类目 / 类型页、装备库与入口页）
   只用上面的令牌、间距阶与组件语法，不加新颜色
   ========================================================================== */

/* 通用页头（沿用 .zhead）与页内小件 */
[hidden]{display:none!important}
.zhead + .sec{margin-top:8px}
.osum-nums dd.na{font-size:20px;line-height:1.4;font-weight:400;color:var(--ink-2)}
.stat dd.v.na{font-size:20px;font-weight:400;color:var(--ink-2)}
.onums dd.long{font-size:22px;line-height:1.45}   /* 放不下的长价格（$1,500–3,000、$8–15/小时）小一号，行高不变 */
@media (max-width:767px){
  .osum-nums dd.na{font-size:16px;line-height:1.6}
  .onums dd.long{font-size:18px;line-height:1.78}
  .osum-nums dd.long{font-size:16px;line-height:1.6}
  .rank td.r{white-space:normal;overflow-wrap:anywhere}
}
.zhead .badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.linkrow{display:flex;flex-wrap:wrap;gap:4px 20px;margin-top:16px;font-size:14px}
.linkrow a{font-weight:600}
.empty{padding:16px 20px;font-size:14px;color:var(--ink-2);background:var(--card);border:1px dashed var(--line-2);border-radius:var(--r)}
.panel .lede{margin-top:8px;font-size:14px;color:var(--ink-2)}
.panel .lede + .lede{margin-top:4px}

/* 货架行补充：用途下的小字、用途里的链接；方向表与说明段里的链接 */
.s-use small{display:block;margin-top:2px;font-size:12px;line-height:1.4;color:var(--ink-2)}
.s-use a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px}
.s-use a:hover{color:var(--brand-ink);text-decoration-color:currentColor}
.dmap dt a{color:var(--ink)}
.dmap dt a:hover{color:var(--brand-ink)}
.zguide a{text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px}

/* 机会卡：不链机会页的卡（类目页里本周没有单独机会页的方向） */
.ocard h3 .t{display:flex;min-width:0;color:var(--ink)}
.ocard-ft .go.muted{color:var(--ink-2);font-weight:400}
@media (max-width:767px){.ocard h3 .t{display:block}}

/* 瓷砖：骨架项目标"整理中" */
.tile .draft{display:inline-flex;align-items:center;height:20px;margin-left:8px;padding:0 6px;border:1px solid var(--line);border-radius:999px;font-size:12px;font-weight:400;line-height:1;color:var(--ink-2);vertical-align:3px}

/* 行情榜：四张表两列，每表前 10，数字右对齐 */
.ranks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gut)}
.rank{min-width:0;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;scroll-margin-top:16px}
.rank-hd{padding:16px 20px 12px;border-bottom:1px solid var(--line)}
.rank-hd h2{font-size:20px;line-height:1.4;font-weight:600}
.rank-hd p{margin-top:4px;font-size:12px;color:var(--ink-2)}
.rank table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:14px}
.rank th,.rank td{padding:10px 12px;border-top:1px solid var(--line);text-align:left;vertical-align:baseline}
.rank thead th{border-top:0;background:var(--bg);font-size:12px;font-weight:600;color:var(--ink-2);white-space:nowrap}
.rank .c-rk{width:40px}
.rank .c-n{width:25%}
.rank td.rk{padding-right:0;font-size:12px;color:var(--ink-2);font-variant-numeric:tabular-nums}
.rank td.nm{overflow-wrap:anywhere}
.rank td.nm a{color:var(--ink);font-weight:500}
.rank td.nm a:hover{color:var(--brand-ink)}
.rank td.nm small,.rank td.r small{display:block;font-size:12px;font-weight:400;color:var(--ink-2)}
.rank .r{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.rank td.r b{font-size:16px;font-weight:600}
.rank td.none{padding:16px 20px;color:var(--ink-2)}
@media (max-width:767px){
  .ranks{grid-template-columns:1fr;gap:12px}
  .rank-hd{padding:16px}
  .rank th,.rank td{padding:10px 8px}
  .rank .c-rk{width:28px}
  .rank .c-n{width:26%}
  .rank td.r b{font-size:14px}
}

/* 决策指南：一行一个目标 / 一个数；手机上一行变一张卡 */
.gtable{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;font-size:14px}
.gtable th,.gtable td{padding:14px 16px;text-align:left;vertical-align:top;border-top:1px solid var(--line)}
.gtable thead th{border-top:0;background:var(--bg);font-size:12px;font-weight:600;color:var(--ink-2);white-space:nowrap}
.gtable .c-k{width:16%}
.gtable tbody th{font-size:16px;font-weight:700;color:var(--ink)}
.gtable td{color:var(--ink-2)}
.gtable .opt{display:block}
.gtable .opt + .opt{margin-top:10px}
.gtable .opt a{color:var(--ink);font-weight:600}
.gtable .opt a:hover{color:var(--brand-ink)}
.gtable .opt small{display:block;font-size:12px;color:var(--ink-2);font-variant-numeric:tabular-nums}
.gtable .lvs{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.gtable .none{color:var(--ink-2)}
.badge.risk{background:var(--risk-soft);border-color:transparent;color:var(--risk)}
@media (max-width:767px){
  .gtable,.gtable tbody,.gtable tr,.gtable th,.gtable td{display:block;width:100%}
  .gtable thead,.gtable colgroup{display:none}
  .gtable tr{padding:12px 16px;border-top:1px solid var(--line)}
  .gtable tbody tr:first-child{border-top:0}
  .gtable th,.gtable td{padding:4px 0;border:0}
  .gtable td[data-l]::before{content:attr(data-l);display:block;margin-bottom:2px;font-size:12px;font-weight:600;color:var(--ink)}
  .gtable .lvs{flex-direction:row;flex-wrap:wrap}
}

/* 项目步骤块：左侧竖线时间轴，步骤号 + 标题（20 号）+ 一段人话 + 内嵌货架表（前两步展开，其余收起） */
.psteps{margin-top:8px}
.pstep{position:relative;padding:0 0 40px 52px;scroll-margin-top:24px}
.pstep::before{content:"";position:absolute;left:15px;top:40px;bottom:8px;width:2px;border-radius:1px;background:var(--line)}
.pstep:last-child{padding-bottom:0}
.pstep:last-child::before{display:none}
.pstep-no{position:absolute;left:0;top:0;width:32px;height:32px;border-radius:50%;background:var(--card);border:1px solid var(--line-2);font-size:14px;font-weight:600;line-height:30px;text-align:center;color:var(--ink);font-variant-numeric:tabular-nums}
.pstep h2{font-size:20px;line-height:1.6;font-weight:600}
.pstep .prose{margin-top:8px}
.pstep .prose p + p{margin-top:8px}
.pstep > .muted{margin-top:8px;font-size:14px}
.pstep details{margin-top:16px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}
.pstep summary{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;list-style:none;font-size:14px}
.pstep summary::-webkit-details-marker{display:none}
.pstep summary b{flex:1 1 auto;min-width:0;font-weight:600}
.pstep summary .concl{font-size:12px;color:var(--ink-2);text-align:right;font-variant-numeric:tabular-nums}
.pstep summary::after{content:"";flex:none;width:7px;height:7px;margin:-4px 4px 0 0;border-right:1.75px solid var(--ink-2);border-bottom:1.75px solid var(--ink-2);transform:rotate(45deg);transition:transform .15s}
.pstep details[open] > summary{border-bottom:1px solid var(--line)}
.pstep details[open] > summary::after{transform:rotate(-135deg);margin-top:4px}
.pstep summary:hover b{color:var(--brand-ink)}
.pstep details .shelf{border:0;border-radius:0;box-shadow:none}
.pstep details .note{padding:12px 16px}
.pstep .again{margin-top:12px;font-size:14px;color:var(--ink-2)}
@media (max-width:767px){
  .pstep{padding-left:44px;padding-bottom:32px}
  .pstep::before{left:13px;top:36px}
  .pstep-no{width:28px;height:28px;line-height:26px;font-size:12px}
  .pstep h2{font-size:18px;line-height:1.55}
}

/* 搜索 */
.sbox{display:flex;gap:8px;max-width:720px;margin-top:8px}
.sbox input{flex:1 1 auto;min-width:0;height:48px;padding:0 16px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);color:var(--ink);font:16px var(--font)}
.sbox input::placeholder{color:var(--ink-2)}
.sbox input:focus{outline:2px solid var(--brand);outline-offset:1px;border-color:transparent}
.sinfo{margin-top:12px;font-size:14px;color:var(--ink-2)}
.sres{margin-top:16px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}
.sres:empty{display:none}
.sres li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 12px;padding:14px 16px;border-top:1px solid var(--line)}
.sres li:first-child{border-top:0}
.sres .badge{grid-row:span 2;align-self:start;margin-top:1px}
.sres a{color:var(--ink);font-weight:600}
.sres a:hover{color:var(--brand-ink)}
.sres .m{font-size:14px;color:var(--ink-2)}

/* 周报正文（期刊 Markdown）与目录 */
.md{max-width:760px}
.md h1{margin:8px 0 16px;font-size:28px;line-height:1.3;font-weight:700}
.md h2{margin:40px 0 12px;padding-top:24px;border-top:1px solid var(--line);font-size:20px;line-height:1.4;font-weight:600}
.md h3{margin:24px 0 8px;font-size:16px;font-weight:600}
.md p{margin:12px 0}
.md ul,.md ol{margin:12px 0;padding-left:20px;list-style:disc}
.md ol{list-style:decimal}
.md li{margin:6px 0}
.md li > ul{margin:6px 0}
.md a{text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px}
.md a:hover{text-decoration-color:currentColor}
.md table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:14px}
.md td,.md th{padding:6px 10px;border:1px solid var(--line)}
.md hr{margin:32px 0;border:0;border-top:1px solid var(--line)}
.md img{max-width:100%}
.issues li{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid var(--line)}
.issues li:first-child{border-top:0}
.issues a{font-weight:600}
.issues span{flex:none;font-size:12px;color:var(--ink-2);font-variant-numeric:tabular-nums}

/* 类型页：按适合度筛选 */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.filters button{height:32px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:var(--card);font:14px var(--font);color:var(--ink-2);cursor:pointer}
.filters button:hover{border-color:var(--line-2);color:var(--ink)}
.filters button[aria-pressed="true"]{border-color:var(--brand);color:var(--brand-ink);font-weight:600}

/* 类目页：两个市场的细分方向各带一个小标题 */
.seg-mk + .seg-mk{margin-top:24px}
.seg-mk > .eyebrow{margin-bottom:4px}

/* 装备库与"你想折腾什么"入口页：小类与步骤用方向表的样子排 */
.hub .dmap{max-width:none}
.hub .dmap dd{flex:0 1 auto;min-width:0;font-variant-numeric:tabular-nums}

/* 装备库：专题货架一行（电商运营、自动化、量化数据、学习） */
.shelf-topics{margin:12px 0 0;font-size:14px;color:var(--ink-2,#5B6470);line-height:1.8}
.shelf-topics a{font-weight:600}
.shelf-topics .muted{margin-left:2px;font-size:12px}
