:root {
  --navy: #14456B;
  --navy2: #1D5C8A;
  --gold: #d4a63c;
  --blue: #17436E;
  --brand-navy: #17436e;
  --brand-teal: #26a69a;
  --brand-gold: #e0b246;
  --bg: #f5f7fb;
  --card: #ffffff;
  --text: #1a2233;
  --muted: #6b7688;
  --border: #e3e8f0;
  --chong: #e5484d;
  --wen: #1d6fd6;
  --bao: #1a9e6b;
  --shadow: 0 6px 24px rgba(16, 38, 76, 0.08);
  /* 声明浅色配色方案，防止浏览器/系统深色模式把页面背景反成黑色 */
  color-scheme: light;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; }
body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  background: var(--bg); color: var(--text); line-height: 1.6;
}
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }

/* Header */
.site-header {
  position: sticky; top: 0; z-index: 50; background: #fff;
  box-shadow: 0 2px 12px rgba(16,38,76,.06);
}
.header-inner {
  max-width: 1180px; margin: 0 auto; padding: 0 20px; height: 83px;
  display: flex; align-items: center; gap: 28px;
}
.logo { display: flex; align-items: center; gap: 12px; font-weight: 800; font-size: 40px; letter-spacing: 1px; color: var(--navy); white-space: nowrap; flex: none; }
.logo-img { width: 72px; height: 72px; border-radius: 14px; object-fit: contain; background: #fff; }
.logo-mark {
  width: 66px; height: 66px; border-radius: 14px; background: linear-gradient(135deg, #14456B, var(--blue));
  color: #fff; display: grid; place-items: center; font-size: 30px; font-weight: 800;
  box-shadow: 0 4px 12px rgba(11,42,91,.3);
}
.nav { display: flex; gap: 4px; flex: 1; }
.nav a {
  padding: 8px 12px; border-radius: 8px; color: var(--muted); font-size: 17px; font-weight: 500;
  transition: .18s;
}
.nav a:hover { background: #eef2fa; color: var(--navy); }
/* 桌面/平板导航不重复展示「智能选志愿」（页头蓝色按钮即是），仅手机抽屉菜单显示 */
@media (min-width: 901px) { .nav a.nav-vol { display: none; } }
/* 选中项高亮与「开始选志愿」按钮同款蓝色 */
.nav a.active { background: linear-gradient(135deg, #1D5C8A, #17436E); color: #fff; box-shadow: 0 3px 10px rgba(22,119,255,.3); }
.header-cta { display: flex; gap: 10px; }
.btn {
  border: none; border-radius: 9px; padding: 9px 16px; font-size: 14px; font-weight: 600;
  transition: .18s; background: #eef2fa; color: var(--navy);
}
.btn:hover { transform: translateY(-1px); }
.btn.primary { background: linear-gradient(135deg, #14456B, var(--blue)); color: #fff; box-shadow: 0 6px 16px rgba(11,42,91,.25); }
.btn.gold { background: linear-gradient(135deg, #e6b845, var(--gold)); color: #2a1f00; }
/* ===== 春招「分类考试填报」主入口 =====
 * 与「智能选志愿」同尺寸同圆角（同为 .btn.primary 的盒模型），
 * 但春招开启期间它是站内主入口，所以换成全站唯一的实心金色 + 暖色投影，
 * 与旁边的蓝色 CTA 形成明确主次；顶部加一层极淡高光提升立体感。
 * 注意：选择器必须写成 .btn.primary.spring-entry —— 文件后面还有一条
 * `.btn.primary{background:#1D5C8A}`（院校库等按钮复用），同类选择器会被它盖掉。 */
.btn.primary.spring-entry {
  background: linear-gradient(135deg, #FFC93C 0%, #F5A623 48%, #E8890C 100%);
  color: #4A2A00; font-weight: 800; letter-spacing: .5px;
  box-shadow: 0 6px 16px rgba(232,137,12,.42), inset 0 0 0 1px rgba(255,255,255,.5);
  position: relative; overflow: hidden;
}
.btn.spring-entry::after {
  content: ''; position: absolute; inset: 0; pointer-events: none; border-radius: inherit;
  background: linear-gradient(180deg, rgba(255,255,255,.38), rgba(255,255,255,0) 55%);
}
.btn.primary.spring-entry:hover {
  background: linear-gradient(135deg, #FFD75E 0%, #FFB43A 48%, #F09000 100%);
  box-shadow: 0 10px 22px rgba(232,137,12,.52), inset 0 0 0 1px rgba(255,255,255,.6);
}
/* 已在春招频道内：外圈加一道暖色光环，代替导航项的高亮底色 */
.btn.spring-entry.is-active { box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(232,137,12,.55), 0 8px 20px rgba(232,137,12,.46); }

/* Layout */
.container { max-width: 1180px; margin: 0 auto; padding: 0 20px; }
main { min-height: calc(100vh - 83px - 120px); padding-bottom: 48px; }

/* Hero */
.hero {
  background: radial-gradient(1200px 400px at 20% -10%, #1d4c96 0%, var(--navy) 55%, #081f45 100%);
  color: #fff; padding: 56px 0 40px; position: relative; overflow: hidden;
}
.hero::after {
  content: ""; position: absolute; right: -120px; top: -120px; width: 360px; height: 360px;
  background: radial-gradient(circle, rgba(212,166,60,.28), transparent 65%);
}
.hero .container { position: relative; }
.hero h1 { font-size: 34px; font-weight: 800; letter-spacing: .5px; }
.hero p.sub { color: #c6d4ee; margin-top: 12px; font-size: 16px; max-width: 640px; }
.home-hero .stats, .hero .stats { display: flex; gap: 36px; margin-top: 30px; flex-wrap: wrap; }
.home-hero .stat b, .hero .stat b { font-size: 28px; color: #ffd97a; font-weight: 800; }
.home-hero .stat span, .hero .stat span { display: block; color: #aebedd; font-size: 13px; margin-top: 2px; }

/* Hero 左右布局：左侧内容 + 右侧「金榜题名 / 高考倒计时」竖排块 */
.hero-flex { display: flex; align-items: flex-start; gap: 48px; }
.hero-main { flex: 1; min-width: 0; }
.hero-side { flex: none; display: flex; flex-direction: column; align-items: center; gap: 12px; margin-top: -4px; padding: 20px 26px 18px; border-radius: 20px; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .2); backdrop-filter: blur(6px); box-shadow: 0 10px 30px rgba(0, 0, 0, .18); }
.hero-seal {
  background: linear-gradient(135deg, #C5281C, #E05A3F); color: #fff;
  padding: 14px 30px; border-radius: 14px; font-size: 24px; font-weight: 800; letter-spacing: 8px; text-indent: 8px;
  border: 1px solid rgba(255, 213, 128, .65); box-shadow: 0 6px 18px rgba(197, 40, 28, .45), inset 0 0 0 2px rgba(255, 255, 255, .14);
}
.hero-cd { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.hero-cd .cd-top { font-size: 14px; color: #dfe8f7; letter-spacing: 1px; white-space: nowrap; }
.hero-cd .cd-num { display: flex; align-items: baseline; gap: 6px; }
.hero-cd .cd-num b { font-size: 42px; line-height: 1.1; color: #ffd97a; font-weight: 800; text-shadow: 0 3px 12px rgba(0, 0, 0, .3); font-variant-numeric: tabular-nums; }
.hero-cd .cd-num i { font-style: normal; font-size: 16px; color: #dfe8f7; }
/* 阶段切换时的文案长度不同（「距离志愿填报开始还有」比「距离高考还有」长），
   靠微微缩小字号兜住，不换行、不撑宽右侧卡片 */
.hero-cd[data-state="before_volunteer"] .cd-top,
.hero-cd[data-state="in_volunteer"] .cd-top { font-size: 13px; letter-spacing: .4px; }

/* Quick entries */
.quick { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: -26px; position: relative; z-index: 5; }
.quick .item {
  background: var(--card); border-radius: 14px; padding: 18px; box-shadow: var(--shadow);
  display: flex; align-items: center; gap: 14px; transition: .2s; cursor: pointer; border: 1px solid var(--border);
}
.quick .item:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(16,38,76,.14); }
.quick .ico { width: 44px; height: 44px; border-radius: 11px; display: grid; place-items: center; font-size: 20px; background: #eef2fa; }
.quick .t { font-weight: 700; font-size: 15px; }
.quick .d { font-size: 12px; color: var(--muted); }

/* Section */
.section { margin-top: 40px; }
.section-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 16px; }
.section-head h2 { font-size: 21px; font-weight: 800; color: var(--navy); position: relative; padding-left: 12px; }
.section-head h2::before { content: ""; position: absolute; left: 0; top: 4px; bottom: 4px; width: 4px; border-radius: 3px; background: var(--gold); }
.section-head .more { font-size: 14px; color: var(--blue); cursor: pointer; }

/* Card grid */
.grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.uni-card {
  background: var(--card); border: 1px solid var(--border); border-radius: 14px; padding: 18px;
  box-shadow: var(--shadow); transition: .2s; cursor: pointer;
}
.uni-card:hover { transform: translateY(-3px); border-color: #cdd9ee; box-shadow: 0 12px 28px rgba(16,38,76,.12); }
.uni-card .top { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.uni-card .name { font-size: 17px; font-weight: 800; color: var(--navy); }
.uni-card .loc { font-size: 12.5px; color: var(--muted); margin-top: 3px; }
.uni-card .tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.tag {
  font-size: 11.5px; padding: 2px 8px; border-radius: 6px; background: #eef2fa; color: #35507e; font-weight: 600;
}
.tag.hot { background: #fff3d6; color: #8a6207; }
.tag.gold { background: #fff6e0; color: #8a6207; border: 1px solid #f0d9a0; }
.uni-card .meta { display: flex; gap: 16px; margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--border); font-size: 12.5px; color: var(--muted); }
.uni-card .meta b { color: var(--text); font-weight: 700; }

/* Filter bar */
.filters { display: flex; flex-wrap: wrap; gap: 10px; background: var(--card); padding: 14px; border-radius: 12px; border: 1px solid var(--border); box-shadow: var(--shadow); }
.filters input, .filters select {
  padding: 9px 12px; border: 1px solid var(--border); border-radius: 9px; font-size: 14px; background: #fff; color: var(--text); outline: none;
}
.filters input:focus, .filters select:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(30,95,208,.12); }
.filters input[type=text] { min-width: 220px; flex: 1; }

/* Table */
.table-wrap { background: var(--card); border-radius: 12px; border: 1px solid var(--border); overflow: hidden; box-shadow: var(--shadow); margin-top: 16px; }
table { width: 100%; border-collapse: collapse; font-size: 14px; }
th, td { padding: 11px 14px; text-align: left; border-bottom: 1px solid var(--border); }
th { background: #f7f9fd; color: var(--muted); font-weight: 600; font-size: 13px; }
tr:hover td { background: #fafcff; }
td .score { font-weight: 800; color: var(--navy); }

/* tier badges */
.badge { display: inline-block; padding: 2px 10px; border-radius: 20px; font-size: 12px; font-weight: 700; color: #fff; }
.badge.chong { background: var(--chong); }
.badge.wen { background: var(--wen); }
.badge.bao { background: var(--bao); }.vol-summary .chip { background: #fff; border: 1px solid var(--border); border-radius: 10px; padding: 10px 16px; font-size: 13px; box-shadow: var(--shadow); }
.vol-summary .chip b { font-size: 18px; margin-left: 4px; }

/* News —— 一条资讯一排：主标题靠左，来源 + 日期靠右 */
.news-list {
  display: block; background: #fff; border: 1px solid var(--border); border-radius: 14px;
  box-shadow: 0 1px 2px rgba(16, 38, 72, .05), 0 10px 28px rgba(16, 38, 72, .06);
  overflow: hidden;
}
.news-item {
  padding: 16px 20px; border: 0; border-bottom: 1px solid #f0f4fa; border-radius: 0;
  background: transparent; box-shadow: none; cursor: pointer; transition: background .16s;
}
.news-item:last-child { border-bottom: 0; }
.news-item:hover { background: #f2f7fd; box-shadow: inset 3px 0 0 #1D5C8A; }
.news-row { display: flex; align-items: center; gap: 18px; }
.news-title {
  flex: 1; min-width: 0; font-size: 15.5px; font-weight: 500; line-height: 1.5; color: #1d2b40;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: color .16s;
}
.news-item:hover .news-title { color: #1D5C8A; }
.nr-top {
  display: inline-block; margin-right: 8px; padding: 1px 7px; border-radius: 4px;
  background: #fff1e6; color: #c2410c; font-size: 11.5px; font-weight: 600;
  vertical-align: 1px; letter-spacing: .2px;
}
.nr-meta { flex: none; display: flex; align-items: center; gap: 14px; font-size: 12.5px; }
.news-date {
  flex: none; font-size: 12.5px; color: #98a2b3; white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
@media (max-width: 620px) {
  .news-item { padding: 14px 16px; }
  .news-row { flex-wrap: wrap; gap: 7px 10px; }
  .news-title { flex: 1 1 100%; font-size: 14.5px; line-height: 1.55; white-space: normal;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  .nr-meta { flex: 1 1 100%; justify-content: space-between; }
  .news-date { font-size: 12px; }
}

/* Detail drawer */
.drawer-mask { position: fixed; inset: 0; background: rgba(8,20,40,.45); backdrop-filter: blur(2px); z-index: 950; display: none; }
.drawer-mask.show { display: block; }
.drawer {
  position: fixed; top: 0; right: 0; height: 100%; width: 560px; max-width: 92vw; background: #fff; z-index: 951;
  transform: translateX(100%); transition: transform .28s ease; overflow-y: auto;
}
.drawer.show { transform: translateX(0); }
.drawer-head { position: sticky; top: 0; background: var(--navy); color: #fff; padding: 20px 22px; display: flex; justify-content: space-between; align-items: center; }
.drawer-head h3 { font-size: 20px; }
.drawer-close { background: rgba(255,255,255,.15); color: #fff; border: none; width: 32px; height: 32px; border-radius: 8px; font-size: 18px; }
.drawer-body { padding: 22px; }
.drawer-body h4 { color: var(--navy); margin: 20px 0 10px; font-size: 15px; }
.drawer-body p { color: #33415a; font-size: 14px; }
.kv { display: grid; grid-template-columns: 100px 1fr; gap: 8px 12px; font-size: 14px; }
.kv .k { color: var(--muted); }
.mini-table td, .mini-table th { padding: 8px 10px; font-size: 13px; }

/* pagination */
.pager { display: flex; gap: 8px; justify-content: center; margin-top: 22px; }
.pager button { padding: 8px 14px; border: 1px solid var(--border); background: #fff; border-radius: 8px; color: var(--navy); font-weight: 600; }
.pager button:disabled { opacity: .45; cursor: not-allowed; }

/* footer */
.site-footer { background: var(--navy); color: #9fb2d6; padding: 34px 0; margin-top: 40px; }
.site-footer .container { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 16px; }
.site-footer b { color: #fff; }
.site-footer .disclaimer { font-size: 12.5px; max-width: 620px; line-height: 1.7; }
.site-footer .footer-sub { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 22px; }
.site-footer .footer-links a { color: #c9d8ef; margin-left: 12px; text-decoration: none; }
.site-footer .footer-links a:hover { color: #fff; text-decoration: underline; }
.site-footer .footer-beian { width: 100%; display: flex; flex-wrap: wrap; gap: 4px 22px; font-size: 12.5px; margin-top: 14px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.12); }
.site-footer .footer-beian .beian-item { color: #9fb2d6; }
.site-footer .footer-beian a { color: #c9d8ef; text-decoration: none; }
.site-footer .footer-beian a:hover { color: #fff; text-decoration: underline; }

.loading { text-align: center; color: var(--muted); padding: 40px; }
.empty { text-align: center; color: var(--muted); padding: 40px; }

/* ============ 升学资讯：来源标签 + 详情类公众号排版 ============ */
/* 来源标签：默认「国优志愿」为品牌蓝；填写了其它出处则标记为外部出处（琥珀色胶囊 + 「来源：」前缀） */
.nc-src { font-size: 12.5px; color: #8a94a6; }
.nc-src.own { color: #2b6ca8; font-weight: 500; }
.nc-src.ext { color: #a15c00; background: #fff7e8; border: 1px solid #f3d9a4; padding: 2px 9px; border-radius: 20px; font-size: 11.5px; font-weight: 500; white-space: nowrap; }

/* 文章详情（类公众号正文） */
.drawer-body .article-cover { margin: 0 0 16px; border-radius: 12px; overflow: hidden; }
.drawer-body .article-cover img { width: 100%; max-height: 260px; object-fit: cover; display: block; }
.drawer-body .article-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 12px;
  font-size: 12.5px; color: #8a94a6; padding-bottom: 14px; border-bottom: 1px solid #eef2f8; margin-bottom: 18px; }
.drawer-body .article-meta .am-cat { background: #eef3fb; color: #17436E; padding: 2px 9px; border-radius: 20px; font-size: 11.5px; }
.drawer-body .article-meta .am-views { margin-left: auto; }
.drawer-body .article-body { font-size: 16px; line-height: 1.95; color: #2a3448; }
.drawer-body .article-body p { margin: 0 0 1.1em; text-align: justify; }
.drawer-body .article-body p:last-child { margin-bottom: 0; }
.drawer-body .article-empty { text-align: center; color: #9aa5b8; padding: 40px 0; }
.drawer-body .article-foot { margin-top: 28px; padding-top: 16px; border-top: 1px dashed #e3e9f2;
  text-align: center; font-size: 12px; color: #aab3c2; letter-spacing: .5px; }

@media (max-width: 640px) {
  .drawer-body .article-body { font-size: 15.5px; line-height: 1.9; }
}

@media (max-width: 900px) {
  .grid, .quick { grid-template-columns: repeat(2, 1fr); }  .nav { display: none; }
}
@media (max-width: 560px) {
  .grid, .quick { grid-template-columns: 1fr; }  .hero h1 { font-size: 26px; }
}

/* ========== 导航「更多」下拉 ========== */
.nav-more { position: relative; }
.nav-more-btn { display: inline-flex; align-items: center; gap: 4px; cursor: pointer; }
.nav-more .caret { font-size: 11px; opacity: .7; }
.nav-drop {
  position: absolute; top: 100%; left: 0; min-width: 168px; background: #fff;
  border: 1px solid var(--border); border-radius: 12px; box-shadow: var(--shadow);
  padding: 8px; display: none; z-index: 60;
}
.nav-more.open .nav-drop { display: block; }
.nav-drop a { display: block; padding: 8px 12px; border-radius: 8px; font-size: 14px; color: var(--text); }
.nav-drop a:hover { background: #FDF0EE; color: var(--blue); }

/* ========== 通用页面块 ========== */
.page { max-width: 1180px; margin: 0 auto; padding: 26px 20px 60px; }
.page-head { margin-bottom: 18px; }
.page-head h1 { font-size: 24px; color: var(--navy); letter-spacing: -.3px; }
.page-head p { color: var(--muted); font-size: 14px; margin-top: 6px; }

/* ========== 测评卡片 ========== */
.assess-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(268px, 1fr)); gap: 16px; }
.assess-card {
  background: var(--card); border: 1px solid var(--border); border-radius: 14px; padding: 20px;
  box-shadow: var(--shadow); display: flex; flex-direction: column; gap: 10px; transition: .2s;
}
.assess-card:hover { transform: translateY(-3px); border-color: #c9d8f5; }
.assess-card .ico { font-size: 26px; }
.assess-card h3 { font-size: 17px; color: var(--navy); }
.assess-card .desc { font-size: 13px; color: var(--muted); min-height: 40px; }
.assess-card .meta { display: flex; gap: 8px; flex-wrap: wrap; font-size: 12px; color: var(--muted); }
.assess-card .meta span { background: #f2f5fb; padding: 3px 9px; border-radius: 20px; }
.assess-card .go { margin-top: auto; }

/* ========== 答题 ========== */
.quiz-wrap { max-width: 760px; margin: 0 auto; }
.quiz-bar { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
.quiz-progress { flex: 1; height: 8px; background: #e6ecf7; border-radius: 99px; overflow: hidden; }
.quiz-progress i { display: block; height: 100%; background: linear-gradient(90deg, var(--blue), #4b8bf5); transition: .3s; }
.quiz-count { font-size: 13px; color: var(--muted); white-space: nowrap; }
.q-item { background: #fff; border: 1px solid var(--border); border-radius: 12px; padding: 16px 18px; margin-bottom: 12px; }
.q-title { font-size: 15px; font-weight: 600; color: var(--navy); margin-bottom: 12px; }
.q-title em { font-style: normal; color: var(--muted); font-weight: 500; margin-right: 8px; }
.q-opts { display: flex; flex-wrap: wrap; gap: 8px; }
.q-opt {
  padding: 9px 14px; border: 1px solid var(--border); border-radius: 9px; background: #fafbfe;
  font-size: 14px; color: var(--text); transition: .15s;
}
.q-opt:hover { border-color: #b9cdf0; background: #f4f8ff; }
.q-opt.on { background: var(--blue); border-color: var(--blue); color: #fff; font-weight: 600; }
.q-choices { display: grid; gap: 8px; }
.q-choices .q-opt { text-align: left; }

/* ========== 报告 ========== */
.report-hero {
  background: linear-gradient(135deg, #14456B, var(--blue)); color: #fff;
  border-radius: 16px; padding: 26px 28px; margin-bottom: 18px;
}
.report-hero .tagline { font-size: 12.5px; opacity: .8; letter-spacing: 1px; }
.report-hero h2 { font-size: 26px; margin: 6px 0 8px; }
.report-hero p { font-size: 14px; opacity: .92; line-height: 1.75; color: #3a465e; }
.bar-row { display: flex; align-items: center; gap: 12px; margin-bottom: 9px; font-size: 13.5px; }
.bar-row .nm { width: 128px; color: var(--muted); flex: none; }
.bar-track { flex: 1; height: 10px; background: #eef2f9; border-radius: 99px; overflow: hidden; }
.bar-track i { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, #2f6fe0, #6aa2f2); }
.bar-row .vl { width: 52px; text-align: right; color: var(--navy); font-weight: 700; flex: none; }
.panel { background: #fff; border: 1px solid var(--border); border-radius: 14px; padding: 20px; margin-bottom: 16px; box-shadow: var(--shadow); }
.panel h3 { font-size: 16px; color: var(--navy); margin-bottom: 14px; }
.chip-list { display: flex; flex-wrap: wrap; gap: 8px; }
.chip-list .chip { background: #EAF3F9; color: var(--navy2); padding: 6px 12px; border-radius: 20px; font-size: 13px; }.combo-card .cn { font-size: 16px; font-weight: 800; color: var(--navy); margin-bottom: 4px; }
.combo-card .rate { font-size: 22px; font-weight: 800; color: var(--blue); }
.combo-card .rate small { font-size: 12px; color: var(--muted); font-weight: 500; margin-left: 2px; }
.combo-card .mm { font-size: 12.5px; color: var(--muted); margin-top: 6px; line-height: 1.6; }

/* ========== Tab ========== */
.tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }
.tabs button {
  padding: 8px 16px; border-radius: 99px; border: 1px solid var(--border); background: #fff;
  font-size: 14px; color: var(--muted);
}
.tabs button.on { background: var(--navy); border-color: var(--navy); color: #fff; font-weight: 600; }

/* ========== 对比表 ========== */
.cmp-table td, .cmp-table th { vertical-align: top; }
.cmp-table td.k { width: 120px; color: var(--muted); background: #fafbfe; font-weight: 600; }

/* ========== 下拉分组 ========== */
.drop-group {
  font-size: 11.5px; color: #9aa5b8; padding: 8px 12px 4px; letter-spacing: .5px;
}
.nav-drop { min-width: 190px; max-height: 78vh; overflow: auto; }

/* ========== 会员系统 ==========
 * 固定一排 3 张：不足 3 张时该排按实际数量占位（不拉伸铺满），超过自动换到下一排。 */
/* 分组里卡片数量不一（1 张 / 2 张），用 flex 定宽换行，避免单卡被拉成整行或只剩 1/3 空白 */
.plan-grid { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 14px; align-items: stretch; }
.plan-card {
  position: relative; background: #fff; border: 1.5px solid var(--border); border-radius: 16px;
  padding: 22px 20px; box-shadow: var(--shadow); display: flex; flex-direction: column; gap: 6px;
  flex: 1 1 300px; max-width: 400px;
}
.plan-card.hot { border-color: var(--gold); box-shadow: 0 10px 30px rgba(212,166,60,.22); }
.plan-card .hot-tag {
  position: absolute; top: -11px; right: 18px; background: var(--gold); color: #fff;
  font-size: 12px; padding: 2px 10px; border-radius: 20px; font-weight: 700;
}
.plan-tier { align-self: flex-start; font-size: 11.5px; font-weight: 700; color: #1677ff; background: #eaf3ff;
  padding: 2px 9px; border-radius: 20px; letter-spacing: .3px; margin-bottom: 2px; }
.plan-tier.gold { color: #a06a00; background: #fff3d8; }
.plan-card .pn { font-size: 17px; font-weight: 700; color: var(--navy); line-height: 1.5; }
.plan-card .pp { font-size: 30px; font-weight: 800; color: var(--navy); line-height: 1.2; }
.plan-card .pp .cur { font-size: 16px; margin-right: 2px; }
.plan-card .pp .unit { font-size: 12.5px; color: var(--muted); font-weight: 500; }
.plan-card .po { font-size: 12px; color: #9aa5b8; text-decoration: line-through; }
.plan-card .pb { list-style: none; margin: 12px 0 16px; display: grid; gap: 7px; }
.plan-card .pb li { font-size: 13px; color: #3a465e; padding-left: 20px; position: relative; line-height: 1.6; }
.plan-card .pb li::before {
  content: '✓'; position: absolute; left: 0; color: var(--bao); font-weight: 800;
}
.plan-card > .btn { margin-top: auto; }
/* 6 个产品按服务分组：分组标题 + 该组卡片网格 */
.plan-group-h { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap;
  margin: 26px 0 2px; padding-top: 20px; border-top: 1px dashed #e3e9f2; }
.plan-group-h:first-of-type { margin-top: 8px; padding-top: 0; border-top: none; }
.plan-group-h b { font-size: 15.5px; color: var(--navy); letter-spacing: .3px; }
.plan-group-h span { font-size: 12.5px; color: var(--muted); }
.plan-card .pd { font-size: 12.5px; color: #6b7a92; line-height: 1.65; margin-top: -2px; }
.plan-card .pp { display: flex; align-items: baseline; gap: 8px; }
.plan-card .pp .save { font-size: 11.5px; font-weight: 800; color: #c5281c; background: #FDECE8;
  border-radius: 6px; padding: 2px 7px; }
.plan-card.gold { border-color: #eddcb4; }
.plan-card.gold .pp { color: #8a5a12; }
.plan-card.gold .pp .save { color: #8a5a12; background: #FBF0D8; }
/* 升级补差价：卡片上的「立减」角标、抵扣说明与体验会员提示（第 69 轮） */
.plan-card .credit-tag { position: absolute; top: -11px; right: 18px; background: #D93B2B; color: #fff;
  font-size: 11.5px; font-weight: 800; padding: 3px 10px; border-radius: 20px; letter-spacing: .2px; }
.plan-card.hot .credit-tag { right: 84px; }
.plan-card .po.credit-line { text-decoration: none; color: #6b7a92; font-size: 12px; line-height: 1.6; }
.plan-card .po.credit-line .credit-txt { color: #c5281c; font-weight: 700; }
.plan-card .po.trial-tip { text-decoration: none; color: #9a6a00; font-size: 11.5px; line-height: 1.55; }
.plan-card.owned { opacity: .62; }
.plan-card.owned > .btn { background: #e7ebf2; color: #7b8698; border-color: #e7ebf2; cursor: not-allowed; }
.member-notice { margin-top: 18px; padding: 12px 16px; border-radius: 12px; background: #FFF7F5;
  border: 1px solid #f7d9d3; border-left: 3px solid #D93B2B; color: #8a3a2c; font-size: 13px; line-height: 1.9; }
.member-notice > div + div { margin-top: 4px; }
.credit-detail { font-size: 12.5px; color: #7b8698; margin: 0 0 12px; line-height: 1.7; }
.credit-detail span { color: #c9d2e0; margin: 0 4px; }
.credit-detail b { color: #c5281c; }
@media (max-width: 980px) { .plan-card { flex: 1 1 260px; max-width: none; } }
@media (max-width: 620px) { .plan-grid { gap: 12px; } .plan-card { flex: 1 1 100%; max-width: none; } }

/* ========== 视频卡片 ========== */
.video-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(258px, 1fr)); gap: 18px; }
.video-card {
  background: #fff; border: 1px solid var(--border); border-radius: 14px; overflow: hidden;
  box-shadow: var(--shadow); cursor: pointer; transition: .2s;
}
.video-card:hover { transform: translateY(-3px); border-color: #c9d8f5; }
.video-card .thumb {
  position: relative; height: 146px; background: linear-gradient(135deg, #24457f, #3a6fbd);
  background-size: cover; background-position: center; display: grid; place-items: center;
}
.video-card .thumb .ph { color: rgba(255,255,255,.85); font-size: 30px; }
.video-card .thumb .vip {
  position: absolute; top: 10px; left: 10px; background: var(--gold); color: #fff;
  font-size: 11.5px; padding: 2px 9px; border-radius: 20px; font-weight: 700;
}
.video-card .thumb .dur {
  position: absolute; right: 10px; bottom: 10px; background: rgba(0,0,0,.55); color: #fff;
  font-size: 11.5px; padding: 1px 8px; border-radius: 6px;
}
.vc-body { padding: 14px 16px 16px; }
.vc-title { font-size: 15px; font-weight: 700; color: var(--navy); line-height: 1.5; }
.vc-desc { font-size: 12.5px; color: var(--muted); margin-top: 6px; min-height: 36px; line-height: 1.6; }
.vc-meta { display: flex; gap: 12px; font-size: 12px; color: #9aa5b8; margin-top: 10px; }

/* ========== 资料下载：一行式，主标题靠左 / 下载按钮靠右 ========== */
.file-item {
  display: flex; gap: 16px; align-items: center; background: #fff; border: 1px solid var(--border);
  border-radius: 14px; padding: 16px 18px; margin-bottom: 12px; box-shadow: var(--shadow);
}
.file-row { gap: 12px; padding: 14px 18px; margin-bottom: 10px; border-radius: 10px; }
.file-row .fi-title {
  flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px;
  font-size: 15px; font-weight: 600; line-height: 1.5; color: var(--navy);
}
.file-row .fi-name { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.file-row .vip-tag { flex: none; margin-left: 0; }
.file-row .fi-btn { flex: none; height: 34px; padding: 0 20px; font-size: 13px; display: inline-grid; place-items: center; }
.vip-tag {
  background: #fff3d8; color: #a06a00; font-size: 11.5px; padding: 1px 8px;
  border-radius: 20px; margin-left: 8px; font-weight: 700;
}
@media (max-width: 620px) {
  .file-row { gap: 10px; padding: 12px 14px; }
  .file-row .fi-title { font-size: 14px; }
  .file-row .fi-btn { height: 32px; padding: 0 16px; font-size: 12.5px; }
}

/* ========== 首页（对齐 kuiban 结构） ========== */
.home-hero {
  background: linear-gradient(135deg, #0a2450 0%, #1D5C8A 55%, #17436E 100%);
  color: #fff; padding: 52px 0 44px; position: relative; overflow: hidden;
}
.home-hero::after {
  content: ''; position: absolute; right: -80px; top: -80px; width: 320px; height: 320px;
  background: radial-gradient(circle, rgba(212,166,60,.35), transparent 70%); border-radius: 50%;
}
.home-hero .container { position: relative; z-index: 1; }
.hero-badges { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 18px; }
.hero-badges span {
  font-size: 12.5px; padding: 4px 12px; border-radius: 20px;
  background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.22);
  backdrop-filter: blur(4px);
}
.home-hero h1 { font-size: 38px; letter-spacing: -1px; line-height: 1.25; }
.home-hero h1 .hl {
  display: inline-block; margin-left: 12px; font-size: 15px; font-weight: 600;
  background: var(--gold); color: #fff; padding: 4px 12px; border-radius: 8px;
  vertical-align: middle; letter-spacing: 0;
}
.home-hero .sub { font-size: 15px; opacity: .82; margin-top: 12px; }
.hero-search {
  display: flex; align-items: center; gap: 0; margin-top: 24px; max-width: 720px;
  background: #fff; border-radius: 12px; padding: 6px; box-shadow: 0 10px 30px rgba(0,0,0,.18);
}
.hero-search .hs-region {
  padding: 0 16px; font-size: 14px; color: var(--navy); font-weight: 600;
  border-right: 1px solid var(--border); white-space: nowrap;
}
.hero-search input {
  flex: 1; border: 0; outline: 0; padding: 12px 16px; font-size: 14.5px; color: var(--text);
  background: transparent; min-width: 0;
}
@media (max-width: 720px) {
  .home-hero { padding: 34px 0; }
  .home-hero h1 { font-size: 27px; }
  .home-hero h1 .hl { display: block; margin: 10px 0 0; width: fit-content; }
}

/* 五大功能入口 */
.feature-row {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px;
  margin-top: -34px; position: relative; z-index: 2; margin-bottom: 32px;
}
.fs-feature, .feature-card {
  background: #fff; border-radius: 14px; padding: 20px 18px; box-shadow: 0 8px 26px rgba(16,38,76,.1);
  border: 1px solid var(--border); transition: .2s; display: block;
}
.feature-card:hover { transform: translateY(-4px); box-shadow: 0 14px 34px rgba(16,38,76,.16); border-color: #c9d8f5; }
.feature-card .fi { font-size: 24px; }
.feature-card .ft { font-size: 16px; font-weight: 800; color: var(--navy); margin-top: 8px; }
.feature-card .fd { font-size: 12.5px; color: var(--muted); margin-top: 2px; }
.feature-card .fn { font-size: 12.5px; color: var(--blue); font-weight: 700; margin-top: 10px; }
@media (max-width: 900px) { .feature-row { grid-template-columns: repeat(2, 1fr); margin-top: 18px; } }

/* 两栏：热点推荐 + 热门榜单 */
.home-cols { display: grid; grid-template-columns: minmax(0,1fr) 340px; gap: 26px; align-items: start; padding-bottom: 40px; }
@media (max-width: 900px) { .home-cols { grid-template-columns: 1fr; } }

.hot-list { background: #fff; border: 1px solid var(--border); border-radius: 14px; padding: 6px 20px; box-shadow: var(--shadow); }
.hot-item { display: flex; align-items: center; gap: 16px; padding: 15px 0; border-bottom: 1px dashed #eef1f7; cursor: pointer; }
.hot-item:last-child { border-bottom: 0; }
.hot-item:hover .hi-title { color: var(--blue); }
.hi-no {
  width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; flex: none;
  font-size: 15px; font-weight: 800; font-family: 'Segoe UI', system-ui, sans-serif;
  background: linear-gradient(135deg, #e7f1fb, #cfe2f6); color: #1D5C8A; box-shadow: inset 0 0 0 1px rgba(29,92,138,.12);
}
.hi-no.top { background: linear-gradient(135deg, #f6c560, #e8a93a); color: #5a3a00; box-shadow: 0 2px 6px rgba(224,178,70,.35); }
.hi-main { flex: 1; min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.hi-title { font-size: 17.8px; color: var(--navy); font-weight: 600; line-height: 1.5; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hi-date { flex: none; font-size: 14.5px; font-weight: 700; color: #c2410c; font-variant-numeric: tabular-nums; white-space: nowrap; }

.rank-box { background: #fff; border: 1px solid var(--border); border-radius: 14px; padding: 16px; box-shadow: var(--shadow); }
.rank-tabs { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
.rank-tabs span {
  font-size: 12.5px; padding: 4px 10px; border-radius: 20px; background: #f2f5fb; color: var(--muted); cursor: pointer;
}
.rank-tabs span.on { background: var(--navy); color: #fff; font-weight: 700; }
.rank-list { display: grid; gap: 2px; }
.rank-item { display: flex; gap: 10px; padding: 9px 0; border-bottom: 1px dashed #eef1f7; cursor: pointer; }
.rank-item:last-child { border-bottom: 0; }
.rank-item:hover .ri-name { color: var(--blue); }
.ri-no { width: 18px; font-size: 12.5px; color: #b3bccb; font-weight: 800; flex: none; padding-top: 2px; }
.ri-name { font-size: 17.8px; font-weight: 600; color: var(--navy); }
.ri-meta { font-size: 14.5px; color: #9aa5b8; margin-top: 2px; }

/* ============================================================
   kuiban 风格覆盖：主色 #1D5C8A / 文字 #303133 / 边框 #ebeef5
   ============================================================ */
:root {
  --blue: #1D5C8A;
  --navy: #303133;
  --navy2: #1f2329;
  --muted: #909399;
  --border: #ebeef5;
  --bg: #f5f7fa;
  --shadow: 0 2px 12px rgba(0, 0, 0, .06);
}
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", Arial, sans-serif; color: #303133; }
.btn.primary { background: #1D5C8A; border-color: #1D5C8A; }
.btn.primary:hover { background: #2E6F9E; }
a { color: #1D5C8A; }

/* ---------------- kb 通用 ---------------- */
.kb-page { max-width: 1200px; margin: 0 auto; padding: 20px 20px 60px; }
.kb-btn {
  display: inline-flex; align-items: center; justify-content: center; height: 36px;
  padding: 0 20px; border-radius: 6px; border: 1px solid #dcdfe6; background: #fff;
  color: #606266; font-size: 14px; cursor: pointer; transition: .15s; text-decoration: none;
}
.kb-btn:hover { color: #1D5C8A; border-color: #1D5C8A; background: #EAF3F9; }
.kb-btn.primary { background: #1D5C8A; border-color: #1D5C8A; color: #fff; }
.kb-btn.primary:hover { background: #2E6F9E; color: #fff; }
.kb-tag {
  display: inline-block; font-size: 11.5px; line-height: 20px; padding: 0 8px;
  border-radius: 3px; background: #f0f2f5; color: #909399; margin-right: 6px;
}
.kb-tag.hot { background: #EAF3F9; color: #1D5C8A; }

/* 页头 hero：大标题在前，说明小字跟在后面，两者底部对齐 */
.kb-assess-hero, .kb-rank-hero {
  background: linear-gradient(120deg, #1D5C8A 0%, #2E6F9E 100%);
  color: #fff; border-radius: 10px; padding: 22px 30px; margin-bottom: 22px;
}
.kb-assess-hero h2, .kb-rank-hero h2 { font-size: 24px; margin-bottom: 0; }
.kb-assess-hero h1, .kb-rank-hero h1 { font-size: 22px; margin: 0; letter-spacing: -.3px; }
.kb-assess-hero p, .kb-rank-hero p { font-size: 14px; opacity: .92; line-height: 1.7; margin: 0; }
.kb-hero-inline { display: flex; align-items: flex-end; gap: 18px; }
.kb-hero-inline h2, .kb-hero-inline h1 { margin-bottom: 0; white-space: nowrap; flex: none; }
.kb-hero-inline p { margin: 0; flex: 1; min-width: 0; padding-bottom: 1px; }
.kb-hero-inline p.nowrap { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 1150px) { .kb-hero-inline p.nowrap { white-space: normal; } }

/* 统一蓝色页头（第 27 轮）：全部内容页共用
 * 「更多」下拉 7 个板块 + 资讯/课堂/资料下载/会员/成绩 等，一律：蓝底 + 一排字 + 大字在前小字在后 + 底部对齐 */
.page-hero-blue {
  background: linear-gradient(120deg, #1D5C8A 0%, #2E6F9E 100%);
  color: #fff; border-radius: 10px; padding: 22px 30px; margin-bottom: 22px;
  display: flex; align-items: flex-end; gap: 18px; position: relative; overflow: hidden;
}
.page-hero-blue::after {
  content: ''; position: absolute; right: -60px; top: -60px; width: 220px; height: 220px;
  border-radius: 50%; background: rgba(255, 255, 255, .08); pointer-events: none;
}
.page-hero-blue h1, .page-hero-blue h2 {
  font-size: 22px; margin: 0; white-space: nowrap; color: #fff; letter-spacing: -.3px;
  flex: none; position: relative; z-index: 1;
}
.page-hero-blue p {
  margin: 0; font-size: 14px; opacity: .92; line-height: 1.7;
  flex: 1; min-width: 0; padding-bottom: 1px; position: relative; z-index: 1;
}
.page-hero-blue p.nowrap { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 1150px) { .page-hero-blue p.nowrap { white-space: normal; } }
/* 批次控制线说明：精简文案后恒定一排，窄屏才允许换行 */
.page-hero-blue p.lines-sub { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 760px) {
  .page-hero-blue { flex-direction: column; align-items: flex-start; gap: 6px; padding: 18px 18px; }
  .page-hero-blue h1, .page-hero-blue h2 { font-size: 19px; white-space: normal; }
  .page-hero-blue p.lines-sub { white-space: normal; }
}

/* 层次 tabs */
.kb-tabs {
  display: flex; gap: 0; margin-bottom: 16px; border-bottom: 2px solid #ebeef5;
}
.kb-tabs span {
  padding: 12px 22px; font-size: 15px; color: #606266; cursor: pointer; position: relative;
}
.kb-tabs span.on { color: #1D5C8A; font-weight: 700; }
.kb-tabs span.on::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: -2px; height: 2px; background: #1D5C8A;
}

/* 筛选面板 */
.kb-filter-panel {
  background: #fff; border: 1px solid #ebeef5; border-radius: 8px;
  padding: 18px 22px; margin-bottom: 16px;
}
.kb-search-row { display: flex; gap: 10px; margin-bottom: 16px; }
.kb-search-row input {
  flex: 1; max-width: 420px; height: 38px; padding: 0 14px; font-size: 14px;
  border: 1px solid #dcdfe6; border-radius: 6px; outline: none;
}
.kb-search-row input:focus { border-color: #1D5C8A; }
.kb-filter-row { display: flex; align-items: flex-start; gap: 14px; padding: 6px 0; font-size: 14px; }
.kb-filter-row .k { width: 76px; color: #909399; flex: none; line-height: 26px; }
.kb-filter-row .opts { display: flex; flex-wrap: wrap; gap: 4px 8px; }
.kb-filter-row .opts span {
  padding: 3px 12px; border-radius: 4px; color: #606266; cursor: pointer; line-height: 20px;
}
.kb-filter-row .opts span:hover { color: #1D5C8A; }
.kb-filter-row .opts span.on { background: #1D5C8A; color: #fff; }

/* 排序行 */
.kb-sort-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
.kb-total { font-size: 13.5px; color: #909399; }
.kb-sort { display: flex; gap: 4px; }
.kb-sort span { padding: 5px 14px; font-size: 13.5px; color: #606266; cursor: pointer; border-radius: 4px; }
.kb-sort span.on { background: #EAF3F9; color: #1D5C8A; font-weight: 700; }

/* 院校卡（kuiban 列表卡） */
.kb-uni-list { display: grid; gap: 12px; }
.kb-uni-card {
  display: flex; gap: 18px; align-items: center; background: #fff;
  border: 1px solid #ebeef5; border-radius: 8px; padding: 14px 20px; transition: .15s;
}
.kb-uni-card:hover { box-shadow: 0 4px 16px rgba(22, 119, 255, .1); border-color: #b9d7ff; }
.kb-logo {
  width: 104px; height: 104px; border-radius: 12px; object-fit: contain; flex: none;
  border: none; background: transparent;
}
.kb-uni-main { flex: 1; min-width: 0; }
.kb-uni-name { font-size: 18px; font-weight: 700; color: #303133; }
.kb-uni-card:hover .kb-uni-name { color: #1D5C8A; }
.kb-uni-loc { font-size: 13px; color: #909399; margin-top: 4px; }
.kb-uni-tags { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 6px; max-height: 46px; overflow: hidden; align-content: flex-start; }
.kb-uni-tags .kb-tag { margin-right: 0; }
.kb-detail-btn {
  flex: none; height: 34px; padding: 0 18px; border-radius: 6px; border: 1px solid #1D5C8A;
  color: #1D5C8A; background: #fff; font-size: 13.5px; cursor: pointer;
}
.kb-detail-btn:hover { background: #1D5C8A; color: #fff; }
.kb-uni-actions { display: flex; flex-direction: column; gap: 8px; flex: none; align-items: stretch; }
.kb-uni-actions .kb-fav { margin-left: 0; }
.kb-uni-actions .kb-detail-btn,
.kb-uni-actions .fav-btn { width: 100%; justify-content: center; }

/* 查专业（门类横版卡：左色条 + 右专业类横排） */
.kb-major-grid { display: grid; gap: 14px; }
.kb-cat-card {
  display: flex; align-items: stretch; background: #fff;
  border: 1px solid #ebeef5; border-radius: 8px; overflow: hidden; transition: .15s;
}
.kb-cat-card:hover { box-shadow: 0 4px 16px rgba(22, 119, 255, .1); border-color: #b9d7ff; }
.kb-cat-side {
  position: relative; flex: none; width: 148px; display: flex; flex-direction: column;
  justify-content: center; align-items: center; text-align: center; gap: 5px; padding: 18px;
  background: linear-gradient(135deg, #1D5C8A, #2E6F9E) center / cover no-repeat;
}
.kb-cat-side::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(22, 119, 255, .92), rgba(64, 150, 255, .78));
}
.kb-cat-name { position: relative; z-index: 1; color: #fff; font-size: 19px; font-weight: 800; letter-spacing: 1px; }
.kb-cat-count { position: relative; z-index: 1; color: rgba(255, 255, 255, .88); font-size: 12px; }
.kb-cat-body { flex: 1; min-width: 0; padding: 6px 18px; }
.kb-sub-row { display: flex; align-items: flex-start; gap: 14px; padding: 11px 0; }
.kb-sub-row + .kb-sub-row { border-top: 1px dashed #eef1f6; }
.kb-sub-name { flex: none; width: 112px; font-size: 13.5px; font-weight: 700; color: #303133; line-height: 26px; }
.kb-sub-name::before {
  content: ''; display: inline-block; width: 3px; height: 12px;
  background: #1D5C8A; margin-right: 8px; border-radius: 2px;
}
.kb-sub-row .kb-major-chips { flex: 1; min-width: 0; }
.kb-major-chips { display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 760px) {
  .kb-cat-card { flex-direction: column; }
  .kb-cat-side { width: auto; flex-direction: row; justify-content: center; align-items: baseline; text-align: center; gap: 12px; }
  .kb-sub-row { flex-direction: column; gap: 6px; }
  .kb-sub-name { width: auto; }
}
.kb-major-chips .chip, .chip-list .chip {
  background: #f5f7fa; color: #606266; padding: 4px 12px; border-radius: 4px; font-size: 13px; cursor: pointer;
}
.kb-major-chips .chip:hover, .chip-list .chip:hover { background: #EAF3F9; color: #1D5C8A; }

/* 测评卡 */
.kb-sec { margin: 6px 0 16px; }
.kb-sec-t { font-size: 19px; font-weight: 800; color: #303133; }
.kb-sec-d { font-size: 13.5px; color: #909399; margin-top: 4px; }
.kb-assess-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(262px, 1fr)); gap: 16px; }
.kb-assess-card {
  background: #fff; border: 1px solid #ebeef5; border-radius: 8px; padding: 22px;
  display: flex; flex-direction: column; gap: 8px; transition: .15s;
}
.kb-assess-card:hover { box-shadow: 0 4px 16px rgba(22, 119, 255, .1); transform: translateY(-2px); }
.kb-ai { font-size: 30px; }
.kb-at { font-size: 17px; font-weight: 800; color: #303133; }
.kb-as {
  display: inline-block; width: fit-content; font-size: 12px; color: #1D5C8A;
  background: #EAF3F9; border-radius: 3px; padding: 1px 8px;
}
.kb-ad { font-size: 13px; color: #909399; line-height: 1.7; min-height: 42px; white-space: pre-line; }
.kb-am { font-size: 12.5px; color: #c0c4cc; }
.kb-assess-card .kb-btn { margin-top: 8px; }

/* 选科组合卡 */
.kb-rule-panel { background: #fff; border: 1px solid #ebeef5; border-radius: 8px; padding: 18px 22px; margin-bottom: 22px; }
.kb-rule-title { font-size: 15px; font-weight: 700; color: #303133; margin-bottom: 12px; }
.kb-rule-row { display: flex; gap: 10px; }
.kb-rule-row input {
  flex: 1; max-width: 420px; height: 38px; padding: 0 14px; font-size: 14px;
  border: 1px solid #dcdfe6; border-radius: 6px; outline: none;
}
.kb-rule-row input:focus { border-color: #1D5C8A; }
.kb-rule-badge { background: #EAF3F9; color: #1D5C8A; font-size: 12.5px; padding: 2px 10px; border-radius: 3px; }
.kb-combo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.kb-combo-card {
  position: relative; background: #fff; border: 1px solid #ebeef5; border-radius: 12px; padding: 13px 18px 11px;
  cursor: pointer; transition: .18s; display: flex; flex-direction: column; gap: 7px; overflow: hidden;
}
.kb-combo-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; }
.kb-combo-card.phy::before { background: linear-gradient(90deg, #17436e, #26a69a); }
.kb-combo-card.his::before { background: linear-gradient(90deg, #e0b246, #ef8f4e); }
.kb-combo-card:hover { box-shadow: 0 8px 24px rgba(23, 67, 110, .13); transform: translateY(-3px); border-color: transparent; }
.kb-combo-card.phy:hover { box-shadow: 0 8px 24px rgba(38, 166, 154, .22); }
.kb-combo-card.his:hover { box-shadow: 0 8px 24px rgba(224, 178, 70, .28); }
.kb-combo-head { display: flex; align-items: center; gap: 7px; }
.kb-combo-head .chip { font-size: 14.5px; font-weight: 600; padding: 4px 15px; border-radius: 999px; background: #f4f6fa; color: #5a6675; border: 1px solid #e8ecf2; }
.kb-combo-head .chip.first { background: #17436e; border-color: #17436e; color: #fff; }
.kb-combo-card.his .kb-combo-head .chip.first { background: #e0b246; border-color: #e0b246; color: #fff; }
.kb-combo-family { font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 999px; flex-shrink: 0; letter-spacing: 1px; margin-left: auto; }
.kb-combo-ratebar { display: flex; align-items: center; gap: 12px; }
.kb-combo-rate { font-size: 12px; color: #909399; white-space: nowrap; }
.kb-combo-rate b { font-size: 22px; font-weight: 800; color: #26a69a; margin-right: 2px; }
.kb-combo-card.his .kb-combo-rate b { color: #d99a1f; }
.kb-combo-bar { flex: 1; height: 8px; border-radius: 4px; background: #f0f2f6; overflow: hidden; }
.kb-combo-bar i { display: block; height: 100%; border-radius: 4px; }
.kb-combo-card.phy .kb-combo-bar i { background: linear-gradient(90deg, #17436e, #26a69a); }
.kb-combo-card.his .kb-combo-bar i { background: linear-gradient(90deg, #e0b246, #ef8f4e); }
.kb-combo-desc { font-size: 13px; color: #6b7688; line-height: 1.7; flex: 1; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.kb-combo-link { font-size: 13px; font-weight: 600; color: #26a69a; transition: .15s; }
.kb-combo-card.his .kb-combo-link { color: #d99a1f; }
.kb-combo-card:hover .kb-combo-link { transform: translateX(3px); }

/* 排行榜 */
.kb-rank-table { font-size: 14px; }
.kb-rank-table th { background: #fafafa; color: #909399; font-weight: 600; padding: 12px 14px; }
.kb-rank-table td { padding: 10px 14px; border-bottom: 1px solid #ebeef5; vertical-align: middle; }
/* 悬浮效果统一放在行内的院校卡上，避免"整行变蓝 + 中间白卡"割裂感 */
.kb-rank-table tbody tr td { background: transparent; transition: none; }
.kb-rank-table .rk-card {
  border: 1px solid transparent; border-radius: 10px; padding: 10px 16px;
  transition: background .18s, box-shadow .18s, border-color .18s;
}
.kb-rank-table .rk-card:hover, .kb-rank-table tbody tr:hover .rk-card {
  background: linear-gradient(90deg, #f0f7ff, #F4F9FC 60%, #fdfefe);
  border-color: #d6e8ff;
  box-shadow: 0 4px 14px rgba(22, 119, 255, .08);
}
.kb-rank-table tbody tr:hover td { background: transparent; }
.kb-rank-table .rk-card .kb-logo { width: 84px; height: 84px; }
.kb-rank-table .rk-card .kb-uni-name { font-size: 17px; }
/* 悬浮时排名徽标轻微放大，增强反馈 */
.kb-rank-table .kb-rank-no { transition: transform .18s; }
.kb-rank-table tbody tr:hover .kb-rank-no { transform: scale(1.12); }
.kb-rank-no {
  display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%;
  font-family: BEBAS, 'Segoe UI', sans-serif; font-size: 21px; font-weight: 800;
  background: linear-gradient(150deg, #f4f6fa, #e6eaf1); color: #6b7688;
  box-shadow: inset 0 0 0 1px #e2e7ef;
}
.kb-rank-no.m1 { background: linear-gradient(150deg, #ffe9a8, #f2c14b); color: #7a5200; box-shadow: inset 0 0 0 1px #e8b93e, 0 3px 8px rgba(242, 193, 75, .35); }
.kb-rank-no.m2 { background: linear-gradient(150deg, #eef1f6, #c8cfda); color: #55606e; box-shadow: inset 0 0 0 1px #b8c0cd, 0 3px 8px rgba(160, 170, 185, .3); }
.kb-rank-no.m3 { background: linear-gradient(150deg, #f4d3b3, #d9955f); color: #6e3c12; box-shadow: inset 0 0 0 1px #cc8a52, 0 3px 8px rgba(217, 149, 95, .3); }
.kb-rank-name { display: flex; align-items: center; gap: 10px; font-size: 15.5px; font-weight: 700; color: #303133; }
.kb-rank-name img { width: 34px; height: 34px; border-radius: 6px; object-fit: cover; border: 1px solid #ebeef5; }
.pg-info { font-size: 13px; color: #909399; align-self: center; }.kb-uni-gallery { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 8px; margin-bottom: 14px; }
.kb-uni-gallery img { width: 168px; height: 108px; object-fit: cover; border-radius: 8px; border: 1px solid #ebeef5; flex: none; cursor: zoom-in; }

/* ---------- 分页按钮（选中态） ---------- */
.pager { display: flex; gap: 6px; justify-content: center; align-items: center; margin-top: 22px; flex-wrap: wrap; }
.pager button {
  min-width: 34px; height: 34px; padding: 0 12px; border: 1px solid #dcdfe6; background: #fff;
  color: #606266; border-radius: 6px; font-size: 13.5px; cursor: pointer;
}
.pager button:hover:not(:disabled) { color: #1D5C8A; border-color: #1D5C8A; }
.pager button.on { background: #1D5C8A; border-color: #1D5C8A; color: #fff; }
.pager button:disabled { color: #c0c4cc; cursor: not-allowed; background: #f7f8fa; }

/* ---------- 导航修复：防竖排断行 ---------- */
.nav { flex-wrap: nowrap; }
.nav a { white-space: nowrap; padding: 8px 12px; font-size: 17px; }
.header-cta .btn { white-space: nowrap; padding: 10px 16px; font-size: 18px; }

/* ---------- 院校详情：学科评估 / 开设专业 ---------- */
.kb-h4-sub { font-size: 12.5px; font-weight: 500; color: #909399; margin-left: 8px; }
.kb-ratings { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.kb-rating {
  display: flex; align-items: center; gap: 8px; background: #fff; border: 1px solid #ebeef5;
  border-radius: 6px; padding: 8px 10px; font-size: 13px;
}
.kb-grade {
  flex: none; width: 30px; height: 24px; display: grid; place-items: center; border-radius: 4px;
  font-family: BEBAS, 'Segoe UI', sans-serif; font-size: 14px; font-weight: 800; color: #fff;
  background: #909399;
}
.kb-grade.g-1, .kb-grade.g-2, .kb-grade.g-3 { background: #1D5C8A; }
.kb-grade.g-4, .kb-grade.g-5, .kb-grade.g-6 { background: #2E6F9E; }
.kb-grade.g-7, .kb-grade.g-8, .kb-grade.g-9 { background: #a0cfff; }
.kb-major-tools { margin: 4px 0 10px; }
.kb-major-tools input {
  width: 100%; max-width: 340px; height: 34px; padding: 0 12px; font-size: 13.5px;
  border: 1px solid #dcdfe6; border-radius: 6px; outline: none;
}
.kb-major-tools input:focus { border-color: #1D5C8A; }.kb-dept { border: 1px solid #ebeef5; border-radius: 8px; background: #fff; overflow: hidden; }
.kb-dept > summary {
  display: flex; align-items: center; gap: 10px; padding: 10px 14px; cursor: pointer;
  font-size: 14px; font-weight: 700; color: #303133; background: #fafcff; list-style: none;
}
.kb-dept > summary::-webkit-details-marker { display: none; }
.kb-dept > summary::before {
  content: '▸'; color: #1D5C8A; font-size: 12px; transition: transform .15s; display: inline-block;
}
.kb-dept[open] > summary::before { transform: rotate(90deg); }.kb-dept .kb-major-chips { padding: 4px 14px 14px; }
.kb-major-chips .chip { display: inline-flex; align-items: center; gap: 6px; }
.kb-major-chips .chip i { font-style: normal; font-size: 11px; color: #c0c4cc; }


/* ================= 院校详情页（对齐 kuiban /college/:id · 8 页签） ================= */
.kcp-text { font-size: 14px; color: #4a5568; line-height: 2; white-space: pre-line; margin-bottom: 6px; }
.kcp-dim { font-size: 13.5px; color: #a8b0bd; line-height: 1.9; }
.kcp-input {
  height: 34px; width: 100%; max-width: 360px; padding: 0 12px; font-size: 13.5px;
  border: 1px solid #dcdfe6; border-radius: 6px; outline: none;
}
.kcp-input:focus { border-color: #1D5C8A; }
.kcp-pill { background: #f2f6fc; color: #5a6b85; border-radius: 20px; padding: 3px 12px; font-size: 12.5px; }
.kcp-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.kcp-table th {
  background: #fafbfd; color: #8a94a6; font-weight: 600; font-size: 12.5px;
  padding: 12px 14px; text-align: center; border-bottom: 1px solid #ebeef5; white-space: nowrap;
}
.kcp-table td {
  padding: 12px 14px; border-bottom: 1px solid #f2f4f8; color: #4a5568;
  text-align: center; vertical-align: middle;
}
.kcp-table tr:last-child td { border-bottom: 0; }
.kcp-table tbody tr:hover td { background: #f9fbff; }
.kcp-table th:last-child, .kcp-table td:last-child { white-space: nowrap; }
.kcp-major { font-weight: 600; color: #303133; line-height: 1.6; text-align: left; }
.kcp-remark { font-size: 12px; color: #a0a8b6; margin-top: 4px; line-height: 1.6; }

/* 专业特殊要求提示条（语种/色觉/身高/性别/中外合作等） */
.vb-major-spec {
  display: inline-block; max-width: 100%; margin-top: 4px; padding: 2px 9px;
  font-size: 12px; line-height: 1.6; color: #b3541e; background: #fdf3ea;
  border: 1px solid #f2d3b3; border-radius: 6px; white-space: normal;
}
.vb-major-spec::first-letter { color: #c0392b; }
.vb-m-warn {
  display: inline-flex; align-items: center; justify-content: center;
  margin-left: 3px; width: 14px; height: 14px; border-radius: 50%;
  font-size: 9px; font-style: normal; color: #b3541e; background: #fdf3ea;
  border: 1px solid #f2d3b3; vertical-align: 1px; cursor: help;
}
.kcp-num { color: #1D5C8A; font-size: 15px; }
.kcp-rank { color: #a0a8b6; font-size: 12.5px; margin-left: 2px; }
.kcp-new {
  font-style: normal; font-size: 11px; color: #e6a23c; border: 1px solid #f8d9a5;
  background: #fdf6ec; border-radius: 3px; padding: 0 4px; margin-left: 6px;
}
.kcp-tip { font-size: 12.5px; color: #a0a8b6; margin-top: 14px; line-height: 1.8; }
.kcp-eval { background: #fff; border: 1px solid #ebeef5; border-radius: 10px; overflow: hidden; }
.kcp-eval-row { display: flex; align-items: flex-start; gap: 16px; padding: 14px 18px; }
.kcp-eval-row + .kcp-eval-row { border-top: 1px dashed #eef1f6; }
.kcp-eval-grade {
  flex: none; width: 46px; height: 46px; border-radius: 8px; display: grid; place-items: center;
  font-size: 16px; font-weight: 800; color: #fff; background: #909399;
}
/* 九档学科评估各用一套色：A 段暖色（红/橙/金）→ B 段冷色（蓝/青）→ C 段中性灰紫 */
.kcp-eval-grade.g-1 { background: linear-gradient(135deg, #c62828, #e75b5b); }
.kcp-eval-grade.g-2 { background: linear-gradient(135deg, #e06c1a, #f19a55); }
.kcp-eval-grade.g-3 { background: linear-gradient(135deg, #c99a12, #e5c05a); }
.kcp-eval-grade.g-4 { background: linear-gradient(135deg, #2f6fd0, #6ba0e8); }
.kcp-eval-grade.g-5 { background: linear-gradient(135deg, #3d8fbf, #79b8dd); }
.kcp-eval-grade.g-6 { background: linear-gradient(135deg, #2f9e8f, #6ec6ba); }
.kcp-eval-grade.g-7 { background: linear-gradient(135deg, #7b6bb5, #a598d6); }
.kcp-eval-grade.g-8 { background: linear-gradient(135deg, #8d93a1, #b4b9c4); }
.kcp-eval-grade.g-9 { background: linear-gradient(135deg, #a8aeba, #c9ced6); }
.kcp-eval-list { flex: 1; display: flex; flex-wrap: wrap; gap: 8px; padding-top: 4px; }
.kcp-subject {
  background: #f5f7fa; color: #303133; border-radius: 4px; padding: 5px 12px; font-size: 13px;
}
/* 学科名跟着等级配色，一眼区分评估档次 */
.kcp-eval-row.g-1 .kcp-subject { background: #fdeceb; color: #b3261e; }
.kcp-eval-row.g-2 .kcp-subject { background: #fef1e5; color: #b5560f; }
.kcp-eval-row.g-3 .kcp-subject { background: #fdf6e0; color: #8a6b00; }
.kcp-eval-row.g-4 .kcp-subject { background: #eaf2fd; color: #1f5aa8; }
.kcp-eval-row.g-5 .kcp-subject { background: #e9f5fb; color: #2a6f96; }
.kcp-eval-row.g-6 .kcp-subject { background: #e6f6f3; color: #1f7f73; }
.kcp-eval-row.g-7 .kcp-subject { background: #f0edfa; color: #5f4f9e; }
.kcp-eval-row.g-8 .kcp-subject { background: #f2f4f7; color: #5f6673; }
.kcp-eval-row.g-9 .kcp-subject { background: #f6f7f9; color: #7b828e; }
.kc-eval-cap { width: 100%; font-size: 12.5px; color: #a0a8b6; margin-bottom: 2px; }
.kc-eval-cap b { color: #303133; font-size: 14px; }

/* —— 头部 / 页签 / 布局（kuiban 版式） —— */
.kc-hero {
  display: flex; gap: 18px; align-items: center; background: #fff;
  border: 1px solid #ebeef5; border-radius: 10px; padding: 22px 26px; position: relative;
}
.kc-logo-wrap {
  width: 76px; height: 76px; flex: none; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: #fff; overflow: hidden;
}
.kc-logo {
  display: block; max-width: 100%; max-height: 100%; width: auto; height: auto;
  object-fit: contain; border: none; background: transparent;
}
.kc-head { flex: 1; min-width: 0; padding-right: 210px; }
.kc-name { font-size: 26px; font-weight: 800; color: #303133; line-height: 1.3; }
.kc-en { font-size: 12.5px; color: #c0c4cc; font-weight: 500; margin-left: 10px; }
.kc-meta { font-size: 13.5px; color: #909399; margin-top: 8px; }
.kc-tags { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 6px; }
/* 收藏 / 看排名：固定在头部卡片右上角 */
.kc-hero-actions {
  position: absolute; top: 20px; right: 24px;
  display: flex; align-items: center; gap: 9px; z-index: 2;
}
@media (max-width: 720px) {
  .kc-hero { flex-wrap: wrap; }
  .kc-head { padding-right: 0; }
  .kc-hero-actions { position: static; margin-top: 14px; width: 100%; justify-content: flex-start; }
}

.kc-tabs {
  display: flex; background: #fff; border: 1px solid #ebeef5;
  border-radius: 10px; padding: 0 10px; margin: 16px 0 18px; position: sticky; top: 0; z-index: 20;
  box-shadow: 0 2px 10px rgba(16, 42, 90, .04);
}
.kc-tabs span {
  flex: 1; text-align: center;
  padding: 14px 0; font-size: 14px; color: #303133; cursor: pointer; white-space: nowrap;
  border-bottom: 2.5px solid transparent; font-weight: 600; position: relative;
  transition: color .15s;
}
.kc-tabs span:hover { color: #1D5C8A; background: linear-gradient(180deg, transparent 65%, rgba(22, 119, 255, .06)); }
.kc-tabs span.on { color: #1D5C8A; border-bottom-color: #1D5C8A; }
@media (max-width: 900px) {
  .kc-tabs { overflow-x: auto; }
  .kc-tabs span { flex: none; padding: 15px 14px; }
}

.kc-cols { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 20px; align-items: start; }
@media (max-width: 1000px) { .kc-cols { grid-template-columns: 1fr; } }
.kc-main { min-width: 0; display: grid; gap: 16px; }
.kc-side { display: grid; gap: 16px; align-self: start; }
.kc-card { background: #fff; border: 1px solid #ebeef5; border-radius: 10px; padding: 20px 24px; }
.kc-card h4 { margin: 0 0 14px; font-size: 16.5px; color: #303133; display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.kc-h4sub { font-size: 12.5px; color: #a0a8b6; font-weight: 500; }
.kc-more { color: #1D5C8A; font-size: 13.5px; cursor: pointer; }

.kc-scenery { display: grid; grid-template-columns: 2fr 1fr; gap: 10px; margin-top: 16px; }
.kc-scenery img { width: 100%; height: 100%; object-fit: cover; border-radius: 8px; aspect-ratio: 16/10; }
.kc-scenery img.big { grid-row: span 2; aspect-ratio: auto; }

.kc-progs { display: grid; gap: 8px; margin-bottom: 14px; }
.kc-prog {
  display: flex; align-items: center; justify-content: space-between;
  background: #f7f9fc; border-radius: 6px; padding: 9px 14px; font-size: 13.5px; color: #4a5568;
}
.kc-prog b { color: #1D5C8A; font-size: 15px; }
.kc-prog b i { font-style: normal; font-size: 12px; color: #a0a8b6; margin-left: 2px; }
.kc-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.kc-eval-cap { font-size: 13px; color: #8a94a6; margin-bottom: 8px; width: 100%; }
.kc-eval-cap b { color: #1D5C8A; }

.kc-stat-row { display: flex; align-items: center; gap: 12px; padding: 9px 0; font-size: 13.5px; color: #4a5568; }
.kc-stat-row + .kc-stat-row { border-top: 1px dashed #f0f3f9; }
.kc-stat-row span { flex: 1; }
.kc-stat-row b { color: #303133; font-size: 16px; font-weight: 800; }
.kc-stat-row b em { font-style: normal; font-size: 12px; color: #a0a8b6; margin-left: 2px; font-weight: 500; }
.kc-ico {
  width: 34px; height: 34px; border-radius: 8px; display: grid; place-items: center;
  color: #fff; font-size: 14px; font-weight: 700; font-style: normal; flex: none;
}
.kc-ico.i-m { background: linear-gradient(135deg, #1D5C8A, #5aa0fd); }
.kc-ico.i-d { background: linear-gradient(135deg, #f3722c, #ff9e64); }
.kc-ico.i-p { background: linear-gradient(135deg, #f9a825, #ffd166); }
.kc-ico.i-x { background: linear-gradient(135deg, #12b5a6, #4fd8cc); }
.kc-ico.i-e { background: linear-gradient(135deg, #7b5cf0, #a58bff); }
.kc-ico.i-a { background: linear-gradient(135deg, #00b578, #5fd8a5); }

.kc-rank-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.kc-rank-cell { background: #f7f9fc; border-radius: 8px; padding: 12px 6px; text-align: center; }
.kc-rank-cell span { display: block; font-size: 12px; color: #8a94a6; margin-bottom: 4px; }
.kc-rank-cell b { font-family: BEBAS, 'Segoe UI', sans-serif; font-size: 22px; color: #1D5C8A; }

.kc-bar-row { display: flex; align-items: center; gap: 12px; font-size: 13.5px; color: #4a5568; padding: 6px 0; }
.kc-bar { flex: 1; height: 8px; background: #eef1f6; border-radius: 4px; overflow: hidden; }
.kc-bar i { display: block; height: 100%; border-radius: 4px; background: linear-gradient(90deg, #1D5C8A, #5aa0fd); }
.kc-bar-row b { color: #1D5C8A; font-size: 16px; min-width: 52px; text-align: right; }

.kc-links2 { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
/* 官网 / 电话直接展示行 */
.kc-contact { margin-top: 12px; display: flex; flex-direction: column; gap: 8px; }
.kc-contact-row { display: flex; align-items: baseline; gap: 10px; font-size: 13px; }
.kc-contact-row span { flex: none; width: 62px; color: #8a94a6; }
.kc-contact-row a { color: var(--brand-navy); font-weight: 600; word-break: break-all; }
.kc-contact-row a:hover { color: var(--brand-teal); }
.kc-links2 a {
  font-size: 13px; color: #1D5C8A; background: #EAF3F9; border-radius: 6px;
  padding: 7px 14px; text-decoration: none;
}
.kc-links2 a:hover { background: #1D5C8A; color: #fff; }

.kc-filterbar {
  display: flex; align-items: center; gap: 10px; background: #fff; border: 1px solid #ebeef5;
  border-radius: 10px; padding: 12px 18px; margin-bottom: 14px; flex-wrap: wrap;
}
.kc-filterbar select {
  height: 34px; padding: 0 10px; font-size: 13.5px; color: #606266;
  border: 1px solid #dcdfe6; border-radius: 4px; background: #fff; outline: none; max-width: 180px;
}
.kc-filterbar select:focus { border-color: #1D5C8A; }
.kc-filterbar .sp { flex: 1; }
.kc-search {
  height: 34px; width: 220px; padding: 0 12px; font-size: 13.5px;
  border: 1px solid #dcdfe6; border-radius: 4px; outline: none;
}
.kc-search:focus { border-color: #1D5C8A; }
.kc-summary { font-size: 13.5px; color: #606266; margin: 0 2px 12px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.kc-summary b { color: #1D5C8A; font-size: 15px; }

.kc-anchors {
  display: flex; gap: 8px; flex-wrap: wrap; background: #fff; border: 1px solid #ebeef5;
  border-radius: 10px; padding: 10px 16px; margin-bottom: 16px; position: sticky; top: 64px; z-index: 19;
}
.kc-anchors span { padding: 6px 14px; font-size: 13.5px; color: #606266; background: #f5f7fa; border-radius: 6px; cursor: pointer; }
.kc-anchors span:hover, .kc-anchors span.on { color: #1D5C8A; background: #EAF3F9; font-weight: 600; }

.kc-news-row { display: flex; align-items: center; gap: 12px; padding: 13px 2px; font-size: 14px; border-bottom: 1px solid #f2f4f8; }
.kc-news-row:last-child { border-bottom: 0; }
.kc-news-row i { width: 6px; height: 6px; border-radius: 50%; background: #d0d7e2; flex: none; }
.kc-news-row .t { flex: 1; color: #303133; }
.kc-news-row:hover .t { color: #1D5C8A; }
.kc-news-row .d { color: #a0a8b6; font-size: 12.5px; flex: none; }

.kc-dept { border: 1px solid #eef1f6; border-radius: 8px; margin-bottom: 10px; overflow: hidden; }
.kc-dept summary {
  display: flex; justify-content: space-between; align-items: center; padding: 12px 16px;
  font-size: 14.5px; font-weight: 600; color: #303133; cursor: pointer; list-style: none; background: #fafbfd;
}
.kc-dept summary::-webkit-details-marker { display: none; }
.kc-dept summary span { font-size: 12.5px; color: #a0a8b6; font-weight: 500; }
.kc-dept > div { padding: 12px 16px; }

/* ---------- 院校 LOGO 统一展示（/logo/:id） ---------- */
.uni-mini-logo {
  object-fit: contain; border-radius: 5px; background: transparent; flex: none;
  border: none; box-shadow: none;
}

/* ---------- 院校详情：简介长文 / 基本信息 / 快捷入口 ---------- */
.kcp-article p { font-size: 14.5px; line-height: 2; color: #33415a; margin: 0 0 14px; text-align: justify; }
.kcp-article p:last-child { margin-bottom: 0; }
.kc-note { margin-top: 18px; padding: 14px 16px; background: #f7f9fc; border-left: 3px solid #1D5C8A; border-radius: 6px; }
.kc-note b { display: block; font-size: 13.5px; color: #303133; margin-bottom: 6px; }
.kc-note p { font-size: 13.5px; color: #5a6b85; line-height: 1.9; margin: 0; }
/* 分数线板块顶部提示条（缺数据/回退展示时用，单行不占太多高度） */
.kc-note-bar {
  margin: 0 0 12px; padding: 10px 14px; font-size: 13px; line-height: 1.7; color: #7a5c14;
  background: #fdf6e8; border: 1px solid #f5e2bb; border-radius: 8px;
}
.kc-note-bar b { color: #a06800; font-weight: 600; }
.kc-kv { display: grid; gap: 2px; }
.kc-kv-row { display: flex; gap: 12px; justify-content: space-between; padding: 9px 0; font-size: 13.5px; border-bottom: 1px dashed #f0f3f9; }
.kc-kv-row:last-child { border-bottom: 0; }
.kc-kv-row span { color: #909399; flex: none; }
.kc-kv-row b { color: #303133; font-weight: 600; text-align: right; word-break: break-all; }
/* 院校概况快捷入口：5 张卡片固定一排 */
.kc-quick { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; }
.kc-quick-item {
  position: relative; display: block; background: #fff; border: 1px solid #ebeef5; border-radius: 10px;
  padding: 13px 12px 12px 14px; cursor: pointer; transition: .15s; text-decoration: none; overflow: hidden;
}
.kc-quick-item:hover { border-color: #b9d7ff; box-shadow: 0 4px 14px rgba(22, 119, 255, .1); transform: translateY(-1px); }
.kc-quick-item b { display: block; font-size: 14px; color: #303133; white-space: nowrap; }
.kc-quick-item span { display: block; font-size: 12px; color: #909399; margin-top: 5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-right: 34px; }
.kc-quick-item i { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); font-style: normal; font-size: 12px; color: #c0c4cc; }
.kc-quick-item:hover i { color: #1D5C8A; }
@media (max-width: 1000px) { .kc-quick { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px) { .kc-quick { grid-template-columns: repeat(2, 1fr); } }

/* ---------- 重点学科：等级数量统计条 ---------- */
.kc-grade-stats { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 16px; }
.kc-grade-stat {
  flex: 1; min-width: 72px; background: #f7f9fc; border-radius: 8px; padding: 10px 6px; text-align: center;
}
.kc-grade-stat b { display: block; font-family: BEBAS, 'Segoe UI', sans-serif; font-size: 20px; color: #8a94a6; }
.kc-grade-stat b.g-1 { color: #c62828; }
.kc-grade-stat b.g-2 { color: #d9661a; }
.kc-grade-stat b.g-3 { color: #b98c0a; }
.kc-grade-stat b.g-4 { color: #2f6fd0; }
.kc-grade-stat b.g-5 { color: #3d8fbf; }
.kc-grade-stat b.g-6 { color: #2f9e8f; }
.kc-grade-stat b.g-7 { color: #7b6bb5; }
.kc-grade-stat b.g-8 { color: #7d8494; }
.kc-grade-stat b.g-9 { color: #9aa1ae; }
.kc-grade-stat span { display: block; font-size: 12px; color: #909399; margin-top: 2px; }

/* ---------- 硕士 / 博士专业：学术型 · 专业型 + 学科门类 ---------- */
.kc-deg { display: grid; gap: 16px; }
.kc-deg-hero {
  display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap;
  background: linear-gradient(120deg, #1D5C8A 0%, #2E6F9E 100%); color: #fff;
  border-radius: 10px; padding: 20px 24px;
}
.kc-deg-ht h3 { margin: 0 0 8px; font-size: 20px; font-weight: 800; }
.kc-deg-ht p { margin: 0; font-size: 13.5px; opacity: .95; }
.kc-deg-ht b { font-family: BEBAS, 'Segoe UI', sans-serif; font-size: 20px; margin: 0 2px; }
.kc-deg-pts { display: flex; gap: 10px; flex-wrap: wrap; }
.kc-deg-pt {
  background: rgba(255, 255, 255, .16); border: 1px solid rgba(255, 255, 255, .28);
  border-radius: 8px; padding: 8px 14px; text-align: center; min-width: 92px;
}
.kc-deg-pt b { display: block; font-family: BEBAS, 'Segoe UI', sans-serif; font-size: 22px; line-height: 1.1; }
.kc-deg-pt span { display: block; font-size: 11.5px; opacity: .9; margin-top: 2px; }
.kc-deg-bar {
  display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
  background: #fff; border: 1px solid #ebeef5; border-radius: 10px; padding: 10px 16px;
}
.kc-deg-switch { display: flex; gap: 8px; }
.kc-deg-switch span {
  display: inline-flex; align-items: center; gap: 6px; padding: 7px 16px; border-radius: 20px;
  font-size: 13.5px; color: #606266; background: #f5f7fa; cursor: pointer; transition: .15s;
}
.kc-deg-switch span:hover { color: #1D5C8A; }
.kc-deg-switch span.on { background: #1D5C8A; color: #fff; font-weight: 600; }
.kc-deg-switch em { font-style: normal; font-family: BEBAS, 'Segoe UI', sans-serif; font-size: 15px; opacity: .9; }
.kc-deg-groups { display: grid; gap: 12px; }
.kc-deg-group {
  display: flex; align-items: stretch; background: #fff; border: 1px solid #ebeef5;
  border-radius: 10px; overflow: hidden; transition: .15s;
}
.kc-deg-group:hover { border-color: #d6e6ff; box-shadow: 0 4px 14px rgba(16, 42, 90, .05); }
.kc-deg-gname {
  flex: none; width: 110px; display: flex; flex-direction: column; justify-content: center; gap: 4px;
  padding: 14px 16px; background: #fafbfd; background: color-mix(in srgb, var(--gc, #1D5C8A) 8%, #fff);
  border-left: 3px solid var(--gc, #1D5C8A);
}
.kc-deg-gname b { font-size: 15px; color: var(--gc, #1D5C8A); font-weight: 800; letter-spacing: .5px; }
.kc-deg-gname span { font-size: 12px; color: #909399; }
.kc-deg-items { flex: 1; min-width: 0; display: flex; flex-wrap: wrap; gap: 8px; padding: 16px 18px; align-content: flex-start; }
.kc-deg-chip {
  font-size: 13px; color: #33415a; background: #f5f7fa; border-radius: 4px; padding: 5px 12px;
  border: 1px solid #f0f2f5; transition: .15s;
}
.kc-deg-chip:hover { color: var(--gc, #1D5C8A); border-color: var(--gc, #1D5C8A); background: #fff; }
@media (max-width: 760px) {
  .kc-deg-group { flex-direction: column; }
  .kc-deg-gname { width: auto; flex-direction: row; align-items: center; justify-content: space-between; }
}

/* ============================================================
   智能选志愿（对齐 kuiban /choice）
   ============================================================ */
.vb-page { max-width: 1400px; margin: 0 auto; padding: 0 16px 30px; }
.vb-loading { padding: 80px 0; text-align: center; color: #909399; font-size: 14px; }
.vb-empty { padding: 50px 0; text-align: center; color: #909399; }
.muted { color: #b0b8c4; font-weight: 400; font-size: 12px; }
.caret { font-size: 10px; color: #909399; }

/* —— 登录卡 / 规划师选学生 —— */
.vb-login-card { max-width: 460px; margin: 40px auto; background: #fff; border: 1px solid #ebeef5; border-radius: 12px; padding: 40px 36px; text-align: center; }
.vb-login-card .ico { font-size: 40px; }
.vb-login-card h3 { margin: 12px 0 8px; color: #303133; }
.vb-login-card p { color: #8a94a6; font-size: 13.5px; line-height: 1.8; margin: 0 0 6px; }
.vb-stu-list { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 16px; }
.vb-btn { display: inline-flex; align-items: center; justify-content: center; gap: 4px; height: 36px; padding: 0 18px; border-radius: 8px; border: 1px solid #dcdfe6; background: #fff; color: #303133; font-size: 13.5px; cursor: pointer; text-decoration: none; transition: .15s; }
.vb-btn:hover { border-color: #1D5C8A; color: #1D5C8A; }
.vb-btn.primary { background: #1D5C8A; border-color: #1D5C8A; color: #fff; }
.vb-btn.primary:hover { background: #3c8dff; }
.vb-btn.gold { background: linear-gradient(90deg, #ffb63c, #ff9a2e); border: 0; color: #fff; height: 40px; padding: 0 26px; font-weight: 600; }
.vb-btn.sm { height: 30px; padding: 0 12px; font-size: 12.5px; white-space: nowrap; }
.vb-btn.warn { background: #fff4e5; border-color: #f3c98b; color: #b97209; }
.vb-btn.warn:hover { background: #ffe9cc; }
.vb-d-loop { margin-top: 8px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.vb-d-loop-badge { font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 20px; }
.vb-d-loop-badge.push { background: #e8f1ff; color: #1D5C8A; }
.vb-d-loop-badge.ret { background: #fff4e5; color: #b97209; }
.vb-d-loop-badge.fin { background: #e6f7ee; color: #1a9e6b; }

/* —— 顶部条 —— */
.vb-topbar { display: flex; align-items: center; justify-content: space-between; padding: 12px 18px; background: #fff; border: 1px solid #ebeef5; border-radius: 10px; margin-top: 14px; flex-wrap: wrap; gap: 8px; }
.vb-top-left { display: flex; align-items: center; gap: 10px; font-size: 13.5px; color: #303133; flex-wrap: wrap; }
.vb-crumb { font-weight: 600; }
.vb-div { color: #e4e8ef; }
.vb-link { color: #303133; text-decoration: none; cursor: pointer; }
.vb-link:hover { color: #1D5C8A; }
.vb-pen { font-style: normal; color: #1D5C8A; font-size: 12px; cursor: pointer; margin-left: 2px; }
.vb-top-right { display: flex; align-items: center; gap: 10px; }
.vb-icon-btn { width: 34px; height: 34px; border-radius: 8px; border: 1px solid #e4e8ef; background: #fff; cursor: pointer; font-size: 15px; color: #303133; }
.vb-icon-btn:hover { border-color: #1D5C8A; color: #1D5C8A; }
.vb-badge { display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 16px; border-radius: 20px; border: 0; background: #1D5C8A; color: #fff; font-size: 13.5px; font-weight: 600; cursor: pointer; }
.vb-badge b { background: #fff; color: #1D5C8A; border-radius: 10px; min-width: 20px; height: 20px; line-height: 20px; font-size: 12px; }

/* —— 下拉 —— */
.vb-dd { position: relative; }
.vb-dd-menu { position: absolute; top: calc(100% + 4px); right: 0; z-index: 60; min-width: 150px; background: #fff; border: 1px solid #ebeef5; border-radius: 8px; box-shadow: 0 6px 24px rgba(16,42,90,.12); padding: 5px; }
.vb-dd-item { padding: 8px 12px; font-size: 13px; color: #303133; border-radius: 6px; cursor: pointer; white-space: nowrap; }
.vb-dd-item:hover { background: #f2f7ff; color: #1D5C8A; }
.vb-dd-item.on { color: #1D5C8A; font-weight: 600; }
.vb-dd-note { margin-left: 8px; font-size: 11.5px; color: #9aa5b5; font-weight: 400; }
.vb-dd-item.dim .vb-dd-note { color: #d98324; }
.vb-dd-divided { border-top: 1px solid #f0f2f7; margin-top: 4px; padding-top: 8px; }

/* —— 筛选 —— */
.vb-filterbar { display: flex; gap: 14px; align-items: center; background: #fff; border: 1px solid #ebeef5; border-radius: 10px; padding: 12px 16px; margin-top: 12px; }
.vb-filter-toggle { height: 38px; padding: 0 16px; border-radius: 8px; border: 1px solid #dcdfe6; background: #fff; font-size: 13.5px; color: #303133; cursor: pointer; }
.vb-filter-toggle:hover { border-color: #1D5C8A; color: #1D5C8A; }
.vb-search { flex: 1; display: flex; align-items: center; gap: 8px; background: #f5f7fa; border-radius: 8px; padding: 0 14px; height: 38px; }
.vb-search input { flex: 1; min-width: 0; border: 0; background: transparent; outline: none; font-size: 13.5px; color: #303133; }
.vb-search-btn { flex: none; height: 28px; padding: 0 14px; border: 0; border-radius: 6px; background: #1D5C8A; color: #fff; font-size: 13px; cursor: pointer; }
.vb-search-btn:hover { background: #17436E; }
.vb-search-btn:active { transform: translateY(1px); }
.vb-filterpanel { background: #fff; border: 1px solid #ebeef5; border-top: 0; border-radius: 0 0 10px 10px; padding: 6px 18px 12px; }
.vb-frow { display: flex; align-items: flex-start; gap: 14px; padding: 9px 0; border-bottom: 1px dashed #f2f4f8; }
.vb-frow:last-of-type { border-bottom: 0; }
.vb-fk { flex: none; width: 68px; font-size: 13px; color: #909399; padding-top: 4px; }
.vb-fv { flex: 1; display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 13px; }
.vb-fitem { color: #303133; cursor: pointer; padding: 2px 0; }
.vb-fitem:hover { color: #1D5C8A; }
.vb-fitem.on { color: #1D5C8A; font-weight: 600; }
.vb-fsep { width: 1px; background: #eef1f6; align-self: stretch; }
.vb-fmore { color: #1D5C8A; font-size: 13px; cursor: pointer; align-self: center; }
.vb-factions { display: flex; justify-content: flex-end; gap: 10px; padding-top: 12px; }
.vb-adv { color: #303133; cursor: pointer; font-size: 13px; }
.vb-adv:hover, .vb-adv.on { color: #1D5C8A; }
.vb-adv-pop { position: fixed; z-index: 120; width: 300px; background: #fff; border: 1px solid #ebeef5; border-radius: 10px; box-shadow: 0 8px 30px rgba(16,42,90,.14); padding: 14px; }
.vb-adv-pop-t { font-weight: 600; font-size: 13.5px; color: #303133; margin-bottom: 8px; }
.vb-adv-pop-opts { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 13px; max-height: 220px; overflow: auto; }
.vb-adv-pop-a { display: flex; justify-content: flex-end; gap: 8px; margin-top: 12px; }

/* —— 页签行 —— */
.vb-tabbar { display: flex; align-items: center; justify-content: space-between; background: #fff; border: 1px solid #ebeef5; border-radius: 10px; padding: 10px 16px; margin-top: 12px; flex-wrap: wrap; gap: 10px; }
.vb-tabs { display: flex; gap: 4px; align-items: center; }
/* 7 个页签（冲稳保+五档+全部）要在一行放得下，内边距与字号比原值略收 */
.vb-tab { padding: 7px 12px; border-radius: 8px; font-size: 13.5px; color: #303133; cursor: pointer; white-space: nowrap; }
.vb-tab b { font-size: 14px; margin-left: 3px; }
.vb-tab:hover { color: #1D5C8A; }
.vb-tab.on { background: #1D5C8A; color: #fff; font-weight: 600; }
/* 只有 1 年数据 / 无历史的专业不进冲稳保，明确告知去哪看，避免误以为专业被系统丢弃 */
.vb-none-tip { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 8px; padding: 8px 14px;
  background: #f6f8fb; border: 1px dashed #d9e2ee; border-radius: 8px; font-size: 12.5px; color: #64748b; }
.vb-none-tip b { color: #1D5C8A; font-size: 13.5px; }
.vb-none-tip span[data-chance] { color: #1D5C8A; cursor: pointer; text-decoration: underline; }
.vb-none-tip span[data-chance]:hover { color: #14456a; }
.vb-none-tip i { font-style: normal; color: #94a3b8; font-size: 12px; }
.vb-range { display: flex; align-items: center; gap: 10px; }
/* 区间标题只作说明，不是按钮；滑竿两端即可拉动的最大区间 */
.vb-range-label { font-size: 13.5px; color: #303133; user-select: none; white-space: nowrap; }
.vb-range-label .caret { font-style: normal; font-size: 10px; color: #909399; margin-left: 2px; }
.vb-slider { display: flex; align-items: center; gap: 7px; width: 224px; }
/* 窄桌面（1280 / 1366 的笔记本）：滑竿再收一点，保证 7 个页签 + 区间 + 排序 + 批量仍排在一行 */
@media (max-width: 1340px) { .vb-slider { width: 190px; } }
/* 「全部」页签不受推荐区间限制：滑杆置灰，拖一下即自动切回「冲稳保」 */
.vb-range.is-off .vb-slider { opacity: .4; }
.vb-range.is-off .vb-range-label { color: #909399; }
.vb-slider span { font-size: 12px; color: #909399; min-width: 26px; }
.vb-slider .vb-slider-min, .vb-slider .vb-slider-max {
  min-width: 40px; text-align: center; background: #EAF3F9; color: #1D5C8A;
  border-radius: 6px; padding: 2px 6px; font-size: 12px; font-weight: 600; line-height: 18px;
}
/* 位次区间：数字录入（位次跨度太大，拉杆不适用） */
.vb-range-in {
  width: 82px; height: 28px; border: 1.5px solid #d7e1f0; border-radius: 7px; outline: none;
  text-align: center; font-size: 12.5px; font-weight: 600; color: #1D5C8A; background: #F4F9FC; transition: .15s;
}
.vb-range-in::placeholder { color: #a8b3c5; font-weight: 400; }
.vb-range-in:focus { border-color: #1D5C8A; background: #fff; box-shadow: 0 0 0 3px rgba(22, 119, 255, .12); }
.vb-range-sep { color: #a8b3c5; font-size: 12px; min-width: 0 !important; }
.vb-range-ok {
  height: 28px; padding: 0 12px; border: 0; border-radius: 7px; cursor: pointer;
  background: linear-gradient(135deg, #3c8dff, #1D5C8A); color: #fff; font-size: 12px; font-weight: 600;
  box-shadow: 0 3px 8px rgba(22, 119, 255, .22); transition: .15s;
}
.vb-range-ok:hover { filter: brightness(1.06); transform: translateY(-1px); }
.vb-range-ok:active { transform: translateY(0); }
.vb-slider-track { position: relative; flex: 1; height: 20px; }
.vb-slider-track::before { content: ''; position: absolute; left: 0; right: 0; top: 8px; height: 4px; border-radius: 2px; background: #e4e8ef; }
.vb-slider-fill { position: absolute; top: 8px; height: 4px; background: #1D5C8A; border-radius: 2px; left: 40%; width: 40%; }
.vb-slider-track input { position: absolute; left: 0; right: 0; width: 100%; top: 0; margin: 0; -webkit-appearance: none; appearance: none; background: transparent; pointer-events: none; height: 20px; }
.vb-slider-track input::-webkit-slider-thumb { -webkit-appearance: none; pointer-events: auto; width: 16px; height: 16px; border-radius: 50%; background: #fff; border: 2px solid #1D5C8A; cursor: pointer; box-shadow: 0 1px 4px rgba(0,0,0,.15); }
.vb-mode-toggle { display: inline-flex; border: 1px solid #dcdfe6; border-radius: 8px; overflow: hidden; }
.vb-mode-toggle span { padding: 7px 16px; font-size: 13px; color: #303133; cursor: pointer; background: #fff; }
.vb-mode-toggle span.on { background: #1D5C8A; color: #fff; font-weight: 600; }

/* —— 表格 —— */
/* 表头与表体共用一套列宽（--vb-cols），保证严格逐列对齐
 * 概率收窄一倍、去掉「2026计划」列、三年数据合并为一列矩阵 → 省出的宽度全部给招生专业 */
.vb-table { background: #fff; border: 1px solid #ebeef5; border-radius: 10px; margin-top: 12px; overflow: hidden; }
.vb-table:not(.has-plan) { --vb-cols: 6% 21% 39% 20% 14%; }
.vb-table.has-plan { --vb-cols: 6% 21% 30% 9% 20% 14%; }
.vb-thead {
  display: grid; grid-template-columns: var(--vb-cols);
  align-items: center; background: #f7f9fc; border-bottom: 1px solid #ebeef5;
}
.vb-thead .th { padding: 11px 10px; font-size: 13px; font-weight: 600; color: #303133; min-width: 0; }
.vb-th-plan { text-align: center; }
.vb-thead .th.c { text-align: center; }
.vb-thead .th.op { display: flex; justify-content: flex-end; align-items: center; gap: 6px; }
.vb-tbody table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.vb-tbody td { padding: 13px 10px; border-bottom: 1px solid #f2f4f8; vertical-align: middle; font-size: 13px; }
.vb-tbody tr:hover td { background: #fafcff; }
.vb-tbody td.vb-c-prob { width: 6%; text-align: center; vertical-align: middle; }
.vb-c-prob .vb-prob { align-items: center; margin: 0 auto; }
.vb-c-uni { width: 21%; }
.vb-c-major { width: 39%; }
.vb-table.has-plan .vb-c-major { width: 30%; }
.vb-c-plan { width: 9%; text-align: center; vertical-align: middle; color: #1D5C8A; font-weight: 600; }
.vb-c-plan .vb-plan-num { font-size: 24px; font-weight: 700; line-height: 1.15; }
.vb-c-plan .vb-plan-num small { font-weight: 400; font-size: 12px; color: #8a94a6; margin-left: 1px; }
.vb-table.has-plan .vb-c-plan { width: 9%; }
.vb-c-year { width: 10%; }
.vb-c-his { width: 20%; }
.vb-c-op { width: 14%; }
.vb-prob { display: inline-flex; flex-direction: column; align-items: center; gap: 4px; }
.vb-tier { font-size: 36px; font-weight: 800; width: 64px; height: 64px; line-height: 64px; text-align: center; border-radius: 16px; }
.vb-tier.chong { color: #f53f3f; background: #fff1f0; }
.vb-tier.wen { color: #1d6fd6; background: #eaf2fb; }
.vb-tier.bao { color: #00b578; background: #e8fff3; }
.vb-pct { font-size: 36px; font-weight: 700; color: #303133; line-height: 1; }
.vb-uni-name { display: flex; align-items: center; gap: 6px; font-size: 14px; }
.vb-uni-name b { color: #303133; cursor: pointer; }
.vb-uni-name b:hover { color: #1D5C8A; }
.vb-logo { border-radius: 4px; object-fit: contain; }
.vb-info { font-style: normal; color: #b0b8c4; cursor: pointer; font-size: 12px; }
.vb-uni-meta { margin-top: 5px; display: flex; flex-wrap: wrap; gap: 4px; font-size: 12px; color: #8a94a6; }
.vb-tag { font-style: normal; font-size: 11px; color: #1D5C8A; background: #f0f6ff; border-radius: 3px; padding: 1px 5px; }
.vb-uni-links { margin-top: 6px; display: flex; flex-wrap: wrap; gap: 10px; font-size: 12px; color: #6b7688; }
.vb-uni-links a, .vb-uni-links span { color: #1D5C8A; text-decoration: none; cursor: pointer; }
.vb-uni-links span { color: #6b7688; }
.vb-major-name { font-size: 13.5px; color: #303133; font-weight: 600; line-height: 1.5; }
.vb-major-meta { margin-top: 5px; font-size: 12px; color: #8a94a6; }
.vb-major-links { margin-top: 6px; display: flex; flex-wrap: wrap; gap: 10px; font-size: 12px; color: #6b7688; }
.vb-major-links .hl { color: #1D5C8A; }
/* 软科专业排名（排名29 专业B+）：只在有数据时出现，比学科评估再醒目半档 */
.vb-major-links .vb-soft { color: #1D5C8A; font-weight: 600; }
.vb-plan b { font-size: 15px; color: #303133; display: block; }
.vb-plan span { font-size: 11.5px; color: #b0b8c4; }
.vb-year { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2px 8px; font-size: 12px; color: #303133; }
.vb-year span:nth-child(2n) { text-align: right; color: #6b7688; }
.vb-year.none { color: #c9cfd8; }
.vb-vol-btn { display: flex; align-items: center; gap: 2px; justify-content: flex-end; }
.vb-add-vol { height: 34px; padding: 0 18px; border-radius: 8px 0 0 8px; border: 0; background: #1D5C8A; color: #fff; font-size: 13px; font-weight: 600; cursor: pointer; }
.vb-add-vol:hover { background: #3c8dff; }
/* 受限专业「慎重加入」：不再灰化禁用，用琥珀色区分，点击先弹确认框（旧「禁报」交互已撤） */
.vb-add-vol.warn { background: #fff7ed; color: #b45309; box-shadow: inset 0 0 0 1px #f0a44a; }
.vb-add-vol.warn:hover { background: #ffedd5; color: #92400e; }
.vb-modal-rst { width: min(520px, 92vw); }
.vb-rstm-h { font-size: 16px; font-weight: 700; color: #b45309; margin-bottom: 10px; }
.vb-rstm-body { font-size: 13px; }
.vb-rstm-lead { color: #4b5563; line-height: 1.8; margin: 0 0 10px; }
.vb-rstm-list { border: 1px solid #f2e2c9; background: #fffdf8; border-radius: 10px; padding: 4px 12px; max-height: 240px; overflow: auto; }
.vb-rstm-item { padding: 8px 0; border-bottom: 1px dashed #f0e3cc; }
.vb-rstm-item:last-child { border-bottom: 0; }
.vb-rstm-item b { display: block; font-size: 13px; color: #2c3a52; font-weight: 600; }
.vb-rstm-item span { display: block; font-size: 12px; color: #8a6a3a; line-height: 1.7; margin-top: 2px; }
.vb-rstm-more { font-size: 12px; color: #a08a68; padding: 6px 0 2px; }
.vb-rstm-tip { font-size: 12px; color: #9aa5b8; margin: 10px 0 0; line-height: 1.7; }
.vb-rstm-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 16px; }
.vb-btn.danger { background: #c2410c; border-color: #c2410c; color: #fff; }
.vb-btn.danger:hover { background: #ea580c; border-color: #ea580c; color: #fff; }
.vb-btn.ghost { background: #fff; color: #46536b; }
.vb-vol-caret { width: 24px; height: 34px; line-height: 34px; text-align: center; background: #1D5C8A; color: #fff; border-radius: 0 8px 8px 0; cursor: pointer; font-style: normal; font-size: 10px; border-left: 1px solid rgba(255,255,255,.35); }
.vb-row-links { margin-top: 8px; text-align: right; font-size: 12.5px; }
.vb-row-links a { color: #1D5C8A; cursor: pointer; text-decoration: none; display: block; text-align: right; }
.vb-row-links a + a { margin-top: 4px; }
.vb-row-links .vsep { color: #e4e8ef; margin: 0 6px; }
.vb-sort-btn { cursor: pointer; display: inline-flex; align-items: center; gap: 3px; white-space: nowrap; }
.vb-sort-btn:hover { color: #1D5C8A; }
.vb-batch-btn { cursor: pointer; white-space: nowrap; }
.vb-batch-btn:hover { color: #1D5C8A; }
.vb-batch-btn.on { color: #1D5C8A; font-weight: 700; }

/* —— 概率列：整体缩到原来一半（档位 64→32，百分比 36→18） —— */
.vb-table .vb-prob { gap: 5px; }
.vb-table .vb-tier { font-size: 18px; width: 32px; height: 32px; line-height: 32px; border-radius: 8px; }
.vb-table .vb-pct { font-size: 18px; }

/* —— 历年数据（参照 kuiban）：标签列 + 年份列并排（3 列；最新年未导分时 4 列） —— */
.vb-th-his { white-space: nowrap; }
.vb-th-his { display: grid; grid-template-columns: 52px repeat(3, minmax(0, 1fr)); gap: 0 4px; align-items: center; }
.vb-th-his .th-hlabel { grid-column: 1; font-style: normal; }
.vb-th-his em { font-style: normal; text-align: right; padding-right: 2px; }
.vb-his { display: grid; gap: 3px; font-size: 12px; }
.vb-hr { display: grid; grid-template-columns: 52px repeat(3, minmax(0, 1fr)); gap: 0 4px; align-items: baseline; }
.vb-hr i { font-style: normal; font-size: 11px; color: #a6afbd; white-space: nowrap; }
.vb-hr span { text-align: right; font-size: 12.5px; font-weight: 600; color: #303133; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vb-hr span.nb { color: #c9cfd8; font-weight: 400; }
/* 有计划但当年未公布专业分：用文字区分「未公布」和真正的「—」，字号收小避免撑列 */
.vb-hr span.nb-nopub { font-size: 11px; color: #b7bfca; cursor: help; }
/* 4 列模式（y4）：最新年只有计划数时展开最老一年，年份列 3 → 4 等分自适应 */
.vb-th-his.y4 { grid-template-columns: 52px repeat(4, minmax(0, 1fr)); }
.vb-his.y4 .vb-hr { grid-template-columns: 52px repeat(4, minmax(0, 1fr)); }

/* —— 排序菜单（kuiban 同款：两行 + 升序/降序） —— */
.vb-sort-menu { padding: 8px 10px; }
.vb-sm-row { display: flex; align-items: center; gap: 6px; padding: 5px 2px; font-size: 13px; color: #1f2d3d; white-space: nowrap; }
.vb-sm-btn {
  font-size: 11.5px; color: #5a6b85; background: #f1f4f9; border-radius: 4px;
  padding: 1px 8px; cursor: pointer; line-height: 18px;
}
.vb-sm-btn:hover { color: #1D5C8A; background: #FBE3DE; }
.vb-sm-btn.on { color: #fff; background: #1D5C8A; font-weight: 600; }

/* —— 院校模式：招生专业列出全部专业名 —— */
.vb-major-names { display: flex; flex-wrap: wrap; gap: 3px 10px; font-size: 12.8px; color: #1f2d3d; line-height: 1.75; }
.vb-major-names span { white-space: nowrap; }
.vb-gnum {
  font-style: normal; font-size: 11px; color: #1D5C8A; background: #FBE3DE;
  border-radius: 3px; padding: 0 6px; line-height: 18px; margin-left: 4px; white-space: nowrap;
}

/* —— 插入 / 调整志愿位：单行面板（紧凑版） —— */
.vb-pos-pop {
  position: fixed; z-index: 120; padding: 8px 10px; background: #fff;
  border: 1px solid #e6ecf5; border-radius: 10px; box-shadow: 0 10px 28px rgba(16, 42, 90, .16);
}
.vb-pos-row { display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.vb-pos-lb { font-size: 12.5px; font-weight: 600; color: #303133; }
.vb-pos-in {
  width: 40px; height: 32px; border: 1.5px solid #d7e1f0; border-radius: 8px; outline: none;
  text-align: center; font-size: 15px; font-weight: 700; color: #1D5C8A; background: #F4F9FC; transition: .15s;
}
.vb-pos-in:focus { border-color: #1D5C8A; background: #fff; box-shadow: 0 0 0 3px rgba(22, 119, 255, .12); }
.vb-pos-ok {
  height: 32px; padding: 0 14px; border: 0; border-radius: 8px;
  background: linear-gradient(135deg, #3c8dff, #1D5C8A); color: #fff; font-size: 12.5px; font-weight: 600;
  cursor: pointer; box-shadow: 0 4px 10px rgba(22, 119, 255, .25); transition: .15s;
}
.vb-pos-ok:hover { filter: brightness(1.06); transform: translateY(-1px); box-shadow: 0 6px 14px rgba(22, 119, 255, .3); }
.vb-pos-ok:active { transform: translateY(0); box-shadow: 0 3px 8px rgba(22, 119, 255, .22); }
.vb-pos-pop.shake { animation: vbShake .3s; }
@keyframes vbShake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-4px); } 50% { transform: translateX(4px); } 75% { transform: translateX(-2px); } }

/* —— 分页 —— */
.vb-pager { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 16px 0 4px; font-size: 13px; color: #6b7688; flex-wrap: wrap; }
.vb-pgmode { display: inline-flex; border: 1px solid #e4e8ef; border-radius: 6px; overflow: hidden; margin-right: 8px; }
.vb-pgmode span { padding: 4px 10px; cursor: pointer; background: #fff; }
.vb-pgmode span.on { background: #1D5C8A; color: #fff; }
.vb-pg { min-width: 28px; height: 28px; line-height: 28px; text-align: center; border-radius: 6px; cursor: pointer; }
.vb-pg:hover { background: #f0f6ff; color: #1D5C8A; }
.vb-pg.on { background: #1D5C8A; color: #fff; }
.vb-pg-prev, .vb-pg-next { cursor: pointer; padding: 0 6px; }
.vb-pg-prev.dis, .vb-pg-next.dis { color: #c9cfd8; cursor: not-allowed; }
.vb-pg-jump input { width: 40px; height: 28px; border: 1px solid #e4e8ef; border-radius: 6px; text-align: center; }
.vb-pg-top { cursor: pointer; margin-left: 8px; }
.vb-pg-top:hover { color: #1D5C8A; }

/* —— 会员横幅 —— */
.vb-member-banner { margin-top: 16px; background: linear-gradient(180deg, #F7FBFE, #EDF4FA); border: 1px solid #dbe8f3; border-radius: 12px; padding: 26px 0 30px; text-align: center; }
.vb-member-banner .t { font-size: 19px; font-weight: 700; color: #17436E; }
.vb-member-banner .d { font-size: 13px; color: #5a7a96; margin: 8px 0 16px; }

/* —— 弹窗 —— */
.vb-mask { position: fixed; inset: 0; background: rgba(20,30,50,.45); z-index: 100; display: flex; align-items: center; justify-content: center; }
.vb-modal { width: min(920px, 94vw); max-height: 86vh; overflow: auto; background: #fff; border-radius: 12px; padding: 18px 22px 20px; }
.vb-m-h { display: flex; align-items: center; justify-content: space-between; font-size: 16px; font-weight: 700; color: #303133; padding-bottom: 12px; border-bottom: 1px solid #f0f2f7; }
.vb-m-h .muted { font-weight: 400; }
.vb-m-x { cursor: pointer; color: #909399; font-style: normal; font-size: 14px; }
.vb-m-sub { display: flex; align-items: center; gap: 10px; padding: 12px 0; font-size: 13px; }
.vb-chip { padding: 5px 12px; border-radius: 7px; border: 1px solid #e4e8ef; font-size: 12.5px; }
.vb-chip.on { background: #1D5C8A; border-color: #1D5C8A; color: #fff; }
.vb-m-search { height: 32px; border: 1px solid #e4e8ef; border-radius: 7px; padding: 0 10px; font-size: 13px; margin-left: auto; width: 200px; outline: none; }
.vb-m-table table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.vb-m-table th { background: #f7f9fc; padding: 9px 8px; text-align: left; font-size: 12.5px; color: #303133; border-bottom: 1px solid #ebeef5; }
.vb-m-table td { padding: 11px 8px; border-bottom: 1px solid #f2f4f8; vertical-align: middle; }
.vb-m-sec { font-size: 14px; font-weight: 700; color: #1D5C8A; margin: 18px 0 8px; padding-left: 8px; border-left: 3px solid #1D5C8A; }

/* —— kuiban 同款大弹窗（可报专业 / 专业历年）：1200px 宽 + 满屏高 + 14px 字号 —— */
.vb-modal-lg { width: min(1200px, 97vw); height: 100vh; max-height: 100vh; border-radius: 0; padding: 0; display: flex; flex-direction: column; overflow: hidden; }
.vb-modal-lg .vb-m-h { padding: 16px 24px 12px; flex: none; }
.vb-m-h .vb-m-title { font-size: 16px; }
.vb-m-h .vb-m-code { font-size: 13px; font-weight: 400; color: #8a94a6; margin-left: 10px; }
.vb-modal-lg .vb-m-sub { padding: 10px 24px; margin: 0; flex: none; }
.vb-modal-lg .vb-m-body { flex: 1; overflow: auto; padding: 0 24px 24px; }
.vb-modal-lg .vb-m-sec { margin: 18px 0 8px; }
.vb-modal-lg .vb-m-table th { font-size: 13.5px; padding: 11px 8px; }
.vb-modal-lg .vb-m-table td { font-size: 14px; padding: 12px 8px; }
.vb-modal-lg .vb-m-body > .vb-m-table > table thead th, .vb-modal-lg .vb-m-body .vb-m-table:first-child thead th { position: sticky; top: 0; z-index: 2; }
/* 年度矩阵：标签列（灰、右对齐）+ 年份值列（kuiban 同款四行） */
.vb-ylab, .vb-yval { display: flex; flex-direction: column; gap: 3px; font-size: 12.5px; line-height: 1.35; }
.vb-ylab span { color: #a6afbd; text-align: right; }
.vb-yval span { color: #303133; }
/* 可报专业弹窗：概率档位/百分比与智能选志愿主表同款大小（18px / 32px 色块），上下左右居中 */
.vb-m-maj .vb-prob { gap: 5px; align-items: center; margin: 0 auto; }
.vb-m-maj .vb-tier { font-size: 18px; width: 32px; height: 32px; line-height: 32px; border-radius: 8px; }
.vb-m-maj .vb-pct { font-size: 18px; }
.vb-m-maj td:first-child, .vb-m-maj td:last-child { vertical-align: middle; text-align: center; }
.vb-m-maj td:last-child .vb-btn { display: inline-block; }
/* 专业历年：年份 tab + 搜索 + 相关专业 chips + 最低分列（分数+位次） */
.vb-m-tools { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; flex-wrap: wrap; }
.vb-m-tools .vb-m-tab { border: 1px solid #d9e6ff; color: #1D5C8A; border-radius: 6px; padding: 4px 14px; font-size: 13px; cursor: pointer; background: #F4F9FC; user-select: none; }
.vb-m-tools .vb-m-tab.on { background: #1D5C8A; color: #fff; border-color: #1D5C8A; }
.vb-m-tools .vb-m-search { margin-left: 0; }
.vb-m-related { display: flex; align-items: center; gap: 6px; font-size: 12.5px; color: #6b7688; margin: 0 0 8px; flex-wrap: wrap; }
.vb-m-related .vb-chip { cursor: pointer; padding: 3px 10px; }
.vb-c-min b { font-size: 14px; }
.vb-c-min i { display: block; font-style: normal; font-size: 12px; color: #6b7688; }
.vb-m-f { display: flex; justify-content: flex-end; gap: 10px; padding-top: 16px; }
.vb-form-row { display: flex; align-items: center; gap: 12px; padding: 10px 0; font-size: 13.5px; flex-wrap: wrap; }
.vb-form-row label { color: #6b7688; }
.vb-static { padding: 7px 14px; background: #f5f7fa; border-radius: 7px; color: #909399; }
.vb-radio, .vb-check { display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
  color: #303133; font-size: 13px; line-height: 1; padding: 8px 15px; border: 1px solid #d8e0ea;
  border-radius: 8px; background: #fff; margin: 0 8px 6px 0; transition: all .15s; user-select: none; }
.vb-radio::before, .vb-check::before { display: none; }              /* 不要勾选框，选中用底色高亮 */
.vb-radio:hover, .vb-check:hover { border-color: #9dbdd6; color: #1D5C8A; }
.vb-radio.on, .vb-check.on { color: #14507a; font-weight: 700; border-color: #1D5C8A; background: #E4F0F8;
  box-shadow: 0 1px 4px rgba(29, 92, 138, .16); }
.vb-form-row input[type=number] { width: 110px; height: 34px; border: 1px solid #e4e8ef; border-radius: 7px; padding: 0 10px; outline: none; }
.vb-form-row input[type=number]:focus { border-color: #1D5C8A; }
.vb-mini-link { color: #1D5C8A; font-size: 13px; font-weight: 400; text-decoration: none; margin-left: 8px; }
.vb-hist-rank { color: #1D5C8A; font-weight: 600; }

/* —— 已选志愿弹窗（kuiban 同款：全屏遮罩 + 居中大面板） —— */
#vbDrawerHost:not(:empty) {
  position: fixed; inset: 0; z-index: 95; display: flex; align-items: center; justify-content: center;
  background: rgba(15, 28, 52, .48); backdrop-filter: blur(2px); padding: 2vh 1.5vw;
  animation: vbMaskIn .18s ease;
}
@keyframes vbMaskIn { from { opacity: 0; } to { opacity: 1; } }
#vbDrawerHost .vb-drawer {
  width: min(1600px, 96vw); max-height: 96vh; background: #fff; border-radius: 14px;
  box-shadow: 0 24px 80px rgba(10, 25, 60, .35); overflow: auto; padding: 18px 24px;
  animation: vbPop .22s ease;
}
@keyframes vbPop { from { opacity: 0; transform: translateY(14px) scale(.985); } to { opacity: 1; transform: none; } }
.vb-d-h { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; border-bottom: 1px solid #f0f2f7; padding-bottom: 12px; }
.vb-d-title b { font-size: 15.5px; color: #303133; }
.vb-pen { font-style: normal; font-size: 12px; color: #a8b3c5; cursor: pointer; margin-left: 4px; }
.vb-pen:hover { color: #1D5C8A; }
.vb-d-score { font-size: 12px; color: #909399; margin-top: 3px; }
.vb-d-tools { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 12.5px; }
.vb-tool { cursor: pointer; color: #303133; border: 1px solid #e4e8ef; border-radius: 7px; padding: 5px 11px; background: #fff; transition: .15s; user-select: none; }
.vb-tool:hover { color: #1D5C8A; border-color: #b9d7ff; background: #F4F9FC; }
.vb-d-close { border: 0; font-size: 14px; padding: 5px 6px; color: #6b7688; }
.vb-d-search input { width: 110px; height: 28px; border: 1px solid #e4e8ef; border-radius: 7px; padding: 0 10px; outline: none; font-size: 12px; transition: .15s; }
.vb-d-search input:focus { border-color: #1D5C8A; box-shadow: 0 0 0 3px rgba(22,119,255,.1); }
.vb-d-count { display: inline-flex; gap: 8px; font-size: 12px; margin: 0 2px; }
.vb-d-count b { font-weight: 600; }
.vb-d-count .c-nan { color: #6b7688; }
.vb-d-count .c-chong { color: #f53f3f; }
.vb-d-count .c-wen { color: #1d6fd6; }
.vb-d-count .c-bao { color: #00b578; }
.vb-d-count .c-yi { color: #7650b8; }
.vb-d-count .c-none { color: #a8b3c5; }
.vb-d-table { margin-top: 8px; overflow-x: auto; }
.vb-d-table table { width: 100%; border-collapse: collapse; font-size: 12.5px; table-layout: fixed; }
.vb-d-table th { background: #f7f9fc; padding: 9px 8px; text-align: left; border-bottom: 1px solid #ebeef5; font-size: 12.5px; color: #303133; white-space: nowrap; }
.vb-d-table th.c { text-align: center; }
.vb-d-table td { padding: 11px 8px; border-bottom: 1px solid #f2f4f8; vertical-align: middle; }
/* 序号 / 概率两列收紧内边距，紧挨着排布，省出的宽度让给院校与专业列 */
.vb-d-table th:first-child, .vb-d-table td:first-child { padding-left: 5px; padding-right: 3px; }
.vb-d-table th:nth-child(2), .vb-d-table td:nth-child(2) { padding-left: 3px; padding-right: 3px; }
.vb-d-table tr[data-iid] { cursor: grab; }
.vb-d-table tr.dragging { opacity: .45; }
.vb-d-table tr.dragging td { background: #F4F9FC; }
.vb-d-slot-chip { display: inline-flex; align-items: center; gap: 3px; border: 1px solid #d9e6ff; color: #1D5C8A; border-radius: 7px; padding: 3px 7px; font-size: 12px; cursor: pointer; background: #F4F9FC; white-space: nowrap; }
.vb-d-slot-chip .caret { font-style: normal; font-size: 9px; }
/* 概率列：kuiban 同款紧凑排布 —— 档位彩色字 + 下方灰色百分比 */
.vb-d-prob { display: inline-flex; flex-direction: column; align-items: center; gap: 2px; }
.vb-d-prob b { font-size: 13px; font-weight: 700; line-height: 1.2; }
.vb-d-prob b.chong { color: #f53f3f; }
.vb-d-prob b.wen { color: #1d6fd6; }
.vb-d-prob b.bao { color: #00b578; }
.vb-d-prob span { font-size: 12px; color: #8a94a6; line-height: 1.2; }
.vb-d-op { white-space: nowrap; }
.vb-op-ico { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border: 1px solid #e4e8ef; border-radius: 7px; cursor: pointer; font-size: 12.5px; margin-right: 6px; background: #fff; transition: .15s; }
.vb-op-ico:hover { color: #1D5C8A; border-color: #b9d7ff; background: #F4F9FC; }
.vb-op-ico.danger:hover { color: #f53f3f; border-color: #ffd2d2; background: #fff7f7; }
/* 抽屉内操作图标放大一倍（42px），横向一排显示在加宽的操作列中 */
.vb-d-op { text-align: center; }
.vb-op-row { display: flex; flex-direction: row; justify-content: center; align-items: center; gap: 7px; }
.vb-d-op .vb-op-ico { width: 42px; height: 42px; font-size: 21px; margin: 0; border-radius: 10px; }
/* 序号 / 概率 / 操作 三列上下居中，概率再左右居中 */
.vb-d-table td:first-child, .vb-d-table td:nth-child(2), .vb-d-table td:last-child { vertical-align: middle; }
.vb-d-table td:nth-child(2) { text-align: center; }
.vb-op-move { cursor: grab; }
.vb-op-move:active { cursor: grabbing; }
/* 抽屉历年矩阵（与主表格 vb-his 同款，单元格略收紧行距） */
.vb-d-his { padding-top: 2px; }
.vb-d-his .vb-hr { grid-template-columns: 40px repeat(3, minmax(0, 1fr)); gap: 0 6px; }
.vb-d-his .vb-hr span { font-size: 12px; }
/* 历年矩阵顶部的年份表头行（参照智能选志愿 2026/2025/2024 年列） */
/* 年份只在表头「历年数据」列显示一次，栅格与数据行完全一致以对齐 */
.vb-d-his-th { padding-top: 7px !important; padding-bottom: 7px !important; }
.vb-d-his-th .vb-hr-y { grid-template-columns: 44px repeat(3, minmax(0, 1fr)); gap: 0 6px; align-items: center; }
.vb-d-his-th .vb-hr-y.y4 { grid-template-columns: 44px repeat(4, minmax(0, 1fr)); }
.vb-d-his .vb-his.y4 .vb-hr { grid-template-columns: 40px repeat(4, minmax(0, 1fr)); gap: 0 6px; }
.vb-d-his-th .vb-hr-y i { font-style: normal; color: #303133; }
.vb-d-his-th .vb-hr-y .y { color: #1D5C8A; font-weight: 600; }
.vb-d-his .vb-hr-y { margin-bottom: 1px; padding-bottom: 2px; border-bottom: 1px dashed #e4e8ef; }
.vb-d-his .vb-hr-y .y { color: #1D5C8A; font-weight: 600; }

/* —— 画板（kuiban 同款卡片网格） —— */
.vb-d-board { margin-top: 14px; display: grid; grid-template-columns: repeat(auto-fill, minmax(242px, 1fr)); gap: 12px; position: relative; }
.vb-d-card { background: #fff; border: 1px solid #e8edf5; border-radius: 10px; padding: 11px 13px; cursor: grab; box-shadow: 0 1px 4px rgba(16,42,90,.05); transition: box-shadow .15s, border-color .15s; }
.vb-d-card:hover { border-color: #b9d7ff; box-shadow: 0 4px 14px rgba(22,119,255,.12); }
.vb-d-card.dragging { opacity: .5; }
.vb-d-card-h { display: flex; align-items: center; gap: 7px; margin-bottom: 7px; }
.vb-d-slot { width: 20px; height: 20px; border-radius: 5px; background: #1D5C8A; color: #fff; font-size: 12px; line-height: 20px; text-align: center; flex: none; cursor: pointer; }
.vb-d-slot:hover { filter: brightness(1.12); transform: scale(1.08); }
.vb-d-more { margin-left: auto; font-style: normal; font-size: 15px; color: #a8b3c5; cursor: pointer; padding: 0 3px; border-radius: 5px; line-height: 18px; }
.vb-d-more:hover { background: #f2f7ff; color: #1D5C8A; }
.vb-d-card.sel { border-color: #1D5C8A; box-shadow: 0 0 0 2px rgba(22, 119, 255, .22), 0 4px 14px rgba(22, 119, 255, .12); }
.vb-d-more-menu .vb-dd-item.danger:hover { background: #fff1f0; color: #f53f3f; }
/* 档位 + 百分比（冲红 / 稳橙 / 保绿），百分比灰色小字 */
.vb-d-pt { font-size: 12.5px; font-weight: 700; line-height: 1.2; }
.vb-d-pt i { font-style: normal; font-size: 11.5px; font-weight: 600; color: #8a94a6; margin-left: 3px; }
.vb-d-pt.chong { color: #f53f3f; }
.vb-d-pt.wen { color: #1d6fd6; }
.vb-d-pt.bao { color: #00b578; }
.vb-d-card b { font-size: 13.5px; color: #1f2d3d; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* 画板卡：校名 + 公办/民办 角标 */
.vb-d-uni { display: flex; align-items: center; gap: 6px; min-width: 0; margin-top: 1px; }
.vb-d-uni b { flex: 1 1 auto; min-width: 0; }
.vb-d-nature { font-style: normal; flex: none; font-size: 10.5px; line-height: 1.5; color: #1D5C8A; background: #f0f6ff; border-radius: 4px; padding: 0 5px; }
.vb-d-nature.min { color: #ff8800; background: #fff8ef; }
/* 画板卡：院校标签行（985/211/双一流…） */
.vb-d-tags { margin-top: 5px; display: flex; gap: 3px; overflow: hidden; white-space: nowrap; }
.vb-d-tags .vb-tag { flex: none; font-size: 10px; padding: 1px 4px; }
.vb-d-card-m { font-size: 12.5px; color: #303133; font-weight: 600; margin-top: 6px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vb-d-card-y { font-size: 11.5px; color: #6b7688; margin-top: 7px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vb-d-tip { grid-column: 1 / -1; background: #fff; border: 1px solid #ebeef5; box-shadow: 0 10px 36px rgba(16,42,90,.16); border-radius: 12px; padding: 20px 24px; font-size: 13.5px; line-height: 2; position: sticky; top: 20px; z-index: 5; }

/* —— 我的志愿表 / 新建 —— */
.vb-list-page, .vb-new-page { padding-top: 24px; }
.vb-list-head { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 16px; flex-wrap: wrap; gap: 10px; }
.vb-list-head h2 { margin: 0 0 8px; font-size: 21px; color: #303133; }
.vb-list-score { font-size: 13.5px; color: #6b7688; }
.vb-list-score b { color: #1D5C8A; }
.vb-cur-tag { font-size: 11px; color: #00b578; background: #e8fff3; border-radius: 4px; padding: 2px 6px; margin-left: 6px; }
.vb-list-ops a { color: #1D5C8A; cursor: pointer; text-decoration: none; margin-right: 10px; font-size: 13px; }
.vb-list-ops a:hover { text-decoration: underline; }
.vb-new-h { font-size: 17px; color: #303133; margin: 18px 0 12px; }
.vb-new-current { display: flex; align-items: center; gap: 10px; background: #f7f9fc; border: 1px solid #ebeef5; border-radius: 10px; padding: 16px 18px; font-size: 13.5px; color: #303133; flex-wrap: wrap; }
.vb-notice { margin-top: 26px; background: #fff6f5; border: 1px dashed #f5c1bd; border-radius: 8px; padding: 14px 18px; font-size: 12.5px; color: #a05252; }
.vb-notice b { display: block; margin-bottom: 6px; }
.vb-notice p { margin: 3px 0; line-height: 1.8; }
.vb-planner-tip { margin-top: 10px; background: #f0f6ff; border: 1px solid #d9e6ff; color: #1D5C8A; border-radius: 8px; padding: 9px 14px; font-size: 13px; }
.vb-planner-tip a { color: #1D5C8A; margin-left: 8px; }

/* ============================================================
   本轮改版：校区地址 / 院校实力 / 筛选标签计数 / 测评卡 / 热门榜单
   ============================================================ */

/* —— 校区地址列表（先校区名，后地址） —— */
.kc-campus { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.kc-campus li {
  display: grid; grid-template-columns: 92px 1fr; gap: 8px; align-items: start;
  background: #f7f9fc; border-radius: 6px; padding: 8px 10px; line-height: 1.6;
}
.kc-campus li b { font-size: 12.5px; color: #1D5C8A; font-weight: 700; }
.kc-campus li span { font-size: 12.5px; color: #5b6577; word-break: break-all; }

/* —— 院校实力：新增指标图标 —— */
.kc-ico.i-l1 { background: linear-gradient(135deg, #8a5cf0, #b18cff); }
.kc-ico.i-l2 { background: linear-gradient(135deg, #5b8def, #8fb3f7); }
.kc-ico.i-t1 { background: linear-gradient(135deg, #e07b39, #f2a86b); }
.kc-ico.i-t2 { background: linear-gradient(135deg, #21a67a, #5fd0a5); }
.kc-ico.i-x1 { background: linear-gradient(135deg, #c2185b, #ea6a94); }

/* —— 筛选项计数 —— */
.kb-filter-row .opts span em {
  font-style: normal; font-size: 11px; margin-left: 4px; color: #b3bccb;
}
.kb-filter-row .opts span.on em { color: rgba(255, 255, 255, .82); }
.kb-filter-row .opts span { line-height: 26px; padding: 0 10px; border-radius: 4px; }
.kb-filter-row .opts span:hover { background: #EAF3F9; }
.kb-filter-row .opts span.on { background: #1D5C8A; color: #fff; }

/* —— 学费列：加宽 + 不换行 —— */
.kcp-table-score .col-tuition,
th.col-tuition, td.col-tuition { min-width: 108px; white-space: nowrap; }
th.col-tuition { text-align: center; }

/* —— 生涯测评：横向长方形卡片 —— */
.kb-assess-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(430px, 1fr)); gap: 14px;
}
.kb-assess-card {
  display: flex; flex-direction: row; align-items: center; gap: 16px; height: 100%;
  padding: 18px 20px; border-radius: 12px; background: #fff; border: 1px solid #ebeef5;
  transition: .18s; box-shadow: 0 1px 2px rgba(16, 42, 90, .03);
}
.kb-assess-card:hover {
  border-color: #b9d7ff; box-shadow: 0 8px 22px rgba(22, 119, 255, .12); transform: translateY(-2px);
}
.kb-assess-card .kb-ai {
  width: 56px; height: 56px; border-radius: 14px; flex: none; display: grid; place-items: center;
  font-size: 27px; background: linear-gradient(135deg, #eef5ff, #dbeafe);
}
.kb-ac-body { flex: 1; min-width: 0; }
.kb-ac-top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.kb-assess-card .kb-at { font-size: 16.5px; font-weight: 800; color: #303133; line-height: 1.3; }
.kb-assess-card .kb-as {
  font-size: 11.5px; color: #1D5C8A; background: #EAF3F9; border-radius: 20px; padding: 1px 9px;
  width: auto; display: inline-block;
}
.kb-assess-card .kb-ad {
  font-size: 12.8px; color: #8b95a6; line-height: 1.7; margin-top: 5px; min-height: 0;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  white-space: normal;
}
.kb-assess-card .kb-am { font-size: 12px; color: #a6afbd; margin-top: 7px; }
.kb-assess-card .kb-ac-btn {
  flex: none; height: 34px; padding: 0 16px; border-radius: 18px; margin-top: 0; font-size: 13px;
}
@media (max-width: 760px) {
  .kb-assess-grid { grid-template-columns: 1fr; }
  .kb-assess-card { flex-wrap: wrap; }
  .kb-assess-card .kb-ac-btn { width: 100%; margin-top: 4px; }
}

/* —— 首页热门榜单：LOGO + 名次配色 —— */
.rank-list { gap: 0; }
.rank-item {
  display: flex; align-items: center; gap: 10px; padding: 9px 6px; border-radius: 8px;
  border-bottom: 1px dashed #eef1f7;
}
.rank-item:hover { background: #F4F9FC; }
.rank-item:last-child { border-bottom: 0; }
.rank-item .ri-no {
  width: 22px; height: 22px; border-radius: 7px; flex: none; display: grid; place-items: center;
  font-family: BEBAS, 'Segoe UI', sans-serif; font-size: 13.5px; font-weight: 700;
  color: #9aa5b8; background: #f2f5fb; padding-top: 0;
}
.rank-item .ri-no.top1 { background: linear-gradient(135deg, #f7b733, #fcd34d); color: #7a4a00; box-shadow: 0 2px 6px rgba(247, 183, 51, .38); }
.rank-item .ri-no.top2 { background: linear-gradient(135deg, #b8c4d6, #dbe3ee); color: #4a5768; box-shadow: 0 2px 6px rgba(160, 174, 192, .35); }
.rank-item .ri-no.top3 { background: linear-gradient(135deg, #d99a6c, #ebb894); color: #6e3d18; box-shadow: 0 2px 6px rgba(217, 154, 108, .35); }
.rank-item .ri-logo {
  width: 30px; height: 30px; border-radius: 8px; object-fit: contain; flex: none;
  background: #fff; padding: 1px;
}
.rank-item .ri-main { flex: 1; min-width: 0; }
.rank-item .ri-name {
  font-size: 17.8px; font-weight: 600; color: var(--navy); white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis;
}
.rank-item .ri-meta { font-size: 14.5px; color: #9aa5b8; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* —— 热门推荐：院校标签 / 专业代码徽章 —— */
.rank-item .ri-tag {
  display: inline-block; font-size: 10.5px; font-weight: 600; line-height: 1;
  padding: 3px 6px; border-radius: 5px; margin-right: 4px;
  background: #EAF3F9; color: #17436E; vertical-align: 1px;
}
.rank-item .ri-tag:first-child { background: linear-gradient(135deg, #fdf3dd, #f5e0b0); color: #a9761a; }

/* 热门推荐 · 院校标签（主库完整版）：单行铺开，超出右边界直接裁掉，不换行不折叠 */
/* 关键：grid 轨道默认 auto 会被最长标签撑开（内容 max-content），必须先钳死轨道与行宽，
   否则容器本身就越过卡片边界，overflow:hidden 也裁不到。 */
.rank-list { grid-template-columns: minmax(0, 1fr); }
.rank-item { min-width: 0; }
.rank-item.reco-univ .ri-meta { white-space: nowrap; overflow: hidden; text-overflow: clip; }
.rank-item .ri-tags {
  display: flex; flex-wrap: nowrap; align-items: center; gap: 4px;
  overflow: hidden; max-width: 100%; width: 100%;
}
.rank-item .ri-tags .ri-tag { margin-right: 0; flex: none; }
.rank-item .ri-code {
  display: inline-block; font-size: 10.5px; font-weight: 600; line-height: 1;
  padding: 3px 6px; border-radius: 5px; margin-left: 6px;
  background: #f2f5fb; color: #8a94a6; font-family: Consolas, monospace; vertical-align: 1px;
}
.rank-item .ri-arrow { flex: none; color: #c3cbda; font-size: 16px; font-weight: 700; }
.rank-item.reco-major .ri-name { display: flex; align-items: center; }

/* —— 选科组合：可报专业按学科门类 —— */
.kb-cat-block { background: #fff; border: 1px solid #ebeef5; border-radius: 10px; padding: 16px 18px; }
.kb-cat-block + .kb-cat-block { margin-top: 12px; }
.kb-cat-block-h { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.kb-cat-block-h b { font-size: 15px; color: #303133; }
.kb-cat-block-h span { font-size: 12px; color: #fff; background: var(--cc, #1D5C8A); border-radius: 20px; padding: 1px 9px; }
.kb-cat-block .chip-list { display: flex; flex-wrap: wrap; gap: 8px; }

/* ============================================================
   智能选志愿 · 两级筛选 / 年度四指标 / 城市专业细化
   ============================================================ */

/* —— 两级筛选：展开的下级行 —— */
.vb-fsub {
  display: flex; gap: 12px; align-items: flex-start;
  margin: -2px 0 10px; padding: 10px 12px 10px 0;
  background: #F4F9FC; border: 1px dashed #cfe4ff; border-radius: 8px;
}
.vb-fsub .vb-fk { width: 72px; flex: none; }
.vb-fsub-cap { font-size: 12px; color: #1D5C8A; background: #e8f3ff; border-radius: 4px; padding: 2px 8px; margin-right: 6px; }
.vb-fsub .vb-fitem.sm { font-size: 12.5px; padding: 3px 10px; }
.vb-fitem.open { border-color: #1D5C8A; color: #1D5C8A; background: #eef6ff; }
.vb-fitem .subcaret { font-style: normal; font-size: 9px; color: #b3bccb; margin-left: 2px; }
.vb-fitem.open .subcaret { color: #1D5C8A; }
.vb-fitem em { font-style: normal; font-size: 11px; color: #b3bccb; margin-left: 3px; }
.vb-fitem.on em { color: rgba(255, 255, 255, .8); }

/* —— 年度单元格：等效分 / 最低分 / 最低位 / 计划数 —— */
.vb-year { display: grid; grid-template-columns: 1fr; gap: 3px; font-size: 12px; }
.vb-year span { display: flex; align-items: baseline; justify-content: space-between; gap: 6px; white-space: nowrap; }
.vb-year span i { font-style: normal; font-size: 11px; color: #a6afbd; }
.vb-year span b { font-weight: 600; color: #303133; font-size: 12.5px; }
.vb-year span b:only-child { text-align: right; }
.vb-year.none span b { color: #c9cfd8; font-weight: 400; }
.thsub { font-style: normal; font-size: 10.5px; color: #1D5C8A; background: #EAF3F9; border-radius: 3px; padding: 0 4px; margin-left: 4px; vertical-align: 1px; }
.vb-uni-links b { font-weight: 700; color: #4a5568; }

/* —— 专本贯通：专科院校名 / 院校代码下一行的「对接本科」说明 —— */
.vb-link-line { margin-top: 6px; display: flex; align-items: flex-start; flex-wrap: wrap; gap: 6px; font-size: 12px; line-height: 1.5; }
.vb-link-tag { flex: none; color: #a8590a; background: #fff4e3; border: 1px solid #ffe0b2; border-radius: 3px; padding: 0 5px; font-size: 11px; }
.vb-link-val { color: #8a5a12; font-weight: 600; word-break: break-all; }
.vb-d-table .vb-link-line { margin-top: 5px; }

/* —— 一分一段：左右双栏 —— */
.seg-two { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 4px; }
.seg-col { background: #fff; border: 1px solid #ebeef5; border-radius: 10px; overflow: hidden; display: flex; flex-direction: column; }
.seg-col-h {
  display: flex; align-items: baseline; gap: 10px; padding: 12px 16px;
  background: linear-gradient(90deg, #f5f9ff, #fff); border-bottom: 1px solid #eef2f8;
}
.seg-col-h b { font-size: 15px; color: #14456B; }
.seg-col-h b::before { content: ''; display: inline-block; width: 3px; height: 13px; background: #1D5C8A; border-radius: 2px; margin-right: 7px; vertical-align: -2px; }
.seg-col-h span { font-size: 12px; color: #909399; }
.seg-scroll { max-height: 640px; overflow: auto; }
.seg-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.seg-table thead th {
  position: sticky; top: 0; z-index: 1; background: #f7f9fc; color: #5b6577;
  font-size: 12px; font-weight: 600; text-align: left; padding: 9px 16px; border-bottom: 1px solid #eef2f8;
}
.seg-table td { padding: 7px 16px; border-bottom: 1px solid #f5f7fb; color: #303133; }
.seg-table tbody tr:nth-child(even) td { background: #fcfdff; }
.seg-table td.score { font-weight: 700; color: #14456B; font-family: BEBAS, 'Segoe UI', sans-serif; font-size: 14px; }
.seg-table tr.hit td { background: #fff8e6 !important; }
.seg-table tr.hit td.score { color: #d97706; }
.seg-tip { font-size: 13px; color: #5b6577; }
.seg-tip b { color: #1D5C8A; }
/* 控制线标注：特控线/本科线/专科线在表内高亮 + 顶部摘要 */
.seg-lines { display: flex; flex-wrap: wrap; gap: 6px; padding: 8px 14px; background: #fafbfd; border-bottom: 1px solid #f0f2f7; }
.seg-line { font-size: 12px; padding: 2px 8px; border-radius: 20px; border: 1px solid #e3e8f0; color: #5b6577; background: #fff; }
.seg-line b { color: #14456B; font-family: BEBAS, 'Segoe UI', sans-serif; font-size: 13px; }
.seg-line.gold { border-color: #f3d99b; background: #fffaf0; }
.seg-line.gold b { color: #b4720c; }
.seg-line.blue { border-color: #c9dcff; background: #f5f9ff; }
.seg-line.blue b { color: #1D5C8A; }
.seg-mark { display: inline-block; font-style: normal; font-size: 10px; line-height: 15px; padding: 0 4px; margin-left: 5px; border-radius: 3px; background: #fff3d6; color: #b4720c; vertical-align: 1px; }
.seg-mark.blue { background: #FBE3DE; color: #1D5C8A; }
.seg-table tr.is-line td { background: #fffdf6 !important; }
.seg-table tr.is-line td.score { color: #b4720c; }
.table-wrap tr.is-line td { background: #fffdf6; }
@media (max-width: 900px) { .seg-two { grid-template-columns: 1fr; } }

/* ============================================================
   第 7 轮：批次列宽 / 志愿下拉筛选
   ============================================================ */

/* —— 批次列：不换行（本科批一行，本科提前批B段一行） —— */
td.col-batch, th.col-batch { white-space: nowrap; }
td.col-batch { color: #4a5568; }

/* —— 志愿筛选：省/门类下拉 —— */
.vb-filterpanel { position: relative; }
.vb-pop {
  position: absolute; z-index: 80; min-width: 210px; max-width: 92%; max-height: 320px; overflow: auto;
  background: #fff; border: 1px solid #e3e9f3; border-radius: 10px; padding: 10px 12px;
  box-shadow: 0 10px 30px rgba(16, 42, 90, .15);
}
.vb-pop-cap { display: flex; align-items: center; gap: 6px; font-size: 12px; color: #8a94a6; margin-bottom: 9px; }
.vb-pop-cap em { font-style: normal; font-size: 11px; color: #1D5C8A; background: #eef6ff; border-radius: 4px; padding: 1px 7px; }
.vb-pop-items { display: flex; flex-wrap: wrap; gap: 7px; max-width: 520px; }
.vb-pop .vb-fitem { font-size: 12.5px; padding: 4px 10px; }
.vb-fitem .vbsub { font-style: normal; font-weight: 600; color: #1D5C8A; margin-left: 1px; }
.vb-fitem.on .vbsub { color: rgba(255, 255, 255, .92); }

/* —— 一分一段：定位结果 —— */
.seg-tip-sub { color: #a6afbd; font-size: 12px; }
.seg-filters select { min-width: 96px; }

/* —— 志愿按钮：已加入状态 + 轻提示 —— */
.vb-add-vol.added { background: #eaf3ff; color: #1D5C8A; box-shadow: inset 0 0 0 1px #bcd8ff; }
.vb-add-vol.added:hover { background: #dbeaff; }
.vb-btn.ghost { background: #f5f7fa; border-color: #dfe4ec; color: #7b8698; }
#vbToast {
  position: fixed; left: 50%; top: 74px; transform: translate(-50%, -10px); z-index: 9999;
  background: rgba(23, 33, 54, .92); color: #fff; font-size: 13px; padding: 9px 20px; border-radius: 20px;
  opacity: 0; pointer-events: none; transition: .2s;
}
#vbToast.on { opacity: 1; transform: translate(-50%, 0); }

/* ============================================================
   第 9 轮：城市 / 专业三级多选 + 筛选条件芯片
   ============================================================ */

/* —— 下拉里的可选项：做成可点的胶囊，选中后实心蓝 —— */
.vb-pop-items .vb-fitem {
  border: 1px solid #e6ebf3; border-radius: 999px; background: #fafbfd;
  color: #303133; padding: 3px 11px; transition: .15s;
}
.vb-pop-items .vb-fitem:hover { border-color: #bcd8ff; color: #1D5C8A; background: #f4f9ff; }
.vb-pop-items .vb-fitem.on { background: #1D5C8A; border-color: #1D5C8A; color: #fff; font-weight: 600; }
.vb-pop-items .vb-fitem.on .subcaret { color: rgba(255, 255, 255, .85); }
.vb-pop-items .vb-fitem.open { background: #eef6ff; border-color: #1D5C8A; color: #1D5C8A; }
.vb-pop-cap > b { color: #14456B; font-weight: 700; font-size: 13px; }
.vb-pop-x { margin-left: auto; cursor: pointer; color: #909399; font-size: 12px; }
.vb-pop-x:hover { color: #1D5C8A; }
.vb-pop-back { cursor: pointer; color: #1D5C8A; font-size: 15px; line-height: 1; margin-right: 4px; }
.vb-pop-back:hover { color: #0958d9; }
.vb-fitem > em {
  font-style: normal; font-size: 10.5px; font-weight: 600; color: #fff; background: #1D5C8A;
  border-radius: 8px; padding: 0 5px; margin-left: 3px; vertical-align: 1px;
}
.vb-fitem.open > em { background: #0958d9; }

/* —— 筛选条件区：已选条件芯片，右上角小叉 —— */
.vb-conds .vb-fv { gap: 8px; align-items: center; }
.vb-cond {
  position: relative; display: inline-flex; align-items: center; gap: 6px;
  max-width: 340px; padding: 3px 4px 3px 11px;
  background: #f2f8ff; border: 1px solid #cfe4ff; border-radius: 999px;
  font-size: 12.5px; line-height: 1.7; color: #1D5C8A;
}
.vb-cond b { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vb-cond i {
  flex: none; width: 17px; height: 17px; border-radius: 50%; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(22, 119, 255, .1); color: #1D5C8A; font-style: normal; font-size: 12px;
  transition: .15s;
}
.vb-cond i:hover { background: #f53f3f; color: #fff; }
.vb-cond-clear { color: #909399; font-size: 12.5px; cursor: pointer; }
.vb-cond-clear:hover { color: #f53f3f; }
.vb-cond-empty { color: #b3bccb; font-size: 12.5px; }

/* ============================================================
   第 11 轮：专业详情独立页（#/major/<id>）· 对齐 kuiban 版式
   ============================================================ */
.mj-bread {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  margin-top: 14px; font-size: 13px; color: #8a94a6;
}
.mj-bread a { color: #1D5C8A; text-decoration: none; }
.mj-bread a:hover { color: #0958d9; }
.mj-bread i { color: #d3dae5; font-style: normal; }
/* 灰底头部卡（对齐 kuiban：标题+类型一行，信息格带彩色圆角图标） */
.mj-headcard {
  background: #f7f9fc; border: 1px solid #eef1f6; border-radius: 12px;
  padding: 22px 26px 20px; margin-top: 12px;
}
.mj-title { display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap; }
.mj-title h1 { margin: 0; font-size: 28px; color: var(--brand-navy); line-height: 1.3; }
.mj-title h1 small { font-size: 17px; font-weight: 600; color: var(--brand-teal); margin-left: 10px; }
.mj-type { font-size: 13px; color: #7d8798; display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.mj-type b { color: var(--brand-navy); font-weight: 600; }
.mj-type i { color: #d3dae5; font-style: normal; }
/* 图标信息格：彩色圆角图标 + 上标签下数值 */
.mj-facts { display: flex; gap: 30px; flex-wrap: wrap; margin-top: 20px; }
.mj-fact { display: flex; align-items: center; gap: 10px; }
.mj-fact i {
  width: 38px; height: 38px; border-radius: 10px; flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  font-style: normal; font-size: 16px; font-weight: 700; color: #fff;
}
.mj-fact.c1 i { background: linear-gradient(135deg, #f0a04b, #e2842c); box-shadow: 0 3px 8px rgba(226,132,44,.25); }
.mj-fact.c2 i { background: linear-gradient(135deg, #ef6f6c, #e0524f); box-shadow: 0 3px 8px rgba(224,82,79,.25); }
.mj-fact.c3 i { background: linear-gradient(135deg, #57aef5, #2f8fe8); box-shadow: 0 3px 8px rgba(47,143,232,.25); }
.mj-fact.c4 i { background: linear-gradient(135deg, #f2c14e, #e5a825); box-shadow: 0 3px 8px rgba(229,168,37,.28); }
.mj-fact.c5 i { background: linear-gradient(135deg, #a86ee8, #8b4fd6); box-shadow: 0 3px 8px rgba(139,79,214,.25); }
.mj-fact span { display: block; font-size: 12px; color: #8a94a6; line-height: 1.4; }
.mj-fact b { display: block; font-size: 14.5px; color: #1a2437; font-weight: 700; line-height: 1.4; }
/* 页签（品牌色） */
.mj-tabs {
  display: flex; gap: 30px; margin-top: 20px;
  border-bottom: 1px solid #ebeef5;
}
.mj-tabs span {
  position: relative; padding: 12px 2px; font-size: 15px; color: #5b6472;
  cursor: pointer; user-select: none;
}
.mj-tabs span small { font-size: 12px; color: #8a94a6; font-weight: 400; margin-left: 4px; }
.mj-tabs span .mj-go { font-style: normal; font-size: 13px; margin-left: 4px; color: var(--brand-teal); }
.mj-tabs span:hover { color: var(--brand-teal); }
.mj-tabs span.on { color: var(--brand-navy); font-weight: 700; }
.mj-tabs span.on::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 2.5px;
  background: linear-gradient(90deg, var(--brand-navy), var(--brand-teal) 60%, var(--brand-gold));
  border-radius: 2px;
}
/* 正文容器：白色面板承载各区块（kuiban 版式） */
#mjBody {
  background: #fff; border: 1px solid #eef1f6; border-radius: 12px;
  padding: 6px 28px 24px; margin-top: 16px;
}
/* 正文区块：kuiban 版式——白底、无边框、竖线标题 */
.mj-sec {
  background: transparent; border: 0; border-radius: 0;
  padding: 6px 2px 4px; margin-top: 22px;
}
.mj-sec h3 {
  margin: 0 0 10px; font-size: 17px; color: #1a2437; font-weight: 700;
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.mj-sec h3::before {
  content: ''; display: inline-block; width: 3.5px; height: 17px;
  background: linear-gradient(180deg, var(--brand-teal), var(--brand-navy)); border-radius: 2px;
}
.mj-sec-sub { font-size: 12.5px; color: #909399; font-weight: 400; }
.mj-sec p { margin: 0 0 10px; color: #3a465e; line-height: 1.95; font-size: 14px; text-align: justify; }
.mj-sec .chip-list { display: flex; flex-wrap: wrap; gap: 8px; }
/* 开设院校卡：LOGO 放大靠左，右侧院校名 + 下方地域，绿色院系整行置底 */
.mj-uni {
  display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px;
  width: calc(25% - 12px); min-width: 230px;
  background: #fafbfd; border: 1px solid #eef1f6; border-radius: 10px;
  padding: 14px 16px; text-decoration: none; transition: .15s; box-sizing: border-box;
}
.mj-uni:hover { border-color: #8fd4cd; background: #f2faf9; }
.mj-uni img { width: 62px; height: 62px; object-fit: contain; border-radius: 10px; background: #fff; flex: none; }
.mj-uni .mj-uni-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.mj-uni .n { font-size: 15px; font-weight: 700; color: #1a2437; line-height: 1.4; }
.mj-uni .l { font-size: 12.5px; color: #909399; line-height: 1.5; }
.mj-uni .d {
  width: 100%; font-size: 12.5px; color: #26a69a; line-height: 1.5;
  border-top: 1px dashed #e4eef0; padding-top: 6px; margin-top: 2px;
}
.mj-uni-wrap { display: flex; flex-wrap: wrap; gap: 12px; }
@media (max-width: 900px) { .mj-uni { width: calc(50% - 8px); } }

/* 开设院校独立页（#/major/:id/universities） */
.mu-bar {
  display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
  background: #fff; border: 1px solid #ebeef5; border-radius: 12px;
  padding: 14px 20px; margin-top: 14px;
}
.mu-total { font-size: 14px; color: #3a465e; }
.mu-total b { color: var(--brand-navy); font-size: 18px; margin: 0 2px; }
.mu-search { display: flex; align-items: center; gap: 8px; }
.mu-search input {
  width: 220px; height: 34px; border: 1px solid #dfe5ee; border-radius: 8px;
  padding: 0 12px; font-size: 13.5px; outline: none;
}
.mu-search input:focus { border-color: var(--brand-teal); box-shadow: 0 0 0 2px rgba(38,166,154,.14); }
.mu-search button {
  height: 34px; padding: 0 16px; border: none; border-radius: 8px;
  background: var(--brand-navy); color: #fff; font-size: 13.5px; font-weight: 600;
}
.mu-search button:hover { background: #1d5080; }
.mu-wrap { margin-top: 14px; }
.mu-df {
  font-style: normal; font-size: 11px; color: #fff; background: var(--brand-teal);
  border-radius: 4px; padding: 1px 5px; margin-left: 6px; vertical-align: 1px; font-weight: 600;
}
.mu-pager { display: flex; justify-content: center; align-items: center; gap: 8px; padding: 24px 0 8px; }
.mu-pg {
  min-width: 32px; height: 32px; padding: 0 8px; border-radius: 8px;
  display: inline-grid; place-items: center; font-size: 13.5px; color: #3a465e;
  background: #fff; border: 1px solid #e3e8f0; cursor: pointer; user-select: none;
}
.mu-pg:hover { border-color: var(--brand-teal); color: var(--brand-teal); }
.mu-pg.on { background: var(--brand-navy); border-color: var(--brand-navy); color: #fff; font-weight: 700; }
.mu-pg.dis { opacity: .4; pointer-events: none; }
.mu-dots { color: #b3bccb; }

/* 选科组合详情：门类 → 专业类 → 专业 三级 */
.kb-sub-block { margin: 2px 0 14px; }
.kb-sub-block-h {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 13.5px; font-weight: 700; color: #303133;
  padding: 3px 12px; margin-bottom: 10px;
  background: #f5f8fd; border-left: 3px solid var(--cc, #1D5C8A); border-radius: 0 999px 999px 0;
}
.kb-sub-block-h i {
  font-style: normal; font-size: 11.5px; font-weight: 600; color: #8a94a6;
  background: #fff; border: 1px solid #e6ebf3; border-radius: 8px; padding: 0 6px;
}

/* 测评报告：类型主卡 + 我的测评记录 */
.rp-bigcard {
  border: 1px solid; border-radius: 14px; padding: 22px;
  text-align: center; margin-bottom: 18px;
}
.rp-bigcode { font-size: 34px; font-weight: 800; letter-spacing: 4px; line-height: 1.3; }
.rp-bigname { font-size: 13px; color: #5b6472; margin-top: 4px; }.kb-report-row .ops { display: flex; gap: 14px; }
.kb-report-row .ops a { color: #1D5C8A; font-size: 13px; cursor: pointer; }
.kb-report-row .ops a:hover { color: #0958d9; }

/* ============================================================
   第 12 轮：院校概况（特色专业 / 重点学科 / 双一流学科）
   ============================================================ */
.kc-ov-sec { padding: 15px 0; border-top: 1px dashed #eef1f6; }
.kc-ov-sec:first-of-type { border-top: 0; padding-top: 6px; }
.kc-ov-h { display: flex; align-items: baseline; gap: 10px; margin-bottom: 10px; }
.kc-ov-h b { font-size: 14.5px; color: #14456B; }
.kc-ov-h span { font-size: 12.5px; color: #a0a8b6; }
.kc-ov-line { display: flex; gap: 12px; align-items: flex-start; }
.kc-ov-line + .kc-ov-line { margin-top: 10px; }
.kc-ov-badge {
  flex: none; width: 106px; min-height: 46px; box-sizing: border-box;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px;
  background: #EAF3F9; color: #1D5C8A; border-radius: 8px; padding: 6px;
  font-size: 11.5px; font-style: normal; line-height: 1.35; text-align: center;
}
.kc-ov-badge b { font-size: 18px; font-weight: 800; }
.kc-ov-badge.prov { background: #fff4e8; color: #c26a12; }
.kc-ov-line > .kc-chips, .kc-ov-line > .kc-ov-none { flex: 1; padding-top: 3px; }
.kc-ov-none { color: #b3bccb; font-size: 13px; padding-top: 3px; display: inline-block; }
.kc-ov-sec .kc-chips { gap: 10px; }
.kc-ov-sec .kc-chips .chip {
  background: linear-gradient(135deg, #f2f8ff, #e9f1ff); border: 1px solid #d6e4fb; color: #1D5C8A;
  border-radius: 10px; padding: 10px 14px; font-size: 14px; font-weight: 600;
  box-shadow: 0 1px 2px rgba(22,119,255,.06); transition: .15s;
}
.kc-ov-sec .kc-chips .chip::before {
  content: ''; display: inline-block; width: 6px; height: 6px; border-radius: 50%;
  background: #2f6fed; margin-right: 8px; vertical-align: middle;
}
.kc-ov-sec .kc-chips .chip:hover {
  transform: translateY(-2px); box-shadow: 0 6px 16px rgba(22,119,255,.16);
  border-color: #b9d7ff; background: linear-gradient(135deg, #eaf2ff, #dcebff);
}
.kc-chips-grade { gap: 7px; }
.kc-gdchip {
  display: inline-flex; align-items: center; gap: 6px;
  background: #f5f7fa; border-radius: 6px; padding: 5px 10px; font-size: 13px; color: #303133;
}
.kc-gdchip em { font-style: normal; font-size: 10.5px; font-weight: 700; color: #fff; border-radius: 4px; padding: 1px 5px; background: #909399; }
.kc-gdchip.g-1 em { background: #c62828; }
.kc-gdchip.g-2 em { background: #e06c1a; }
.kc-gdchip.g-3 em { background: #c99a12; }
.kc-gdchip.g-4 em { background: #2f6fd0; }
.kc-gdchip.g-5 em { background: #3d8fbf; }
.kc-gdchip.g-6 em { background: #2f9e8f; }
.kc-gdchip.g-7 em { background: #7b6bb5; }
.kc-gdchip.g-8 em { background: #8d93a1; }
.kc-gdchip.g-9 em { background: #a8aeba; }

/* ============================================================
   志愿表独立整页（#/volunteer/plan/:id）· 宽屏高密度版
   ============================================================ */
.vp-page { padding-top: 18px; padding-bottom: 40px; }
.vp-wide { width: 100%; max-width: 1780px; margin: 0 auto; padding-left: 18px; padding-right: 18px; }
.vp-crumb { font-size: 12.5px; color: #909399; margin-bottom: 8px; }
.vp-crumb a { color: #1D5C8A; }
.vp-crumb i { font-style: normal; margin: 0 6px; color: #c8cfda; }
.vp-head {
  display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; flex-wrap: wrap;
  background: #fff; border: 1px solid #ebeef5; border-radius: 12px; padding: 14px 20px;
}
.vp-head h2 { margin: 0; font-size: 19px; color: #14456B; display: flex; align-items: center; gap: 8px; }
.vp-meta { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 7px; font-size: 12.5px; color: #7a8496; }
.vp-meta b { color: #1D5C8A; font-size: 14px; }
.vp-head-r { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.vp-bar { display: flex; justify-content: space-between; align-items: center; margin: 10px 0; gap: 12px; flex-wrap: wrap; }
.vp-stats { display: flex; gap: 16px; font-size: 13px; color: #5b6472; }
.vp-stat i { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 5px; vertical-align: 1px; }
.vp-stat.chong i { background: #f15a24; }
.vp-stat.wen i { background: #1D5C8A; }
.vp-stat.bao i { background: #10b981; }
.vp-stat.none i { background: #c0c4cc; }
.vp-stat b { color: #1a2437; font-size: 14px; margin-left: 2px; }
.vp-bar-r { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.vp-hint {
  background: #f1faf8; border: 1px solid #cdede8; color: #256a63;
  border-radius: 8px; padding: 8px 12px; font-size: 12px; margin-bottom: 8px; line-height: 1.6;
}
.vp-hint b { color: #0f7b70; }
/* ---- 列表 ---- */
.vp-tablewrap { background: #fff; border: 1px solid #ebeef5; border-radius: 12px; overflow: auto; }
.vp-table { width: 100%; min-width: 1500px; border-collapse: collapse; font-size: 12.5px; table-layout: fixed; }
.vp-table th {
  background: #f7f9fc; color: #5b6472; font-weight: 600; padding: 8px 8px; text-align: left;
  white-space: nowrap; border-bottom: 1px solid #ebeef5; position: sticky; top: 0; z-index: 2;
}
.vp-table td { padding: 8px 8px; border-bottom: 1px solid #f0f3f8; vertical-align: top; }
.vp-table th.c-grip { width: 26px; }
.vp-table th.c-slot { width: 86px; }
.vp-table th.c-prob { width: 72px; }
.vp-table th.c-uni { width: 320px; }
.vp-table th.c-major { width: 470px; }
.vp-table th.c-year { width: 112px; }
.vp-table th.c-op { width: 92px; }
.vp-table tr { transition: background .12s; }
.vp-table tr:hover td { background: #fbfdff; }
.vp-table tr.dragging { opacity: .5; }
.vp-table tr.drag-over-top td { border-top: 2px solid #26a69a; }
.vp-table tr.drag-over-bottom td { border-bottom: 2px solid #26a69a; }
.vp-grip-cell { text-align: center; color: #b3bccb; cursor: grab; padding-top: 12px !important; }
.vp-grip { font-size: 16px; cursor: grab; user-select: none; letter-spacing: -2px; }
.vp-grip:active { cursor: grabbing; }
.vp-slot-cell { padding-top: 10px !important; }
.vp-slot {
  display: inline-flex; align-items: center; justify-content: center; min-width: 68px; height: 26px;
  border-radius: 13px; background: #EAF3F9; color: #1D5C8A; font-size: 12.5px; font-weight: 700;
  cursor: pointer; padding: 0 10px; white-space: nowrap; border: 1px dashed #bcd8ff;
}
.vp-slot:hover { background: #dbe9ff; border-style: solid; }
.vp-slot-holder { display: inline-block; }
.vp-slot-in { width: 72px; height: 26px; border: 1px solid #1D5C8A; border-radius: 13px; text-align: center; font-size: 12.5px; outline: none; }
.vp-tags { display: flex; flex-wrap: wrap; gap: 3px; margin-top: 3px; }
.vp-tag {
  font-style: normal; font-size: 10.5px; line-height: 1.5; padding: 0 5px; border-radius: 4px;
  background: #f2f5fa; color: #66748c; border: 1px solid #e5ebf4;
}
.vp-tag.hl { background: #e9f8f6; color: #0f7b70; border-color: #bfe9e3; font-weight: 600; }
.vp-uni-meta { font-size: 11.5px; color: #7a8496; line-height: 1.6; margin-top: 2px; }
.vp-uni-meta b { color: #3a465e; font-weight: 600; }
.vp-uni-meta em, .vp-major-meta em, .vp-card-kv em { font-style: normal; color: #d3dae5; margin: 0 4px; }
.vp-uni-code { font-size: 11px; color: #a0a8b6; line-height: 1.6; }
.vp-uni-code b { color: #6b7688; font-weight: 600; }
.vp-c-major .vp-major-name { font-size: 13px; font-weight: 700; color: #1a2437; line-height: 1.45; }
.vp-major-meta { font-size: 11.5px; color: #6b7688; line-height: 1.7; margin-top: 2px; }
.vp-major-meta b { color: #1a2437; font-weight: 700; }
.vp-ev, .vp-feat, .vp-sino {
  display: inline-block; font-style: normal; font-size: 10.5px; line-height: 1.5; padding: 0 5px;
  border-radius: 4px; border: 1px solid; vertical-align: 1px;
}
.vp-ev { color: #9a5b00; background: #fff5e2; border-color: #ffe0b0; }
.vp-ev.major { color: #8a3fb0; background: #f8eeff; border-color: #e8cdfa; }
.vp-feat { color: #0f7b70; background: #ecfaf7; border-color: #c2ece6; }
.vp-sino { color: #17436E; background: #EAF3F9; border-color: #c9dcff; margin-left: 4px; }
.vp-warn {
  margin-top: 4px; font-size: 11px; color: #b42318; background: #fff1f0; border: 1px solid #ffd6d3;
  border-radius: 5px; padding: 1px 6px; display: inline-block; max-width: 100%;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.vp-y { display: grid; grid-template-columns: 1fr 1fr; gap: 1px 6px; font-size: 11px; color: #8a94a6; line-height: 1.6; }
.vp-y i { font-style: normal; color: #b3bccb; margin-right: 2px; }
.vp-y b { color: #3a465e; font-weight: 600; }
.vp-y.none { color: #c8cfda; }
.vp-ops { white-space: nowrap; }
.vp-op {
  display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px;
  border-radius: 6px; margin-right: 1px; color: #7a8496; cursor: pointer; font-size: 12.5px;
}
.vp-op:hover { background: #EAF3F9; color: #1D5C8A; }
.vp-op.del:hover { background: #feeceb; color: #f53f3f; }
.vp-info { font-style: normal; color: #b3bccb; margin-left: 4px; cursor: pointer; font-size: 11px; }
.vp-info:hover { color: #1D5C8A; }
/* ---- 画板 ---- */
.vp-board { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 10px; }
.vp-card { background: #fff; border: 1px solid #ebeef5; border-radius: 10px; padding: 10px 12px; position: relative; }
.vp-card:hover { border-color: #cfe3ff; box-shadow: 0 4px 14px rgba(16,38,76,.06); }
.vp-card.dragging { opacity: .5; }
.vp-card.drag-over-top { border-left: 3px solid #26a69a; }
.vp-card.drag-over-bottom { border-right: 3px solid #26a69a; }
.vp-card-h { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.vp-card-uni { display: flex; align-items: center; gap: 6px; font-size: 13.5px; color: #14456B; line-height: 1.4; }
.vp-card-uni b { font-weight: 700; }
.vp-card-major { font-size: 12px; color: #4a5568; margin: 4px 0 3px; line-height: 1.5; }
.vp-card-kv { font-size: 11px; color: #7a8496; line-height: 1.7; }
.vp-card-kv b { color: #3a465e; }
.vp-card-y { font-size: 11px; color: #8a94a6; margin-top: 3px; }
.vp-card-ops { display: flex; gap: 2px; justify-content: flex-end; align-items: center; margin-top: 6px; border-top: 1px dashed #eef1f6; padding-top: 4px; }
.vp-empty { background: #fff; border: 1px dashed #dfe5ef; border-radius: 12px; padding: 60px 20px; text-align: center; color: #909399; }
.vp-foot { font-size: 11.5px; color: #a0a8b6; margin-top: 8px; }

.vb-btn.danger:hover { background: #feeceb; }

/* 专业属性标签：师范 / 中外合作 / 大类招生 / 专项 */
.vp-flag {
  display: inline-block; font-style: normal; font-size: 10.5px; line-height: 1.5; padding: 0 5px;
  margin-left: 4px; border-radius: 4px; border: 1px solid #e5ebf4; background: #f5f8fc; color: #66748c;
  vertical-align: 1px;
}
.vp-flag.sino { color: #17436E; background: #EAF3F9; border-color: #c9dcff; }
.vp-major-name b { font-weight: 700; }

/* —— 生涯测评页：标题行内化 + 整体美化 —— */
.kb-sec-inline { display: flex; align-items: baseline; gap: 14px; }
.kb-sec-inline .kb-sec-t { position: relative; padding-left: 14px; }
.kb-sec-inline .kb-sec-t::before {
  content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
  width: 5px; height: 18px; border-radius: 3px;
  background: linear-gradient(180deg, #17436e, #26a69a);
}
.kb-sec-inline .kb-sec-d { margin-top: 0; }
.kb-assess-hero { position: relative; overflow: hidden; }
.kb-assess-hero::after {
  content: ''; position: absolute; right: -60px; top: -60px; width: 220px; height: 220px;
  border-radius: 50%; background: rgba(255, 255, 255, .08); pointer-events: none;
}
.kb-assess-grid { gap: 16px; }
.kb-assess-card { border-radius: 14px; padding: 20px 22px; }
.kb-assess-card .kb-ai { width: 58px; height: 58px; border-radius: 16px; }
.kb-assess-card:nth-child(4n+1) .kb-ai { background: linear-gradient(135deg, #e8f4f2, #c9ebe7); }
.kb-assess-card:nth-child(4n+2) .kb-ai { background: linear-gradient(135deg, #fdf3e0, #f9e2b8); }
.kb-assess-card:nth-child(4n+3) .kb-ai { background: linear-gradient(135deg, #eef2fb, #d9e3f8); }
.kb-assess-card:nth-child(4n) .kb-ai { background: linear-gradient(135deg, #f3ecff, #e2d2fb); }
.kb-assess-card .kb-ac-btn { transition: .15s; }
.kb-assess-card:hover .kb-ac-btn { transform: translateX(2px); }
.kb-am { margin-top: 7px; }

/* ========== 首页美化 ========== */
/* Hero：装饰光斑 + 更大标题 + 更醒目搜索 */
.home-hero { padding: 40px 0 26px; }
.home-hero::before {
  content: ''; position: absolute; left: -140px; bottom: -160px; width: 380px; height: 380px;
  background: radial-gradient(circle, rgba(38,166,154,.22), transparent 68%); border-radius: 50%;
}
.home-hero::after {
  right: -60px; top: -100px; width: 420px; height: 420px;
  background: radial-gradient(circle, rgba(224,178,70,.3), transparent 66%);
}
.hero-badges { gap: 10px; margin-bottom: 22px; }
.hero-badges span {
  font-size: 13.5px; padding: 5px 16px; border-radius: 20px; font-weight: 600;
  background: rgba(255,255,255,.13); border: 1px solid rgba(255,255,255,.28);
  backdrop-filter: blur(4px); transition: .18s;
}
.hero-badges span:hover { background: rgba(255,255,255,.24); transform: translateY(-1px); }
.home-hero h1 { font-size: 44px; font-weight: 800; letter-spacing: 0; text-shadow: 0 3px 16px rgba(0,0,0,.22); }
.home-hero h1 .hl { font-size: 16px; padding: 5px 14px; border-radius: 9px; box-shadow: 0 4px 14px rgba(0,0,0,.2); }
.home-hero .sub { font-size: 16px; opacity: .88; margin-top: 14px; letter-spacing: .5px; }
.hero-search {
  margin-top: 28px; max-width: 760px; border-radius: 16px; padding: 8px;
  box-shadow: 0 14px 40px rgba(0,0,0,.26); transition: .2s;
}
.hero-search:focus-within { transform: translateY(-2px); box-shadow: 0 18px 46px rgba(0,0,0,.32); }
.hero-search .hs-region { padding: 0 18px; font-size: 15px; }
.hero-search input { padding: 14px 18px; font-size: 15.5px; }
.hero-search .btn { padding: 11px 30px; font-size: 15px; border-radius: 11px; }
/* 顶部数字条已下线：只回填入口卡片与页脚，不再渲染 .stats */
/* 首页五大入口（新）：彩色渐变条 —— 图标居左、信息居右、五格一排 */
.feature-row { grid-template-columns: repeat(5, 1fr); gap: 14px; margin-top: 14px; margin-bottom: 26px; }
.feature-row .feature-card {
  display: flex; align-items: center; gap: 12px;
  padding: 15px 16px; border: 0; border-radius: 14px;
  color: #fff; text-align: left; text-decoration: none;
  overflow: hidden; isolation: isolate;
  transition: transform .22s ease, box-shadow .22s ease;
}
.feature-row .feature-card::before {
  content: ''; position: absolute; inset: 0; opacity: 0; transition: opacity .22s ease;
  background: linear-gradient(135deg, rgba(255,255,255,.26), rgba(255,255,255,0) 62%);
  pointer-events: none;
}
.feature-row .feature-card:hover { transform: translateY(-4px); }
.feature-row .feature-card:hover::before { opacity: 1; }
.feature-row .feature-card .fi {
  flex: none; width: 46px; height: 46px; border-radius: 13px;
  display: grid; place-items: center; font-size: 0;
  background: rgba(255,255,255,.2); border: 1px solid rgba(255,255,255,.36);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.28);
  color: #fff; transition: transform .22s ease, background .22s ease;
}
.feature-row .feature-card .fi svg { width: 24px; height: 24px; display: block; }
.feature-row .feature-card:hover .fi { transform: scale(1.06); background: rgba(255,255,255,.3); }
.feature-row .feature-card .fb { min-width: 0; display: block; }
.feature-row .feature-card .ft {
  display: block; margin: 0; font-size: 16.5px; font-weight: 800;
  color: #fff; line-height: 1.2; letter-spacing: .4px; white-space: nowrap;
}
.feature-row .feature-card .fd {
  margin: 5px 0 0; display: flex; align-items: baseline; gap: 3px;
  line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.feature-row .feature-card .fn { margin: 0; font-size: 15px; font-weight: 800; color: #fff; font-style: normal; letter-spacing: .2px; }
.feature-row .feature-card .fu { font-size: 11.5px; font-weight: 500; color: rgba(255,255,255,.88); font-style: normal; }
/* 五色 */
.feature-row .feature-card.c1 { background: linear-gradient(135deg, #4a8dff 0%, #1565ef 100%); box-shadow: 0 10px 22px rgba(21,101,239,.26); }
.feature-row .feature-card.c1:hover { box-shadow: 0 16px 32px rgba(21,101,239,.34); }
.feature-row .feature-card.c2 { background: linear-gradient(135deg, #2ad3a6 0%, #04af7b 100%); box-shadow: 0 10px 22px rgba(4,175,123,.26); }
.feature-row .feature-card.c2:hover { box-shadow: 0 16px 32px rgba(4,175,123,.34); }
.feature-row .feature-card.c3 { background: linear-gradient(135deg, #ffb259 0%, #fb8a17 100%); box-shadow: 0 10px 22px rgba(251,138,23,.26); }
.feature-row .feature-card.c3:hover { box-shadow: 0 16px 32px rgba(251,138,23,.34); }
.feature-row .feature-card.c4 { background: linear-gradient(135deg, #9b92ff 0%, #6a5bf0 100%); box-shadow: 0 10px 22px rgba(106,91,240,.26); }
.feature-row .feature-card.c4:hover { box-shadow: 0 16px 32px rgba(106,91,240,.34); }
.feature-row .feature-card.c5 { background: linear-gradient(135deg, #43cbff 0%, #0aa7f0 100%); box-shadow: 0 10px 22px rgba(10,167,240,.26); }
.feature-row .feature-card.c5:hover { box-shadow: 0 16px 32px rgba(10,167,240,.34); }
@media (max-width: 1080px) {
  .feature-row .feature-card { gap: 10px; padding: 13px 12px; }
  .feature-row .feature-card .fi { width: 40px; height: 40px; border-radius: 11px; }
  .feature-row .feature-card .fi svg { width: 21px; height: 21px; }
  .feature-row .feature-card .ft { font-size: 15px; }
  .feature-row .feature-card .fn { font-size: 13.5px; }
  .feature-row .feature-card .fu { font-size: 11px; }
}
/* 热点推荐：序号徽章化 + 行 hover + 日期同行 + 数字着色 */
.hot-list { border-radius: 16px; padding: 10px 22px; }
.hot-item { padding: 16px 0; border-radius: 10px; }
.hot-item:hover { background: #f8fbff; margin: 0 -10px; padding-left: 10px; padding-right: 10px; }
.hot-item:hover .hi-no { transform: translateY(-1px); }
.hi-no {
  width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; flex: none;
  font-size: 15px; font-weight: 800; font-family: 'Segoe UI', system-ui, sans-serif;
  background: linear-gradient(135deg, #e7f1fb, #cfe2f6); color: #1D5C8A;
  box-shadow: inset 0 0 0 1px rgba(29,92,138,.12); transition: transform .15s;
}
.hi-no.top { background: linear-gradient(135deg, #f6c560, #e8a93a); color: #5a3a00; box-shadow: 0 2px 6px rgba(224,178,70,.35); }
.hi-main { flex: 1; min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.hi-title { font-size: 17.8px; font-weight: 600; color: var(--navy); line-height: 1.5; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hi-date { flex: none; font-size: 14.5px; font-weight: 700; color: #c2410c; font-variant-numeric: tabular-nums; white-space: nowrap; }
/* 热点推荐底部「查看更多」：居中、与列表卡片同宽 */
.hot-more {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  margin-top: 14px; padding: 13px 0;
  background: #fff; border: 1px solid var(--border); border-radius: 16px;
  box-shadow: var(--shadow);
  font-size: 15px; font-weight: 600; color: var(--blue); letter-spacing: .5px;
  text-decoration: none;
  transition: border-color .18s, color .18s, background .18s, transform .18s;
}
.hot-more .hm-arrow { transition: transform .18s; }
.hot-more:hover { border-color: var(--blue); background: #f7fbff; color: #164a6f; transform: translateY(-1px); }
.hot-more:hover .hm-arrow { transform: translateX(3px); }
/* 热门榜单：页签胶囊化 */
.rank-box { border-radius: 16px; padding: 18px; }
.rank-tabs { gap: 5px; margin-bottom: 14px; }
.rank-tabs span { border-radius: 999px; transition: .18s; }
.rank-tabs span:hover { background: #e8eef9; }
.rank-item { padding: 10px 6px; border-radius: 10px; }
.rank-item:hover { background: #f8fbff; }

/* ===== 首页两栏等高：右侧「热门推荐」底部与左侧「查看更多」下沿对齐（仅桌面） ===== */
@media (min-width: 901px) {
  .home-cols { align-items: stretch; }
  .col-main, .col-side { display: flex; flex-direction: column; min-width: 0; }
  /* 左列：列表吃掉剩余高度，条目不压缩；「查看更多」固定贴底 */
  .hot-list { flex: 1 1 auto; display: flex; flex-direction: column; }
  .hot-list > .hot-item { flex: 1 0 auto; }
  .hot-more { flex: 0 0 auto; }
  /* 右列：卡片填满整列，榜单 N 行均分剩余高度，序号与文字垂直居中 */
  .rank-box { flex: 1 1 auto; display: flex; flex-direction: column; }
  .rank-tabs { flex: 0 0 auto; }
  .rank-list { flex: 1 1 auto; grid-auto-rows: 1fr; align-content: stretch; }
  .rank-item { align-items: center; }
  .rank-item .ri-no { padding-top: 0; }
}

/* ===== 首页「热门推荐」榜单美化：序号与左侧热点推荐同一套语言，校徽放大 ===== */
.rank-box { padding: 18px 18px 14px; }

/* 页签：分段控件（胶囊内嵌白底选中） */
.rank-tabs {
  display: inline-flex; gap: 2px; padding: 3px; margin-bottom: 12px;
  background: #f1f5fa; border-radius: 999px;
  align-self: flex-start; flex: 0 0 auto; max-width: 100%;
}
.rank-tabs span {
  padding: 7px 14px; border-radius: 999px; background: transparent;
  font-size: 12.5px; font-weight: 600; color: #7b8798; line-height: 1;
  transition: color .18s, background .18s, box-shadow .18s;
}
.rank-tabs span:hover { background: rgba(255,255,255,.75); color: #17436E; }
.rank-tabs span.on { background: #fff; color: #17436E; font-weight: 700; box-shadow: 0 2px 8px rgba(23,67,110,.16); }

/* 行 */
.rank-item { gap: 11px; padding: 10px 8px; border-radius: 11px; transition: background .18s; }
.rank-item:hover { background: #f6fafd; }

/* 序号徽章：尺寸 / 圆角 / 字号字重 / 配色 与左侧「热点推荐」完全一致 */
.rank-item .ri-no {
  width: 30px; height: 30px; border-radius: 9px; padding-top: 0;
  font-family: 'Segoe UI', system-ui, sans-serif; font-size: 15px; font-weight: 800;
  background: linear-gradient(135deg, #e7f1fb, #cfe2f6); color: #1D5C8A;
  box-shadow: inset 0 0 0 1px rgba(29,92,138,.12);
}
.rank-item .ri-no.top1,
.rank-item .ri-no.top2,
.rank-item .ri-no.top3 {
  background: linear-gradient(135deg, #f6c560, #e8a93a); color: #5a3a00;
  box-shadow: 0 2px 6px rgba(224,178,70,.35);
}

/* 院校校徽放大（38px，白底细描边） */
.rank-item .ri-logo {
  width: 38px; height: 38px; border-radius: 11px; padding: 2px; flex: none;
  background: #fff; box-shadow: inset 0 0 0 1px #edf1f7; object-fit: contain;
}
/* 专业行：序号后直接接专业名（无图标占位） */

/* 主名 + 次行（专业代码 / 门类 / 院校标签） */
.rank-item .ri-name { font-size: 17px; font-weight: 600; color: var(--navy); line-height: 1.3; }
.rank-item .ri-meta {
  display: flex; align-items: center; gap: 6px; margin-top: 4px;
  font-size: 13px; color: #8e99ab; white-space: nowrap; overflow: hidden;
}
.rank-item .ri-meta .ri-cat { overflow: hidden; text-overflow: ellipsis; }
.rank-item .ri-tag {
  font-size: 10px; padding: 2px 5px; border-radius: 4px; margin-right: 0; vertical-align: 0;
}
.rank-item .ri-code {
  font-size: 10.5px; padding: 2px 5px; border-radius: 4px; margin-left: 0; vertical-align: 0;
  background: #eef3f9; color: #7c8798; letter-spacing: .3px;
}
.rank-item .ri-arrow { color: #cbd4e1; font-size: 15px; transition: color .18s, transform .18s; }
.rank-item:hover .ri-arrow { color: var(--blue); transform: translateX(2px); }
.rank-item.reco-major .ri-name { display: block; }

/* ========== 首页五卡：彩色渐变条版（样式集中在「首页五大入口（新）」段） ========== */

/* ===== 规划师代管 / 多版本 / 专家审核 ===== */
.vb-planner-tip { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.vb-planner-tip a { color:#17436E; }
.vb-planner-tip b { color:#14456B; }
.vb-ver-tip { background:#f7f9fd; border:1px solid #e6ecf7; border-radius:10px; padding:10px 12px; font-size:12.5px; color:#5a6675; margin-bottom:12px; line-height:1.7; }
.vb-ver-row { display:flex; align-items:center; gap:12px; padding:11px 13px; border:1px solid #e6ecf7; border-radius:11px; margin-bottom:8px; background:#fff; }
.vb-ver-row.cur { border-color:#b9d3ff; background:#F4F9FC; }
.vb-ver-no { width:38px; height:38px; border-radius:10px; background:#f0f2f6; color:#5a6675; display:grid; place-items:center; font-weight:800; font-size:13px; flex:none; }
.vb-ver-row.cur .vb-ver-no { background:#14456B; color:#fff; }
.vb-ver-main { flex:1; min-width:0; }
.vb-ver-main b { font-size:13.5px; color:#22304a; }
.vb-ver-meta { font-size:11.5px; color:#9aa4b5; margin-top:2px; }
.vb-ver-tag { font-style:normal; font-size:11px; background:#e8f8f1; color:#12855a; border-radius:999px; padding:1px 8px; margin-left:4px; }
.vb-ver-tag.gray { background:#f0f2f6; color:#7b8798; }
.vb-ver-ops { flex:none; }

.vp-expert { background:linear-gradient(135deg,#e0b246,#c08b1f); color:#fff; border-radius:999px; padding:3px 12px; font-size:12px; font-weight:700; box-shadow:0 3px 10px rgba(224,178,70,.28); }
.vp-reviewing { background:#fff4e6; color:#b26a00; border-radius:999px; padding:3px 12px; font-size:12px; font-weight:700; }
.vp-rejected { background:#fdecec; color:#c0392b; border-radius:999px; padding:3px 12px; font-size:12px; font-weight:700; }
.vp-final { background:#e8f8f1; color:#12855a; border-radius:999px; padding:3px 12px; font-size:12px; font-weight:700; }
.vp-review-item { border:1px solid #e6ecf7; border-left:4px solid #e0b246; border-radius:11px; padding:12px 14px; margin-bottom:9px; }
.vp-review-item.approved { border-left-color:#1a9e6b; }
.vp-review-item.rejected { border-left-color:#c0392b; }
.vp-review-hd { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.vp-review-tag { font-size:11.5px; border-radius:999px; padding:1px 9px; background:#fff4e6; color:#b26a00; }
.vp-review-tag.approved { background:#e8f8f1; color:#12855a; }
.vp-review-tag.rejected { background:#fdecec; color:#c0392b; }
.vp-review-meta { font-size:11.5px; color:#9aa4b5; margin-top:4px; }
.vp-review-body { font-size:12.5px; color:#46536b; line-height:1.75; margin-top:7px; background:#fafcff; border-radius:8px; padding:8px 10px; }
.vp-review-body span { display:block; font-size:11px; color:#9aa4b5; margin-bottom:2px; letter-spacing:.5px; }

/* ================= 正式高考成绩录入（第 24 轮） ================= */
#examBanner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center;
  padding:9px 16px;background:linear-gradient(90deg,#8a1d12,#c0392b 55%,#e05a3f);color:#fff;
  font-size:13px;text-decoration:none;position:sticky;top:0;z-index:900;}
#examBanner b{font-size:13.5px;letter-spacing:.3px;}
#examBanner span{opacity:.92;}
#examBanner i{font-style:normal;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.38);
  padding:2px 10px;border-radius:99px;font-size:12px;white-space:nowrap;}
#examBanner:hover i{background:rgba(255,255,255,.3);}

.exam-page{max-width:1080px;}
.exam-hero{display:flex;justify-content:space-between;gap:26px;align-items:center;flex-wrap:wrap;
  border-radius:18px;padding:26px 28px;background:linear-gradient(135deg,#0e2a52,#17436E 70%);color:#fff;
  box-shadow:0 18px 40px -24px rgba(14,42,82,.6);}
.exam-hero.wait{background:linear-gradient(135deg,#33415c,#5a6a85);}
.exam-hero.ok{background:linear-gradient(135deg,#0d5c46,#1a8f6a);}
.exam-hero.live{background:linear-gradient(135deg,#7a2318,#c0392b 75%);}
.exam-hero-main h2{margin:8px 0 6px;font-size:24px;letter-spacing:.5px;}
.exam-hero-main p{margin:0;font-size:13.5px;opacity:.9;line-height:1.7;}
.exam-tag{display:inline-block;font-size:12px;padding:3px 11px;border-radius:99px;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3);}
.exam-notice{margin-top:12px;font-size:12.5px;line-height:1.75;padding:10px 13px;border-radius:10px;
  background:rgba(0,0,0,.16);border-left:3px solid rgba(255,255,255,.55);}
.exam-hero-side{display:flex;gap:14px;}
.exam-kpi{min-width:104px;text-align:center;background:rgba(255,255,255,.12);border-radius:14px;padding:14px 16px;}
.exam-kpi b{display:block;font-size:26px;line-height:1.1;}
.exam-kpi span{font-size:12px;opacity:.85;}

.exam-card{margin-top:18px;background:#fff;border:1px solid #e6ecf5;border-radius:16px;padding:22px 24px;
  box-shadow:0 10px 30px -22px rgba(15,40,80,.35);}
.exam-card-title{margin:0 0 16px;font-size:16.5px;color:#14456B;}
.exam-warn{margin-top:18px;background:#fff7f4;border:1px solid #ffd9cd;border-left:4px solid #d94a3d;
  border-radius:12px;padding:16px 18px;color:#8a2c1c;}
.exam-warn>b{display:block;font-size:14.5px;margin-bottom:8px;}
.exam-warn li b{display:inline;font-weight:700;color:#a8321f;}
.exam-warn ul{margin:0;padding-left:18px;font-size:13px;line-height:1.9;color:#6d3a30;}
.exam-code-warn{margin-top:14px;background:#fff4e5;border:1px solid #f0c9a8;border-left:4px solid #e08a2e;border-radius:12px;padding:12px 16px;font-size:13.5px;color:#8a5a17;line-height:1.7;}
.exam-code-warn a{color:#a8430f;font-weight:600;text-decoration:underline;}
/* 届别不一致的重点提示（录入成绩前） */
.exam-year-alert{margin-top:14px;background:#fff6f4;border:1px solid #f3c9c0;border-left:5px solid #c0341f;border-radius:12px;padding:14px 18px;}
.exam-year-alert .eya-h{font-size:14.5px;font-weight:700;color:#A82A1E;line-height:1.7;}
.exam-year-alert .eya-h b{color:#8d1c0c;}
.exam-year-alert ul{margin:10px 0 0;padding-left:20px;}
.exam-year-alert li{font-size:13px;line-height:1.85;color:#7a3a2c;margin-bottom:4px;}
.exam-year-alert li b{color:#A82A1E;}

.exam-form{display:grid;grid-template-columns:repeat(3,1fr);gap:16px 18px;}
.exam-field{display:flex;flex-direction:column;gap:7px;}
.exam-field.full{grid-column:1/-1;}
.exam-field label{font-size:12.5px;color:#6b7688;font-weight:600;}
.exam-field input,.exam-field select{height:42px;border:1px solid #dde5ef;border-radius:10px;padding:0 12px;
  font-size:14px;background:#fbfcfe;color:#16233b;outline:none;}
.exam-field input:focus,.exam-field select:focus{border-color:#17436E;background:#fff;box-shadow:0 0 0 3px rgba(30,95,208,.1);}
.exam-field input:disabled{background:#f2f5f9;color:#8b97a8;}
.exam-seg{display:flex;gap:10px;}
.exam-seg button{flex:1;height:42px;border:1px solid #dde5ef;background:#fbfcfe;border-radius:10px;
  cursor:pointer;font-size:14px;color:#42506b;}
.exam-seg button.on{border-color:#17436E;background:#EAF3F9;color:#17436E;font-weight:700;}
.exam-chips{display:flex;gap:10px;flex-wrap:wrap;}
.exam-chips button{min-width:78px;height:40px;border:1px solid #dde5ef;background:#fbfcfe;border-radius:10px;
  cursor:pointer;font-size:14px;color:#42506b;}
.exam-chips button.on{border-color:#17436E;background:#EAF3F9;color:#17436E;font-weight:700;}
.exam-hint{font-size:12px;color:#8b97a8;}
.exam-hint b{color:#17436E;}
/* 六科逐科录入（选科组合驱动） */
.exam-field select.warn{border-color:#e08a2e;background:#fffaf3;}
.exam-field label .exam-max{font-style:normal;font-weight:400;font-size:11.5px;color:#98a3b3;margin-left:6px;}
.exam-field label .exam-req{color:#d94a3d;font-style:normal;margin-left:2px;}
.exam-subj-h{display:flex;align-items:baseline;gap:10px;margin:20px 0 10px;padding-top:4px;border-top:1px dashed #e6ecf4;}
.exam-subj-h b{font-size:14.5px;color:#16233b;}
.exam-subj-h span{font-size:12.5px;color:#7b8698;}
.exam-score-grid{grid-template-columns:repeat(3,1fr);}
.exam-subj-empty{grid-column:1/-1;padding:16px;border:1px dashed #dbe3ee;border-radius:10px;
  font-size:13px;color:#8b97a8;text-align:center;background:#fafcfe;}
.exam-total-in{font-weight:700;color:#17436E !important;font-size:17px !important;}
.exam-subjects{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px;}
.exam-subj{background:#f7f9fc;border:1px solid #eef2f8;border-radius:11px;padding:11px 13px;}
.exam-subj span{display:block;font-size:12px;color:#7b8698;}
.exam-subj b{display:block;font-size:19px;color:#16233b;margin:2px 0;font-variant-numeric:tabular-nums;}
.exam-subj i{font-size:11px;color:#9aa5b5;font-style:normal;}
.exam-subj.total{background:#EAF3F9;border-color:#cfe0ee;}
.exam-subj.total b{color:#17436E;}
.exam-subjects.empty b{color:#b3bcc9;}
.exam-confirm{display:flex;gap:9px;align-items:flex-start;margin:20px 0 4px;font-size:13px;color:#4a5a72;
  background:#f7f9fc;border:1px dashed #d8e2ef;border-radius:10px;padding:12px 14px;line-height:1.7;cursor:pointer;}
.exam-confirm input{margin-top:3px;width:16px;height:16px;accent-color:#d94a3d;}
.exam-actions{display:flex;gap:12px;margin-top:16px;flex-wrap:wrap;}
.exam-actions .btn{height:42px;line-height:40px;padding:0 22px;border-radius:10px;}

.exam-kv{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:6px;}
.exam-kv-item{background:#f7f9fc;border:1px solid #eef2f8;border-radius:11px;padding:12px 14px;}
.exam-kv-item span{display:block;font-size:12px;color:#7b8698;}
.exam-kv-item b{display:block;font-size:16px;color:#14456B;margin-top:4px;}
.exam-lock-head{display:flex;gap:16px;align-items:center;margin-bottom:16px;}
.exam-lock-icon{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;font-size:24px;
  background:#e8f6f0;border:1px solid #cdeade;}
.exam-lock-head h3{margin:0 0 5px;font-size:16.5px;color:#14456B;}
.exam-lock-head p{margin:0;font-size:12.5px;color:#7b8698;}
.exam-off{display:flex;gap:16px;align-items:flex-start;margin-bottom:14px;}
.exam-off-icon{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;font-size:24px;
  background:#f0f3f8;border:1px solid #e2e8f1;flex:0 0 auto;}
.exam-off h3{margin:0 0 6px;font-size:16px;color:#2c3a52;}
.exam-off p{margin:0 0 6px;font-size:13px;color:#5a6a85;line-height:1.8;}
.exam-off .exam-muted{color:#8b97a8;font-size:12.5px;}
.exam-timeline{margin-top:6px;}
.exam-tl-item{display:flex;gap:12px;padding:10px 0;border-bottom:1px dashed #eef2f8;}
.exam-tl-item:last-child{border-bottom:0;}
.exam-tl-item i{width:9px;height:9px;border-radius:50%;background:#17436E;margin-top:6px;flex:0 0 auto;}
.exam-tl-item b{font-size:13.5px;color:#22304a;}
.exam-tl-item span{display:block;font-size:12px;color:#8b97a8;margin-top:2px;}
.exam-tl-item em{display:block;font-style:normal;font-size:12.5px;color:#17436E;margin-top:3px;}

@media (max-width:900px){
  .exam-form{grid-template-columns:1fr 1fr;}
  .exam-score-grid{grid-template-columns:1fr 1fr;}
  .exam-subjects{grid-template-columns:repeat(3,1fr);}
  .exam-kv{grid-template-columns:1fr 1fr;}
  .exam-hero{padding:20px;}
  .exam-hero-main h2{font-size:20px;}
}
@media (max-width:560px){
  .exam-form{grid-template-columns:1fr;}
  .exam-score-grid{grid-template-columns:1fr 1fr;}
  .exam-subjects{grid-template-columns:1fr 1fr;}
  .exam-kv{grid-template-columns:1fr;}
  .exam-hero-side{width:100%;}
  .exam-kpi{flex:1;}
  #examBanner{font-size:12px;padding:8px 12px;gap:8px;}
  #examBanner span{display:none;}
}

/* 模拟成绩 4 项一行 + 大号按钮 */
.exam-kv.one-row{grid-template-columns:repeat(4,1fr);}
.exam-kv.one-row .exam-kv-item b{font-size:19px;}
.exam-actions .btn.xl{height:52px;line-height:50px;padding:0 34px;font-size:16.5px;font-weight:700;
  border-radius:12px;box-shadow:0 10px 26px -12px rgba(30,95,208,.55);}
.exam-actions .btn.xl:hover{transform:translateY(-1px);}
@media (max-width:900px){
  .exam-kv.one-row{grid-template-columns:repeat(2,1fr);}
  .exam-actions .btn.xl{height:48px;line-height:46px;width:100%;text-align:center;padding:0;}
}

/* ============ 第 26 轮：选科组合详情页 ============ */
/* 三张信息卡（适合谁 / 限报提示 / 可报方向）：与页面标题同一套蓝色主题 */
.sx-info-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-bottom: 18px; }
.sx-info-card {
  background: linear-gradient(180deg, #f3f8ff 0%, #ffffff 70%);
  border: 1px solid #d6e6ff; border-radius: 12px; padding: 16px 18px 14px; position: relative; overflow: hidden;
}
.sx-info-card::before {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
  background: linear-gradient(180deg, #1D5C8A, #2E6F9E);
}
.sx-ic-h { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.sx-ic-h i {
  font-style: normal; width: 30px; height: 30px; border-radius: 9px; flex: none;
  display: inline-flex; align-items: center; justify-content: center; font-size: 15px;
  background: linear-gradient(135deg, #1D5C8A, #2E6F9E); color: #fff;
  box-shadow: 0 3px 8px rgba(22, 119, 255, .28);
}
.sx-ic-h b { font-size: 15px; color: #14477e; letter-spacing: -.2px; }
.sx-info-card p { margin: 0; font-size: 13.5px; line-height: 1.85; color: #3a4a63; }
.sx-info-card.warn { background: linear-gradient(180deg, #fff8ef 0%, #ffffff 70%); border-color: #ffe0bd; }
.sx-info-card.warn::before { background: linear-gradient(180deg, #ff9436, #ffb567); }
.sx-info-card.warn .sx-ic-h i { background: linear-gradient(135deg, #ff9436, #ffb567); box-shadow: 0 3px 8px rgba(255, 148, 54, .28); }
.sx-info-card.warn .sx-ic-h b { color: #8a4d12; }
@media (max-width: 900px) { .sx-info-grid { grid-template-columns: 1fr; gap: 10px; } }

/* 可报专业 chips：可点击跳专业详情 */
.chip.chip-major { cursor: pointer; transition: .15s; }
.chip.chip-major:hover {
  border-color: #1D5C8A; color: #1D5C8A; background: #EAF3F9; transform: translateY(-1px);
  box-shadow: 0 3px 10px rgba(22, 119, 255, .14);
}
.chip.chip-major::after { content: '›'; margin-left: 5px; color: #b9c6dd; font-weight: 700; }
.chip.chip-major:hover::after { color: #1D5C8A; }

/* —— 志愿课堂分类 tab 数量 —— */
.tabs button .tab-n { font-style: normal; font-size: 11px; margin-left: 5px; opacity: .65; }

/* —— VIP / SVIP 角标 —— */
.video-card .thumb .vip.gold { background: linear-gradient(135deg, #f5a524, #e08b00); }

/* —— 会员三级等级（普通用户 / VIP / SVIP） —— */
.tier-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 4px; }
.tier-card {
  position: relative; background: #fff; border: 1px solid var(--border); border-radius: 12px;
  padding: 14px 16px 15px; border-top: 3px solid var(--tc, #8a94a6);
}
.tier-card.on { background: #F4F9FC; box-shadow: 0 8px 20px rgba(22, 119, 255, .1); }@media (max-width: 760px) { .tier-strip { grid-template-columns: 1fr; } }

/* —— 套餐分组标题已下线：卡片自带等级标识，统一一排 3 张 —— */

/* ---------- 院校详情：重点学科大数字 / 食宿明细 ---------- */
.kc-hero-num { display: flex; align-items: baseline; gap: 10px; margin: 6px 0 14px; }
.kc-hero-num b { font-size: 44px; color: #1D5C8A; font-weight: 700; line-height: 1; }
.kc-hero-num span { font-size: 14.5px; color: #5a6478; }
.kc-fac-item { padding: 12px 0; border-top: 1px dashed #eef1f6; }
.kc-fac-item:first-of-type { border-top: none; padding-top: 0; }
.kc-fac-item b { display: inline-flex; align-items: center; gap: 6px; font-size: 14.5px; color: #303133; margin-bottom: 6px; }
.kc-fac-item p { margin: 0; font-size: 13.5px; color: #5a6478; line-height: 1.75; }

/* ---------- 等效分换算 ---------- */
.eq-card { max-width: 980px; margin: 24px auto; background: #fff; border: 1px solid #e6ebf2; border-radius: 14px; padding: 26px 30px; box-shadow: 0 4px 18px rgba(30,60,120,.06); }
.eq-form { display: flex; gap: 14px; align-items: flex-end; flex-wrap: wrap; }
.eq-item { flex: 1; min-width: 150px; }
.eq-item label { display: block; font-size: 13px; color: #5a6478; margin-bottom: 6px; }
.eq-item select, .eq-item input { width: 100%; height: 40px; border: 1px solid #d8e0ea; border-radius: 8px; padding: 0 12px; font-size: 14.5px; background: #fff; }
.eq-btn { flex: 0 0 auto; }
.eq-res { display: flex; gap: 14px; align-items: stretch; margin-top: 20px; flex-wrap: wrap; }
.eq-res-item { flex: 1; min-width: 130px; background: #f5f8fc; border-radius: 12px; padding: 18px 12px; text-align: center; display: flex; flex-direction: column; justify-content: center; }
.eq-res-item b { font-size: 26px; color: #26324a; line-height: 1.2; }
.eq-res-item span { font-size: 12.5px; color: #7a8699; margin-top: 6px; }
.eq-res-item.main { background: linear-gradient(135deg,#1D5C8A,#17436E); }
.eq-res-item.main b { color: #fff; font-size: 32px; }
.eq-res-item.main span { color: rgba(255,255,255,.85); }
.eq-go { flex-basis: 100%; text-align: center; margin-top: 4px; }
.eq-line { margin-top: 14px; font-size: 13px; color: #7a8699; }
.eq-rev { gap: 10px; }
.eq-rev-item { background: #f5f8fc; border-radius: 12px; padding: 14px 10px; text-align: center; }
.eq-rev-item b { font-size: 24px; color: #1D5C8A; }
.eq-rev-item span { display: block; font-size: 12.5px; color: #7a8699; margin-top: 4px; }
/* 换算链路 */
.eq-badge { display: inline-block; margin-top: 14px; font-size: 12px; padding: 3px 10px; border-radius: 20px; background: #EAF3F9; color: #1D5C8A; border: 1px solid #d6e6ff; }
.eq-chain { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
.eq-step { flex: 1; min-width: 150px; background: #fbfcfe; border: 1px dashed #dfe7f2; border-radius: 10px; padding: 10px 12px; display: flex; flex-direction: column; gap: 3px; }
.eq-step span { font-size: 12px; color: #5a6478; }
.eq-step b { font-size: 19px; color: #14456B; font-family: BEBAS, 'Segoe UI', sans-serif; }
.eq-step i { font-size: 11.5px; color: #98a3b3; font-style: normal; }
.eq-online { margin-top: 12px; padding: 10px 14px; border-radius: 9px; background: #f0f9f2; border: 1px solid #cdead6; color: #24663c; font-size: 13px; }
.eq-warn { margin-top: 12px; padding: 10px 14px; border-radius: 9px; background: #fff8e8; border: 1px solid #f6e2b8; color: #8a5b06; font-size: 13px; }

/* ================= 志愿表一键体检（第 40 轮） ================= */
.vb-tool-check { border-color: #cfe4ff; background: linear-gradient(180deg,#F4F9FC,#eef6ff); color: #1D5C8A; font-weight: 600; }
.vb-tool-check:hover { border-color: #1D5C8A; background: #eaf3ff; }

.vb-ck-mask { position: fixed; inset: 0; background: rgba(16,26,46,.42); backdrop-filter: blur(2px);
  z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 24px; animation: vbCkFade .16s ease; }
@keyframes vbCkFade { from { opacity: 0 } to { opacity: 1 } }
.vb-ck-panel { width: 100%; max-width: 720px; max-height: 88vh; display: flex; flex-direction: column;
  background: #fff; border-radius: 16px; box-shadow: 0 30px 80px -20px rgba(10,25,60,.45); overflow: hidden;
  animation: vbCkUp .2s cubic-bezier(.2,.9,.3,1); }
@keyframes vbCkUp { from { transform: translateY(14px); opacity: .6 } to { transform: none; opacity: 1 } }
.vb-ck-loading { padding: 60px; text-align: center; color: #7b8798; font-size: 13.5px; }
.vb-ck-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 22px;
  border-bottom: 1px solid #eef2f8; }
.vb-ck-head b { font-size: 16px; color: #14456B; }
.vb-ck-head span { display: block; font-size: 12px; color: #8b97a8; margin-top: 3px; }
.vb-ck-close { cursor: pointer; color: #97a3b6; font-size: 15px; padding: 4px 6px; }
.vb-ck-close:hover { color: #303133; }
.vb-ck-top { display: flex; gap: 20px; align-items: center; padding: 20px 22px; background: linear-gradient(180deg,#f8fbff,#fff); }
.vb-ck-ring { width: 96px; height: 96px; border-radius: 50%; flex: none; display: flex; flex-direction: column;
  align-items: center; justify-content: center; position: relative;
  background: conic-gradient(var(--c) calc(var(--p) * 1%), #edf1f7 0); }
.vb-ck-ring::after { content: ''; position: absolute; inset: 9px; border-radius: 50%; background: #fff; }
.vb-ck-ring b { position: relative; z-index: 1; font-size: 27px; font-weight: 800; color: #14456B; line-height: 1; }
.vb-ck-ring span { position: relative; z-index: 1; font-size: 11px; color: #8b97a8; margin-top: 2px; }
.vb-ck-ring.good { --c: #00b578; } .vb-ck-ring.ok { --c: #1D5C8A; }
.vb-ck-ring.warn { --c: #ff8800; } .vb-ck-ring.bad { --c: #f53f3f; }
.vb-ck-top-r { flex: 1; min-width: 0; }
.vb-ck-grade { font-size: 18px; font-weight: 800; }
.vb-ck-grade.good { color: #00a06a; } .vb-ck-grade.ok { color: #1D5C8A; }
.vb-ck-grade.warn { color: #e07800; } .vb-ck-grade.bad { color: #d93a2b; }
.vb-ck-summary { font-size: 13px; color: #5a6b85; line-height: 1.75; margin-top: 6px; }
.vb-ck-stats { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 10px; font-size: 12.5px; color: #7b8798; }
.vb-ck-stats b { color: #14456B; font-size: 13.5px; }
.vb-ck-stats .c-chong b { color: #f53f3f; } .vb-ck-stats .c-wen b { color: #1d6fd6; } .vb-ck-stats .c-bao b { color: #00b578; }
.vb-ck-body { flex: 1; overflow-y: auto; padding: 6px 22px 16px; }
.vb-ck-item { display: flex; gap: 12px; padding: 14px 0; border-bottom: 1px dashed #eef2f8; }
.vb-ck-item:last-child { border-bottom: 0; }
.vb-ck-tag { flex: none; height: 22px; line-height: 22px; padding: 0 9px; border-radius: 6px; font-size: 11.5px; font-weight: 700; }
.vb-ck-tag.high { background: #fdeceb; color: #d93a2b; }
.vb-ck-tag.mid { background: #fff4e6; color: #c96a00; }
.vb-ck-tag.low { background: #EAF3F9; color: #17436E; }
.vb-ck-tag.ok { background: #e8f8f1; color: #00875a; }
.vb-ck-item-b { flex: 1; min-width: 0; }
.vb-ck-item-t { font-size: 13.5px; font-weight: 700; color: #1f2d3d; }
.vb-ck-item-d { font-size: 12.5px; color: #6b7688; line-height: 1.75; margin-top: 4px; }
.vb-ck-samples { margin: 6px 0 0; padding-left: 16px; font-size: 12px; color: #8b97a8; line-height: 1.7; }
.vb-ck-advice { margin-top: 6px; font-size: 12.5px; color: #17436E; background: #f4f8ff; border-radius: 8px; padding: 7px 10px; line-height: 1.7; }
.vb-ck-foot { display: flex; align-items: center; gap: 14px; padding: 13px 22px; border-top: 1px solid #eef2f8; background: #fbfcfe; }
.vb-ck-tip { flex: 1; font-size: 11.5px; color: #9aa6b8; line-height: 1.6; }
@media (max-width: 560px) {
  .vb-ck-panel { max-height: 92vh; }
  .vb-ck-top { flex-direction: column; text-align: center; gap: 12px; }
  .vb-ck-stats { justify-content: center; }
}

/* ================= 收藏按钮（第 40 轮） ================= */
.fav-btn {
  display: inline-flex; align-items: center; gap: 4px; height: 30px; padding: 0 12px;
  border: 1px solid #dbe5f2; border-radius: 8px; background: #fff; color: #5a6b85;
  font-size: 12.5px; font-weight: 600; cursor: pointer; transition: .15s; white-space: nowrap;
}
.fav-btn:hover { border-color: #ffc75a; color: #d98a00; background: #fffdf4; }
.fav-btn.on { background: #fff8e1; border-color: #ffcc66; color: #d98a00; }
.kb-fav { flex: none; margin-left: 10px; }
.kc-fav { height: 32px; font-size: 13px; }
.mj-fav { height: 32px; font-size: 13px; }
@media (max-width: 720px) {
  .kb-fav { margin-left: 0; }
  .kb-uni-card { flex-wrap: wrap; }
}

/* ================= 智选志愿 · 体检受限（第 41 轮） ================= */
.vb-rstbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  margin:0 0 10px;padding:10px 14px;border:1px solid #f6dcd2;border-radius:11px;
  background:linear-gradient(135deg,#fff7f3,#fffdfb);}
.vb-rstbar.off{border-color:#e6ecf5;background:#f8fafd;}
.vb-rstbar.hard{border-color:#f3c9c3;background:linear-gradient(135deg,#fff1ef,#fff8f6);}
.vb-rstbar.hard .vb-rstbar-l b{color:#b3261e;}
.vb-rstbar-l{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;color:#8a5a48;min-width:0;}
.vb-rstbar-l i{font-style:normal;font-size:14px;}
.vb-rstbar-l b{color:#c0392b;font-size:13px;}
.vb-rstbar.off .vb-rstbar-l b{color:#5a6b85;}
.vb-rstbar-l span{color:#96705f;}
.vb-rstbar-t{font-size:12.5px;font-weight:600;color:#17436E;cursor:pointer;white-space:nowrap;
  border:1px solid #cfe0ff;background:#fff;border-radius:8px;padding:4px 11px;}
.vb-rstbar-t:hover{background:#EAF3F9;}
/* 选科要求过滤条（与体检条同一套骨架，配色走藏青） */
.vb-rstbar.subj{border-color:#cfe0ff;background:linear-gradient(135deg,#f2f8ff,#fbfdff);}
.vb-rstbar.subj .vb-rstbar-l{color:#4a6285;}
.vb-rstbar.subj .vb-rstbar-l b{color:#17436E;}
.vb-rstbar.subj .vb-rstbar-l span{color:#6b829f;}
.vb-rstbar.subj.off{border-color:#e6ecf5;background:#f8fafd;}
.vb-rst{font-style:normal;font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:5px;margin-left:7px;vertical-align:1px;white-space:nowrap;}
.vb-rst.lv-major{background:#f1f3f6;color:#9aa2b1;}
.vb-rst.lv-advise{background:#fdeceb;color:#d92d20;}
.vb-rst.lv-school{background:#eceef2;color:#8d95a3;}
.vb-rst-reason{font-size:11px;color:#96a0b0;margin-top:3px;line-height:1.5;}
.vb-rst-reason.red{color:#d9736a;}
/* 禁报/不可填报 同时命中 3x 不宜就读 时的补充提示（琥珀色，区别于硬禁报的灰、纯不宜就读的红） */
.vb-rst-reason.advise-note{color:#92610a;background:#fff6e9;border:1px solid #ffe2b3;border-radius:5px;padding:2px 7px;margin-top:4px;display:inline-block;font-weight:600;}
/* 专业名三色：1x 灰 / 2x 浅灰 / 3x 红 */
.vb-mn-school{color:#8d95a3;}
.vb-mn-major{color:#b3b9c5;}
.vb-mn-advise{color:#e03131;font-weight:600;}
.vb-major-names span.vb-mn-school,.vb-major-names span.vb-mn-major,.vb-major-names span.vb-mn-advise{margin-right:6px;}
tr.vb-row-off .vb-c-prob .vb-pct{color:#b9bfc9;}
@media (max-width:720px){ .vb-rstbar{padding:9px 11px;} .vb-rstbar-l{font-size:12px;} }

/* 1x 代码：全校范围不可填报 —— 智选志愿整体阻断面板 */
.vb-hard{max-width:640px;margin:26px auto 40px;padding:26px 26px 22px;text-align:center;
  border:1px solid #f5d3cd;border-radius:16px;background:linear-gradient(180deg,#fff8f7,#fff);
  box-shadow:0 8px 28px rgba(192,57,43,.07);}
.vb-hard-ico{width:52px;height:52px;margin:0 auto 14px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:#fdeceb;color:#c0392b;font-size:27px;font-weight:800;line-height:1;font-family:Georgia,serif;}
.vb-hard h3{margin:0 0 8px;font-size:17px;font-weight:700;color:#8e2b21;letter-spacing:.2px;}
.vb-hard-p{margin:0 auto 16px;font-size:13px;line-height:1.75;color:#8a5a48;max-width:520px;text-align:left;}
.vb-hard-list{display:flex;flex-direction:column;gap:8px;margin:0 0 14px;text-align:left;}
.vb-hard-item{padding:10px 13px;border:1px solid #f3ddd8;border-radius:10px;background:#fff;}
.vb-hard-item b{display:inline-block;font-size:12px;font-weight:700;color:#c0392b;background:#fdeceb;
  border-radius:5px;padding:1px 7px;margin-right:8px;}
.vb-hard-item span{font-size:13px;font-weight:600;color:#40485a;}
.vb-hard-item p{margin:5px 0 0;font-size:12px;line-height:1.6;color:#8b93a5;}
.vb-hard-tip{text-align:left;font-size:12px;line-height:1.7;color:#7d8598;background:#f7f9fc;
  border-radius:9px;padding:10px 13px;margin:0 0 16px;}
.vb-hard-act{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;}
@media (max-width:720px){ .vb-hard{margin:14px 0 26px;padding:20px 16px 18px;border-radius:13px;} .vb-hard h3{font-size:15.5px;} .vb-hard-p{font-size:12.5px;} }

/* 志愿表体检标记：3x 红色问号（可填但需知情）/ 2x 禁报 / 1x 不可填 */
.vb-qmark{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:6px;
  border-radius:50%;background:#e03131;color:#fff;font-style:normal;font-size:11px;font-weight:700;
  line-height:1;vertical-align:1px;cursor:help;box-shadow:0 1px 3px rgba(224,49,49,.35);
  animation:vbQmarkPulse 2.4s ease-in-out infinite;}
.vb-qmark.solid{background:#b3261e;animation:none;font-size:11.5px;}
@keyframes vbQmarkPulse{0%,100%{box-shadow:0 1px 3px rgba(224,49,49,.35);}50%{box-shadow:0 0 0 4px rgba(224,49,49,.13);}}
@media (prefers-reduced-motion:reduce){ .vb-qmark{animation:none;} }

/* 推荐行：2x 禁报专业按钮直接置灰不可点（关闭自动剔除、查看全量时才出现） */
.vb-add-vol.banned,.vb-add-vol.banned:hover{background:#f4f5f7;border-color:#e3e6eb;color:#a8aeb9;
  cursor:not-allowed;box-shadow:none;}
/* 志愿表顶部：不宜就读 / 禁报 汇总条 */
.vb-d-rst{display:flex;flex-direction:column;gap:7px;margin:0 0 10px;padding:10px 13px;
  border:1px solid #f3ddd8;border-radius:10px;background:#fff8f6;font-size:12.5px;line-height:1.65;color:#8a5a48;}
.vb-d-rst>span{display:flex;align-items:flex-start;gap:7px;}
.vb-d-rst b{color:#c0392b;}
.vb-d-rst .l{flex:0 0 16px;width:16px;height:16px;margin-top:1px;border-radius:50%;background:#e03131;color:#fff;
  font-size:11px;font-weight:700;line-height:16px;text-align:center;font-style:normal;}
.vb-d-rst .l.ban{background:#b3261e;}
@media (max-width:720px){ .vb-d-rst{font-size:12px;padding:9px 11px;} }

/* ---------- 会员系统：身份条 / 权益概览 / 说明 ---------- */
.member-status{margin-top:14px;display:inline-block;padding:9px 18px;border-radius:999px;
  background:rgba(255,255,255,.14);color:#FBE3DE;font-size:13.5px;}
/* 已开通：白底 + 系统深蓝字，落在蓝色 hero 上更干净（原来是大金渐变，与全站蓝色体系不搭） */
.member-status.on{background:#fff;color:var(--navy,#17436E);font-weight:700;box-shadow:0 4px 12px rgba(10,40,70,.14);}
.member-status b{letter-spacing:1px;}
.member-brief{font-size:12.5px;color:#8a94a6;margin:-6px 0 0;line-height:1.7;}
.member-note{margin-top:22px;font-size:12.5px;line-height:1.8;color:#8a94a6;}

/* —— 客服中心（#/service） —— */
.cs-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:18px;}
.cs-card{background:#fff;border:1px solid #e7ecf3;border-radius:14px;padding:22px 18px;text-align:center;}
.cs-card .cs-ico{font-size:30px;line-height:1;}
.cs-card .cs-t{margin-top:10px;font-size:15px;font-weight:700;color:var(--navy);}
.cs-card .cs-v{margin-top:8px;font-size:20px;font-weight:800;color:var(--blue);letter-spacing:.5px;}
.cs-card .cs-s{margin-top:4px;font-size:12.5px;color:var(--muted);}
.cs-block{background:#fff;border:1px solid #e7ecf3;border-radius:14px;padding:22px 24px;margin-top:18px;}
.cs-block h2{font-size:17px;color:var(--navy);margin:0 0 12px;}
.cs-list{list-style:none;margin:0;padding:0;display:grid;gap:10px;}
.cs-list li{font-size:14px;color:#3a465e;line-height:1.7;padding-left:18px;position:relative;}
.cs-list li::before{content:'';position:absolute;left:0;top:9px;width:7px;height:7px;border-radius:50%;background:var(--blue);}
.cs-tip{margin-top:18px;font-size:13px;color:#8a94a6;line-height:1.8;background:#f6f8fb;border:1px solid #e7ecf3;border-radius:12px;padding:14px 18px;}
@media (max-width:720px){.cs-grid{grid-template-columns:1fr;}}
/* 兑换码区块已下线：兑换统一在个人中心 /ucenter/ →「兑换会员」 */

/* ================= 春招频道（重庆高职分类考试） ================= */
.nav-spring { color: var(--blue) !important; font-weight: 700; position: relative; }
.nav-spring.active { color: #fff !important; }
.nav-spring::after { content: 'NEW'; position: absolute; top: -2px; right: -20px; font-size: 8px; background: linear-gradient(135deg, var(--brand-teal), var(--brand-navy)); color: #fff; padding: 1px 4px; border-radius: 6px; font-weight: 700; }
.spring-page { --sr: var(--blue); --srd: #14456B; --srgold: var(--gold); }
/* 春招频道比主站宽一档：志愿表是 6 列矩阵，1180 太挤 */
/* 4 个页签统一顶距：头部浅蓝色板块与下方卡片之间只留 8px（原来 54/57px）。
   间距由 .page 的 padding-top 单独控制，各页不再各带 margin，所以 4 个页面完全一致。
   注意：:not(.sph-bar) 排除顶部导航条本身，让它保留自己对称的内边距（上下各 11px），4 个入口才能上下居中。 */
.spring-page .page { max-width: 1360px; }
.spring-page .page:not(.sph-bar) { padding-top: 8px; }
/* —— 顶部时间线：一条从左到右的水平轴，节点圆点串在线上，日期在上 / 事项在下 —— */
.sph { background: linear-gradient(180deg, #f9fcff 0%, #eef6fd 100%); border-bottom: 1px solid #e3eef8; margin-bottom: 0; }
/* 覆盖主站 .page 的 26px/60px 内边距，时间线只占一条窄带，不再顶掉首屏 */
.sph-bar { display: flex; align-items: center; gap: 22px; padding: 11px 20px; }
/* 频道导航常驻头部：4 个入口排成 2×2 —— 第一行「智能填春招 / 院校库」，第二行「一分一段表 / 控制线」。
   两行按钮 36×2 + 间距 6 = 78px，比右侧时间线（73px）略高 5px；.sph-bar 垂直居中，时间线自动居中不受影响。
   按钮组整体加宽到 332px，让 4 个入口更饱满、更醒目。 */
.sph-tabs { flex: none; width: 332px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.sph-tab {
  display: inline-flex; align-items: center; justify-content: center; height: 36px; padding: 0 12px;
  border: 1px solid #d6e4f1; border-radius: 10px; background: #fff;
  color: #3f5b78; font-size: 18px; font-weight: 700; line-height: 1; text-decoration: none;
  white-space: nowrap; transition: .16s; box-shadow: 0 1px 2px rgba(20,69,107,.05);
}
.sph-tab:hover { border-color: #a8cbe4; color: #1D5C8A; background: #f5fafe; transform: translateY(-1px); box-shadow: 0 6px 14px rgba(20,69,107,.12); }
.sph-tab.on {
  color: #fff; border-color: transparent;
  background: linear-gradient(135deg, #24699b, #1D5C8A);
  box-shadow: 0 5px 14px -4px rgba(29,92,138,.55);
}
.sph-tab.on:hover { box-shadow: 0 7px 18px -4px rgba(29,92,138,.6); }
/* 时间线靠右收紧：导航由单行 4 个变成 2×2 后横向省下约 170px，全部让给时间线，
   单节点从 172px 放宽到 200px 以上（宽屏正好铺满导航右侧的全部空间），「网上填报志愿·线上咨询会」这类长文案不再被省略号截断。 */
.sph-tl { --sph-cols: 5; flex: 1 1 auto; max-width: calc(var(--sph-cols) * 210px); margin-left: auto; min-width: 0; display: flex; align-items: flex-start; overflow-x: auto; scrollbar-width: none; }
.sph-tl::-webkit-scrollbar { height: 0; }
.sph-node { box-sizing: border-box; position: relative; flex: 1 1 0; min-width: 120px; display: flex; flex-direction: column; align-items: center; text-align: center; padding: 0 8px; }
/* 连接线：从本节点圆心延伸到下一个节点圆心，末节点收一段金色渐变 */
.sph-node::after { content: ''; position: absolute; top: 35px; left: 50%; width: 100%; height: 2px; z-index: 0; background: linear-gradient(90deg, #bcd8ef, #8fb8da); }
.sph-node:last-child::after { width: 50%; background: linear-gradient(90deg, #8fb8da, #e9bf6d); }
.sph-date, .sph-dot, .sph-ev { position: relative; z-index: 1; }
.sph-date { height: 20px; line-height: 20px; font-size: 13px; font-weight: 800; color: #14456B; white-space: nowrap; transition: .16s; }
.sph-dot { margin-top: 4px; width: 24px; height: 24px; border: 2px solid #2f7bb0; border-radius: 50%; background: #fff; box-sizing: border-box; display: flex; align-items: center; justify-content: center; font-size: 11.5px; font-weight: 800; color: #1D5C8A; box-shadow: 0 0 0 4px #f4f9fd; transition: .16s; }
.sph-node:last-child .sph-dot { border-color: #e5b353; background: linear-gradient(135deg, #ffdf95, #f5c45a); color: #14456B; }
.sph-ev { margin-top: 7px; max-width: 100%; font-size: 12px; line-height: 18px; color: #64748b; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: .16s; }
.sph-node:hover .sph-date { color: #1D5C8A; }
.sph-node:hover .sph-dot { transform: translateY(-2px) scale(1.08); box-shadow: 0 0 0 5px #e8f3fb, 0 4px 10px rgba(29,92,138,.18); }
.sph-node:hover .sph-ev { color: #35516e; }
@media (max-width: 1220px) {
  .sph-bar { flex-direction: column; align-items: stretch; gap: 10px; }
  /* 窄屏导航仍保持 2×2，但别让两格在 1200px 宽的平板里被拉到 400px 以上，封顶 352px 后靠左 */
  .sph-tabs { width: 100%; max-width: 352px; }
  .sph-tl { max-width: none; margin-left: 0; }
  .sph-node { flex: 1 1 0; min-width: 120px; }
}
/* ===== 院校库 / 控制线 / 一分一段表 页面 ===== */
.spring-filter { display: flex; gap: 10px; align-items: center; margin-bottom: 14px; flex-wrap: wrap; }
.spring-filter select, .spring-filter input { padding: 8px 12px; border: 1px solid #d8e0ea; border-radius: 8px; font-size: 13.5px; }
.spring-filter input { width: 210px; }
.spring-note { font-size: 12px; color: #8a94a6; }
.spring-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.su-card { border: 1px solid #e3e8f0; border-radius: 12px; padding: 16px; cursor: pointer; background: #fff; transition: .15s; }
.su-card:hover { border-color: var(--sr); box-shadow: 0 6px 18px rgba(29,92,138,.12); transform: translateY(-2px); }
.su-head { display: flex; gap: 12px; align-items: center; margin-bottom: 10px; }
.su-mark { width: 44px; height: 44px; border-radius: 10px; background: linear-gradient(135deg, #14456B, var(--blue)); color: #fff; font-size: 16px; font-weight: 800; display: flex; align-items: center; justify-content: center; flex: none; }
.su-name b { font-size: 15px; display: block; }
.su-name span { font-size: 11.5px; color: #9aa5b8; }
.su-tags { display: flex; gap: 5px; flex-wrap: wrap; }
.su-tags i { font-style: normal; font-size: 11px; padding: 2px 8px; border-radius: 4px; background: #f1f5fa; color: #5b6577; }
.su-tags i.hot { background: #eaf3fb; color: #1D5C8A; font-weight: 600; }
.su-tags i.gold { background: #fdf6e7; color: #9a6b0a; font-weight: 600; }
.su-rate { margin-top: 10px; font-size: 12px; color: #6b7688; }
.su-rate b { color: var(--srgold); }
.spring-table { width: 100%; border-collapse: collapse; font-size: 13.5px; background: #fff; }
.spring-table th { background: #eaf3fb; color: #14456B; padding: 10px 12px; text-align: left; font-size: 12.5px; white-space: nowrap; }
.spring-table td { padding: 10px 12px; border-bottom: 1px solid #eef2f7; }
.spring-table td.num b { color: var(--sr); font-size: 14px; }
.spring-table td.rm { color: #9aa5b8; font-size: 12px; }
.spring-h3 { margin: 20px 0 10px; font-size: 16px; color: #14456B; border-left: 4px solid var(--sr); padding-left: 10px; }
.year-btn { padding: 7px 16px; border: 1px solid #d8e0ea; background: #fff; border-radius: 8px; cursor: pointer; font-size: 13px; margin-right: 6px; }
.year-btn.on { background: var(--sr); border-color: var(--sr); color: #fff; font-weight: 700; }
.spring-pager { display: flex; gap: 6px; margin-top: 14px; align-items: center; }
.spring-pager button { width: 30px; height: 30px; border-radius: 6px; border: 1px solid #d8e0ea; background: #fff; cursor: pointer; }
.spring-pager button.on { background: var(--sr); color: #fff; border-color: var(--sr); }
.spring-pager .pn { font-size: 12px; color: #9aa5b8; margin-left: 8px; }
.spring-match-box { background: linear-gradient(135deg, #f4f9fd, #eaf3fb); border: 1px solid #dbe7f5; border-radius: 14px; padding: 22px; }@media (max-width: 860px) {}.sd-tags { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
.sd-tags i { font-style: normal; font-size: 11.5px; padding: 3px 10px; border-radius: 4px; background: #eaf3fb; color: #1D5C8A; }
.sd-intro { font-size: 13.5px; line-height: 1.8; color: #3f4a5a; }
.sd-rate { font-size: 13px; color: #6b7688; }
.sd-rate b { color: var(--srgold, #d4a63c); }
.sd-table { width: 100%; border-collapse: collapse; font-size: 12.5px; margin-top: 8px; }
.sd-table th { background: #eaf3fb; color: #14456B; padding: 8px 10px; text-align: left; }
.sd-table td { padding: 8px 10px; border-bottom: 1px solid #eef2f7; }
.sd-more { font-size: 12px; color: #b3bcc9; margin-top: 8px; }
.sd-article pre { white-space: pre-wrap; font-family: inherit; font-size: 13.5px; line-height: 1.9; color: #3f4a5a; margin: 0; }
.sd-art-meta { font-size: 12px; color: #1D5C8A; background: #eaf3fb; display: inline-block; padding: 3px 10px; border-radius: 4px; margin-bottom: 14px; }
.fl { font-size: 13px; color: #6b7688; }
@media (max-width: 768px) {
  .spring-grid, .sg-list { grid-template-columns: 1fr; }
}

/* ================= 春招院校详情页（对齐查院校版式） ================= */
.spu-hero{position:relative;background-size:cover;background-position:center;background-color:#14456B;}
.spu-hero-mask{position:absolute;inset:0;background:linear-gradient(100deg,rgba(8,30,54,.88) 0%,rgba(8,30,54,.66) 52%,rgba(8,30,54,.32) 100%);}
/* 与夏季「查院校」白卡同款留白：头部整块向右内缩，不再贴着横幅左边缘 */
.spu-hero-inner{position:relative;z-index:1;padding:26px 26px 30px;}
.spu-back{display:inline-block;color:rgba(255,255,255,.9);font-size:13px;text-decoration:none;margin-bottom:16px;padding:5px 14px;border:1px solid rgba(255,255,255,.35);border-radius:20px;background:rgba(255,255,255,.1);letter-spacing:.2px;}
.spu-back:hover{background:rgba(255,255,255,.2);color:#fff;}
.spu-head{position:relative;display:flex;align-items:center;gap:22px;width:fit-content;max-width:100%;padding:20px 26px 20px 28px;border-radius:14px;border:1px solid rgba(255,255,255,.18);background:linear-gradient(105deg,rgba(255,255,255,.16),rgba(255,255,255,.05));box-shadow:0 12px 32px rgba(4,20,40,.22);backdrop-filter:blur(3px);}
.spu-head::before{content:"";position:absolute;left:0;top:20px;bottom:20px;width:3px;border-radius:0 3px 3px 0;background:var(--gold);}
.spu-head .kc-head{flex:0 1 auto;min-width:0;padding-right:0;}
.spu-head .kc-name{color:#fff;font-size:27px;font-weight:800;line-height:1.28;letter-spacing:.4px;text-shadow:0 1px 10px rgba(0,0,0,.25);}
.spu-head .kc-meta{color:rgba(255,255,255,.88);font-size:13px;margin-top:8px;letter-spacing:.3px;}
.spu-head .kc-tags{margin-top:12px;gap:8px;}
.spu-head .kb-tag{padding:3px 11px;border-radius:20px;font-size:12px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.32);color:#fff;}
.spu-head .kb-tag.hot{background:linear-gradient(135deg,#E8B84B,#d4941e);border-color:transparent;color:#5a3a00;font-weight:700;}
.spu-logo-wrap{flex:none;width:92px;height:92px;border-radius:18px;padding:10px;display:flex;align-items:center;justify-content:center;background:#fff;box-shadow:0 6px 20px rgba(0,0,0,.25);}
.spu-logo-wrap .kc-logo{width:100%;height:100%;object-fit:contain;display:block;}
.spu-logo-holder{font-size:26px;font-weight:800;color:var(--blue);}

/* 侧栏：院校地址 / 院校官网 / 招生电话 */
.spu-contact-card h4{margin-bottom:16px;}
.spu-contact{display:grid;gap:14px;}
.spu-contact-row{display:grid;grid-template-columns:66px minmax(0,1fr);gap:12px;align-items:start;font-size:13.5px;}
.spu-contact-row>span{color:#8a94a6;padding-top:2px;white-space:nowrap;}
.spu-contact-row>div{min-width:0;color:#2f3a4a;line-height:1.7;word-break:break-word;}
.spu-addr{position:relative;padding-left:12px;}
.spu-addr::before{content:"";position:absolute;left:1px;top:10px;width:4px;height:4px;border-radius:50%;background:var(--blue);}
.spu-addr+.spu-addr{margin-top:4px;}
.spu-contact-row a{color:var(--blue);font-weight:700;text-decoration:none;word-break:break-all;}
.spu-contact-row a:hover{text-decoration:underline;}
.spu-phones{display:flex;flex-wrap:wrap;gap:6px;}
a.spu-phone{display:inline-block;padding:3px 9px;border-radius:6px;background:#eaf3fb;font-size:12.5px;line-height:1.5;}
a.spu-phone:hover{background:#dbeafb;text-decoration:none;}
.spu-none{font-style:normal;color:#a8b1bf;}
.spu-contact-tip{margin-top:16px;padding-top:12px;border-top:1px dashed #eceff5;font-size:12px;line-height:1.7;}
@media(max-width:720px){
  .spu-hero-inner{padding:20px 14px 24px;}
  .spu-head{width:100%;gap:14px;padding:14px 16px 14px 18px;}
  .spu-head .kc-name{font-size:20px;}
  .spu-head::before{top:14px;bottom:14px;}
  .spu-logo-wrap{width:66px;height:66px;padding:7px;border-radius:14px;}
}
/* ================= 春招「按分数选大学」· 与智能选志愿同款版式 ================= */
.spm-page { max-width: none; margin: 0 auto; }
.spm-page .vb-thead .th.c { font-size: 12.5px; white-space: nowrap; }
.spm-catgrp { display: inline-flex; background: #f2f5fa; border-radius: 8px; padding: 2px; }
.spm-catgrp .vb-cat { border: 0; background: transparent; padding: 6px 14px; border-radius: 6px; font-size: 13.5px; color: #5a6b85; cursor: pointer; }
.spm-catgrp .vb-cat.on { background: #1D5C8A; color: #fff; font-weight: 700; box-shadow: 0 2px 8px rgba(29,92,138,.28); }
.spm-sel { height: 30px; border: 1px solid #d8e0ea; border-radius: 7px; padding: 0 8px; font-size: 13px; color: #1f2d3d; background: #fff; max-width: 130px; }
.spm-score-wrap { display: inline-flex; align-items: center; gap: 4px; background: #f4f9fc; border: 1.5px solid #d7e1f0; border-radius: 8px; padding: 0 10px; height: 34px; }
.spm-score-wrap:focus-within { border-color: #1D5C8A; background: #fff; box-shadow: 0 0 0 3px rgba(29,92,138,.1); }
.spm-score-wrap input { width: 62px; border: 0; outline: none; background: transparent; font-size: 15px; font-weight: 800; color: #14456B; -moz-appearance: textfield; }
.spm-score-wrap input::-webkit-outer-spin-button, .spm-score-wrap input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.spm-score-wrap input::placeholder { font-weight: 400; font-size: 13px; color: #a8b3c5; }
.spm-score-wrap > span { font-size: 12.5px; color: #8a94a6; }
.spm-meta { font-size: 12.5px; color: #6b7688; }
.spm-meta b { color: #14456B; font-size: 13.5px; }

/* 空态 / 骨架 */
.spm-welcome { background: #fff; border: 1px solid #ebeef5; border-radius: 12px; padding: 54px 20px 58px; text-align: center; margin-top: 12px; }
.spm-w-ico { font-size: 40px; margin-bottom: 12px; }
.spm-w-t { font-size: 16.5px; font-weight: 800; color: #14456B; margin-bottom: 8px; }
.spm-w-d { font-size: 13px; color: #8a94a6; line-height: 1.9; max-width: 620px; margin: 0 auto; }
.spm-skel { background: #fff; border: 1px solid #ebeef5; border-radius: 12px; padding: 18px; margin-top: 12px; }
.spm-skel-row { height: 62px; border-radius: 10px; margin-bottom: 10px; background: linear-gradient(90deg, #f4f7fb 25%, #eef3f9 37%, #f4f7fb 63%); background-size: 400% 100%; animation: spmShine 1.4s ease infinite; }
@keyframes spmShine { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }

/* 表内补充信息 */
.spm-page .vb-c-plan .vb-plan-num { font-size: 19px; }
.spm-page .vb-hr i { color: #9aa5b8; }
.spm-page .vb-hr span { font-size: 12.5px; }
.spm-gap { font-size: 11.5px; color: #8a94a6; margin-top: 5px; }
.spm-dash { color: #b3bcc9; }
.spm-unit { font-size: 12px; color: #8a94a6; }
.spm-tuition input { width: 92px; height: 32px; border: 1px solid #d8e0ea; border-radius: 7px; padding: 0 10px; font-size: 13px; outline: none; }
.spm-tuition input:focus { border-color: #1D5C8A; box-shadow: 0 0 0 3px rgba(29,92,138,.1); }

/* 已加入志愿的按钮态 */
.vb-add-vol.added { background: #e8fff3; color: #00915f; }
.vb-add-vol.added:hover { background: #d6f8e8; }
.vb-vol-btn + .vb-row-links { margin-top: 6px; }

/* 我的志愿表（抽屉） */
.spm-vol-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding-bottom: 10px; border-bottom: 1px solid #eef1f5; }
.spm-vol-head b { font-size: 15px; color: #14456B; }
.spm-vol-tools { display: flex; gap: 8px; }
.spm-vol-list { margin-top: 10px; display: grid; gap: 8px; }
.spm-vol-row { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid #e8eef6; border-radius: 10px; background: #fff; }
.spm-vol-row:hover { border-color: #bcd4ea; background: #fbfdff; }
.spm-vol-row.dragging { opacity: .45; border-style: dashed; }
.spm-vol-slot { flex: none; width: 30px; height: 30px; border-radius: 8px; background: #eef6fb; color: #1D5C8A; font-weight: 800; font-size: 13.5px; display: flex; align-items: center; justify-content: center; }
.spm-vol-info { flex: 1; min-width: 0; }
.spm-vol-t { display: flex; align-items: baseline; gap: 6px; }
.spm-vol-t b { font-size: 14px; color: #1f2937; }
.spm-vol-t i { font-style: normal; font-size: 11.5px; color: #8a94a6; }
.spm-vol-m { font-size: 12px; color: #6b7688; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.spm-vol-op { flex: none; display: flex; gap: 4px; }

/* 可报专业抽屉 */
.spm-mj-list { display: grid; gap: 6px; }
.spm-mj-row { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border: 1px solid #eef1f5; border-radius: 8px; }
.spm-mj-row:hover { border-color: #d6e6ff; background: #fbfdff; }
.spm-mj-info { flex: 1; min-width: 0; }
.spm-mj-info b { font-size: 13.5px; color: #1f2937; }
.spm-mj-info i { font-style: normal; font-size: 11.5px; color: #8a94a6; margin-left: 5px; }

@media (max-width: 720px) {
  .spm-vol-row { flex-wrap: wrap; }
  .spm-vol-op { width: 100%; justify-content: flex-end; }
  .vb-topbar .vb-top-left > .vb-div:nth-of-type(n+2) { display: none; }
}

/* ===== 春招院校详情 · 招生章程 ===== */
.spu-ch-bar{align-items:center;flex-wrap:wrap;gap:10px;}
.spu-ch-years{display:inline-flex;flex-wrap:wrap;gap:6px;}
.spu-ch-card{padding:26px 30px 30px;}
.spu-ch-head h4{margin:0 0 22px;padding-bottom:16px;border-bottom:1px solid #eef1f4;font-size:19px;color:#14456B;line-height:1.55;font-weight:800;}
.spu-ch-meta{display:flex;flex-wrap:wrap;gap:14px;align-items:center;font-size:12.5px;color:#8a94a6;padding-bottom:14px;border-bottom:1px solid #eef1f4;margin-bottom:20px;}
.spu-ch-meta a{color:#1D5C8A;text-decoration:none;font-weight:600;}
.spu-ch-meta a:hover{text-decoration:underline;}
.spu-ch-meta a i{font-style:normal;}
.spu-ch-body{max-width:900px;}
.spu-ch-body p{font-size:14.5px;line-height:2;color:#3f4a5a;margin:0 0 11px;text-align:justify;}
.spu-ch-body p.ch-h{font-size:16px;font-weight:800;color:#14456B;margin:26px 0 12px;padding-left:11px;border-left:3px solid #E8B84B;line-height:1.5;}
.spu-ch-body p.ch-h:first-child{margin-top:0;}
@media(max-width:720px){
  .spu-ch-card{padding:18px 15px 22px;}
  .spu-ch-head h4{font-size:16.5px;}
  .spu-ch-body p{font-size:14px;line-height:1.95;}
  .spu-ch-bar .spring-note{display:none;}
}
/* 章程年份按钮在院校详情页（.kb-page 作用域外无 --sr 变量），单独定义 */
.spu-ch-years .year-btn{border-color:#d8e0ea;color:#5a6a7f;}
.spu-ch-years .year-btn:hover{border-color:var(--blue);color:var(--blue);}
.spu-ch-years .year-btn.on{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:700;}
/* 章程图片版提示 */
.spu-ch-img-tip{padding:34px 30px;background:#fafbfc;border:1px dashed #dbe3ea;border-radius:10px;text-align:center;}
.spu-ch-img-tip .ict-h{margin:0 0 10px;font-size:15.5px;font-weight:800;color:#14456B;}
.spu-ch-img-tip .ict-p{margin:0;font-size:13.5px;color:#6b7688;line-height:1.9;}
@media(max-width:720px){.spu-ch-img-tip{padding:24px 16px;}}

/* ===== 夏季院校详情 · 招生章程（后台按年份批量导入） ===== */
.kc-cy{display:inline-flex;align-items:baseline;gap:1px;padding:6px 13px;border-radius:999px;background:#f4f6fa;border:1px solid #e8ecf2;color:#5a6675;font-size:13.5px;font-weight:700;cursor:pointer;transition:.16s;line-height:1;}
.kc-cy i{font-style:normal;font-size:11px;font-weight:500;opacity:.72;margin-left:1px;}
.kc-cy:hover{border-color:#c9d8e6;color:#1D5C8A;background:#eef5fb;}
.kc-cy.on{background:linear-gradient(180deg,#A82A1E,#8E2118);border-color:#8E2118;color:#fff;box-shadow:0 4px 12px rgba(168,42,30,.22);}
.kc-cy.on i{opacity:.85;}
.kc-cy-loading{padding:18px;font-size:13px;}
/* 年份标识：固定展示在章程标题上方，多年份时可直接点击切换（最多保留近 5 年） */
.kc-cyears{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:13px;}
.kc-charter-meta{display:flex;flex-wrap:wrap;gap:14px;align-items:center;font-size:12.5px;color:#8a94a6;padding-bottom:14px;border-bottom:1px solid #eef1f4;margin-bottom:20px;}
.kc-charter-meta a{color:#1D5C8A;text-decoration:none;font-weight:600;}
.kc-charter-meta a:hover{text-decoration:underline;}
.kc-charter{max-width:920px;}
.kc-charter p{font-size:14.5px;line-height:2;color:#3f4a5a;margin:0 0 11px;text-align:justify;}
.kc-charter p.kc-ch{font-size:16px;font-weight:800;color:#8E2118;margin:26px 0 12px;letter-spacing:.01em;}
.kc-charter p.kc-ch:first-child{margin-top:2px;}
.kc-charter-note{margin-top:18px;padding-top:14px;border-top:1px dashed #e3e9ef;font-size:12.5px;color:#9aa4b2;line-height:1.8;}
.kc-loading{padding:30px;color:#8a94a6;text-align:center;}
@media(max-width:720px){.kc-charter p{font-size:14px;line-height:1.95;}.kc-cy{padding:5px 11px;font-size:12.5px;}}

/* ===== 春招院校库 · 两列卡片（logo | 名称+类别+地区 | 院校详情） ===== */
.spring-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
.su-card { display: flex; align-items: center; gap: 14px; padding: 18px 20px 18px 18px; }
/* 院校 LOGO：不要外围的正方形框 —— 透明底、无边框、无内边距、无圆角 */
.su-card .su-logo { width: 58px; height: 58px; object-fit: contain; background: transparent; border: 0; padding: 0; border-radius: 0; flex: none; }
.su-card .su-mark { width: 58px; height: 58px; border-radius: 12px; object-fit: contain; background: #fff; border: 1px solid #e8edf4; padding: 3px; flex: none; }
.su-card .su-mark { display: flex; align-items: center; justify-content: center; font-size: 18px; font-weight: 800; color: #fff; background: linear-gradient(135deg, #14456B, var(--blue)); border: none; }
.su-info { flex: 1; min-width: 0; }
.su-nameline { display: flex; align-items: center; gap: 8px; margin-bottom: 9px; }
.su-nameline b { font-size: 17px; color: #14456B; font-weight: 800; letter-spacing: .2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.su-badge { flex: none; font-style: normal; font-size: 10.5px; padding: 1px 7px; border-radius: 20px; background: #fdf6e7; color: #9a6b0a; font-weight: 700; }
.su-metarow { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.su-metarow i { font-style: normal; font-size: 11.5px; padding: 2px 9px; border-radius: 4px; background: #f1f5fa; color: #5b6577; }
.su-metarow i.gold { background: #fdf6e7; color: #9a6b0a; font-weight: 600; }
.su-metarow .su-region { font-size: 12.5px; color: #6b7688; margin-left: 6px; position: relative; padding-left: 13px; }
.su-metarow .su-region::before { content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 9px; height: 11px; border: 1.5px solid #b3bccb; border-radius: 50% 50% 50% 0; rotate: -45deg; }
.su-go { flex: none; font-size: 13px; font-weight: 700; color: #1D5C8A; border: 1.5px solid #bcd4ea; border-radius: 22px; padding: 8px 16px; display: inline-flex; align-items: center; gap: 5px; transition: .15s; background: #fff; }
.su-go em { font-style: normal; font-size: 12px; transition: .15s; }
.su-card:hover .su-go { background: #1D5C8A; border-color: #1D5C8A; color: #fff; }
.su-card:hover .su-go em { transform: translateX(2px); }
@media(max-width:900px){
  .spring-grid { grid-template-columns: 1fr; gap: 12px; }
  .su-card { padding: 14px 14px 14px 12px; gap: 11px; }
  .su-card .su-logo, .su-card .su-mark { width: 48px; height: 48px; border-radius: 10px; }
  .su-nameline b { font-size: 15px; }
  .su-go { font-size: 12px; padding: 6px 12px; }
}
@media(max-width:900px){
  .su-nameline { flex-wrap: wrap; row-gap: 4px; }
  .su-nameline b { white-space: normal; overflow: visible; text-overflow: unset; font-size: 14.5px; line-height: 1.4; }
  .su-metarow .su-region { margin-left: 0; }
}

/* ===== 春招·按分数选大学：类别切换 / 下拉控件 / 筛选栏 ===== */
.vb-catgrp { display: inline-flex; border: 1px solid #d7e1f0; border-radius: 8px; overflow: hidden; }
.vb-cat { height: 32px; padding: 0 16px; border: 0; background: #fff; font-size: 13.5px; color: #5a6a7f; cursor: pointer; transition: .15s; }
.vb-cat + .vb-cat { border-left: 1px solid #eef1f5; }
.vb-cat.on { background: #1D5C8A; color: #fff; font-weight: 600; }
.vb-sel { height: 32px; border: 1px solid #d7e1f0; border-radius: 7px; background: #fff; padding: 0 10px; font-size: 13px; color: #303133; outline: none; transition: .15s; }
.vb-sel:focus { border-color: #1D5C8A; box-shadow: 0 0 0 3px rgba(29,92,138,.1); }
.vb-meta { font-size: 13px; color: #6b7688; white-space: nowrap; }
.vb-meta b { color: #1D5C8A; font-weight: 700; }
.vb-filter { background: #fff; border: 1px solid #ebeef5; border-radius: 10px; padding: 12px 16px; margin-top: 12px; }
.vbf-row { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.vbf-label { font-size: 13px; color: #909399; white-space: nowrap; }
.vbf-chk { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; color: #303133; cursor: pointer; }
.vbf-chk input { accent-color: #1D5C8A; }

/* 春招测算表：历年数据网格对齐（--sm-years 由 JS 注入） */
#mBody .vb-th-his { display: flex; flex-direction: column; gap: 3px; }
#mBody .th-cap { font-size: 12.5px; font-weight: 700; color: #303133; }
#mBody .th-cap small { color: #909399; font-weight: 400; font-size: 11px; margin-left: 2px; }
#mBody .th-yrrow { display: grid; grid-template-columns: 56px repeat(var(--sm-years, 4), minmax(0, 1fr)); gap: 0 8px; }
#mBody .th-hsub { text-align: center; font-size: 12px; color: #1D5C8A; font-weight: 700; }
#mBody .vb-his { display: flex; flex-direction: column; gap: 3px; }
#mBody .vb-hr { display: grid; grid-template-columns: 56px repeat(var(--sm-years, 4), minmax(0, 1fr)); gap: 0 8px; align-items: baseline; font-size: 12.5px; }
#mBody .vb-hr i { font-style: normal; color: #8a94a6; font-size: 11px; white-space: nowrap; }
#mBody .vb-hr span { text-align: center; font-weight: 600; color: #1f2937; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#mBody .vb-hr span.nb { color: #c0c7d1; font-weight: 400; }
/* 概率列：档位 + 分差 + 概率 */
#mBody .vb-c-prob { width: 96px; text-align: center; vertical-align: middle; }
#mBody .vb-prob { display: flex; flex-direction: column; align-items: center; gap: 3px; margin: 0 auto; }
#mBody .vb-pct { margin-left: 0; color: #1f2937; font-size: 13px; }
#mBody .vb-prob2 { font-size: 11px; color: #8a94a6; margin-top: 1px; }

/* 我的志愿表（抽屉） */
.sv-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.sv-head b { font-size: 15px; color: #303133; }
.sv-list { display: flex; flex-direction: column; gap: 10px; }
.sv-row { display: flex; align-items: center; gap: 12px; padding: 12px 14px; background: #fff; border: 1px solid #ebeef5; border-radius: 10px; }
.sv-idx { flex: none; width: 26px; height: 26px; line-height: 26px; text-align: center; border-radius: 50%; background: #1D5C8A; color: #fff; font-size: 13px; font-weight: 700; }
.sv-info { flex: 1; min-width: 0; font-size: 13.5px; color: #303133; }
.sv-info .kb-msub { display: block; color: #8a94a6; font-size: 12px; margin-top: 2px; }
.sv-op { display: flex; align-items: center; gap: 6px; flex: none; }

/* 可报专业（抽屉） */
.kb-major-list { display: flex; flex-direction: column; gap: 8px; max-height: 60vh; overflow: auto; }
.kb-mrow { display: flex; align-items: center; gap: 12px; padding: 10px 12px; background: #f8fafc; border: 1px solid #eef1f5; border-radius: 9px; }
.kb-minfo { flex: 1; min-width: 0; font-size: 13px; color: #303133; line-height: 1.5; }
.kb-minfo .kb-msub { display: block; color: #8a94a6; font-size: 12px; margin-top: 2px; }.eq-real-rank { flex-basis: 100%; margin-top: 2px; padding: 8px 11px; border-radius: 8px; background: #eaf7f1; border: 1px solid #bfe6d1; color: #17624a; font-size: 12.5px; line-height: 1.8; }
.eq-real-rank b { color: #0d8a5f; margin-right: 6px; }
.eq-pct { display: inline-block; margin-left: 6px; padding: 1px 6px; border-radius: 5px; background: #eef4fb; color: #37618f; font-size: 11.5px; font-weight: 400; white-space: nowrap; }
.eq-res .eq-algo-caveat { margin-top: 12px; }

/* ================= 等效分换算页（正向单点 · 最近三年） ================= */
.eqc-panel { max-width: 920px; margin: 0 auto; background: #fff; border: 1px solid #e6ecf5; border-radius: 16px; padding: 26px 28px 30px; box-shadow: 0 6px 24px rgba(23, 67, 110, .06); }
.eqc-form { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; align-items: center; padding-bottom: 22px; border-bottom: 1px dashed #e2e9f2; }
.eqc-form label { font-size: 13.5px; color: #5b6577; font-weight: 600; white-space: nowrap; }
.eqc-form select { height: 42px; padding: 0 12px; border: 1px solid #d8e0ea; border-radius: 8px; font-size: 14px; color: #26324a; background: #fff; }
.eqc-form input { flex: 1; min-width: 150px; max-width: 260px; height: 42px; padding: 0 14px; border: 1px solid #d8e0ea; border-radius: 8px; font-size: 16px; color: #26324a; }
.eqc-form input:focus { border-color: #1D5C8A; outline: none; box-shadow: 0 0 0 3px rgba(29, 92, 138, .12); }
.eqc-form .btn.primary { height: 42px; padding: 0 26px; font-size: 15px; }
.eqc-panel .eq-res { margin-top: 24px; }
.eqc-panel .eq-res-item { background: #f8fafd; border: 1px solid #e6ecf5; padding: 18px 12px 14px; }
.eqc-panel .eq-res-item b { font-size: 28px; color: #1D5C8A; }
.eqc-panel .eq-res-item span { color: #5b6577; }
/* —— 主卡：你的成绩，金线 + 阴影突出，布局与年份卡一致 —— */
.eqc-panel .eq-res-item.main {
  background: linear-gradient(150deg, #1D5C8A 0%, #17436E 62%, #0F3257 100%);
  border-color: #0F3257; box-shadow: 0 10px 26px rgba(15, 50, 87, .3);
  position: relative; overflow: hidden;
}
.eqc-panel .eq-res-item.main::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, transparent, #ffd97a, transparent); opacity: .85;
}
.eqc-panel .eq-res-item.main b { color: #fff; font-size: 36px; font-weight: 800; letter-spacing: 1px; text-shadow: 0 3px 14px rgba(0, 0, 0, .3); }
.eqc-panel .eq-res-item.main > span { color: rgba(255, 255, 255, .92); }
.eqc-panel .eq-res-item.main > span.eq-main-pct {
  display: block; margin-top: 7px;
  font-size: 13px; font-weight: 700; color: #ffd97a;
  background: rgba(255, 217, 122, .1); border: 1px solid rgba(255, 217, 122, .3);
  border-radius: 999px; padding: 3px 14px; width: fit-content; align-self: center; white-space: nowrap;
}
.eqc-line-row { display: flex; gap: 6px; justify-content: center; flex-wrap: wrap; margin-top: 10px; padding-top: 9px; border-top: 1px dashed #dfe6ef; }
.eqc-line-row i { font-style: normal; font-size: 11.5px; padding: 2px 8px; border-radius: 20px; white-space: nowrap; font-weight: 600; }
.eqc-line-row i.bk { background: #eaf2fb; color: #1D5C8A; border: 1px solid #c9dcf0; }
.eqc-line-row i.tk { background: #fdf6e7; color: #9a6b0a; border: 1px solid #ecd9a8; }
.eqc-panel .eq-res-item.main .eqc-line-row i.bk { background: rgba(255, 255, 255, .16); color: #fff; border-color: rgba(255, 255, 255, .3); }
.eqc-panel .eq-res-item.main .eqc-line-row i.tk { background: rgba(255, 217, 122, .2); color: #ffd97a; border-color: rgba(255, 217, 122, .4); }
.eqc-panel .empty { padding: 26px 0; }

/* ================= 预估线模型 · 五级档位与概率提示 ================= */
.vb-tier.nan { color: #6b7688; background: #f1f3f6; }
.vb-tier.yi { color: #7650b8; background: #f2ecff; }
.vb-tier.none { color: #909399; background: #f4f5f7; }
/* 单年数据提示条：位置/版式对齐「⚠ 特殊要求」（专业名正下方单独一行），
   但用琥珀色 + 左侧色条强调，避免与体检类警告（橙棕）混淆 */
.vb-major-1y {
  display: inline-block; max-width: 100%; vertical-align: top;
  margin-top: 4px; padding: 2px 10px 2px 8px;
  font-size: 12px; line-height: 1.6; color: #a15c00; background: #fff7e8;
  border: 1px solid #f3d9a4; border-left: 3px solid #f0a020; border-radius: 6px;
  white-space: normal; cursor: help;
}
.vb-major-1y i { font-style: normal; margin-right: 4px; font-size: 11px; color: #d98600; }
.vb-major-1y b { font-weight: 600; color: #8a4d00; }
.vb-pct:empty { display: none; }
.vb-d-pt.nan { color: #6b7688; }
.vb-d-pt.yi { color: #7650b8; }
.vb-d-pt.none { color: #909399; }
.vb-d-prob b.nan { color: #6b7688; }
.vb-d-prob b.yi { color: #7650b8; }
.vb-d-prob b.none { color: #909399; }
/* 两年数据：页面级 banner（不弹窗、不在每行重复） */
.vb-cp-banner { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 10px; padding: 10px 14px;
  border-radius: 9px; background: #fff8e8; border: 1px solid #f1d9a3; color: #8a6200; font-size: 13px; line-height: 1.8; }
.vb-cp-banner > span { font-size: 16px; line-height: 1.4; flex: none; }
.vb-cp-banner small { display: block; margin-top: 3px; color: #9a8354; font-size: 11.5px; line-height: 1.7; }
/* 行内静态标签 */
.vb-cp-tags { display: flex; flex-wrap: wrap; gap: 4px; justify-content: center; margin-top: 5px; }
.vb-cp-tag { display: inline-block; padding: 1px 6px; border-radius: 5px; font-size: 10.5px; line-height: 1.6; white-space: nowrap; }
.vb-cp-tag.warn { background: #fff2d9; color: #9a6a00; border: 1px solid #f0d9a3; }
.vb-cp-tag.crit { background: #eaf2fb; color: #2b6cb0; border: 1px solid #cfe0f5; }
.vb-cp-tag.info { background: #f1f3f6; color: #667085; border: 1px solid #e2e6ec; }
.vb-cp-tag.diff { background: #eef8f2; color: #17624a; border: 1px solid #cfe9dc; }

/* ========== 专业对比：悬浮对比栏 ========== */
.cmp-dock { position: fixed; left: 50%; bottom: 22px; transform: translateX(-50%); z-index: 9000;
  width: min(760px, calc(100vw - 32px)); transition: opacity .2s, transform .2s; }
.cmp-dock.hidden { opacity: 0; transform: translate(-50%, 16px); pointer-events: none; }
.cmp-dock-inner { display: flex; align-items: center; gap: 14px; padding: 10px 16px; border-radius: 14px;
  background: rgba(20, 45, 75, .96); color: #fff; box-shadow: 0 16px 40px -12px rgba(6, 20, 45, .55);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.cmp-dock-label { flex: none; font-size: 13px; color: #d6e2f2; white-space: nowrap; }
.cmp-dock-label b { color: #fff; font-size: 16px; margin: 0 1px; }
.cmp-dock-chips { flex: 1; display: flex; gap: 8px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; padding: 2px 0; }
.cmp-dock-chip { flex: none; display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 4px 0 11px;
  border-radius: 999px; background: rgba(255, 255, 255, .14); color: #eaf1fb; font-size: 12.5px; white-space: nowrap; }
.cmp-dock-chip button { border: 0; width: 19px; height: 19px; border-radius: 50%; cursor: pointer;
  background: rgba(255, 255, 255, .2); color: #fff; font-size: 11px; line-height: 19px; padding: 0; }
.cmp-dock-chip button:hover { background: rgba(255, 255, 255, .35); }
.cmp-dock-actions { flex: none; display: flex; align-items: center; gap: 8px; }
.cmp-dock-btn { height: 34px; padding: 0 15px; border-radius: 9px; border: 1px solid rgba(255, 255, 255, .28);
  background: transparent; color: #eaf1fb; font-size: 13px; cursor: pointer; white-space: nowrap; }
.cmp-dock-btn:hover { background: rgba(255, 255, 255, .1); }
.cmp-dock-btn.primary { background: #e8a33d; border-color: #e8a33d; color: #3a2500; font-weight: 700; }
.cmp-dock-btn.primary:hover { background: #f2b455; }

/* ========== 专业对比页 ========== */
.cmp-pick-bar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0 0 14px; padding: 12px 14px;
  border-radius: 12px; background: #f5f8fc; border: 1px solid #e4ecf6; }
.cmp-pick-bar .cmp-dock-chip { background: #fff; border: 1px solid #d7e3f1; color: #2b4566; padding: 0 4px 0 11px; }
.cmp-pick-bar .cmp-dock-chip button { background: #eef2f8; color: #6b7c95; }
.cmp-pick-empty { font-size: 12.5px; color: #9aa6b8; }
.cmp-pick-add { margin-left: auto; font-size: 12.5px; color: #1D5C8A; text-decoration: none; font-weight: 600; }
.cmp-rm-inline { margin-left: 10px; border: 0; background: transparent; color: #b93b2b; font-size: 12.5px; cursor: pointer; }

/* ========== 查专业：分类筛选提示条 ========== */
.kb-filter-banner { display: flex; align-items: center; gap: 6px; margin: 0 0 14px; padding: 9px 14px;
  border-radius: 9px; background: #eaf2fb; border: 1px solid #cfe0f5; color: #2b6cb0; font-size: 13px; }
.kb-filter-banner b { color: #1D5C8A; }
.kb-filter-clear { margin-left: auto; color: #1D5C8A; text-decoration: none; font-size: 12.5px; font-weight: 600; }
.kb-filter-clear:hover { color: #0958d9; }

/* 对比表（专业对比页，作用域限定 .cmp-major，避免影响院校对比） */
.cmp-wrap { overflow-x: auto; border: 1px solid #e6ecf5; border-radius: 14px; background: #fff; }
.cmp-major .cmp-table { border-collapse: collapse; width: 100%; min-width: 640px; font-size: 13px; }
.cmp-major .cmp-table th, .cmp-major .cmp-table td { padding: 12px 14px; border-bottom: 1px solid #eef2f8; text-align: left; vertical-align: top; }
.cmp-major .cmp-table thead th { background: #f8fafd; color: #14456B; font-size: 14px; font-weight: 700; }
.cmp-major .cmp-table tbody th { width: 110px; background: #fbfcfe; color: #7b8698; font-weight: 600; white-space: nowrap; }
.cmp-major .cmp-table td b { color: #14456B; }

@media (max-width: 640px) {
  .cmp-dock { bottom: 12px; width: calc(100vw - 20px); }
  .cmp-dock-inner { padding: 9px 12px; gap: 10px; border-radius: 12px; }
  .cmp-dock-label { font-size: 12px; }
  .cmp-dock-btn { height: 32px; padding: 0 12px; font-size: 12.5px; }
  .cmp-dock-btn:not(.primary) { display: none; }
}

/* ================= 登录 / 注册弹窗（扫码优先，小程序引流） =================
 * 结构：深蓝品牌条 → 小程序码 → 微信扫一扫提示 → 其他登录方式（验证码 / 密码）→ 注册兜底。
 * 配色对齐站点主基调：主色 #1D5C8A / #17436E + 品牌金 #E0B246 点缀。
 * 小程序码可在 后台「页面内容 → site」用 login.qr 图片块替换，未替换时用 /img/mp-qr.svg。 */
body.am-open { overflow: hidden; }
#regGateHost { position: fixed; inset: 0; z-index: 9999; pointer-events: none; }
#regGateHost .am-mask { position: absolute; inset: 0; background: rgba(10, 24, 44, .55); backdrop-filter: blur(4px); pointer-events: auto; animation: rgFade .18s ease; }
#regGateHost .am-card {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: min(94vw, 430px); max-height: 94vh; overflow: auto; background: #fff; border-radius: 20px;
  box-shadow: 0 30px 70px -12px rgba(6, 20, 45, .5); pointer-events: auto;
  animation: rgPop .24s cubic-bezier(.34, 1.36, .64, 1);
}
@keyframes rgFade { from { opacity: 0; } }
@keyframes rgPop { from { opacity: 0; transform: translate(-50%, -46%) scale(.94); } }
#regGateHost .am-x {
  position: absolute; top: 8px; right: 8px; z-index: 3; width: 26px; height: 26px; border-radius: 50%;
  border: 0; background: rgba(255, 255, 255, .92); color: #17436E; font-size: 13px; line-height: 1; cursor: pointer;
  box-shadow: 0 3px 8px rgba(6, 20, 45, .28);
  transition: background .18s, transform .18s;
}
#regGateHost .am-x:hover { background: #fff; color: #1D5C8A; transform: scale(1.06); }

/* 顶部品牌条：深蓝主色 + 底部金色细线 */
#regGateHost .am-banner {
  position: relative; display: flex; align-items: center; gap: 10px; padding: 15px 74px 16px 18px;
  background: linear-gradient(100deg, #2E6F9E 0%, #1D5C8A 42%, #17436E 100%);
  border-radius: 20px 20px 0 0; overflow: hidden;
}
#regGateHost .am-banner::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 3px;
  background: linear-gradient(90deg, #E0B246 0%, #F0D08A 46%, rgba(224, 178, 70, .12) 100%);
}
#regGateHost .am-banner-txt { flex: 1; min-width: 0; }
#regGateHost .am-b1 { font-size: 17px; font-weight: 800; color: #fff; letter-spacing: .5px; line-height: 1.25; }
#regGateHost .am-b2 { margin-top: 4px; font-size: 12px; color: rgba(255, 255, 255, .82); }
#regGateHost .am-mascot {
  position: absolute; right: 40px; bottom: 9px; width: 44px; height: 44px; border-radius: 13px;
  background: rgba(255, 255, 255, .16); border: 1px solid rgba(224, 178, 70, .48);
  display: flex; align-items: center; justify-content: center;
  font-size: 23px; transform: rotate(-6deg); box-shadow: 0 6px 14px rgba(6, 20, 45, .22);
  backdrop-filter: blur(2px);
}

/* 主体 */
#regGateHost .am-body { padding: 16px 22px 18px; text-align: center; }
#regGateHost .am-msg {
  margin: 0 auto 12px; padding: 8px 12px; border-radius: 10px; background: #EAF3F9;
  border: 1px solid #D3E4F1; color: #17436E; font-size: 12.5px; line-height: 1.6;
}

/* 小程序码 */
#regGateHost .am-qrrow { position: relative; display: flex; align-items: center; justify-content: center; }
#regGateHost .am-arrow {
  position: absolute; top: 50%; transform: translateY(-50%);
  color: #C6DAE9; font-size: 40px; line-height: 1; user-select: none;
}
#regGateHost .am-arrow:first-child { left: 4px; }
#regGateHost .am-arrow:last-child { right: 4px; }
#regGateHost .am-qr {
  position: relative; width: 190px; height: 190px; padding: 9px; border-radius: 22px; background: #fff;
  border: 1.5px solid #D8E5F0; box-shadow: 0 14px 30px -14px rgba(23, 67, 110, .42), inset 0 0 0 6px #F5F9FD;
}
#regGateHost .am-qr-img { width: 100%; height: 100%; display: block; border-radius: 12px; }
#regGateHost .am-qr-logo {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: 42px; height: 42px; border-radius: 12px; background: #fff; overflow: hidden;
  display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 8px rgba(0, 0, 0, .16);
}
#regGateHost .am-qr-logo img { width: 100%; height: 100%; object-fit: cover; }
#regGateHost .am-qr-wx {
  position: absolute; right: 3px; bottom: 3px; width: 25px; height: 25px; border-radius: 50%;
  background: #07C160; color: #fff; font-size: 11px; display: flex; align-items: center; justify-content: center;
  border: 2px solid #fff; box-shadow: 0 2px 6px rgba(7, 193, 96, .42);
}
#regGateHost .am-pill {
  display: inline-flex; align-items: center; gap: 7px; margin-top: 14px; padding: 7px 16px;
  border-radius: 999px; background: #EEF4FA; color: #17436E; font-size: 12.5px; font-weight: 600;
}
#regGateHost .am-wx-dot { width: 15px; height: 15px; border-radius: 50%; background: #07C160; }
#regGateHost .am-hint { margin-top: 8px; font-size: 11.5px; color: #9aa6b8; }

/* 其他登录方式 */
#regGateHost .am-div { display: flex; align-items: center; gap: 10px; margin: 16px 0 12px; color: #a9b3c4; font-size: 12px; }
#regGateHost .am-div::before, #regGateHost .am-div::after { content: ''; flex: 1; height: 1px; background: #e9eef6; }
#regGateHost .am-ways { display: flex; justify-content: center; gap: 34px; }
#regGateHost .am-way { display: inline-flex; align-items: center; gap: 6px; color: #4a5568; font-size: 13.5px; text-decoration: none; }
#regGateHost .am-way i { font-style: normal; font-size: 15px; opacity: .9; }
#regGateHost .am-way b { font-weight: 600; }
#regGateHost .am-way:hover { color: #1D5C8A; }
#regGateHost .am-foot { margin-top: 14px; font-size: 12px; color: #9aa6b8; }
#regGateHost .am-foot a { color: #1D5C8A; font-weight: 700; text-decoration: none; margin-left: 2px; }
#regGateHost .am-foot a:hover { text-decoration: underline; }

/* 页头登录入口（次级按钮，金色描边） */
.header-cta .btn.login-btn { background: #FFFBF2; color: #8a6a28; box-shadow: inset 0 0 0 1px #EBD4A6; }
.header-cta .btn.login-btn:hover { background: #fff; color: #7a5a18; box-shadow: inset 0 0 0 1px #DDC08A; }
.header-cta .btn.login-btn.is-logged { background: #EEF3FA; color: #17436E; box-shadow: inset 0 0 0 1px #D7E2F0; }

/* ========== 智能选志愿：加载骨架屏（替代「计算中…」闪烁） ========== */
.vb-skeleton { padding: 6px 14px 14px; background: #fff; }
.vb-sk-tip { display: flex; align-items: center; gap: 8px; padding: 12px 4px 10px; font-size: 13px; color: #8a94a6; }
.vb-sk-dot { width: 14px; height: 14px; border-radius: 50%; border: 2px solid #dbe6f2; border-top-color: #1D5C8A; animation: vbSkSpin .8s linear infinite; }
@keyframes vbSkSpin { to { transform: rotate(360deg); } }
.vb-sk-row { display: grid; grid-template-columns: 72px 1.5fr 1.8fr .9fr; gap: 14px; padding: 13px 10px; border-bottom: 1px solid #f1f4f9; }
.vb-sk-cell { height: 16px; border-radius: 6px; background: linear-gradient(90deg, #eef2f8 25%, #f8fafd 45%, #eef2f8 65%); background-size: 200% 100%; animation: vbSkSlide 1.1s linear infinite; }
.vb-sk-cell:nth-child(2) { width: 86%; }
.vb-sk-cell:nth-child(3) { width: 72%; }
.vb-sk-cell:nth-child(4) { width: 58%; }
@keyframes vbSkSlide { from { background-position: 200% 0; } to { background-position: -200% 0; } }

/* ================= 春招频道 · 统一版式（各页签共用） ================= */
/* 「智能填春招」的顶部条原本带 margin-top:14px，会让这一页比另外 3 页多出 14px 顶距，这里归零 */
.spring-page .spm-page .vb-topbar { margin-top: 0; }
/* 院校库 / 查专业 / 招生计划 / 控制线 / 一分一段 统一放进白卡，和「按分数选大学」的卡片语言一致 */
.spring-page #springBody.plain { background: #fff; border: 1px solid #edf1f7; border-radius: 14px; padding: 14px 18px 18px; box-shadow: 0 2px 12px rgba(20,69,107,.04); }
.spring-page .spring-filter { display: flex; gap: 10px; align-items: center; margin-bottom: 14px; flex-wrap: wrap; padding: 11px 13px; background: #f7fafd; border: 1px solid #e8f0f8; border-radius: 10px; }
.spring-page .spring-filter select,
.spring-page .spring-filter input { padding: 8px 12px; border: 1px solid #d8e0ea; border-radius: 8px; font-size: 13.5px; background: #fff; color: #33415a; height: 36px; box-sizing: border-box; }
.spring-page .spring-filter input { width: 210px; }
.spring-page .spring-filter select:focus,
.spring-page .spring-filter input:focus { border-color: #1D5C8A; outline: none; box-shadow: 0 0 0 3px rgba(29,92,138,.1); }
.spring-page .spring-filter .fl { font-size: 12.5px; color: #7b879c; white-space: nowrap; }
.sp-fav-only { display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 14px; border: 1px solid #d8e0ea; background: #fff; border-radius: 8px; cursor: pointer; font-size: 13px; color: #5a6b85; }
.sp-fav-only b { font-weight: 800; color: #b8860b; }
.sp-fav-only:hover { border-color: #f0d79a; color: #9a6b0a; }
.sp-fav-only.on { background: #fff8e6; border-color: #f3d48a; color: #9a6b0a; }

/* 院校卡片收藏角标 */
.su-card { position: relative; }
.su-fav { position: absolute; top: 9px; right: 11px; font-style: normal; font-size: 17px; line-height: 1; color: #c9d4e2; cursor: pointer; transition: .15s; z-index: 2; }
.su-fav:hover { color: #e0a52a; transform: scale(1.14); }
.su-fav.on { color: #e8b23c; }

/* 表格统一：圆角容器 + 吸顶表头 + 悬停高亮 */
.spring-page .spring-table-wrap { border: 1px solid #e9eef6; border-radius: 12px; overflow: auto; max-height: 640px; background: #fff; }
.spring-page .spring-table { font-size: 13px; }
.spring-page .spring-table th { position: sticky; top: 0; z-index: 2; background: #eef5fc; color: #14456B; font-weight: 700; border-bottom: 1px solid #dbe8f5; }
.spring-page .spring-table td { border-bottom: 1px solid #f2f5f9; }
.spring-page .spring-table tbody tr:hover td,
.spring-page .spring-table tr:hover td { background: #f7fbff; }
.spring-page .spring-pager { display: flex; gap: 6px; margin-top: 14px; align-items: center; flex-wrap: wrap; }
.spring-page .spring-pager button { min-width: 30px; height: 30px; border-radius: 7px; border: 1px solid #d8e0ea; background: #fff; cursor: pointer; color: #5a6b85; }
.spring-page .spring-pager button:hover { border-color: #1D5C8A; color: #1D5C8A; }
.spring-page .spring-pager button.on { background: linear-gradient(135deg, #24699b, #1D5C8A); color: #fff; border-color: #1D5C8A; font-weight: 700; }
.spring-page .spring-h3 { margin: 20px 0 10px; font-size: 15px; color: #14456B; border-left: 3px solid #1D5C8A; padding-left: 10px; }

/* 院校库：宽屏 3 列，卡片不再被拉成一条长条 */
.spring-page .spring-grid { grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 14px; }
.spring-page .su-card .su-logo,
.spring-page .su-card .su-mark { width: 44px; height: 44px; border-radius: 10px; }
.spring-page .su-nameline b { font-size: 15.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.spring-page .su-nameline { margin-bottom: 7px; }
/* 「院校详情」收成圆形箭头，省出横向空间给校名 */
.spring-page .su-go { width: 30px; height: 30px; padding: 0; border-radius: 50%; justify-content: center; font-size: 0; flex: none; }
.spring-page .su-go em { font-size: 14px; }
.spring-page .su-card { padding: 13px 14px; gap: 10px; }

/* 春招表格：斑马纹 + 更宽松的行高，长表更好扫读 */
.spring-page .spring-table td { padding: 10px 12px; }
.spring-page .spring-table tbody tr:nth-child(even) td { background: #fafdff; }
.spring-page .spring-table tbody tr:hover td { background: #f2f9ff; }

/* ================= 智能填春招 · 对齐智能选志愿（第三轮） ================= */
/* —— 顶部条 / 筛选：筛选区永远展开，不再有折叠开关 —— */
.spm-page .vb-topbar .vb-top-left { flex-wrap: wrap; row-gap: 4px; }
.spm-page .vb-topbar .vb-link { white-space: nowrap; }
.spm-filter-title {
  display: inline-flex; align-items: center; gap: 4px; cursor: pointer; user-select: none;
  font-size: 13.5px; font-weight: 700; color: #14456B; padding: 2px 4px; white-space: nowrap;
  border-radius: 6px; transition: color .15s, background .15s;
}
.spm-filter-title:hover { color: #1D5C8A; background: #f4f9ff; }
.spm-filter-title .caret { font-style: normal; font-size: 10px; color: #8a94a6; transition: transform .18s; }
.spm-filter-title.collapsed .caret { transform: rotate(-90deg); }
/* [hidden] 会被 .spm-page .vb-filterpanel{display:block} 覆盖，收起时必须显式隐藏 */
.spm-page .vb-filterpanel[hidden] { display: none; }
.spm-page .vb-filterpanel { display: block; }
.spm-page .vb-filterpanel .vb-fv { flex-wrap: wrap; row-gap: 6px; }
/* —— 通用弹窗遮罩（成绩 / 可报专业） —— */
.vb-modal-mask { position: fixed; inset: 0; z-index: 3000; background: rgba(20,30,50,.45); display: flex; align-items: center; justify-content: center; animation: vbMaskIn .18s ease; }
.spm-score-modal { width: min(480px, 94vw); max-height: 86vh; }
.spm-score-body { padding-top: 4px; }
/* 录分通道关闭：弹窗顶部只读提示 */
.spm-ro-tip {
  margin: 0 0 12px; padding: 10px 12px; border-radius: 9px;
  background: #fffbf2; border: 1px solid #f5dca8; color: #a06a00;
  font-size: 12.5px; line-height: 1.8;
}
.spm-score-body .vb-form-row label { width: 132px; flex: none; }
/* 平时（正式通道未开）：这是模拟成绩，蓝色中性提示，别用警告色吓人 */
.spm-ro-tip.spm-mock-tip {
  background: #f3f8fd; border-color: #cfe0f2; color: #1D5C8A;
}
.spm-ro-tip.spm-mock-tip b { display: block; font-size: 13px; margin-bottom: 2px; }
.spm-ro-tip.spm-mock-tip i.spm-mock-sub { display: block; font-style: normal; margin-top: 4px; font-size: 11.5px; color: #6b7f96; }
.spm-score-body .vb-m-f { display: flex; justify-content: flex-end; gap: 10px; margin-top: 16px; padding-top: 14px; border-top: 1px solid #f0f2f7; flex-wrap: wrap; }
.spm-score-hint .spring-note { font-size: 12px; }
/* —— 院校库卡片：右侧上下两个按钮（收藏 / 院校详情），对齐主站院校卡 —— */
.spring-page .su-card { align-items: center; }
.spring-page .su-actions { flex: none; width: 92px; gap: 6px; }
.spring-page .su-actions .fav-btn,
.spring-page .su-actions .kb-detail-btn {
  width: 100%; height: 30px; line-height: 28px; padding: 0 6px;
  font-size: 12px; border-radius: 6px; white-space: nowrap; text-align: center;
}
.spring-page .su-actions .fav-btn.on { background: #fff8e1; border-color: #ffcc66; color: #d98a00; }
/* —— 志愿表抽屉（复用主站 .vb-drawer / .vb-d-*） —— */
.spm-drawer { width: min(1440px, 96vw); }
.spm-drawer .vb-d-table td { font-size: 12.5px; }
.spm-drawer .vb-d-search input { width: 158px; }
.spm-drawer .vb-d-his { font-size: 11.5px; color: #6b7688; line-height: 1.6; }
/* 行拖拽：按住 ⠿ 手柄才可拖，拖动中整行淡化 */
.spm-drawer .vb-d-table tr[data-k] { cursor: default; }
.spm-drawer .vb-d-table tr[data-k].dragging { opacity: .45; }
.spm-drawer .vb-d-table tr[data-k].dragging td { background: #F4F9FC; }
.spm-drawer .vb-op-move { cursor: grab; }
.spm-drawer .vb-d-prob .vb-tier,
.spm-maj-modal .vb-d-prob .vb-tier {
  font-size: 13px; width: auto; height: auto; line-height: 1.2; border-radius: 0; background: transparent;
}
.spm-drawer .vb-d-prob b.chong { color: #f53f3f; }
.spm-drawer .vb-d-prob b.wen { color: #1d6fd6; }
.spm-drawer .vb-d-prob b.bao { color: #00b578; }
.spm-drawer .vb-d-prob b.nan { color: #6b7688; }
.spm-drawer .vb-d-prob b.yi { color: #7650b8; }
/* —— 可报专业大弹窗：按批次分组 + 概率列 —— */
.spm-maj-modal .spm-maj-sub { font-size: 12px; font-weight: 400; color: #8a94a6; margin-left: 12px; }
.spm-maj-modal .vb-m-x { order: 3; }
.spm-maj-group { margin: 14px 0 22px; }
.spm-maj-gtitle { font-size: 14px; font-weight: 700; color: #1D5C8A; border-left: 3px solid #1D5C8A; padding-left: 9px; margin-bottom: 8px; }
.spm-maj-table { width: 100%; border-collapse: collapse; font-size: 13px; table-layout: fixed; }
.spm-maj-table th { background: #f7f9fc; padding: 9px 8px; text-align: left; font-size: 12.5px; color: #303133; border-bottom: 1px solid #ebeef5; }
.spm-maj-table td { padding: 10px 8px; border-bottom: 1px solid #f2f4f8; vertical-align: middle; }
.spm-maj-table tr:hover td { background: #f8fbff; }
.spm-maj-table th:nth-child(1), .spm-maj-table td:nth-child(1) { width: 11%; }
.spm-maj-table th:nth-child(2), .spm-maj-table td:nth-child(2) { width: 39%; }
.spm-maj-table th:nth-child(3), .spm-maj-table td:nth-child(3) { width: 10%; }
.spm-maj-table th:nth-child(4), .spm-maj-table td:nth-child(4) { width: 25%; }
.spm-maj-table th:nth-child(5), .spm-maj-table td:nth-child(5) { width: 15%; }
.spm-maj-table .spring-note { font-size: 11.5px; margin-top: 3px; }
.spm-maj-his { color: #6b7688; font-size: 12px; }

/* ================= 智能填春招 · 招生专业（对齐「智能选志愿」的大类直选） =================
 * 行内只铺大类：无边框纯文字、· 分隔、不带任何数字；点某个大类 → 在该大类正下方浮出
 * 细分专业面板（描边胶囊、可多选、右上「收起」）。浮层盖在结果区之上，不撑开筛选区。 */
.spm-page .vb-filterpanel .spm-maj-row { align-items: baseline; }
.spm-page .vb-filterpanel .spm-maj-cats {
  flex: 1; min-width: 0;
  display: flex; flex-wrap: wrap; align-items: baseline;
  gap: 4px 0; padding-right: 4px;
}
.spm-maj-cats > .vb-fitem {
  flex: none; display: inline-block; margin: 0; padding: 2px 0;
  border: 0; border-radius: 0; background: none;
  font-size: 13px; line-height: 20px; color: #303133; cursor: pointer; transition: color .15s;
}
.spm-maj-cats > .vb-fitem:hover { color: #1D5C8A; }
.spm-maj-cats > .vb-fitem.on,
.spm-maj-cats > .vb-fitem.open { color: #1D5C8A; font-weight: 600; }
.spm-maj-cats > .spm-mj-all { color: #1f2329; font-weight: 600; margin-right: 14px; }
.spm-mj-sep { flex: none; font-style: normal; font-size: 12px; color: #ccd4e0; margin: 0 8px; user-select: none; }
.spm-maj-row .spm-maj-empty { font-size: 12.5px; color: #909399; padding: 6px 0; }

/* 控制线台账：达线批次给线差，没达线的批次说明差多少分（没达线没有填报资格） */
/* .spm-ln 仅剩成绩弹窗里的控制线提示在用（筛选面板那行已下线） */
.spm-ln { font-size: 12px; line-height: 20px; color: #5b6b80; white-space: nowrap; }
.spm-ln b { color: #1D5C8A; font-weight: 700; }
.spm-ln.no { color: #b76b12; }
.spm-ln.no b { color: #b76b12; }
.spm-line-hint-v { display: inline-flex; flex-wrap: wrap; gap: 4px 12px; }
.spm-maj-gline { margin-left: 10px; font-size: 12px; color: #8a94a6; font-weight: 400; }
.spm-maj-gline b { color: #1D5C8A; }
.spm-maj-below { font-size: 13px; color: #b76b12; line-height: 1.9; }
.spm-maj-below-tip { margin-top: 6px; font-size: 12px; color: #9aa5b5; }

/* 细分专业浮层：紧贴当前大类正下方，白底卡片 + 描边胶囊多选 */
.spm-mjpop {
  position: fixed; z-index: 1400; box-sizing: border-box;
  max-width: min(620px, calc(100vw - 24px)); max-height: min(64vh, 420px); overflow-y: auto;
  padding: 12px 14px 14px; background: #fff;
  border: 1px solid #e6ebf3; border-radius: 10px;
  box-shadow: 0 10px 28px rgba(17, 40, 73, .14);
}
.spm-mjpop-h { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.spm-mjpop-h b { font-size: 13.5px; font-weight: 700; color: #1D5C8A; }
.spm-mjpop-tip { font-size: 12px; color: #9aa5b5; }
.spm-mjpop-x { margin-left: auto; font-size: 12.5px; color: #8a94a6; cursor: pointer; }
.spm-mjpop-x:hover { color: #1D5C8A; }
.spm-mjpop-b { display: flex; flex-wrap: wrap; gap: 8px 10px; }
.spm-mjpop-chip {
  flex: none; padding: 4px 13px; border: 1px solid #dfe6ee; border-radius: 999px;
  background: #fff; color: #303133; font-size: 12.5px; line-height: 18px;
  cursor: pointer; transition: .15s;
}
.spm-mjpop-chip:hover { border-color: #bcd8ff; color: #1D5C8A; background: #f4f9ff; }
.spm-mjpop-chip.on { background: #1D5C8A; border-color: #1D5C8A; color: #fff; font-weight: 600; }

.spm-grp-tag {
  font-style: normal; font-size: 11px; font-weight: 500; color: #b26b00;
  background: #fff5e6; border: 1px solid #ffe0ad; border-radius: 4px;
  padding: 0 4px; margin-left: 6px; vertical-align: 1px; white-space: nowrap;
}
/* 「新增」标记：今年新增、无往年录取数据的院校专业 */
.spm-new-tag { color: #1a7f5a; background: #eafaf3; border-color: #b7e8d3; }



/* ===== 会员升级 / 正式期闸门弹窗（#memberGateHost） =====
 * 正式期：模拟锁死、免费用户只有第 1 页。
 * 服务端 403 的 reason 统一走这里，按钮直接落到「开通会员」或「去录正式成绩」。 */
#memberGateHost .am-mask {
  position: fixed; inset: 0; background: rgba(8, 18, 36, .55); z-index: 1200;
  animation: mgFade .18s ease-out;
}
@keyframes mgFade { from { opacity: 0; } }
@keyframes mgPop { from { opacity: 0; transform: translate(-50%, -46%) scale(.95); } }
#memberGateHost .am-card {
  position: fixed; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: min(94vw, 470px); max-height: 92vh; overflow: auto; background: #fff;
  border-radius: 18px; box-shadow: 0 30px 70px -12px rgba(6, 20, 45, .5);
  z-index: 1201; padding: 22px 22px 16px; animation: mgPop .22s cubic-bezier(.34, 1.36, .64, 1);
}
#memberGateHost .am-x {
  position: absolute; top: 10px; right: 10px; width: 26px; height: 26px; border-radius: 50%;
  border: 0; background: #f2f4f8; color: #7b8698; font-size: 12px; line-height: 1; cursor: pointer;
}
#memberGateHost .am-x:hover { background: #e8ecf3; color: #47536a; }
#memberGateHost .mg-head { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 14px; padding-right: 22px; }
#memberGateHost .mg-badge {
  flex: none; width: 40px; height: 40px; border-radius: 11px; background: #FAEEDA; color: #854F0B;
  display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; letter-spacing: .02em;
}
#memberGateHost .mg-badge.vip { background: #EEEDFE; color: #534AB7; }
#memberGateHost .mg-t { font-size: 16px; font-weight: 700; color: #16243c; line-height: 1.35; }
#memberGateHost .mg-s { font-size: 13px; color: #5b6b80; line-height: 1.65; margin-top: 5px; }
#memberGateHost .mg-plans { display: grid; gap: 8px; margin: 2px 0 15px; }
#memberGateHost .mg-plan {
  display: flex; gap: 10px; align-items: baseline; background: #f6f8fb; border-radius: 10px;
  padding: 9px 12px; font-size: 12.5px; color: #4a5a70; line-height: 1.55;
}
#memberGateHost .mg-plan b { flex: none; color: #16243c; font-size: 12px; }
#memberGateHost .mg-actions { display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap; }
#memberGateHost .mg-foot { margin-top: 11px; font-size: 11.5px; color: #93a0b1; line-height: 1.6; }
.vb-pg-vip { font-size: 12px; color: #17436E; background: #EAF2F9; border-radius: 6px; padding: 1px 7px; margin-left: 2px; white-space: nowrap; }
/* 正式期志愿表锁定态 */
.vb-gate-bar { margin: 10px 0 4px; padding: 10px 14px; border-radius: 10px; background: #fdf3e3; border: 1px solid #f3ddb8; color: #8a5300; font-size: 13px; line-height: 1.6; }
.vb-lock-tag { display: inline-block; font-size: 11.5px; color: #8a5300; background: #fdf3e3; border-radius: 5px; padding: 1px 6px; margin-left: 4px; white-space: nowrap; }
tr.vb-row-locked td { color: #9aa5b5; }
tr.vb-row-locked td b { color: #7c8798; }

/* 升学资讯模块被后台关闭时，首页只留右侧推荐栏，占满整行 */
.home-cols.solo { grid-template-columns: minmax(0,1fr); }
@media (max-width: 900px) { .home-cols.solo { grid-template-columns: 1fr; } }
