/* ==========================================================================
   theme-v15.css — 市场工作区唯一视觉层（/articles /onchain /data /signals）
   规则：
   1. 色彩 3+1：涨 --up / 跌 --down / 提醒 --warn，品牌绿只用于「当前选中」与「主操作」；其余灰阶。
   2. 频道识别用图标形状，不用色相。信息优先级 → 视觉权重，先层级再颜色。
   3. 移动端优先；点击目标 ≥ 44px；首屏必须看到第一条内容。
   4. 无 !important；token 预计算（不依赖 color-mix / :has），@supports 只做增强。
   ========================================================================== */
:root{
  --warn:#9a5b12;--warn-bg:#fbf3e4;--warn-line:#ecd9b3;
  --up-bg:#e6f4ee;--down-bg:#fbe9eb;--brand-bg:#e6f4ee;
  --ink:#151619;--ink-2:#484d54;--ink-3:#6b737c;--ink-4:#8f979f;
  --panel:#fff;--soft:#f1f4f2;--canvas:#f6f8f7;--rule:#e6ebe8;--rule-2:#d5dcd8;
  --r-s:8px;--r-m:12px;--r-l:16px;
  --tap:44px;
  --sh-1:0 1px 2px rgba(15,20,30,.05);--sh-2:0 8px 24px -14px rgba(15,20,30,.25),0 1px 2px rgba(15,20,30,.05);
  --deep:#10241b;--deep-2:#183527;--on-deep:#eef6f1;--on-deep-2:rgba(238,246,241,.68);
}
[data-theme="dark"]{
  --warn:#e4b862;--warn-bg:#2a2718;--warn-line:#54482a;
  --up-bg:#15302a;--down-bg:#3a1f24;--brand-bg:#15302a;
  --ink:#ecf2ee;--ink-2:#c0ccc5;--ink-3:#98a69f;--ink-4:#6f7d76;
  --panel:#141e19;--soft:#1a2520;--canvas:#0d1412;--rule:#28372f;--rule-2:#3a4d42;
  --sh-1:0 1px 2px rgba(0,0,0,.4);--sh-2:0 10px 28px -14px rgba(0,0,0,.7),0 1px 2px rgba(0,0,0,.4);
  --deep:#0b1c15;--deep-2:#12332a;--on-deep:#eef6f1;--on-deep-2:rgba(238,246,241,.66);
}
@supports (color:color-mix(in srgb,red,blue)){
  :root{--up-bg:color-mix(in srgb,var(--up) 11%,var(--panel));--down-bg:color-mix(in srgb,var(--down) 10%,var(--panel));--brand-bg:color-mix(in srgb,var(--brand) 11%,var(--panel));--warn-bg:color-mix(in srgb,var(--warn) 12%,var(--panel));--warn-line:color-mix(in srgb,var(--warn) 28%,var(--panel))}
}

/* ---------- 0. 工作区容器 ---------- */
.market-page,.market-desk-inner,.reading-library .art-page{max-width:1180px;margin:0 auto;color:var(--ink)}
.market-page,.market-desk-inner{width:calc(100% - 32px);padding:12px 0 56px}
.reading-library .art-page{padding:12px 16px 56px}
.page-main:has(.market-page),.page-main.market-desk,.page-main.reading-library{padding-left:0;padding-right:0}
.market-page :is(button,summary,a,input,select):focus-visible,.market-desk-inner :is(button,summary,a,input,select):focus-visible,.reading-library :is(button,summary,a,input,select):focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}
.sandbox-review-notice{max-width:1180px;margin:12px auto 0;padding:8px 14px;border:1px dashed var(--rule-2);border-radius:var(--r-s);background:var(--soft);color:var(--ink-3);font-size:12px;line-height:1.7;width:calc(100% - 32px)}

/* ---------- 1. 顶行：市场导航 + 页级统计（一行，不占高度） ---------- */
.ptop{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:var(--tap);margin:0 0 6px}
.ptop-stat{font-size:12px;color:var(--ink-3);white-space:nowrap;font-variant-numeric:tabular-nums}
.ptop-stat b{color:var(--ink);font-weight:600}
.market-nav{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--rule);border-radius:999px;background:var(--soft);max-width:100%;overflow-x:auto;scrollbar-width:none;white-space:nowrap}
.market-nav::-webkit-scrollbar{display:none}
.market-nav a{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 14px;border-radius:999px;font-size:13px;font-weight:600;color:var(--ink-2);text-decoration:none;transition:background .15s,color .15s}
.market-nav a i{font-size:11px;color:var(--ink-4);width:12px;text-align:center}
.market-nav a:hover{color:var(--ink);background:var(--panel)}
.market-nav a[aria-current]{background:var(--ink);color:var(--panel)}
.market-nav a[aria-current] i{color:var(--panel)}
.desk-nav{display:none}
.desk-nav a{display:inline-flex;align-items:center;min-height:38px;padding:0 10px;font-size:12.5px;color:var(--ink-3);text-decoration:none;border-radius:var(--r-s)}
.desk-nav a:hover{color:var(--ink);background:var(--soft)}

