/* ============ 组件库 ============ */
.card{
  background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);
  padding:22px;border:1px solid rgba(230,234,240,.6);
}
.card+.card{margin-top:16px}
.section-title{
  font-size:1.02rem;font-weight:700;display:flex;align-items:center;gap:8px;margin-bottom:14px;
}
.section-title::before{
  content:"";width:4px;height:16px;border-radius:2px;
  background:linear-gradient(180deg,var(--gold),#E0BC6C);
}
.section-more{margin-left:auto;font-size:.8rem;color:var(--text-3);font-weight:400}
.section-more:hover{color:var(--ink)}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:10px 22px;border-radius:12px;font-size:.9rem;font-weight:600;
  transition:all .22s var(--ease);user-select:none;
}
.btn:active{transform:scale(.96)}
.btn-primary{background:var(--ink);color:#fff;box-shadow:0 4px 14px rgba(15,37,64,.25)}
.btn-primary:hover{background:var(--ink-2)}
.btn-gold{background:linear-gradient(135deg,var(--gold),#DDB964);color:#3A2E10;box-shadow:0 4px 14px rgba(201,162,75,.35)}
.btn-ghost{background:var(--card);border:1px solid var(--line);color:var(--text-2)}
.btn-ghost:hover{border-color:var(--ink-3);color:var(--ink)}
.btn-block{width:100%}
.btn-sm{padding:7px 14px;font-size:.8rem;border-radius:10px}

/* ---------- 首页 hero ---------- */
.hero{
  background:linear-gradient(120deg,var(--ink) 0%,var(--ink-3) 78%,#3A6491 100%);
  border-radius:20px;color:#fff;padding:26px 28px;position:relative;overflow:hidden;
  box-shadow:0 10px 32px rgba(15,37,64,.22);
}
.hero::after{
  content:"註";position:absolute;right:18px;bottom:-30px;font-size:9rem;
  font-family:Georgia,"STSong",serif;color:rgba(255,255,255,.05);pointer-events:none;
}
.hero h2{font-size:1.35rem;font-weight:700;margin-bottom:6px}
.hero p{font-size:.86rem;color:rgba(255,255,255,.72);margin-bottom:18px}
.hero .hero-stats{display:flex;gap:28px;flex-wrap:wrap}
.hero .hs b{font-size:1.5rem;font-weight:800;color:#F0DCAE;font-variant-numeric:tabular-nums}
.hero .hs span{display:block;font-size:.72rem;color:rgba(255,255,255,.6);margin-top:2px}

/* ---------- 科目网格 ---------- */
.subject-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.subject-card{
  background:var(--card);border-radius:var(--radius);padding:18px;cursor:pointer;
  border:1px solid rgba(230,234,240,.7);box-shadow:var(--shadow);
  transition:all .28s var(--ease);position:relative;overflow:hidden;text-align:left;
}
.subject-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.subject-card:active{transform:scale(.98)}
.subject-ico{
  width:44px;height:44px;border-radius:12px;font-size:1.25rem;
  display:flex;align-items:center;justify-content:center;margin-bottom:12px;
}
.subject-name{font-weight:700;font-size:.98rem}
.subject-meta{font-size:.74rem;color:var(--text-3);margin:4px 0 10px}
.subject-bar{height:5px;background:var(--bg);border-radius:3px;overflow:hidden}
.subject-bar i{display:block;height:100%;border-radius:3px;transition:width .8s var(--ease)}
.subject-acc{position:absolute;top:16px;right:16px;font-size:.72rem;font-weight:700;padding:3px 9px;border-radius:10px}

/* ---------- 模式入口 ---------- */
.mode-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.mode-card{
  background:var(--card);border-radius:var(--radius);padding:16px 14px;text-align:center;
  border:1px solid rgba(230,234,240,.7);box-shadow:var(--shadow);cursor:pointer;
  transition:all .25s var(--ease);
}
.mode-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.mode-ico{
  width:46px;height:46px;border-radius:14px;margin:0 auto 10px;font-size:1.3rem;
  display:flex;align-items:center;justify-content:center;
}
.mode-name{font-weight:600;font-size:.86rem}
.mode-desc{font-size:.7rem;color:var(--text-3);margin-top:2px}

/* ---------- 智能推荐条 ---------- */
.ai-tip{
  display:flex;gap:12px;align-items:flex-start;
  background:linear-gradient(100deg,#FBF6EA,#F6EFDD);
  border:1px solid #EADFC2;border-radius:var(--radius);padding:16px 18px;
}
.ai-tip-ico{
  width:34px;height:34px;flex:none;border-radius:10px;font-size:1rem;
  background:linear-gradient(135deg,var(--gold),#E3C476);color:#fff;
  display:flex;align-items:center;justify-content:center;
  animation:aiPulse 2.6s ease-in-out infinite;
}
@keyframes aiPulse{0%,100%{box-shadow:0 0 0 0 rgba(201,162,75,.4)}55%{box-shadow:0 0 0 9px rgba(201,162,75,0)}}
.ai-tip-title{font-weight:700;font-size:.88rem;color:#6B5220}
.ai-tip-body{font-size:.8rem;color:#7A6537;margin-top:2px;line-height:1.55}
.ai-tip .btn{margin-left:auto;flex:none;align-self:center}

/* ---------- 章节手风琴 ---------- */
.chapter-item{border-bottom:1px solid var(--line)}
.chapter-item:last-child{border-bottom:none}
.chapter-head{
  display:flex;align-items:center;gap:12px;padding:15px 4px;cursor:pointer;width:100%;text-align:left;
}
.chapter-idx{
  width:30px;height:30px;border-radius:9px;background:var(--bg);flex:none;
  display:flex;align-items:center;justify-content:center;
  font-size:.78rem;font-weight:700;color:var(--ink-3);
}
.chapter-name{font-weight:600;font-size:.92rem;flex:1}
.chapter-sub{font-size:.72rem;color:var(--text-3);margin-top:1px}
.chapter-progress{font-size:.75rem;color:var(--text-2);font-variant-numeric:tabular-nums}
.mastery-dot{width:8px;height:8px;border-radius:50%;flex:none}

/* ---------- 列表行（错题/收藏） ---------- */
.q-row{
  display:flex;gap:12px;padding:14px 4px;border-bottom:1px solid var(--line);
  cursor:pointer;align-items:flex-start;transition:background .2s;
}
.q-row:hover{background:#FAFBFC}
.q-row:last-child{border-bottom:none}
.q-row-tag{
  flex:none;font-size:.66rem;font-weight:700;padding:2px 8px;border-radius:8px;margin-top:3px;
}
.q-row-text{
  flex:1;font-size:.85rem;color:var(--text);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.q-row-meta{font-size:.7rem;color:var(--text-3);margin-top:4px}

/* ---------- 空状态 ---------- */
.empty{text-align:center;padding:56px 20px;color:var(--text-3)}
.empty-ico{font-size:2.6rem;margin-bottom:12px;opacity:.5}
.empty p{font-size:.85rem}

/* ---------- 筛选胶囊 ---------- */
.pills{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.pill{
  padding:7px 16px;border-radius:20px;font-size:.8rem;background:var(--card);
  border:1px solid var(--line);color:var(--text-2);transition:all .2s var(--ease);
}
.pill:hover{border-color:var(--ink-3)}
.pill.active{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:600}

/* ---------- 徽章色 ---------- */
.c-green{color:var(--green);background:var(--green-bg)}
.c-red{color:var(--red);background:var(--red-bg)}
.c-orange{color:var(--orange);background:var(--orange-bg)}
.c-blue{color:var(--blue);background:var(--blue-bg)}
.c-purple{color:var(--purple);background:var(--purple-bg)}
.c-teal{color:var(--teal);background:var(--teal-bg)}
.c-gold{color:#8A6D2B;background:var(--gold-soft)}

/* ---------- 全局搜索 ---------- */
.search-box{position:relative}
.search-box input{
  width:230px;padding:8px 14px 8px 34px;border-radius:20px;font-size:.82rem;
  border:1px solid var(--line);background:var(--card);color:var(--text);
  outline:none;transition:all .25s var(--ease);font-family:inherit;
}
.search-box input:focus{width:280px;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,162,75,.15)}
.search-box input::placeholder{color:var(--text-3)}
.search-ico{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:.78rem;opacity:.5;pointer-events:none}
.search-panel{
  position:absolute;right:0;top:calc(100% + 10px);width:min(460px,88vw);max-height:60vh;overflow-y:auto;
  background:var(--card);border-radius:14px;box-shadow:var(--shadow-lg);
  border:1px solid var(--line);padding:8px;z-index:70;animation:spIn .25s var(--ease);
}
.search-panel[hidden]{display:none}
@keyframes spIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.search-hint{padding:14px;text-align:center;font-size:.8rem;color:var(--text-3)}
.search-res-item{
  padding:11px 12px;border-radius:10px;cursor:pointer;transition:background .18s;
}
.search-res-item:hover{background:#F4F7FB}
.search-res-item .sri-top{display:flex;align-items:center;gap:7px;margin-bottom:4px}
.search-res-item .sri-text{font-size:.85rem;line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.search-empty{padding:26px;text-align:center;font-size:.82rem;color:var(--text-3)}

/* ---------- 设置页 ---------- */
.set-row{
  display:flex;align-items:center;gap:14px;padding:15px 0;border-bottom:1px solid var(--line);
}
.set-row:last-child{border-bottom:none}
.set-row-txt{flex:1}
.set-row-txt b{display:block;font-size:.9rem;font-weight:600}
.set-row-txt span{font-size:.74rem;color:var(--text-3)}

/* ---------- 看板双栏 ---------- */
.stats-two{display:grid;grid-template-columns:1.15fr 1fr;gap:16px}
@media (max-width:900px){.stats-two{grid-template-columns:1fr}}
@media (max-width:768px){
  .search-box input{width:120px;font-size:.76rem}
  .search-box input:focus{width:min(72vw,240px)}
  .search-panel{right:auto;left:50%;transform:translateX(-50%);width:92vw}
}

/* ---------- 响应式 ---------- */
@media (max-width:1024px){
  .subject-grid{grid-template-columns:repeat(2,1fr)}
  .mode-grid{grid-template-columns:repeat(4,1fr)}
}
@media (max-width:768px){
  .card{padding:16px;border-radius:14px}
  .subject-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .mode-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .hero{padding:20px}
  .hero .hero-stats{gap:18px}
  .ai-tip{flex-wrap:wrap}
  .ai-tip .btn{margin-left:46px}
}

/* ---------- 历年真题 ---------- */
.year-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-top:16px;flex-wrap:wrap}
.year-tabs{display:flex;gap:8px;flex-wrap:wrap}
.year-tab{padding:7px 18px;border-radius:999px;border:1px solid var(--line,#E3E8EF);
  background:#fff;color:var(--text-2,#64748B);font-size:.82rem;font-weight:600;
  cursor:pointer;transition:all .22s var(--ease,cubic-bezier(.22,1,.36,1));font-variant-numeric:tabular-nums}
.year-tab:hover{border-color:#C9A24B;color:#B08A2E}
.year-tab.on{background:linear-gradient(135deg,#0F2540,#1E3E63);border-color:#0F2540;
  color:#F3D98B;box-shadow:0 4px 14px rgba(15,37,64,.22)}
.year-count{font-size:.78rem;color:var(--text-3,#94A3B8);font-variant-numeric:tabular-nums}

.subject-card.real-card{text-align:left;position:relative;align-items:stretch}
.subject-card.real-card .subject-ico{margin-bottom:10px}
.real-go{margin-top:11px;padding-top:9px;border-top:1px dashed var(--line,#E3E8EF);
  font-size:.76rem;font-weight:700;color:#B08A2E;letter-spacing:.02em}
.subject-card.real-card:hover .real-go{color:#0F2540}
.subject-card.real-card.dim{opacity:.45;cursor:not-allowed}

.nav-badge.gold{background:linear-gradient(135deg,#C9A24B,#E0BC6C);color:#fff}
.exam-hd-year{color:#F3D98B;font-weight:700}

/* 手机端 6 个 Tab 自适应 */
@media (max-width:768px){
  .tabbar{display:grid;grid-template-columns:repeat(6,1fr)}
  .tab-item{font-size:.62rem;padding:6px 0}
  .tab-ico{font-size:1.02rem}
  .year-bar{gap:8px}
  .year-tab{padding:6px 13px;font-size:.76rem}
}

/* ---------- 十年覆盖总览 ---------- */
.decade-overview{margin-top:16px;background:#fff;border:1px solid var(--line,#E3E8EF);
  border-radius:14px;padding:14px 16px 10px;box-shadow:0 1px 3px rgba(15,37,64,.05)}
.decade-title{display:flex;align-items:baseline;gap:9px;font-size:.84rem;font-weight:700;
  color:var(--ink,#0F2540);margin-bottom:10px}
.decade-sub{font-size:.72rem;font-weight:500;color:var(--text-3,#94A3B8);font-variant-numeric:tabular-nums}
.decade-bars{display:flex;align-items:flex-end;gap:6px;height:96px}
.decade-bar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;
  height:100%;gap:4px;background:none;border:0;cursor:pointer;padding:0;
  transition:transform .22s var(--ease,cubic-bezier(.22,1,.36,1))}
.decade-bar:hover{transform:translateY(-2px)}
.decade-num{font-size:.66rem;font-weight:700;color:var(--text-3,#94A3B8);
  font-variant-numeric:tabular-nums;transition:color .2s}
.decade-col{width:100%;max-width:34px;border-radius:5px 5px 2px 2px;
  background:linear-gradient(180deg,#CBD5E1,#94A3B8);transition:all .28s var(--ease,cubic-bezier(.22,1,.36,1))}
.decade-lb{font-size:.64rem;color:var(--text-3,#94A3B8);font-variant-numeric:tabular-nums;transition:color .2s}
.decade-bar:hover .decade-col{background:linear-gradient(180deg,#E0BC6C,#C9A24B)}
.decade-bar:hover .decade-num,.decade-bar:hover .decade-lb{color:#B08A2E}
.decade-bar.on .decade-col{background:linear-gradient(180deg,#C9A24B,#0F2540);
  box-shadow:0 3px 10px rgba(15,37,64,.22)}
.decade-bar.on .decade-num{color:#B08A2E}
.decade-bar.on .decade-lb{color:var(--ink,#0F2540);font-weight:700}

/* 年份标签题量微标 */
.year-tab{display:inline-flex;align-items:center;gap:5px}
.year-tab i{font-style:normal;font-size:.66rem;font-weight:700;opacity:.62;
  font-variant-numeric:tabular-nums;padding:1px 5px;border-radius:999px;
  background:rgba(15,37,64,.07)}
.year-tab.on i{background:rgba(243,217,139,.22);opacity:.95}

@media (max-width:768px){
  .decade-bars{height:78px;gap:4px}
  .decade-num{font-size:.6rem}
  .decade-lb{font-size:.58rem}
  .decade-overview{padding:12px 12px 8px}
}
