/* ==========================================================================
   ui-refresh.css — bj.nbcxx.com 视觉修补层（P0）
   2026-10-18

   原则：
   1. 不修改 styles.css（719KB 巨石、5752 个 !important），本文件在它之后加载，
      只做「覆盖」，随时可整文件删除回滚。
   2. 只修【确定的缺陷】：可读性不达标、布局错位、同类控件不同样式。
   3. 不引入新字体、不引入外部资源（受 CSP script-src/style-src 'self' 限制）。
   ========================================================================== */

/* --------------------------------------------------------------------------
   1) 必填星号错位
   原状：.cxx-req-star 是 display:block 的 span，被拉成整行宽（324px / 661px），
        渲染成「字段下方漂着的红点」。
   修法：隐藏原节点，改用 label 的伪元素贴在标签末尾；:has 不支持时只丢星号，
        不会破坏布局。
   -------------------------------------------------------------------------- */
.cxx-req-star {
  display: none !important;
}
.field:has(input[data-cxx-req]) > label::after,
.field:has(textarea[data-cxx-req]) > label::after {
  content: "*";
  color: #d92d20;
  margin-left: 3px;
  font-weight: 700;
}

/* --------------------------------------------------------------------------
   2) 底部操作条可读性
   原状（实测 computed style）：
     ·「导出」     bg: transparent / color: #fff / opacity: .55  → 白字压在米色底上，几乎不可见
     ·「导出 PDF」 bg: #0f6f78     / color: #5b473a            → 深青底配棕字，≈2.2:1，看不清
   修法：统一为「实心主按钮 / 描边次按钮」两档，主按钮一律白字。
   -------------------------------------------------------------------------- */
.footer-actions {
  gap: 8px;
}

.footer-actions .btn,
.footer-actions .dock-export-btn,
.footer-actions .dock-pdf-btn {
  color: #fff !important;
  background: #0f6f78 !important;
  border: 1px solid transparent !important;
  box-shadow: 0 6px 16px rgba(15, 111, 120, .18) !important;
  font-weight: 600;
}

.footer-actions .btn:hover,
.footer-actions .dock-export-btn:hover,
.footer-actions .dock-pdf-btn:hover {
  background: #c2410c !important;
}

/* 次按钮：白底描边 */
.footer-actions .btn.secondary,
.footer-actions .btn.ghost {
  color: #3f3a36 !important;
  background: #fff !important;
  border: 1px solid #e4dbd3 !important;
  box-shadow: none !important;
  font-weight: 500;
}

.footer-actions .btn.secondary:hover,
.footer-actions .btn.ghost:hover {
  background: #faf6f2 !important;
}

/* 主行动按钮（导出）用品牌橙的深色档，保证白字对比度 ≥ 4.5:1 */
.footer-actions .btn.orange,
.footer-actions .dock-export-btn {
  background: #c2410c !important;
  box-shadow: 0 6px 16px rgba(194, 65, 12, .22) !important;
}

.footer-actions .btn.orange:hover,
.footer-actions .dock-export-btn:hover {
  background: #9a3412 !important;
}

/* quote-primary.js 的「未填必填项 → 底部导出置灰」：改成灰底深字，而不是白字半透明 */
.footer-actions .btn[aria-disabled="true"],
.footer-actions .dock-export-btn[aria-disabled="true"],
.footer-actions .btn.is-blocked {
  opacity: 1 !important;
  color: #8d8177 !important;
  background: #f1ece7 !important;
  border-color: #e4dbd3 !important;
  box-shadow: none !important;
}

/* quote-primary.js 用行内 style 直接压 opacity 做「未完成」态；
   白字 + 55% 透明度在米色底上不可读。这里取消半透明，
   「还差什么」仍由顶部步骤条文案表达。 */
.footer-actions .dock-export-btn {
  opacity: 1 !important;
}

/* 同上：底部条里那个「导出」实际 class 只有 btn orange，拿不到 dock-export-btn */
.footer-actions .btn.orange {
  opacity: 1 !important;
}

/* --------------------------------------------------------------------------
   3) 主 CTA 对比度
   实测：白字 on #0f6f78 = 2.76:1，on #0f6f78 = 2.59:1，均低于 WCAG AA(4.5)，
   连大字标准的 3.0 也没到。改为深一档橙，白字 ≈ 5.9:1。
   浅橙底（标签、提示条）保持不动，只动「实心主按钮」。
   -------------------------------------------------------------------------- */
.mu-primary-btn,
.btn.orange {
  background: #c2410c;
  border-color: #c2410c;
  color: #fff;
}

.mu-primary-btn:hover,
.btn.orange:hover {
  background: #9a3412;
  border-color: #9a3412;
}

/* --------------------------------------------------------------------------
   4) 占位文字对比度
   实测 placeholder #b8a698 on #fff = 2.35:1（远低于 4.5）。加深到 #8d8177（≈3.9），
   仍弱于正文以保持层级，但可读。
   -------------------------------------------------------------------------- */
input::placeholder,
textarea::placeholder {
  color: #8d8177 !important;
  opacity: 1;
}

/* --------------------------------------------------------------------------
   5) 移动端顶部导航
   原状：390 宽下菜单展开后常驻占 ~300px，且品牌标题被挤成两行，
        与下方 hero 区品牌重复出现。
   修法：窄屏隐藏 header 内副标题、收紧品牌字号，避免换行。
   -------------------------------------------------------------------------- */
@media (max-width: 480px) {
  .system-nav-brand,
  .brand-sub,
  .header .subtitle {
    display: none !important;
  }

  .header .brand,
  .system-nav-brand-title {
    font-size: 14px !important;
    letter-spacing: 0;
    line-height: 1.25 !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .system-nav {
    max-height: 60vh;
    overflow-y: auto;
  }
}

/* --------------------------------------------------------------------------
   6) 卡片圆角收敛（首页各类卡片目前 10~34px 混用）
   统一为 16 / 20 两档，视觉更整。
   -------------------------------------------------------------------------- */
.v80-entry-card,
.v80-landing-card {
  border-radius: 20px;
}
