/* ============================================
   优学仕教育 · 进面分数线查询页
   复用 variables.css 设计令牌（品牌紫体系）
   ============================================ */
:root {
  --sq-radius: 14px;
}

html { scroll-behavior: smooth; }
body {
  font-family: var(--font-cn);
  color: var(--ink-900);
  background: var(--bg-soft);
  -webkit-font-smoothing: antialiased;
}

/* ---------- 按钮 ---------- */
.sq-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  font-family: inherit; font-size: 15px; font-weight: 600;
  padding: 10px 20px; border-radius: 10px; border: 1px solid transparent;
  cursor: pointer; text-decoration: none; line-height: 1;
  transition: all var(--dur-fast) var(--ease); white-space: nowrap;
}
.sq-btn--primary {
  background: var(--grad-brand); color: #fff;
  box-shadow: var(--shadow-purple);
}
.sq-btn--primary:hover { transform: translateY(-1px); box-shadow: 0 12px 26px rgba(139,60,246,.38); }
.sq-btn--gold {
  background: var(--grad-gold); color: #3a2505; font-weight: 700;
  box-shadow: var(--shadow-gold);
}
.sq-btn--gold:hover { transform: translateY(-1px); }
.sq-btn--ghost {
  background: #fff; color: var(--purple-600); border-color: var(--purple-300);
}
.sq-btn--ghost:hover { background: var(--purple-100); }
.sq-btn--outline { background: transparent; color: #fff; border-color: rgba(255,255,255,.65); }
.sq-btn--outline:hover { background: rgba(255,255,255,.12); }
.sq-btn--mini { padding: 7px 14px; font-size: 13px; border-radius: 8px; }
.sq-btn--lg { padding: 13px 30px; font-size: 16px; border-radius: 12px; }

/* ---------- 导航 ---------- */
.sq-nav {
  position: sticky; top: 0; z-index: 100;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line-soft);
}
.sq-nav__inner {
  max-width: var(--container-max);
  margin: 0 auto; padding: 0 var(--container-pad);
  height: var(--nav-h);
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
}
.sq-nav__logo img { height: 44px; width: auto; display: block; }
.sq-nav__menu { display: flex; gap: 6px; }
.sq-nav__link {
  color: var(--ink-700); text-decoration: none; font-size: 15px; font-weight: 500;
  padding: 8px 14px; border-radius: 8px; transition: all var(--dur-fast) var(--ease);
}
.sq-nav__link:hover { color: var(--purple-600); background: var(--purple-50); }
.sq-nav__link.is-active { color: var(--purple-600); background: var(--purple-100); font-weight: 700; }
.sq-nav__cta .sq-btn { padding: 9px 16px; }

