/* 陕西高考三年真题分析 · 站内样式（浅色主题 · 视觉升级版） */
:root{
  /* 底色与面板 */
  --bg:#f4f6fa;
  --bg-2:#eef1f7;
  --panel:#ffffff;
  --panel-2:#fafbfd;
  --line:#e2e7ef;
  --line-2:#edf1f6;

  /* 文字 */
  --ink:#16202c;
  --ink-2:#46536a;
  --ink-3:#7d8a9c;

  /* 品牌色（沿用原深蓝，补足层次） */
  --brand:#1f5fa9;
  --brand-d:#164a85;
  --brand-l:#3b7fc9;
  --brand-2:#eaf2fb;
  --brand-3:#f4f8fd;

  /* 语义色 */
  --up:#c62828;
  --down:#1f7a4d;
  --warn:#a8710a;
  --warn-bg:#fdf6e5;
  --ok-bg:#ebf6ef;

  /* 阴影与圆角 */
  --shadow-sm:0 1px 2px rgba(16,28,45,.05);
  --shadow:0 1px 2px rgba(16,28,45,.05),0 6px 18px -6px rgba(16,28,45,.10);
  --shadow-lg:0 2px 6px rgba(16,28,45,.06),0 18px 40px -14px rgba(16,28,45,.18);
  --radius:12px;
  --radius-sm:9px;
  --radius-lg:16px;

  --topbar-h:58px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  background-image:
    radial-gradient(1100px 460px at 12% -12%,rgba(31,95,169,.075),transparent 62%),
    radial-gradient(900px 420px at 100% 0%,rgba(59,127,201,.06),transparent 58%);
  background-attachment:fixed;
  color:var(--ink);
  font:15px/1.75 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{color:var(--brand);text-decoration:none;transition:color .16s var(--ease)}
a:hover{text-decoration:underline}
::selection{background:rgba(31,95,169,.16)}

/* 细滚动条 */
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:#ccd5e2;border-radius:999px;border:3px solid transparent;background-clip:content-box}
*::-webkit-scrollbar-thumb:hover{background:#aebbcb;background-clip:content-box}

/* ================= 顶栏 ================= */
.topbar{
  position:sticky;top:0;z-index:90;
  background:rgba(255,255,255,.86);
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--line);
  box-shadow:0 1px 0 rgba(16,28,45,.02),0 6px 18px -14px rgba(16,28,45,.42);
}
.topbar-in{
  max-width:1180px;margin:0 auto;padding:11px 20px;
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;
}
.brand{
  display:flex;align-items:center;gap:10px;
  font-weight:700;font-size:16px;letter-spacing:.1px;white-space:nowrap;
}
.brand::before{
  content:"";flex:0 0 auto;width:9px;height:22px;border-radius:3px;
  background:linear-gradient(180deg,var(--brand-l),var(--brand));
  box-shadow:0 2px 8px rgba(31,95,169,.35);
}
.brand span{color:var(--ink-3);font-weight:500;font-size:12.5px;margin-left:2px;letter-spacing:.3px}

.nav{order:2;flex-basis:100%;display:flex;gap:3px;flex-wrap:wrap;justify-content:flex-start}
.nav a{
  padding:6px 12px;border-radius:8px;font-size:13.5px;color:var(--ink-2);
  transition:background .16s var(--ease),color .16s var(--ease);
}
.nav a:hover{background:var(--brand-2);color:var(--brand);text-decoration:none}
.nav a.on{
  background:linear-gradient(180deg,var(--brand-l),var(--brand));
  color:#fff;font-weight:600;
  box-shadow:0 4px 12px -4px rgba(31,95,169,.55);
}
.nav a.on:hover{color:#fff}

.searchwrap{position:relative;margin-left:auto}
.searchwrap input{
  width:216px;padding:7px 12px;border:1px solid var(--line);border-radius:9px;
  font-size:13px;outline:none;background:var(--panel-2);color:var(--ink);
  transition:border-color .16s,box-shadow .16s,background .16s,width .2s var(--ease);
}
.searchwrap input::placeholder{color:var(--ink-3)}
.searchwrap input:focus{
  border-color:var(--brand);background:#fff;width:248px;
  box-shadow:0 0 0 3px rgba(31,95,169,.12);
}
/* 接入自有网站时的「返回主站」入口 */
.backhome{
  flex:0 0 auto;padding:6px 13px;border:1px solid var(--line);border-radius:9px;
  font-size:13px;color:var(--ink-2);background:var(--panel-2);white-space:nowrap;
  transition:all .16s var(--ease);
}
.backhome:hover{border-color:var(--brand);color:var(--brand);text-decoration:none;background:var(--brand-2)}
/* 顶栏登录状态：手机号（打码）展示 */
.userchip{
  flex:0 0 auto;padding:6px 13px;border-radius:9px;font-size:13px;
  background:linear-gradient(180deg,var(--brand-2),#e3eefb);
  color:var(--brand-d);font-weight:600;white-space:nowrap;
  border:1px solid rgba(31,95,169,.16);
}

/* ================= 布局 ================= */
.wrap{max-width:1180px;margin:0 auto;padding:28px 20px 88px}

/* 首屏：公司介绍横幅 */
.hero{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg,#1d5aa3 0%,#2a6fbe 46%,#3f86c9 100%);
  color:#fff;border:none;border-radius:var(--radius-lg);
  padding:38px 42px;margin-bottom:26px;
  box-shadow:var(--shadow-lg);
}
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(620px 260px at 88% -30%,rgba(255,255,255,.22),transparent 62%),
    radial-gradient(420px 220px at 6% 120%,rgba(255,255,255,.13),transparent 60%);
}
.hero > *{position:relative;z-index:1}
.hero h1{margin:0 0 10px;font-size:29px;line-height:1.3;letter-spacing:-.3px;font-weight:700}
.hero p{margin:7px 0;color:rgba(255,255,255,.9);font-size:14.5px}
.hero .meta{
  color:rgba(255,255,255,.78);font-size:13px;margin-top:16px;
  padding-top:14px;border-top:1px solid rgba(255,255,255,.18);
}
/* 首屏徽标行 */
.hero-badge{
  display:inline-flex;align-items:center;gap:7px;
  padding:4px 12px;border-radius:999px;margin-bottom:14px;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);
  font-size:12.5px;color:rgba(255,255,255,.94);letter-spacing:.3px;
}
.hero-badge .hb-dot{
  width:6px;height:6px;border-radius:50%;background:#8fe3b0;
  box-shadow:0 0 0 3px rgba(143,227,176,.26);
}
/* 首屏引导语 */
.hero .hero-lead{font-size:15.5px;color:rgba(255,255,255,.95);font-weight:500}
/* 首屏数据徽章 */
.hero-stats{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0 4px}
.hero-stats .hs{
  flex:1 1 108px;min-width:104px;padding:12px 14px;border-radius:11px;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);
  backdrop-filter:blur(4px);
}
.hero-stats .hs b{display:block;font-size:21px;font-weight:700;letter-spacing:-.4px;line-height:1.15}
.hero-stats .hs span{font-size:12px;color:rgba(255,255,255,.82)}
@media(max-width:560px){
  .hero{padding:28px 22px}
  .hero h1{font-size:23px}
  .hero-stats .hs{flex:1 1 44%}
}
/* 首屏内的按钮转为反色 */
.hero .abtn{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.34);color:#fff;backdrop-filter:blur(4px)}
.hero .abtn:hover{background:rgba(255,255,255,.24);border-color:rgba(255,255,255,.6);color:#fff}
.hero .abtn.primary{background:#fff;border-color:#fff;color:var(--brand-d)}
.hero .abtn.primary:hover{background:#f2f7fd;border-color:#f2f7fd;color:var(--brand-d)}

/* 内容页通用标题区（白卡 + 页面主题色顶条） */
.hero.plain{
  background:linear-gradient(180deg,var(--acc-2),var(--panel) 58%);
  color:var(--ink);border:1px solid var(--line);
  box-shadow:var(--shadow);padding:30px 34px 28px;
}
.hero.plain::before{
  content:"";position:absolute;left:0;right:0;top:0;height:3px;z-index:2;
  background:linear-gradient(90deg,var(--acc),var(--acc) 34%,transparent 88%);
}
.hero.plain::after{display:none}
.hero.plain h1{color:var(--ink)}
.hero.plain p{color:var(--ink-2)}
.hero.plain .meta{color:var(--ink-3);border-top-color:var(--line-2)}
/* 页面识别徽标（内容页） */
.hero-ico{
  width:46px;height:46px;border-radius:13px;margin-bottom:14px;
  display:flex;align-items:center;justify-content:center;
  font-size:21px;font-weight:700;color:#fff;letter-spacing:0;
  background:linear-gradient(142deg,var(--acc),var(--acc-d));
  box-shadow:0 10px 22px -12px var(--acc);
}
@media(max-width:560px){
  .hero.plain{padding:24px 22px 22px}
  .hero-ico{width:40px;height:40px;border-radius:11px;font-size:18px;margin-bottom:11px}
}

h2{
  font-size:19.5px;margin:38px 0 14px;padding-left:13px;
  border-left:4px solid transparent;
  border-image:linear-gradient(180deg,var(--brand-l),var(--brand)) 1;
  letter-spacing:-.1px;
}
h2:first-child{margin-top:0}
h3{font-size:16.5px;margin:26px 0 10px;letter-spacing:-.1px}
h4{font-size:15px;margin:18px 0 8px;color:var(--ink-2)}
p{margin:9px 0}

.card{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:20px 22px;box-shadow:var(--shadow);margin-bottom:16px;
}
.card.tight{padding:16px 18px}

.grid{display:grid;gap:14px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:900px){.g2,.g3,.g4{grid-template-columns:1fr}}

/* KPI 数字卡 */
.kpi{
  position:relative;overflow:hidden;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:18px 20px;box-shadow:var(--shadow);
  transition:transform .18s var(--ease),box-shadow .18s var(--ease),border-color .18s var(--ease);
}
.kpi::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  background:linear-gradient(180deg,var(--brand-l),var(--brand));
  opacity:.9;
}
.kpi:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:#d5dfec}
.kpi .n{
  font-size:27px;font-weight:700;letter-spacing:-.6px;line-height:1.15;
  background:linear-gradient(120deg,var(--brand-d),var(--brand-l));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.kpi .l{font-size:12.5px;color:var(--ink-3);margin-top:4px}
.kpi .s{font-size:12.5px;color:var(--ink-2);margin-top:8px;line-height:1.6}

/* ================= 表格 ================= */
.tablewrap{
  overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);
  background:var(--panel);box-shadow:var(--shadow);
}
table{border-collapse:separate;border-spacing:0;width:100%;font-size:13.5px;min-width:620px}
th,td{padding:10px 13px;text-align:left;border-bottom:1px solid var(--line-2);vertical-align:top}
th{
  background:linear-gradient(180deg,#f8fafd,var(--panel-2));
  font-weight:600;color:var(--ink-2);white-space:nowrap;font-size:12.5px;
  letter-spacing:.2px;position:relative;
  border-bottom:1px solid var(--line);
}
tbody tr{transition:background .14s var(--ease)}
tbody tr:hover{background:var(--brand-3)}
tbody tr:last-child td{border-bottom:none}
td.c,th.c{text-align:center;white-space:nowrap}
td.no{font-weight:600;color:var(--brand);white-space:nowrap}

/* ===== 逐题考点定位表（qtable）：桌面固定列宽，考点列占主体 ===== */
table.qtable{table-layout:fixed}
table.qtable th,table.qtable td{padding:8px 10px;word-break:break-word;overflow-wrap:anywhere}
table.qtable th{white-space:normal}
table.qtable th:nth-child(1),table.qtable td:nth-child(1){width:6%}
table.qtable th:nth-child(2),table.qtable td:nth-child(2){width:9%}
table.qtable th:nth-child(3),table.qtable td:nth-child(3){width:6%}
table.qtable th:nth-child(4),table.qtable td:nth-child(4){width:40%}
table.qtable th:nth-child(5),table.qtable td:nth-child(5){width:17%}
table.qtable th:nth-child(6),table.qtable td:nth-child(6){width:8%}
table.qtable th:nth-child(7),table.qtable td:nth-child(7){width:14%}
table.qtable td.no{white-space:nowrap;font-size:12.5px}
/* 覆盖全局 td.c 的 nowrap：答案/分值/难度列内容必须可折行，否则长答案横穿相邻列 */
table.qtable td,table.qtable td.c{white-space:normal}
table.qtable td:nth-child(5){text-align:left}
table.qtable tbody tr:hover{background:var(--brand-3)}

/* --- 窄屏：qtable 转为"一题一卡"布局，避免长答案被切成竖条 --- */
@media(max-width:760px){
  .qwrap{border:none;background:transparent;box-shadow:none;overflow:visible}
  table.qtable{min-width:0;display:block;table-layout:auto;background:transparent}
  table.qtable thead{display:none}
  table.qtable tbody{display:block}
  table.qtable tr{
    display:block;background:var(--panel);border:1px solid var(--line);
    border-radius:12px;padding:2px 14px 8px;margin:0 0 10px;box-shadow:var(--shadow);
  }
  table.qtable tr:hover{background:var(--panel)}
  table.qtable td{display:block;border-bottom:none;padding:7px 0 2px;text-align:left}
  table.qtable td.c{text-align:left}
  table.qtable td::before{
    content:attr(data-label);display:inline-block;min-width:3em;margin-right:10px;
    font-size:11.5px;font-weight:600;color:var(--ink-3);letter-spacing:1px;
  }
  table.qtable td:nth-child(4){
    border-top:1px dashed var(--line-2);margin-top:6px;padding-top:9px;
  }
  table.qtable td:nth-child(4)::before{display:block;margin:0 0 3px}
  table.qtable td.no{white-space:normal;font-size:13.5px}
  table.qtable td:nth-child(2){white-space:normal}
}

/* ===== 考点分级表（ktable）：考点/等级/说明 三列 ===== */
table.ktable{table-layout:fixed}
table.ktable th,table.ktable td{word-break:break-word;overflow-wrap:anywhere}
table.ktable th{white-space:normal}
table.ktable th:nth-child(1),table.ktable td:nth-child(1){width:26%}
table.ktable th:nth-child(2),table.ktable td:nth-child(2){width:10%}
table.ktable td:nth-child(2){white-space:nowrap}

/* --- 窄屏：ktable 改自适应布局，等级列收紧 --- */
@media(max-width:640px){
  table.ktable{table-layout:auto}
  table.ktable th:nth-child(1),table.ktable td:nth-child(1){width:auto}
  table.ktable th:nth-child(2),table.ktable td:nth-child(2){width:auto}
}

/* ================= 标签 ================= */
.tag{
  display:inline-block;padding:1.5px 8px;border-radius:6px;
  font-size:12px;line-height:1.65;white-space:nowrap;font-weight:500;
}
.t-easy{background:var(--ok-bg);color:var(--down)}
.t-mid{background:var(--warn-bg);color:var(--warn)}
.t-hard{background:#fdecec;color:var(--up)}
.t-gray{background:#eef1f6;color:var(--ink-2)}
.t-blue{background:var(--brand-2);color:var(--brand-d)}
.t-new{background:#f1ebfd;color:#5b3fa8}
.t-hot{background:#fdecec;color:var(--up);font-weight:600}
.t-must{background:linear-gradient(120deg,#b3272b,#d3373b);color:#fff;font-weight:600;box-shadow:0 2px 6px -2px rgba(198,40,40,.5)}

/* ================= 解析块 ================= */
.qcard{
  border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);
  margin:16px 0;overflow:hidden;box-shadow:var(--shadow);
  transition:box-shadow .18s var(--ease),border-color .18s var(--ease);
}
.qcard:hover{box-shadow:var(--shadow-lg);border-color:#d8e2ee}
.qhead{
  padding:12px 17px;
  background:linear-gradient(180deg,#f8fafd,var(--panel-2));
  border-bottom:1px solid var(--line);
  display:flex;gap:10px;align-items:center;flex-wrap:wrap;
}
.qhead .qt{font-weight:600;font-size:14.5px}
.qhead .qs{margin-left:auto;font-size:12.5px;color:var(--ink-3)}
.qbody{padding:16px 19px}
.qbody .lab{
  font-size:12px;font-weight:700;color:var(--brand);letter-spacing:1.2px;
  margin:15px 0 7px;text-transform:none;
}
.qbody .lab:first-child{margin-top:0}
.qbody .stem{
  background:var(--panel-2);border-left:3px solid var(--brand-l);
  padding:11px 15px;border-radius:0 8px 8px 0;color:var(--ink-2);font-size:14px;line-height:1.85;
}
.steps{counter-reset:s;list-style:none;padding:0;margin:8px 0}
.steps li{counter-increment:s;position:relative;padding-left:32px;margin:9px 0;font-size:14px;line-height:1.8}
.steps li::before{
  content:counter(s);position:absolute;left:0;top:2px;width:21px;height:21px;border-radius:50%;
  background:linear-gradient(180deg,var(--brand-l),var(--brand));color:#fff;
  font-size:11.5px;font-weight:700;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 7px -2px rgba(31,95,169,.55);
}
.note{
  background:var(--warn-bg);border:1px solid #f0e0b4;border-left:3px solid var(--warn);
  border-radius:8px;padding:11px 15px;font-size:13.5px;color:#6b5312;margin:13px 0;line-height:1.8;
}
.note b{color:#8a6a12}
.tip{
  background:var(--ok-bg);border:1px solid #cfe6d8;border-left:3px solid var(--down);
  border-radius:8px;padding:11px 15px;font-size:13.5px;color:#20543a;margin:13px 0;line-height:1.8;
}
.prov{font-size:12px;color:var(--ink-3);border-top:1px dashed var(--line);margin-top:12px;padding-top:9px}
code{background:#eef2f8;padding:1px 5px;border-radius:4px;font-size:13px;font-family:ui-monospace,Consolas,Menlo,monospace}
.mono{font-family:ui-monospace,Consolas,Menlo,monospace;font-size:13.5px}
.fm{font-family:"Cambria Math",Georgia,"Times New Roman",serif;font-style:italic}

/* ================= 目录速览 ================= */
.toc{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 6px}
.toc a{
  font-size:13px;padding:6px 13px;border:1px solid var(--line);border-radius:999px;
  background:var(--panel);color:var(--ink-2);
  transition:all .16s var(--ease);
}
.toc a:hover{
  border-color:var(--brand);color:var(--brand);text-decoration:none;
  background:var(--brand-2);transform:translateY(-1px);
  box-shadow:0 4px 12px -6px rgba(31,95,169,.5);
}

/* ================= 折叠 ================= */
details{
  border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);
  margin:13px 0;overflow:hidden;transition:box-shadow .18s var(--ease);
}
details:hover{box-shadow:var(--shadow)}
details>summary{
  cursor:pointer;padding:12px 17px;font-weight:600;font-size:14.5px;
  background:linear-gradient(180deg,#f8fafd,var(--panel-2));
  list-style:none;display:flex;align-items:center;gap:9px;
  transition:background .16s var(--ease);
}
details>summary::-webkit-details-marker{display:none}
details>summary::before{content:"▸";color:var(--brand);font-size:13px;transition:transform .2s var(--ease)}
details[open]>summary::before{transform:rotate(90deg)}
details>summary:hover{background:var(--brand-2)}
details .dbody{padding:8px 19px 17px}

/* ================= 按钮 ================= */
.btn{
  border:1px solid var(--line);background:var(--panel);color:var(--ink-2);
  font:inherit;font-size:13px;padding:7px 14px;border-radius:8px;cursor:pointer;white-space:nowrap;
  transition:all .16s var(--ease);
}
.btn:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-2)}
.btn:active{transform:translateY(1px)}

/* ================= 检索结果 ================= */
.searchres{
  position:absolute;top:calc(100% + 8px);right:0;width:420px;max-height:460px;overflow-y:auto;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:0 12px 40px -10px rgba(16,28,45,.28);z-index:95;padding:7px;
}
.sritem{display:block;padding:9px 12px;border-radius:8px;font-size:13px;color:var(--ink-2);transition:background .14s}
.sritem:hover{background:var(--brand-2);text-decoration:none}
.sritem b{color:var(--brand);margin-right:6px}
.srmeta{color:var(--ink-3);font-size:12px}
.srp{color:var(--ink-2);font-size:12.5px;line-height:1.6}
.srno{color:var(--ink-3);text-align:center;padding:16px 0}

/* ================= 打印 ================= */
/* 政策与卷型 / 九科科目 / 考点总表三页（data-page 豁免）：打印保留原页面色彩；
   其余页面（首页、模拟卷等）维持黑白友好版面。 */
@media print{
  .topbar,.searchwrap,#mexp,#mprint,.toc,.footer{display:none}
  body{background:#fff;font-size:11.5pt;background-image:none}
  .wrap{max-width:none;padding:0}
  .card,.hero,.tablewrap,.qcard,details{box-shadow:none;break-inside:avoid}
  body:not([data-page="policy"],[data-page="subject"],[data-page="analysis"]) .hero{background:#fff !important;color:#000 !important;padding:0 0 12px}
  body:not([data-page="policy"],[data-page="subject"],[data-page="analysis"]) .hero h1,
  body:not([data-page="policy"],[data-page="subject"],[data-page="analysis"]) .hero p,
  body:not([data-page="policy"],[data-page="subject"],[data-page="analysis"]) .hero .meta{color:#000 !important}
  h2{break-after:avoid;border-image:none}
  body:not([data-page="policy"],[data-page="subject"],[data-page="analysis"]) h2{border-left-color:#999}
  details{break-inside:avoid}
  body:not([data-page="policy"],[data-page="subject"],[data-page="analysis"]) details{border:none}
  body:not([data-page="policy"],[data-page="subject"],[data-page="analysis"]) details>summary{background:none;border-bottom:1px solid #ccc}
  a{text-decoration:none}
  body:not([data-page="policy"],[data-page="subject"],[data-page="analysis"]) a{color:#000}
}

/* ================= 页脚 ================= */
.footer{margin-top:52px;background:var(--panel);border-top:1px solid var(--line)}
.footer-in{
  max-width:1180px;margin:0 auto;padding:36px 20px 26px;
  display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:34px;
}
.footer .fcol{min-width:0}
.footer .fbrand{font-weight:700;font-size:15.5px;margin-bottom:8px}
.footer .fdesc{font-size:13px;color:var(--ink-3);line-height:1.9}
.footer .ftitle{
  font-size:12.5px;font-weight:700;color:var(--ink-2);margin-bottom:11px;
  letter-spacing:.6px;
}
.footer .flinks{display:flex;flex-direction:column;gap:8px}
.footer .flinks a,.footer .flinks span{font-size:13px;color:var(--ink-3);line-height:1.55}
.footer .flinks a{transition:color .16s,transform .16s var(--ease)}
.footer .flinks a:hover{color:var(--brand);text-decoration:none;transform:translateX(2px)}
.footer-bottom{border-top:1px solid var(--line-2);background:var(--panel-2)}
.footer-bottom .fb-in{
  max-width:1180px;margin:0 auto;padding:15px 20px;
  display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;
  font-size:12.5px;color:var(--ink-3);
}
.footer-bottom a{color:var(--ink-3)}
.footer-bottom a:hover{color:var(--brand);text-decoration:none}
.footer-bottom .dot{color:var(--line)}
@media(max-width:820px){
  .footer-in{grid-template-columns:1fr;gap:24px}
}

/* ================= 首页整洁化辅助 ================= */
.clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.clamp3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.shead{
  display:flex;align-items:baseline;gap:11px;flex-wrap:wrap;
  margin:42px 0 14px;padding-left:13px;
  border-left:4px solid transparent;
  border-image:linear-gradient(180deg,var(--brand-l),var(--brand)) 1;
}
.shead h2{margin:0;padding:0;border:none;font-size:19.5px}
.shead .shint{font-size:13px;color:var(--ink-3)}
.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.abtn{
  display:inline-block;padding:9px 18px;border-radius:9px;font-size:13.5px;
  border:1px solid var(--line);color:var(--ink-2);background:var(--panel);
  transition:all .16s var(--ease);
}
.abtn:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-2);text-decoration:none;transform:translateY(-1px)}
.abtn.primary{
  background:linear-gradient(180deg,var(--brand-l),var(--brand));border-color:var(--brand);color:#fff;
  box-shadow:0 6px 16px -8px rgba(31,95,169,.85);
}
.abtn.primary:hover{
  background:linear-gradient(180deg,var(--brand),var(--brand-d));border-color:var(--brand-d);color:#fff;
  box-shadow:0 10px 22px -8px rgba(31,95,169,.9);
}

/* 可点击卡片：统一高度与悬浮反馈 */
.acard{
  display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);padding:18px 19px;box-shadow:var(--shadow);
  color:inherit;text-decoration:none;
  transition:border-color .18s var(--ease),transform .18s var(--ease),box-shadow .18s var(--ease);
}
.acard:hover{
  border-color:var(--brand);color:inherit;text-decoration:none;
  transform:translateY(-3px);box-shadow:var(--shadow-lg);
}
.acard .at{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.acard .at b{font-size:15.5px}
.acard .am{font-size:12.5px;color:var(--ink-3);margin-bottom:8px}
.acard .ab{font-size:13.3px;color:var(--ink-2);line-height:1.72}
.acard .af{
  margin-top:auto;padding-top:11px;font-size:12.5px;color:var(--brand);font-weight:600;
  transition:transform .18s var(--ease);
}
.acard:hover .af{transform:translateX(3px)}

/* ================= 关于页 ================= */
.about-lead{font-size:14.5px;color:var(--ink-2);margin:0 0 4px}
.prod-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:820px){.prod-grid{grid-template-columns:1fr}}
.prod{
  position:relative;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:21px 22px;box-shadow:var(--shadow);display:flex;flex-direction:column;
  transition:transform .18s var(--ease),box-shadow .18s var(--ease),border-color .18s var(--ease);
}
.prod:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:#d5dfec}
.prod .ph{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:5px}
.prod .ph b{font-size:16px}
.prod .pdesc{font-size:13.5px;color:var(--ink-2);line-height:1.78;margin:9px 0 11px}
.prod ul.feat{margin:0 0 14px;padding-left:18px}
.prod ul.feat li{font-size:13px;color:var(--ink-2);line-height:1.9}
.prod ul.feat li::marker{color:var(--brand-l)}
.prod .pfoot{margin-top:auto;padding-top:4px}
.prod .pqr{margin-top:auto;padding-top:14px;display:flex;align-items:center;gap:13px}
.prod .pqr img{
  width:106px;height:106px;border:1px solid var(--line);border-radius:10px;
  background:#fff;display:block;box-shadow:var(--shadow-sm);
}
.prod .pqr .t{font-size:12.8px;color:var(--ink-3);line-height:1.78}

/* ================= 登录页 ================= */
.login-wrap{max-width:1000px;margin:0 auto}
.login-grid{display:grid;gap:18px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
@media(max-width:820px){.login-grid{grid-template-columns:1fr}}
.login-card{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:28px 28px 26px;box-shadow:var(--shadow);
}
.login-card h1{font-size:21px;margin:0 0 4px}
.login-card .sub{font-size:13px;color:var(--ink-3);margin:0 0 18px}
.field{margin-bottom:15px}
.field label{display:block;font-size:13px;color:var(--ink-2);margin-bottom:7px;font-weight:600}
.field input{
  width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:9px;
  font:inherit;font-size:14px;background:var(--panel-2);color:var(--ink);outline:none;
  transition:border-color .16s,box-shadow .16s,background .16s;
}
.field input:hover{border-color:#cdd8e6}
.field input:focus{
  border-color:var(--brand);background:#fff;
  box-shadow:0 0 0 3px rgba(31,95,169,.13);
}
.login-tabs{display:flex;gap:6px;margin-bottom:18px;border-bottom:1px solid var(--line-2);padding-bottom:12px}
.login-tabs a{font-size:13.5px;padding:6px 13px;border-radius:8px;color:var(--ink-2);transition:all .16s}
.login-tabs a.on{background:var(--brand-2);color:var(--brand);font-weight:600}
.login-tabs a:hover{text-decoration:none}
.btn-wide{
  width:100%;padding:12px 0;border:none;border-radius:9px;font:inherit;font-size:14.5px;
  font-weight:600;cursor:pointer;color:#fff;
  background:linear-gradient(180deg,var(--brand-l),var(--brand));
  box-shadow:0 8px 20px -10px rgba(31,95,169,.9);
  transition:all .16s var(--ease);
}
.btn-wide:hover{background:linear-gradient(180deg,var(--brand),var(--brand-d));box-shadow:0 12px 26px -10px rgba(31,95,169,.95)}
.btn-wide:active{transform:translateY(1px)}
.btn-wide:disabled{opacity:.7;cursor:default;box-shadow:none}
.login-foot{margin-top:16px;font-size:12.5px;color:var(--ink-3);display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}
.login-foot a{font-size:12.5px}
.forgot-help{
  margin-top:12px;padding:11px 15px;background:var(--brand-3);
  border:1px solid var(--line);border-left:3px solid var(--brand-l);border-radius:9px;
  font-size:13px;color:var(--ink-2);line-height:1.85;
}
/* 登录方式切换：验证码登录 / 密码登录 */
.tabs{
  display:flex;gap:5px;margin:0 0 20px;padding:5px;
  background:var(--bg-2);border:1px solid var(--line);border-radius:11px;
}
.tabs .tab{
  flex:1 1 0;padding:9px 0;border:none;border-radius:8px;background:transparent;
  font:inherit;font-size:13.5px;color:var(--ink-2);cursor:pointer;
  transition:all .18s var(--ease);
}
.tabs .tab.on{background:var(--panel);color:var(--brand);font-weight:600;box-shadow:0 1px 4px rgba(20,40,80,.12)}
.tabs .tab:hover{color:var(--brand)}
.panel-title{font-size:16px;margin:0 0 16px;letter-spacing:-.1px}
/* 验证码输入行：输入框 + 获取验证码按钮 */
.coderow{display:flex;gap:9px;align-items:stretch}
.coderow input{flex:1 1 auto;min-width:0}
.btn-code{
  flex:0 0 auto;padding:0 15px;border:1px solid var(--brand);border-radius:9px;
  background:var(--panel);color:var(--brand);font:inherit;font-size:13px;font-weight:600;
  cursor:pointer;white-space:nowrap;transition:all .16s var(--ease);
}
.btn-code:hover:not(:disabled){background:var(--brand-2)}
.btn-code:disabled{opacity:.65;cursor:default;border-color:var(--line);color:var(--ink-3)}
/* 字段说明与个人中心信息行 */
.hint,.field .hint{font-size:12px;color:var(--ink-3);line-height:1.72;margin-top:7px}
.kv{
  display:flex;justify-content:space-between;gap:12px;
  padding:12px 0;border-bottom:1px solid var(--line-2);font-size:14px;
}
.kv:last-of-type{border-bottom:none}
.kv span{color:var(--ink-3);font-size:13px}
.kv b{color:var(--ink);font-weight:600}
/* 表单提示条 */
#lgMsg,#acMsg{margin-top:12px;padding:11px 15px;border-radius:10px;font-size:13px;line-height:1.78}
#lgMsg.note,#acMsg.note{background:#fdf2f2;border:1px solid #f4d3d3;border-left:3px solid var(--up);color:#a53232}
#lgMsg.tip,#acMsg.tip{background:var(--ok-bg);border:1px solid #cde5d7;border-left:3px solid var(--down);color:#256044}
a.userchip{text-decoration:none}
a.userchip:hover{border-color:var(--brand);text-decoration:none}
.entry-list{display:flex;flex-direction:column;gap:12px}
.entry{
  display:flex;align-items:center;gap:14px;padding:16px 18px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);color:inherit;text-decoration:none;
  transition:all .18s var(--ease);
}
.entry:hover{border-color:var(--brand);text-decoration:none;color:inherit;transform:translateX(3px);box-shadow:var(--shadow-lg)}
.entry .et{flex:1;min-width:0}
.entry .et b{font-size:15px}
.entry .et div{font-size:12.8px;color:var(--ink-3);margin-top:3px}
.entry .earrow{color:var(--brand);font-size:13px;white-space:nowrap;font-weight:600}

/* ---------- 内容保护：除管理员外限制复制 ---------- */
/* 禁用正文选中与长按呼出菜单；输入框（登录/注册/搜索等）不受影响 */
.nocopy *{
  -webkit-user-select:none;
  -moz-user-select:none;
  -ms-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
}
.nocopy input,
.nocopy textarea,
.nocopy select{
  -webkit-user-select:text;
  -moz-user-select:text;
  user-select:text;
}
/* 打印时隐藏交互按钮，只保留试卷正文 */
@media print{
  .print-hide{display:none !important}
}

/* ---------- 隐私保护说明（首页） ---------- */
.pvlist{display:grid;gap:12px;margin-top:4px}
.pvitem{
  padding:13px 16px;background:var(--brand-3);
  border:1px solid var(--line);border-left:3px solid var(--brand-l);border-radius:10px;
  transition:border-color .16s,background .16s;
}
.pvitem:hover{background:var(--brand-2);border-left-color:var(--brand)}
.pvitem .pvt{font-size:14.5px;font-weight:600;color:var(--brand-d);margin-bottom:6px}
.pvitem .pvb{font-size:13.8px;line-height:1.92;color:var(--ink-2);text-align:justify}
@media (max-width:640px){
  .pvitem{padding:11px 13px}
  .pvitem .pvb{font-size:13.2px;line-height:1.86}
}

/* ---------- 隐私说明折叠按钮 ---------- */
.pv-toggle{
  margin-left:12px;padding:5px 14px;border:1px solid var(--line);border-radius:999px;
  background:var(--panel-2);color:var(--ink-2);font-size:12.5px;cursor:pointer;white-space:nowrap;
  transition:all .16s var(--ease);
}
.pv-toggle:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-2)}
.pv-arrow{font-size:11px}

/* ---------- 人员管理页 ---------- */
.adlist{overflow-x:auto}
.adtable{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px;min-width:640px}
.adtable th{
  text-align:left;font-weight:600;color:var(--ink-3);font-size:12.5px;
  padding:12px 15px;background:linear-gradient(180deg,#f8fafd,var(--panel-2));
  border-bottom:1px solid var(--line);white-space:nowrap;
}
.adtable td{padding:12px 15px;border-bottom:1px solid var(--line);vertical-align:middle}
.adtable tbody tr:last-child td{border-bottom:none}
.adtable tbody tr{transition:background .14s}
.adtable tbody tr:hover{background:var(--brand-3)}
.adtable .mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;letter-spacing:.3px}
.adtag{
  display:inline-block;padding:2.5px 10px;border-radius:999px;font-size:12px;white-space:nowrap;
  border:1px solid var(--line);color:var(--ink-3);background:var(--panel-2);
}
.adtag.yes{color:var(--brand);border-color:var(--brand);background:var(--brand-2);font-weight:600}
.adtag.super{color:#fff;border-color:var(--brand);background:linear-gradient(120deg,var(--brand),var(--brand-l));font-weight:600}
.adtag.no{color:var(--ink-3)}
.adbtn{
  padding:6px 13px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);
  color:var(--ink-2);font-size:12.5px;cursor:pointer;white-space:nowrap;
  transition:all .16s var(--ease);
}
.adbtn:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-2)}
.adbtn.danger:hover{border-color:#d9534f;color:#d9534f;background:#fdf2f2}
.adbtn:disabled{opacity:.6;cursor:not-allowed}

/* ================= 动效与可访问性 ================= */
/* 页面渲染入场：整体淡入上移，避免生硬闪出 */
@keyframes gkFadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes gkFade{from{opacity:0}to{opacity:1}}
#page{animation:gkFadeUp .42s var(--ease) both}
.hero{animation:gkFadeUp .5s var(--ease) both}
/* 首屏内元素依次浮现 */
.hero h1{animation:gkFadeUp .5s .06s var(--ease) both}
.hero .hero-lead{animation:gkFadeUp .5s .1s var(--ease) both}
.hero-actions{animation:gkFadeUp .5s .14s var(--ease) both}
.hero-stats{animation:gkFadeUp .5s .18s var(--ease) both}
#topbar{animation:gkFade .4s var(--ease) both}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;transition-duration:.01ms !important}
  html{scroll-behavior:auto}
}
/* 键盘可达性 */
:focus-visible{outline:2px solid var(--brand-l);outline-offset:2px;border-radius:4px}
input:focus-visible,button:focus-visible,a:focus-visible{outline-offset:2px}

/* ==================================================================
   页面主题色 / 科目色体系
   —— 每个页面、每个科目都有自己的主色，用于标题、徽标、卡片、
      胶囊与解析块，做到「一眼分辨、各具特色」而整体仍统一克制。
   ================================================================== */
body,#page{
  --acc:#1f5fa9;      /* 主色 */
  --acc-d:#164a85;    /* 深色（渐变末端 / 阴影） */
  --acc-2:#eef4fc;    /* 极浅底 */
  --acc-bd:#d3e2f4;   /* 浅边线 */
}
/* 内容页 */
[data-accent="policy"]  {--acc:#a8710a;--acc-d:#7d5306;--acc-2:#fdf6e5;--acc-bd:#f0e0b4}
[data-accent="analysis"]{--acc:#6d4bb5;--acc-d:#53368f;--acc-2:#f1ebfd;--acc-bd:#ded1f7}
[data-accent="mock"]    {--acc:#0e7c8b;--acc-d:#0a5f6b;--acc-2:#e6f4f6;--acc-bd:#c9e6ea}
/* 九科 */
[data-accent="zh"]  {--acc:#b4453c;--acc-d:#8c322b;--acc-2:#fbecea;--acc-bd:#f0d3d0}
[data-accent="math"]{--acc:#2b5fb0;--acc-d:#1f4788;--acc-2:#eaf1fb;--acc-bd:#cfdff5}
[data-accent="en"]  {--acc:#0e7c8b;--acc-d:#0a5f6b;--acc-2:#e6f4f6;--acc-bd:#c9e6ea}
[data-accent="phy"] {--acc:#4655a8;--acc-d:#333f83;--acc-2:#eceefb;--acc-bd:#d5daf4}
[data-accent="chem"]{--acc:#c1651a;--acc-d:#964c10;--acc-2:#fdf0e4;--acc-bd:#f4dcc2}
[data-accent="bio"] {--acc:#2e7d4f;--acc-d:#22603c;--acc-2:#eaf6ef;--acc-bd:#cde7d8}
[data-accent="his"] {--acc:#8a6a2f;--acc-d:#6a5023;--acc-2:#f7f1e2;--acc-bd:#e7dcc0}
[data-accent="pol"] {--acc:#a83355;--acc-d:#832741;--acc-2:#fbedf1;--acc-bd:#f0d0da}
[data-accent="geo"] {--acc:#1f7a6a;--acc-d:#165c50;--acc-2:#e9f5f2;--acc-bd:#c9e5de}
/* 账号相关页 */
[data-accent="account"]{--acc:#3a6ea5;--acc-d:#2b5580;--acc-2:#eef4fa;--acc-bd:#d4e2f0}
[data-accent="admin"]  {--acc:#4b5c72;--acc-d:#374453;--acc-2:#eff2f6;--acc-bd:#d8dfe8}

/* --- 主题色落到各构件 --- */
h2{border-image:linear-gradient(180deg,var(--acc),var(--acc-d)) 1}
.shead{border-image:linear-gradient(180deg,var(--acc),var(--acc-d)) 1}
/* KPI 数字卡 */
.kpi{border-color:var(--acc-bd)}
.kpi::before{background:linear-gradient(180deg,var(--acc),var(--acc-d))}
.kpi .n{background:linear-gradient(120deg,var(--acc-d),var(--acc));-webkit-background-clip:text;background-clip:text;color:transparent}
.kpi:hover{border-color:var(--acc)}
/* 目录胶囊 */
.toc a:hover{border-color:var(--acc);color:var(--acc);background:var(--acc-2);box-shadow:0 4px 12px -6px var(--acc)}
.toc a.on{background:var(--acc);border-color:var(--acc);color:#fff;font-weight:600}
.toc a.on:hover{background:var(--acc-d);border-color:var(--acc-d);color:#fff}
/* 折叠块 */
details>summary::before{color:var(--acc)}
details>summary:hover{background:var(--acc-2)}
/* 解析块 */
.qcard:hover{border-color:var(--acc-bd)}
.qhead{background:linear-gradient(180deg,var(--acc-2),var(--panel-2))}
.qbody .lab{color:var(--acc)}
.qbody .stem{border-left-color:var(--acc)}
.steps li::before{background:linear-gradient(180deg,var(--acc),var(--acc-d));box-shadow:0 2px 7px -2px var(--acc)}
/* 按钮与标签 */
.btn:hover{border-color:var(--acc);color:var(--acc);background:var(--acc-2)}
.tag.t-blue{background:var(--acc-2);color:var(--acc-d)}
/* 表格 */
tbody tr:hover{background:var(--acc-2)}
td.no{color:var(--acc)}
/* 字段与提示 */
.field input:focus{border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-2)}
.field label{color:var(--ink-2)}
/* 隐私条目 */
.pvitem{border-left-color:var(--acc);background:var(--acc-2)}
.pvitem:hover{background:var(--panel)}
.pvitem .pvt{color:var(--acc-d)}
/* 登录页切换与主按钮 */
.tabs .tab.on{color:var(--acc)}
.btn-code{border-color:var(--acc);color:var(--acc)}
.btn-code:hover:not(:disabled){background:var(--acc-2)}
/* 卡片悬浮描边 */
.acard:hover{border-color:var(--acc)}
.acard .af{color:var(--acc)}

/* --- 九科彩标（首页九科速览 / 模拟卷选科） --- */
[data-subj="zh"]  {--sc:#b4453c;--sc2:#fbecea}
[data-subj="math"]{--sc:#2b5fb0;--sc2:#eaf1fb}
[data-subj="en"]  {--sc:#0e7c8b;--sc2:#e6f4f6}
[data-subj="phy"] {--sc:#4655a8;--sc2:#eceefb}
[data-subj="chem"]{--sc:#c1651a;--sc2:#fdf0e4}
[data-subj="bio"] {--sc:#2e7d4f;--sc2:#eaf6ef}
[data-subj="his"] {--sc:#8a6a2f;--sc2:#f7f1e2}
[data-subj="pol"] {--sc:#a83355;--sc2:#fbedf1}
[data-subj="zz"]  {--sc:#a83355;--sc2:#fbedf1}
[data-subj="geo"] {--sc:#1f7a6a;--sc2:#e9f5f2}
.toc a[data-subj]{
  background:var(--sc2);border-color:transparent;color:var(--sc);font-weight:600;
  padding:7px 15px;
}
.toc a[data-subj]:hover{background:var(--sc);border-color:var(--sc);color:#fff;box-shadow:0 5px 14px -6px var(--sc)}
/* 选中态优先：确保「当前科目 / 当前试卷」始终是实心主色，不被彩标底色覆盖 */
.toc a[data-subj].on,
.toc a[data-subj].on:hover{
  background:var(--sc);border-color:var(--sc);color:#fff;font-weight:600;
  box-shadow:0 5px 14px -6px var(--sc);
}

/* ==================================================================
   首页动效层 —— 让两侧空白「活起来」
   科技网格（只在余白处显形）+ 漂浮光斑 + 左右内容轨 + 首屏网格装饰
   仅首页启用（body[data-page="index"]）；动画全部只用 transform/opacity。
   ================================================================== */
.fx{position:fixed;inset:0;pointer-events:none;z-index:0}
body[data-page="index"] #page,
body[data-page="index"] #footer{position:relative;z-index:1}

/* 科技网格：中部用径向遮罩淡出，只在两侧余白显形 */
.fx-grid{
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(31,95,169,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(31,95,169,.055) 1px,transparent 1px);
  background-size:46px 46px;
  -webkit-mask-image:radial-gradient(ellipse 56% 46% at 50% 38%,transparent 28%,#000 76%);
  mask-image:radial-gradient(ellipse 56% 46% at 50% 38%,transparent 28%,#000 76%);
}
/* 漂浮光斑 */
.fx-orb{position:absolute;border-radius:50%;filter:blur(58px);opacity:.55}
.fx-orb-a{width:430px;height:430px;left:-130px;top:10%;
  background:radial-gradient(circle,rgba(63,134,201,.20),transparent 66%);
  animation:orbDrift 26s ease-in-out infinite alternate}
.fx-orb-b{width:380px;height:380px;right:-120px;top:50%;
  background:radial-gradient(circle,rgba(109,75,181,.15),transparent 66%);
  animation:orbDrift 32s ease-in-out infinite alternate-reverse}
@keyframes orbDrift{
  from{transform:translate3d(0,0,0) scale(1)}
  to{transform:translate3d(34px,-50px,0) scale(1.12)}
}

/* ---------- 左轨：竖排主题字 + 数据流线 ---------- */
.rail{
  position:fixed;top:0;bottom:0;display:none;z-index:1;pointer-events:none;
  width:calc((100vw - 1240px)/2);
}
@media(min-width:1440px){.rail{display:flex}}
.rail-l{
  left:0;flex-direction:column;justify-content:center;align-items:flex-end;
  gap:22px;padding-right:22px;
}
.rl-text{
  writing-mode:vertical-rl;font-size:12px;font-weight:600;
  letter-spacing:.52em;color:rgba(31,95,169,.44);
}
.rl-flow{
  position:relative;width:2px;height:32vh;border-radius:2px;
  background:linear-gradient(180deg,transparent,rgba(31,95,169,.32) 16%,rgba(31,95,169,.32) 84%,transparent);
}
.rl-flow i{
  position:absolute;left:50%;top:0;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;
  background:#3f86c9;box-shadow:0 0 10px 2px rgba(63,134,201,.55);
  animation:rlDrop 5.2s linear infinite;
}
.rl-flow i:nth-child(2){animation-delay:1.7s}
.rl-flow i:nth-child(3){animation-delay:3.4s}
@keyframes rlDrop{
  0%{top:-4%;opacity:0}12%{opacity:1}86%{opacity:1}100%{top:102%;opacity:0}
}
.rl-node{
  width:7px;height:7px;border-radius:50%;background:#fff;
  border:2px solid rgba(63,134,201,.55);box-shadow:0 0 0 4px rgba(63,134,201,.10);
}
.rl-year{
  writing-mode:vertical-rl;font-size:11px;letter-spacing:.34em;
  color:rgba(31,95,169,.32);font-variant-numeric:tabular-nums;
}

/* ---------- 右轨：配图卡 / 九科条目迷你图 / 阅读进度环 ---------- */
.rail-r{
  right:0;flex-direction:column;justify-content:center;align-items:flex-start;
  gap:16px;padding-left:22px;
}
.rr-panel{display:none;width:230px}
@media(min-width:1700px){.rr-panel{display:block}}
/* hidden 属性必须始终生效（UA 的 [hidden]{display:none} 会被上面的 display:block 覆盖） */
.rr-panel[hidden]{display:none !important}
.rr-card{
  position:relative;border-radius:16px;overflow:hidden;
  border:1px solid rgba(255,255,255,.65);
  box-shadow:0 18px 44px -18px rgba(23,58,102,.45);
}
.rr-card img{display:block;width:100%;height:126px;object-fit:cover}
.rr-cap{
  position:absolute;left:0;right:0;bottom:0;padding:26px 14px 10px;color:#fff;
  background:linear-gradient(180deg,transparent,rgba(10,30,58,.80));
}
.rr-cap b{display:block;font-size:13.5px;letter-spacing:.05em}
.rr-cap span{font-size:11px;color:rgba(255,255,255,.84)}
.rr-chart{
  background:rgba(255,255,255,.84);backdrop-filter:blur(8px);
  border:1px solid rgba(31,95,169,.14);border-radius:14px;padding:13px 14px 11px;
  box-shadow:0 14px 34px -18px rgba(23,58,102,.35);
}
.rr-chart h4{
  margin:0 0 9px;font-size:12px;color:var(--ink-2);letter-spacing:.08em;
  display:flex;justify-content:space-between;align-items:baseline;
}
.rr-chart h4 span{font-size:10.5px;color:var(--ink-3);letter-spacing:0}
.rr-row{display:grid;grid-template-columns:30px 1fr 26px;align-items:center;gap:8px;margin:5px 0}
.rr-row .nm{font-size:11px;color:var(--ink-2);white-space:nowrap}
.rr-row .bar{height:6px;border-radius:4px;background:rgba(31,95,169,.10);overflow:hidden}
.rr-row .bar i{display:block;height:100%;width:0;border-radius:4px;transition:width 1.1s cubic-bezier(.22,.9,.36,1)}
.rr-row .ct{font-size:10.5px;color:var(--ink-3);text-align:right;font-variant-numeric:tabular-nums}
/* 进度环：始终显示（≥1440px），可点击回顶部 */
.rr-ring{
  pointer-events:auto;cursor:pointer;position:relative;
  width:46px;height:46px;margin:4px 0 0 2px;
  opacity:.85;transition:opacity .2s var(--ease),transform .2s var(--ease);
}
.rr-ring:hover{opacity:1;transform:translateY(-2px)}
.rr-ring svg{display:block;transform:rotate(-90deg)}
.rr-ring .bg{stroke:rgba(31,95,169,.15);fill:none}
.rr-ring .prog{stroke:url(#rrg);fill:none;stroke-linecap:round;transition:stroke-dashoffset .18s linear}
.rr-ring b{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:9.5px;font-weight:600;color:var(--brand-d);letter-spacing:.05em;
}

/* ---------- 首屏网格装饰与悬浮标签 ---------- */
.hero-fx{position:absolute;inset:0;pointer-events:none;display:none}
@media(min-width:980px){.hero-fx{display:block}}
.hero-mesh{position:absolute;right:-24px;top:-18px;width:330px;height:calc(100% + 36px);opacity:.55}
.hero-mesh path{stroke-dasharray:620;stroke-dashoffset:620;animation:meshDraw 2.2s var(--ease) forwards}
.hero-mesh g:nth-of-type(1) path:nth-child(2){animation-delay:.15s}
.hero-mesh g:nth-of-type(1) path:nth-child(3){animation-delay:.3s}
.hero-mesh g:nth-of-type(1) path:nth-child(4){animation-delay:.45s}
.hero-mesh g:nth-of-type(1) path:nth-child(5){animation-delay:.6s}
.hero-mesh g:nth-of-type(1) path:nth-child(6){animation-delay:.75s}
.hero-mesh g:nth-of-type(1) path:nth-child(7){animation-delay:.9s}
@keyframes meshDraw{to{stroke-dashoffset:0}}
.hchip{
  position:absolute;display:inline-flex;align-items:center;gap:7px;
  padding:7px 13px;border-radius:999px;white-space:nowrap;
  background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.30);
  color:#fff;font-size:12px;letter-spacing:.04em;
  backdrop-filter:blur(4px);box-shadow:0 10px 24px -14px rgba(0,0,0,.5);
  animation:hFloat 7s ease-in-out infinite alternate;
}
.hchip .d{width:6px;height:6px;border-radius:50%;background:#8fe3b0;box-shadow:0 0 0 3px rgba(143,227,176,.25)}
.hc-a{right:216px;top:42px}
.hc-b{right:118px;top:120px;animation-delay:1.6s}
.hc-c{right:268px;top:176px;animation-delay:3.1s}
@keyframes hFloat{from{transform:translateY(0)}to{transform:translateY(-14px)}}

/* ---------- 滚动渐显（类名由 JS 添加，无 JS 不受影响） ---------- */
.rv{opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.rv.rv-in{opacity:1;transform:none}
.grid .rv:nth-child(2){transition-delay:.07s}
.grid .rv:nth-child(3){transition-delay:.14s}
.grid .rv:nth-child(4){transition-delay:.21s}

/* ==================================================================
   全站通用：顶部进度条 / 顶栏精修 / 页脚渲染 / 主题色化轨道
   —— 与首页动效层同一套语言，各页按自身主题色取色。
   ================================================================== */

/* ---------- 顶部阅读进度条 ---------- */
.tpbar{
  position:fixed;left:0;right:0;top:0;height:3px;z-index:95;
  pointer-events:none;background:rgba(31,95,169,.07);
}
.tpbar i{
  display:block;height:100%;width:0;
  background:linear-gradient(90deg,var(--acc),var(--acc-d));
  box-shadow:0 0 10px -1px var(--acc);
  transition:width .12s linear;
}

/* ---------- 顶栏精修：主题色细线 + 底部渐变边 ---------- */
.topbar{border-bottom:none}
.topbar::before{
  content:"";position:absolute;left:0;right:0;top:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--acc),transparent);opacity:.5;
}
.topbar::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;
  background:linear-gradient(90deg,transparent 4%,var(--acc-bd) 26%,var(--acc) 50%,var(--acc-bd) 74%,transparent 96%);
  opacity:.75;
}
.nav a.on,.nav a.active{background:var(--acc-2);color:var(--acc-d);font-weight:600}

/* ---------- 页脚渲染：主题色顶边 + 细网格底纹 + 渐变底 ---------- */
.footer{
  position:relative;overflow:hidden;margin-top:52px;border-top:none;
  background:linear-gradient(180deg,var(--panel),var(--panel-2));
}
.footer::before{
  content:"";position:absolute;left:0;right:0;top:0;height:3px;z-index:2;
  background:linear-gradient(90deg,transparent 2%,var(--acc) 50%,transparent 98%);
  opacity:.85;
}
.footer::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(31,95,169,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(31,95,169,.045) 1px,transparent 1px);
  background-size:46px 46px;
  -webkit-mask-image:radial-gradient(ellipse 78% 130% at 50% 0%,#000 8%,transparent 72%);
  mask-image:radial-gradient(ellipse 78% 130% at 50% 0%,#000 8%,transparent 72%);
}
.footer-in,.footer-bottom{position:relative;z-index:1}
.footer .fbrand{position:relative;padding-left:13px}
.footer .fbrand::before{
  content:"";position:absolute;left:0;top:3px;bottom:3px;width:3px;border-radius:3px;
  background:linear-gradient(180deg,var(--acc),var(--acc-d));
}
.footer .ftitle{color:var(--ink-2)}
/* 页脚顶部：回顶按钮 */
.footer-top{
  position:relative;z-index:1;max-width:1180px;margin:0 auto;padding:20px 20px 0;
  display:flex;justify-content:center;
}
.toTop{
  display:inline-flex;align-items:center;gap:8px;cursor:pointer;
  padding:8px 18px;border-radius:999px;font-size:12.5px;font-weight:600;
  color:var(--acc-d);background:var(--panel);border:1px solid var(--acc-bd);
  box-shadow:0 10px 24px -16px var(--acc);
  transition:transform .18s var(--ease),box-shadow .18s var(--ease),background .18s var(--ease);
}
.toTop:hover{transform:translateY(-2px);background:var(--acc-2);box-shadow:0 14px 28px -14px var(--acc)}
.toTop .ar{font-size:13px;line-height:1}
.footer-bottom{background:linear-gradient(180deg,var(--panel-2),#eef3f9)}

/* ---------- 轨道 / 面板按主题色取色 ---------- */
.rl-text{color:var(--acc);opacity:.62}
.rl-flow{background:linear-gradient(180deg,transparent,var(--acc) 16%,var(--acc) 84%,transparent);opacity:.5}
.rl-flow i{background:var(--acc);box-shadow:0 0 10px 2px var(--acc)}
.rl-node{border-color:var(--acc);box-shadow:0 0 0 4px var(--acc-2)}
.rl-year{color:var(--acc);opacity:.5}
.rr-chart{border-color:var(--acc-bd)}
.rr-chart h4 span{color:var(--acc)}
.rr-cap b::before{
  content:"";display:inline-block;width:6px;height:6px;border-radius:50%;
  background:#8fe3b0;box-shadow:0 0 0 3px rgba(143,227,176,.25);
  margin-right:7px;vertical-align:1px;
}
.rr-row .bar i{background:var(--acc)}
.rr-ring .bg{stroke:var(--acc-2)}
.rr-ring b{color:var(--acc-d)}

/* 面板：文本型两列（年份 → 卷型） */
.rr-row2{display:grid;grid-template-columns:40px 1fr;gap:8px;align-items:baseline;margin:6px 0}
.rr-row2 .k{font-size:10.5px;color:var(--acc);font-weight:600;font-variant-numeric:tabular-nums}
.rr-row2 .v{
  font-size:11px;color:var(--ink-2);line-height:1.45;
  overflow:hidden;text-overflow:ellipsis;display:-webkit-box;
  -webkit-line-clamp:2;-webkit-box-orient:vertical;
}
/* 面板：条目型（说明列表） */
.rr-info{list-style:none;margin:0;padding:0}
.rr-info li{position:relative;padding-left:13px;margin:6px 0;font-size:11px;color:var(--ink-2);line-height:1.55}
.rr-info li::before{
  content:"";position:absolute;left:0;top:6px;width:5px;height:5px;border-radius:50%;
  background:var(--acc);opacity:.7;
}
@media(max-width:1700px){
  /* 窄轨时面板不显示，改由顶/底渲染承担视觉，无需额外处理 */
}

/* ==================================================================
   移动端专项优化
   —— 顶栏三行紧凑布局（品牌+账号 / 搜索+辅助 / 导航横滑）、
      触控目标与 :active 反馈、iOS 输入防缩放、安全区适配、性能取舍。
   ================================================================== */

/* 锚点跳转不被吸顶栏遮住 */
h2,.shead,details,.qcard,.entry{scroll-margin-top:84px}

/* ---------- ≤820px：顶栏重构为三行 ---------- */
@media(max-width:820px){
  /* 性能与视觉：移动端无两侧余白，动效背景整层关闭（进度条 #tpbar 是独立元素，保留） */
  .fx{display:none}
  body{background-attachment:scroll;overflow-wrap:break-word}

  h2,.shead,details,.qcard,.entry{scroll-margin-top:150px}
  .wrap{padding:20px 16px calc(88px + env(safe-area-inset-bottom,0px))}

  /* 三行布局：行1 品牌+账号 | 行2 搜索+辅助入口 | 行3 导航横滑 */
  .topbar-in{padding:8px 12px 0;column-gap:8px;row-gap:0}
  .brand{order:0;flex:1 1 auto;min-width:0;overflow:hidden;font-size:14.5px;padding:2px 0 8px}
  .brand span{display:none}
  .userchip,
  .topbar-in > .backhome[href="login.html"],
  #logoutBtn{order:1;margin-left:0;padding:6px 10px;font-size:12.5px;flex:0 0 auto}
  .topbar-in > .backhome:not([href="login.html"]):not(#logoutBtn){order:2;padding:6px 10px;font-size:12.5px}
  .searchwrap{order:2;flex:1 1 auto;margin:0 0 8px}
  .searchwrap input{width:100%;padding:9px 12px}
  .searchwrap input:focus{width:100%}
  .searchres{max-width:calc(100vw - 24px)}
  .nav{
    order:3;flex:0 0 calc(100% + 24px);margin:0 -12px;padding:0 12px 9px;
    flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;
    gap:4px;
  }
  .nav::-webkit-scrollbar{display:none}
  .nav a{flex:0 0 auto;scroll-snap-align:start;white-space:nowrap;padding:8px 13px}
  .nav a.on{box-shadow:none}
  .nav a:active{background:var(--acc-2);color:var(--acc-d)}
  .nav a.on:active{filter:brightness(.94)}

  /* iOS：输入字号 <16px 聚焦时会自动放大页面，统一提到 16px */
  .searchwrap input{font-size:16px}

  /* 顶栏避开刘海（配合 viewport-fit=cover；无刘海设备 env=0 无影响） */
  .topbar{top:env(safe-area-inset-top,0px)}
  .tpbar{top:env(safe-area-inset-top,0px)}
  .footer-bottom{padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))}
}

/* ---------- ≤640px：触控目标加大 / 表格更紧凑 / 表单防缩放 ---------- */
@media(max-width:640px){
  .toc a{padding:9px 15px;font-size:13.5px}
  .tabs .tab{padding:9px 16px}
  .abtn{padding:11px 20px}
  .field input,.field select{font-size:16px}
  table{font-size:13px;min-width:560px}
  th,td{padding:9px 10px}
  .tablewrap{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
  details>summary{padding:13px 14px}
  .footer{margin-top:40px}
  .hero{border-radius:14px}
  .card{border-radius:14px}
}

/* ---------- 触屏：没有 hover，去掉悬浮位移、给按下反馈 ---------- */
@media(hover:none){
  *{-webkit-tap-highlight-color:transparent}
  a:hover{text-decoration:none}
  tbody tr:hover,.adtable tbody tr:hover{background:transparent}
  .kpi:hover,.toc a:hover,.toc a[data-subj]:hover,.abtn:hover,.toTop:hover,
  .card:hover,.acard:hover,.prod:hover,.entry:hover{transform:none}
  .toc a:active,.btn:active,.btn-code:active{background:var(--acc-2)}
  .abtn:active,.toTop:active{transform:scale(.97)}
  .abtn.primary:active{background:#f2f7fd}
  .toc a.on:active{background:var(--acc-d)}
}

/* ---------- 搜索定位：命中题位闪烁提示 ---------- */
@keyframes jumpFlash{
  0%  {background-color:var(--acc-2);box-shadow:0 0 0 2px var(--acc)}
  60% {background-color:var(--acc-2);box-shadow:0 0 0 2px var(--acc)}
  100%{background-color:transparent;box-shadow:none}
}
tr.jump-flash{animation:jumpFlash 2.4s ease}
tr.jump-flash td{background-color:transparent !important}
.qcard.jump-flash{animation:jumpFlash 2.4s ease}

/* ==================================================================
   首页 · 备考三问（考什么 → 学什么 → 备什么）
   —— 三张卡按「先后顺序」排列，用三色区分（品牌蓝 / 考点紫 / 模拟卷青），
      与站内三块内容的主题色一致；卡片间以箭头串联递进关系。
   ================================================================== */
.hero-slogan{
  margin:16px 0 4px;padding-left:14px;position:relative;
  font-size:19px;font-weight:600;letter-spacing:.06em;color:#fff;line-height:1.5;
}
.hero-slogan::before{
  content:"";position:absolute;left:0;top:5px;bottom:5px;width:3px;border-radius:3px;
  background:linear-gradient(180deg,#8fe3b0,rgba(143,227,176,.25));
}
.hero-slogan em{font-style:normal;color:#bcd9f5}

.qa3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch}
.qa3 .card3{
  position:relative;display:flex;flex-direction:column;overflow:hidden;
  background:var(--panel);border:1px solid var(--line);border-radius:16px;
  padding:20px 20px 16px;box-shadow:var(--shadow);
  transition:transform .22s var(--ease),box-shadow .22s var(--ease),border-color .22s var(--ease);
}
.qa3 .card3::before{
  content:"";position:absolute;left:0;top:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--c),var(--c2));
}
.qa3 .card3::after{
  content:"→";position:absolute;right:-15px;top:50%;transform:translateY(-50%);
  width:28px;height:28px;line-height:26px;text-align:center;border-radius:50%;
  background:var(--panel);border:1px solid var(--line);
  color:var(--ink-3);font-size:14px;z-index:2;
}
.qa3 .card3:last-child::after{display:none}
.qa3 .card3:hover{
  transform:translateY(-4px);border-color:var(--c2);
  box-shadow:0 20px 42px -22px var(--c);
}
.qa3 .c3-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.qa3 .c3-no{
  font-size:12px;font-weight:700;letter-spacing:.1em;
  color:var(--c);background:var(--cs);border:1px solid var(--cbd);
  border-radius:999px;padding:3px 11px;
}
.qa3 .c3-who{font-size:11.5px;color:var(--ink-3);letter-spacing:.08em}
.qa3 .c3-tit{font-size:17px;font-weight:600;color:var(--ink);line-height:1.45}
.qa3 .c3-tit b{color:var(--c)}
.qa3 .c3-metrics{display:flex;gap:20px;margin:14px 0 10px}
.qa3 .c3-m b{
  display:block;font-size:26px;font-weight:700;line-height:1.1;
  font-variant-numeric:tabular-nums;
  background:linear-gradient(120deg,var(--c),var(--c2));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.qa3 .c3-m span{font-size:11.5px;color:var(--ink-3)}
.qa3 .c3-desc{font-size:13px;line-height:1.72;color:var(--ink-2);flex:1}
.qa3 .c3-tags{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0}
.qa3 .c3-tags i{
  font-style:normal;font-size:11.5px;padding:3px 9px;border-radius:6px;
  background:var(--cs);color:var(--c);border:1px solid var(--cbd);
}
.qa3 .c3-go{
  display:inline-flex;align-items:center;gap:6px;margin-top:14px;
  font-size:13px;font-weight:600;color:var(--c);text-decoration:none;
  border-top:1px dashed var(--line);padding-top:12px;
}
.qa3 .c3-go:hover{color:var(--c2)}
/* 三色（与站内对应页面主题色一致） */
.qa3 .card3[data-tone="a"]{--c:#1f5fa9;--c2:#3f86c9;--cs:#eef4fc;--cbd:#d3e2f4}
.qa3 .card3[data-tone="b"]{--c:#6d4bb5;--c2:#8f6dd6;--cs:#f1ebfd;--cbd:#ded1f7}
.qa3 .card3[data-tone="c"]{--c:#0e7c8b;--c2:#2ba0b0;--cs:#e6f4f6;--cbd:#c9e6ea}

@media(max-width:980px){
  .qa3{grid-template-columns:1fr;gap:14px}
  .qa3 .card3::after{
    content:"↓";right:auto;left:50%;top:auto;bottom:-16px;transform:translateX(-50%);
  }
  .hero-slogan{font-size:16.5px}
}

/* ==================================================================
   打印 / 导出 PDF
   —— 内容页 hero 右上角「打印 / 导出 PDF」按钮 + @media print 版面：
      隐藏全部交互与装饰元素、黑白友好、避免跨页断裂、跨页重复表头。
   ================================================================== */
.btn-print{
  position:absolute;right:22px;top:22px;z-index:3;
  display:inline-flex;align-items:center;gap:7px;
  padding:8px 16px;border-radius:999px;font-size:12.5px;font-weight:600;
  font-family:inherit;cursor:pointer;
  color:var(--acc-d);background:var(--acc-2);border:1px solid var(--acc-bd);
  transition:transform .18s var(--ease),box-shadow .18s var(--ease),background .18s var(--ease);
}
.btn-print::before{content:"⎙";font-size:14px;line-height:1}
.btn-print:hover{transform:translateY(-2px);background:#fff;box-shadow:0 10px 22px -14px var(--acc)}
.btn-print:active{transform:none}
@media(max-width:820px){
  .btn-print{position:static;align-self:flex-start;margin-top:12px}
}
.print-head{display:none}

@media print{
  @page{margin:13mm 11mm}
  html,body{background:#fff !important}
  body{font-size:12px;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  /* 动画与位移全部归零，保证内容可见 */
  *{animation:none !important;transition:none !important;transform:none !important}
  #page,.hero,.hero h1,.hero .hero-lead,.rv{opacity:1 !important}
  /* 隐藏交互与装饰元素 */
  .topbar,.footer,.fx,.tpbar,.rail,.rr-panel,.rr-ring,.hero-fx,.hchip,
  .searchwrap,.btn-print,.hero-actions,.abtn,.c3-go,.toTop,.footer-top,
  .toc,.tabs,.btn,.btn-code,.pqr,.nav,.pvwrap,.login-grid,.adtool,.shint,
  .gk-toast{display:none !important}
  /* 打印页眉 */
  .print-head{
    display:flex;justify-content:space-between;align-items:baseline;gap:12px;
    border-bottom:2px solid #222;padding-bottom:6px;margin-bottom:12px;
  }
  .print-head b{font-size:15px;color:#111}
  .print-head span{font-size:10px;color:#555;white-space:nowrap}
  /* 版面收敛 */
  .wrap{max-width:100%;padding:0;margin:0}
  /* 模拟卷页：黑白友好版面（维持原有处理） */
  body[data-page="mock"]{color:#111}
  body[data-page="mock"] .hero,body[data-page="mock"] .hero.plain{
    background:#fff !important;color:#111;border:1px solid #bbb;border-radius:8px;
    box-shadow:none;padding:14px 16px;margin-bottom:14px;
  }
  body[data-page="mock"] .hero h1,body[data-page="mock"] .hero p,body[data-page="mock"] .hero .meta{color:#222 !important}
  body[data-page="mock"] .hero .hero-ico{color:#fff !important}
  body[data-page="mock"] .hero-stats .hs b,body[data-page="mock"] .kpi .n,body[data-page="mock"] .c3-m b{-webkit-text-fill-color:currentColor;color:#111 !important}
  body[data-page="mock"] .card,body[data-page="mock"] .acard,body[data-page="mock"] .card3,body[data-page="mock"] .kpi{border-color:#bbb}
  body[data-page="mock"] a{color:inherit !important;text-decoration:none !important}
  /* 其余内容页（政策/科目/考点总表）：保留原页面色彩，仅去掉阴影、收敛版面 */
  .hero,.hero.plain{border-radius:8px;box-shadow:none;padding:14px 16px;margin-bottom:14px}
  .card,.qcard,.kpi,.acard,.card3,.prov,.note,.tip,.pvitem{box-shadow:none;break-inside:avoid}
  h2,.shead,h3{break-after:avoid;break-inside:avoid}
  table{font-size:10.5px;min-width:0}
  table.qtable,table.ktable{table-layout:fixed}
  th,td{padding:5px 7px}
  tr{break-inside:avoid}
  thead{display:table-header-group}
  .tablewrap{overflow:visible !important}
  details{break-inside:avoid}
  a{text-decoration:none !important}
  .grid,.prod-grid,.qa3{gap:10px}
}

/* ==================================================================
   数据看板（考点总表页）—— 纯 SVG 手写图表，跟随页面主题与明暗文字
   ================================================================== */
.dash{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.dash-card{
  background:var(--panel);border:1px solid var(--line);border-radius:14px;
  padding:18px 20px 14px;box-shadow:var(--shadow);
  transition:transform .2s var(--ease),box-shadow .2s var(--ease),border-color .2s var(--ease);
}
.dash-card:hover{transform:translateY(-2px);border-color:var(--acc-bd)}
.dash-card.wide{grid-column:1/-1}
.dash-card h3{margin:0 0 4px;font-size:14.5px;display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.dash-card h3 span{font-size:11.5px;color:var(--ink-3);font-weight:400;white-space:nowrap}
.dash-card .dsub{font-size:11.5px;color:var(--ink-3);margin:0 0 12px;line-height:1.6}
.dlegend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px}
.dlegend span{font-size:11.5px;color:var(--ink-2);display:inline-flex;align-items:center}
.dlegend i{display:inline-block;width:9px;height:9px;border-radius:2.5px;margin-right:5px}
.dash-card svg text{font-family:inherit}
@media(max-width:820px){
  .dash{grid-template-columns:1fr}
  .dash-card{padding:15px 15px 12px}
}

/* ================= 轻提示（toast） ================= */
.gk-toast{
  position:fixed;left:50%;bottom:30px;transform:translateX(-50%);
  z-index:9999;max-width:86vw;padding:10px 18px;
  background:rgba(17,24,39,.93);color:#fff;
  font-size:13px;line-height:1.6;text-align:center;
  border-radius:999px;box-shadow:0 10px 26px rgba(0,0,0,.24);
  opacity:1;transition:opacity .55s ease,transform .55s ease;
  pointer-events:none;
}
.gk-toast.out{opacity:0;transform:translateX(-50%) translateY(8px)}
@media(max-width:600px){ .gk-toast{bottom:20px;font-size:12.5px;padding:9px 15px} }


/* ================= 导出 PDF 水印 =================
 * 仅打印/导出 PDF 时出现，屏幕浏览不受影响。
 * 以平铺的浅色「菁英生涯」字样覆盖整页，固定定位在打印时会逐页重复，
 * 因此导出的 PDF 每页都带水印。目前只加在考点总表页；若其他页面也要，
 * 把选择器 [data-page="analysis"] 扩成
 * [data-page="analysis"],[data-page="policy"],[data-page="subject"],[data-page="mock"] 即可。
 */
@media print{
  body[data-page="analysis"]::before{
    content:"";
    position:fixed; left:0; top:0; width:100%; height:100%;
    z-index:2147483000; pointer-events:none;
    background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27280%27%20height%3D%27190%27%3E%3Ctext%20x%3D%27140%27%20y%3D%2795%27%20font-family%3D%27Microsoft%20YaHei%2CPingFang%20SC%2CHiragino%20Sans%20GB%2Csans-serif%27%20font-size%3D%2724%27%20fill%3D%27%230f172a%27%20fill-opacity%3D%270.09%27%20text-anchor%3D%27middle%27%20transform%3D%27rotate%28-30%20140%2095%29%27%3E%E8%8F%81%E8%8B%B1%E7%94%9F%E6%B6%AF%3C%2Ftext%3E%3C%2Fsvg%3E");
    background-repeat:repeat; background-position:0 0;
    -webkit-print-color-adjust:exact; print-color-adjust:exact;
  }
}


/* ================= 模拟卷打印：隐藏答案与解析 =================
 * 打印 / 导出 PDF 时，题目只保留题干与选项，「答案与解析」整体不输出，
 * 学生拿到的是干净卷面（网页上仍可正常展开对照）。
 * .print-note 只在打印版出现，说明本版不含答案、去哪找对照。
 */
.print-note{display:none}
@media print{
  .solbox{display:none !important}
  .print-hide{display:none !important}   /* 打印版不适用的说明性文字 */
  .print-note{
    display:block;margin:0 0 14px;padding:9px 12px;
    border:1px dashed #c3c8d0;border-radius:6px;
    font-size:11px;line-height:1.7;color:#3b4252;
  }
}