/* ---------- 2. 页头：一行高。图标只标识频道，不用色相 ---------- */
.phead{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:56px;padding:4px 0 12px;margin:0 0 12px;border-bottom:1px solid var(--rule)}
.phead-ico{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--r-m);background:var(--ink);color:var(--panel);font-size:16px;flex:none}
.phead-text{min-width:0}
.phead h1{font-size:22px;line-height:1.3;font-weight:800;letter-spacing:-.01em;margin:0;color:var(--ink)}
.phead p{margin:2px 0 0;font-size:12.5px;line-height:1.6;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.phead-meta{font-size:12px;color:var(--ink-3);white-space:nowrap}
.phead .market-button{grid-column:3}
.phead .market-button span{display:none}
.phead .market-button[hidden]{display:none}

/* ---------- 3. 通用控件 ---------- */
.market-button,.market-inline-retry,.evidence-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);min-width:var(--tap);padding:0 14px;border:1px solid var(--rule-2);border-radius:var(--r-m);background:var(--panel);color:var(--ink);font:inherit;font-size:13px;font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap;box-shadow:var(--sh-1);transition:border-color .15s,color .15s,background .15s}
.market-button:hover,.market-inline-retry:hover,.evidence-button:hover{border-color:var(--brand);color:var(--brand)}
.market-button i{font-size:12px}
.market-button:disabled,.market-inline-retry:disabled,.market-button[aria-disabled]{opacity:.55;cursor:wait}
.market-button[hidden],.market-inline-retry[hidden]{display:none}
.chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:2px 0;margin:0;white-space:nowrap}
.chips::-webkit-scrollbar{display:none}
.chips>a,.chip{display:inline-flex;align-items:center;gap:6px;flex:none;min-height:38px;padding:0 14px;border-radius:999px;border:1px solid var(--rule);background:var(--panel);color:var(--ink-2);font-size:13px;font-weight:600;text-decoration:none;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.chips>a:hover,.chip:hover{border-color:var(--rule-2);color:var(--ink)}
.chips>a.active,.chips>a[aria-current],.chip.active{background:var(--ink);border-color:var(--ink);color:var(--panel)}
.seg{display:inline-flex;padding:3px;border-radius:999px;background:var(--soft);border:1px solid var(--rule)}
.seg button{border:0;background:transparent;min-height:38px;padding:0 14px;border-radius:999px;font:inherit;font-size:13px;font-weight:600;color:var(--ink-2);cursor:pointer}
.seg button[aria-pressed=true]{background:var(--panel);color:var(--ink);box-shadow:var(--sh-1)}
.market-status,.market-note,.desk-caption{font-size:12px;color:var(--ink-3);line-height:1.7;margin:8px 0}
.market-empty,.desk-empty{padding:28px 20px;border:1px dashed var(--rule-2);border-radius:var(--r-m);background:var(--panel);text-align:center;color:var(--ink-3);font-size:13px;line-height:1.8;grid-column:1/-1}
.market-empty h2{font-size:15px;color:var(--ink);margin:0 0 6px}
.market-summary{display:none}
/* 语义色：只有涨/跌/提醒 */
.up,.positive{color:var(--up)}.down,.negative{color:var(--down)}.flat{color:var(--ink-3)}
.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;line-height:1.6;background:var(--soft);color:var(--ink-2);white-space:nowrap}
.badge.up{background:var(--up-bg);color:var(--up)}.badge.down{background:var(--down-bg);color:var(--down)}.badge.warn{background:var(--warn-bg);color:var(--warn)}
/* 区块标题 */
.desk-section>header,.chain-feed-heading,.lib-feed-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:24px 0 10px}
.desk-section h2,.chain-feed-heading h2,.lib-feed-head .section-title{font-size:16px;font-weight:800;letter-spacing:-.01em;margin:0;color:var(--ink)}
.desk-section>header p{margin:2px 0 0;font-size:12px;color:var(--ink-3)}
.desk-section>header>a,.chain-feed-heading span{font-size:12px;color:var(--ink-3);white-space:nowrap;text-decoration:none;min-height:40px;display:inline-flex;align-items:center}
.desk-section>header>a:hover{color:var(--brand)}
.lib-feed-head .section-title::before,.desk-section h2::before,.chain-feed-heading h2::before{content:none}

