/* ============================================
   社科基金选题 · 设计系统（2026-10-05 改版：苹果风）
   基于 Bootstrap 5.3 的覆盖与扩展

   原则（用户反馈"文字暗淡、模块区隔不明显"后定的，见 README「界面规范」）：
   1. 有信息量的文字对比度 ≥ 4.5:1：主 #1d1d1f（16.8:1）、次要 #424245（10:1）、辅助 #6e6e73（5.1:1）；
      #86868b 只用于占位符与禁用。
   2. 模块区隔靠间距、分区标题和白 / 浅灰底色，不靠边框。
   3. 字重只用 400 / 600（Windows 下低于 600 都显示成常规体，500 等于没加粗）。
   4. 一种强调色（蓝），只用于可点击的元素；标题与正文都是近黑色。
   变量名沿用旧版（--ink / --brand …），取值换新，全站一起生效。
   ============================================ */

:root {
  /* 文字 */
  --ink: #1d1d1f;
  --ink-2: #424245;
  --ink-3: #6e6e73;
  --ink-4: #86868b;         /* 占位符、禁用；不写有信息量的字 */

  /* 底色与线 */
  --bg: #f5f5f7;
  --card: #ffffff;
  --line: #e5e5ea;
  --line-strong: #d2d2d7;

  /* 强调色：只用于可点击的东西 */
  --brand: #0071e3;          /* 按钮、选中态 */
  --brand-dark: #1d1d1f;     /* 旧版用来写标题和悬停，改版后标题统一近黑 */
  --link: #0066cc;           /* 文字链接 5.6:1 */
  --link-hover: #004c99;
  --brand-soft: #e8f2fd;
  --brand-border: #b8d5f6;

  /* 语义色 */
  --accent: #a34b00;         /* 暖色提醒（近一年、新列入）5.6:1 */
  --accent-soft: #fff1df;
  --danger: #c4261d;
  --danger-soft: #fdecea;
  --success: #1a7f37;
  --success-soft: #e6f4ea;

  --radius: 16px;
  --radius-sm: 10px;
  --radius-xs: 8px;
  --shadow-sm: none;
  --shadow-md: 0 6px 20px rgba(0, 0, 0, .07);

  --font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", "PingFang SC",
          "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;
}

html { -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font);
  color: var(--ink);
  background: var(--bg);
  font-size: 15px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { font-weight: 600; color: var(--ink); letter-spacing: -0.01em; }
b, strong, .fw-bold, .fw-semibold { font-weight: 600; }
a { color: var(--link); text-decoration: none; }
a:hover { color: var(--link-hover); text-decoration: underline; }
.num, .table td, .table th { font-variant-numeric: tabular-nums; }

/* ---------- 导航：半透明白、细线、品牌 + 三个主入口 ---------- */
.navbar-jijin {
  position: sticky;
  top: 0;
  z-index: 1030;
  background: rgba(255, 255, 255, .86);
  -webkit-backdrop-filter: saturate(180%) blur(18px);
  backdrop-filter: saturate(180%) blur(18px);
  border-bottom: 1px solid rgba(0, 0, 0, .08);
  padding: 0;
}
.navbar-jijin .nav-inner {
  display: flex;
  align-items: center;
  gap: 22px;
  height: 56px;
}
.navbar-jijin .brand {
  display: flex;
  align-items: center;
  gap: 9px;
  font-weight: 600;
  font-size: 17px;
  color: var(--ink);
  text-decoration: none;
  letter-spacing: -0.01em;
  flex: 0 0 auto;
  white-space: nowrap;
}
.navbar-jijin .brand:hover { color: var(--ink); text-decoration: none; }
.navbar-jijin .brand .logo { width: 30px; height: 30px; display: block; flex: none; }
.navbar-jijin .nav-links { display: flex; gap: 2px; flex: 0 0 auto; }
.navbar-jijin .nav-links a {
  position: relative;
  padding: 8px 12px;
  font-size: 15px;
  color: var(--ink-2);
  text-decoration: none;
  white-space: nowrap;
}
.navbar-jijin .nav-links a:hover { color: var(--ink); text-decoration: none; }
.navbar-jijin .nav-links a.active { color: var(--ink); font-weight: 600; }
/* "选题"突出显示（2026-10-06 用户）：网站特色功能，浅蓝胶囊；在选题页时实心蓝底白字 */
.navbar-jijin .nav-links a.nav-hot { color: var(--brand); background: var(--brand-soft); font-weight: 600; border-radius: 999px; margin: 0 6px 0 2px; padding: 6px 16px; align-self: center; }
.navbar-jijin .nav-links a.nav-hot:hover { background: #d9e9fb; color: var(--brand); }
.navbar-jijin .nav-links a.nav-hot.on { background: var(--brand); color: #fff; }
/* 右上角角标（2026-10-06 用户：像 new / hot 那样的提示更吸引人）：红橙渐变小气泡，左下角收尖像从文字里冒出来；
   每隔几秒一道高光扫过，不跳不闪；系统设置"减少动态效果"时不扫 */
.navbar-jijin .nav-badge {
  position: absolute; top: -8px; right: -12px; z-index: 1; overflow: hidden; pointer-events: none;
  padding: 3px 6px 2px; border-radius: 9px 9px 9px 2px;
  font: 700 10px/1 -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif; letter-spacing: .02em;
  color: #fff; background: linear-gradient(135deg, #ff8a3d, #ff2d55); box-shadow: 0 2px 6px rgba(255, 45, 85, .35);
}
.navbar-jijin .nav-badge::after {
  content: ""; position: absolute; top: 0; bottom: 0; left: -70%; width: 45%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .75), transparent); transform: skewX(-20deg);
  animation: nav-badge-shine 3.6s ease-in-out 1s infinite;
}
@keyframes nav-badge-shine { 0%, 70% { left: -70%; } 100% { left: 140%; } }
@media (prefers-reduced-motion: reduce) { .navbar-jijin .nav-badge::after { animation: none; display: none; } }
.navbar-jijin .nav-links a.active::after {
  content: ""; position: absolute; left: 12px; right: 12px; bottom: -9px; height: 2px;
  border-radius: 2px; background: var(--ink);
}

