/* ===================================================================
   硅基文明——先知 · 响应式收尾层（responsive overhaul）
   由各页 <head> 最后引入，优先级高于先行样式表；mobile-app.css 是运行时
   注入的（排在本文件之后），所以凡是要压过它的规则都用了更高 specificity
   或 !important。断点沿用全站既有体系：900 = 移动壳，768 = 手机收尾，
   480 = 小屏。桌面（≥1200px）除 /topic/ 热力图的既有破损修复外不改观感。
   =================================================================== */

/* ── A. 全宽度 bug 修复 ─────────────────────────────────────────────
   1) 服务端注入的「全站免费开放」徽章是裸 span，窄处会被压成竖排；
      钉死不换行、不收缩（在 /topic/ 桌面宽下实测出现过）。 */
#radar-free-badge{ white-space:nowrap; flex:none; }

/* 2) /topic/（industries）热力图桌面破损：
      - 统计行与时间范围筹码行之间的虚线分隔压线：给控件区补足上距；
      - 行首标签在 150px 列里被截断：列加宽到 172px 且允许两行；
      - 列头同理允许换行；矩阵容器兜底横向滚动，防列数变化时错位溢出。 */
.ind-controls{ padding-top:16px; }
.ind-ctrl-row{ flex-wrap:wrap; row-gap:6px; }
.ind-matrix{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.mx-grid{ grid-template-columns:172px repeat(auto-fit, minmax(56px, 1fr)); }
.mx-cell.rowhead{
  white-space:normal; line-height:1.35; text-align:left;
  display:flex; align-items:center;
}
.mx-cell.head{ white-space:normal; line-height:1.3; }

/* ── B. 平板（901–1199px）：右侧下拉菜单防出屏 ── */
@media (min-width:901px) and (max-width:1199px){
  .nav-cluster-r .nav-menu{ left:auto; right:0; }
}

/* ── C. 移动层合并（≤900px，与全站移动壳同一断点） ──────────────────
   目标：一根顶栏 + 至多一个常驻底部元素。
   - 移动 Web：底栏 dock 与抽屉导航重复（抽屉已按移动优先级重排），
     dock 只保留在原生 App 壳（is-cap-app）里当 tab bar；Web 端隐藏，
     并把 body 为 dock 预留的底部 padding 一并收回。
   - AI 搜索不再 position:sticky 常驻占层：随页面滚动（研判台的搜索在
     顶栏内、首页的在 hero 里，都仍在首屏可达）。 */
@media (max-width:900px){
  html.has-mobile-dock:not(.is-cap-app) .mobile-dock{ display:none !important; }
  html.has-mobile-dock:not(.is-cap-app) body{
    padding-bottom:max(24px, env(safe-area-inset-bottom)) !important;
  }
  /* dock 隐藏后，浮钮/回顶/Toast 回到正常底距 */
  html.has-mobile-dock:not(.is-cap-app) .analyst-fab{
    bottom:calc(16px + env(safe-area-inset-bottom)) !important;
    right:max(12px, env(safe-area-inset-right)) !important;
  }
  html.has-mobile-dock:not(.is-cap-app) .nx-top{
    bottom:calc(84px + env(safe-area-inset-bottom)) !important;
  }
  html.has-mobile-dock:not(.is-cap-app) .me-toast{
    bottom:calc(20px + env(safe-area-inset-bottom)) !important;
  }
  .ai-search, .hero .ai-search{ position:static !important; top:auto !important; }
  /* 推送征询卡原本按「有 dock」抬高，无 dock 时贴底即可（盖过其注入样式） */
  body .ra-push-ask{ bottom:calc(16px + env(safe-area-inset-bottom)); }

  /* 抽屉顶部搜索行（结构由 site-chrome.js 生成；抽屉 ≥901px 不显示） */
  .app-drawer-search{ display:flex; gap:8px; padding:12px 14px 2px; }
  .app-drawer-search input{
    flex:1; min-width:0; height:44px; padding:0 14px;
    border:1px solid var(--border); border-radius:999px;
    background:var(--panel-2); color:var(--text);
    font-size:16px; outline:none;
  }
  .app-drawer-search input:focus{ border-color:var(--accent); }
  .app-drawer-search button{
    flex:none; height:44px; padding:0 16px; border:0; border-radius:999px;
    background:var(--accent); color:var(--accent-ink, #1b1712);
    font-size:14px; font-weight:700; cursor:pointer;
  }
}

/* ── D. 手机收尾（≤768px） ── */
@media (max-width:768px){

  /* D1. 字体下限：辅助文字 ≥12px，密排正文放宽行高 */
  .kpi .k, .stat .k{ font-size:12px; }
  .tape-name i{ font-size:12px; }
  .tape-px em{ font-size:12px; }
  .tape-meta{ font-size:12px; }
  .opp-m, .opp-note{ font-size:12px; }
  .ra-item .m{ font-size:12px; }
  .ra-consent .ra-why{ font-size:12px; }
  .tax-pill{ font-size:12px; }
  .ind-ctrl-label{ font-size:12px; }
  .mx-cell{ font-size:12px; }
  .fin-cap{ font-size:12px; }
  .h-row .h-rate{ font-size:12px; }
  .tape-why{ font-size:14.5px; line-height:1.75; }

  /* D2. 触控目标 ≥44px（卡片小图标、筹码、页签、弹窗关闭等） */
  .card-actions{ gap:6px; }
  .card-actions .act{
    min-width:44px; min-height:44px; padding:6px;
    display:inline-flex; align-items:center; justify-content:center;
    font-size:16px;
  }
  .chip{ min-height:44px; padding-top:6px; padding-bottom:6px; }
  .pref-chip{ min-height:44px; }
  .opp-tab{ min-height:44px; }
  .me-tabs a{ min-height:44px; }
  .modal-x{ width:44px; height:44px; }
  .fm-chip{ min-height:44px; }
  .ai-follow{ min-height:44px; padding-top:8px; padding-bottom:8px; }
  .btn-watch-pin{ min-height:44px; }

  /* D3. 首页单列顺序：信息流 → 侧栏（当前移动端隐藏） → 偏好筛选 */
  .layout > .feed-wrap{ order:1; }
  .layout > .side{ order:2; }
  .layout > .filters{ order:3; }

  /* D4. 搜索结果：工具条分行（标题行 / 元信息行 / 钉住按钮行） */
  .ai-search-toolbar{ align-items:flex-start; }
  .ai-search-toolbar .muted{ flex:1 1 100%; order:3; font-size:12.5px; }
  .ai-search-toolbar .btn-watch-pin{ margin-left:auto; }

  /* D5. 引用角标在移动端只作视觉标记（不再单独可点），证据卡整卡可点；
         证据标题截断两行（与服务端标题重复的观感问题只能先截断缓解） */
  .ai-ans .ai-ref{ pointer-events:none; }
  .ai-hit-list li, .ai-cite-list li{ position:relative; }
  .ai-hit-list li strong a::after,
  .ai-cite-list li > a:first-of-type::after{
    content:""; position:absolute; inset:0;
  }
  .ai-hit-list li strong{
    display:-webkit-box; -webkit-line-clamp:2;
    -webkit-box-orient:vertical; overflow:hidden;
  }

  /* D6. /intel：五列统计改 2 列网格；盘面卡沿用其 ≤720 两行式，
         这里补 band 不截断与脉搏条两端渐隐（滚动暗示） */
  .stat-strip{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  .stat-strip .stat{ min-width:0; }
  .hero-kpis .kpi{ flex:1 1 42%; }
  .tape-band{ max-width:100%; }
  .pulse-win{
    -webkit-mask-image:linear-gradient(90deg, transparent, #000 24px, #000 calc(100% - 24px), transparent);
    mask-image:linear-gradient(90deg, transparent, #000 24px, #000 calc(100% - 24px), transparent);
  }

  /* D7. /intel#contests：表单已在 ≤900 单列，这里防 iOS 缩放 + 长链接断行 */
  .bl-form input, .bl-form textarea{ font-size:16px; }
  .opp-m a, .bl-meta a, .ai-sum a{ overflow-wrap:anywhere; }

  /* D8. /topic/ 热力图：可横滑区域 + 首列吸住（配合既有 ≤720 的 560px 最小宽，
         这里把最小宽提到 640px 保证格子不被压变形） */
  .mx-grid{ min-width:640px; }
  .mx-cell.rowhead{ position:sticky; left:0; background:var(--panel); z-index:1; }

  /* D9. /portal：分类行改分组单列清单（分类名独占一行，链接逐行排列，
         每行 ≥44px；原有的「展开更多」机制保持不变） */
  .pz-cat-row{ grid-template-columns:1fr; gap:6px; }
  .pz-cat-links{ grid-template-columns:1fr; }
  .pz-cat-links a{
    min-height:44px; padding:10px 12px;
    display:flex; align-items:center;
  }
  /* 门户检索条两行式：品牌筹码独占一行，输入 + 按钮第二行 */
  .pz-form{ flex-wrap:wrap; }
  .pz-form-brand{
    width:100%; border-right:0; border-bottom:1px solid #dbe6ff;
    padding:8px 12px;
  }
  .pz-form input{ font-size:16px; }

  /* D10. /me 登录卡宽度收口 */
  .me-login{ max-width:min(92vw, 480px); }
}

/* ── E. 小屏（≤480px）：门户商家格 2 列，大点好按 ── */
@media (max-width:480px){
  .pz-merchant-grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