/* ---------- 4. 深度阅读 ---------- */
.reading-library .art-page-head{margin:0 0 8px;border:0;padding:0}
.reading-library .art-filters{margin:0 0 4px}
.reading-library .library-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;padding:14px;margin:8px 0 0;background:var(--panel);border:1px solid var(--rule);border-radius:var(--r-m)}
.reading-library .library-filters fieldset{border:0;margin:0;padding:0;min-width:0;flex:1 1 320px}
.reading-library .library-filters .library-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.reading-library .library-filters legend{font-size:12px;font-weight:700;margin-bottom:8px;color:var(--ink-2)}
.reading-library .library-filters label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--ink-3)}
.reading-library .library-filters .library-control{display:block;position:relative;width:100%}
.reading-library .library-filters :is(input:not([type=hidden]),select){display:block;appearance:none;-webkit-appearance:none;box-sizing:border-box;width:100%;height:48px;min-height:48px;line-height:24px;background:var(--canvas);border:1px solid var(--rule-2);border-radius:var(--r-s);color:var(--ink);padding:0 12px;font:inherit;font-size:16px}
.reading-library .library-filters select{padding-right:32px;cursor:pointer}
.reading-library .library-filters .library-select::after{content:"";position:absolute;right:14px;top:18px;width:7px;height:7px;border-right:1.5px solid var(--ink-3);border-bottom:1.5px solid var(--ink-3);transform:rotate(45deg);pointer-events:none}
.reading-library .library-filters button{min-height:var(--tap);padding:0 18px;border:0;border-radius:var(--r-s);background:var(--ink);color:var(--panel);font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.reading-library #library-clear{min-height:var(--tap);display:inline-flex;align-items:center;font-size:13px;color:var(--ink-3)}
.reading-library #library-coverage{font-size:12px;color:var(--ink-3);line-height:1.7;margin:8px 0}
.reading-library #library-result{font-size:12px;color:var(--ink-3);margin:12px 0 8px}
.reading-library #library-retry{display:inline-flex;align-items:center;min-height:var(--tap);padding:0 16px;border:1px solid var(--rule-2);border-radius:var(--r-s);font-size:13px}
.reading-library [hidden]{display:none}
/* 头条：唯一允许的深色块。整块可点，手机上先看到它 */
.reading-library .mag-zone{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px;margin:0 0 8px}
.reading-library .hero-card{display:block;position:relative;padding:22px 24px;border-radius:var(--r-l);background:linear-gradient(135deg,var(--deep),var(--deep-2));color:var(--on-deep);text-decoration:none;overflow:hidden;min-height:100%}
.reading-library .hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:18px;align-items:center}
.reading-library .hero-grid.no-img{grid-template-columns:minmax(0,1fr)}
.reading-library .hero-kicker{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--on-deep-2)}
.reading-library .hero-kicker::before{content:"";width:14px;height:2px;background:var(--brand);border-radius:1px}
.reading-library .hero-title{font-size:24px;line-height:1.4;font-weight:800;letter-spacing:-.015em;margin:10px 0 8px;color:var(--on-deep);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.reading-library .hero-desc{font-size:13.5px;line-height:1.75;color:var(--on-deep-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0}
.reading-library .hero-meta{margin-top:14px;font-size:12px;color:var(--on-deep-2)}
.reading-library .hero-img{width:180px;height:112px;border-radius:var(--r-m);overflow:hidden;border:1px solid rgba(255,255,255,.1)}
.reading-library .hero-img img{width:100%;height:100%;object-fit:cover;display:block}
.reading-library .hero-card:hover .hero-title{text-decoration:underline;text-decoration-color:var(--brand);text-underline-offset:4px}
.reading-library .mag-side{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--rule);border-radius:var(--r-l);background:var(--panel)}
.reading-library .mag-side-head{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--ink-3);padding:4px 6px 8px;border-bottom:1px solid var(--rule)}
.reading-library .mag-side-head i{color:var(--ink-4)}
.reading-library .mag-card{display:flex;gap:10px;align-items:flex-start;padding:10px 6px;border-radius:var(--r-s);text-decoration:none;color:var(--ink);flex:1;min-height:var(--tap)}
.reading-library .mag-card:hover{background:var(--soft)}
.reading-library .mag-card-img{width:72px;height:52px;border-radius:var(--r-s);overflow:hidden;flex:none}
.reading-library .mag-card-img img{width:100%;height:100%;object-fit:cover;display:block}
.reading-library .mag-card-idx{font-size:22px;font-weight:900;color:var(--ink-4);line-height:1;flex:none;width:30px;padding-top:2px;font-variant-numeric:tabular-nums}
.reading-library .mag-card-body{min-width:0}
.reading-library .mag-card-kicker{font-size:11px;font-weight:700;color:var(--ink-3);margin-bottom:2px}
.reading-library .mag-card-title{font-size:13.5px;font-weight:700;line-height:1.5;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--ink)}
.reading-library .mag-card:hover .mag-card-title{color:var(--brand)}
.reading-library .mag-card-meta{margin-top:4px;font-size:11.5px;color:var(--ink-3)}
.reading-library .edition-tile{width:72px;min-width:72px;min-height:76px;border:1px solid var(--rule);border-top:3px solid var(--ink);background:var(--soft);border-radius:var(--r-s);padding:8px 6px;display:flex;flex-direction:column;gap:4px;text-align:center}
.reading-library .edition-tile b{font-size:14px;font-weight:800;color:var(--ink)}
.reading-library .edition-tile span{font-size:11px;color:var(--ink-3)}
.reading-library .edition-tile i{font-size:9px;font-style:normal;color:var(--ink-4)}
.reading-library .mag-card-edition .mag-card-title{font-size:13px}
.reading-library .read-mins i{margin-right:3px}
/* 列表：一条一行，标题最重，摘要其次，元信息最轻 */
.reading-library .article-feed{display:flex;flex-direction:column;gap:0;border:1px solid var(--rule);border-radius:var(--r-l);background:var(--panel);overflow:hidden}
.reading-library .article-feed>.feed-item,.reading-library .article-feed>.feed-item.revealed{display:block;padding:16px 18px;border-bottom:1px solid var(--rule);text-decoration:none;color:var(--ink);min-height:var(--tap);transition:background .12s;animation:none;transform:none;opacity:1;box-shadow:none}
.reading-library .article-feed>.feed-item:last-child{border-bottom:0}
.reading-library .article-feed>.feed-item:hover{background:var(--soft)}
.reading-library .feed-body{min-width:0}
.reading-library .feed-title{font-size:16px;line-height:1.55;font-weight:700;letter-spacing:-.005em;margin:0;color:var(--ink);overflow-wrap:anywhere}
.reading-library .feed-item:hover .feed-title{color:var(--brand)}
.reading-library .feed-summary{margin:6px 0 8px;font-size:13px;line-height:1.75;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.reading-library .feed-summary:empty{display:none}
.reading-library .feed-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:12px;color:var(--ink-3);line-height:1.6;min-width:0}
.reading-library .feed-meta>span{min-width:0;max-width:100%;overflow-wrap:anywhere}
.reading-library .feed-meta .dot{display:none}
.reading-library .feed-meta .cat{font-weight:700;color:var(--ink-2)}
.reading-library .feed-meta>span:not(.cat)::before{content:"·";margin-right:8px;color:var(--rule-2)}
.reading-library .archive-label{display:inline-block;font-size:11px;font-weight:700;color:var(--ink-3);margin:0 0 6px}
.reading-library .tag-original{vertical-align:2px;font-size:10px;padding:2px 6px;border-radius:4px;background:var(--brand);color:#fff;letter-spacing:1px;box-shadow:none}
.reading-library [data-channel="report"] .article-feed{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:0;background:transparent;gap:10px;overflow:visible}
.reading-library [data-channel="report"] .article-feed>.feed-item{border:1px solid var(--rule);border-radius:var(--r-m);background:var(--panel)}
.reading-library [data-channel="report"] .ui-empty{grid-column:1/-1}
.reading-library .load-more-wrap{text-align:center;margin:16px 0 0}
.reading-library #load-more{display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap);padding:0 24px;border:1px solid var(--rule-2);border-radius:var(--r-m);background:var(--panel);color:var(--ink);font-weight:600;text-decoration:none;font-size:13px}
.reading-library #load-more:hover{border-color:var(--brand);color:var(--brand)}
.reading-library .ui-empty{padding:32px 20px;text-align:center;border:1px dashed var(--rule-2);border-radius:var(--r-m);color:var(--ink-3);background:var(--panel)}
.reading-library .ui-empty strong{display:block;font-size:15px;color:var(--ink);margin-bottom:6px}

/* ---------- 5. 链上动向 ---------- */
.oc-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 10px}
.oc-filter{position:relative}
.oc-filter>summary{list-style:none}
.oc-filter>summary::-webkit-details-marker{display:none}
.chip-filter i{font-size:11px}
.chip-clear{color:var(--ink-3);border-color:transparent;background:transparent}
.oc-filter-panel{position:absolute;left:0;top:calc(100% + 6px);z-index:20;width:min(560px,calc(100vw - 32px));padding:12px;border:1px solid var(--rule-2);border-radius:var(--r-m);background:var(--panel);box-shadow:var(--sh-2);display:grid;gap:8px}
.oc-filter-panel .chips{flex-wrap:wrap;white-space:normal}
.oc-filter-panel .chips>a{min-height:40px}
.oc-filter-note{margin:4px 0 0;font-size:11.5px;line-height:1.7;color:var(--ink-3)}
.chain-desk #oc-status{margin:0 0 10px}
.chain-focus{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:10px;margin:0 0 6px}
.chain-lead{display:block;padding:18px 20px;border-radius:var(--r-l);background:linear-gradient(135deg,var(--deep),var(--deep-2));color:var(--on-deep)}
.chain-lead .chain-overline{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--on-deep-2)}
.chain-lead .chain-tag{background:rgba(255,255,255,.12);color:var(--on-deep)}
.chain-lead h2{font-size:15px;font-weight:600;margin:10px 0 2px;color:var(--on-deep-2)}
.chain-lead>strong{display:block;font-size:34px;line-height:1.15;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--on-deep)}
.chain-lead p{font-size:12.5px;line-height:1.7;color:var(--on-deep-2);margin:8px 0 0}
.chain-lead>a{display:inline-flex;align-items:center;min-height:40px;margin-top:8px;padding:0 14px;border-radius:var(--r-s);background:rgba(255,255,255,.1);color:var(--on-deep);font-size:12.5px;font-weight:600;text-decoration:none;border:1px solid rgba(255,255,255,.12)}
.chain-lead>a:hover{background:rgba(255,255,255,.18)}
.chain-sample{padding:14px 16px;border:1px solid var(--rule);border-radius:var(--r-l);background:var(--panel)}
.chain-sample h3{font-size:12px;font-weight:700;color:var(--ink-3);margin:0 0 6px;letter-spacing:.02em}
.chain-sample dl{margin:0}
.chain-sample dl>div{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:8px 0;border-bottom:1px solid var(--rule)}
.chain-sample dl>div:last-child{border-bottom:0}
.chain-sample dt{font-size:12.5px;color:var(--ink-2)}
.chain-sample dd{margin:0;font-size:18px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink)}
.chain-sample dd small{font-size:11px;font-weight:400;color:var(--ink-3);margin-left:4px}
.chain-sample p{margin:8px 0 0;font-size:11.5px;line-height:1.7;color:var(--ink-3)}
.chain-feed-heading{margin-top:14px}
/* 事件行：金额与方向最重；文案其次 */
.chain-desk .chain-event{border:1px solid var(--rule);border-radius:var(--r-m);background:var(--panel);margin:0 0 8px;overflow:hidden}
.chain-desk .chain-event:target{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-bg)}
.chain-event-main{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 16px}
.chain-event-kind{display:grid;grid-template-columns:36px auto;grid-template-rows:auto auto;column-gap:10px;align-items:center}
.chain-avatar{grid-row:1/3;width:36px;height:36px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;letter-spacing:.02em;background:var(--soft);color:var(--ink-2);border:1px solid var(--rule)}
.chain-token{font-size:14px;font-weight:700;line-height:1.2;color:var(--ink)}
.chain-network{font-size:11px;color:var(--ink-3)}
.chain-event-story{min-width:0}
.chain-tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;background:var(--soft);color:var(--ink-2)}
.chain-tag[data-kind=exchange_in]{background:var(--warn-bg);color:var(--warn)}
.chain-tag[data-kind=exchange_out]{background:var(--up-bg);color:var(--up)}
.chain-event-story h2{font-size:14px;font-weight:600;margin:6px 0 2px;line-height:1.5;color:var(--ink)}
.chain-event-story h2 span{color:var(--ink-4);margin:0 6px;font-weight:400}
.chain-event-story p{margin:0;font-size:12px;line-height:1.65;color:var(--ink-3)}
.chain-event-value{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right;font-variant-numeric:tabular-nums}
.chain-event-value strong{font-size:18px;font-weight:800;letter-spacing:-.01em;color:var(--ink)}
.chain-event[data-kind=exchange_in] .chain-event-value strong{color:var(--warn)}
.chain-event[data-kind=exchange_out] .chain-event-value strong{color:var(--up)}
.chain-event-value>span{font-size:11px;color:var(--ink-3)}
.chain-event-value time{font-size:11px;color:var(--ink-4)}
.chain-desk .tx-details{padding:0 16px 10px}
.chain-desk .tx-details>summary{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:40px;border-top:1px solid var(--rule);font-size:12px;color:var(--ink-3);cursor:pointer;list-style:none}
.chain-desk .tx-details>summary::-webkit-details-marker{display:none}
.chain-desk .tx-details>summary::after{content:"+";font-size:16px;color:var(--ink-4)}
.chain-desk .tx-details[open]>summary::after{content:"−"}
.chain-desk .tx-details>summary span{font-size:11px}
.chain-desk .tx-records{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}
.chain-desk .tx-records li{padding:10px 12px;border-radius:var(--r-s);background:var(--soft);font-size:12.5px}
.tx-record-heading{display:flex;justify-content:space-between;gap:10px;align-items:baseline;margin-bottom:6px}
.tx-record-heading strong{font-variant-numeric:tabular-nums}
.tx-record-heading strong small{font-weight:400;color:var(--ink-3)}
.tx-flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px}
.flow-address{display:inline-flex;flex-direction:column;gap:2px;min-width:0}
.flow-address b{font-size:12.5px}
.flow-address>span{display:inline-flex;align-items:center;gap:6px;color:var(--ink-3);flex-wrap:wrap}
.flow-address>span a{display:inline-flex;align-items:center;min-height:36px;padding:0 8px;color:var(--brand);font-weight:600}
.flow-address code{font-size:11px;background:var(--panel);padding:1px 6px;border-radius:4px;border:1px solid var(--rule)}
.oc-copy{border:1px solid var(--rule);background:var(--panel);cursor:pointer;color:var(--ink-3);font:inherit;font-size:11.5px;padding:0 10px;min-height:36px;border-radius:6px}
.oc-copy:hover{color:var(--brand);border-color:var(--brand)}
.oc-copy.copied{color:var(--up);border-color:var(--up)}
.tx-news-link{display:inline-flex;align-items:center;min-height:36px;margin-top:2px;font-size:12px;color:var(--brand)}
.chain-desk .tx-details footer{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 0 0;margin-top:8px;border-top:1px solid var(--rule);font-size:11.5px;color:var(--ink-3)}
.chain-desk .tx-details footer a{display:inline-flex;align-items:center;min-height:36px;color:var(--ink);font-weight:600}
.chain-desk .tx-details footer code{font-size:11px}
#oc-more.market-button{display:flex;width:max-content;margin:12px auto 0}
#oc-more.market-button[hidden]{display:none}

