:root{
  --bg:#f4f6fb; --card:#ffffff; --line:#e6eaf2; --line2:#eef2f8;
  --txt:#1f2733; --txt2:#5b6678; --txt3:#9aa4b5;
  --brand:#2563eb; --brand2:#0ea5e9; --brand-soft:#eaf1ff;
  --red:#e0413e; --green:#11965a; --orange:#e0820a; --purple:#7c3aed;
  --chip:#eef2f8; --chip2:#f6f8fc;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--txt);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-size:13px;line-height:1.55}
a{color:var(--brand)}
.wrap{max-width:1280px;margin:0 auto;padding:0 18px 56px}
header.top{background:linear-gradient(120deg,#1e3a8a,#2563eb 60%,#0ea5e9);color:#fff;padding:20px 0 16px}
header.top .inner{max-width:1280px;margin:0 auto;padding:0 18px}
header.top h1{margin:0;font-size:21px;font-weight:800;letter-spacing:.5px;display:flex;align-items:center;gap:10px}
header.top h1 .badge{font-size:11px;background:rgba(255,255,255,.18);padding:2px 9px;border-radius:20px;font-weight:600}
header.top .sub{margin-top:6px;font-size:12.5px;opacity:.92}

.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:14px 0 4px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px 14px}
.kpi .v{font-size:20px;font-weight:800;color:var(--brand);font-variant-numeric:tabular-nums}
.kpi .l{font-size:11px;color:var(--txt3);margin-top:2px}

.panel{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin-bottom:14px;box-shadow:0 1px 2px rgba(20,40,80,.03)}
.panel h2{margin:0 0 12px;font-size:15px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.panel h2 .tag{font-size:11px;color:var(--txt3);font-weight:400}

/* 主搜索区 */
/* 图标/徽标对齐：所有字段标签强制单行（label 行高一致 → 下面的 select/输入框顶部对齐） */
.field label{display:block;font-size:11.5px;color:var(--txt2);margin-bottom:5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.field label .hint{color:var(--txt3);font-weight:400}
.field input[type=text]{width:100%;padding:10px 12px;border:1.5px solid var(--line);border-radius:10px;background:#fff;color:var(--txt);font-size:14px;outline:none;transition:.15s}
.field input[type=text]:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.major-resolve{margin-top:7px;font-size:12px;min-height:18px;color:var(--txt2)}
.major-resolve .ok{color:var(--green);font-weight:600}
.major-resolve .neu{color:var(--txt3)}
.major-resolve .pillx{display:inline-block;background:var(--brand-soft);color:var(--brand);border-radius:6px;padding:1px 7px;margin:0 3px 3px 0;font-size:11px}
.major-resolve .old{background:#fff3e0;color:var(--orange)}

/* 筛选网格 */
.filters{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:10px;margin-top:6px}
.filters .field select{width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--txt);font-size:12.5px;outline:none}
.filters .field select:focus{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-soft)}
/* 注：筛选区底部的「说明（必选/可选 + 三项升级 + 移除项）」长文块已按要求移除，对应样式规则同步清理 */
/* —— 必选项 / 可选项 分组 —— */
.filters .filters-sep{grid-column:1/-1;display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:var(--txt2);margin-top:2px;padding-top:7px;border-top:1px dashed var(--line)}
.filters .filters-sep:first-child{margin-top:0;padding-top:0;border-top:none}
.filters .filters-sep em{font-style:normal;font-weight:400;font-size:11.5px;color:var(--txt3)}
.filters .filters-sep.req{color:#d93a33}
.filters .filters-sep.req .sepbar{display:inline-block;width:3px;height:13px;border-radius:2px;background:#e0413e}
.filters .field.req select{border-color:#f2c7c4;background:#fffaf9}
.filters .field.req select:focus{border-color:#e0413e;box-shadow:0 0 0 2px rgba(224,65,62,.12)}
.filters .field.req label{color:#c9362f}
/* —— 专业：可输入搜索框（输入名称/代码，实时下拉候选） —— */
.majwrap{position:relative}
.majinput{width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--txt);font-size:12.5px;outline:none}
.filters .field.req .majinput{border-color:#f2c7c4;background:#fffaf9}
.majinput:focus{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-soft)}
.filters .field.req .majinput:focus{border-color:#e0413e;box-shadow:0 0 0 2px rgba(224,65,62,.12)}
.majdrop{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:30;max-height:260px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 6px 20px rgba(30,45,70,.14)}
.majdrop[hidden]{display:none}
.majopt{display:flex;align-items:center;gap:7px;padding:6px 10px;font-size:12.5px;color:var(--txt);cursor:pointer}
.majopt:hover,.majopt.hl{background:var(--brand-soft)}
.majopt b{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--brand);font-weight:700;white-space:nowrap}
.majopt .majlv{margin-left:auto;font-size:10px;color:var(--txt3);background:var(--chip2);border-radius:4px;padding:1px 6px;white-space:nowrap}
.majdrop-empty{padding:14px 12px;font-size:12px;color:var(--txt3);text-align:center}
/* 注：原「学历多选 chips」「占整行字段」样式（.field.wide / .chkbox / .chk）已随学历改回单选下拉一并移除 */
.reqbadge{display:inline-block;font-style:normal;font-size:9.5px;font-weight:700;color:#fff;background:#e0413e;border-radius:4px;padding:0 4px;margin-left:4px;line-height:14px;vertical-align:middle}
/* —— 全站小徽标/标签统一垂直对齐（badge / tag / pill / pillx / 层级标签等内联元素） —— */
header.top h1 .badge,.panel h2 .tag,.pill,.pillx,.majopt .majlv,.mjcount{vertical-align:middle}
.pillx{line-height:1.5}
.majopt .majlv{line-height:16px}
.row-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:14px}
/* —— 检索板块：筛选 + 已选专业 + 操作按钮 —— */
.search-panel h2 .collapse-btn{margin-left:auto;white-space:nowrap;font-size:11px;font-weight:400;color:var(--brand);cursor:pointer}
.search-panel h2 .collapse-btn:hover{text-decoration:underline}
/* 已选专业（点「专业目录速查」选定后出现） */
.majsel{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--brand-soft);border:1px solid #cfe0ff;border-radius:10px;padding:6px 10px;margin:-2px 0 12px}
.majsel[hidden]{display:none}   /* 关键：display:flex 会压过 UA 的 [hidden]{display:none}，必须显式声明 */
.majsel .ms-label{font-size:11.5px;font-weight:700;color:var(--brand)}
.majsel .major-resolve{margin:0;min-height:0;font-size:12px;flex:1}
.majsel .major-resolve b{color:var(--brand);font-weight:800;margin-right:3px}
.majsel .ms-clear{border:1px solid #cfe0ff;background:#fff;color:var(--brand);border-radius:7px;font-size:11.5px;font-weight:600;padding:2px 9px;cursor:pointer;white-space:nowrap}
.majsel .ms-clear:hover{background:#fff;border-color:var(--brand)}
.search-panel .row-tools{margin-top:16px;padding-top:15px;border-top:1px solid var(--line)}
.search-panel .row-tip{margin-top:9px;font-size:11.5px;color:var(--txt3);line-height:1.6}
.btn{padding:8px 15px;border-radius:9px;border:1px solid var(--line);background:#fff;color:var(--txt2);cursor:pointer;font-size:13px;font-weight:600;transition:.15s}
.btn:hover{border-color:var(--brand);color:var(--brand)}
.btn.primary{background:var(--brand);color:#fff;border-color:var(--brand)}
.btn.primary:hover{opacity:.92;color:#fff}
.btn.sm{padding:4px 10px;font-size:12px}
.btn.ghost{background:var(--chip2)}

/* 表格 */
.tbl-scroll{overflow:auto;max-height:66vh;border:1px solid var(--line);border-radius:10px}
#tbl{min-width:1980px}
table{width:100%;border-collapse:collapse;font-size:12.5px}
th{background:#f7f9fd;color:var(--txt2);font-weight:700;text-align:left;padding:9px 9px;border-bottom:1px solid var(--line);position:sticky;top:0;cursor:pointer;white-space:nowrap;z-index:2;user-select:none}
th:hover{color:var(--brand)}
th.sorted::after{content:" ▾";color:var(--brand)}
th.sorted.asc::after{content:" ▴"}
td{padding:8px 9px;border-bottom:1px solid var(--line2);vertical-align:top}
tbody tr:hover{background:#f7fbff;cursor:pointer}
.clip{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.clip2{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.num{text-align:right;font-variant-numeric:tabular-nums}
.score{font-weight:800;color:var(--red)}
.score.low{color:var(--green)}
.comp{font-weight:700}
.pill{display:inline-block;padding:1px 7px;border-radius:6px;background:var(--chip);color:var(--txt2);font-size:11px;margin:1px 2px 1px 0;white-space:nowrap}
.pill.b{background:var(--brand-soft);color:var(--brand)}
.pill.g{background:#e7f7ee;color:var(--green)}
.pill.r{background:#fdeaea;color:var(--red)}
.pill.o{background:#fff3e0;color:var(--orange)}
.pill.p{background:#f1e9ff;color:var(--purple)}
.empty{padding:44px;text-align:center;color:var(--txt3)}
.pager{display:flex;gap:6px;align-items:center;justify-content:center;padding:14px;flex-wrap:wrap}
.pager .btn.active{background:var(--brand);color:#fff;border-color:var(--brand)}
.star{color:#f59e0b;cursor:pointer;font-size:15px}

/* 抽屉 */
#mask{position:fixed;inset:0;background:rgba(15,23,42,.38);display:none;z-index:40}
#drawer{position:fixed;top:0;right:0;height:100%;width:min(600px,95vw);background:#fff;z-index:50;transform:translateX(100%);transition:.22s;overflow-y:auto;box-shadow:-10px 0 34px rgba(15,23,42,.14)}
#drawer.open{transform:translateX(0)}
.dhead{padding:18px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:1}
.dhead h3{margin:0 0 5px;font-size:17px;display:flex;align-items:center;gap:8px}
.dhead .m{font-size:12px;color:var(--txt3)}
.dbody{padding:16px 20px 48px}
.kv{display:grid;grid-template-columns:112px 1fr;gap:7px 12px;font-size:12.5px}
.kv .k{color:var(--txt3)}
.kv .v{color:var(--txt);word-break:break-all}
/* 详情页标签：服务基层项目 / 资格证书（把合并长串拆成可读标签） */
.kv .pillx{display:inline-block;background:var(--brand-soft);color:var(--brand);border-radius:6px;padding:1px 7px;margin:1px 4px 3px 0;font-size:11.5px;line-height:1.5}
.kv .neu{color:var(--txt3);font-size:11.5px}
.sec{margin-top:18px}
.sec h4{margin:0 0 9px;font-size:14px;color:var(--brand);border-left:3px solid var(--brand);padding-left:8px}
.chart{display:flex;align-items:flex-end;gap:10px;height:120px;padding:8px 0;border-bottom:1px solid var(--line)}
.chart .c{flex:1;text-align:center}
.chart .b{background:linear-gradient(#60a5fa,#2563eb);border-radius:5px 5px 0 0;margin:0 auto;width:62%}
.chart .c .t{font-size:11px;margin-top:4px;color:var(--txt2)}
.chart .c .y{font-size:10px;color:var(--txt3)}
.cyr{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.cyr .i{background:var(--chip2);border:1px solid var(--line);border-radius:9px;padding:7px 11px;font-size:11.5px}
.cyr .i b{display:block;font-size:15px;color:var(--brand)}
.note{background:#f7f9fd;border:1px solid var(--line);border-radius:9px;padding:11px;font-size:12.5px;color:var(--txt2);white-space:pre-wrap;word-break:break-word;line-height:1.7}
/* 注：原「📌 口径与说明」面板与其底部图例行已按要求从页面移除，图例样式规则同步清理（.note 仍被详情抽屉复用，故保留） */
.tip{font-size:11.5px;color:var(--txt3)}

/* 专业目录速查 modal */
#catModal{position:fixed;inset:0;background:rgba(15,23,42,.4);display:none;z-index:60;padding:30px}
#catBox{background:#fff;border-radius:14px;max-width:1080px;margin:0 auto;max-height:86vh;overflow:auto;padding:20px 24px}
#catBox h3{margin:0 0 12px;font-size:16px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#catBox h3 .tag{font-size:11px;color:var(--txt3);font-weight:400}
.catsearch{position:sticky;top:-20px;background:#fff;padding:8px 0 10px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;z-index:2;border-bottom:1px solid var(--line2);margin-bottom:12px}
.catsearch input{flex:1;min-width:240px;padding:9px 12px;border:1.5px solid var(--line);border-radius:10px;font-size:13.5px;outline:none}
.catsearch input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.catsearch .catstats{font-size:11.5px;color:var(--txt3);white-space:nowrap}
.catgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}
.catcol h5{margin:0 0 8px;font-size:13px;color:var(--brand);border-bottom:1px solid var(--line2);padding-bottom:4px;display:flex;align-items:baseline;gap:6px}
.catcol h5 em{font-style:normal;font-size:11px;color:var(--txt3);font-weight:400}
.catcol .cls{font-size:12.5px;color:var(--txt);padding:4px 0 2px;display:flex;align-items:center;gap:6px;border-top:1px dashed var(--line2);margin-top:4px}
.catcol .cls b{color:var(--brand);font-weight:700}
.catcol .cls .mjcount{margin-left:auto;font-size:10.5px;color:var(--txt3)}
.catcol .mjs{display:flex;flex-wrap:wrap;gap:4px;margin:2px 0 6px}
.catcol .mj{background:var(--chip2);border:1px solid var(--line);border-radius:7px;padding:2px 7px;font-size:11.5px;color:var(--txt2);cursor:pointer;transition:.12s}
.catcol .mj:hover{background:var(--brand-soft);border-color:var(--brand);color:var(--brand)}
.catcol .mj b{color:var(--brand);font-weight:700;margin-right:3px}
.closeX{float:right;cursor:pointer;color:var(--txt3);font-size:20px;line-height:1}
legend.example{font-size:11px;color:var(--txt3);margin-top:8px;line-height:1.6}
.collapse-btn{cursor:pointer;color:var(--brand);font-size:12px;font-weight:600;user-select:none}

/* 报考须知（收进按钮，点击展开 / 收起） */
.panel.notice{padding:0;border-color:#dbe6ff;background:linear-gradient(180deg,#f8fbff,#fff);overflow:hidden}
.notice-toggle{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:transparent;border:0;padding:14px 18px;cursor:pointer;font:inherit;color:inherit;transition:background .15s}
.notice-toggle:hover{background:rgba(37,99,235,.05)}
.notice-toggle:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--brand);border-radius:14px}
.notice-toggle .nt-ico{font-size:19px;flex:0 0 auto;line-height:1}
.notice-toggle .nt-txt{flex:1 1 auto;min-width:0}
.notice-toggle .nt-txt b{display:block;font-size:15px;font-weight:800;letter-spacing:.2px}
.notice-toggle .nt-txt em{display:block;font-style:normal;font-size:11.5px;color:var(--txt3);margin-top:3px;line-height:1.6}
.notice-toggle .nt-txt em b{display:inline;font-size:inherit;color:var(--red);font-weight:700}
.notice-toggle .nt-cue{flex:0 0 auto;font-size:12px;font-weight:700;color:var(--brand);background:var(--brand-soft);border-radius:20px;padding:4px 13px;white-space:nowrap;transition:.15s}
.notice-toggle:hover .nt-cue{background:var(--brand);color:#fff}
.notice-toggle.open .nt-cue{background:var(--chip);color:var(--txt2)}
.notice-toggle.open:hover .nt-cue{background:var(--txt2);color:#fff}
.notice-body{padding:2px 18px 16px;border-top:1px solid var(--line2);animation:noticeIn .18s ease-out}
.notice-body[hidden]{display:none}
.notice-body .ncard-wrap{margin-top:12px}
@keyframes noticeIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.ncard-wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px;margin-bottom:14px}
.ncard{border:1px solid var(--line);border-radius:11px;padding:11px 13px;background:#fff}
.ncard.hot{border-color:#f6c6a0;background:#fffaf3}
.ncard .nt{font-weight:700;font-size:13px;margin-bottom:5px;color:var(--txt)}
.ncard.hot .nt{color:var(--orange)}
.ncard .nd{font-size:12px;color:var(--txt2);line-height:1.7}
.ncard .nd b{color:var(--brand)}
.ncard.hot .nd b{color:var(--orange)}
.tl{display:flex;flex-wrap:wrap;gap:8px}
.tl .ti{flex:1 1 150px;border:1px solid var(--line);border-radius:9px;padding:8px 10px;background:#fff;min-width:150px}
.tl .ti.new{border-color:#f6c6a0;background:#fffaf3}
.tl .ti .d{font-size:11px;color:var(--txt3)}
.tl .ti .e{font-size:12.5px;font-weight:600;color:var(--txt);margin-top:2px}
.tl .ti .n{font-size:11px;color:var(--brand);margin-top:2px;font-variant-numeric:tabular-nums}
.tl .ti.new .n{color:var(--orange)}
.notice-note{margin-top:12px;font-size:12px;color:var(--txt3);background:var(--chip2);border-radius:8px;padding:8px 11px}

/* 往年数据降级参考 */
.ref{color:var(--txt3);font-style:italic;font-variant-numeric:tabular-nums}
.refmark{color:var(--orange);font-size:9px;font-weight:800;margin-left:1px;vertical-align:super;font-style:normal;cursor:help}
/* 注：原结果区顶部统计条的 .bar / .c-same / .c-ref 规则已随该元素一并移除 */
.warnbox{background:#fffaf3;border:1px solid #f6c6a0;border-radius:10px;padding:11px 13px;font-size:12.5px;color:#8a5a12;line-height:1.75;margin-bottom:12px}
.warnbox b{color:var(--orange)}
.empty-nohit{padding:38px 20px;text-align:center}
.empty-nohit .big{font-size:19px;font-weight:800;color:var(--txt2);margin-bottom:10px}
.empty-nohit .sub{font-size:12.5px;color:var(--txt3);line-height:2;max-width:600px;margin:0 auto}
.empty-nohit .sub b{color:var(--brand)}

