/* ============================================================
   八年级上册 真题二 · 全题型精读  共享样式
   配色严格遵循《词性标注配色规则.xlsx》
   ============================================================ */
:root{
  --navy:#0f2f52; --navy2:#16385f; --gold:#f2c14e; --ink:#222f3e;
  --muted:#6b7280; --line:#e7e3da; --bg:#f6f5f1; --card:#fff;
  --good:#16a34a; --bad:#dc2626;
  /* 配色规则色值 */
  --c-verb:#27ae60;      /* 谓语动词 */
  --c-inf:#27ae60; --bg-inf:#e8f8ef;     /* 不定式 */
  --c-ger:#1a5c3a; --bg-ger:#f0f0f0;     /* 动名词 */
  --c-pink:#e91e8c; --bg-pink:#fce4f0;   /* 现在/过去分词、形容词 */
  --c-adv:#2980b9;                        /* 副词 */
  --c-prep:#8e44ad;                       /* 介词 */
  --c-conj:#e67e22; --bg-that:#fef3e2;   /* 连词 / that 类引导词 */
  --c-wh:#2980b9; --bg-wh:#e3f2fd;       /* wh- 类引导词 */
  --c-q:#e74c3c;                          /* 疑问词 */
  --c-other:#333333;                      /* 冠词/指示/数词/代词 */
  --c-comment:#aaaaaa;                    /* 注释 */
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:"Noto Sans SC",-apple-system,"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif;
  background:var(--bg);color:var(--ink);line-height:1.75;font-size:16px;
}
img{max-width:100%;display:block;}
a{color:inherit;}
mark{background:transparent;color:inherit;}