/* ---------- 6. 数据中心 ---------- */
.desk-brief{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 20px;align-items:center;padding:14px 18px;margin:0 0 6px;border:1px solid var(--rule);border-left:4px solid var(--ink-4);border-radius:var(--r-m);background:var(--panel)}
.desk-brief[data-tone=up]{border-left-color:var(--up)}
.desk-brief[data-tone=down]{border-left-color:var(--down)}
.desk-brief h2{font-size:16px;font-weight:700;margin:0;line-height:1.5;color:var(--ink)}
.desk-brief h2 b{font-weight:800}
.desk-brief p{margin:2px 0 0;font-size:12px;color:var(--ink-3);line-height:1.6}
.desk-brief-meta{display:flex;gap:18px;margin:0;font-variant-numeric:tabular-nums}
.desk-brief-meta>div{display:flex;flex-direction:column;gap:2px}
.desk-brief-meta dt{font-size:11px;color:var(--ink-4)}
.desk-brief-meta dd{margin:0;font-size:13px;font-weight:700;color:var(--ink);white-space:nowrap}
.desk-brief-meta dd.warn{color:var(--warn)}
.desk-section{margin:0}
/* 对齐表格：纵向扫读 */
.desk-table{border:1px solid var(--rule);border-radius:var(--r-m);background:var(--panel);overflow:hidden}
.desk-thead,.desk-row>summary{display:grid;grid-template-columns:minmax(120px,1.3fr) minmax(110px,1fr) minmax(120px,1fr) minmax(96px,.9fr) 32px;gap:12px;align-items:center;padding:0 16px}
.desk-thead{min-height:34px;font-size:11px;color:var(--ink-4);background:var(--soft);border-bottom:1px solid var(--rule)}
.desk-thead>span:nth-child(2),.desk-thead>span:nth-child(3){text-align:right}
.desk-row{border-bottom:1px solid var(--rule)}
.desk-row:last-child{border-bottom:0}
.desk-row>summary{min-height:56px;cursor:pointer;list-style:none;font-variant-numeric:tabular-nums}
.desk-row>summary::-webkit-details-marker{display:none}
.desk-row>summary:hover{background:var(--soft)}
.desk-row .desk-asset-title{display:flex;flex-direction:column;gap:1px;min-width:0}
.desk-row .desk-asset-title b{font-size:14px;font-weight:700;color:var(--ink)}
.desk-row .desk-asset-title span{font-size:11px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.desk-row .desk-price{font-size:16px;font-weight:700;text-align:right;color:var(--ink);white-space:nowrap}
.desk-row .desk-change{display:flex;flex-direction:column;align-items:flex-end;font-size:13.5px;font-weight:700;white-space:nowrap}
.desk-row .desk-change small{font-size:10.5px;font-weight:400;color:var(--ink-4)}
.desk-row.desk-old .desk-price,.desk-row.desk-old .desk-change{color:var(--ink-3)}
.desk-fresh{display:flex;flex-direction:column;gap:1px;font-size:11px;color:var(--ink-3)}
.desk-fresh i{font-style:normal;font-weight:600;display:inline-flex;align-items:center;gap:5px}
.desk-fresh i::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--up)}
[data-fresh=session] .desk-fresh i::before,[data-fresh=daily] .desk-fresh i::before{background:var(--ink-4)}
[data-fresh=stale] .desk-fresh i{color:var(--warn)}
[data-fresh=stale] .desk-fresh i::before{background:var(--warn)}
.desk-fresh time{color:var(--ink-4)}
.desk-row .desk-evidence-label{text-align:right;color:var(--ink-4);font-size:16px;line-height:1}
.desk-row[open] .desk-evidence-label{transform:rotate(45deg)}
.desk-evidence{padding:4px 16px 14px;font-size:12px;color:var(--ink-2);line-height:1.75;background:var(--soft)}
.desk-row .desk-evidence{border-top:1px solid var(--rule)}
.desk-evidence p{margin:8px 0}
.desk-evidence dl{display:grid;grid-template-columns:100px 1fr;gap:4px 8px;margin:0}
.desk-evidence dt{color:var(--ink-3)}
.desk-evidence dd{margin:0;overflow-wrap:anywhere}
.desk-evidence a{display:inline-flex;align-items:center;min-height:32px;color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.desk-warning{display:inline-block;padding:4px 10px;border-radius:6px;background:var(--warn-bg);color:var(--warn);font-weight:600}
/* 宏观卡（需要走势图） */
.desk-macro-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.desk-card{border:1px solid var(--rule);border-radius:var(--r-m);background:var(--panel);overflow:hidden;min-width:0}
.desk-card>summary{display:block;padding:14px 16px;cursor:pointer;list-style:none}
.desk-card>summary::-webkit-details-marker{display:none}
.desk-card .desk-asset-title{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--ink-3)}
.desk-card .desk-asset-title b{font-size:14px;color:var(--ink);font-weight:700}
.desk-card .desk-asset-title i{margin-left:auto;font-style:normal;font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--soft);color:var(--ink-3)}
.desk-card[data-fresh=stale] .desk-asset-title i{background:var(--warn-bg);color:var(--warn)}
.desk-card .desk-price{display:block;font-size:24px;font-weight:800;letter-spacing:-.01em;margin:10px 0 4px;font-variant-numeric:tabular-nums;color:var(--ink)}
.desk-card .desk-price small{font-size:11px;font-weight:400;color:var(--ink-3);margin-left:3px}
.desk-card .desk-change{display:flex;align-items:baseline;gap:6px;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}
.desk-card .desk-change small{font-size:11px;font-weight:400;color:var(--ink-3)}
.desk-card.desk-old .desk-price,.desk-card.desk-old .desk-change{color:var(--ink-3)}
.desk-spark{display:block;width:100%;height:48px;margin-top:10px;color:var(--ink-4)}
.desk-card[data-tone=up] .desk-spark{color:var(--up)}
.desk-card[data-tone=down] .desk-spark{color:var(--down)}
.desk-series-date{display:block;font-size:10px;color:var(--ink-4)}
.desk-chart-empty{display:block;color:var(--ink-4);font-size:11px;padding:10px 0}
.desk-card .desk-evidence-label{display:flex;justify-content:space-between;margin-top:10px;padding-top:8px;border-top:1px solid var(--rule);font-size:11px;color:var(--ink-3)}
.desk-card .desk-evidence{margin:0}
/* 资金卡 */
.desk-capital-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.desk-capital-card{padding:14px 16px;border:1px solid var(--rule);border-radius:var(--r-m);background:var(--panel);min-width:0}
.desk-capital-card>span{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12.5px;font-weight:600;color:var(--ink-2)}
.desk-capital-card>span i{font-style:normal;font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--soft);color:var(--ink-3);white-space:nowrap}
.desk-capital-card[data-fresh=stale]>span i{background:var(--warn-bg);color:var(--warn)}
.desk-capital-card h3{font-size:20px;font-weight:800;line-height:1.3;margin:10px 0 4px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;color:var(--ink)}
.desk-capital-card h3 small{font-size:11px;font-weight:400;margin-left:4px;color:var(--ink-3)}
.desk-capital-card>p{font-size:12px;margin:4px 0;font-weight:700}
.desk-capital-card>p small{font-weight:400;color:var(--ink-3)}
.desk-capital-card .desk-caption{margin:6px 0 0;font-weight:400}
.desk-capital-card details{font-size:12px;color:var(--ink-3);line-height:1.7;padding-top:6px}
.desk-capital-card summary{cursor:pointer;color:var(--ink-2);min-height:40px;display:flex;align-items:center}
.desk-capital-card.desk-old h3{color:var(--ink-3)}
.desk-boundary{margin:20px 0 0;padding:14px 16px;border:1px dashed var(--rule-2);border-radius:var(--r-m);font-size:12px;line-height:1.75;color:var(--ink-3)}
.desk-boundary h3{font-size:13px;color:var(--ink-2);margin:0 0 6px}
.desk-boundary summary{cursor:pointer;font-weight:600;min-height:40px;display:flex;align-items:center}
#market-dashboard[data-load-failed] #desk-status{color:var(--warn)}

