/* =====================================================================
   SeraGPU Market OS · Design Tokens
   Professional / Dense / Live / Transparent / Financial / Minimal
   白底 · 黑字 · Sera Blue · 轻边框 · 无大阴影 · 无玻璃拟态
   Motion: 150–220ms（fade / slide / number change / row highlight）
   ===================================================================== */
:root {
  --mk-bg:        #FFFFFF;
  --mk-bg-soft:   #F7F8FA;
  --mk-bg-sunken: #F2F4F7;

  --mk-ink:       #14181F;
  --mk-ink-2:     #4B5563;
  --mk-ink-3:     #8A93A6;

  --mk-line:      #E5E7EB;
  --mk-line-2:    #D7DBE1;

  --mk-blue:      #0052FF;   /* Sera Blue */
  --mk-blue-soft: #EEF4FF;

  --mk-supply:    #0052FF;   /* Supply   Blue   */
  --mk-demand:    #F5820B;   /* Demand   Orange */
  --mk-verified:  #17875C;   /* Verified Green  */
  --mk-urgent:    #E5484D;   /* Urgent   Red    */
  --mk-expired:   #8A93A6;   /* Expired  Gray   */

  --mk-r:      8px;
  --mk-r-lg:   12px;
  --mk-mono:   ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
}

* { box-sizing: border-box; }

.mk-body {
  margin: 0;
  background: var(--mk-bg-soft);
  color: var(--mk-ink);
  font: 14px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
        "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  -webkit-font-smoothing: antialiased;
}

/* 2026-10-14 统一：原 1120 → 1160，与页头和其他页对齐。 */
.mk-wrap { max-width: var(--s-container); margin: 0 auto; padding: 0 24px; box-sizing: border-box; }