/* ============ 顶部导航（合并页） ============ */
.topnav{
  position:sticky;top:0;z-index:1200;background:var(--navy);
  box-shadow:0 4px 14px rgba(15,47,82,.35);
}
.topnav .nav-inner{
  max-width:1280px;margin:0 auto;display:flex;overflow-x:auto;scrollbar-width:none;
}
.topnav .nav-inner::-webkit-scrollbar{display:none;}
.topnav .nav-item{
  flex:none;padding:13px 17px;color:#cfe0f2;font-size:14px;font-weight:700;cursor:pointer;
  border-bottom:3px solid transparent;white-space:nowrap;user-select:none;background:none;
  border-left:none;border-right:none;border-top:none;font-family:inherit;
  transition:color .15s,background .15s;
}
.topnav .nav-item:hover{color:#fff;background:rgba(255,255,255,.07);}
.topnav .nav-item.active{color:var(--gold);border-bottom-color:var(--gold);background:rgba(255,255,255,.06);}
.topnav .nav-item .num{
  display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;
  padding:0 6px;margin-right:6px;border-radius:6px;background:rgba(255,255,255,.16);font-size:11px;
}
.topnav .nav-back{
  flex:none;margin:7px 10px 7px 0;padding:6px 12px;border-radius:8px;background:rgba(242,193,78,.16);
  color:var(--gold);font-size:12.5px;font-weight:800;text-decoration:none;white-space:nowrap;
  display:inline-flex;align-items:center;
}
.topnav .nav-back:hover{background:rgba(242,193,78,.3);}
.to-top{
  position:fixed;right:20px;bottom:22px;z-index:1300;width:44px;height:44px;border-radius:50%;
  border:none;cursor:pointer;background:var(--gold);color:var(--navy);font-size:20px;font-weight:900;
  box-shadow:0 6px 16px rgba(15,47,82,.3);display:none;
}
.to-top.show{display:block;}

/* ============ 单页 hero ============ */
.hero{
  background:linear-gradient(135deg,#0b2447 0%,#164a7a 58%,#1d6a96 100%);
  color:#f8fafc;padding:30px 22px 34px;
}
.hero-inner{max-width:1180px;margin:0 auto;}
.hero .kicker{
  display:inline-flex;align-items:center;gap:8px;font-size:13px;letter-spacing:.14em;
  color:#bfdbfe;font-weight:700;margin-bottom:8px;
}
.hero h1{font-size:28px;font-weight:900;letter-spacing:.01em;}
.hero .en-sub{font-size:14px;color:#dbeafe;margin-top:4px;letter-spacing:.05em;}
.hero .tags{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px;}
.hero .tags span{
  font-size:12.5px;font-weight:700;padding:4px 11px;border-radius:999px;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);color:#e0f2fe;
}

/* ============ 合并页的分节头 ============ */
.part{border-top:8px solid #e9edf3;}
.part-hero{display:block;}   /* 顶部 hero 区：不是 .part，不参与滚动高亮锚点 */
.part-head{
  background:linear-gradient(120deg,#0b2447,#164a7a 62%,#1d6a96);
  color:#f8fafc;padding:22px 22px 24px;
}
.part-head .ph-inner{max-width:1280px;margin:0 auto;display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.part-head .ph-icon{
  flex:none;width:46px;height:46px;border-radius:13px;background:var(--gold);color:var(--navy);
  font-size:19px;font-weight:900;display:flex;align-items:center;justify-content:center;
}
.part-head .ph-tt{flex:1;min-width:220px;}
.part-head h2{font-size:21px;font-weight:900;letter-spacing:.01em;}
.part-head .ph-en{font-size:12.5px;color:#c9d8ea;margin-top:3px;}
.part-head .ph-jump{
  flex:none;font-size:12.5px;font-weight:800;text-decoration:none;color:var(--navy);
  background:#fff;padding:7px 14px;border-radius:9px;
}
.part-head .ph-jump:hover{background:#f2c14e;}

/* ============ 布局 ============ */
.layout{
  max-width:1280px;margin:24px auto 0;padding:0 20px 40px;
  display:grid;grid-template-columns:1fr 330px;gap:26px;align-items:start;
}
.main-col{min-width:0;display:flex;flex-direction:column;gap:24px;}
.side-col{position:sticky;top:64px;display:flex;flex-direction:column;gap:20px;}
.wrap{max-width:1280px;margin:24px auto 0;padding:0 20px 40px;display:flex;flex-direction:column;gap:24px;}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;min-width:0;}
.sec-head{display:flex;align-items:baseline;gap:10px;padding:16px 22px 0;flex-wrap:wrap;}
.sec-head h2{font-size:19px;font-weight:900;color:var(--navy);}
.sec-head .sec-en{font-size:12px;color:var(--muted);letter-spacing:.06em;}

/* ============ 图例 ============ */
.legend{
  max-width:1280px;margin:18px auto 0;padding:13px 20px;background:var(--card);
  border:1px solid var(--line);border-radius:14px;display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center;
}
.legend .lg-title{font-size:12.5px;font-weight:900;color:var(--navy);letter-spacing:.12em;}
.legend .lg-item{display:flex;align-items:center;gap:7px;font-size:13px;color:#374151;font-weight:500;}
.legend .swatch{width:15px;height:15px;border-radius:4px;flex-shrink:0;}
.legend .lg-note{font-size:12px;color:var(--muted);}
.legend .sw{width:14px;height:14px;border-radius:4px;display:inline-block;}
.sw-ans{background:#fff9c4;box-shadow:inset 0 0 0 2px #f59e0b;}
.sw-up{background:#bfdbfe;box-shadow:inset 0 0 0 2px #2563eb;}
.sw-down{background:#a7f3d0;box-shadow:inset 0 0 0 2px #059669;}
.sw-q1{background:#bfdbfe;} .sw-q2{background:#a7f3d0;}
.sw-q3{background:#fed7aa;} .sw-q4{background:#e9d5ff;}
.sw-q5{background:#cffafe;}

/* ============ 文章 ============ */
.passage{padding:10px 22px 20px;}
.tip-note{
  font-size:13px;color:#475569;background:#f3f6fb;border:1px dashed #c9d8ee;
  border-radius:10px;padding:9px 13px;margin:6px 0 10px;line-height:1.75;
}
.tip-note u{text-decoration-color:#2563eb;text-underline-offset:3px;}
.para{position:relative;padding:13px 0 13px 46px;border-bottom:1px dashed var(--line);}
.para:last-child{border-bottom:none;}
.para-tag{
  position:absolute;left:0;top:15px;width:34px;height:34px;border-radius:9px;background:var(--navy);
  color:#fff;font-weight:900;font-size:14px;display:flex;align-items:center;justify-content:center;
}
.para-tag.p2{background:#1d6a96;}
.para-tag.p3{background:#b45309;}
.para-tag.p4{background:#065f46;}
.para-tag.p5{background:#7c3aed;}
.para-tag.p6{background:#0e7490;}
.para-tag.p7{background:#9d174d;}
.para-text{font-size:17px;line-height:2.1;color:#222f3e;}
.ans-hl{
  background:#fff9c4;border-radius:3px;padding:0 3px;font-weight:800;color:#92400e;
  border-bottom:2px solid #f59e0b;
}
.ans-no{font-size:11px;font-weight:900;color:#b45309;vertical-align:super;margin-left:1px;}
.tip-word{
  background:#e0e7ff;border-bottom:1px dashed #4f46e5;color:#3730a3;border-radius:3px;
  padding:0 4px;font-size:.92em;font-weight:700;
}
/* 上下文线索波浪线 */
.wave-up{text-decoration:underline wavy #2563eb;text-decoration-thickness:2px;text-underline-offset:4px;}
.wave-down{text-decoration:underline wavy #059669;text-decoration-thickness:2px;text-underline-offset:4px;}
/* 阅读题定位同色高亮 */
.hl-q1{background:#bfdbfe;border-radius:3px;padding:0 2px;font-weight:700;}
.hl-q2{background:#a7f3d0;border-radius:3px;padding:0 2px;font-weight:700;}
.hl-q3{background:#fed7aa;border-radius:3px;padding:0 2px;font-weight:700;}
.hl-q4{background:#e9d5ff;border-radius:3px;padding:0 2px;font-weight:700;}
.hl-q5{background:#cffafe;border-radius:3px;padding:0 2px;font-weight:700;}
.wave-q1{text-decoration:underline wavy #2563eb;text-decoration-thickness:2px;text-underline-offset:4px;}
.wave-q2{text-decoration:underline wavy #059669;text-decoration-thickness:2px;text-underline-offset:4px;}
.wave-q3{text-decoration:underline wavy #d97706;text-decoration-thickness:2px;text-underline-offset:4px;}
.wave-q4{text-decoration:underline wavy #7c3aed;text-decoration-thickness:2px;text-underline-offset:4px;}
.wave-q5{text-decoration:underline wavy #0891b2;text-decoration-thickness:2px;text-underline-offset:4px;}
.syn-hl{background:#fde68a;border-radius:3px;padding:0 3px;font-weight:800;color:#78350f;}
.bad-w{text-decoration:line-through;text-decoration-color:#dc2626;color:#991b1b;}
.wf-w{color:#1d4ed8;font-weight:800;}
.wf-r{color:#b45309;font-weight:800;}
.wf-all{background:#ede9fe;border-radius:3px;padding:0 4px;font-weight:800;color:#5b21b6;}

/* ============ 题目精析 / 逐题解析 ============ */
.question-card{
  background:var(--card);border:1px solid var(--line);border-radius:16px;padding:15px 17px 13px;
  border-left:5px solid #cbd5e1;
}
.q-head{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;}
.q-no{
  flex-shrink:0;width:32px;height:32px;border-radius:9px;background:var(--navy);color:#fff;
  font-weight:900;font-size:14px;display:flex;align-items:center;justify-content:center;margin-top:1px;
}
.q-main{flex:1;min-width:180px;}
.q-sent{font-size:15.5px;line-height:1.75;color:#222f3e;}
.q-zh{font-size:12.5px;color:var(--muted);font-weight:600;margin-top:2px;line-height:1.55;}
.q-type{
  font-size:11px;font-weight:700;color:var(--muted);border:1px solid var(--line);border-radius:999px;
  padding:2px 9px;flex-shrink:0;margin-top:5px;background:#faf9f6;
}
.loc-btn{
  flex-shrink:0;margin-top:3px;font-family:inherit;font-size:12px;font-weight:800;cursor:pointer;
  color:#1d4ed8;background:#eef2ff;border:1px solid #c7d2fe;border-radius:8px;padding:4px 10px;
}
.loc-btn:hover{background:#e0e7ff;}
.q-analysis{
  margin-top:9px;background:#f8f7f3;border:1px dashed #d6d1c4;border-radius:11px;padding:10px 13px;
  display:flex;flex-direction:column;gap:6px;font-size:13.5px;
}
.an-row{display:flex;gap:8px;align-items:flex-start;}
.an-tag{
  flex-shrink:0;font-size:11px;font-weight:900;color:#fff;border-radius:6px;padding:1px 7px;
  margin-top:3px;letter-spacing:.06em;
}
.an-tag.k{background:var(--navy);}
.an-tag.why{background:#b45309;}
.an-tag.ans{background:var(--good);}
.an-tag.syn{background:#7c3aed;}
.an-tag.wf{background:#0e7490;}
.an-row b{color:var(--navy);}
.opts{margin-top:9px;display:grid;grid-template-columns:1fr;gap:6px;font-size:13.5px;}
.opt{
  display:flex;align-items:baseline;gap:8px;padding:7px 10px;background:#faf9f6;
  border:1px solid #efebe2;border-radius:9px;flex-wrap:wrap;
}
.opt .ol{font-weight:900;color:var(--navy);flex-shrink:0;}
.opt .ow{font-weight:700;color:#222f3e;}
.opt .ot{font-weight:700;color:#222f3e;}
.opt .oz{color:var(--muted);}
.opt-reason{font-size:12.5px;border-radius:7px;padding:2px 8px;width:100%;line-height:1.6;}
.opt-reason.good{background:#dcfce7;color:#166534;}
.opt-reason.bad{background:#fee2e2;color:#991b1b;}
.opt.linked-a{background:#eff6ff;border-color:#bfdbfe;}
.opt.linked-b{background:#ecfdf5;border-color:#a7f3d0;}
.opt.linked-c{background:#fff7ed;border-color:#fed7aa;}
.opt.linked-d{background:#faf5ff;border-color:#e9d5ff;}
.opt.linked-e{background:#ecfeff;border-color:#cffafe;}
.opt.spare{background:#f3f4f6;border-style:dashed;opacity:.9;}
.mark{
  font-size:11px;font-weight:900;color:#6b7280;border:1px dashed #9ca3af;border-radius:999px;
  padding:0 7px;margin-left:6px;
}
.hl-a{background:#bfdbfe;border-radius:3px;padding:0 2px;font-weight:700;}
.hl-b{background:#a7f3d0;border-radius:3px;padding:0 2px;font-weight:700;}
.hl-c{background:#fed7aa;border-radius:3px;padding:0 2px;font-weight:700;}
.hl-d{background:#e9d5ff;border-radius:3px;padding:0 2px;font-weight:700;}
.hl-e{background:#cffafe;border-radius:3px;padding:0 2px;font-weight:700;}
.kw-a{background:#bfdbfe;border-radius:3px;padding:0 2px;font-weight:700;}
.kw-b{background:#a7f3d0;border-radius:3px;padding:0 2px;font-weight:700;}
.kw-c{background:#fed7aa;border-radius:3px;padding:0 2px;font-weight:700;}
.kw-d{background:#e9d5ff;border-radius:3px;padding:0 2px;font-weight:700;}
.kw-e{background:#cffafe;border-radius:3px;padding:0 2px;font-weight:700;}

/* ============ 右栏面板 ============ */
.panel{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:17px 19px;}
.panel-title{
  display:flex;align-items:center;gap:9px;font-size:16px;font-weight:900;color:var(--navy);
  padding-bottom:10px;border-bottom:2px solid var(--navy);margin-bottom:12px;flex-wrap:wrap;
}
.panel-title .p-en{font-size:11px;color:var(--muted);font-weight:700;margin-left:auto;}
.plist,.vlist{list-style:none;display:flex;flex-direction:column;}
.plist li,.vlist li{
  display:flex;align-items:baseline;gap:8px;padding:6.5px 0;border-bottom:1px dashed var(--line);font-size:14px;
}
.plist li:last-child,.vlist li:last-child{border-bottom:none;}
.plist .en{font-weight:700;color:#173a86;}
.plist .en::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#2563eb;margin-right:8px;}
.plist .zh{color:#374151;margin-left:auto;flex-shrink:0;font-size:13px;}
.vlist .en{font-weight:700;color:#065f46;}
.vlist .en::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#059669;margin-right:8px;}
.vlist .pos{font-size:11.5px;color:#059669;font-weight:700;flex-shrink:0;}
.vlist .zh{color:#374151;margin-left:auto;flex-shrink:0;font-size:13px;}
.prep-box{border:1px solid #e9d8fd;background:#faf5ff;border-radius:10px;padding:10px 12px;}
.prep-grid{display:grid;grid-template-columns:1fr;gap:4px 0;font-size:13.5px;line-height:1.7;}
.prep-grid .pp{color:#7b1fa2;font-weight:900;}
.prep-grid .zh{color:#8b93a5;font-size:11.5px;margin-left:6px;}
.prep-tip{font-size:11.5px;color:var(--muted);margin-top:7px;line-height:1.6;}
.syn-box{display:flex;flex-direction:column;gap:6px;font-size:13.5px;}
.syn-line{background:#f8f7f3;border-radius:9px;padding:7px 11px;line-height:1.7;}
.syn-line .qa{color:#1d4ed8;font-weight:800;}
.syn-line .pa{color:#065f46;font-weight:800;}
.syn-line .ar{color:#b45309;font-weight:900;}
.gram-tips{display:flex;flex-direction:column;gap:9px;font-size:13px;}
.gt-card{background:#f8f7f3;border:1px dashed #d6d1c4;border-radius:10px;padding:9px 12px;line-height:1.7;}
.gt-card b{color:var(--navy);}

/* ============ 选项速览（完形填空右栏，位于「常用词组」上方） ============ */
.optview{display:flex;flex-direction:column;}
.ov-row{
  display:flex;gap:8px;align-items:flex-start;padding:6px 0;border-bottom:1px dashed var(--line);
}
.ov-row:last-child{border-bottom:none;}
.ov-no{
  flex:none;width:22px;height:22px;border-radius:6px;background:var(--navy);color:#fff;
  font-size:11.5px;font-weight:900;display:flex;align-items:center;justify-content:center;margin-top:1px;
}
.ov-opts{flex:1;min-width:0;display:flex;flex-wrap:wrap;gap:2px 10px;font-size:13.5px;line-height:1.65;}
.ov-opt{color:#374151;white-space:nowrap;}
.ov-opt .ol{font-weight:800;color:var(--navy);margin-right:3px;}
.ov-opt.right{
  background:#fff9c4;border-radius:5px;padding:0 6px;color:#8a5a00;font-weight:800;
  box-shadow:inset 0 -2px 0 #f59e0b;
}
.ov-opt.right .ol{color:#8a5a00;}
.ov-tip{font-size:11.5px;color:var(--muted);margin-top:9px;line-height:1.6;}

/* ============ 文章精读（词性套色 · 严格按配色规则） ============ */
.intensive{padding:20px 22px 24px;}
.intro-note{
  font-size:13px;color:#475569;background:#f3f6fb;border:1px dashed #c9d8ee;border-radius:10px;
  padding:9px 13px;margin:10px 0 4px;line-height:1.8;
}
.para-label{
  display:inline-block;background:var(--navy);color:#fff;font-size:12px;font-weight:900;
  border-radius:6px;padding:2px 10px;margin:14px 0 6px;
}
.para-label.pl2{background:#1d6a96;}
.para-label.pl3{background:#b45309;}
.para-label.pl4{background:#065f46;}
.para-label.pl5{background:#7c3aed;}
.para-label.pl6{background:#0e7490;}
.para-label.pl7{background:#9d174d;}
.iv{font-size:16px;line-height:2.1;color:#222f3e;}
.sen{padding:7px 0;border-bottom:1px dashed #edf0f3;}
.sen:last-child{border-bottom:none;}
.snum{color:#9aa5b1;font-size:13px;margin-right:8px;font-weight:700;}
.sen-zh{color:#7a8087;font-size:13.5px;margin-top:1px;display:block;}
/* 词性配色（配色规则表 1-14） */
.iv .v-verb{color:var(--c-verb);font-weight:700;}                       /* 1 谓语动词 */
.iv .v-inf{color:var(--c-inf);background:var(--bg-inf);border-radius:3px;padding:0 3px;font-weight:700;} /* 2 不定式 */
.iv .inf-group{background:var(--bg-inf);border-radius:3px;padding:0 3px;} /* 2 不定式被隔开 */
.iv .v-ger{color:var(--c-ger);background:var(--bg-ger);border-radius:3px;padding:0 3px;font-weight:700;} /* 3 动名词 */
.iv .v-presp{color:var(--c-pink);background:var(--bg-pink);border-radius:3px;padding:0 3px;font-weight:700;} /* 4 现在分词 */
.iv .v-pp{color:var(--c-pink);background:var(--bg-pink);border-radius:3px;padding:0 3px;font-weight:700;}   /* 5 过去分词 */
.iv .v-adj{color:var(--c-pink);font-weight:700;}                        /* 6 形容词/形容词性物主代词 */
.iv .v-adv{color:var(--c-adv);}                                         /* 7 副词 */
.iv .v-prep{color:var(--c-prep);}                                       /* 8 介词 */
.iv .v-conj{color:var(--c-conj);}                                       /* 9 连词 */
.iv .v-guide-that{color:var(--c-conj);background:var(--bg-that);border-radius:3px;padding:0 3px;font-weight:700;} /* 10 that 类引导词 */
.iv .v-guide-where{color:var(--c-wh);background:var(--bg-wh);border-radius:3px;padding:0 3px;font-weight:700;}    /* 11 wh- 类引导词 */
.iv .v-question{color:var(--c-q);font-weight:700;}                      /* 12 疑问词 */
.iv .v-other{color:var(--c-other);}                                     /* 13 冠词/指示/数词/代词 */
.iv .v-comment{color:var(--c-comment);font-style:italic;}               /* 14 注释 */
.iv .n{color:var(--c-other);}                                           /* 名词：深灰 #333（同 13 类） */
/* 从句划线规则（配色规则表 · 从句新划线规则） */
.iv .clause-content{text-underline-offset:3px;}
.iv .clause-that{
  text-decoration:underline;text-decoration-color:var(--c-conj);
  text-decoration-thickness:2px;text-underline-offset:3px;
}
.iv .clause-wh{
  text-decoration:underline;text-decoration-color:var(--c-wh);
  text-decoration-thickness:2px;text-underline-offset:3px;
}
.color-key{
  display:flex;flex-wrap:wrap;gap:8px 16px;margin:12px 0 2px;padding:10px 13px;
  background:#fbfaf7;border:1px solid var(--line);border-radius:11px;font-size:12.5px;
}
.color-key b{font-size:12px;color:var(--navy);letter-spacing:.06em;}
.color-key span.k{display:inline-flex;align-items:center;gap:5px;}
.color-key i{width:14px;height:14px;border-radius:4px;display:inline-block;font-style:normal;}

/* ============ 作文金句仿写 ============ */
.writing{padding:20px 22px 24px;}
.writing-note{font-size:13px;color:var(--muted);margin-top:10px;line-height:1.7;}
.slot{background:#e5e7eb;color:#6b7280;border-radius:4px;padding:1px 6px;font-weight:700;}
.sw-card{border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-top:12px;background:#fcfbf9;}
.sw-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.sw-no{flex-shrink:0;background:var(--navy);color:#fff;font-size:12px;font-weight:900;border-radius:999px;padding:2px 11px;}
.sw-orig{font-size:15.5px;font-weight:700;color:#1f3a5f;}
.sw-frame{margin-top:9px;font-size:16px;font-weight:800;color:#111;line-height:1.9;}
.sw-demo{
  margin-top:8px;font-size:13.5px;color:#374151;background:#f2f6fd;border-left:3px solid #93b8e8;
  border-radius:0 8px 8px 0;padding:7px 12px;line-height:1.8;
}
.sw-demo b{color:#0d47a1;}
.sw-scene{font-size:12px;color:var(--muted);margin-top:6px;}

/* ============ 六选五 ============ */
.strategy{padding:14px 22px 20px;display:flex;flex-direction:column;gap:11px;}
.step{
  display:flex;gap:12px;background:#f8f7f3;border:1px solid #eceae2;border-radius:12px;padding:11px 14px;
}
.step-no{
  flex-shrink:0;width:28px;height:28px;border-radius:9px;background:var(--navy);color:#fff;font-weight:900;
  font-size:14px;display:flex;align-items:center;justify-content:center;
}
.step-no.s2{background:#1d6a96;} .step-no.s3{background:#b45309;} .step-no.s4{background:#065f46;}
.step-main{min-width:0;}
.step-title{font-size:15px;font-weight:800;color:var(--navy);}
.step-title em{color:#b45309;font-style:normal;}
.step-desc{font-size:13.5px;color:#374151;margin-top:3px;line-height:1.75;}
.step-desc em{color:#b45309;font-style:normal;font-weight:700;}
.step-desc .tip{display:block;margin-top:4px;font-size:12.5px;color:#92400e;background:#fef3c7;border-radius:7px;padding:4px 9px;}
.duo{display:grid;grid-template-columns:1.15fr .85fr;gap:0;}
.duo-col{padding:16px 20px 20px;}
.duo-col.left{border-right:1px dashed var(--line);}
.duo-col.right{min-width:0;}
.duo-head{
  font-size:13.5px;font-weight:900;color:var(--navy);margin-bottom:8px;
  display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;
}
.duo-head .de{font-size:11.5px;color:var(--muted);font-weight:600;}
.duo-col .legend{max-width:none;margin:10px 0 0;padding:10px 12px;gap:8px 16px;font-size:12px;border-radius:11px;}
.duo-col .legend .lg-item{font-size:12px;}
.blank{
  display:inline-flex;align-items:baseline;gap:3px;background:#fff9c4;border:1px solid #f59e0b;
  border-radius:7px;padding:0 7px;margin:0 3px;font-weight:900;
}
.blank .bn{font-size:11px;color:#b45309;vertical-align:super;}
.blank .ans{color:#92400e;}
.analysis{padding:14px 22px 20px;display:flex;flex-direction:column;gap:12px;}
.an-card{background:#fcfbf9;border:1px solid var(--line);border-radius:12px;padding:12px 15px;}
.an-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px;}
.an-no{
  flex-shrink:0;background:var(--navy);color:#fff;font-size:12px;font-weight:900;border-radius:999px;padding:2px 11px;
}
.an-type{font-size:11.5px;font-weight:800;color:#b45309;background:#fef3c7;border-radius:999px;padding:2px 9px;}
.an-ans{font-size:14px;font-weight:900;color:var(--good);}
.an-card .an-row{font-size:13.5px;line-height:1.8;margin-top:5px;}
.an-card .an-row b{color:var(--navy);}
.an-card .an-row u{text-decoration-color:#2563eb;text-underline-offset:3px;}

/* ============ 信息匹配 ============ */
.match-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;}
.match-left{padding:16px 20px 20px;border-right:1px dashed var(--line);}
.match-right{padding:16px 20px 20px;}
.col-title{
  font-size:13.5px;font-weight:900;color:var(--navy);margin-bottom:10px;
  display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;
}
.col-title .cn{font-size:11.5px;color:var(--muted);font-weight:700;}
.person{
  position:relative;background:#fcfbf9;border:1px solid var(--line);border-radius:11px;
  padding:10px 52px 10px 44px;margin-bottom:9px;font-size:14px;line-height:1.8;
}
.pno{
  position:absolute;left:8px;top:11px;width:28px;height:28px;border-radius:8px;background:var(--navy);
  color:#fff;font-size:12.5px;font-weight:900;display:flex;align-items:center;justify-content:center;
}
.pans{
  position:absolute;right:9px;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;
  background:var(--good);color:#fff;font-weight:900;font-size:15px;display:flex;align-items:center;justify-content:center;
}
.opt-item{
  display:flex;gap:10px;background:#fcfbf9;border:1px solid var(--line);border-radius:11px;
  padding:10px 12px;margin-bottom:9px;font-size:14px;line-height:1.8;align-items:flex-start;
}
.opt-item .ono{
  flex-shrink:0;width:26px;height:26px;border-radius:8px;background:#1d6a96;color:#fff;font-size:12.5px;
  font-weight:900;display:flex;align-items:center;justify-content:center;
}
.opt-item.spare{background:#f3f4f6;border-style:dashed;opacity:.9;}
.match-legend{
  display:flex;flex-wrap:wrap;gap:10px 22px;padding:11px 20px 16px;border-top:1px dashed var(--line);
  font-size:12.5px;color:#374151;
}
.match-legend span{display:inline-flex;align-items:center;gap:6px;}
.match-legend .sw{width:14px;height:14px;border-radius:4px;display:inline-block;}

/* ============ 语法精讲 ============ */
.g-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px 22px;}
.g-title{
  display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding-bottom:9px;
  border-bottom:2px solid var(--navy);margin-bottom:12px;
}
.g-title h3{font-size:17px;font-weight:900;color:var(--navy);}
.g-title .g-en{font-size:11.5px;color:var(--muted);letter-spacing:.06em;margin-left:auto;}
.g-rule{
  font-size:14.5px;line-height:1.85;color:var(--ink);background:#f8fafc;border-left:4px solid var(--navy);
  border-radius:0 10px 10px 0;padding:10px 14px;margin-bottom:10px;
}
.g-rule b{color:#0d47a1;}
.g-ex{font-size:15px;color:#222f3e;margin:7px 0 2px;line-height:1.8;}
.g-ex .sn{
  display:inline-block;background:var(--navy);color:#fff;border-radius:6px;font-size:11px;font-weight:900;
  padding:1px 7px;margin-right:6px;vertical-align:1px;
}
.g-zh{font-size:12.5px;color:#7b8aa0;margin:2px 0 8px 22px;line-height:1.6;}
.g-prac{margin-top:12px;border-top:1px dashed var(--line);padding-top:11px;}
.g-prac h4{font-size:14px;font-weight:900;color:#0d47a1;margin-bottom:8px;}
.g-q{margin:8px 0;font-size:15px;line-height:1.7;}
.g-q .qno{
  display:inline-block;min-width:26px;height:26px;line-height:26px;text-align:center;background:#eef2ff;
  color:#1d4ed8;border-radius:50%;font-weight:900;font-size:13px;margin-right:8px;vertical-align:1px;
}
.g-opt{font-size:14px;color:#374151;}
.g-ans{margin-top:10px;}
.g-ans summary{cursor:pointer;font-size:13.5px;font-weight:800;color:#0d47a1;list-style:none;}
.g-ans summary::before{content:"▸ ";color:#1d4ed8;}
.g-ans[open] summary::before{content:"▾ ";}
.g-ans p{font-size:14px;color:var(--ink);margin-top:8px;background:#eff6ff;border-radius:8px;padding:10px 14px;line-height:1.85;}
.g-ans p b{color:#0d47a1;}
.g-quiz{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px 22px 20px;}
.g-quiz h2{font-size:18px;font-weight:900;color:var(--navy);padding-bottom:9px;border-bottom:2px solid var(--navy);margin-bottom:11px;}
.grammar-tip{
  font-size:13.5px;color:#374151;background:#f8fafc;border-left:4px solid var(--gold);
  border-radius:0 10px 10px 0;padding:10px 14px;line-height:1.8;
}
.grammar-tip b{color:var(--navy);}

/* ============ 表格（阅读匹配选项等） ============ */
.tbl{width:100%;border-collapse:collapse;font-size:13.5px;}
.tbl th,.tbl td{border:1px solid var(--line);padding:7px 10px;text-align:left;vertical-align:top;}
.tbl th{background:#f1f5f9;color:var(--navy);font-weight:900;}

/* ============ Q22 图片选项 ============ */
.q22-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:8px;}
.q22-item{background:#faf9f6;border:1px solid var(--line);border-radius:11px;padding:8px;text-align:center;}
.q22-item img{margin:0 auto;border-radius:8px;background:#fff;}
.q22-item .lb{display:block;margin-top:6px;font-size:12.5px;font-weight:800;color:var(--navy);}
.q22-item.win{border-color:var(--good);background:#dcfce7;}
.q22-item.win .lb{color:#166534;}

/* ============ 词典弹窗 ============ */
.dict-mask{
  position:fixed;inset:0;background:rgba(15,23,42,.55);display:none;align-items:center;
  justify-content:center;z-index:2000;padding:20px;
}
.dict-mask.open{display:flex;}
.dict-card{
  background:#fff;border-radius:18px;max-width:460px;width:100%;padding:22px 24px;
  box-shadow:0 24px 60px rgba(2,20,40,.4);max-height:80vh;overflow:auto;
}
.dict-top{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;}
.dict-word{font-size:30px;font-weight:900;color:var(--navy);letter-spacing:.02em;}
.dict-ipa{display:flex;gap:16px;font-size:13px;color:var(--muted);margin-top:4px;}
.dict-ipa b{color:#334155;}
.dict-play{
  display:inline-flex;align-items:center;gap:6px;background:#eff6ff;border:1px solid #bfdbfe;color:var(--navy);
  border-radius:999px;padding:3px 12px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;
}
.dict-play:hover{background:#dbeafe;}
.dict-pos{margin-top:12px;padding:11px 13px;background:#f8f7f3;border-radius:11px;font-size:14.5px;line-height:1.75;}
.dict-pos .dp{color:var(--good);font-weight:900;margin-right:6px;}
.dict-ex{margin-top:9px;padding:10px 13px;background:#f3f6fb;border-radius:11px;font-size:13.5px;line-height:1.75;color:#334155;}
.dict-ex .de{color:#155e75;font-weight:700;}
.dict-ex .dz{color:#6b7280;}
.dict-close{
  margin-top:15px;width:100%;padding:8px;border:1px solid var(--line);border-radius:10px;background:#faf9f6;
  font-family:inherit;font-size:13.5px;font-weight:700;color:var(--muted);cursor:pointer;
}
.dict-close:hover{background:#f0efea;}

/* ============ 朗读按钮 ============ */
.read-btn{
  display:inline-flex;align-items:center;justify-content:center;width:27px;height:27px;margin:2px 0 2px 8px;
  border:1px solid #c7d2fe;background:#eef2ff;color:#4f46e5;border-radius:50%;cursor:pointer;
  vertical-align:middle;flex:none;transition:background .15s,color .15s;padding:0;line-height:1;
}
.read-btn:hover{background:#e0e7ff;}
.read-btn.speaking{background:#4f46e5;color:#fff;border-color:#4f46e5;}
/* 精读句末小喇叭：更小巧、不抢眼，鼠标移上才高亮 */
.iv .read-btn,.q-sent .read-btn,.para-text .read-btn{width:23px;height:23px;margin-left:7px;opacity:.7;}
.iv .read-btn:hover,.q-sent .read-btn:hover,.para-text .read-btn:hover{opacity:1;}
.iv .read-btn svg,.q-sent .read-btn svg,.para-text .read-btn svg{width:12px;height:12px;}
.iv .read-btn{position:relative;top:-1px;}
.read-all-fab{
  position:fixed;right:22px;bottom:78px;z-index:1400;display:inline-flex;align-items:center;gap:7px;
  padding:11px 18px;border:none;border-radius:999px;background:#1e3a8a;color:#fff;font-size:14px;font-weight:800;
  box-shadow:0 8px 22px rgba(30,58,138,.35);cursor:pointer;font-family:inherit;transition:background .15s;
}
.read-all-fab:hover{background:#1e40af;}
.read-all-fab.speaking{background:#dc2626;}

footer{
  max-width:1280px;margin:0 auto;padding:0 20px 34px;font-size:12.5px;color:#9ca3af;text-align:center;
}

/* ============ 响应式 ============ */
@media (max-width:1024px){
  .layout{grid-template-columns:1fr;}
  .side-col{position:static;}
  .duo{grid-template-columns:1fr;}
  .duo-col.left{border-right:none;border-bottom:1px dashed var(--line);}
  .match-grid{grid-template-columns:1fr;}
  .match-left{border-right:none;border-bottom:1px dashed var(--line);}
}
@media (max-width:640px){
  body{font-size:15px;}
  .hero{padding:22px 16px 26px;}
  .hero h1{font-size:21px;}
  .part-head h2{font-size:17px;}
  .para{padding-left:0;padding-top:34px;}
  .para-tag{position:static;display:inline-flex;margin-bottom:8px;}
  .para-text{font-size:16px;}
  .iv{font-size:15px;}
  .q22-grid{grid-template-columns:repeat(2,1fr);}
  .topnav .nav-item{padding:11px 12px;font-size:13px;}
  .person{padding:10px 46px 10px 40px;}
}
