:root{
  --bg:#f6f7f9;
  --card:#ffffff;
  --ink:#1c2024;
  --ink-2:#555e6b;
  --ink-3:#8b95a3;
  --line:#e5e8ec;
  --brand:#1a6fd4;
  --brand-soft:#eaf2fd;
  --ok:#0f8a5f;
  --warn:#b26a00;
  --radius:12px;
  --shadow:0 1px 2px rgba(16,24,40,.04),0 6px 20px rgba(16,24,40,.05);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font:16px/1.75 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:920px;margin:0 auto;padding:0 20px}

/* header */
.site-head{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.86);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--line)}
.head-inner{display:flex;align-items:center;justify-content:space-between;height:58px}
.brand{font-size:17px;font-weight:700;color:var(--ink);letter-spacing:.5px}
.brand:hover{text-decoration:none;color:var(--brand)}
.nav a{margin-left:20px;font-size:14.5px;color:var(--ink-2)}
.nav a:hover{color:var(--brand);text-decoration:none}

main.wrap{padding-top:28px;padding-bottom:56px}

/* hero */
.hero{padding:12px 0 26px}
.hero h1{margin:0 0 10px;font-size:30px;letter-spacing:.5px}
.hero .lead{margin:0;color:var(--ink-2);font-size:15.5px}

/* category block */
.cat-block{margin-bottom:34px}
.cat-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px;margin-bottom:12px}
.cat-head h2{margin:0;font-size:20px}
.cat-head .count,.catpage .count{display:inline-block;margin-left:8px;padding:1px 9px;border-radius:20px;background:var(--brand-soft);color:var(--brand);font-size:12.5px;font-weight:600;vertical-align:2px}
.cat-head p{margin:0;color:var(--ink-3);font-size:13.5px;flex:1 1 100%}
.cat-head .more{font-size:13.5px}

/* doc list */
.doc-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.doc-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 16px;background:var(--card);border:1px solid var(--line);border-radius:10px;color:var(--ink);transition:.15s}
.doc-item:hover{border-color:#c9d8ee;box-shadow:var(--shadow);text-decoration:none;transform:translateY(-1px)}
.d-title{font-size:15.5px;line-height:1.5}
.d-meta{flex:none;color:var(--ink-3);font-size:12.5px;white-space:nowrap}

/* doc page */
.crumb{font-size:12.5px;color:var(--ink-3);margin-bottom:14px}
.crumb a{color:var(--ink-2)}
.doc h1{margin:0 0 12px;font-size:26px;line-height:1.4;letter-spacing:.3px}
.meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:16px;color:var(--ink-3);font-size:13px}
.meta .tag{background:var(--brand-soft);color:var(--brand);padding:1px 9px;border-radius:20px;font-weight:600}
.meta .ok{color:var(--ok)}
.meta .warn{color:var(--warn)}