/* ---------------- Header ---------------- */
/* ---------------- Type switches ---------------- */
.mk-seg { display: inline-flex; border: 1px solid var(--mk-line-2); border-radius: var(--mk-r); overflow: hidden; background: #fff; }
.mk-seg button {
  appearance: none; border: 0; background: #fff; cursor: pointer;
  padding: 7px 16px; font-size: 13px; font-weight: 700; color: var(--mk-ink-2);
  border-right: 1px solid var(--mk-line); transition: background 160ms ease, color 160ms ease;
}
.mk-seg button:last-child { border-right: 0; }
.mk-seg button:hover { background: var(--mk-bg-soft); }
.mk-seg button.on { background: var(--mk-blue); color: #fff; }

/* ---------------- Card / section ---------------- */
.mk-card {
  background: #fff; border: 1px solid var(--mk-line); border-radius: var(--mk-r-lg);
  padding: 20px; margin-bottom: 16px;
}
.mk-card > h2 { margin: 0 0 4px; font-size: 14px; font-weight: 800; letter-spacing: .2px; }
.mk-hint { margin: 0 0 16px; font-size: 12px; color: var(--mk-ink-3); line-height: 1.6; }

/* ---------------- Form ---------------- */
.mk-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 14px; }
.mk-grid.col2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mk-f { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.mk-f > label { font-size: 11px; font-weight: 700; color: var(--mk-ink-3); letter-spacing: .3px; }
.mk-f input, .mk-f select, .mk-f textarea {
  appearance: none; width: 100%;
  border: 1px solid var(--mk-line-2); border-radius: var(--mk-r);
  padding: 8px 10px; font: inherit; font-size: 13px; color: var(--mk-ink); background: #fff;
  transition: border-color 160ms ease, box-shadow 160ms ease;
}
.mk-f input:focus, .mk-f select:focus, .mk-f textarea:focus {
  outline: none; border-color: var(--mk-blue); box-shadow: 0 0 0 3px rgba(0, 82, 255, .12);
}
.mk-f textarea { resize: vertical; min-height: 92px; line-height: 1.6; }

/* =====================================================================
   采购需求表单（2026-10-17）
   三必填（设备型号 / 数量 / 预算区间）+ 其余全选填。
   视觉上必须一眼分得开：必填在最上面，选填全部压在灰色的分组标题下面。
   ===================================================================== */

/* ⚠ hidden 属性失效修复（2026-10-17）：
 * .mk-grid{display:grid} / .mk-f{display:flex} 的类选择器会把 HTML 的
 * hidden 属性（UA 样式 display:none）压掉 —— #sharedFoot、#d_chipOtherWrap
 * 就这么漏出来了。通用救回，hidden=false 时本条不生效，无副作用。 */
[hidden] { display: none !important; }

/* 顶部规则条：先讲清楚「为什么只要这三样」，别人才肯填 */
.mk-rule {
  border: 1px solid rgba(0, 82, 255, .22); background: var(--mk-blue-soft);
  border-radius: var(--mk-r); padding: 11px 13px; margin-bottom: 16px;
  font-size: 12.5px; line-height: 1.75; color: var(--mk-ink-2);
}
.mk-rule b { color: var(--mk-ink); }

/* 选填分组标题 */
.mk-sec {
  margin: 18px 0 10px; padding-bottom: 7px; border-bottom: 1px solid var(--mk-line);
  font-size: 11px; font-weight: 800; letter-spacing: .4px; color: var(--mk-ink-3);
}

/* 数量：输入框内右侧固定「台」 —— 不写在 label 里是为了不让「台」被当成占位符 */
.mk-in-suf { position: relative; }
/* ⚠ .mk-f input 只有 width:100% 没有 box-sizing —— 之前都是 flex 直接收缩兜着，
 * 换成包一层 div 之后没人兜了：100% + padding 40px 会把「台」挤出框外 */
.mk-in-suf > input { box-sizing: border-box; padding-right: 34px; }
.mk-in-suf > .mk-suf {
  position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
  font-size: 11.5px; color: var(--mk-ink-3); pointer-events: none;
}

/* 预算区间：最低 – 最高 + 单位 */
.mk-rng { display: flex; align-items: center; gap: 6px; }
.mk-rng input { flex: 1 1 0; min-width: 0; }
.mk-rng select { flex: 0 0 92px; width: 92px; }
.mk-dash { flex: 0 0 auto; color: var(--mk-ink-3); font-size: 12px; }

/* 提货地多选：胶囊式，不用一堆裸 checkbox */
.mk-ck { display: flex; flex-wrap: wrap; gap: 6px; }
.mk-ck label {
  display: inline-flex; align-items: center; gap: 5px; cursor: pointer;
  border: 1px solid var(--mk-line-2); border-radius: 999px; background: #fff;
  padding: 6px 12px; font-size: 12.5px; color: var(--mk-ink-2); line-height: 1;
  transition: border-color 140ms ease, background 140ms ease, color 140ms ease;
}
.mk-ck label:hover { border-color: var(--mk-blue); }
.mk-ck input { position: absolute; opacity: 0; width: 0; height: 0; }
.mk-ck input:checked + span { color: var(--mk-blue); font-weight: 700; }
.mk-ck label:has(input:checked) {
  border-color: var(--mk-blue); background: var(--mk-blue-soft); color: var(--mk-blue);
}

.mk-tip { margin: 6px 0 0; font-size: 11.5px; line-height: 1.7; color: var(--mk-ink-3); }

/* 选填折叠区（2026-10-17 Sera：必填三样优先，选填收进「更多选项」） */
.mk-more { border: 1px dashed var(--mk-line-2); border-radius: var(--mk-r); margin-top: 14px; }
.mk-more summary { cursor: pointer; list-style: none; font-size: 12.5px; font-weight: 700;
  color: var(--mk-blue); padding: 11px 13px; user-select: none; }
.mk-more summary::-webkit-details-marker { display: none; }
.mk-more summary:hover { background: var(--mk-blue-soft); }
.mk-more[open] summary { border-bottom: 1px solid var(--mk-line); }
.mk-more-body { padding: 14px 13px 4px; }

/* ---------------- Paste parser ---------------- */
.mk-paste { display: flex; flex-direction: column; gap: 8px; }
.mk-paste-act { display: flex; gap: 8px; align-items: center; }
.mk-paste textarea { min-height: 104px; }
#bulkInput { min-height: 132px; }
.mk-parsed {
  border: 1px dashed var(--mk-line-2); border-radius: var(--mk-r);
  background: var(--mk-bg-soft); padding: 10px 12px; font-size: 12px; color: var(--mk-ink-2);
}
.mk-parsed b { color: var(--mk-ink); font-weight: 700; }
.mk-parsed .row { display: flex; gap: 8px; flex-wrap: wrap; }
.mk-parsed .row > span {
  background: #fff; border: 1px solid var(--mk-line); border-radius: 999px;
  padding: 2px 9px; font-size: 11.5px; white-space: nowrap;
}
.mk-parsed .warn { color: var(--mk-urgent); font-size: 11.5px; margin-top: 6px; display: block; }

/* ---------------- Media upload ---------------- */
.mk-drop {
  border: 1.5px dashed var(--mk-line-2); border-radius: var(--mk-r-lg);
  padding: 22px; text-align: center; background: var(--mk-bg-soft);
  transition: border-color 160ms ease, background 160ms ease;
}
.mk-drop.drag { border-color: var(--mk-blue); background: var(--mk-blue-soft); }
.mk-drop p { margin: 0 0 10px; font-size: 12.5px; color: var(--mk-ink-3); }

.mk-media-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(168px, 1fr)); gap: 10px; margin-top: 12px; }
.mk-media {
  border: 1px solid var(--mk-line); border-radius: var(--mk-r); overflow: hidden; background: #fff;
  display: flex; flex-direction: column;
}
.mk-media .thumb { position: relative; aspect-ratio: 4/3; background: var(--mk-bg-sunken); display: flex; align-items: center; justify-content: center; }
.mk-media .thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mk-media .thumb video { width: 100%; height: 100%; object-fit: cover; display: block; }
.mk-media .thumb .novid { font-size: 22px; color: var(--mk-ink-3); }
.mk-media .body { padding: 8px 9px; display: flex; flex-direction: column; gap: 6px; }
.mk-media .body select, .mk-media .body input { font-size: 11.5px; padding: 5px 7px; }
.mk-media .rm {
  appearance: none; border: 1px solid var(--mk-line-2); background: #fff; border-radius: 6px;
  font-size: 11px; color: var(--mk-ink-2); cursor: pointer; padding: 4px 0;
}
.mk-media .rm:hover { border-color: var(--mk-urgent); color: var(--mk-urgent); }
.mk-media .prog { height: 3px; background: var(--mk-bg-sunken); }
.mk-media .prog > i { display: block; height: 100%; background: var(--mk-blue); width: 0; transition: width 180ms linear; }
.mk-media.done .prog > i { width: 100%; background: var(--mk-verified); }

