/* ============================================================
   三位一体查询网站 · 共享样式（设计系统落地）
   纯前端静态站 · 无构建 · 手机优先
   ============================================================ */
:root{
  --ink:#1f2937; --ink-2:#4b5563; --ink-3:#6b7280;
  --bg:#f7f8fa; --card:#fff; --line:#e6e8ec; --line-2:#eef0f4;
  --brand:#1d4ed8; --brand-2:#0e7490; --brand-soft:#eff4ff; --brand-line:#c7d7f8;
  --warn:#b45309; --warn-soft:#fff7e6; --warn-line:#fde9c2;
  --ok:#047857; --ok-soft:#ecfdf5; --err:#b91c1c; --err-soft:#fee2e2;
  --chong:#dc2626; --wen:#d97706; --bao:#2563eb;
  --x:#dfe3ea;
  --radius:10px; --radius-s:8px; --radius-pill:999px;
  --shadow:0 1px 3px rgba(16,24,40,.06),0 1px 2px rgba(16,24,40,.04);
  --shadow-lg:0 12px 32px rgba(15,23,42,.16);
  --maxw:780px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:"PingFang SC","Microsoft YaHei","Source Han Sans SC",system-ui,-apple-system,sans-serif;
  font-size:15px;line-height:1.6;
  -webkit-text-size-adjust:100%;
}
a{color:var(--brand);text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
img{max-width:100%;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 14px 96px;}
.appbar{
  position:sticky;top:0;z-index:40;background:var(--brand);color:#fff;
  display:flex;align-items:center;justify-content:space-between;
  padding:11px 14px;box-shadow:0 2px 8px rgba(29,78,216,.18);
}
.appbar .brand{font-weight:800;font-size:16px;letter-spacing:.5px;display:flex;align-items:center;gap:8px;}
.appbar .brand .logo{width:24px;height:24px;border-radius:7px;background:#fff;color:var(--brand);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:14px;}
.appbar .actions{display:flex;gap:6px;}
.appbar .act{
  background:rgba(255,255,255,.16);border:none;color:#fff;font-size:13px;font-weight:600;
  padding:6px 11px;border-radius:var(--radius-pill);display:flex;align-items:center;gap:4px;
}
.appbar .act:active{background:rgba(255,255,255,.28);}
.subbar{
  position:sticky;top:46px;z-index:39;background:#fff;border-bottom:1px solid var(--line);
  display:flex;gap:8px;padding:8px 14px;align-items:center;overflow-x:auto;
}
.subbar .seg{flex:1;display:flex;background:var(--bg);border-radius:var(--radius-pill);padding:3px;}
.subbar .seg a{flex:1;text-align:center;padding:7px 6px;font-size:13px;font-weight:600;color:var(--ink-3);border-radius:var(--radius-pill);}
.subbar .seg a.on{background:#fff;color:var(--brand);box-shadow:var(--shadow);}
.countbar{
  background:linear-gradient(90deg,#eff4ff,#f0f9ff);border:1px solid var(--brand-line);
  border-radius:var(--radius);margin:12px 0;padding:10px 12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;
}
.countbar .lead{font-size:13px;color:var(--brand);font-weight:700;}
.countbar .mini{display:flex;gap:6px;}
.countbar .mini .m{
  background:#fff;border:1px solid var(--line);border-radius:8px;padding:2px 9px;font-size:12px;font-weight:700;
}
.countbar .mini .m.c{color:var(--chong);} .countbar .mini .m.w{color:var(--wen);} .countbar .mini .m.b{color:var(--bao);}
.banner{
  background:var(--brand-soft);border:1px solid var(--brand-line);color:var(--brand);
  border-radius:var(--radius);padding:10px 12px;font-size:13px;font-weight:600;margin:12px 0;
  display:flex;align-items:center;justify-content:space-between;gap:8px;
}
.banner button{background:var(--brand);color:#fff;border:none;border-radius:var(--radius-pill);padding:6px 14px;font-weight:700;font-size:13px;}

/* ---------- 卡片 ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;margin:12px 0;box-shadow:var(--shadow);}
.card h3{margin:0 0 10px;font-size:16px;}
.card h4{margin:14px 0 6px;font-size:14.5px;color:var(--brand-2);}
.section-title{font-size:17px;font-weight:800;margin:22px 0 4px;display:flex;align-items:center;gap:8px;}
.section-title .ic{color:var(--brand);}
.muted{color:var(--ink-3);font-size:12.5px;}
.hint{font-size:12px;color:var(--ink-3);margin-top:6px;}

/* ---------- 学考九宫格 ---------- */
.grid9{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0;}
.gc{border:1px solid var(--line);border-radius:9px;background:#fff;text-align:center;padding:9px 2px 7px;}
.gc .lab{font-size:12.5px;color:var(--ink-2);font-weight:600;}
.gc .abtn{display:flex;justify-content:center;gap:4px;margin-top:7px;flex-wrap:wrap;}
.ab{
  width:34px;height:34px;border-radius:8px;border:1px solid var(--line);
  font-size:14px;font-weight:800;display:flex;align-items:center;justify-content:center;
  color:var(--ink-3);background:#fff;transition:.12s;
}
.ab:active{transform:scale(.92);}
.ab.A{background:#dcfce7;color:#15803d;border-color:#86efac;}
.ab.B{background:#dbeafe;color:#1d4ed8;border-color:#bfdbfe;}
.ab.C{background:#fef9c3;color:#a16207;border-color:#fde68a;}
.ab.D{background:#fed7aa;color:#c2410c;border-color:#fdba74;}
.ab.E{background:#fee2e2;color:#b91c1c;border-color:#fecaca;}
.ab.dim{opacity:.4;background:#f3f4f6;color:#9aa1ab;border-color:var(--line);}
.grade-stat{
  display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin:10px 0 4px;
  font-size:13px;color:var(--ink-2);font-weight:600;
}
.grade-stat b{font-size:15px;}
.grade-stat .a{color:#15803d;} .grade-stat .b{color:#1d4ed8;} .grade-stat .c{color:#a16207;}
.grade-stat .d{color:#c2410c;} .grade-stat .e{color:#b91c1c;}

/* ---------- 输入 ---------- */
.field{margin:10px 0;}
.field label{display:block;font-size:13px;color:var(--ink-2);font-weight:600;margin-bottom:5px;}
.input{
  width:100%;border:1.5px solid var(--line);border-radius:9px;padding:11px 12px;font-size:16px;
  background:#fff;color:var(--ink);transition:.12s;
}
.input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);}
.input.bad{border-color:var(--err);background:var(--err-soft);}
.input-hint{font-size:11.5px;color:var(--ink-3);margin-top:4px;display:flex;align-items:center;gap:4px;}
.input-hint.bad{color:var(--err);}
.row2{display:flex;gap:10px;}
.row2 .field{flex:1;}

/* ---------- 大按钮 ---------- */
.btn{
  display:block;width:100%;text-align:center;padding:14px;border-radius:12px;font-weight:800;font-size:16px;
  border:none;background:var(--brand);color:#fff;margin-top:8px;transition:.12s;
}
.btn:active{transform:scale(.99);filter:brightness(.95);}
.btn.sub{background:#e11d48;}
.btn.ghost{background:#fff;color:var(--brand);border:1.5px solid var(--brand);}
.btn.soft{background:var(--brand-soft);color:var(--brand);}
.btn[disabled]{background:#e5e7eb;color:#9aa1ab;cursor:not-allowed;}
.btn-sm{padding:9px 12px;font-size:13.5px;border-radius:9px;}

/* ---------- 统计小条（首页预览） ---------- */
.ministat{display:flex;gap:10px;margin:12px 0;}
.ministat .m{flex:1;background:#fff;border:1px solid var(--line);border-radius:10px;text-align:center;padding:12px 4px;box-shadow:var(--shadow);}
.ministat .m .n{font-size:26px;font-weight:800;line-height:1;}
.ministat .m .l{font-size:12px;color:var(--ink-3);margin-top:5px;}
.ministat .m .n.brand{color:var(--brand);} .ministat .m .n.c{color:var(--chong);} .ministat .m .n.b{color:var(--bao);}

/* ---------- 筛选胶囊 ---------- */
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0;}
.chip{
  border:1px solid var(--line);border-radius:var(--radius-pill);padding:7px 14px;font-size:13px;
  color:var(--ink-2);background:#fff;font-weight:600;transition:.12s;
}
.chip.on{background:var(--brand);border-color:var(--brand);color:#fff;}
.chip:active{transform:scale(.96);}
.chips-label{font-size:12.5px;color:var(--ink-3);font-weight:600;margin:12px 0 2px;}

/* ---------- 院校卡片 ---------- */
.schcard{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:13px 14px;margin:10px 0;
  box-shadow:var(--shadow);position:relative;transition:.12s;
}
.schcard:active{background:#fafbff;}
.schcard .top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;}
.schcard .nm{font-size:16px;font-weight:800;color:var(--ink);}
.schcard .nm .rk{color:var(--brand);font-weight:900;margin-right:6px;font-size:15px;}
.schcard .tags{margin-top:6px;display:flex;gap:5px;flex-wrap:wrap;align-items:center;}
.schcard .meta{display:flex;gap:12px;margin-top:8px;font-size:12.5px;color:var(--ink-2);flex-wrap:wrap;}
.schcard .tier-row{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:12.5px;color:var(--ink-2);}
.schcard .acts{display:flex;gap:8px;margin-top:10px;}
.schcard.dim{opacity:.66;}
.corner{position:absolute;top:10px;right:10px;display:flex;gap:6px;align-items:center;}
.iconbtn{
  width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:#fff;
  display:flex;align-items:center;justify-content:center;font-size:15px;color:var(--ink-2);
}
.iconbtn.on{background:var(--brand-soft);border-color:var(--brand);color:var(--brand);}
.src-dot{font-size:12px;color:var(--brand);cursor:pointer;border:1px solid var(--brand-line);background:var(--brand-soft);border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-weight:900;}

/* ---------- 徽章 / 标签 ---------- */
.pill{display:inline-block;border-radius:var(--radius-pill);padding:2px 10px;font-size:11.5px;font-weight:700;white-space:nowrap;line-height:1.7;}
.lv-985{background:#ede9fe;color:#6d28d9;} .lv-211{background:#dbeafe;color:#1d4ed8;}
.lv-zd{background:#ccfbf1;color:#0f766e;} .lv-pt{background:#f1f5f9;color:#475569;}
.lv-c9{background:#ede9fe;color:#6d28d9;}
.chong{background:#fee2e2;color:var(--chong);} .wen{background:#fef3c7;color:var(--wen);} .bao{background:#dbeafe;color:var(--bao);}
.tier-badge{font-weight:800;font-size:13px;padding:3px 11px;border-radius:8px;display:inline-flex;align-items:center;gap:3px;}
.tier-badge .ar{font-size:11px;}
.elig{font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:7px;}
.elig.ok{background:var(--ok-soft);color:var(--ok);}
.elig.near{background:var(--warn-soft);color:var(--warn);}
.elig.no{background:var(--err-soft);color:var(--err);}
.elig.none{background:#f1f5f9;color:#94a3b8;}

/* ---------- 折叠（差一点） ---------- */
.collapse{border:1px dashed var(--line);border-radius:var(--radius);margin:10px 0;overflow:hidden;}
.collapse .head{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;background:#fff;font-weight:700;font-size:14px;color:var(--ink-2);}
.collapse .head .chev{transition:.2s;color:var(--ink-3);}
.collapse.open .head .chev{transform:rotate(180deg);}
.collapse .body{display:none;padding:0 14px 12px;}
.collapse.open .body{display:block;}

/* ---------- 空状态 ---------- */
.empty{text-align:center;padding:36px 16px;color:var(--ink-3);}
.empty .em{font-size:38px;}
.empty p{margin:8px 0;font-size:14px;}
.empty .sm{font-size:12.5px;}

/* ---------- 来源浮层 ---------- */
.sheet-mask{position:fixed;inset:0;background:rgba(15,23,42,.42);z-index:80;display:none;align-items:flex-end;justify-content:center;}
.sheet-mask.show{display:flex;}
.sheet{
  background:#fff;width:100%;max-width:var(--maxw);border-radius:16px 16px 0 0;padding:18px 18px 28px;
  max-height:78vh;overflow-y:auto;animation:slideUp .22s ease;
}
@keyframes slideUp{from{transform:translateY(40px);opacity:.4;}to{transform:translateY(0);opacity:1;}}
.sheet .sh-title{font-size:16px;font-weight:800;display:flex;justify-content:space-between;align-items:center;}
.sheet .sh-title .x{color:var(--ink-3);font-size:20px;font-weight:400;}
.sheet .kv{margin:12px 0;font-size:13.5px;}
.sheet .kv .k{color:var(--ink-3);font-size:12px;margin-bottom:2px;}
.sheet .kv .v{color:var(--ink);word-break:break-all;}
.sheet .go{display:inline-flex;align-items:center;gap:5px;background:var(--brand);color:#fff;padding:10px 16px;border-radius:10px;font-weight:700;font-size:14px;margin-top:6px;}

/* ---------- Toast ---------- */
.toast{
  position:fixed;left:50%;bottom:84px;transform:translateX(-50%);background:#1f2937;color:#fff;
  padding:11px 18px;border-radius:999px;font-size:13.5px;z-index:90;opacity:0;transition:.2s;pointer-events:none;
  box-shadow:var(--shadow-lg);max-width:88%;text-align:center;
}
.toast.show{opacity:1;}

/* ---------- 底部栏 ---------- */
.tabbar{
  position:fixed;bottom:0;left:0;right:0;z-index:40;background:#fff;border-top:1px solid var(--line);
  display:flex;padding:6px 4px calc(6px + env(safe-area-inset-bottom));max-width:var(--maxw);margin:0 auto;
}
.tabbar a{flex:1;text-align:center;font-size:11px;color:var(--ink-3);text-decoration:none;padding:5px 2px;display:flex;flex-direction:column;align-items:center;gap:2px;}
.tabbar a .ti{font-size:18px;line-height:1;}
.tabbar a.on{color:var(--brand);font-weight:700;}

/* ---------- 详情页 ---------- */
.detail-hero{background:linear-gradient(135deg,var(--brand),#3b82f6);color:#fff;border-radius:var(--radius);padding:16px;margin:12px 0;box-shadow:var(--shadow);}
.detail-hero .nm{font-size:21px;font-weight:800;}
.detail-hero .tags{margin-top:8px;display:flex;gap:6px;flex-wrap:wrap;}
.detail-hero .tags .pill{background:rgba(255,255,255,.2);color:#fff;}
.detail-hero .btns{display:flex;gap:8px;margin-top:12px;}
.detail-hero .btns a{flex:1;text-align:center;background:#fff;color:var(--brand);padding:10px;border-radius:9px;font-weight:700;font-size:13.5px;}
.kvlist{display:grid;grid-template-columns:auto 1fr;gap:8px 12px;font-size:13.5px;margin:6px 0;}
.kvlist .k{color:var(--ink-3);}
.kvlist .v{color:var(--ink);font-weight:600;}
.tbl{width:100%;border-collapse:collapse;font-size:12.5px;margin:8px 0;overflow:hidden;border-radius:9px;border:1px solid var(--line);}
.tbl th{background:#f0f4fa;color:var(--ink);text-align:left;padding:8px 9px;font-weight:700;border-bottom:1px solid var(--line);position:sticky;top:0;}
.tbl td{padding:8px 9px;border-bottom:1px solid var(--line-2);vertical-align:top;}
.tbl tr:last-child td{border-bottom:none;}
.tbl .yr{font-weight:700;color:var(--brand);}
.tbl .sortable{cursor:pointer;user-select:none;}
.tbl .sortable:active{background:var(--brand-soft);}
.rb-bar{height:7px;border-radius:4px;display:inline-block;vertical-align:middle;margin-right:6px;}
.note{background:var(--warn-soft);border-left:4px solid var(--warn);border-radius:0 8px 8px 0;padding:10px 13px;margin:12px 0;font-size:13px;color:#7c4a03;}
.ok{background:var(--ok-soft);border-left:4px solid var(--ok);border-radius:0 8px 8px 0;padding:10px 13px;margin:12px 0;font-size:13px;color:#055d42;}
.check{list-style:none;padding:0;margin:8px 0;}
.check li{display:flex;gap:8px;align-items:flex-start;padding:5px 0;font-size:13.5px;}
.check .mk{font-weight:900;flex-shrink:0;}
.check .mk.y{color:var(--ok);} .check .mk.n{color:var(--err);}
.chart-wrap{background:#fff;border:1px solid var(--line);border-radius:9px;padding:10px;margin:8px 0;overflow-x:auto;}

/* ---------- 对比页 ---------- */
.cmp-table{width:100%;border-collapse:collapse;font-size:12.5px;margin:10px 0;}
.cmp-table th,.cmp-table td{border:1px solid var(--line);padding:9px 10px;vertical-align:top;text-align:left;}
.cmp-table thead th{background:var(--brand);color:#fff;text-align:center;position:sticky;top:0;}
.cmp-table thead th .rm{display:block;font-size:11px;font-weight:400;opacity:.85;margin-top:2px;cursor:pointer;}
.cmp-table .rowk{background:#f6f8fb;font-weight:700;color:var(--ink-2);white-space:nowrap;}
.cmp-table td.best{background:var(--ok-soft);color:var(--ok);font-weight:700;}
.cmp-table td.worst{background:var(--err-soft);color:var(--err);font-weight:700;}
.cmp-stack{display:none;}
.cmp-card{border:1px solid var(--line);border-radius:var(--radius);margin:10px 0;overflow:hidden;box-shadow:var(--shadow);}
.cmp-card-h{background:var(--brand);color:#fff;padding:10px 13px;font-weight:700;display:flex;justify-content:space-between;align-items:center;}
.cmp-card-h .rm{font-size:11px;font-weight:400;opacity:.9;cursor:pointer;}
.cmp-card .sk-row{display:flex;gap:10px;padding:8px 13px;border-bottom:1px solid var(--line-2);font-size:13px;}
.cmp-card .sk-row:last-child{border-bottom:none;}
.cmp-card .sk-k{color:var(--ink-3);flex-shrink:0;width:104px;}
.cmp-card .sk-v{flex:1;}

/* ---------- 官方通道 ---------- */
.gov-links{display:flex;flex-direction:column;gap:8px;margin:8px 0;}
.gov-links a{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:9px;padding:12px 14px;font-size:14px;font-weight:600;color:var(--ink);box-shadow:var(--shadow);}
.gov-links a .badge-gov{background:var(--ok-soft);color:var(--ok);border-radius:7px;padding:4px 8px;font-size:12px;font-weight:800;}
.gov-links a .ar{margin-left:auto;color:var(--ink-3);}

/* ---------- 免责声明 ---------- */
.disclaimer{background:var(--err-soft);border:1px solid #fecaca;color:#7f1d1d;border-radius:var(--radius);padding:12px 14px;font-size:13px;font-weight:600;text-align:center;margin:14px 0;}

/* ---------- 日历浮层 ---------- */
.sheet .ev{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--line-2);}
.sheet .ev .date{flex-shrink:0;width:54px;text-align:center;}
.sheet .ev .date .d{font-size:18px;font-weight:800;color:var(--brand);}
.sheet .ev .date .m{font-size:11px;color:var(--ink-3);}
.sheet .ev .info{flex:1;}
.sheet .ev .info .t{font-weight:700;font-size:13.5px;}
.sheet .ev .info .s{font-size:12px;color:var(--ink-3);}
.sheet .ev.past{opacity:.45;}
.sheet .ev.past .date .d{color:var(--ink-3);}
.sheet .ev .star{color:var(--warn);font-size:14px;}

/* ---------- 响应式：桌面端并排 ---------- */
@media (min-width:680px){
  .grid9{grid-template-columns:repeat(5,1fr);}
  .ministat .m .n{font-size:30px;}
}
@media (max-width:679px){
  .cmp-table{display:none;}
  .cmp-stack{display:block;}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;}}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px;}

/* ---------- 院校排名总览页 ---------- */
.rk-row{display:flex;align-items:stretch;gap:10px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;margin:8px 0 0;box-shadow:var(--shadow);cursor:pointer;transition:.12s;}
.rk-row:active{background:#fafbff;}
.rk-no{flex-shrink:0;width:46px;display:flex;align-items:center;justify-content:center;font-size:19px;font-weight:900;color:var(--brand);background:var(--brand-soft);border-radius:9px;}
.rk-main{flex:1;min-width:0;}
.rk-name{font-size:15.5px;font-weight:800;color:var(--ink);}
.rk-tags{margin-top:5px;display:flex;gap:5px;flex-wrap:wrap;align-items:center;}
.rk-meta{margin-top:5px;font-size:12px;color:var(--ink-3);}
.rk-right{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:8px;padding-left:4px;}
.rk-expand{width:30px;height:30px;border:none;background:var(--bg);border-radius:8px;color:var(--ink-3);font-size:15px;display:flex;align-items:center;justify-content:center;transition:.2s;}
.rk-expand.open{transform:rotate(180deg);color:var(--brand);}
.rk-detail{border:1px solid var(--line);border-radius:0 0 var(--radius) var(--radius);background:#fbfcfe;padding:12px 14px;margin:0 0 8px;}
.rk-detail .k{font-size:12px;color:var(--ink-3);font-weight:700;margin-bottom:3px;}
.rk-detail .v{font-size:13.5px;color:var(--ink);line-height:1.7;}
.rk-src{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;}

/* ---------- 横向滚动表格（详情页） ---------- */
.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:8px 0;}
.scroll-x .tbl{width:auto;min-width:100%;}
/* ---------- 详情页 hero 操作按钮 ---------- */
.detail-hero .hero-acts{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;}
.detail-hero .hero-acts .iconbtn{
  background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.5);color:#fff;
  width:auto;padding:8px 14px;border-radius:999px;font-size:13px;font-weight:700;
  display:inline-flex;align-items:center;justify-content:center;flex:1;gap:4px;
}
.detail-hero .hero-acts .iconbtn.on{background:#fff;color:var(--brand);}