/* ---------- 7. 信号页控件（由 theme 接管的部分） ---------- */
.radar-preview{font-size:11.5px;color:var(--ink-3);margin:0 0 8px}
.radar-tabs{display:flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--rule);border-radius:999px;background:var(--soft);margin:0 0 14px;width:max-content;max-width:100%;overflow-x:auto;scrollbar-width:none}
.radar-tabs::-webkit-scrollbar{display:none}
.radar-tabs button{border:0;background:transparent;min-height:38px;padding:0 14px;border-radius:999px;font:inherit;font-size:13px;font-weight:600;color:var(--ink-2);cursor:pointer;white-space:nowrap}
.radar-tabs button[aria-pressed=true]{background:var(--panel);color:var(--ink);box-shadow:var(--sh-1)}
.radar-tabs>span{display:none}
.radar-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:18px 0 10px}
.radar-section-heading h2{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:800;letter-spacing:-.01em;margin:0}
.radar-section-heading p{margin:2px 0 0;font-size:12px;color:var(--ink-3)}
.radar-section-count{font-size:11px;font-weight:700;min-width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;background:var(--soft);border-radius:999px;color:var(--ink-2);padding:0 7px}
.radar-help-link{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:999px;border:1px solid var(--rule);background:var(--panel);color:var(--ink-3);font:inherit;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}
.radar-help-link:hover{color:var(--brand);border-color:var(--brand)}
.radar-filters{display:flex;gap:6px;padding:0 16px 10px;overflow-x:auto;scrollbar-width:none}
.radar-filters::-webkit-scrollbar{display:none}
.radar-filters button{flex:none;min-height:38px;padding:0 14px;border-radius:999px;border:1px solid var(--rule);background:var(--panel);font:inherit;font-size:12.5px;font-weight:600;color:var(--ink-2);cursor:pointer}
.radar-filters button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--panel)}
.radar-filters button[data-filter=long][aria-pressed=true]{background:var(--up);border-color:var(--up)}
.radar-filters button[data-filter=short][aria-pressed=true]{background:var(--down);border-color:var(--down)}
.radar-search{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 12px;border:1px solid var(--rule-2);border-radius:var(--r-s);background:var(--canvas);color:var(--ink-3)}
.radar-search input{border:0;background:transparent;font:inherit;font-size:14px;color:var(--ink);width:120px;outline:none}
.radar-sort{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 16px 10px;font-size:12px;color:var(--ink-3)}
.radar-sort label{display:flex;align-items:center;gap:8px}
.radar-sort select{font:inherit;font-size:12.5px;min-height:36px;padding:0 8px;border:1px solid var(--rule);border-radius:var(--r-s);background:var(--panel);color:var(--ink)}
.radar-fresh-tools{display:flex;align-items:center;gap:6px}
.radar-fresh-filter{display:flex;align-items:center;gap:6px;min-height:36px;cursor:pointer}
.radar-focus-bottom button{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border-radius:var(--r-s);border:1px solid var(--ink);background:var(--ink);color:var(--panel);font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;white-space:nowrap}
.radar-focus-bottom button:hover{opacity:.9}
.radar-detail-retry,.observation-method-link{display:inline-flex;align-items:center;min-height:38px;padding:0 12px;border:1px solid var(--rule);border-radius:var(--r-s);background:var(--panel);color:var(--brand);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
.observation-method-link{border:0;padding:0;background:transparent}
.radar .observation-card{border-radius:var(--r-m)}
#signals-page.radar .observation-card[data-kind=movement] .observation-category{background:var(--up-bg);color:var(--up);border-color:transparent}
#signals-page.radar .observation-card[data-kind=divergence] .observation-category,#signals-page.radar .radar-row[data-kind=divergence] .radar-row-label{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-line)}
#signals-page.radar .observation-card[data-kind=changed] .observation-category,#signals-page.radar .radar-row[data-kind=changed] .radar-row-label{background:var(--panel);color:var(--ink);border:1px solid var(--ink)}
#signals-page.radar .radar-row[data-kind=movement] .radar-row-label{background:var(--up-bg);color:var(--up);border-color:transparent}
.radar .radar-row-coin{border-left:0;padding-left:0}
.radar .radar-row[data-selected=true]{box-shadow:inset 3px 0 0 var(--brand)}
.radar .radar-mini-meter i.on:nth-child(-n+3){background:var(--down)}
.radar .radar-mini-meter i.on:nth-child(n+8){background:var(--up)}
.radar .radar-watchlist,.radar .radar-divergence,.radar .radar-brief,.radar .radar-news-card,.radar .radar-history-stat,.radar .radar-history-records,.radar .radar-context{border-radius:var(--r-m)}

/* ---------- 8. 平板 / 手机 ---------- */
@media (min-width:601px){
  .phead p{white-space:normal}
  .phead .market-button span{display:inline}
  .desk-nav{display:inline-flex;align-items:center;gap:2px}
}
@media (max-width:900px){
  .reading-library .mag-zone{grid-template-columns:1fr}
  .reading-library .mag-side{flex-direction:row;overflow-x:auto;padding:8px;gap:6px}
  .reading-library .mag-side-head{display:none}
  .reading-library .mag-card{min-width:240px;flex:none}
  .chain-focus{grid-template-columns:1fr}
  .desk-macro-grid,.desk-capital-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .desk-brief{grid-template-columns:1fr}
  .desk-brief-meta{gap:14px}
}
@media (max-width:600px){
  .market-page,.market-desk-inner{width:calc(100% - 40px);padding-bottom:40px}
  .reading-library .art-page{padding:8px 20px 40px}
  .sandbox-review-notice{width:calc(100% - 40px);margin-top:8px;font-size:11px}
  .ptop{gap:8px;min-height:40px;margin-bottom:4px}
  .ptop-stat{display:none}
  .market-nav a{min-height:40px;padding:0 12px;font-size:12.5px}
  .market-nav a i{display:none}
  .phead{grid-template-columns:auto minmax(0,1fr) auto;gap:10px;min-height:48px;padding:2px 0 10px;margin-bottom:10px}
  .phead-ico{width:34px;height:34px;border-radius:10px;font-size:14px}
  .phead h1{font-size:19px}
  .phead p{font-size:12px}
  .phead-meta{display:none}
  .reading-library .hero-card{padding:16px 16px;border-radius:var(--r-m)}
  .reading-library .hero-grid{grid-template-columns:1fr}
  .reading-library .hero-img{display:none}
  .reading-library .hero-title{font-size:18px;-webkit-line-clamp:3}
  .reading-library .hero-desc{-webkit-line-clamp:2;font-size:12.5px}
  .reading-library .hero-meta{margin-top:10px}
  .reading-library .article-feed>.feed-item{padding:14px 14px}
  .reading-library .feed-title{font-size:15px}
  .reading-library .feed-summary{font-size:12.5px}
  .reading-library .library-filters{padding:12px;gap:10px}
  .reading-library .library-filters .library-fields{gap:8px}
  .reading-library [data-channel="report"] .article-feed{grid-template-columns:1fr}
  .oc-toolbar{gap:6px}
  .seg button{padding:0 12px;font-size:12.5px}
  .oc-filter-panel{position:fixed;left:16px;right:16px;top:auto;bottom:calc(64px + env(safe-area-inset-bottom,0px));width:auto;max-height:60vh;overflow:auto}
  .chain-lead{padding:14px 16px;border-radius:var(--r-m)}
  .chain-lead>strong{font-size:28px}
  .chain-sample{padding:12px 14px}
  .chain-sample dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .chain-sample dl>div{display:block;border:0;padding:0}
  .chain-sample dt{font-size:11px}
  .chain-sample dd{margin-top:2px;font-size:17px}
  .chain-sample dd small{display:block;margin:0}
  .chain-event-main{grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;padding:12px 14px}
  .chain-event-kind{grid-column:1;grid-template-columns:32px auto}
  .chain-avatar{width:32px;height:32px;border-radius:8px;font-size:9px}
  .chain-event-value{grid-column:2;grid-row:1}
  .chain-event-story{grid-column:1/-1;grid-row:2}
  .chain-event-value strong{font-size:16px}
  .chain-event-value>span{display:none}
  .chain-desk .tx-details{padding:0 14px 8px}
  .desk-brief{padding:12px 14px}
  .desk-brief h2{font-size:14.5px}
  .desk-brief-meta{gap:12px;flex-wrap:wrap}
  .desk-thead{display:none}
  .desk-row>summary{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,.9fr) 20px;gap:8px;padding:0 12px;min-height:56px}
  .desk-row .desk-fresh{display:none}
  .desk-row .desk-asset-title b{font-size:13.5px}
  .desk-row .desk-price{font-size:14.5px}
  .desk-row .desk-change{font-size:12.5px}
  .desk-row .desk-change small{display:none}
  .desk-evidence{padding:4px 12px 12px}
  .desk-evidence dl{grid-template-columns:1fr}
  .desk-macro-grid,.desk-capital-grid{grid-template-columns:1fr;gap:8px}
  .desk-macro-grid .desk-card>summary{display:grid;grid-template-columns:1fr 120px;column-gap:10px;align-items:center}
  .desk-macro-grid .desk-asset-title,.desk-macro-grid .desk-card .desk-evidence-label{grid-column:1/-1}
  .desk-macro-grid .desk-spark{grid-column:2;grid-row:2/4;height:52px;margin:0}
  .desk-macro-grid .desk-series-date{grid-column:2}
  .desk-card .desk-price{font-size:20px;margin:8px 0 2px}
  .desk-capital-card h3{font-size:18px}
  .desk-section>header{margin:18px 0 8px}
  .radar-tabs button{min-height:40px;padding:0 12px;font-size:12.5px}
  .radar-filters{padding:0 12px 8px}
  .radar-sort{padding:0 12px 8px}
}
@media (prefers-reduced-motion:reduce){.market-page *,.market-desk-inner *,.reading-library *{transition:none}}

/* 信号页残留 token（合并后仅剩这些引用），映射到全站 token */
#signals-page.radar{--studio-lilac:var(--ink-3);--studio-border:var(--rule-2);--hint-bg:var(--warn-bg);--hint-border:var(--warn-line);--action-bg:var(--ink);--action-text:var(--panel);--accent-amber:var(--warn)}

/* 信号页内联小控件的最小点击区 */
#signals-page.radar .radar-help-button{min-width:36px;min-height:36px}
#signals-page.radar .radar-brief>a,#signals-page.radar .radar-footer a{display:inline-flex;align-items:center;min-height:40px}

/* 股市页沿用旧页头结构（.market-heading），补回基础排版 */
.market-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:4px 0 12px;padding-bottom:12px;border-bottom:1px solid var(--rule)}
.market-heading h1{font-size:22px;font-weight:800;letter-spacing:-.01em;margin:4px 0 4px;line-height:1.3}
.market-heading p{font-size:12.5px;color:var(--ink-3);margin:0;line-height:1.6}
.market-eyebrow{font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--ink-4)}
@media (max-width:600px){.market-heading{align-items:flex-start}.market-heading h1{font-size:19px}}
