/* ===== 京·地理 27届等级考复习站 ===== */
:root{
  --navy:#16324f;
  --navy-2:#1f4368;
  --teal:#0d8a72;
  --teal-light:#e3f4f0;
  --amber:#b45309;
  --amber-light:#fdf3e3;
  --red:#b3403a;
  --red-light:#fbeeed;
  --blue-light:#e8f0f9;
  --ink:#28323c;
  --muted:#67737e;
  --paper:#f7f6f2;
  --card:#ffffff;
  --line:#e4e2da;
  --radius:12px;
  --shadow:0 1px 3px rgba(22,50,79,.08),0 4px 14px rgba(22,50,79,.06);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:76px}
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Segoe UI",sans-serif;
  background:var(--paper);color:var(--ink);line-height:1.75;font-size:16px;
}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}

/* ---- 顶部导航 ---- */
.site-header{position:sticky;top:0;z-index:50;background:var(--navy);box-shadow:0 2px 8px rgba(0,0,0,.18)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px;padding-top:10px;padding-bottom:10px}
.logo{color:#fff;text-decoration:none;font-weight:700;font-size:1.15rem;letter-spacing:.5px}
.logo span{display:block;font-size:.68rem;font-weight:400;color:#9fb8cf;letter-spacing:1px}
.site-header nav{display:flex;flex-wrap:wrap;gap:2px}
.site-header nav a{
  color:#cfdce8;text-decoration:none;font-size:.92rem;padding:6px 11px;border-radius:7px;transition:.15s;
}
.site-header nav a:hover{background:rgba(255,255,255,.12);color:#fff}
.site-header nav a.active{background:var(--teal);color:#fff;font-weight:600}

/* ---- 页头横幅 ---- */
.hero{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-2) 55%,#27566f 100%);color:#fff;padding:52px 0 44px;text-align:left}
.hero h1{font-size:1.9rem;line-height:1.35;margin-bottom:10px}
.hero p.sub{color:#b9cbdc;max-width:760px;font-size:1.02rem}
.hero .hero-tags{margin-top:18px;display:flex;flex-wrap:wrap;gap:8px}
.hero .hero-tags span{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.22);padding:4px 12px;border-radius:99px;font-size:.85rem}

.page-head{background:linear-gradient(135deg,var(--navy),var(--navy-2));color:#fff;padding:34px 0 28px}
.page-head h1{font-size:1.6rem;margin-bottom:6px}
.page-head p{color:#b9cbdc;font-size:.97rem;max-width:820px}
.page-head .crumb{font-size:.8rem;color:#8fa9c0;margin-bottom:8px}

main{padding:34px 0 56px}
section{margin-bottom:42px}
h2.sec{
  font-size:1.35rem;color:var(--navy);margin-bottom:18px;padding-left:13px;
  border-left:5px solid var(--teal);line-height:1.4;
}
h2.sec small{display:block;font-size:.82rem;color:var(--muted);font-weight:400;border:none;padding:0}
h3{color:var(--navy);font-size:1.08rem;margin:20px 0 10px}
p{margin-bottom:10px}
ul,ol{padding-left:1.4em;margin-bottom:10px}
li{margin-bottom:5px}
a{color:var(--teal)}
strong{color:var(--navy)}

/* ---- 卡片 ---- */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:20px 20px 16px;box-shadow:var(--shadow);text-decoration:none;color:var(--ink);
  display:flex;flex-direction:column;transition:.18s;
}
a.card:hover{transform:translateY(-3px);box-shadow:0 6px 20px rgba(22,50,79,.14);border-color:var(--teal)}
.card .icon{font-size:1.6rem;margin-bottom:8px}
.card h3{margin:0 0 6px;font-size:1.05rem}
.card p{font-size:.88rem;color:var(--muted);margin:0;flex:1}
.card .go{margin-top:12px;font-size:.85rem;color:var(--teal);font-weight:600}

/* ---- 信息框 ---- */
.box{border-radius:var(--radius);padding:16px 18px;margin:14px 0;border:1px solid;font-size:.95rem}
.box .box-title{font-weight:700;margin-bottom:6px;display:flex;align-items:center;gap:6px}
.box-bjk{background:var(--blue-light);border-color:#c3d6ec}
.box-bjk .box-title{color:var(--navy)}
.box-tip{background:var(--teal-light);border-color:#bfe3da}
.box-tip .box-title{color:var(--teal)}
.box-warn{background:var(--amber-light);border-color:#f0dcb8}
.box-warn .box-title{color:var(--amber)}
.box-mist{background:var(--red-light);border-color:#eccfcd}
.box-mist .box-title{color:var(--red)}
.box p:last-child,.box ul:last-child,.box ol:last-child{margin-bottom:0}

/* ---- 折叠块 ---- */
details.fold{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  margin-bottom:12px;box-shadow:var(--shadow);overflow:hidden;
}
details.fold>summary{
  cursor:pointer;padding:14px 18px;font-weight:600;color:var(--navy);list-style:none;
  display:flex;align-items:center;gap:10px;user-select:none;font-size:1rem;
}
details.fold>summary::-webkit-details-marker{display:none}
details.fold>summary::before{
  content:"+";display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:6px;background:var(--teal-light);color:var(--teal);
  font-weight:700;flex-shrink:0;font-size:1rem;
}
details.fold[open]>summary::before{content:"−"}
details.fold[open]>summary{border-bottom:1px dashed var(--line)}
details.fold .fold-body{padding:14px 20px 18px}
summary .sum-note{font-weight:400;font-size:.82rem;color:var(--muted);margin-left:auto}

/* ---- 徽章 ---- */
.badge{display:inline-block;padding:1px 9px;border-radius:99px;font-size:.76rem;font-weight:600;vertical-align:2px;margin-left:6px;white-space:nowrap}
.b-hot{background:#fdebe9;color:var(--red)}
.b-mid{background:var(--amber-light);color:var(--amber)}
.b-year{background:var(--blue-light);color:var(--navy);font-weight:500}
.star{color:#d9822b;letter-spacing:1px;font-size:.85rem}

/* ---- 表格 ---- */
.tbl-wrap{overflow-x:auto;margin:14px 0;border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow)}
table{width:100%;border-collapse:collapse;background:#fff;font-size:.92rem}
th{background:var(--navy);color:#fff;font-weight:600;text-align:left;padding:10px 14px;white-space:nowrap}
td{padding:9px 14px;border-top:1px solid var(--line);vertical-align:top}
tbody tr:nth-child(even){background:#fafaf7}
td:first-child{font-weight:600;color:var(--navy);white-space:nowrap}

/* ---- 知识点深挖块 ---- */
.kp{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px 24px;margin-bottom:22px}
.kp>h3{margin-top:0;padding-bottom:10px;border-bottom:2px solid var(--teal-light);font-size:1.12rem}
.kp h4{color:var(--teal);font-size:.97rem;margin:16px 0 8px}

/* ---- 练习题 ---- */
.q{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 22px;margin-bottom:18px}
.q .q-meta{font-size:.8rem;color:var(--muted);margin-bottom:8px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.q .q-stem{margin-bottom:10px}
.q .q-stem .material{background:#fafaf7;border-left:3px solid var(--navy-2);padding:10px 14px;border-radius:0 8px 8px 0;font-size:.94rem;margin-bottom:10px}
.q ol.opts{list-style:none;padding-left:0}
.q ol.opts li{padding:6px 12px;border:1px solid var(--line);border-radius:8px;margin-bottom:6px;font-size:.95rem;background:#fcfcfa}
details.ans{margin-top:10px}
details.ans>summary{
  cursor:pointer;display:inline-block;background:var(--teal);color:#fff;border-radius:8px;
  padding:7px 18px;font-size:.9rem;font-weight:600;list-style:none;user-select:none;
}
details.ans>summary::-webkit-details-marker{display:none}
details.ans[open]>summary{background:var(--navy)}
details.ans .ans-body{margin-top:12px;background:var(--teal-light);border:1px solid #bfe3da;border-radius:10px;padding:14px 16px;font-size:.94rem}
.ans-body .ans-key{font-weight:700;color:var(--teal);margin-bottom:6px}
.ans-body p:last-child{margin-bottom:0}

/* ---- 流程/链条 ---- */
.chain{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:10px 0;font-size:.9rem}
.chain span{background:var(--blue-light);border:1px solid #c3d6ec;color:var(--navy);padding:4px 12px;border-radius:8px}
.chain em{font-style:normal;color:var(--muted);font-weight:700}

/* ---- 翻页 ---- */
.pager{display:flex;justify-content:space-between;gap:14px;margin-top:44px}
.pager a{
  flex:1;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:14px 18px;text-decoration:none;color:var(--navy);box-shadow:var(--shadow);transition:.15s;
}
.pager a:hover{border-color:var(--teal)}
.pager a small{display:block;color:var(--muted);font-size:.78rem}
.pager a.next{text-align:right}

/* ---- 页脚 ---- */
.site-footer{background:var(--navy);color:#9fb8cf;padding:26px 0 30px;font-size:.83rem;line-height:1.9}
.site-footer a{color:#cfe3da}
.site-footer .wrap{max-width:1080px}

/* ---- 时间线 ---- */
.timeline{list-style:none;padding-left:0;position:relative;margin:16px 0 0 6px}
.timeline::before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:#c3d6ec}
.timeline li{position:relative;padding-left:30px;margin-bottom:14px}
.timeline li::before{content:"";position:absolute;left:0;top:7px;width:14px;height:14px;border-radius:50%;background:var(--teal);border:3px solid #fff;box-shadow:0 0 0 2px var(--teal)}
.timeline li b{color:var(--navy)}

/* ---- 两栏 ---- */
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:760px){
  .cols2{grid-template-columns:1fr}
  .hero h1{font-size:1.5rem}
  .site-header nav a{padding:5px 8px;font-size:.85rem}
}
@media print{
  .site-header,.pager,.site-footer{display:none}
  body{background:#fff}
}

/* ===== v2 训练系统新增样式 ===== */

/* ---- 可信度标签 CredibilityBadge ---- */
.cred{display:inline-block;padding:0 8px;border-radius:99px;font-size:.72rem;font-weight:500;vertical-align:2px;margin-left:6px;white-space:nowrap;border:1px solid;line-height:1.6}
.cred-official{background:#e6f6ed;border-color:#b9e2c8;color:#1c7a43}
.cred-review{background:var(--blue-light);border-color:#c3d6ec;color:var(--navy)}
.cred-internal{background:#eef0f3;border-color:#d6dade;color:#5a6672}
.cred-original{background:var(--amber-light);border-color:#f0dcb8;color:var(--amber)}
.cred-pending{background:var(--red-light);border-color:#eccfcd;color:var(--red)}
.site-disclaimer{background:#efeee9;border-top:1px solid var(--line);color:#6b7680;font-size:.8rem;padding:10px 0;text-align:center}

/* ---- 筛选器 ---- */
.filterbar{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px;margin-bottom:18px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.filterbar label{font-size:.85rem;color:var(--muted);display:flex;align-items:center;gap:5px}
.filterbar select,.filterbar input[type=search],.filterbar input[type=text]{
  font:inherit;font-size:.88rem;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);max-width:170px}
.filterbar .fb-count{margin-left:auto;font-size:.82rem;color:var(--muted)}
.chipset{display:flex;flex-wrap:wrap;gap:6px}
.chip{cursor:pointer;user-select:none;font-size:.8rem;padding:3px 11px;border-radius:99px;border:1px solid var(--line);background:#fff;color:var(--muted);transition:.12s}
.chip.on{background:var(--teal);border-color:var(--teal);color:#fff}
.chip:hover{border-color:var(--teal)}

/* ---- 训练模式切换 ---- */
.mode-tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}
.mode-tabs button{font:inherit;cursor:pointer;padding:9px 18px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--navy);font-weight:600;font-size:.93rem}
.mode-tabs button.on{background:var(--navy);border-color:var(--navy);color:#fff}

/* ---- 练习交互 ---- */
.q ol.opts li{cursor:pointer;transition:.12s}
.q ol.opts li:hover{border-color:var(--teal)}
.q ol.opts li.sel-right{background:var(--teal-light);border-color:var(--teal);font-weight:600}
.q ol.opts li.sel-wrong{background:var(--red-light);border-color:var(--red)}
.q ol.opts li.is-key{border-color:var(--teal);box-shadow:0 0 0 1px var(--teal) inset}
.q ol.opts li.locked{cursor:default}
.verdict{font-weight:700;margin:8px 0 4px}
.verdict.ok{color:var(--teal)}
.verdict.no{color:var(--red)}
.err-chips{margin-top:8px;font-size:.82rem;color:var(--muted)}
.timerbox{position:sticky;top:64px;z-index:10;background:var(--navy);color:#fff;border-radius:10px;padding:10px 16px;display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;font-size:.95rem}
.timerbox b{font-size:1.2rem;letter-spacing:1px}
.btn{font:inherit;cursor:pointer;display:inline-block;background:var(--teal);color:#fff;border:none;border-radius:8px;padding:8px 20px;font-size:.92rem;font-weight:600}
.btn:hover{background:#0b7460}
.btn.ghost{background:#fff;color:var(--navy);border:1px solid var(--line)}
.btn.navy{background:var(--navy)}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* ---- 小结/诊断 ---- */
.sumgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:14px 0}
.sumcell{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px;text-align:center}
.sumcell b{display:block;font-size:1.5rem;color:var(--navy)}
.sumcell span{font-size:.8rem;color:var(--muted)}
.bar-row{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-size:.88rem}
.bar-row .bar-label{width:11em;flex-shrink:0;text-align:right;color:var(--muted)}
.bar-row .bar-track{flex:1;background:#eef0f3;border-radius:6px;height:18px;overflow:hidden}
.bar-row .bar-fill{height:100%;background:var(--teal);border-radius:6px;min-width:2px}
.bar-row .bar-num{width:3em;font-size:.8rem;color:var(--muted)}

/* ---- 自评器 ---- */
.evalbox textarea{width:100%;min-height:120px;font:inherit;font-size:.93rem;padding:12px;border:1px solid var(--line);border-radius:10px;resize:vertical;background:#fff}
.eval-result{margin-top:12px}
.rubric-table td:first-child{white-space:normal}
.hit{color:var(--teal);font-weight:600}
.miss{color:var(--red);font-weight:600}

/* ---- 素材卡 ---- */
.mat-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px;margin-bottom:16px}
.mat-card h3{margin-top:0;display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.mat-card .mat-cat{font-size:.76rem;background:var(--blue-light);color:var(--navy);border-radius:99px;padding:1px 10px}
.mat-card .kw{font-size:.8rem;color:var(--muted);margin-bottom:8px}
.mat-card h5{color:var(--teal);font-size:.88rem;margin:10px 0 4px}
.mat-card ul{margin-bottom:4px}
.mat-card li{font-size:.9rem}

/* ---- 考点卡片 TopicCard ---- */
.topic-card{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--teal);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 20px;margin-bottom:14px}
.topic-card .tc-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.topic-card .tc-head h3{margin:0;font-size:1.05rem}
.topic-card .tc-body h5{color:var(--teal);font-size:.88rem;margin:10px 0 4px}
.topic-card details{margin-top:8px}
.topic-card details>summary{cursor:pointer;font-size:.88rem;color:var(--navy);font-weight:600;user-select:none}
.topic-card .tc-foot{margin-top:12px;display:flex;justify-content:flex-end}
.tbl-wrap table{min-width:680px}
@media(max-width:760px){
  .filterbar select{max-width:130px}
  .bar-row .bar-label{width:8.5em;font-size:.8rem}
  .timerbox{top:58px}
}
