/* ═══════════════════════════════════════════════════
   山东专升本志愿录取预测系统
   山海墨蓝主题 — 深海蓝 × 暖金 × Noto Serif SC
═══════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700;900&family=Noto+Sans+SC:wght@300;400;500;700&display=swap');

:root {
  --blue-deep: #160422;
  --blue-dark: #200833;
  --blue-mid:  #350c52;
  --blue-soft: #4e1272;
  --blue-pale: #f3e8ff;
  --blue-accent: #981faf;
  --gold: #e6921a;
  --gold-light: #f5aa40;
  --gold-dark: #c07010;
  --gold-pale: #fff4e6;
  --white: #ffffff;
  --bg-page: #f7f4fc;
  --bg-card: #ffffff;
  --border: #e4d8f5;
  --border-mid: #cdb5e8;
  --text-main: #1a1230;
  --text-soft: #4a3a6a;
  --text-muted: #7a6a9a;
  --green: #1a7a4a;
  --green-pale: #e6f5ed;
  --amber: #b5730e;
  --amber-pale: #fdf3e0;
  --red: #c0392b;
  --red-pale: #fdecea;
  --shadow-sm: 0 2px 8px rgba(22,4,34,.08);
  --shadow-md: 0 4px 20px rgba(22,4,34,.13);
  --shadow-lg: 0 8px 40px rgba(22,4,34,.18);
  --font-serif: 'Noto Serif SC','Songti SC','SimSun',Georgia,serif;
  --font-sans: 'Noto Sans SC','PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif;
  --r-sm: 8px; --r-md: 12px; --r-lg: 18px;
  --trans: all .22s cubic-bezier(.4,0,.2,1);
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { font-size:16px; overflow-x:hidden; width:100%; }
body {
  font-family:var(--font-sans);
  background:var(--bg-page);
  color:var(--text-main);
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden; width:100%;
}

.page-wrap {
  width:100%; max-width:480px; min-height:100vh;
  margin:0 auto; background:var(--bg-page);
  position:relative; overflow-x:hidden; overflow-y:auto;
}

/* ── Screen 系统 ── */
.screen {
  position:absolute; inset:0; width:100%; min-height:100%;
  opacity:0; pointer-events:none;
  transform:translateY(10px);
  transition:opacity .3s ease,transform .3s cubic-bezier(.3,.9,.4,1);
  overflow-y:auto; -webkit-overflow-scrolling:touch;
}
.screen.active { opacity:1; pointer-events:all; transform:translateY(0); }

/* ── Login Bottom Sheet ── */
#screen-login {
  background:rgba(9,21,42,.58);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:0; position:fixed; z-index:200;
}
.login-sheet {
  background:var(--white); border-radius:20px 20px 0 0;
  padding-bottom:env(safe-area-inset-bottom,20px);
  box-shadow:var(--shadow-lg);
  animation:sheetUp .38s cubic-bezier(.3,.9,.4,1) both;
}
@keyframes sheetUp { from{transform:translateY(100%)} to{transform:translateY(0)} }