/* ---------- 顶栏登录态 ---------- */
.navbar-jijin .nav-auth { margin-left: auto; display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.navbar-jijin .nav-auth a { text-decoration: none; font-size: 14px; white-space: nowrap; }
.navbar-jijin .nav-auth form { flex: 0 0 auto; display: flex; margin: 0; }
.navbar-jijin .nav-signin { padding: 6px 10px; color: var(--ink-2); }
.navbar-jijin .nav-signin:hover { color: var(--ink); }
.navbar-jijin .nav-signup {
  padding: 6px 15px; border-radius: 999px; background: var(--brand); color: #fff; font-weight: 600;
}
.navbar-jijin .nav-signup:hover { background: #0077ed; color: #fff; }
.navbar-jijin .nav-user {
  padding: 5px 12px; border-radius: 999px; background: var(--bg); color: var(--ink);
  font-weight: 600; display: inline-flex; align-items: center; gap: 6px; flex: 0 0 auto; white-space: nowrap;
}
.navbar-jijin .nav-user-name { max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.navbar-jijin .nav-user:hover { background: #ebebef; color: var(--ink); }
.navbar-jijin .nav-logout {
  background: none; border: none; padding: 5px 8px; font-size: 14px; color: var(--ink-3);
  cursor: pointer; white-space: nowrap; flex: 0 0 auto;
}
.navbar-jijin .nav-logout:hover { color: var(--danger); }
/* 待审核角标：用户看不到明细时，得一眼看出是"还没过审"而不是"站点坏了" */
.pill-pending {
  display: inline-block; padding: 1px 7px; border-radius: 999px;
  background: var(--accent-soft); color: var(--accent); font-size: 12px; font-weight: 600;
}

/* ---------- 布局 ---------- */
.page-wrap { max-width: 1200px; margin: 0 auto; padding: 32px 24px 64px; }
.page-footer {
  background: var(--bg);
  border-top: 1px solid var(--line);
  color: var(--ink-3);
  font-size: 12px;
  line-height: 1.7;
}
.page-footer .page-wrap { padding-top: 20px; padding-bottom: 28px; display: flex; flex-wrap: wrap; gap: 6px 24px; justify-content: space-between; }
.page-footer a { color: var(--ink-2); }
.page-footer .beian { flex-basis: 100%; text-align: center; }
.page-footer .beian > * + * { margin-left: 18px; }
.page-footer .gongan img { height: 14px; vertical-align: -2px; margin-right: 4px; }

/* ---------- 页头（每页标题区） ---------- */
.page-head { margin-bottom: 28px; }
.page-head h4 { font-size: 30px; font-weight: 600; color: var(--ink); margin-bottom: 6px; letter-spacing: -0.02em; line-height: 1.25; }
.page-head .sub { color: var(--ink-3); font-size: 16px; line-height: 1.6; max-width: 880px; }
.stat-line {
  display: inline-flex; align-items: center; gap: 6px; background: var(--card);
  border-radius: 999px; padding: 5px 14px; font-size: 13px; color: var(--ink-2);
}
.stat-line strong { color: var(--ink); font-weight: 600; }

/* ---------- 卡片：白底、大圆角、无边框，靠浅灰底色和间距分开 ---------- */
.card {
  background: var(--card);
  border: none;
  border-radius: var(--radius);
  box-shadow: none;
}
.card.mb-3, .card.mb-2 { margin-bottom: 20px !important; }
.card-header {
  background: transparent;
  border-bottom: 1px solid var(--line);
  font-weight: 600;
  font-size: 16px;
  color: var(--ink);
  padding: 14px 20px;
}
.card-header:first-child { border-radius: var(--radius) var(--radius) 0 0; }
.card-header .hint { font-weight: 400; font-size: 13px; color: var(--ink-3); }
.card-body { padding: 20px; }
.card-header.group-lx, .card-header.group-cg { border-left: none; }

/* ---------- 表单 ---------- */
.form-label { font-size: 13px; color: var(--ink-2); font-weight: 400; margin-bottom: 4px; }
.form-control, .form-select {
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-sm);
  font-size: 15px;
  color: var(--ink);
  background-color: #fff;
  min-height: 40px;
  transition: border-color .12s, box-shadow .12s;
}
.form-control-sm, .form-select-sm { font-size: 14px; min-height: 34px; border-radius: var(--radius-xs); }
.form-control:focus, .form-select:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 4px rgba(0, 113, 227, .16);
}
.form-control::placeholder { color: var(--ink-4); }
.form-control:disabled, .form-select:disabled { background-color: var(--bg); color: var(--ink-4); }

/* ---------- 按钮：主按钮蓝色胶囊；其余为浅灰胶囊 ---------- */
.btn { border-radius: 999px; font-size: 14px; font-weight: 600; padding: 7px 18px; border-width: 1px; white-space: nowrap; }
.btn-sm { font-size: 13px; padding: 4px 13px; }
.btn-lg { font-size: 17px; padding: 11px 26px; }
.btn-primary { background: var(--brand); border-color: var(--brand); color: #fff; }
.btn-primary:hover, .btn-primary:focus { background: #0077ed; border-color: #0077ed; color: #fff; }
.btn-primary:active { background: #006edb !important; }
.btn-outline-primary { color: var(--link); border-color: var(--brand); background: #fff; }
.btn-outline-primary:hover { background: var(--brand-soft); border-color: var(--brand); color: var(--link-hover); }
.btn-outline-secondary, .btn-outline-success, .btn-secondary, .btn-light {
  color: var(--ink); border-color: transparent; background: #ececf0;
}
.btn-outline-secondary:hover, .btn-outline-success:hover, .btn-secondary:hover, .btn-light:hover {
  background: #e1e1e6; border-color: transparent; color: var(--ink);
}

/* ---------- 表格：白底细线、高对比（工具风） ---------- */
.table { font-size: 14px; color: var(--ink); --bs-table-hover-bg: #f5f5f7; --bs-table-color: var(--ink); }
.table > thead th {
  background: transparent;
  color: var(--ink-2);
  font-weight: 600;
  font-size: 13px;
  border-bottom: 1px solid var(--line-strong) !important;
  white-space: nowrap;
}
.table > tbody td { border-color: var(--line); vertical-align: middle; }
.table a { color: var(--link); }
.table a:hover { color: var(--link-hover); }

/* ---------- 分面面板 ---------- */
.facet-panel .card-header {
  padding: 8px 14px;
  font-size: 14px;
}
.facet-list a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 4px 10px;
  font-size: 14px;
  color: var(--link);
  text-decoration: none;
  border-radius: 8px;
}
.facet-list a:hover {
  background: var(--bg);
  color: var(--link-hover);
  text-decoration: none;
}
.facet-count {
  color: var(--ink-3);
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}

/* ---------- 可点击统计行 / 数字（"数字即可点"规范） ---------- */
.stat-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 7px 14px;
  font-size: 14px;
  color: var(--link);
  text-decoration: none;
  border-radius: 8px;
}
.stat-row:hover {
  background: var(--bg);
  color: var(--link-hover);
  text-decoration: none;
}
.stat-row .sr-count {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--ink-2);
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  font-size: 14px;
}
.stat-row .sr-count::after {
  content: "→";
  color: var(--brand);
  font-weight: 400;
  opacity: .55;
}
.stat-row .sr-sub {
  color: var(--ink-3);
  font-size: 13px;
}

/* 表格里的可点击数字 */
td .num-link, a.num-link {
  color: var(--link);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  text-decoration: none;
}
td .num-link:hover, a.num-link:hover {
  color: var(--brand-dark);
  text-decoration: underline;
}

/* ---------- 筛选芯片 ---------- */
.chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: var(--brand-soft);
  border: none;
  color: var(--link-hover);
  border-radius: 999px;
  padding: 2px 11px;
  font-size: 13px;
  text-decoration: none;
}
.chip:hover { background: #d9e9fb; color: var(--link-hover); text-decoration: none; }
.chip .x { font-weight: 600; }
/* 芯片上的维度小标（机构 / 学科 / 立项起…），让一串芯片可读 */
.chip .cd {
  font-size: 12px;
  letter-spacing: .05em;
  font-weight: 400;
  color: var(--ink-3);
}

/* ---------- 钻取路径（面包屑） ---------- */
.trail {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  padding: 9px 12px;
  background: var(--card);
  border: none;
  border-radius: var(--radius-sm);
}
.trail-root {
  font-size: 13px;
  color: var(--ink-3);
  text-decoration: none;
}
.trail-root:hover { color: var(--brand); text-decoration: underline; }
.trail-sep { color: var(--ink-3); font-size: 13px; }

/* ---------- 分页 ---------- */
.pagination .page-link {
  color: var(--link);
  border-color: var(--line);
  border-radius: var(--radius-sm) !important;
  margin: 0 2px;
  font-size: 14px;
}
.pagination .page-item.active .page-link {
  background: var(--brand);
  border-color: var(--brand);
  color: #fff;
}

/* ---------- 帮助 / 提示 ---------- */
.help-box {
  background: var(--brand-soft);
  border: 1px solid var(--brand-border);
  border-radius: var(--radius);
  padding: 12px 16px;
  font-size: 14px;
  color: var(--ink-2);
}
.help-box code {
  background: #fff;
  border: 1px solid var(--brand-border);
  border-radius: 4px;
  padding: 1px 6px;
  color: var(--brand-dark);
  font-size: 13px;
}

mark { background: #fff1a8; color: inherit; padding: 0 1px; border-radius: 3px; }

/* ---------- 分析中心卡片网格 ---------- */
.dash-card {
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: 16px;
  transition: box-shadow .15s, transform .15s;
}
.dash-card:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}
.dash-card .dc-tag {
  font-size: 12px;
  font-weight: 600;
  color: var(--accent);
  letter-spacing: 0;
  margin-bottom: 5px;
}
.dash-card .dc-title {
  font-size: 15px;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 5px;
}
.dash-card .dc-desc {
  font-size: 14px;
  color: var(--ink-2);
  flex: 1;
  margin-bottom: 10px;
}
.dash-card .dc-link {
  font-size: 14px;
  font-weight: 600;
  color: var(--link);
  text-decoration: none;
}
.dash-card .dc-link:hover { color: var(--brand-dark); text-decoration: underline; }

.section-title {
  font-size: 22px;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: -0.01em;
  margin: 44px 0 16px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.section-title::after { content: none; }
.section-title .st-note {
  font-weight: 400;
  font-size: 14px;
  color: var(--ink-3);
}

/* ---------- 详情页 ---------- */
.detail-title {
  font-size: 22px;
  font-weight: 600;
  line-height: 1.5;
}
.detail-meta {
  color: var(--ink-3);
  font-size: 14px;
  margin-bottom: 18px;
}
.detail-table th {
  width: 130px;
  background: transparent;
  color: var(--ink-2);
  font-weight: 600;
  font-size: 14px;
  white-space: nowrap;
}
.detail-table td { font-size: 14px; }

/* ---------- 微调 ---------- */
.small, small { font-size: 13px; }
.text-muted { color: var(--ink-3) !important; }
a { color: var(--link); }

@media (max-width: 768px) {
  .page-wrap { padding: 14px 12px 32px; }
  .navbar-jijin .nav-meta { display: none; }
  /* 登录态不能藏（藏了就没法登录/退出），只把它压紧一点 */
  .navbar-jijin .nav-auth { gap: 5px; }
  .navbar-jijin .nav-auth a,
  .navbar-jijin .nav-logout { padding: 5px 9px; font-size: 13px; }
}

/* ==========================================================================
   实体页：四类实体（机构/学科/选题/学者）共用的「范围 + 卡片」骨架
   沿用既有色板（--brand 学术深青 / --accent 暖金），不另起一套
   ========================================================================== */

/* ---- 实体头部 ---- */
.entity-head{
  background: var(--card); border: none; border-radius: var(--radius);
  padding: 22px 24px; margin-bottom: 20px;
}
.eh-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:14px; flex-wrap:wrap; }
.eh-id{ min-width: 240px; }
.eh-kind{
  font-size: 12px; letter-spacing: .14em; color: var(--ink-3);
  font-weight: 600; text-transform: uppercase;
}
.eh-id h4{ margin: 2px 0 3px; font-size: 22px; color: var(--ink); }
.eh-scope{ font-size: 13px; color: var(--ink-2); }

.eh-metrics{
  display:flex; flex-wrap:wrap; gap: 26px;
  margin-top: 14px; padding-top: 13px; border-top: 1px solid var(--line);
}
.eh-metrics .em .v{
  font-size: 20px; font-weight: 600; color: var(--ink);
  font-variant-numeric: tabular-nums; line-height: 1.25;
}
.eh-metrics .em .k{ font-size: 12px; color: var(--ink-3); }
.eh-metrics .em .k-note{ color: var(--ink-3); opacity: .75; }

/* ---- 一级/二级口径切换 ---- */
.lv-toggle{
  display:inline-flex; background: var(--bg); border: 1px solid var(--line);
  border-radius: 7px; padding: 2px; gap: 2px;
}
.lv-toggle a{
  font-size: 13px; color: var(--ink-2); text-decoration: none;
  padding: 4px 11px; border-radius: 5px; white-space: nowrap;
}
.lv-toggle a:hover{ color: var(--brand); }
.lv-toggle a.on{
  background: var(--card); color: var(--brand); font-weight: 600;
  box-shadow: 0 1px 2px rgba(0,0,0,.07);
}

/* ---- 范围面板 ---- */
.scope-panel{
  background: var(--card); border: 1px solid var(--line); border-radius: 10px;
  padding: 3px 14px; margin-bottom: 16px;
}
.sp-row{ display:flex; align-items:center; gap: 8px; flex-wrap: wrap; padding: 9px 0; min-height: 42px; }
.sp-row + .sp-row{ border-top: 1px solid var(--line); }
.sp-label{
  font-size: 12px; letter-spacing: .1em; color: var(--ink-3);
  font-weight: 600; width: 28px; flex: none;
}
.sp-hint{ font-size: 13px; color: var(--ink-3); }

/* 「少算」行：筛选字段有空值时把被排除的条数摆在明面上。
   静默少算比报错危险 —— 所以它不是 hint 的灰色，而是要被看见的琥珀色。 */
.sp-missing{ color: #8a5a00; font-size: 14px; line-height: 1.6; }
.sp-missing .sp-label{ color: #8a5a00; }
.sp-missing .sp-hint{ color: var(--ink-3); }
.cond{
  display:inline-flex; align-items:center; gap: 7px; font-size: 13px;
  background: var(--bg); border: 1px solid var(--line); border-radius: 20px;
  padding: 3px 6px 3px 10px; color: var(--ink); max-width: 100%;
}
.cond .cd{ font-size: 12px; letter-spacing: .05em; color: var(--ink-3); font-weight: 600; }
.cond.subj{ background: var(--brand-soft); border-color: var(--brand-border); color: var(--brand); font-weight: 600; }
.cond.subj .cd{ color: var(--brand); opacity: .8; }
.cond .cx{
  color: var(--ink-3); text-decoration: none; font-size: 15px; line-height: 1;
  padding: 0 5px; border-radius: 50%;
}
.cond .cx:hover{ color: #b3261e; background: var(--line); }
.sp-add{ display:flex; gap: 7px; flex-wrap: wrap; align-items: center; margin: 0; }
.sp-add select{
  font-size: 13px; color: var(--ink-2); background: var(--bg);
  border: 1px dashed var(--line); border-radius: 20px; padding: 4px 9px;
  max-width: 210px;
}
.sp-add select:hover{ border-color: var(--brand); color: var(--brand); }

/* ---- 卡片：来源标注 + 提示 ---- */
.card-origin{
  float: right; font-size: 12px; color: var(--ink-3); font-weight: 400;
  background: var(--bg); border-radius: 4px; padding: 1px 7px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}
.card-hint{
  font-size: 12px; color: var(--ink-3); padding: 7px 6px 2px;
  border-top: 1px solid var(--line); margin-top: 6px;
}

/* ---- 条形列表（卡片主体）---- */
.blist{ display:flex; flex-direction: column; }
.brow{
  position: relative; display:grid; grid-template-columns: minmax(0,1fr) auto;
  gap: 10px; align-items: center; padding: 5px 7px; border-radius: 5px;
  text-decoration: none; color: var(--ink);
}
a.brow:hover{ background: var(--brand-soft); }
a.brow:hover .blab{ color: var(--brand); }
.btrack{
  position: absolute; left: 0; top: 4px; bottom: 4px;
  background: var(--brand-soft); border-radius: 0 4px 4px 0; z-index: 0;
}
a.brow:hover .btrack{ background: var(--brand-border); }
.blab{
  position: relative; z-index: 1; font-size: 13px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.brank{ display:inline-block; min-width:1.5em; margin-right:6px; text-align:right; color: var(--ink-4); font-weight:600; font-variant-numeric: tabular-nums; }
.borg{ margin-left:6px; font-size:12px; color: var(--ink-3); }   /* 活跃学者：同名同单位，名字后面跟单位（2026-10-15） */
.bnum{
  position: relative; z-index: 1; font-size: 13px; color: var(--ink-2);
  font-variant-numeric: tabular-nums;
}
/* 一位学者的项目清单顶部的小结（_person_card.html，2026-10-17） */
.psn-h{ font-size: 17px; color: var(--ink); }
.psn-xk{ margin-left: 10px; font-size: 13px; color: var(--ink-3); }

@media (max-width: 640px){
  .eh-metrics{ gap: 16px; }
  .eh-id h4{ font-size: 20px; }
}

/* ---- 对比条与对比卡 ---- */
.cmp-dim{ font-size: 13px; color: var(--ink-2); }
.cmp-dim b{ color: var(--ink); }
.addbtn-link{
  font-size: 13px; color: var(--link); text-decoration: none;
  border: 1px dashed var(--line); border-radius: 20px; padding: 3px 11px;
}
.addbtn-link:hover{ border-color: var(--brand); background: var(--brand-soft); }
.sp-row select{
  font-size: 13px; color: var(--ink-2); background: var(--bg);
  border: 1px solid var(--line); border-radius: 20px; padding: 4px 9px; max-width: 190px;
}
.cmp-off{
  margin-left: auto; font-size: 13px; color: var(--ink-3); text-decoration: none;
}
.cmp-off:hover{ color: #b3261e; }
.cond.focus{ border-color: var(--brand); }
.cond.focus::before{
  content: ""; width: 8px; height: 8px; border-radius: 50%;
  background: var(--brand); display: inline-block; flex: none;
}

.cmp-card{ border-color: var(--brand-border); box-shadow: 0 0 0 3px var(--brand-soft); margin-bottom: 14px; }
.cmp-tools{ padding: 2px 6px 8px; }
.cmp-tools a{
  font-size: 13px; color: var(--ink-2); text-decoration: none;
  background: var(--bg); border: 1px solid var(--line);
  border-radius: 20px; padding: 3px 11px;
}
.cmp-tools a.on{ color: var(--brand); border-color: var(--brand-border); background: var(--brand-soft); }
.cmp-note{
  font-size: 13px; color: var(--ink-2); line-height: 1.6;
  background: var(--bg); border-left: 2px solid var(--line);
  border-radius: 0 7px 7px 0; padding: 9px 12px; margin: 10px 6px 4px;
}
.cmp-note b{ color: var(--ink); }

/* ---- 导航栏全局实体检索 ---- */
.omni{ position: relative; flex: 1 1 300px; max-width: 420px; margin: 0 16px; }
.omni-icon{
  position: absolute; left: 11px; top: 50%; transform: translateY(-50%);
  color: var(--ink-3); font-size: 14px; pointer-events: none;
}
.omni input{
  width: 100%; font: inherit; font-size: 14px; color: var(--ink);
  background: rgba(255,255,255,.9); border: 1px solid var(--brand-border);
  border-radius: 8px; padding: 6px 12px 6px 30px;
}
.omni input:focus{ outline: 2px solid var(--brand-border); outline-offset: 1px; background: #fff; }
.omni input::placeholder{ color: var(--ink-3); }
.omni-pop{
  position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 60;
  background: var(--card); border: 1px solid var(--line); border-radius: 10px;
  box-shadow: 0 6px 24px rgba(20,40,50,.14); overflow: hidden; max-height: 60vh; overflow-y: auto;
}
.omni-pop[hidden]{ display: none !important; }
.omni-row{
  display: flex; align-items: center; gap: 9px; padding: 7px 12px;
  text-decoration: none; color: var(--ink); font-size: 14px;
}
.omni-row:hover, .omni-row.on{ background: var(--brand-soft); }
.okind{
  font-size: 12px; padding: 1px 6px; border-radius: 4px; flex: none;
  background: var(--bg); color: var(--ink-3); letter-spacing: .04em;
}
.okind-org{ background: var(--brand-soft); color: var(--brand); }
.okind-xk{ background: #e8f2ec; color: #2b6b4a; }
.okind-topic{ background: var(--accent-soft); color: #8a5c13; }
.okind-scholar{ background: #efeaf6; color: #5b4a86; }
.okind-search{ background: var(--brand); color: #fff; }
.omni-empty{ visibility: hidden; }
.oname{ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.onote{ font-size: 12px; color: var(--ink-3); white-space: nowrap; }
.ocount{
  margin-left: auto; font-size: 12px; color: var(--ink-3);
  font-variant-numeric: tabular-nums; flex: none;
}
/* 窄屏顶栏：允许换行，搜索框独占第二行。
   注意 .nav-inner 是 display:flex 但默认 flex-wrap:nowrap，
   单写 .omni{flex-basis:100%} 不会换行，只会被压成几十像素宽。 */
@media (max-width: 820px){
  .navbar-jijin .nav-inner {
    flex-wrap: wrap;
    height: auto;
    row-gap: 8px;
    /* 覆盖模板上的 inline padding-top/bottom:0 */
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }
  .navbar-jijin .brand { order: 1; }
  .navbar-jijin .nav-links { order: 2; }
  .navbar-jijin .nav-auth { order: 3; margin-left: auto; }
  .navbar-jijin .nav-meta { display: none; }
  .navbar-jijin .omni { order: 4; flex: 1 1 100%; margin: 0; max-width: none; }
  .navbar-jijin .omni-empty { display: none; }     /* 首页不放顶部检索，窄屏也不留空行 */
}

/* ---- 分析入口（问题导向）---- */
.hub-stats{
  display: flex; flex-wrap: wrap; gap: 0; margin-bottom: 18px;
  background: var(--card); border: 1px solid var(--line); border-radius: 10px; overflow: hidden;
}
.hub-stats .hs{ flex: 1 1 130px; padding: 12px 16px; border-right: 1px solid var(--line); }
.hub-stats .hs:last-child{ border-right: 0; }
.hub-stats .hs b{
  display: block; font-size: 20px; color: var(--ink); font-variant-numeric: tabular-nums;
}
.hub-stats .hs span{ font-size: 12px; color: var(--ink-3); }

.q-card{
  display: block; height: 100%; text-decoration: none; color: var(--ink);
  background: var(--card); border: 1px solid var(--line); border-radius: 10px;
  padding: 15px 17px; transition: border-color .12s, transform .12s;
}
.q-card:hover{ border-color: var(--brand); transform: translateY(-1px); color: var(--ink); }
.q-kind{
  display: inline-block; font-size: 12px; letter-spacing: .05em;
  background: var(--brand-soft); color: var(--brand);
  padding: 1px 7px; border-radius: 4px; margin-bottom: 7px;
}
.q-title{ font-size: 16px; font-weight: 600; margin-bottom: 4px; }
.q-desc{ font-size: 13px; color: var(--ink-2); line-height: 1.55; }
.q-sample{ font-size: 13px; color: var(--link); margin-top: 7px; }
.q-title a{ color: inherit; text-decoration: none; }
.q-title a:hover{ color: var(--brand); }
.entity-input{ margin-top: 12px; }
.entity-input label{ display: block; font-size: 13px; font-weight: 600; margin-bottom: 6px; }
.entity-input-controls{ display: flex; gap: 8px; }
.entity-input-controls input{ flex: 1; min-width: 0; }
.entity-input-controls button{ flex-shrink: 0; white-space: nowrap; }
.entity-switch{ border: 1px solid var(--line); border-radius: 10px; background: var(--card); padding: 4px 16px 12px; }
.entity-matches{ display: grid; gap: 8px; }
.entity-match{ display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--card); color: var(--ink); text-decoration: none; }
.entity-match:hover{ border-color: var(--brand); color: var(--brand); }
.entity-match small{ display: block; color: var(--ink-3); margin-top: 4px; }
@media (max-width: 480px){
  .entity-input-controls{ flex-wrap: wrap; }
  .entity-input-controls input{ flex-basis: 100%; }
}

.preset-grid{ display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(228px, 1fr)); }
.preset{
  display: block; text-decoration: none; color: var(--ink);
  background: var(--card); border: 1px solid var(--line); border-radius: 9px; padding: 11px 13px;
}
.preset:hover{ border-color: var(--brand); background: var(--brand-soft); color: var(--ink); }
.preset b{ display: block; font-size: 14px; font-weight: 600; }
.preset span{ font-size: 12px; color: var(--ink-3); line-height: 1.5; }

/* 手机上导航有三行（品牌与入口、登录、全局搜索），固定在顶部会一直挡住近五分之一屏，改为随页面滚走 */
@media (max-width: 768px) {
  .navbar-jijin { position: static; }
  .page-head h4 { font-size: 24px; }
  .page-head .sub { font-size: 15px; }
  .page-wrap { padding: 20px 14px 40px; }
}

/* ---- 编号与对齐（2026-10-05 用户：列表没有序号、卡片里标签参差，看着乱）----
   规矩：并列条目一律带连续序号（跨分组接续、翻页接续）；卡片 = 标题行（序号 + 名称 + 状态）+ 两列对齐的「标签 | 内容」；
   卡片里的子列表也编号；长页面的分节标题用「一、二、三」。 */
.ix-num{display:inline-block;min-width:1.6em;margin-right:8px;font-weight:600;color:var(--ink-4);font-variant-numeric:tabular-nums;text-align:right;flex:none}
.ix-card{background:var(--card);border-radius:16px;padding:18px 22px;margin:0 0 12px;scroll-margin-top:80px}
.ix-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.ix-head .ix-title{font-size:17px;font-weight:600;letter-spacing:-0.01em;color:var(--ink)}
.ix-head .ix-side{margin-left:auto;display:flex;align-items:flex-end;gap:8px;font-size:12px;color:var(--ink-3)}
.ix-desc{font-size:13px;color:var(--ink-3);margin:4px 0 0 calc(1.6em + 8px);line-height:1.6}
.kv{display:grid;grid-template-columns:5.5em minmax(0,1fr);column-gap:14px;row-gap:8px;margin:12px 0 0 calc(1.6em + 8px);padding-top:12px;border-top:1px solid var(--line);font-size:14px;line-height:1.65}
.kv.flat{border-top:none;padding-top:0;margin-top:8px}
.kv>dt{color:var(--ink-3);font-size:13px;font-weight:400;line-height:1.75}
.kv>dd{margin:0;min-width:0}
.kv .sub{display:block;font-size:13px;color:var(--ink-3)}
.ol-sub{list-style:none;padding:0;margin:0;counter-reset:s}
.ol-sub>li{counter-increment:s;display:flex;gap:6px;line-height:1.65}
.ol-sub>li::before{content:counter(s) ".";color:var(--ink-4);min-width:1.4em;text-align:right;font-variant-numeric:tabular-nums;flex:none}
.ix-row{display:flex;gap:0;padding:11px 0;border-top:1px solid var(--line)}
.ix-row:first-child{border-top:none}
.ix-row>.ix-body{min-width:0;flex:1}
.sec-title{font-size:20px;font-weight:600;letter-spacing:-0.01em;margin:4px 0 10px;color:var(--ink)}
.sec-title .sec-hint{font-size:13px;font-weight:400;color:var(--ink-3);margin-left:6px;letter-spacing:0}
table .ix-col{width:2.6em;text-align:right;color:var(--ink-4);font-variant-numeric:tabular-nums;font-weight:600}
@media (max-width: 640px){
  .kv{grid-template-columns:1fr;row-gap:0;margin-left:0}
  .kv>dt{margin-top:6px}
  .ix-desc{margin-left:0}
  .ix-card{padding:16px}
}
.sec-desc{font-size:13px;color:var(--ink-3);margin:-6px 0 10px;line-height:1.6}
.card-origin{display:none}   /* 卡片右上角的路由名（/analytics/subject）是开发标记，对读者没有意义（2026-10-05） */

/* 反馈有新回复：导航"我的"上的小红点（2026-10-07） */
.nav-user{position:relative}
.nav-dot{position:absolute;top:2px;right:2px;width:8px;height:8px;border-radius:50%;background:var(--danger);box-shadow:0 0 0 2px #fff}

/* ===== 页面层次（2026-10-11 用户："红色线上方的突出显示不明显，还是显示都是密密麻麻的文字"）=====
   全站共用五样：数字卡片 pg-tile、分区 sec（标题 18px 加粗、说明在旁、操作在右）、标签—内容行 lv、分段选项卡 seg、小节标题 sub-h。
   原则：标题和说明不能一样大一样颜色；一处只放一行灰色说明，多的收进"说明"；能用数字说的用大数字。 */
.pg-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:0 0 16px}
.pg-tile{display:block;background:var(--card);border-radius:16px;padding:14px 16px;color:inherit;text-decoration:none;border:1px solid transparent;transition:border-color .15s}
a.pg-tile:hover{border-color:var(--brand-border);text-decoration:none;color:inherit}
.pg-tile .k{font-size:13px;font-weight:600;color:var(--ink-2);display:flex;align-items:center;gap:6px}
.pg-tile .v{font-size:28px;font-weight:600;color:var(--ink);line-height:1.25;margin-top:4px;font-variant-numeric:tabular-nums}
.pg-tile .v small{font-size:15px;font-weight:600;color:var(--ink-3);margin-left:2px}
.pg-tile .s{font-size:12.5px;color:var(--ink-3);margin-top:2px;line-height:1.5}
.pg-tile .go{font-size:13px;font-weight:600;color:var(--link);margin-top:6px;display:inline-block}
.pg-tile.hl{background:var(--brand-soft);border-color:var(--brand-border)}
.pg-tile .dot{display:inline-block;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--danger);color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center}
/* 页内锚点跳转给悬浮导航留出高度（2026-10-18 用户：/dangan/qidian#works 跳过去"5. 前期成果"标题被导航盖住）。
   :target 管所有带网址锚点的跳转；下面的类再兜住脚本里的 scrollIntoView。只影响定位，不影响布局 */
:target{scroll-margin-top:80px}
.qd-sec,.sec,.lv,.beta-card,.sec-title,.bq{scroll-margin-top:80px}
.sec{background:var(--card);border-radius:18px;padding:18px 22px;margin:0 0 16px}
.sec-hd{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:12px}
.sec-t{font-size:18px;font-weight:600;color:var(--ink);letter-spacing:-0.01em}
.sec-sub{font-size:13px;color:var(--ink-3)}
.sec-act{margin-left:auto;font-size:14px;font-weight:600;white-space:nowrap}
.lv{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;padding:12px 0;border-top:1px solid var(--line)}
.lv:first-of-type{border-top:none;padding-top:2px}
.lv .lv-l{flex:0 0 6.5em;font-size:15px;font-weight:600;color:var(--ink)}
.lv .lv-v{flex:1 1 300px;min-width:0;font-size:15px;color:var(--ink-2);line-height:1.6}
.lv .lv-v .d{display:block;font-size:13px;color:var(--ink-3)}
.lv .lv-a{margin-left:auto}
.seg{display:inline-flex;flex-wrap:wrap;gap:4px;background:#ececf0;border-radius:14px;padding:4px;margin:0 0 14px}
.seg button,.seg a{appearance:none;border:0;background:transparent;border-radius:10px;padding:8px 16px;font-size:15px;font-weight:600;color:var(--ink-3);cursor:pointer;text-decoration:none;white-space:nowrap}
.seg button:hover,.seg a:hover{color:var(--ink);text-decoration:none}
.seg .on,.seg .active{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.seg .tb{font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px;margin-left:6px;vertical-align:1px;background:#dfe0e6;color:var(--ink-2)}
.seg .tb.hot{background:var(--accent-soft);color:var(--accent)}.seg .tb.warn{background:var(--danger-soft);color:var(--danger)}
.sub-h{font-size:15px;font-weight:600;color:var(--ink);border-left:3px solid var(--brand);border-radius:0;padding-left:9px;margin:18px 0 8px;line-height:1.35}
.sub-h:first-child{margin-top:4px}
.sub-h .n{font-weight:400;font-size:13px;color:var(--ink-3);margin-left:6px}
@media (max-width: 576px){ .sec{padding:16px} .lv .lv-l{flex-basis:100%} .pg-tile .v{font-size:24px} .seg button,.seg a{padding:7px 12px;font-size:14px} }
/* 导航上的新条数（申报动态，2026-10-11） */
.nav-count{display:inline-block;min-width:17px;height:17px;padding:0 5px;margin-left:4px;border-radius:9px;background:var(--danger);color:#fff;font-size:11px;font-weight:700;line-height:17px;text-align:center;vertical-align:2px}
/* 选题的阶段路线（2026-10-11 整体改版，_xuanti_tabs.html）：找方向 → 比方向 → 定题目 → 写选题说明 */
.xt-steps{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 6px;width:100%}
.xt-steps .st{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:8px 14px 8px 10px;color:var(--ink-2);text-decoration:none;flex:1 1 150px;min-width:0}
.xt-steps a.st:hover{border-color:var(--brand-border);text-decoration:none;color:var(--ink)}
.xt-steps .st .i{flex:none;width:26px;height:26px;border-radius:50%;background:#ececf0;color:var(--ink-3);font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center}
.xt-steps .st .tx{display:flex;flex-direction:column;line-height:1.3;min-width:0}
.xt-steps .st b{font-size:15px;color:var(--ink)}.xt-steps .st small{font-size:12px;color:var(--ink-3)}
.xt-steps .st.on{background:var(--brand);border-color:var(--brand)}.xt-steps .st.on .i{background:#fff;color:var(--brand)}
.xt-steps .st.on b,.xt-steps .st.on small{color:#fff}
.xt-steps .st.off{background:transparent;border-style:dashed;cursor:help}
.xt-steps .ar{color:var(--ink-4);font-size:18px;flex:none}
.xt-refs{font-size:13px;color:var(--ink-3);margin:2px 0 14px;width:100%}.xt-refs a.on{font-weight:600;color:var(--ink)}
@media (max-width: 640px){ .xt-steps .ar{display:none} .xt-steps .st{flex:1 1 45%} }

/* 2026-10-12 全站审核：手机上顶栏原来占两行（入口一行、登录注册一行），约 100 像素。
   窄屏只留标志、去掉"NEW"、压紧间距，一行放下；"退出"在个人中心里有（账号与安全上方），这里藏起来 */
@media (max-width: 576px){
  .navbar-jijin .nav-inner{flex-wrap:nowrap;gap:6px;padding-top:6px !important;padding-bottom:6px !important}
  .navbar-jijin .brand .brand-name{display:none}
  .navbar-jijin .nav-badge{display:none}
  .navbar-jijin .nav-links{gap:0;min-width:0}
  .navbar-jijin .nav-links a{padding:6px 8px;font-size:14px}
  .navbar-jijin .nav-links a.nav-hot{padding:5px 12px;margin:0 2px 0 0}
  .navbar-jijin .nav-links a.active::after{display:none}
  .navbar-jijin .nav-auth{gap:4px}
  .navbar-jijin .nav-user-name{max-width:72px}
  .navbar-jijin .nav-logout{display:none}
  .navbar-jijin .nav-auth a,.navbar-jijin .nav-signin{padding:5px 7px}
}
/* 导航里的"使用指南"：窄屏只写"指南"（2026-10-13） */
@media (max-width: 576px){ .nav-links .nav-long{display:none} }
/* 2026-10-14：手机上登录后导航比屏幕宽 42px，整页被撑宽（全屏的逐篇阅读右边被裁）。"申报动态"窄屏只写"动态"、用户名再短些；
   导航链接区放不下时自己横向滚，不再撑宽页面 */
@media (max-width: 430px){
  /* 10-14 起这里给导航链接区开了横向滚动，结果"工具"下拉菜单在手机上被裁掉、一直打不开（10-25 发现）。
     现在靠压留白、字号已经放得下（320—430 都量过），不再滚动 */
  .navbar-jijin .nav-links a{padding:6px 6px}
  .navbar-jijin .nav-user-name{max-width:56px}
}
/* 2026-10-25：导航加了"学科"以后，375 宽的手机上没登录时比屏幕宽 27px（360 宽登录后宽 40 多 px）——再压紧留白、字小半号
   （同日导航改成两个下拉后，401—410 宽也挤，放宽到 412） */
@media (max-width: 412px){
  .navbar-jijin .nav-inner{gap:4px}
  .navbar-jijin .nav-links a{padding:6px 4px}
  .navbar-jijin .nav-links a.nav-hot{padding:5px 9px}
  .navbar-jijin .nav-more summary{padding-left:4px;padding-right:4px}
  .navbar-jijin .nav-auth a,.navbar-jijin .nav-signin{padding:5px 6px}
}
@media (max-width: 380px){
  .navbar-jijin .nav-inner{padding-left:8px !important;padding-right:8px !important}
  .navbar-jijin .nav-links a,.navbar-jijin .nav-more summary{font-size:13.5px}
}
/* 2026-10-25 导航改成"申报信息""指南"两个下拉：手机上去掉 ▾（点开照样是菜单），320 宽再压一点 */
@media (max-width: 576px){
  .navbar-jijin .nav-links .nav-more>summary::after{display:none}
  /* 手机上下拉菜单在导航条下面整宽展开（按 summary 右对齐会有一截出屏幕） */
  .navbar-jijin .nav-inner{position:relative}
  .navbar-jijin .nav-links .nav-more{position:static}
  .navbar-jijin .nav-links .nav-more .nav-menu{left:8px;right:8px;top:calc(100% + 4px);min-width:0}
}
@media (max-width: 340px){
  .navbar-jijin .nav-inner{gap:3px;padding-left:6px !important;padding-right:6px !important}
  .navbar-jijin .brand .logo{width:26px;height:26px}
  .navbar-jijin .nav-links a,.navbar-jijin .nav-more summary{font-size:13px}
  .navbar-jijin .nav-links a{padding:6px 3px}
  .navbar-jijin .nav-more summary{padding-left:3px;padding-right:3px}
  .navbar-jijin .nav-links a.nav-hot{padding:5px 7px}
  .navbar-jijin .nav-auth a,.navbar-jijin .nav-signin{padding:5px 5px}
  .navbar-jijin .nav-user-name{max-width:48px}
}


/* 邮箱验证提醒（base.html，2026-10-15） */
.verify-bar{margin:10px 0 0;padding:8px 14px;border-radius:10px;background:#fff7e0;color:#7a5a00;font-size:13.5px;line-height:1.6}
.verify-bar.over{background:#fdeeee;color:#a12a2a}
.verify-bar a{font-weight:600;margin-left:4px;white-space:nowrap}
.verify-bar .vc{margin-left:4px}.verify-bar .vb-alt{font-weight:400;font-size:12.5px}
.verify-bar.done{background:#eaf7ee;color:#1d6b36}

/* 选题四段条（2026-10-20，_stages.html）：全站一个步骤说法 */
.sg-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 6px;width:100%}
.sg-bar .sg{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:8px 14px 8px 10px;
  color:var(--ink-2);text-decoration:none;flex:1 1 150px;min-width:0}
.sg-bar a.sg:hover{border-color:var(--brand-border);text-decoration:none;color:var(--ink)}
.sg-bar .sg .i{flex:none;width:26px;height:26px;border-radius:50%;background:#ececf0;color:var(--ink-3);font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center}
.sg-bar .sg .tx{display:flex;flex-direction:column;line-height:1.3;min-width:0}
.sg-bar .sg b{font-size:15px;color:var(--ink)}.sg-bar .sg small{font-size:12px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sg-bar .sg.done .i{background:#e9f6ec;color:#1a7f37}.sg-bar .sg.doing .i{background:var(--brand-soft);color:var(--brand)}
.sg-bar .sg.on{background:var(--brand);border-color:var(--brand)}.sg-bar .sg.on .i{background:#fff;color:var(--brand)}
.sg-bar .sg.on b,.sg-bar .sg.on small{color:#fff}
.sg-bar .ar{color:var(--ink-4);font-size:18px;flex:none}
.sg-subs{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:13.5px;margin:2px 0 14px 4px}
.sg-subs a{color:var(--ink-3);font-weight:600}.sg-subs a.on{color:var(--brand)}.sg-subs a.on::before{content:"● ";font-size:10px}
@media (max-width: 575.98px){.sg-bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.sg-bar .ar{display:none}.sg-bar .sg{padding:6px 10px 6px 8px;gap:8px}
  .sg-bar .sg b{font-size:14px}}

/* 导航"工具"下拉（2026-10-20）：用 details，不依赖脚本 */
.nav-more{position:relative}
.nav-more>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:2px;padding:6px 10px;border-radius:999px;font-size:15px;color:var(--ink-2);white-space:nowrap}
.nav-more>summary::-webkit-details-marker{display:none}
.nav-more>summary::after{content:"▾";font-size:11px;margin-left:3px;color:var(--ink-4)}
.nav-more.active>summary,.nav-more[open]>summary{color:var(--ink);background:var(--bg)}
.nav-more .nav-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:50;min-width:250px;background:var(--card);border-radius:14px;
  box-shadow:0 8px 28px rgba(0,0,0,.14),0 0 0 1px var(--line);padding:6px}
.nav-more .nav-menu a{display:block;padding:8px 12px;border-radius:10px;color:var(--ink);font-size:14.5px;font-weight:600;text-decoration:none}
.nav-more .nav-menu a:hover{background:var(--bg)}
.nav-more .nav-menu small{display:block;font-size:12px;font-weight:400;color:var(--ink-3);margin-top:1px}
/* 账号菜单（2026-10-21）：用户名点开，个人中心、站内消息、我的反馈、申报动态、退出 */
.nav-usermenu>summary.nav-user{padding:5px 12px}
.nav-usermenu .nav-menu{min-width:230px}
.nav-menu-out{margin:4px 0 0;padding-top:4px;border-top:1px solid var(--line)}
.nav-menu-out button{display:block;width:100%;text-align:left;background:none;border:none;padding:8px 12px;border-radius:10px;font-size:14px;color:var(--ink-3);cursor:pointer}
.nav-menu-out button:hover{background:var(--bg);color:var(--danger)}
@media (max-width: 576px){
  .nav-usermenu>summary.nav-user{padding:5px 9px}
  .nav-usermenu>summary::after{display:none}
  .nav-usermenu .nav-menu{position:fixed;right:8px;left:auto;top:52px;max-width:calc(100vw - 16px)}
}

/* 正在做（2026-10-20 二期）：四段条下面一行，换一步不用重输 */
.sg-focus{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:13.5px;background:var(--brand-soft);border-radius:12px;padding:6px 12px;margin:2px 0 6px}
.sg-focus .k{font-size:12px;font-weight:700;color:#fff;background:var(--brand);border-radius:999px;padding:1px 8px}
.sg-focus b{color:var(--ink);font-weight:600;max-width:42em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sg-focus .t{font-size:12px;color:var(--ink-3)}
.sg-focus .go{font-weight:600}.sg-focus .sw{color:var(--ink-3);margin-left:auto}
.qt-line{font-size:13px;color:var(--ink-3);line-height:1.6;margin:4px 0 10px}
.qt-line b{color:var(--ink-2)}

/* 站内消息（2026-10-20）：重要消息横幅 */
.xx-bar{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;background:#fff7e6;border-radius:12px;padding:8px 14px;margin:0 0 12px;font-size:14px}
.xx-bar .k{font-size:12px;font-weight:700;color:#fff;background:#ff9500;border-radius:999px;padding:1px 8px}
.xx-bar b{color:var(--ink)}.xx-bar a{font-weight:600;margin-left:auto}

/* 输入框旁的"内容怎么处理"标签（_privacy.html，2026-10-24） */
/* 提醒文字（2026-10-29 用户："这种提醒文字最好有底纹或突出显示以示区分"）：格式要求、注意事项一类，浅黄底纹 */
.tip-note{display:inline-block;font-size:12.5px;line-height:1.6;color:#7a4b00;background:#fff4dc;border-radius:6px;padding:1px 8px}
.pv-tags{display:inline-flex;flex-wrap:wrap;gap:4px;align-items:center;vertical-align:middle;margin-left:6px;font-weight:400}
.pv-tag{font-size:11.5px;line-height:1.6;border-radius:999px;padding:0 7px;background:#eef7f0;color:#1a5c2a;white-space:nowrap;cursor:help}
.pv-tag.pv-account{background:#e8f1ff;color:#0b5cad}
.pv-tag.pv-llm,.pv-tag.pv-llm_opt{background:#f2eefb;color:#5b3a9e}
.pv-more{font-size:11.5px;color:var(--ink-3)}

/* ---------- 小图（web/charts.py，2026-10-25 看本学科）：最新一年主色、往年灰；柱宽不超过 24px、顶端 4px 圆角、柱间 2px；线 2px ---------- */
.ch-cols{display:flex;align-items:flex-end;gap:2px;border-bottom:1px solid var(--line-strong)}
.ch-c{flex:1 1 0;min-width:0;height:100%;display:flex;align-items:flex-end;justify-content:center;cursor:default}
.ch-c i{display:block;width:70%;max-width:24px;background:#c9c7c0;border-radius:4px 4px 0 0}
.ch-c.now i,.ch-cols.all .ch-c i{background:var(--brand)}
.ch-c:hover i{filter:brightness(.9)}
.ch-ends{display:flex;justify-content:space-between;font-size:11px;color:var(--ink-3);margin-top:3px;font-variant-numeric:tabular-nums}
.ch-hist{margin-top:22px}
.ch-hist .ch-c i{width:80%}
.ch-c.lim{position:relative}
.ch-c.lim::after{content:"";position:absolute;right:-2px;top:-16px;bottom:0;border-right:1px solid var(--danger)}
.ch-c.lim::before{content:attr(data-lab);position:absolute;right:2px;top:-20px;font-size:11px;line-height:1;color:var(--danger);white-space:nowrap}
.ch-ticks{display:flex;gap:2px;font-size:11px;color:var(--ink-3);margin-top:3px;font-variant-numeric:tabular-nums}
.ch-ticks span{flex:1 1 0;min-width:0;text-align:center;white-space:nowrap;overflow:visible}
.ch-spark{display:block;overflow:visible;flex:none}
.ch-spark .base{stroke:var(--line);stroke-width:1}
.ch-spark .ln{fill:none;stroke:var(--brand);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.ch-spark .dot{fill:var(--brand);stroke:var(--card);stroke-width:2}
.ch-spark.dim .ln{stroke:#a1a1a6}.ch-spark.dim .dot{fill:#a1a1a6}
.ch-meter{display:flex;height:8px;border-radius:4px;background:var(--brand-soft);overflow:hidden}
.ch-meter.thin{height:5px}
.ch-meter i{display:block;background:var(--brand);border-radius:4px 0 0 4px;min-width:2px}
.ch-hb{height:9px;border-radius:0 4px 4px 0;background:var(--brand);min-width:2px}
.ch-hb.prev{background:#c9c7c0;margin-top:2px}
.ch-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:12.5px;color:var(--ink-2)}
.ch-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;background:var(--brand);margin-right:5px;vertical-align:-1px}
.ch-legend i.prev{background:#c9c7c0}
.ch-up{color:var(--success)}.ch-down{color:var(--danger)}

/* 中央新提法（2026-10-26，web/tifa_routes.py）：三种状态的提法标签——颜色之外字里写明状态（已经很热 / 正在起来 / 还没人跟） */
.tf-chip{display:inline-flex;align-items:baseline;gap:6px;padding:2px 10px;border-radius:999px;font-size:13px;text-decoration:none;color:var(--ink);background:var(--bg);border:1px solid transparent}
.tf-chip .s{font-size:11.5px;color:var(--ink-3)}.tf-chip:hover{border-color:var(--line-strong)}
.tf-chip.hot{background:var(--accent-soft)}.tf-chip.hot .s{color:var(--accent)}
.tf-chip.rising{background:var(--brand-soft)}.tf-chip.rising .s{color:var(--brand)}
.tf-chip.none{background:var(--card);border:1px dashed var(--line-strong)}
.tf-chip.sm{font-size:12px;padding:1px 8px}.tf-chip.sm .s{font-size:11px}
.tf-tag{display:inline-block;font-size:11.5px;font-weight:600;padding:0 7px;border-radius:999px;background:var(--bg);color:var(--ink-2);white-space:nowrap}
.tf-tag.fyp{background:#e6f4ea;color:var(--success)}
.tf-q mark,.tf-tl mark{background:#fff3b0;padding:0 1px;border-radius:2px;color:inherit}


/* 国家需求怎么论证（2026-10-26 国家需求二期，_guojia.html）：方向分析、题目体检、定题、活页共用 */
.gj{margin-top:8px}
.gj-h{font-size:13px;font-weight:600;color:var(--ink-2);margin:10px 0 4px}.gj-h span{font-weight:400;font-size:12px;color:var(--ink-3);margin-left:4px}
.gj-q{font-size:13.5px;line-height:1.75;color:var(--ink-2);padding:6px 10px;margin:4px 0;border-left:3px solid var(--line-strong);background:var(--bg);border-radius:0 8px 8px 0}
.gj-q .k{display:inline-block;font-size:12px;font-weight:600;color:var(--ink);margin-right:6px}
.gj-q .src{display:block;font-size:12px;color:var(--ink-3)}.gj-q .src a{color:inherit;text-decoration:underline;text-decoration-color:var(--line-strong)}
.gj-tf{display:flex;flex-wrap:wrap;gap:6px}
.gj-m{font-size:12px;color:var(--ink-3);margin-top:4px}
.gj-ol{margin-top:10px;font-size:13.5px}.gj-ol summary{cursor:pointer;color:var(--link);font-size:13px}
.gj-ol ol{margin:6px 0 0;padding-left:1.4em}.gj-ol li{margin:6px 0;line-height:1.7}
.gj-ol .use{font-size:12.5px;color:var(--ink-2);background:var(--bg);border-radius:6px;padding:3px 8px;margin-top:2px}

/* 分档看内容（2026-10-26，web/gate.py、_gate.html）：限住的地方写明还有多少、怎么解锁 */
.gt-lock{margin:8px 0;padding:8px 12px;border-radius:10px;background:var(--bg);border:1px dashed var(--line-strong);font-size:13.5px;color:var(--ink-2);line-height:1.6}
.gt-lock a{font-weight:600}.gt-lock .gt-m{color:var(--ink-3);font-size:12.5px}.gt-ic{margin-right:6px;font-size:12px}
.gt-quick{border:1px solid var(--brand-border)}