.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}
.btn{display:inline-block;padding:9px 18px;border-radius:9px;background:var(--brand);color:#fff;font-size:14px;border:1px solid var(--brand);cursor:pointer;font-family:inherit;transition:.15s}
.btn:hover{background:#1560bd;text-decoration:none;color:#fff}
.btn.ghost{background:#fff;color:var(--ink-2);border-color:var(--line)}
.btn.ghost:hover{background:#f2f4f7;color:var(--ink);border-color:#d6dbe2}

/* 试卷正文 */
.paper{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:30px 34px;box-shadow:var(--shadow);font-size:15.5px;line-height:1.95}
.paper p{margin:9px 0;text-indent:0}
.blank{white-space:nowrap}
.paper p.center{text-align:center}
.paper p.sec{font-weight:700;font-size:16.5px;margin-top:22px}
.paper strong{font-weight:700}
.paper h2,.paper h3{margin:20px 0 8px}
.opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 22px;margin:2px 0 10px;padding-left:14px;color:#2a3038}
.opts span{font-size:15px}
table.tbl{width:100%;border-collapse:collapse;margin:12px 0;font-size:14.5px}
table.tbl td{border:1px solid var(--line);padding:7px 10px;text-align:center;line-height:1.6}

/* 答案解析折叠 */
details.answer{margin-top:26px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
details.answer summary{list-style:none;cursor:pointer;padding:18px 24px;font-weight:700;font-size:16px;color:var(--brand);background:linear-gradient(180deg,#eaf3ff,#e0edff);border-left:4px solid var(--brand);display:flex;align-items:center;gap:10px;user-select:none;transition:.15s}
details.answer summary:hover{background:linear-gradient(180deg,#e2eeff,#d3e4ff)}
details.answer .hint{margin-left:auto;font-weight:400;font-size:12.5px;color:#6f93c8;border:1px dashed #b7cdec;border-radius:20px;padding:1px 10px}
details.answer[open] .hint{display:none}
details.answer summary::-webkit-details-marker{display:none}
details.answer summary .expand{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;letter-spacing:1px;padding:1px 8px;border-radius:6px;background:#fff;border:1px solid #cfe0f8}
details.answer summary::after{content:"▾";transition:transform .2s;color:#5f8ecd;font-size:13px}
details.answer[open] summary::after{transform:rotate(180deg)}
details.answer summary::after{margin-left:14px}
details.answer[open] summary{border-bottom:1px solid #dbe7f8}
.answer-body{padding:24px 34px;font-size:15px;line-height:1.95}
.answer-body p{margin:8px 0}
.keybox{background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:14px 18px 16px;margin:0 0 20px}
.keybox h3{margin:0 0 10px;font-size:13px;color:var(--ink-3);font-weight:600;letter-spacing:2px}
.keygrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:7px 10px}
.keygrid div{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:7px;padding:4px 9px}
.keygrid b{color:var(--ink-3);font-weight:600;font-size:12.5px;min-width:42px}
.keygrid span{font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:.5px;white-space:nowrap;color:#12335c;font-weight:700;font-size:13.5px}
.answer-body strong{color:#12335c}
.dl-row{padding:0 34px 26px;margin:0}
.back{margin-top:30px;font-size:14px}

/* page */
.page .paper{font-size:15.5px}

/* footer */
.site-foot{border-top:1px solid var(--line);padding:22px 0;color:var(--ink-3);font-size:13px;text-align:center}
.site-foot .dot{margin:0 8px;color:#cfd6df}

.empty{color:var(--ink-3);font-size:14px}

/* 移动端 */
@media (max-width:640px){
  .hero h1{font-size:24px}
  .doc h1{font-size:21px}
  .paper{padding:20px 18px;font-size:15px}
  .answer-body{padding:18px 18px}
  .dl-row{padding:0 18px 22px}
  .doc-item{flex-direction:column;align-items:flex-start;gap:4px}
  .opts{grid-template-columns:1fr}
}

/* 打印 */
@media print{
  body{background:#fff}
  .site-head,.site-foot,.toolbar,.back,.crumb,.dl-row,details.answer summary::after{display:none!important}
  .paper,details.answer{box-shadow:none;border:none;padding:0;margin:0}
  details.answer summary{background:none;padding:14px 0 6px;border:none;color:#000}
  .answer-body{padding:0}
  .doc h1{font-size:18pt}
  .paper{font-size:11pt}
  a{color:#000;text-decoration:none}
}

/* ============ 列表视图（首页 / 分类页） ============ */
.chips{margin-top:14px;display:flex;gap:10px;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;gap:7px;padding:5px 14px;border-radius:20px;background:var(--card);border:1px solid var(--line);color:var(--ink-2);font-size:14px;transition:.15s}
.chip:hover{border-color:#c9d8ee;color:var(--brand);text-decoration:none;box-shadow:var(--shadow)}
.chip b{display:inline-block;min-width:20px;text-align:center;padding:0 6px;border-radius:10px;background:var(--brand-soft);color:var(--brand);font-size:12px;font-weight:700}

.list-block{margin:8px 0 40px}
.list-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 4px 10px;border-bottom:2px solid var(--line);margin-bottom:2px}
.lh-t{font-size:16px;font-weight:700;color:var(--ink)}
.lh-s{font-size:13px;color:var(--ink-3)}
.lh-s b{color:var(--brand)}

.rows{list-style:none;margin:0;padding:0}
.row{display:grid;grid-template-columns:42px 1fr 74px 62px 68px 84px;align-items:center;gap:10px;padding:11px 10px;border-bottom:1px solid var(--line);font-size:14.5px;transition:background .12s}
.rows li.row:nth-child(even){background:rgba(255,255,255,.62)}
.row:hover{background:var(--brand-soft)}
.row-hd{font-size:12.5px;color:var(--ink-3);font-weight:600;letter-spacing:.5px;background:none!important;padding:8px 10px;border-bottom:1px solid var(--line)}
.row-hd:hover{background:none}
.row .idx{color:var(--ink-3);font-size:13px;text-align:right;font-variant-numeric:tabular-nums}
.row .ttl{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row .ttl:hover{color:var(--brand);text-decoration:underline}
.row .cat{display:flex;align-items:center;gap:5px;font-size:13px;color:var(--ink-2)}
.row .dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:var(--ink-3)}
.row .dot.c-astronomy{background:#3776c4}
.row .dot.c-math{background:#0f8a5f}
.row .yr,.row .qn{font-size:13px;color:var(--ink-2);font-variant-numeric:tabular-nums}
.row .st{font-size:12.5px;color:var(--ink-3);text-align:right}

/* ============ 分页条 ============ */
.pager{display:flex;align-items:center;flex-wrap:wrap;gap:6px;justify-content:center;margin:26px 0 8px;font-size:14px}
.pager .pg{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:34px;padding:0 11px;border-radius:8px;background:var(--card);border:1px solid var(--line);color:var(--ink-2)}
.pager a.pg:hover{border-color:var(--brand);color:var(--brand);text-decoration:none;background:var(--brand-soft)}
.pager .pg.cur{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:700}
.pager .pg.dis{color:#c3cbd6;background:#fafbfc;cursor:not-allowed}
.pager .jump{margin-left:10px;color:var(--ink-3);font-size:13px;display:inline-flex;align-items:center;gap:5px}
.pager .jump b{color:var(--ink-2)}
.pager .jump-input{width:52px;height:32px;padding:0 6px;text-align:center;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);font-size:13px;outline:none}
.pager .jump-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.pager .jump-btn{height:32px;padding:0 12px;border-radius:7px;border:1px solid var(--line);background:#fff;color:var(--ink-2);font-size:13px;cursor:pointer;transition:.15s}
.pager .jump-btn:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}

@media (max-width:720px){
  .row{grid-template-columns:34px 1fr 62px;gap:8px}
  .row .cat,.row .qn{display:none}
  .row-hd .cat,.row-hd .qn{display:none}
  .lh-s{display:none}
  .pager .jump{margin-left:0;width:100%;justify-content:center;margin-top:6px}
}

/* ============ 首页分类入口 ============ */
.hero .lead b{color:var(--ink);font-weight:700}

.cat-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:8px 0 46px}
.cat-card{position:relative;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;color:var(--ink);box-shadow:var(--shadow);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.cat-card::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--accent,#1a6fd4);z-index:2}
.cat-card:hover{text-decoration:none;transform:translateY(-4px);border-color:#cbd9e8;box-shadow:0 12px 34px rgba(16,24,40,.12)}
.cat-thumb{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:#eef2f7}
.cat-thumb img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.cat-card:hover .cat-thumb img{transform:scale(1.035)}
.cat-tag{position:absolute;left:14px;top:14px;padding:3px 12px;border-radius:20px;background:rgba(255,255,255,.9);backdrop-filter:blur(6px);color:#12335c;font-size:12.5px;font-weight:700;letter-spacing:1px;box-shadow:0 1px 4px rgba(16,24,40,.12)}
.cat-body{display:flex;flex-direction:column;gap:7px;padding:17px 22px 20px}
.cat-title{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px}
.cat-name{font-size:22px;font-weight:700;letter-spacing:1px}
.cat-stat{padding:1px 10px;border-radius:20px;background:var(--brand-soft);color:var(--brand);font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums}
.cat-stat.soon{background:#f2f4f7;color:var(--ink-3)}
.cat-desc{flex:1 1 auto;font-size:13.5px;line-height:1.7;color:var(--ink-2)}
.cat-go{margin-top:4px;font-size:14px;font-weight:600;color:var(--accent,#1a6fd4);display:inline-flex;align-items:center;gap:6px}
.cat-go i{font-style:normal;font-size:17px;line-height:1;transition:transform .18s}
.cat-card:hover .cat-go i{transform:translateX(4px)}
.cat-card.is-empty .cat-thumb img{filter:grayscale(.5);opacity:.72}
.cat-card.is-empty .cat-go{color:var(--ink-3)}

/* 首页说明区块 */
.home-block{margin:0 0 30px;padding:22px 26px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
.hb-title{display:flex;align-items:center;gap:9px;margin:0 0 12px;font-size:16.5px;letter-spacing:.5px}
.hb-title::before{content:"";width:4px;height:16px;border-radius:2px;background:var(--brand)}
.hb-list{margin:0;padding-left:20px;color:var(--ink-2);font-size:14.5px;line-height:1.95}
.hb-list li{margin:2px 0}
.hb-list b{color:var(--ink);font-weight:700}
.hb-text{margin:0 0 8px;color:var(--ink-2);font-size:14px;line-height:1.9}
.hb-text.dim{color:var(--ink-3);font-size:13.5px;margin-bottom:0}

/* 列表页标题 */
.listpage h1{margin:0 0 10px;font-size:26px}
.listpage .count{margin-left:8px;padding:1px 9px;border-radius:20px;background:var(--brand-soft);color:var(--brand);font-size:12.5px;font-weight:600;vertical-align:3px}
.listpage .lead{margin:0 0 22px;color:var(--ink-2);font-size:14.5px}
.listpage .lead b{color:var(--brand)}

/* footer */
.foot-line{line-height:1.8}
.foot-note{margin:6px 0 0;font-size:12px;color:#a3acb9;line-height:1.7}

@media (max-width:720px){
  .cat-cards{grid-template-columns:1fr;gap:16px;margin-bottom:34px}
  .cat-name{font-size:20px}
  .home-block{padding:18px 18px}
  .listpage h1{font-size:22px}
}

/* 空分类 / 短页贴底 */
body{display:flex;flex-direction:column;min-height:100vh}
main.wrap{flex:1 0 auto;width:100%}
.site-foot{flex:none}
.catpage .count.soon{background:#f2f4f7;color:var(--ink-3)}

.empty-box{margin:6px 0 10px;padding:0 0 26px;text-align:center}
.empty-art{max-width:420px;margin:0 auto 18px;border-radius:16px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow)}
.empty-art img{display:block;width:100%;height:auto;filter:grayscale(.35);opacity:.85}
.empty-box h3{margin:0 0 8px;font-size:18px;letter-spacing:.5px}
.empty-box p{margin:0 auto;max-width:480px;color:var(--ink-2);font-size:14px;line-height:1.85}
.empty-acts{display:flex;gap:10px;justify-content:center;margin-top:18px;flex-wrap:wrap}

/* 空分类 / 短页贴底 */
body{display:flex;flex-direction:column;min-height:100vh}
main.wrap{flex:1 0 auto;width:100%}
.site-foot{flex:none}
.catpage .count.soon{background:#f2f4f7;color:var(--ink-3)}

.empty-box{margin:6px 0 10px;padding:0 0 26px;text-align:center}
.empty-art{max-width:420px;margin:0 auto 18px;border-radius:16px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow)}
.empty-art img{display:block;width:100%;height:auto;filter:grayscale(.35);opacity:.85}
.empty-box h3{margin:0 0 8px;font-size:18px;letter-spacing:.5px}
.empty-box p{margin:0 auto;max-width:480px;color:var(--ink-2);font-size:14px;line-height:1.85}
.empty-acts{display:flex;gap:10px;justify-content:center;margin-top:18px;flex-wrap:wrap}

/* 小屏头部：导航换行，避免撑宽页面 */
@media (max-width:720px){
  .head-inner{flex-direction:column;align-items:flex-start;justify-content:center;height:auto;gap:2px;padding:10px 20px}
  .brand{font-size:16px;line-height:1.4}
  .nav{display:flex;flex-wrap:wrap;margin-left:-9px;line-height:1.5}
  .nav a{margin:0 9px;font-size:13.5px}
  main.wrap{padding-top:20px}
  .hero{padding:6px 0 20px}
}
