/* 安全与建筑板块产品化重构 —— 专用样式（克制、温暖、编辑感；背景 #F5F3EE，陶土色小面积强调） */
.safety-root { --clay: #B5654A; --clay-soft: #C98B74; --ink: #2E3A40; --ink-soft: #5A6B72; --line: #E2DDD3; --card: #FFFFFF; }

.safety-head {
  position: relative;
  border-bottom: 1px solid var(--line);
  padding-bottom: 18px;
}
.safety-head-inner { max-width: 860px; }
.safety-title {
  font-size: 26px; line-height: 1.35; margin: 0 0 10px;
  color: var(--ink); font-weight: 650; letter-spacing: .2px;
}
.safety-desc { margin: 0 0 8px; color: var(--ink-soft); font-size: 15px; line-height: 1.7; }
.safety-aux { margin: 0; font-size: 13px; color: var(--clay); letter-spacing: 1px; }
.safety-author-slot { position: absolute; top: 0; right: 0; display: flex; gap: 10px; align-items: center; }
.author-entry {
  border: 1px solid var(--clay); color: var(--clay); background: transparent;
  border-radius: 999px; padding: 6px 16px; font-size: 13px; cursor: pointer;
}
.author-entry:hover { background: var(--clay); color: #fff; }
.author-login, .author-logout { font-size: 13px; color: var(--ink-soft); }
/* 访客态：页脚低权重作者入口（题头不再突出显示） */
.safety-foot-author { margin-top: 10px; font-size: 13px; }
.safety-foot-author .link-btn { color: var(--ink-soft); }

/* 主导航 */
.safety-nav {
  display: flex; gap: 6px; border-bottom: 1px solid var(--line);
  margin: 30px 0 6px; overflow-x: auto; -webkit-overflow-scrolling: touch;
}
.safety-nav-btn {
  flex: 0 0 auto; border: none; background: transparent; cursor: pointer;
  padding: 10px 14px; font-size: 15px; color: var(--ink-soft);
  border-bottom: 2px solid transparent; white-space: nowrap;
}
.safety-nav-btn:hover { color: var(--ink); }
.safety-nav-btn.active { color: var(--clay); border-bottom-color: var(--clay); font-weight: 600; }

.safety-region { padding-top: 14px; }
.safety-h2 { font-size: 18px; color: var(--ink); margin: 22px 0 12px; font-weight: 650; }
.safety-h2:first-child { margin-top: 6px; }

/* 本周必看 */
.weekly-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.weekly-card {
  background: var(--card); border: 1px solid var(--line); border-radius: 10px;
  padding: 18px; display: flex; flex-direction: column; gap: 10px;
  min-height: 248px; cursor: pointer;
}
.wc-top { display: flex; align-items: center; gap: 8px; }
.wc-rank { font-size: 20px; font-weight: 700; color: var(--clay); font-variant-numeric: tabular-nums; }
.wc-market { font-size: 12px; color: #fff; background: var(--clay); border-radius: 4px; padding: 2px 8px; }
.wc-topic { font-size: 12px; color: var(--ink-soft); border: 1px solid var(--line); border-radius: 4px; padding: 2px 8px; }
.wc-title { font-size: 16px; line-height: 1.5; margin: 0; color: var(--ink);
  display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.wc-oneliner { margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.6;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.wc-label { display: block; font-size: 12px; color: var(--clay); margin-bottom: 4px; letter-spacing: .5px; }
.wc-aud { display: flex; flex-wrap: wrap; gap: 6px; }
.wc-aud .aud { font-size: 12px; color: var(--ink-soft); background: #F1EDE4; border-radius: 4px; padding: 2px 8px; }
.wc-foot { display: flex; align-items: center; gap: 12px; margin-top: auto; padding-top: 8px; border-top: 1px solid var(--line); }
.wc-meta { font-size: 12px; color: var(--ink-soft); }
.wc-more { margin-left: auto; font-size: 13px; color: var(--clay); }
.weekly-empty { background: #F1EDE4; border-radius: 10px; padding: 28px; text-align: center; color: var(--ink-soft); }

/* 最新动态条 */
.latest-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.latest-cols.single { grid-template-columns: 1fr; }
.latest-col-h { font-size: 14px; color: var(--ink-soft); margin: 0 0 8px; font-weight: 600; }
.latest-list { display: flex; flex-direction: column; gap: 8px; }
.latest-item {
  display: flex; justify-content: space-between; gap: 12px; align-items: baseline;
  text-decoration: none; color: var(--ink); padding: 8px 0; border-bottom: 1px dashed var(--line);
}
.latest-item:hover .li-title { color: var(--clay); }
.li-title { font-size: 14px; line-height: 1.5; }
.li-date { font-size: 12px; color: var(--ink-soft); white-space: nowrap; }
.latest-empty { color: var(--ink-soft); font-size: 13px; padding: 8px 0; }

/* 国内 / 海外 工具栏 */
.dom-toolbar, .ov-toolbar { display: flex; flex-direction: column; gap: 10px; margin-bottom: 20px; }
.dt-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.dt-primary { padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.dt-label { font-size: 12px; color: var(--ink-soft); margin-right: 4px; }
.dt-sel { font-size: 13px; color: var(--ink-soft); display: inline-flex; align-items: center; gap: 6px; }
.dt-sel select {
  font-size: 13px; padding: 5px 8px; border: 1px solid var(--line); border-radius: 6px;
  background: #fff; color: var(--ink);
}
.chip {
  border: 1px solid var(--line); background: #fff; color: var(--ink-soft);
  border-radius: 999px; padding: 5px 14px; font-size: 13px; cursor: pointer;
}
.chip:hover { border-color: var(--clay-soft); color: var(--ink); }
.chip.active { background: var(--clay); border-color: var(--clay); color: #fff; }
/* 国内搜索框（与筛选组合，不重载整页） */
.dt-search { gap: 10px; }
.dt-search-input {
  flex: 1; min-width: 200px; font-size: 13px; padding: 8px 12px;
  border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink);
}
.dt-search-input:focus { outline: none; border-color: var(--clay); }
.dt-clear { font-size: 13px; color: var(--ink-soft); white-space: nowrap; }
.dt-clear[hidden] { display: none; }

/* 紧凑卡（国内列表 / 专题 / 全部） */
.dom-list, .ov-list, .topic-items, .all-list { display: flex; flex-direction: column; gap: 10px; }
.compact-card {
  background: var(--card); border: 1px solid var(--line); border-radius: 8px; padding: 14px 16px;
}
.cc-top { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 6px; }
.cc-market { font-size: 11px; color: #fff; background: var(--clay); border-radius: 4px; padding: 1px 7px; }
.cc-topic { font-size: 12px; color: var(--clay); }
.cc-dept { font-size: 12px; color: var(--ink-soft); }
.cc-valid { font-size: 11px; color: var(--ink-soft); border: 1px solid var(--line); border-radius: 4px; padding: 1px 7px; }
.cc-title { font-size: 15px; margin: 0 0 6px; line-height: 1.5; }
.cc-title a { color: var(--ink); text-decoration: none; }
.cc-title a:hover { color: var(--clay); }
.cc-summary { margin: 0 0 6px; font-size: 13px; color: var(--ink-soft); line-height: 1.6; }
.cc-foot { display: flex; align-items: center; gap: 12px; font-size: 12px; color: var(--ink-soft); }
.cc-eff { color: var(--clay); }
.cc-src { margin-left: auto; color: var(--clay); text-decoration: none; }
.cc-more { background: none; border: none; color: var(--clay); cursor: pointer; padding: 4px 0 0; font-size: 13px; }
.cc-rest { margin: 6px 0 0; padding-left: 18px; }
.cc-rest li { font-size: 13px; line-height: 1.7; color: var(--ink-soft); }

/* 海外卡 */
.ov-note { font-size: 12px; color: var(--ink-soft); background: #F1EDE4; border-radius: 6px; padding: 8px 12px; margin-bottom: 14px; }
.ov-card { background: var(--card); border: 1px solid var(--line); border-radius: 8px; padding: 14px 16px; }
.ov-top { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; }
.ov-country { font-size: 12px; color: #fff; background: var(--clay); border-radius: 4px; padding: 1px 8px; }
.ov-type { font-size: 12px; color: var(--ink-soft); border: 1px solid var(--line); border-radius: 4px; padding: 1px 8px; }
.ov-topic { font-size: 12px; color: var(--clay); }
.ov-title { font-size: 15px; margin: 0 0 4px; line-height: 1.5; }
.ov-title a { color: var(--ink); text-decoration: none; }
.ov-title a:hover { color: var(--clay); }
.ov-orig { font-size: 12px; color: var(--ink-soft); margin: 0 0 6px; font-style: italic; word-break: break-word; }
.ov-meta { display: flex; gap: 12px; font-size: 12px; color: var(--ink-soft); margin-bottom: 6px; }
.ov-summary { margin: 0 0 8px; padding-left: 18px; }
.ov-summary li { font-size: 13px; line-height: 1.7; color: var(--ink); }
.ov-src { font-size: 13px; color: var(--clay); text-decoration: none; }
.ov-src:hover { text-decoration: underline; }

/* 海外三分组 */
.ov-groups { display: flex; flex-direction: column; gap: 22px; }
.ov-group-h { font-size: 16px; color: var(--ink); margin: 0 0 10px; display: flex; align-items: center; gap: 10px; }
.ov-group-n { font-size: 12px; color: var(--ink-soft); font-weight: 400; background: #F1EDE4; border-radius: 999px; padding: 1px 10px; }
.ov-source { font-size: 12px; color: var(--ink-soft); }
.ov-opp { font-size: 12px; color: #fff; background: var(--ink-soft); border-radius: 4px; padding: 1px 8px; }
.ov-potential { font-size: 12px; color: var(--clay); margin: 0 0 6px; }
.ov-deadline { font-size: 12px; color: var(--clay); }
.ov-pn { font-size: 12px; color: var(--ink-soft); }
.ov-summary-text { margin: 0 0 6px; font-size: 13px; color: var(--ink-soft); line-height: 1.6; }

/* 专题 */
.topic-group { margin-bottom: 22px; }
.topic-name { font-size: 16px; color: var(--ink); margin: 0 0 10px; display: flex; align-items: center; gap: 10px; }
.topic-count { font-size: 12px; color: var(--ink-soft); font-weight: 400; }

/* 全部信息分页 */
.all-date {
  position: sticky; top: 0; background: var(--card); font-size: 13px; color: var(--clay);
  padding: 8px 0; border-bottom: 1px solid var(--line); margin-top: 8px; z-index: 1;
}
.all-pager { display: flex; align-items: center; justify-content: center; gap: 16px; padding: 20px 0; }
.pg-btn { border: 1px solid var(--line); background: #fff; color: var(--ink); border-radius: 6px; padding: 6px 16px; cursor: pointer; }
.pg-btn:disabled { opacity: .4; cursor: default; }
.pg-info { font-size: 13px; color: var(--ink-soft); }

/* 周精选空态（紧凑，110-140px 级别，不铺大卡） */
.weekly-empty {
  background: #F1EDE4; border-radius: 10px; padding: 16px 20px;
  color: var(--ink-soft); font-size: 14px; line-height: 1.7;
  display: flex; flex-direction: column; gap: 10px;
}
.weekly-empty .we-text { max-width: 660px; }
.weekly-empty .we-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.weekly-empty .we-btn {
  border: 1px solid var(--clay); color: var(--clay); background: transparent;
  border-radius: 999px; padding: 6px 16px; font-size: 13px; cursor: pointer;
  text-decoration: none; white-space: nowrap;
}
.weekly-empty .we-btn:hover { background: var(--clay); color: #fff; }
/* 沿用提示（返工单 §四）：紧跟周精选卡片下方，低权重说明 */
.weekly-note { margin: 10px 2px 0; color: var(--ink-soft); font-size: 13px; line-height: 1.7; }

/* 题头人物感 */
.safety-title { font-size: 28px; }
.safety-sub { margin: 0 0 10px; color: var(--ink-soft); font-size: 15px; line-height: 1.6; }
.safety-persona { margin: 0 0 8px; color: var(--ink); font-size: 14px; line-height: 1.75; max-width: 760px; }
.safety-aux { margin: 0; font-size: 13px; color: var(--clay); letter-spacing: 1px; }

/* 国内分页 */
.dom-pager { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; flex-wrap: wrap; }
.dom-count { font-size: 13px; color: var(--ink-soft); }
.dom-pager .pg-btns { display: flex; gap: 8px; }
.dom-pager .pg-btn { border: 1px solid var(--line); background: #fff; color: var(--ink); border-radius: 6px; padding: 6px 16px; cursor: pointer; font-size: 13px; }
.dom-pager .pg-btn:disabled { opacity: .4; cursor: default; }

/* 海外筛选器桌面同行 */
@media (min-width: 1120px) {
  .ov-toolbar { flex-direction: row; flex-wrap: wrap; align-items: center; }
  .ov-toolbar .dt-sel { margin-right: 8px; }
}

/* 专题入口 */
.topic-index { display: flex; flex-direction: column; gap: 10px; }
.topic-index-item {
  background: var(--card); border: 1px solid var(--line); border-radius: 8px; padding: 14px 16px;
  cursor: pointer; display: flex; flex-direction: column; gap: 4px;
}
.topic-index-item:hover { border-color: var(--clay-soft); }
.topic-index-item .ti-name { font-size: 15px; color: var(--ink); font-weight: 600; display: flex; align-items: center; gap: 10px; }
.topic-index-item .ti-count { font-size: 12px; color: var(--ink-soft); font-weight: 400; }
.topic-index-item .ti-desc { font-size: 13px; color: var(--ink-soft); line-height: 1.6; }
.topic-back { font-size: 13px; color: var(--clay); cursor: pointer; background: none; border: none; padding: 0 0 8px; }

/* 骨架 / 错误（静态暖灰块，不使用旋转动画、渐变或高亮闪烁） */
.sk-row { height: 56px; border-radius: 8px; background: #EDE8DE; }
.region-error { background: #F1EDE4; border-radius: 8px; padding: 14px 16px; color: var(--ink-soft); }
.region-loading { padding: 44px 0; text-align: center; color: var(--ink-soft); font-size: 15px; }
.region-wait { padding: 44px 0; text-align: center; color: var(--ink-soft); font-size: 15px; }
.region-fail { background: #F1EDE4; border-radius: 8px; padding: 18px 16px; color: var(--ink-soft); text-align: center; font-size: 15px; }
.region-fail .link-btn { margin-left: 12px; }
.ov-empty { padding: 18px 0; color: var(--ink-soft); font-size: 14px; line-height: 1.7; max-width: 560px; }

/* 作者审核面板 */
.safety-panel { position: fixed; inset: 0; z-index: 1200; }
.safety-panel.hidden { display: none; }
.sp-back { position: absolute; inset: 0; background: rgba(40,46,50,.4); }
.sp-aside {
  position: absolute; top: 0; right: 0; height: 100%; width: 560px; max-width: 92vw;
  background: #FBF9F4; box-shadow: -8px 0 30px rgba(0,0,0,.12);
  display: flex; flex-direction: column; padding: 22px; overflow: hidden;
}
.sp-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
.sp-head h2 { font-size: 18px; color: var(--ink); margin: 0; }
.sp-close { border: none; background: none; font-size: 26px; line-height: 1; color: var(--ink-soft); cursor: pointer; }
.sp-body { flex: 1; overflow-y: auto; padding-right: 6px; display: flex; flex-direction: column; gap: 16px; }
.sp-actions { display: flex; gap: 10px; justify-content: flex-end; padding-top: 14px; border-top: 1px solid var(--line); margin-top: 10px; }
.sp-status { font-size: 13px; min-height: 18px; padding: 4px 0; }
.sp-status.is-ok { color: #2E7D4F; }
.sp-status.is-warn { color: var(--clay); }
/* 面板 tab：本周精选 / 海外解读待确认 */
.sp-tabs { display: flex; gap: 6px; margin: 0 10px; }
.sp-tab { font-size: 13px; color: var(--ink-soft); background: none; border: 1px solid var(--line); border-radius: 999px; padding: 3px 12px; cursor: pointer; }
.sp-tab.active { color: #fff; background: var(--clay); border-color: var(--clay); }
#spOvCount { font-variant-numeric: tabular-nums; }

.cand-card { background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 14px; }
.cand-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.cand-pick { font-size: 13px; color: var(--ink); display: flex; align-items: center; gap: 6px; cursor: pointer; }
.cand-rank { font-size: 13px; color: var(--ink-soft); display: flex; align-items: center; gap: 4px; }
.cand-order { width: 46px; padding: 3px 6px; border: 1px solid var(--line); border-radius: 5px; }
.cand-title { font-size: 14px; margin-bottom: 4px; }
.cand-title a { color: var(--ink); text-decoration: none; }
.cand-title a:hover { color: var(--clay); }
.cand-src { font-size: 12px; color: var(--ink-soft); margin-bottom: 10px; }
.cand-field { display: block; margin-bottom: 10px; }
.cand-field > span { display: block; font-size: 12px; color: var(--ink-soft); margin-bottom: 4px; }
.cand-field textarea, .cand-instr {
  width: 100%; border: 1px solid var(--line); border-radius: 6px; padding: 8px;
  font-size: 13px; color: var(--ink); font-family: inherit; resize: vertical; box-sizing: border-box;
}
.cand-ai { display: flex; gap: 8px; margin-bottom: 8px; }
.cand-instr { flex: 1; }
.cand-confirm { display: flex; gap: 16px; font-size: 12px; color: var(--ink); }
.cand-confirm label { display: flex; align-items: center; gap: 5px; cursor: pointer; }

.sp-preview { background: #fff; border: 1px dashed var(--clay); border-radius: 8px; padding: 14px; margin-bottom: 4px; }
.sp-prev-h { font-size: 14px; color: var(--clay); margin: 0 0 10px; }
.sp-preview .weekly-grid { grid-template-columns: 1fr; }
/* 海外解读待确认卡片补充样式（复用 .cand-* 主体） */
.cand-note { font-size: 12px; color: var(--ink-soft); background: #F1EDE4; border-radius: 6px; padding: 8px 10px; margin-bottom: 10px; line-height: 1.6; }
.cand-actions { display: flex; gap: 10px; align-items: center; margin-top: 4px; }
.ov-card-status { font-size: 12px; color: var(--ink-soft); }
.ov-card-status:empty { display: none; }
.ov-conf-card .cand-confirm { margin-top: 2px; }

.btn { border-radius: 6px; padding: 8px 16px; font-size: 13px; cursor: pointer; border: 1px solid transparent; }
.btn-primary { background: var(--clay); color: #fff; border-color: var(--clay); }
.btn-primary:hover { background: #9f5742; }
.btn-ghost { background: #fff; color: var(--ink); border-color: var(--line); }
.btn-ghost:hover { border-color: var(--clay-soft); }
.btn:disabled { opacity: .5; cursor: default; }

/* 响应式 */
@media (max-width: 768px) {
  .weekly-grid { grid-template-columns: 1fr; }
  .weekly-card { min-height: 0; }
  .latest-cols { grid-template-columns: 1fr; }
  .safety-title { font-size: 22px; }
  .safety-author-slot { position: static; margin-top: 12px; justify-content: flex-end; }
  .safety-head { position: relative; }
}
@media (max-width: 390px) {
  .safety-nav-btn { padding: 9px 10px; font-size: 14px; }
  .sp-aside { width: 100%; max-width: 100%; padding: 16px; }
  .weekly-card, .compact-card, .ov-card { padding: 12px; }
  .cc-foot, .wc-foot { flex-wrap: wrap; }
  .wc-src, .cc-src { margin-left: 0; }
  .ov-orig { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
  .safety-author-slot { position: static; width: 100%; margin-top: 12px; justify-content: flex-start; flex-wrap: wrap; }
}

/* 题头长期承诺 + 内容详情入口 */
.safety-promise {
  margin: 10px 0 0; font-size: 14px; color: var(--ink-soft); line-height: 1.7; max-width: 680px;
  padding-top: 10px; border-top: 1px dashed var(--line);
}
.item-detail-btn {
  border: 1px solid var(--line); background: transparent; color: var(--ink-soft);
  border-radius: 8px; padding: 5px 12px; font-size: 12.5px; cursor: pointer; margin-top: 10px;
}
.item-detail-btn:hover { border-color: var(--clay); color: var(--clay); }

/* 内容详情弹层（官方事实 / 小编推荐 / 项目上先核对 / 官方原文 / 更正记录） */
.item-detail-back {
  position: fixed; inset: 0; background: rgba(28, 34, 38, .42);
  display: flex; align-items: flex-start; justify-content: center; padding: 28px 16px; z-index: 999;
  overflow-y: auto;
}
.item-detail {
  position: relative; background: #FBF9F4; border: 1px solid var(--line); border-radius: 12px;
  max-width: 720px; width: 100%; padding: 26px 28px 30px; box-shadow: 0 12px 36px rgba(0, 0, 0, .14);
  max-height: calc(100vh - 56px); overflow-y: auto;
}
.id-close {
  position: absolute; top: 12px; right: 14px; border: none; background: transparent;
  font-size: 22px; line-height: 1; color: var(--ink-soft); cursor: pointer; z-index: 3;
}
.id-title { margin: 0 0 18px; font-size: 19px; line-height: 1.45; color: var(--ink); padding-right: 40px; overflow-wrap: anywhere; }
.id-sec { padding: 14px 0; border-top: 1px solid var(--line); }
.id-sec:first-of-type { border-top: none; }
.id-h { margin: 0 0 10px; font-size: 14.5px; color: var(--clay); font-weight: 700; display: flex; align-items: center; gap: 8px; }
.id-tag {
  font-size: 11px; font-weight: 600; color: #fff; background: var(--clay);
  border-radius: 999px; padding: 1px 8px; letter-spacing: .5px;
}
.id-tag-draft {
  color: var(--ink-soft); background: transparent; border: 1px solid var(--line, #e2ddd2);
}
.id-p { margin: 0; font-size: 14.5px; line-height: 1.75; color: var(--ink); overflow-wrap: anywhere; }
.id-muted { color: var(--ink-soft); }
.dt-row { display: flex; gap: 12px; padding: 4px 0; font-size: 14px; }
.dt-k { flex: 0 0 76px; color: var(--ink-soft); }
.dt-v { flex: 1; color: var(--ink); overflow-wrap: anywhere; min-width: 0; }
.dt-list { margin: 0; padding-left: 20px; }
.dt-list li { font-size: 14.5px; line-height: 1.8; color: var(--ink); }
.id-src { display: inline-block; margin-top: 10px; color: var(--clay); font-weight: 600; font-size: 14px; }
.id-correction .dt-v p { margin: 0; }
/* 未确认条目底部轻提示：不占据与已完成知识产品相同的视觉重量 */
.id-pending {
  margin-top: 14px; padding-top: 12px; border-top: 1px dashed #e2dccd;
  font-size: 13px; color: var(--ink-soft); text-align: right;
}
/* 纠错机制：详情底部轻提示（无公开联系方式时不造假链接，交付报告列待提供） */
.id-correct {
  margin-top: 14px; padding-top: 12px; border-top: 1px dashed #e2dccd;
  font-size: 13px; color: var(--ink-soft);
}
.id-correct-link { color: var(--clay); font-weight: 600; margin-left: 4px; }
@media (max-width: 390px) {
  .item-detail { padding: 18px 14px 22px; max-height: calc(100vh - 28px); }
  .dt-k { flex-basis: 56px; }
}
/* 海外条目：官方来源已核对状态（非人工确认，仅代表官方原文已核对） */
.ov-verified { display:inline-block; margin-left:10px; font-size:12px; color:#8a8a80; border:1px solid #ddd8cc; border-radius:10px; padding:1px 9px; vertical-align:middle; }
.cc-verified { display:inline-block; font-size:12px; color:#8a8a80; border:1px solid #ddd8cc; border-radius:10px; padding:0 7px; margin-left:6px; }
/* 授权发布·原文待复核：浅陶土描边标签，与「官方来源已核对」的浅灰描边区分，非红色、非实色块（返工单 §4.3） */
.ov-authorized { display:inline-block; margin-left:10px; font-size:12px; color:var(--clay); border:1px solid var(--clay); border-radius:10px; padding:1px 9px; vertical-align:middle; background:rgba(169,89,61,0.06); }
.cc-authorized { display:inline-block; font-size:12px; color:var(--clay); border:1px solid var(--clay); border-radius:10px; padding:0 7px; margin-left:6px; background:rgba(169,89,61,0.06); }
.ov-authorized-inline { color:var(--clay); font-weight:600; }


/* 学习工具入口：前置到安全板块公共头部（深色渐变精品卡，全视图可见、不依赖专题数据）。
   设计参考：HugoBlox CTA Card（深色渐变+白字高对比）、Growth Engine（radial 光晕+内部高光）、
   Vercel/Turbo（白色主按钮+轻玻璃）。仅使用 .safety-tool-* 命名空间。 */
.safety-study-tools { margin: 4px 0 18px; }
.safety-study-tools-head { font-size: 13px; color: var(--clay); letter-spacing: 1px; margin: 0 0 10px; font-weight: 600; }
.safety-tool-card {
  position: relative;
  display: flex; align-items: center; gap: 20px;
  background:
    radial-gradient(130% 170% at 88% -12%, rgba(255,255,255,.20) 0%, rgba(255,255,255,0) 52%),
    linear-gradient(135deg, #C98B74 0%, #B5654A 55%, #8C4A33 100%);
  border: 1px solid rgba(140,74,51,.55);
  border-radius: 16px; padding: 22px 24px;
  text-decoration: none; overflow: hidden;
  color: #fff;
  box-shadow: 0 1px 2px rgba(46,58,64,.08), 0 10px 28px rgba(181,101,74,.22);
  transition: transform .18s ease, box-shadow .18s ease;
}
.safety-tool-card::before {
  /* 顶部内高光细线 */
  content: ""; position: absolute; top: 0; left: 20px; right: 20px; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.55), transparent);
  pointer-events: none;
}
.safety-tool-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 2px 4px rgba(46,58,64,.10), 0 18px 40px rgba(181,101,74,.32);
}
.safety-tool-card:active { transform: translateY(0); }
.safety-tool-ico {
  flex: 0 0 auto;
  width: 52px; height: 52px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 14px;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.safety-tool-body { flex: 1 1 auto; min-width: 0; }
.safety-tool-kicker {
  display: block; margin: 0 0 5px;
  font-size: 11px; letter-spacing: 2px; color: rgba(255,255,255,.78); font-weight: 600;
}
.safety-tool-title { display: block; font-size: 20px; color: #fff; font-weight: 700; letter-spacing: .5px; margin: 0; }
.safety-tool-go {
  flex: 0 0 auto;
  display: inline-flex; align-items: center; gap: 7px;
  padding: 10px 18px;
  background: #fff; color: #8C4A33;
  font-size: 14px; font-weight: 700; white-space: nowrap;
  border-radius: 999px;
  box-shadow: 0 4px 12px rgba(140,74,51,.25);
  transition: background .15s ease, color .15s ease, box-shadow .15s ease;
}
.safety-tool-card:hover .safety-tool-go { background: #FDF3EE; box-shadow: 0 6px 16px rgba(140,74,51,.30); }
.safety-tool-go-arrow { display: inline-block; transition: transform .15s ease; }
.safety-tool-card:hover .safety-tool-go-arrow { transform: translateX(3px); }
.safety-tool-deco {
  position: absolute; right: -8px; bottom: -30px;
  font-size: 112px; font-weight: 800; line-height: 1; letter-spacing: -6px;
  color: rgba(255,255,255,.10);
  pointer-events: none; user-select: none;
}
/* 窄屏（含 390px 移动端）改为单列，杜绝横向溢出；标题/按钮一眼可见 */
@media (max-width: 480px) {
  .safety-tool-card { flex-direction: column; align-items: flex-start; gap: 12px; padding: 18px 20px; }
  .safety-tool-ico { width: 44px; height: 44px; border-radius: 12px; }
  .safety-tool-title { font-size: 18px; }
  .safety-tool-go { align-self: flex-start; }
  .safety-tool-deco { font-size: 84px; }
}

/* 前置入口卡（内联在公共头部：一句介绍之后、长段介绍之前）
   与 .safety-sub / .safety-persona 的上下留白，保证首屏观感不挤压 */
.safety-tool-card-public { margin: 14px 0 18px; max-width: 760px; box-sizing: border-box; }
@media (max-width: 480px) {
  .safety-tool-card-public { margin: 12px 0 14px; width: 100%; }
}

/* 四门全科快捷入口（入口卡下方，轻量胶囊链接，点击直达对应科目客观题库） */
.safety-tool-subjects {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  margin: -4px 0 18px; max-width: 760px;
}
.safety-tool-subjects-label {
  font-size: 12px; color: #6B7A82; font-weight: 600; letter-spacing: .5px; margin-right: 2px;
}
.safety-tool-subject {
  display: inline-flex; align-items: center;
  padding: 6px 14px;
  border: 1px solid #E7D8CE; border-radius: 999px;
  background: #fff; color: #8C4A33;
  font-size: 13px; font-weight: 600; line-height: 1; text-decoration: none;
  transition: background .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
}
.safety-tool-subject:hover {
  background: #8C4A33; color: #fff; border-color: #8C4A33;
  transform: translateY(-1px);
}
@media (max-width: 480px) {
  .safety-tool-subjects { gap: 6px; margin: 0 0 14px; }
  .safety-tool-subjects-label { width: 100%; }
  .safety-tool-subject { padding: 6px 12px; font-size: 12px; }
}

/* HTML 静态兜底入口：safety.js 未加载或 buildHead 未执行时保持可见，任何情况下都能进答题页。
   JS 版入口卡渲染成功后由 safety.js 隐藏；非 safety 板块由 board.html 内联脚本隐藏。 */
.exam-entry-fallback {
  display: block; box-sizing: border-box; max-width: 760px;
  margin: 10px 0 16px; padding: 12px 16px;
  background: var(--card); border: 1px solid var(--line); border-left: 4px solid var(--clay);
  border-radius: 10px; text-decoration: none;
  color: var(--clay); font-size: 15px; font-weight: 600; line-height: 1.5;
}
.exam-entry-fallback:hover { border-color: var(--clay-soft); }
@media (max-width: 480px) {
  .exam-entry-fallback { width: 100%; margin: 8px 0 12px; padding: 11px 14px; font-size: 14px; }
}