/* ---------- Hero ---------- */
.sq-hero { position: relative; overflow: hidden; background: var(--grad-hero); color: #fff; }
.sq-hero__bg {
  position: absolute; inset: 0; pointer-events: none; opacity: .5;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: radial-gradient(ellipse 90% 80% at 50% 0%, #000 40%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse 90% 80% at 50% 0%, #000 40%, transparent 100%);
}
.sq-hero__inner {
  position: relative; max-width: var(--container-max); margin: 0 auto;
  padding: clamp(44px, 6vw, 84px) var(--container-pad) clamp(36px, 5vw, 68px);
  text-align: center;
}
.sq-hero__tag {
  display: inline-block; font-size: 13px; letter-spacing: 2px; color: var(--gold-400);
  background: rgba(245,182,66,.12); border: 1px solid rgba(245,182,66,.35);
  padding: 6px 16px; border-radius: var(--radius-full); margin-bottom: 18px;
}
.sq-hero__title {
  font-size: var(--fs-h1); font-weight: 800; line-height: 1.25; margin: 0 0 16px;
}
.sq-hero__title em {
  font-style: normal;
  background: linear-gradient(120deg, #f8c96a, #f5b642 60%, #f97316);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.sq-hero__sub {
  max-width: 720px; margin: 0 auto clamp(22px, 3vw, 34px);
  color: rgba(255,255,255,.82); font-size: 16px; line-height: 1.9;
}
.sq-hero__stats {
  display: flex; justify-content: center; flex-wrap: wrap; gap: 14px;
  max-width: 960px; margin: 0 auto;
}
.sq-stat {
  flex: 1 1 180px; max-width: 220px;
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14);
  border-radius: var(--sq-radius); padding: 16px 14px; backdrop-filter: blur(6px);
  display: flex; flex-direction: column; gap: 4px;
}
.sq-stat strong {
  font-size: clamp(22px, 2.4vw, 30px); font-weight: 800; color: #fff; line-height: 1.2;
  font-variant-numeric: tabular-nums;
}
.sq-stat strong .grad { background: linear-gradient(120deg,#f8c96a,#f5b642); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.sq-stat span { font-size: 12.5px; color: rgba(255,255,255,.7); }

/* ---------- 主体 ---------- */
.sq-main {
  max-width: var(--container-max); margin: 0 auto;
  padding: clamp(20px, 3vw, 40px) var(--container-pad) 40px;
  margin-top: clamp(-18px, -2vw, -10px);
}
.sq-card {
  background: #fff; border: 1px solid var(--line-soft);
  border-radius: var(--sq-radius); box-shadow: var(--shadow-sm);
}

/* 筛选卡 */
.sq-filter { padding: 22px 24px 10px; margin-bottom: 20px; }
.sq-filter__title {
  font-size: 17px; font-weight: 800; color: var(--ink-900); margin-bottom: 16px;
  display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
}
.sq-filter__hint { font-size: 12px; font-weight: 400; color: var(--ink-400); }
.sq-filter__row { display: flex; gap: 14px; margin-bottom: 14px; flex-wrap: wrap; }
.sq-filter__row--grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.sq-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.sq-field--grow { flex: 1 1 100%; }
.sq-field__label { font-size: 13px; font-weight: 600; color: var(--ink-500); }
.sq-field select,
.sq-field input {
  font-family: inherit; font-size: 14px; color: var(--ink-900);
  border: 1.5px solid var(--line); border-radius: 10px;
  padding: 10px 12px; background: #fff; outline: none;
  transition: border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
  width: 100%;
}
.sq-field select { cursor: pointer; }
.sq-field input::placeholder { color: var(--ink-400); }
.sq-field select:focus, .sq-field input:focus {
  border-color: var(--purple-500); box-shadow: 0 0 0 3px rgba(139,60,246,.12);
}
.sq-filter__actions { display: flex; gap: 10px; align-items: flex-end; padding-bottom: 0; margin-left: auto; }
.sq-filter__actions .sq-btn { min-width: 86px; }

/* chips */
.sq-chips { display: flex; flex-wrap: wrap; gap: 8px; padding-bottom: 14px; }
.sq-chip {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--purple-100); color: var(--purple-700);
  border: 1px solid var(--purple-200);
  font-size: 13px; font-weight: 600; padding: 5px 12px; border-radius: var(--radius-full);
}
.sq-chip b { font-weight: 400; }
.sq-chip button {
  border: 0; background: none; cursor: pointer; color: var(--purple-600);
  font-size: 15px; line-height: 1; padding: 0;
}
.sq-chip button:hover { color: var(--danger); }

/* 结果卡 */
.sq-result { padding: 16px 20px 20px; overflow: hidden; }
.sq-result__bar {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  flex-wrap: wrap; padding-bottom: 12px; border-bottom: 1px dashed var(--line);
  margin-bottom: 6px;
}
.sq-result__count { font-size: 14px; color: var(--ink-500); }
.sq-result__count strong { color: var(--purple-600); font-size: 18px; margin: 0 3px; }
.sq-result__cur { margin-left: 8px; color: var(--ink-400); font-size: 13px; }
.sq-result__tools { display: flex; align-items: center; gap: 10px; }
.sq-tool { font-size: 13px; color: var(--ink-500); display: inline-flex; align-items: center; gap: 6px; }
.sq-tool select {
  font-family: inherit; font-size: 13px; color: var(--ink-900);
  border: 1.5px solid var(--line); border-radius: 8px; padding: 5px 8px;
}

/* 表格 */
.sq-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.sq-table {
  width: 100%; min-width: 980px; border-collapse: collapse; font-size: 14px;
}
.sq-table thead th {
  position: sticky; top: 0;
  background: var(--bg-soft); color: var(--ink-500);
  font-size: 13px; font-weight: 600; text-align: left;
  padding: 11px 12px; border-bottom: 1px solid var(--line);
  white-space: nowrap; user-select: none;
}
.sq-table th.is-sort { cursor: pointer; }
.sq-table th.is-sort:hover { color: var(--purple-600); }
.sq-sort { display: inline-block; width: 0; height: 0; margin-left: 5px; vertical-align: middle;
  border-left: 4px solid transparent; border-right: 4px solid transparent; }
.sq-table th.sort-asc .sq-sort { border-bottom: 6px solid var(--purple-500); border-top: 0; }
.sq-table th.sort-desc .sq-sort { border-top: 6px solid var(--purple-500); border-bottom: 0; }
.sq-table tbody td {
  padding: 12px; border-bottom: 1px solid var(--line-soft); vertical-align: middle;
}
.sq-table tbody tr { transition: background var(--dur-fast) var(--ease); }
.sq-table tbody tr:hover { background: var(--purple-50); }
.sq-table .col-year { color: var(--ink-500); font-variant-numeric: tabular-nums; }
.sq-table .col-year .badge {
  display: inline-block; background: var(--purple-100); color: var(--purple-700);
  font-size: 12px; font-weight: 700; padding: 3px 8px; border-radius: 6px;
}
.sq-table .col-city { font-weight: 600; white-space: nowrap; }
.sq-table .unit-name { font-weight: 600; color: var(--ink-900); line-height: 1.45; }
.sq-table .unit-sup { display: block; font-size: 12px; color: var(--ink-400); font-weight: 400; margin-top: 3px; max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sq-table .post-name { font-weight: 600; color: var(--ink-900); line-height: 1.45; }
.sq-table .attr-chip {
  display: inline-block; font-size: 11.5px; font-weight: 500; margin-top: 4px;
  padding: 2px 8px; border-radius: 5px; line-height: 1.5; max-width: 100%;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.attr-普通, .attr-其他 { background: var(--ink-900); color: #fff; }
.attr-高校毕业生 { background: var(--purple-600); color: #fff; }
.attr-项目人员 { background: #6b21a8; color: #fff; }
.attr-兼通 { background: #0e7490; color: #fff; }
.attr-转入 { background: #b45309; color: #fff; }
.sq-table .col-edu { color: var(--ink-500); white-space: nowrap; }
.sq-table .col-hc { text-align: center; color: var(--ink-700); font-variant-numeric: tabular-nums; }
.sq-table .col-min { font-weight: 800; font-size: 16px; color: var(--purple-700); font-variant-numeric: tabular-nums; }
.sq-table .col-avg, .sq-table .col-max { color: var(--ink-700); font-variant-numeric: tabular-nums; white-space: nowrap; }
.sq-table .col-max .mx-sub { font-size: 12px; color: var(--ink-400); font-weight: 400; }
.sq-table .col-pay { color: var(--gold-500); font-weight: 600; font-variant-numeric: tabular-nums; }
.sq-table td.muted { color: var(--ink-400); font-weight: 400; }
.sq-table .score-cell { text-align: left; }
.sq-table .score-null { color: var(--ink-300); }

/* 移动端卡片 */
.sq-cards { display: none; flex-direction: column; gap: 12px; }
.sq-card-item {
  border: 1px solid var(--line-soft); border-radius: var(--sq-radius);
  padding: 14px 16px; background: #fff; box-shadow: var(--shadow-sm);
}
.sq-card-item__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.sq-card-item__city { font-size: 12px; font-weight: 700; color: var(--purple-600); background: var(--purple-100); padding: 3px 10px; border-radius: var(--radius-full); white-space: nowrap; }
.sq-card-item__unit { font-size: 14px; font-weight: 700; color: var(--ink-900); line-height: 1.4; }
.sq-card-item__unit small { display: block; font-size: 12px; font-weight: 400; color: var(--ink-400); margin-top: 2px; }
.sq-card-item__post { font-size: 13px; color: var(--ink-700); margin-bottom: 8px; line-height: 1.5; }
.sq-card-item__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 12px; color: var(--ink-500); }
.sq-card-item__meta b { color: var(--ink-900); }
.sq-card-item__score {
  display: flex; align-items: baseline; gap: 14px; margin-top: 10px; padding-top: 10px;
  border-top: 1px dashed var(--line);
}
.sq-card-item__min { font-size: 15px; color: var(--ink-500); }
.sq-card-item__min b { font-size: 26px; font-weight: 800; color: var(--purple-700); margin-left: 4px; }

/* 空状态 */
.sq-empty { text-align: center; padding: 56px 20px 60px; }
.sq-empty__icon { font-size: 52px; line-height: 1; margin-bottom: 14px; }
.sq-empty__title { font-size: 18px; font-weight: 700; color: var(--ink-900); margin-bottom: 8px; }
.sq-empty__desc { font-size: 14px; color: var(--ink-400); line-height: 1.8; margin-bottom: 20px; }

/* 分页 */
.sq-pager {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  padding: 18px 4px 4px; flex-wrap: wrap;
}
.sq-pager button {
  font-family: inherit; font-size: 14px; color: var(--ink-700);
  background: #fff; border: 1px solid var(--line); border-radius: 8px;
  min-width: 36px; height: 36px; padding: 0 8px; cursor: pointer;
  transition: all var(--dur-fast) var(--ease);
}
.sq-pager button:hover:not(:disabled):not(.is-cur) { border-color: var(--purple-400); color: var(--purple-600); }
.sq-pager button.is-cur {
  background: var(--grad-brand); color: #fff; border-color: transparent; font-weight: 700;
  box-shadow: var(--shadow-purple);
}
.sq-pager button:disabled { color: var(--ink-300); cursor: not-allowed; }
.sq-pager .ellipsis { border: 0; background: none; cursor: default; min-width: 20px; color: var(--ink-400); }

/* ---------- CTA / 页脚 ---------- */
.sq-cta { background: var(--grad-deep); color: #fff; }
.sq-cta__inner {
  max-width: var(--container-max); margin: 0 auto;
  padding: clamp(40px, 5vw, 68px) var(--container-pad);
  text-align: center;
}
.sq-cta h2 { font-size: var(--fs-h3); font-weight: 800; margin-bottom: 10px; }
.sq-cta p { color: rgba(255,255,255,.78); margin: 0 auto 24px; max-width: 620px; line-height: 1.8; }
.sq-cta__actions { display: flex; justify-content: center; gap: 14px; flex-wrap: wrap; }

.sq-footer { background: #160c2f; color: rgba(255,255,255,.75); }
.sq-footer__top {
  max-width: var(--container-max); margin: 0 auto; padding: 44px var(--container-pad) 30px;
  display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 30px;
}
.sq-footer__brand img { height: 42px; width: auto; margin-bottom: 12px; }
.sq-footer__brand p { font-size: 13.5px; line-height: 1.9; color: rgba(255,255,255,.6); max-width: 460px; }
.sq-footer__col h3 { color: #fff; font-size: 15px; margin-bottom: 12px; }
.sq-footer__col p { font-size: 13.5px; line-height: 2; }
.sq-footer__col a { color: rgba(255,255,255,.75); text-decoration: none; }
.sq-footer__col a:hover { color: var(--gold-400); }
.sq-footer__note {
  max-width: var(--container-max); margin: 0 auto; padding: 14px var(--container-pad);
  border-top: 1px solid rgba(255,255,255,.1);
  font-size: 12px; color: rgba(255,255,255,.42); line-height: 1.8; text-align: center;
}
.sq-footer__bottom {
  border-top: 1px solid rgba(255,255,255,.1); padding: 16px var(--container-pad);
  text-align: center; font-size: 12.5px; color: rgba(255,255,255,.5);
}

/* ---------- 响应式 ---------- */
@media (max-width: 1080px) {
  .sq-filter__row--grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 860px) {
  .sq-nav__menu .sq-nav__link:nth-child(n+3) { display: none; }
  .sq-cards { display: flex; }
  .sq-table-wrap { display: none; }
}
@media (max-width: 640px) {
  .sq-nav__inner { height: 64px; gap: 8px; }
  .sq-nav__logo img { height: 34px; }
  .sq-nav__cta .sq-btn { display: none; }
  .sq-nav__link { padding: 6px 10px; font-size: 14px; }
  .sq-filter__row--grid { grid-template-columns: 1fr 1fr; }
  .sq-filter__actions { width: 100%; }
  .sq-filter__actions .sq-btn { flex: 1; }
  .sq-hero__stats { gap: 8px; }
  .sq-stat { flex: 1 1 42%; max-width: none; padding: 12px 10px; }
  .sq-stat span { font-size: 12px; }
  .sq-footer__top { grid-template-columns: 1fr; gap: 22px; }
  .sq-result { padding: 14px; }
}
@media (max-width: 400px) {
  .sq-filter__row--grid { grid-template-columns: 1fr; }
}

/* 学历未收录标识（名单来源岗位） */
.edu-none {
  color: var(--ink-300);
  font-weight: 400;
  border-bottom: 1px dashed var(--ink-300);
  cursor: help;
}

/* 空状态内的小操作按钮 */
.sq-empty__desc .sq-empty__mini {
  display: inline-block;
  margin: 10px auto 0;
  padding: 7px 16px;
  font-size: 13px;
  vertical-align: middle;
}
.sq-empty__desc b { color: var(--ink-900); }

/* ---------- 考试类型切换 + 年份 ---------- */
.sq-filter__bar {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 12px; flex-wrap: wrap; margin: 2px 0 18px;
}
.sq-exam {
  display: inline-flex; align-items: center; gap: 4px;
  background: var(--purple-100); border: 1px solid var(--purple-200);
  border-radius: 999px; padding: 4px;
}
.sq-exam__btn {
  border: 0; background: transparent; cursor: pointer;
  font-family: inherit; font-size: 14px; font-weight: 600;
  color: var(--ink-500); padding: 8px 20px; border-radius: 999px;
  transition: all var(--dur-fast, .2s) var(--ease, ease); white-space: nowrap;
}
.sq-exam__btn:hover { color: var(--purple-600); }
.sq-exam__btn.is-active {
  background: var(--grad-brand, linear-gradient(135deg, #5f2fd0, #8b3cf6));
  color: #fff; box-shadow: 0 6px 16px rgba(139, 60, 246, .32);
}
.sq-field--year { min-width: 148px; margin-left: auto; }
.sq-field--year select { width: 100%; }

/* 省考模式：公示无学历/招考/平均最高/报名列，隐藏之 */
.sq-result.is-gwy .sq-table .col-edu,
.sq-result.is-gwy .sq-table .col-hc,
.sq-result.is-gwy .sq-table .col-avg,
.sq-result.is-gwy .sq-table .col-max,
.sq-result.is-gwy .sq-table .col-pay { display: none; }

/* 移动卡片头部年份徽章（省考卡片） */
.sq-card-item__head .badge {
  flex: 0 0 auto; align-self: center; white-space: nowrap;
}