/* ---------------- Badges ---------------- */
.mk-badge {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 10.5px; font-weight: 800; letter-spacing: .4px;
  padding: 2px 7px; border-radius: 4px; border: 1px solid transparent; white-space: nowrap;
}
.mk-badge.supply   { color: var(--mk-supply);   background: var(--mk-blue-soft); border-color: rgba(0,82,255,.2); }
.mk-badge.demand   { color: var(--mk-demand);   background: #FFF6E9; border-color: rgba(245,130,11,.24); }
.mk-badge.v        { color: var(--mk-verified); background: #EAF9F0; border-color: rgba(23,135,92,.22); }
.mk-badge.v0       { color: var(--mk-ink-3);    background: var(--mk-bg-sunken); border-color: var(--mk-line); }
.mk-badge.evidence { color: var(--mk-ink-2);    background: #fff; border-color: var(--mk-line-2); }
.mk-badge.media    { color: var(--mk-ink-2);    background: var(--mk-bg-sunken); border-color: var(--mk-line); font-variant-numeric: tabular-nums; }

/* ---------------- Buttons ---------------- */
.mk-btn {
  appearance: none; cursor: pointer; font: inherit; font-size: 13px; font-weight: 700;
  padding: 9px 16px; border-radius: var(--mk-r); border: 1px solid var(--mk-line-2);
  background: #fff; color: var(--mk-ink); transition: background 160ms ease, border-color 160ms ease, transform 160ms ease;
}
.mk-btn:hover { background: var(--mk-bg-soft); }
.mk-btn:active { transform: translateY(1px); }
.mk-btn.primary { background: var(--mk-blue); border-color: var(--mk-blue); color: #fff; }
.mk-btn.primary:hover { background: #0040CC; }
.mk-btn.ghost { border-color: transparent; background: transparent; color: var(--mk-ink-2); }
.mk-btn:disabled { opacity: .55; cursor: not-allowed; }
.mk-btn.sm { padding: 6px 11px; font-size: 12px; }

/* ---------------- Toast ---------------- */
.mk-toast {
  position: fixed; left: 50%; bottom: 26px; transform: translateX(-50%) translateY(8px);
  background: var(--mk-ink); color: #fff; font-size: 12.5px; font-weight: 600;
  padding: 10px 16px; border-radius: var(--mk-r); opacity: 0; pointer-events: none;
  transition: opacity 180ms ease, transform 180ms ease; z-index: 90; max-width: 90vw;
}
.mk-toast.on { opacity: 1; transform: translateX(-50%) translateY(0); }
.mk-toast.err { background: var(--mk-urgent); }

/* ---------------- Result ---------------- */
.mk-result { text-align: center; padding: 26px 20px; }
.mk-result .code { font-family: var(--mk-mono); font-size: 20px; font-weight: 700; letter-spacing: .5px; margin: 6px 0 14px; }
.mk-result .acts { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; }

.mk-note {
  font-size: 11.5px; color: var(--mk-ink-3); line-height: 1.65;
  border-top: 1px solid var(--mk-line); padding-top: 12px; margin-top: 4px;
}

/* ---------------- Responsive ---------------- */
@media (max-width: 900px) {
  .mk-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .mk-wrap { padding: 0 14px; }
  .mk-grid, .mk-grid.col2 { grid-template-columns: 1fr; }
  .mk-card { padding: 16px; }
  /* 390px 下「最低 – 最高 + 单位」要挤进一行，单位下拉收窄 */
  .mk-rng select { flex-basis: 76px; width: 76px; }
}

/* =====================================================================
   Market Feed · 信息流（形态参考居间宝：一行一条，不是卡片）
   ===================================================================== */

/* ---- Ticker ---- */
.mk-ticker { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1px; background: var(--mk-line); border: 1px solid var(--mk-line); border-radius: var(--mk-r); overflow: hidden; }
.mk-tick { background: #fff; padding: 10px 12px; }
.mk-tick .m { font-size: 11px; font-weight: 800; letter-spacing: .5px; color: var(--mk-ink-3); }
.mk-tick .v { font-size: 19px; font-weight: 800; letter-spacing: -.4px; font-variant-numeric: tabular-nums; margin-top: 2px; }
.mk-tick .v i { font-style: normal; font-size: 10.5px; font-weight: 600; color: var(--mk-ink-3); margin-left: 3px; }
.mk-tick .s { font-size: 10.5px; color: var(--mk-ink-3); margin-top: 2px; font-variant-numeric: tabular-nums; }

/* ---- 统计条 ---- */
.mk-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--mk-line); border: 1px solid var(--mk-line); border-radius: var(--mk-r); overflow: hidden; }
.mk-stat { background: #fff; padding: 9px 12px; }
.mk-stat .k { font-size: 10.5px; font-weight: 700; color: var(--mk-ink-3); letter-spacing: .3px; }
.mk-stat .v { font-size: 17px; font-weight: 800; font-variant-numeric: tabular-nums; margin-top: 1px; }

/* ---- 搜索 / 筛选 ---- */
.mk-search { flex: 1; min-width: 200px; border: 1px solid var(--mk-line-2); border-radius: var(--mk-r); padding: 7px 11px; font: inherit; font-size: 13px; background: #fff; }
.mk-search:focus { outline: none; border-color: var(--mk-blue); box-shadow: 0 0 0 3px rgba(0, 82, 255, .12); }
.mk-filters { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.mk-filters select { border: 1px solid var(--mk-line-2); border-radius: var(--mk-r); padding: 6px 9px; font: inherit; font-size: 12px; background: #fff; color: var(--mk-ink-2); }

/* ---- 信息流表头 ---- */
.mk-feed-head {
  display: flex; gap: 10px; align-items: center;
  padding: 8px 14px; background: var(--mk-bg-soft); border-bottom: 1px solid var(--mk-line);
  font-size: 10.5px; font-weight: 800; letter-spacing: .4px; color: var(--mk-ink-3);
}

/* ---- 一行一条 ---- */
.mk-row {
  display: flex; gap: 10px; align-items: center;
  padding: 9px 14px; border-bottom: 1px solid var(--mk-line);
  text-decoration: none; color: inherit; transition: background 150ms ease;
}
.mk-row:last-child { border-bottom: 0; }
.mk-row:hover { background: #F7FAFF; }
.mk-row .c-kind { width: 52px; flex: none; }
.mk-row .c-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.mk-row .c-text .t {
  font-size: 13px; color: var(--mk-ink); line-height: 1.4;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mk-row .c-text .tags { display: flex; gap: 5px; flex-wrap: wrap; }
.mk-row .c-qty { width: 64px; flex: none; text-align: right; font-size: 12.5px; font-variant-numeric: tabular-nums; color: var(--mk-ink-2); }
.mk-row .c-loc { width: 74px; flex: none; font-size: 12.5px; color: var(--mk-ink-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mk-row .c-lane { width: 56px; flex: none; font-size: 12.5px; color: var(--mk-ink-2); }
.mk-row .c-lvl { width: 52px; flex: none; }
.mk-row .c-at { width: 66px; flex: none; text-align: right; font-size: 12px; color: var(--mk-ink-3); font-variant-numeric: tabular-nums; }

.mk-empty { padding: 28px 16px; text-align: center; font-size: 12.5px; color: var(--mk-ink-3); }

/* ---- 移动端：信息流转紧凑卡 ---- */
@media (max-width: 760px) {
  .mk-feed-head { display: none; }
  .mk-row { flex-wrap: wrap; padding: 10px 12px; gap: 6px 8px; }
  .mk-row .c-kind { width: auto; }
  .mk-row .c-text { flex: 1 1 100%; order: 2; }
  .mk-row .c-text .t { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  .mk-row .c-qty, .mk-row .c-loc, .mk-row .c-lane { width: auto; order: 3; }
  .mk-row .c-lvl { width: auto; order: 1; margin-left: auto; }
  .mk-row .c-at { width: auto; order: 3; margin-left: auto; text-align: right; }
  .mk-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* =====================================================================
   首页货盘 · 列宽与状态色（Bloomberg × 1688 × OTC Desk）
   黑/白/灰为主；蓝色只用于可操作；绿=核验 橙=未来交付 红=风险/过期
   ===================================================================== */
.mk-badge.future  { color: #B45309; background: #FFF6E9; border-color: rgba(245,130,11,.28); }
.mk-badge.risk    { color: var(--mk-urgent); background: #FDECEC; border-color: rgba(229,72,77,.26); }

.mk-row .c-lane2 { width: 82px; flex: none; }
.mk-row .c-qty2  { width: 70px; flex: none; text-align: right; font-size: 12.5px; font-variant-numeric: tabular-nums; color: var(--mk-ink-2); }
.mk-row .c-when  { width: 76px; flex: none; font-size: 12.5px; color: var(--mk-ink-2); }
.mk-row .c-loc2  { width: 66px; flex: none; font-size: 12.5px; color: var(--mk-ink-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mk-row .c-price { width: 96px; flex: none; text-align: right; font-size: 13px; font-weight: 700; font-variant-numeric: tabular-nums; }
.mk-row .c-lvl2  { width: 56px; flex: none; }
.mk-row .c-at2   { width: 76px; flex: none; text-align: right; font-size: 12px; color: var(--mk-ink-3); font-variant-numeric: tabular-nums; }

/* 首页统计条 6 格 */
.mk-stats { grid-template-columns: repeat(6, minmax(0, 1fr)); }

@media (max-width: 1000px) {
  .mk-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .mk-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  /* 移动端：信息流转紧凑卡（不是缩小的表格） */
  .mk-row { flex-wrap: wrap; gap: 5px 8px; padding: 10px 12px; }
  .mk-row .c-lane2 { width: auto; }
  .mk-row .c-text  { flex: 1 1 100%; order: 2; }
  .mk-row .c-text .t { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-weight: 600; }
  .mk-row .c-qty2, .mk-row .c-when, .mk-row .c-loc2 { width: auto; order: 3; font-size: 12px; }
  .mk-row .c-price { width: auto; order: 3; margin-left: auto; text-align: right; }
  .mk-row .c-lvl2  { width: auto; order: 1; margin-left: auto; }
  .mk-row .c-at2   { width: auto; order: 4; margin-left: auto; }
}

/* =====================================================================
   SeraGPU 3.0 · Card Feed
   卡片层只允许 6 个信息：型号 / 价格 / 数量 / 交期 / 地点 / 一个 CTA
   圆角 18px · 大留白 · 大数字 · 正文极少
   ===================================================================== */

/* ---- 货源卡网格：PC 2 列（3 列会变商城），Mobile 1 列 ---- */
.mk-lots { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }

.mk-lot {
  position: relative; background: #fff; border: 1px solid var(--mk-line);
  border-radius: 18px; padding: 20px 22px 18px; text-decoration: none; color: inherit;
  display: flex; flex-direction: column; min-height: 168px;
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}
.mk-lot:hover { border-color: #C7D2E4; box-shadow: 0 6px 20px rgba(20,30,60,.07); transform: translateY(-1px); }

.mk-lot .lot-top { display: flex; align-items: center; gap: 6px; margin-bottom: 12px; }
.mk-lot .lot-name { font-size: 16px; font-weight: 700; letter-spacing: -.2px; color: var(--mk-ink); }
.mk-lot .lot-price {
  font-size: 27px; font-weight: 800; letter-spacing: -.8px; line-height: 1.1;
  font-variant-numeric: tabular-nums; margin: 2px 0 12px;
}
.mk-lot .lot-price i { font-style: normal; font-size: 13px; font-weight: 600; color: var(--mk-ink-3); margin-left: 2px; letter-spacing: 0; }
.mk-lot .lot-meta { display: flex; gap: 8px; flex-wrap: wrap; font-size: 13px; color: var(--mk-ink-2); margin-bottom: 14px; }
.mk-lot .lot-meta span { display: inline-flex; align-items: center; gap: 3px; }
.mk-lot .lot-meta b { font-weight: 700; color: var(--mk-ink); font-variant-numeric: tabular-nums; }
.mk-lot .lot-cta { margin-top: auto; }
.mk-lot .lot-cta .mk-btn { width: 100%; }

/* ---- 有人想买 ---- */
.mk-wants { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.mk-want {
  display: flex; align-items: center; gap: 12px; background: #fff;
  border: 1px solid var(--mk-line); border-radius: 16px; padding: 14px 16px;
}
.mk-want .dot { width: 9px; height: 9px; border-radius: 50%; background: #7C3AED; flex: none; }
.mk-want .w-main { flex: 1; min-width: 0; }
.mk-want .w-t { font-size: 14px; font-weight: 700; }
.mk-want .w-s { font-size: 12px; color: var(--mk-ink-3); margin-top: 1px; }
.mk-want .mk-btn { flex: none; }

/* ---- 市场动态：故事卡（不是 Dashboard 数据块） ---- */
.mk-stories { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.mk-story {
  background: #fff; border: 1px solid var(--mk-line); border-radius: 18px; padding: 18px 20px;
  display: flex; flex-direction: column;
}
.mk-story .ico { font-size: 20px; line-height: 1; margin-bottom: 8px; }
.mk-story .h { font-size: 14px; font-weight: 800; letter-spacing: -.1px; }
.mk-story .p { font-size: 12.5px; color: var(--mk-ink-2); margin-top: 4px; line-height: 1.55; }
.mk-story .p b { color: var(--mk-ink); font-size: 15px; font-weight: 800; font-variant-numeric: tabular-nums; }
.mk-story .a { margin-top: 10px; font-size: 12px; font-weight: 700; color: var(--mk-blue); text-decoration: none; }

/* ---- 公开市场消息（翻译后的卡片） ---- */
.mk-pubs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.mk-pub {
  background: #fff; border: 1px dashed var(--mk-line-2); border-radius: 16px; padding: 14px 16px;
  display: flex; flex-direction: column;
}
.mk-pub .p-name { font-size: 14px; font-weight: 700; }
.mk-pub .p-price { font-size: 18px; font-weight: 800; letter-spacing: -.4px; margin-top: 3px; font-variant-numeric: tabular-nums; }
.mk-pub .p-meta { font-size: 12px; color: var(--mk-ink-2); margin-top: 4px; }
.mk-pub .p-foot { margin-top: 9px; display: flex; align-items: center; gap: 8px; }
.mk-pub .p-src { font-size: 10.5px; color: var(--mk-ink-3); }
.mk-pub .p-raw { margin-left: auto; font-size: 10.5px; color: var(--mk-ink-3); cursor: pointer; text-decoration: underline dotted; }

/* ---- 订阅 ---- */
.mk-sub { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.mk-chips { display: flex; gap: 7px; flex-wrap: wrap; }
.mk-chip {
  appearance: none; border: 1px solid var(--mk-line-2); background: #fff; border-radius: 999px;
  padding: 6px 14px; font-size: 12.5px; font-weight: 700; color: var(--mk-ink-2); cursor: pointer;
  transition: background 160ms ease, color 160ms ease, border-color 160ms ease;
}
.mk-chip.on { background: var(--mk-blue); border-color: var(--mk-blue); color: #fff; }

/* ---- 区块标题 ---- */
.mk-h { display: flex; align-items: baseline; gap: 8px; margin: 0 0 12px; }
.mk-h h2 { margin: 0; font-size: 17px; font-weight: 800; letter-spacing: -.3px; }
.mk-h .sub { font-size: 12px; color: var(--mk-ink-3); }
.mk-h .more { margin-left: auto; font-size: 12px; color: var(--mk-blue); text-decoration: none; font-weight: 700; }

/* ---- Hero：今天有什么货？ ---- */
.mk-hero { padding: 26px 0 20px; }
.mk-hero h1 { margin: 0 0 6px; font-size: 30px; font-weight: 800; letter-spacing: -1px; line-height: 1.15; }
.mk-hero .lead { margin: 0 0 16px; font-size: 14px; color: var(--mk-ink-2); }
.mk-hero-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }

@media (max-width: 900px) {
  .mk-lots, .mk-wants, .mk-pubs { grid-template-columns: 1fr; }
  .mk-stories { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .mk-hero h1 { font-size: 24px; }
  .mk-lot { padding: 17px 18px 16px; min-height: 0; }
  .mk-lot .lot-price { font-size: 24px; }
}

/* =====================================================================
   Compute Rental Market · /rental
   金融行情终端 + Marketplace + 价格比较器。数字优先，无装饰图。
   ===================================================================== */

/* 筛选行 */
.mk-filter-row { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 8px; }
.mk-filter-k { font-size: 11px; font-weight: 800; color: var(--mk-ink-3); letter-spacing: .4px; width: 30px; flex: none; padding-top: 6px; }

/* 工具条 */
.mk-toolbar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin: 14px 0 10px; }
.mk-select { border: 1px solid var(--mk-line-2); border-radius: var(--mk-r); padding: 6px 9px; font: inherit; font-size: 12px; background: #fff; color: var(--mk-ink-2); }

/* 免责条 */
.mk-disclaimer {
  font-size: 11.5px; color: var(--mk-ink-3); background: var(--mk-bg-soft);
  border: 1px solid var(--mk-line); border-radius: var(--mk-r); padding: 7px 12px; margin-bottom: 12px;
}

/* ---- 租赁卡 ---- */
.mk-lots .rq-card {
  position: relative; background: #fff; border: 1px solid var(--mk-line); border-radius: 18px;
  padding: 18px 20px 14px; text-decoration: none; color: inherit; display: flex; flex-direction: column;
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}
.rq-card:hover { border-color: #C7D2E4; box-shadow: 0 6px 20px rgba(20,30,60,.07); transform: translateY(-1px); }
.rq-card .rq-top { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.rq-card .rq-model { font-size: 16px; font-weight: 800; letter-spacing: -.3px; }
.rq-card .rq-loc { font-size: 12px; color: var(--mk-ink-3); margin-bottom: 10px; }
.rq-card .rq-raw { font-size: 23px; font-weight: 800; letter-spacing: -.6px; font-variant-numeric: tabular-nums; line-height: 1.15; }
.rq-card .rq-std { font-size: 12.5px; color: var(--mk-ink-2); margin-top: 4px; font-variant-numeric: tabular-nums; }
.rq-card .rq-std.warn { color: var(--mk-orange, #B45309); background: var(--mk-bg-soft); border-radius: 6px; padding: 5px 8px; font-size: 11.5px; margin-top: 8px; }
.rq-card .rq-meta { font-size: 12px; color: var(--mk-ink-2); margin-top: 8px; }
.rq-card .rq-foot {
  display: flex; gap: 8px; align-items: center; margin-top: 12px; padding-top: 10px;
  border-top: 1px solid var(--mk-line); font-size: 11px; color: var(--mk-ink-3);
}
.rq-card .rq-src { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rq-card .rq-time { margin-left: auto; flex: none; white-space: nowrap; }
.rq-card .rq-time.warn { color: var(--mk-urgent); }
.rq-card .rq-cta { margin-top: 8px; font-size: 12px; font-weight: 700; color: var(--mk-blue); }

/* ---- 租赁表 ---- */
.rq-table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.rq-table th {
  text-align: left; font-size: 10.5px; font-weight: 800; letter-spacing: .4px; color: var(--mk-ink-3);
  padding: 8px 10px; border-bottom: 1px solid var(--mk-line-2); white-space: nowrap; background: var(--mk-bg-soft);
}
.rq-table td { padding: 9px 10px; border-bottom: 1px solid var(--mk-line); }
.rq-table td.num { text-align: right; font-variant-numeric: tabular-nums; }
.rq-table td i { font-style: normal; font-size: 10.5px; color: var(--mk-ink-3); }
.rq-table td.warn { color: var(--mk-urgent); }
.rq-table tbody tr:hover { background: #F7FAFF; }

/* ---- 详情 ---- */
.d-row { display: flex; justify-content: space-between; gap: 14px; padding: 7px 0; border-bottom: 1px dashed var(--mk-line); font-size: 13px; }
.d-row:last-child { border-bottom: 0; }
.d-row .k { color: var(--mk-ink-3); font-size: 12px; flex: none; }
.d-row .v { text-align: right; font-variant-numeric: tabular-nums; word-break: break-word; }
.d-raw {
  margin-top: 10px; background: var(--mk-bg-soft); border: 1px solid var(--mk-line); border-radius: var(--mk-r);
  padding: 10px 12px; font-size: 12px; color: var(--mk-ink-2); line-height: 1.6; white-space: pre-wrap; word-break: break-word;
}
.d-fx { margin-top: 10px; font-size: 11px; color: var(--mk-ink-3); background: var(--mk-bg-soft); border-radius: var(--mk-r); padding: 7px 10px; }

@media (max-width: 760px) {
  .mk-filter-row { flex-direction: column; gap: 4px; }
  .mk-filter-k { width: auto; padding-top: 0; }
  .rq-card .rq-raw { font-size: 21px; }
}
@media (max-width: 360px) {
  .mk-wrap { padding: 0 12px; }
  .rq-card { padding: 15px 15px 12px; }
}