.sheet-handle { width:36px;height:4px;background:var(--border);border-radius:2px;margin:12px auto 0; }
.sheet-head { padding:16px 22px 0; border-bottom:1px solid var(--border); }
.sheet-head-inner { display:flex;align-items:flex-end;justify-content:space-between;padding-bottom:14px; }
.sheet-title { font-family:var(--font-serif);font-size:17px;font-weight:700;color:var(--text-main);letter-spacing:.4px; }
.sheet-title-sub { display:block;font-family:var(--font-sans);font-size:11.5px;font-weight:400;color:var(--text-muted);margin-top:3px; }
.sheet-form { padding:16px 22px 20px; }
.form-group { margin-bottom:20px; }
.form-label { display:block;font-size:12.5px;font-weight:600;color:var(--text-soft);margin-bottom:6px;letter-spacing:.2px; }
.form-label .req { color:var(--red);margin-left:2px; }
.form-control {
  width:100%; padding:14px 16px;
  border:1.5px solid var(--border); border-radius:var(--r-sm);
  font-size:15px; font-family:var(--font-sans); color:var(--text-main);
  background:#f8fafd; outline:none; transition:var(--trans);
  -webkit-appearance:none; appearance:none;
}
.form-control:focus { border-color:var(--blue-accent);background:var(--white);box-shadow:0 0 0 3px rgba(152,31,175,.12); }
.form-control.error { border-color:var(--red);box-shadow:0 0 0 3px var(--red-pale); }
.form-control::placeholder { color:var(--text-muted);opacity:.8; }
.form-control[readonly] { background:#f5f0fc;color:var(--text-soft);cursor:not-allowed; }
.select-wrap { position:relative; }
.select-wrap::after {
  content:''; position:absolute; right:13px; top:50%;
  transform:translateY(-50%); border:5px solid transparent;
  border-top:6px solid var(--text-muted); pointer-events:none; margin-top:3px;
}
.select-wrap select { padding-right:34px;cursor:pointer; }
.form-error { font-size:12px;color:var(--red);margin-top:5px;display:none; }
.form-error.show { display:block; }
.form-row { display:grid;grid-template-columns:1fr 1fr;gap:10px; }
.btn-submit {
  width:100%; margin-top:6px; padding:14px;
  background:linear-gradient(135deg,#350c52 0%,#56147a 100%);
  color:var(--white); font-family:var(--font-serif);
  font-size:15px; font-weight:700; letter-spacing:2.5px;
  border:none; border-radius:var(--r-sm); cursor:pointer; transition:var(--trans);
}
.btn-submit:hover { filter:brightness(1.1); }
.btn-submit:active { transform:scale(.98); }
.btn-text-link {
  background:none;border:none;padding:0;color:var(--blue-accent);
  font-size:13px;font-weight:500;text-decoration:underline;
  text-underline-offset:3px;cursor:pointer;transition:opacity .2s;
}
.btn-text-link:hover { opacity:.8; }
.form-group .form-control { border-radius:12px!important; }

/* ── Modal 弹窗 ── */
.modal-overlay {
  position:fixed; inset:0; background:rgba(0,0,0,.4);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  z-index:1000; display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transition:opacity .3s ease,visibility .3s ease;
}
.modal-overlay.show { opacity:1; visibility:visible; }
.modal-content {
  background:var(--white); width:90%; max-width:340px;
  border-radius:24px; padding:32px 24px; position:relative;
  box-shadow:0 20px 50px rgba(0,0,0,.15);
  transform:translateY(20px) scale(.95);
  transition:transform .4s cubic-bezier(.2,.8,.2,1); text-align:center;
}
.modal-overlay.show .modal-content { transform:translateY(0) scale(1); }
.modal-close-btn {
  position:absolute; top:16px; right:16px;
  width:32px; height:32px; border-radius:50%;
  background:#f1f5f9; border:none; font-size:20px;
  color:var(--text-muted); cursor:pointer;
  display:flex; align-items:center; justify-content:center; transition:all .2s;
}
.modal-close-btn:hover { background:#e2e8f0;color:var(--text-main);transform:rotate(90deg); }
.modal-qr-title { font-size:18px;font-weight:700;color:var(--blue-deep);margin-bottom:20px;font-family:var(--font-serif); }
.modal-qr-img { width:200px;height:200px;border-radius:12px;box-shadow:0 4px 12px rgba(0,0,0,.05);margin-bottom:16px; }
.modal-qr-tip { font-size:13px;color:var(--text-muted);font-weight:500; }

/* ══════════════════════════════════════════════
   SCREEN 2 — 首页
══════════════════════════════════════════════ */
#screen-home { background:var(--bg-page); overflow-y:auto; }

.home-hero {
  background:
    radial-gradient(ellipse 90% 55% at 75% -5%, rgba(200,90,255,.35) 0%, transparent 60%),
    radial-gradient(ellipse 55% 45% at 5% 100%, rgba(120,10,160,.4) 0%, transparent 55%),
    linear-gradient(155deg,#5a0e72 0%,#981faf 45%,#7a1a9a 75%,#4a0860 100%);
  padding:56px 24px 28px; position:relative; overflow:hidden;
  display:flex; flex-direction:column; min-height:440px;
}
.home-hero::before {
  content:''; position:absolute; right:-60px; top:-60px;
  width:260px; height:260px;
  border:40px solid rgba(255,255,255,.12); border-radius:50%; pointer-events:none;
}
.home-hero::after {
  content:''; position:absolute; right:40px; bottom:-30px;
  width:120px; height:120px;
  border:2px solid rgba(255,255,255,.2); border-radius:50%; pointer-events:none;
}
.home-eyebrow {
  display:inline-flex; align-items:center; align-self:flex-start; gap:6px;
  padding:4px 12px; background:rgba(255,255,255,.15);
  border:1px solid rgba(255,255,255,.3); border-radius:40px;
  font-size:11px; font-weight:600; color:rgba(255,255,255,.9);
  letter-spacing:1px; margin-bottom:18px;
}
.home-title {
  font-family:var(--font-serif); font-size:36px; font-weight:900;
  color:#fff; line-height:1.2; letter-spacing:1.5px;
  margin-bottom:4px; animation:fadeUp .5s ease both;
  text-shadow: 0 2px 16px rgba(0,0,0,.35);
}
.home-title-gold {
  font-family:var(--font-serif); font-size:36px; font-weight:900;
  color:#f5d8ff; line-height:1.2; letter-spacing:1.5px;
  margin-bottom:16px; animation:fadeUp .5s ease .08s both;
  text-shadow: 0 2px 16px rgba(120,0,180,.5);
}
.home-subtitle {
  font-size:13px; color:rgba(255,255,255,.92);
  line-height:1.75; margin-bottom:24px; animation:fadeUp .5s ease .15s both;
}
@keyframes fadeUp { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }

/* ── 首页输入区 ── */
.home-inputs-wrap {
  display:flex; flex-direction:column;
  position:relative; z-index:200;
  animation:fadeUp .5s ease .2s both;
}
.home-search-box {
  display:flex; align-items:center;
  background:rgba(255,255,255,.14); backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border:1.5px solid rgba(255,255,255,.35);
  border-radius:var(--r-sm); transition:all .3s cubic-bezier(.2,.8,.2,1);
  position:relative; min-width:0;
  box-shadow:0 4px 16px rgba(9,21,42,.15);
}
.home-search-box:focus-within,.home-search-box:hover {
  background:rgba(255,255,255,.18);
  border-color:rgba(255,255,255,.5);
  box-shadow:0 0 0 3px rgba(255,255,255,.2), 0 8px 32px rgba(0,0,0,.25);
  transform:translateY(-1px);
}
.home-search-icon { width:16px;height:16px;color:rgba(255,255,255,.55);margin-left:14px;flex-shrink:0; }
.home-search-input {
  flex:1; padding:13px 12px;
  background:transparent; border:none;
  font-size:15px; font-family:var(--font-sans); color:#fff;
  outline:none; min-width:0; caret-color:#f5d8ff;
  text-overflow:ellipsis; white-space:nowrap;
}
.home-search-input::placeholder { color:rgba(255,255,255,.6); }
.home-search-input::-webkit-search-cancel-button { display:none; }
.home-search-input[type="number"]::-webkit-outer-spin-button,
.home-search-input[type="number"]::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }

/* ── 高数选择器 ── */
.math-picker-wrap {
  display:flex; align-items:center; gap:10px;
  padding:2px 0; animation:fadeUp .5s ease .25s both;
}
.math-picker-label { font-size:12px;color:rgba(255,255,255,.85);flex-shrink:0;white-space:nowrap;font-weight:500; }
.math-picker-pills { display:flex; gap:8px; flex-wrap:nowrap; }
.math-pill {
  padding:6px 14px; border-radius:40px;
  border:1.5px solid rgba(255,255,255,.45);
  color:rgba(255,255,255,.9); font-size:12.5px; font-weight:600;
  cursor:pointer; white-space:nowrap;
  transition:all .2s cubic-bezier(.2,.8,.2,1);
  background:rgba(255,255,255,.12);
}
.math-pill:hover { background:rgba(255,255,255,.22);color:#fff; }
.math-pill.selected {
  background:#fff; border-color:#fff;
  color:#5a0e72; font-weight:800;
  box-shadow:0 2px 10px rgba(0,0,0,.2);
}

.home-search-btn {
  background:#ffffff;
  color:#5a0e72;
  font-family:var(--font-serif); font-size:15px; font-weight:800;
  letter-spacing:1.5px; border:none; border-radius:var(--r-sm);
  cursor:pointer; white-space:nowrap;
  transition:all .3s cubic-bezier(.2,.8,.2,1);
  box-shadow:0 4px 20px rgba(0,0,0,.25);
}
.home-search-btn:hover { background:#f3e8ff;color:#3d085a;transform:translateY(-2px);box-shadow:0 8px 28px rgba(0,0,0,.3); }
.home-search-btn:active { transform:scale(.95);box-shadow:none; }

/* 热门标签 */
.home-hot-wrap { display:flex;align-items:center;width:100%; }
.home-hot-label { font-size:11.5px;color:rgba(255,255,255,.5);flex-shrink:0;margin-right:8px; }
.home-hot-tags {
  display:flex;gap:8px;flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px;
  scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;
}
.home-hot-tags::-webkit-scrollbar { display:none; }
.home-hot-tag {
  flex-shrink:0; padding:5px 14px; background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.3); color:rgba(255,255,255,.9);
  border-radius:40px; font-size:12px; cursor:pointer;
  transition:all .2s cubic-bezier(.2,.8,.2,1); white-space:nowrap;
}
.home-hot-tag:hover { background:rgba(180,60,220,.25);color:#f0d8ff;border-color:rgba(180,60,220,.4);transform:translateY(-1px); }

/* ── 首页 Body ── */
.home-body { padding:24px 20px 52px; background:var(--bg-page); }
.home-stat-row {
  display:flex; background:var(--white); border-radius:var(--r-md);
  box-shadow:var(--shadow-sm); overflow:hidden; margin-bottom:20px; border:1px solid var(--border);
}
.home-stat-card { flex:1;padding:18px 8px 16px;text-align:center;border-right:1px solid var(--border); }
.home-stat-card:last-child { border-right:none; }
.home-stat-num { font-family:var(--font-serif);font-size:22px;font-weight:700;color:#981faf;line-height:1.2;letter-spacing:-.5px; }
.home-stat-num sub { font-size:13px;font-weight:500;color:#b83fd0;vertical-align:baseline; }
.home-stat-label { font-size:11px;color:var(--text-muted);margin-top:4px; }

/* ── 权威文案卡 ── */
.home-authority-card {
  background:linear-gradient(135deg,#f8f4ff 0%,#f0e8ff 100%);
  border:1px solid var(--border); border-left:3px solid var(--blue-accent);
  border-radius:var(--r-md); padding:14px 16px; margin-bottom:20px;
}
.auth-badge {
  display:inline-block; padding:2px 10px;
  background:var(--blue-accent); color:var(--white);
  border-radius:40px; font-size:10px; font-weight:700;
  letter-spacing:.5px; margin-bottom:8px;
}
.auth-text { font-size:12.5px;color:var(--text-soft);line-height:1.8; }

/* ── 广告卡 ── */
.qr-ad-card {
  background:linear-gradient(135deg,var(--blue-deep) 0%,var(--blue-mid) 100%);
  border-radius:var(--r-md); padding:18px 20px;
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:24px; box-shadow:var(--shadow-md);
}
.qr-ad-title { font-family:var(--font-serif);font-size:15px;font-weight:700;color:var(--white);margin-bottom:4px; }
.qr-ad-desc { font-size:12px;color:rgba(255,255,255,.65);line-height:1.6; }
.qr-ad-btn {
  padding:10px 18px; background:linear-gradient(135deg,#c040e0,#7a1a9a); color:#fff;
  font-family:var(--font-serif); font-size:13px; font-weight:700;
  border:none; border-radius:40px; cursor:pointer; white-space:nowrap;
  transition:var(--trans);
}
.qr-ad-btn:hover { background:linear-gradient(135deg,#d050f0,#981faf); }

/* ── 使用指南 ── */
.home-section-label { font-family:var(--font-serif);font-size:13px;font-weight:700;color:var(--text-soft);letter-spacing:.5px;margin-bottom:12px; }
.home-guide-list { display:flex;flex-direction:column;gap:8px;margin-bottom:28px; }
.home-guide-item {
  display:flex;align-items:flex-start;gap:14px;
  background:var(--white);border:1px solid var(--border);border-radius:var(--r-md);
  padding:14px 16px;transition:box-shadow .18s;
}
.home-guide-item:hover { box-shadow:var(--shadow-sm); }
.home-guide-num {
  width:26px;height:26px;
  background:linear-gradient(135deg,#350c52 0%,#56147a 100%);
  color:var(--white);font-family:var(--font-serif);font-size:12px;font-weight:700;
  border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.home-guide-title { font-family:var(--font-serif);font-size:14px;font-weight:700;color:var(--text-main);margin-bottom:3px; }
.home-guide-desc { font-size:12px;color:var(--text-muted);line-height:1.6; }
.home-disclaimer { font-size:11.5px;color:var(--text-muted);text-align:center;line-height:1.6;margin-bottom:20px; }
.site-footer { text-align:center;padding:16px 0 0; }
.footer-content { font-size:11px;color:var(--text-muted); }
.footer-content a { color:var(--blue-accent);text-decoration:none; }

/* ══════════════════════════════════════════════
   SCREEN 3 — 结果页
══════════════════════════════════════════════ */
#screen-search { background:var(--bg-page); overflow-y:auto; }

.result-topbar {
  display:flex; align-items:center; gap:10px;
  padding:12px 16px; background:var(--white);
  border-bottom:1px solid var(--border);
  position:sticky; top:0; z-index:100;
  box-shadow:var(--shadow-sm);
}
.topbar-back {
  width:36px;height:36px;border-radius:50%;
  background:var(--bg-page); border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0; cursor:pointer; transition:var(--trans);
}
.topbar-back svg { width:18px;height:18px;color:var(--text-soft); }
.topbar-back:hover { background:var(--border); }
.topbar-search-wrap { flex:1;min-width:0; }
.topbar-search-input {
  width:100%; padding:9px 14px;
  border:1.5px solid var(--border); border-radius:var(--r-sm);
  font-size:14px; font-family:var(--font-sans); color:var(--text-main);
  background:var(--bg-page); outline:none; transition:var(--trans);
}
.topbar-search-input:focus { border-color:var(--blue-accent);background:var(--white);box-shadow:0 0 0 3px rgba(152,31,175,.1); }
.topbar-search-btn {
  padding:9px 16px; background:var(--blue-mid); color:var(--white);
  font-family:var(--font-serif); font-size:13px; font-weight:700;
  border:none; border-radius:var(--r-sm); cursor:pointer;
  white-space:nowrap; flex-shrink:0; transition:var(--trans);
}
.topbar-search-btn:hover { background:var(--blue-soft); }
.topbar-suggest {
  background:var(--white); border:1px solid var(--border);
  border-radius:var(--r-sm); box-shadow:var(--shadow-md);
  overflow:hidden; display:none; z-index:300;
}
.topbar-suggest.show { display:block; }

.results-area { padding:0 0 20px; }

/* ── 概览看板 ── */
.stats-card {
  background:var(--white); border-bottom:1px solid var(--border);
  padding:16px 16px 12px;
  border-top:3px solid var(--blue-accent);
}
.stats-copy-wrap {
  background:#f4f8ff;
  border:1px solid #d4e6f9;
  border-left:3px solid var(--blue-accent);
  border-radius:10px;
  padding:12px 14px; margin-bottom:12px;
  position:relative;
}
.stats-copy-badge {
  display:inline-flex; align-items:center; gap:4px;
  padding:3px 10px;
  background:var(--blue-pale); color:var(--blue-mid);
  border:1px solid #b8d4f0;
  border-radius:40px; font-size:10px; font-weight:700;
  letter-spacing:.5px; margin-bottom:8px;
}
.stats-copy-text { font-size:13px;color:var(--text-soft);line-height:1.7;text-align:left; }
.stats-copy-text strong { color:var(--blue-mid);font-weight:700; }

.stats-grid-top {
  display:flex; gap:8px; margin-bottom:12px;
}
.stats-grid { display:flex; gap:8px; margin-bottom:4px; }
.stats-item {
  flex:1; background:var(--white); border-radius:var(--r-sm);
  padding:10px 8px; text-align:center; border:1px solid var(--border);
  box-shadow:0 1px 4px rgba(14,48,96,.05);
}
.stats-item.stats-clickable { cursor:pointer; transition:var(--trans); }
.stats-item.stats-clickable:hover { background:var(--blue-pale); }
.stats-val {
  font-family:var(--font-serif); font-size:18px; font-weight:700;
  color:var(--blue-mid); line-height:1.2;
  display:flex; align-items:center; justify-content:center; gap:4px;
  font-variant-numeric:tabular-nums;
}
.stats-val input[type="number"] {
  width:56px; border:none; outline:none; background:transparent;
  font-family:var(--font-serif); font-size:18px; font-weight:700;
  color:var(--blue-mid); text-align:center; padding:0;
  -moz-appearance:textfield;
}
.stats-val input[type="number"]::-webkit-outer-spin-button,
.stats-val input[type="number"]::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
.stats-label { font-size:10.5px;color:var(--text-muted);margin-top:4px; }
.icon-pencil-inline { color:var(--text-muted);flex-shrink:0; }

/* ── 筛选栏 ── */
.filter-bar {
  display:flex; gap:8px; overflow-x:auto; padding:10px 16px;
  background:var(--white); border-bottom:1px solid var(--border);
  scrollbar-width:none; -ms-overflow-style:none;
  justify-content:center;
}
.filter-bar::-webkit-scrollbar { display:none; }
.filter-btn {
  display:flex; align-items:center; gap:4px;
  padding:6px 14px; background:var(--bg-page);
  border:1.5px solid var(--border); border-radius:40px;
  font-size:12.5px; color:var(--text-soft); cursor:pointer;
  white-space:nowrap; flex-shrink:0; transition:var(--trans);
}
.filter-btn .arrow { transition:transform .2s; }
.filter-btn.on { background:var(--blue-pale);border-color:var(--blue-accent);color:var(--blue-mid);font-weight:700; }
.filter-btn.on .arrow { transform:rotate(180deg); }
.sort-arrow { font-weight:bold;color:var(--blue-accent);margin-left:2px; }

.filter-panel {
  display:none; padding:14px 16px 10px;
  background:var(--white); border-bottom:1px solid var(--border);
}
.filter-panel.show { display:block; }
.filter-section-title { font-size:12px;font-weight:600;color:var(--text-muted);margin-bottom:10px;letter-spacing:.3px; }
.filter-chips { display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px; }
.filter-chip {
  padding:6px 14px; border-radius:40px;
  border:1.5px solid var(--border); background:var(--bg-page);
  font-size:12.5px; color:var(--text-soft); cursor:pointer;
  transition:var(--trans);
}
.filter-chip.selected { background:var(--blue-mid);border-color:var(--blue-mid);color:var(--white); }
.filter-actions { display:flex;gap:8px;justify-content:flex-end; }
.btn-filter-reset {
  padding:6px 16px; border-radius:40px;
  border:1.5px solid var(--border); background:transparent;
  font-size:13px; color:var(--text-muted); cursor:pointer; transition:var(--trans);
}
.btn-filter-reset:hover { background:var(--border); }
.btn-filter-apply {
  padding:6px 20px; border-radius:40px;
  border:none; background:var(--blue-mid); color:var(--white);
  font-size:13px; font-weight:600; cursor:pointer; transition:var(--trans);
}
.btn-filter-apply:hover { background:var(--blue-soft); }

/* ── 结果卡片 ── */
.result-card {
  background:var(--white); border:1px solid var(--border);
  border-radius:var(--r-md); margin:10px 12px 0;
  padding:16px; box-shadow:var(--shadow-sm);
  animation:fadeUp .3s ease both; position:relative; overflow:hidden;
}
.result-card:last-child { margin-bottom:0; }

/* 概率颜色边框 */
.result-card.prob-high  { border-top:3px solid #16a34a; }
.result-card.prob-mid   { border-top:3px solid #d97706; }
.result-card.prob-low   { border-top:3px solid #9333ea; }
.result-card.prob-none  { border-top:3px solid #94a3b8; }

/* ── 概率环 ── */
.prob-ring-wrap {
  display:flex; align-items:center; gap:14px; margin-bottom:12px;
}
.prob-ring {
  width:68px; height:68px; border-radius:50%; flex-shrink:0;
  background:conic-gradient(var(--ring-clr,#16a34a) calc(var(--p,0)*1%),#edf2fb 0);
  display:flex; align-items:center; justify-content:center; position:relative;
}
.prob-ring::after {
  content:''; position:absolute; inset:7px;
  background:var(--white); border-radius:50%;
}
.prob-num {
  position:relative; z-index:1;
  font-family:var(--font-serif); font-size:15px; font-weight:900;
  color:var(--ring-clr,#16a34a); line-height:1; text-align:center;
}
.prob-num small { display:block;font-size:9px;font-weight:500;opacity:.8; }
.prob-ring-info { flex:1; min-width:0; }
.prob-school {
  font-family:var(--font-serif); font-size:15px; font-weight:700;
  color:var(--text-main); margin-bottom:3px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.prob-major {
  font-size:12.5px; color:var(--text-soft);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.prob-badges { display:flex;align-items:center;gap:6px;margin-top:6px; }

/* ── 卡片标签 ── */
.badge-pub  { padding:2px 8px;border-radius:4px;font-size:10.5px;font-weight:700;background:#dbeafe;color:#1d4ed8; }
.badge-priv { padding:2px 8px;border-radius:4px;font-size:10.5px;font-weight:700;background:#ede9fe;color:#7c3aed; }
.badge-level {
  padding:2px 8px; border-radius:4px; font-size:10px; font-weight:700;
  background:linear-gradient(135deg,#fef3c7,#fde68a); color:#92400e;
  border:1px solid #fcd34d;
}
.badge-level.guojia { background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af;border-color:#93c5fd; }

/* 卡片分割线 */
.card-divider { height:1px;background:var(--border);margin:12px 0; }

/* 卡片数据网格 */
.card-grid {
  display:grid; grid-template-columns:1fr 1fr; gap:6px 12px; margin-bottom:10px;
}
.card-item { font-size:12px;color:var(--text-muted); }
.card-item span { color:var(--text-main);font-weight:500; }

/* 预测分数线 */
.pred-score-row {
  display:flex; align-items:center; justify-content:space-between;
  background:linear-gradient(135deg,#f2f7fe 0%,#e8f0fb 100%);
  border:1.5px solid #d0e3f5;
  border-radius:var(--r-sm); padding:10px 14px; margin-bottom:10px;
}
.pred-score-left { display:flex; align-items:baseline; gap:6px; }
.pred-score-label { font-size:11px;color:var(--text-muted);letter-spacing:.2px; }
.pred-score-val { font-family:var(--font-serif);font-size:22px;font-weight:900;color:var(--blue-mid);letter-spacing:-.5px;font-variant-numeric:tabular-nums; }
.pred-score-val small { font-size:11px;font-weight:400;color:var(--text-muted); }
.pred-score-diff { font-size:12px;font-weight:700;padding:5px 13px;border-radius:40px;letter-spacing:.2px; }
.diff-plus  { background:#d1fae5;color:#065f46; }
.diff-zero  { background:#fce7ff;color:#6a0f7d; }
.diff-minus { background:#fee2e2;color:#991b1b; }

/* 卡片操作按钮 */
.card-actions { display:flex;gap:8px;flex-wrap:wrap; }
.card-action-btn {
  padding:5px 14px; border-radius:40px; font-size:12px; font-weight:500;
  text-decoration:none; border:1.5px solid; transition:var(--trans);
}
.btn-intro   { border-color:var(--blue-accent);color:var(--blue-accent); }
.btn-guide   { border-color:var(--green);color:var(--green); }
.btn-website { border-color:var(--text-muted);color:var(--text-muted); }
.btn-vr      { border-color:var(--amber);color:var(--amber); }
.card-action-btn:hover { opacity:.8; }

/* 卡片底部文案 */
.card-copy-row {
  margin-top:10px; padding:8px 10px;
  background:linear-gradient(135deg,#f0f9ff,#e0f2fe);
  border-radius:var(--r-sm); border-left:2px solid var(--blue-accent);
  font-size:11.5px; color:var(--text-soft); line-height:1.7;
}

/* 省级/国家级印章 */
.stamp-level {
  position:absolute; top:10px; right:10px;
  padding:3px 10px; border-radius:4px; font-size:9.5px; font-weight:700;
  background:linear-gradient(135deg,#fef3c7,#fde68a); color:#92400e;
  border:1px solid #fcd34d; letter-spacing:.3px;
}
.stamp-level.stamp-guojia {
  background:linear-gradient(135deg,#dbeafe,#bfdbfe); color:#1e40af; border-color:#93c5fd;
}

/* ── 加载更多 ── */
.load-more-btn {
  display:block; width:calc(100% - 24px); margin:12px 12px 0;
  padding:12px; background:var(--white);
  border:1.5px solid var(--border); border-radius:var(--r-sm);
  font-size:13.5px; font-weight:600; color:var(--text-soft);
  cursor:pointer; transition:var(--trans); text-align:center;
}
.load-more-btn:hover { background:var(--bg-page);border-color:var(--blue-accent);color:var(--blue-mid); }
.result-count { text-align:center;font-size:12px;color:var(--text-muted);margin-top:10px; }

/* ── 骨架屏 ── */
.skeleton-card {
  background:var(--white); border:1px solid var(--border);
  border-radius:var(--r-md); margin:10px 12px 0; padding:16px;
}
.skeleton { background:linear-gradient(90deg,#e8edf5 25%,#d8e0ed 50%,#e8edf5 75%);
  background-size:200% 100%; animation:shimmer 1.4s infinite;
  border-radius:6px; margin-bottom:8px; }
@keyframes shimmer { 0%{background-position:200% 0} 100%{background-position:-200% 0} }
.sk-row { height:14px; }
.sk-long { width:85%; }
.sk-mid  { width:60%; }
.sk-short { width:40%; }

/* ── 无结果 ── */
.no-results {
  display:flex; flex-direction:column; align-items:center;
  padding:60px 24px; text-align:center;
}
.no-results .icon {
  width:60px;height:60px;border-radius:50%;
  background:var(--border); display:flex; align-items:center;
  justify-content:center; font-size:18px;color:var(--text-muted);
  margin-bottom:14px;
}
.no-results strong { font-size:15px;color:var(--text-soft);margin-bottom:8px; }
.no-results p { font-size:13px;color:var(--text-muted);line-height:1.7; }

/* ── 联想下拉 ── */
.suggest-list {
  position:absolute; left:0; right:0;
  background:var(--white); border:1px solid var(--border);
  border-radius:var(--r-sm); box-shadow:var(--shadow-md);
  overflow:hidden; display:none; z-index:300; max-height:220px; overflow-y:auto;
}
.suggest-list.show { display:block; }
.suggest-item { padding:11px 16px;font-size:14px;color:var(--text-main);cursor:pointer;transition:background .15s; }
.suggest-item:hover,.suggest-item.active { background:var(--bg-page); }
.suggest-item mark { background:transparent;color:var(--blue-accent);font-weight:700; }

/* ── Toast ── */
.toast {
  position:fixed; bottom:80px; left:50%; transform:translateX(-50%) translateY(20px);
  background:rgba(9,21,42,.88); color:var(--white);
  padding:10px 22px; border-radius:40px; font-size:13.5px;
  opacity:0; pointer-events:none; transition:all .3s ease;
  z-index:500; white-space:nowrap;
}
.toast.show { opacity:1; transform:translateX(-50%) translateY(0); }

/* ── 返回顶部 ── */
.back-top {
  position:fixed; bottom:24px; right:20px;
  width:40px;height:40px;border-radius:50%;
  background:var(--blue-mid); box-shadow:var(--shadow-md);
  display:flex;align-items:center;justify-content:center;
  opacity:0; pointer-events:none; transition:all .3s ease; z-index:100;
}
.back-top svg { width:20px;height:20px;stroke:var(--white);fill:none;stroke-width:2.5;stroke-linecap:round; }
.back-top.show { opacity:1; pointer-events:all; }
.back-top:hover { transform:translateY(-2px);background:var(--blue-soft); }

/* ── 首页双列搜索（专业+分数合一行）── */
.home-dual-search { gap: 0; }
.search-divider-v {
  width: 1px; min-height: 20px; align-self: center;
  background: rgba(255,255,255,.25); flex-shrink: 0; margin: 0 4px;
}
.home-dual-search .home-search-input { padding-left: 8px; }
.home-dual-search .home-search-input:first-of-type { padding-left: 10px; }

/* 演示模式高数 picker */
.demo-math-picker {
  position:absolute; right:0; top:calc(100% + 6px);
  background:var(--white); border:1px solid var(--border);
  border-radius:var(--r-sm); box-shadow:var(--shadow-md);
  overflow:hidden; z-index:400; min-width:110px;
}
.demo-math-opt {
  padding:10px 16px; font-size:13px; color:var(--text-main);
  cursor:pointer; transition:background .15s;
}
.demo-math-opt:hover { background:var(--bg-page); }
.demo-math-opt.active { color:var(--blue-accent);font-weight:700;background:var(--blue-pale); }

/* ── 免责声明 caption ── */
#stats-disclaimer {
  display:none;
  padding:5px 16px 7px;
  font-size:10.5px; color:#9aa5ba;
  text-align:center;
  background:var(--bg-page);
  letter-spacing:.15px;
  font-style:italic;
}


/* ═══════════════════════════════════════════════════════════════
   结果页 Dark 主题 —— 暗兰紫底色，全量覆盖
   ═══════════════════════════════════════════════════════════════ */
#page-result {
  background: #160422;
  min-height: 100dvh;
}

/* ── Topbar ─────────────────────────────────────────────────── */
#page-result .result-topbar {
  background: #1e0830;
  border-bottom: 1px solid rgba(152,31,175,.25);
  box-shadow: 0 1px 12px rgba(22,4,34,.5);
}
#page-result .topbar-back { color: rgba(240,228,255,.7); }
#page-result .topbar-back svg { color: rgba(240,228,255,.7); }
#page-result .topbar-back:hover { background: rgba(152,31,175,.2); }
#page-result .topbar-search-input {
  background: rgba(255,255,255,.08);
  border-color: rgba(152,31,175,.35);
  color: #f0e8ff;
}
#page-result .topbar-search-input::placeholder { color: rgba(240,232,255,.4); }
#page-result .topbar-suggest {
  background: #200833;
  border: 1px solid rgba(152,31,175,.3);
  box-shadow: 0 8px 32px rgba(22,4,34,.6);
}
#page-result .suggest-item { color: #e0ccff; }
#page-result .suggest-item:hover { background: rgba(152,31,175,.2); }

/* ── Stats card (数字统计区) ─────────────────────────────────── */
#page-result .stats-card {
  background: #1e0830;
  border-bottom: 1px solid rgba(152,31,175,.2);
  border-top: 3px solid #981faf;
}
#page-result .stats-item {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(152,31,175,.2);
  box-shadow: 0 1px 6px rgba(22,4,34,.3);
}
#page-result .stats-item.stats-clickable:hover {
  background: rgba(152,31,175,.18);
}
#page-result .stats-val {
  color: #f0e8ff;
}
#page-result .stats-label {
  color: rgba(240,232,255,.55);
}

/* ── Stats copy (大数据分析结果卡) ───────────────────────────── */
#page-result .stats-copy-wrap {
  background: rgba(152,31,175,.15);
  border: 1px solid rgba(152,31,175,.35);
  border-left: 3px solid #981faf;
}
#page-result .stats-copy-badge {
  background: rgba(152,31,175,.25);
  color: #d88ef5;
  border-color: rgba(152,31,175,.4);
}
#page-result .stats-copy-text {
  color: rgba(240,228,255,.9);
  font-size: 13.5px;
  line-height: 1.8;
}
#page-result .stats-copy-text strong {
  color: #f5aa40;
  font-weight: 700;
}

/* ── Filter bar ──────────────────────────────────────────────── */
#page-result .filter-bar {
  background: #1e0830;
  border-bottom: 1px solid rgba(152,31,175,.2);
}
#page-result .filter-btn {
  background: rgba(255,255,255,.06);
  border-color: rgba(152,31,175,.25);
  color: rgba(240,228,255,.8);
}
#page-result .filter-btn.on {
  background: rgba(152,31,175,.25);
  border-color: #981faf;
  color: #f0e8ff;
  font-weight: 700;
}
#page-result .filter-select {
  background: rgba(255,255,255,.06);
  border-color: rgba(152,31,175,.25);
  color: rgba(240,228,255,.85);
}
#page-result #stats-disclaimer { display: none !important; }

/* ── Result cards ────────────────────────────────────────────── */
#page-result .result-card {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(152,31,175,.18);
  box-shadow: 0 2px 16px rgba(22,4,34,.3);
  border-radius: 14px;
}
#page-result .result-card:hover {
  background: rgba(255,255,255,.08);
  border-color: rgba(152,31,175,.35);
}
#page-result .result-card.prob-high  { border-top: 3px solid #22c55e; }
#page-result .result-card.prob-mid   { border-top: 3px solid #f59e0b; }
#page-result .result-card.prob-low   { border-top: 3px solid #a855f7; }
#page-result .result-card.prob-none  { border-top: 3px solid rgba(255,255,255,.2); }

/* 学校名、专业名 */
#page-result .prob-school {
  color: #f0e8ff;
  font-weight: 700;
}
#page-result .prob-major { color: rgba(240,228,255,.7); }

/* badge */
#page-result .badge-pub  { background: rgba(34,197,94,.2);  color: #86efac; border-color: rgba(34,197,94,.3); }
#page-result .badge-priv { background: rgba(245,158,11,.2); color: #fcd34d; border-color: rgba(245,158,11,.3); }
#page-result .badge-level { background: rgba(152,31,175,.25); color: #d88ef5; border-color: rgba(152,31,175,.35); }

/* card-grid 信息行 */
#page-result .card-item { color: rgba(240,228,255,.55); }
#page-result .card-item span { color: rgba(240,228,255,.9); }
#page-result .card-divider { background: rgba(152,31,175,.2); }

/* 预测分数线行 */
#page-result .pred-score-row {
  background: rgba(152,31,175,.12);
  border-color: rgba(152,31,175,.25);
}
#page-result .pred-score-label { color: rgba(240,228,255,.5); }
#page-result .pred-score-val   { color: #d88ef5; }
#page-result .pred-score-val small { color: rgba(240,228,255,.5); }

/* 差值徽章 */
#page-result .diff-plus  { background: rgba(34,197,94,.2);  color: #86efac; }
#page-result .diff-zero  { background: rgba(152,31,175,.2); color: #d88ef5; }
#page-result .diff-minus { background: rgba(239,68,68,.2);  color: #fca5a5; }

/* 操作按钮 */
#page-result .card-action-btn {
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(152,31,175,.3);
  color: rgba(240,228,255,.85);
}
#page-result .card-action-btn.btn-intro   { border-color: rgba(152,31,175,.4); color: #d88ef5; }
#page-result .card-action-btn.btn-guide   { border-color: rgba(34,197,94,.35); color: #86efac; }
#page-result .card-action-btn.btn-website { background: rgba(255,255,255,.05); }
#page-result .card-action-btn.btn-vr      { border-color: rgba(245,158,11,.35); color: #fcd34d; }
#page-result .card-action-btn:hover       { opacity: .9; background: rgba(255,255,255,.12); }

/* card copy row (高概率底部文案) */
#page-result .card-copy-row {
  color: rgba(240,228,255,.6);
  border-top: 1px solid rgba(152,31,175,.2);
  background: rgba(152,31,175,.08);
  border-radius: 0 0 10px 10px;
  padding: 8px 12px;
  font-size: 12px;
  line-height: 1.6;
}
#page-result .card-copy-row strong { color: #f5aa40; }

/* ── 加载更多 / Footer ───────────────────────────────────────── */
#page-result .load-more-btn {
  background: rgba(152,31,175,.2);
  border: 1px solid rgba(152,31,175,.4);
  color: #d88ef5;
}
#page-result .results-footer-text { color: rgba(240,228,255,.45); }

/* ── 无结果 ──────────────────────────────────────────────────── */
#page-result .no-results strong { color: rgba(240,228,255,.7); }
#page-result .no-results p      { color: rgba(240,228,255,.45); }

/* ── 概率环文字颜色 ───────────────────────────────────────────── */
#page-result .prob-num { color: #f0e8ff; }

