

:root{
  --ink:#1c2430; --ink2:#4a5568; --line:#dfe8f5; --bg:#f2f7ff; --card:#ffffff;
  --ok:#16a34a; --okbg:#e9f8ef; --no:#dc2626; --nobg:#fdecec;
  --shadow:0 2px 10px rgba(23,43,77,.07);
  --fs:18px;
  /* —— 淡蓝 × 天青 主色板 —— */
  --sky:#dbeafe; --sky2:#bfdbfe; --skyb:#93c5fd; --skyd:#1d4ed8; --skydd:#16389c;
  --mint:#e0f5fc; --mint2:#c4ecf7; --mintb:#7cd4e8; --mintd:#0e7490; --mintdd:#0a5a70;
  --gold:#b45309; --goldbg:#fef3c7;
  --grad-bg:linear-gradient(135deg,#3b82f6,#22c1dc);

  /* —— 语义色板（多彩扩展：每类各有专属色） —— */
  --k1:#2563eb; --k1b:#e8f1ff; --k1l:#a9c8f7; --k1g:linear-gradient(135deg,#3b82f6,#2563eb);
  --k2:#7c3aed; --k2b:#f1ebff; --k2l:#c9b6f7; --k2g:linear-gradient(135deg,#a855f7,#7c3aed);
  --k3:#0d9488; --k3b:#e3f7f4; --k3l:#95ddd4; --k3g:linear-gradient(135deg,#14b8a6,#0d9488);
  --k4:#c2410c; --k4b:#ffede0; --k4l:#f8c39a; --k4g:linear-gradient(135deg,#f97316,#ea580c);
  --k5:#be123c; --k5b:#ffe9ef; --k5l:#f8b4c8; --k5g:linear-gradient(135deg,#f43f5e,#be123c);
  --k6:#4338ca; --k6b:#eaeeff; --k6l:#b3bdf7; --k6g:linear-gradient(135deg,#6366f1,#4338ca);
  --k7:#b45309; --k7b:#fef3c7; --k7l:#f5cf8b; --k7g:linear-gradient(135deg,#f59e0b,#d97706);
  --k8:#0891b2; --k8b:#e0f7fb; --k8l:#8fd9e8; --k8g:linear-gradient(135deg,#22c1dc,#0891b2);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  background:var(--bg); color:var(--ink); -webkit-text-size-adjust:100%}
body::before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(760px 380px at 6% -6%,rgba(191,219,254,.75) 0%,rgba(191,219,254,0) 62%),
    radial-gradient(680px 360px at 96% 2%,rgba(196,236,247,.7) 0%,rgba(196,236,247,0) 60%),
    radial-gradient(620px 420px at 78% 96%,rgba(233,224,255,.55) 0%,rgba(233,224,255,0) 62%),
    radial-gradient(560px 400px at 16% 92%,rgba(211,244,239,.55) 0%,rgba(211,244,239,0) 62%)}
button{font-family:inherit;cursor:pointer}
.hidden{display:none !important}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ============ 语义色（k1 蓝 / k2 紫 / k3 青绿 / k4 橙 / k5 玫红 / k6 靛 / k7 琥珀 / k8 天青） ============ */
.bg-k1{background:#e8f1ff;border-color:#a9c8f7;color:#2563eb}
.bg-k2{background:#f1ebff;border-color:#c9b6f7;color:#7c3aed}
.bg-k3{background:#e3f7f4;border-color:#95ddd4;color:#0d9488}
.bg-k4{background:#ffede0;border-color:#f8c39a;color:#c2410c}
.bg-k5{background:#ffe9ef;border-color:#f8b4c8;color:#be123c}
.bg-k6{background:#eaeeff;border-color:#b3bdf7;color:#4338ca}
.bg-k7{background:#fef3c7;border-color:#f5cf8b;color:#b45309}
.bg-k8{background:#e0f7fb;border-color:#8fd9e8;color:#0891b2}
.fg-k1{color:#2563eb}.fg-k2{color:#7c3aed}.fg-k3{color:#0d9488}.fg-k4{color:#c2410c}
.fg-k5{color:#be123c}.fg-k6{color:#4338ca}.fg-k7{color:#b45309}.fg-k8{color:#0891b2}
.bd-k1{border-color:#a9c8f7}.bd-k2{border-color:#c9b6f7}.bd-k3{border-color:#95ddd4}.bd-k4{border-color:#f8c39a}
.bd-k5{border-color:#f8b4c8}.bd-k6{border-color:#b3bdf7}.bd-k7{border-color:#f5cf8b}.bd-k8{border-color:#8fd9e8}

/* —— 色系换肤：按钮（默认态浅色 / 选中态同色渐变） —— */
.sbtn.k1{background:linear-gradient(180deg,#f4f9ff,#e6f0ff);border-color:#a9c8f7;color:#2563eb}
.sbtn.k1:hover{background:linear-gradient(180deg,#e9f2ff,#d7e6ff);border-color:#3b82f6}
.sbtn.k1.on{background:var(--k1g);border-color:#2563eb;color:#fff}
.sbtn.k1 i,.sbtn.k1 .num{color:#5f8ddb}
.sbtn.k2{background:linear-gradient(180deg,#faf7ff,#f0eaff);border-color:#c9b6f7;color:#7c3aed}
.sbtn.k2:hover{background:linear-gradient(180deg,#f3ecff,#e7dbff);border-color:#a855f7}
.sbtn.k2.on{background:var(--k2g);border-color:#7c3aed;color:#fff}
.sbtn.k2 i,.sbtn.k2 .num{color:#9678d8}
.sbtn.k3{background:linear-gradient(180deg,#f3fdfb,#e5f8f5);border-color:#95ddd4;color:#0d9488}
.sbtn.k3:hover{background:linear-gradient(180deg,#e8faf7,#d5f3ee);border-color:#14b8a6}
.sbtn.k3.on{background:var(--k3g);border-color:#0d9488;color:#fff}
.sbtn.k3 i,.sbtn.k3 .num{color:#4fae9f}
.sbtn.k4{background:linear-gradient(180deg,#fff8f3,#ffeee2);border-color:#f8c39a;color:#c2410c}
.sbtn.k4:hover{background:linear-gradient(180deg,#fff1e7,#ffe3d1);border-color:#f97316}
.sbtn.k4.on{background:var(--k4g);border-color:#ea580c;color:#fff}
.sbtn.k4 i,.sbtn.k4 .num{color:#d98a52}
.sbtn.k5{background:linear-gradient(180deg,#fff7f9,#ffe9ef);border-color:#f8b4c8;color:#be123c}
.sbtn.k5:hover{background:linear-gradient(180deg,#ffeff4,#ffdae4);border-color:#f43f5e}
.sbtn.k5.on{background:var(--k5g);border-color:#be123c;color:#fff}
.sbtn.k5 i,.sbtn.k5 .num{color:#d9698c}
.sbtn.k6{background:linear-gradient(180deg,#f8f9ff,#ecefff);border-color:#b3bdf7;color:#4338ca}
.sbtn.k6:hover{background:linear-gradient(180deg,#f0f3ff,#dde3ff);border-color:#6366f1}
.sbtn.k6.on{background:var(--k6g);border-color:#4338ca;color:#fff}
.sbtn.k6 i,.sbtn.k6 .num{color:#7d86dd}
.sbtn.k7{background:linear-gradient(180deg,#fffcf0,#fef3c7);border-color:#f5cf8b;color:#b45309}
.sbtn.k7:hover{background:linear-gradient(180deg,#fff8e1,#fdeab4);border-color:#f59e0b}
.sbtn.k7.on{background:var(--k7g);border-color:#d97706;color:#fff}
.sbtn.k7 i,.sbtn.k7 .num{color:#cf9a3d}
.sbtn.k8{background:linear-gradient(180deg,#f2fdff,#e0f7fb);border-color:#8fd9e8;color:#0891b2}
.sbtn.k8:hover{background:linear-gradient(180deg,#e8fafe,#cdf0f7);border-color:#22c1dc}
.sbtn.k8.on{background:var(--k8g);border-color:#0891b2;color:#fff}
.sbtn.k8 i,.sbtn.k8 .num{color:#4fb4cc}

.cbtn.k1{background:linear-gradient(180deg,#f6faff,#e9f2ff);border-color:#a9c8f7;color:#2154b8}
.cbtn.k1:hover{background:linear-gradient(180deg,#ecf4ff,#dae8ff);border-color:#3b82f6}
.cbtn.k1.on{background:var(--k1g);border-color:#2563eb;color:#fff}
.cbtn.k2{background:linear-gradient(180deg,#fbf8ff,#f2ecff);border-color:#c9b6f7;color:#6d28d9}
.cbtn.k2:hover{background:linear-gradient(180deg,#f5eeff,#e9ddff);border-color:#a855f7}
.cbtn.k2.on{background:var(--k2g);border-color:#7c3aed;color:#fff}
.cbtn.k3{background:linear-gradient(180deg,#f4fdfb,#e7f9f6);border-color:#95ddd4;color:#0f766e}
.cbtn.k3:hover{background:linear-gradient(180deg,#eafbf8,#d8f4ef);border-color:#14b8a6}
.cbtn.k3.on{background:var(--k3g);border-color:#0d9488;color:#fff}
.cbtn.k4{background:linear-gradient(180deg,#fff9f4,#fff0e5);border-color:#f8c39a;color:#9a3412}
.cbtn.k4:hover{background:linear-gradient(180deg,#fff3ea,#ffe5d4);border-color:#f97316}
.cbtn.k4.on{background:var(--k4g);border-color:#ea580c;color:#fff}
.cbtn.k5{background:linear-gradient(180deg,#fff7f9,#ffeaf0);border-color:#f8b4c8;color:#9f1239}
.cbtn.k5:hover{background:linear-gradient(180deg,#ffeff4,#ffdde7);border-color:#f43f5e}
.cbtn.k5.on{background:var(--k5g);border-color:#be123c;color:#fff}
.cbtn.k6{background:linear-gradient(180deg,#f7f8ff,#ecefff);border-color:#b3bdf7;color:#3730a3}
.cbtn.k6:hover{background:linear-gradient(180deg,#eff2ff,#dfe4ff);border-color:#6366f1}
.cbtn.k6.on{background:var(--k6g);border-color:#4338ca;color:#fff}

/* —— 二级分组眉标按功能位换色 —— */
.sg-sub.k1{color:#2563eb;background:linear-gradient(90deg,#e8f1ff,rgba(232,241,255,.12));border-left-color:#3b82f6}
.sg-sub.k1 .arw{color:#3b82f6}
.sg-sub.k2{color:#7c3aed;background:linear-gradient(90deg,#f1ebff,rgba(241,235,255,.12));border-left-color:#a855f7}
.sg-sub.k2 .arw{color:#a855f7}
.sg-sub.k3{color:#0d9488;background:linear-gradient(90deg,#e3f7f4,rgba(227,247,244,.12));border-left-color:#14b8a6}
.sg-sub.k3 .arw{color:#14b8a6}
.sg-sub.k1:hover{background:linear-gradient(90deg,#dbe9ff,rgba(219,233,255,.2))}
.sg-sub.k2:hover{background:linear-gradient(90deg,#e7dbff,rgba(231,219,255,.2))}
.sg-sub.k3:hover{background:linear-gradient(90deg,#d5f3ee,rgba(213,243,238,.2))}

/* —— 文体小标题换色 —— */
.ghd.k1{color:#2563eb;background:linear-gradient(90deg,rgba(219,234,254,.9),rgba(219,234,254,.12))}
.ghd.k2{color:#7c3aed;background:linear-gradient(90deg,rgba(233,224,255,.9),rgba(233,224,255,.12))}
.ghd.k3{color:#0d9488;background:linear-gradient(90deg,rgba(211,244,239,.9),rgba(211,244,239,.12))}

/* —— 一级分区标题：四个分区各一色 —— */
.sg-h.c1{color:#1d4ed8;background:linear-gradient(90deg,#dbeafe,rgba(219,234,254,.12));border-left-color:#3b82f6}
.sg-h.c2{color:#0e7490;background:linear-gradient(90deg,#e0f5fc,rgba(224,245,252,.12));border-left-color:#22b8d8}
.sg-h.c3{color:#4338ca;background:linear-gradient(90deg,#e8ecff,rgba(232,236,255,.12));border-left-color:#6366f1}
.sg-h.c4{color:#b45309;background:linear-gradient(90deg,#fef3c7,rgba(254,243,199,.12));border-left-color:#f59e0b}
.sg-h.tog.c1:hover{background:linear-gradient(90deg,#cfe2ff,rgba(207,226,255,.2))}
.sg-h.tog.c3:hover{background:linear-gradient(90deg,#dbe2ff,rgba(219,226,255,.2))}

/* —— 顶部栏多彩按钮 —— */
.tbtn.v{border-color:#c9b6f7;background:linear-gradient(180deg,#faf6ff,#efe8ff);color:#7c3aed}
.tbtn.v:hover{background:linear-gradient(180deg,#f3ecff,#e4d8ff);border-color:#a855f7;color:#6d28d9}
.tbtn.r{border-color:#f8b4c8;background:linear-gradient(180deg,#fff7f9,#ffe8ee);color:#be123c}
.tbtn.r:hover{background:linear-gradient(180deg,#ffeff4,#ffdbe5);border-color:#f43f5e;color:#9f1239}
.tbtn.i{border-color:#b3bdf7;background:linear-gradient(180deg,#f8f9ff,#ecefff);color:#4338ca}
.tbtn.i:hover{background:linear-gradient(180deg,#f0f3ff,#dde3ff);border-color:#6366f1;color:#3730a3}


/* ============ 顶部栏 ============ */
#topbar{position:sticky;top:0;z-index:60;height:62px;display:flex;align-items:center;gap:9px;
  padding:0 14px;background:linear-gradient(180deg,#ffffff,#f4f9ff);border-bottom:2px solid var(--sky2);
  box-shadow:0 2px 10px rgba(29,78,216,.07)}
#topbar::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:3px;
  background:linear-gradient(90deg,#3b82f6,#22c1dc,#14b8a6,#f59e0b,#f43f5e,#7c3aed);opacity:.8;
  pointer-events:none}
.tb-logo{font-size:22px;font-weight:900;letter-spacing:2px;white-space:nowrap;
  background:linear-gradient(100deg,#1d4ed8,#0e7490 45%,#7c3aed);-webkit-background-clip:text;background-clip:text;color:transparent}
#progTop{font-size:13.5px;font-weight:800;color:var(--skyd);background:var(--sky);
  border:1.5px solid var(--skyb);border-radius:999px;padding:5px 12px;white-space:nowrap}
#progTop b{color:var(--skydd)}
.tb-sp{flex:1}
.tbtn{border:1.5px solid var(--skyb);background:linear-gradient(180deg,#eef5ff,#dcebfd);color:var(--skyd);
  border-radius:11px;padding:9px 14px;font-size:14.5px;font-weight:700;white-space:nowrap;transition:.15s;
  box-shadow:0 1px 3px rgba(29,78,216,.12)}
.tbtn:hover{border-color:#3b82f6;background:linear-gradient(180deg,#e0edff,#cfe2fc);color:var(--skydd)}
.tbtn.g{border-color:var(--mintb);background:linear-gradient(180deg,#eff9fd,#daf0f9);color:var(--mintd)}
.tbtn.g:hover{background:linear-gradient(180deg,#e0f4fb,#c8e9f6);border-color:#22b8d8;color:var(--mintdd)}
.tbtn.o{border-color:#f5c98d;background:linear-gradient(180deg,#fff6ea,#fde6c9);color:#a8640b}
.tbtn.on{background:var(--grad-bg);border-color:#22c1dc;color:#fff;box-shadow:0 3px 12px rgba(34,193,220,.3)}
.fsbox{display:flex;align-items:center;gap:7px;border:1.5px solid var(--skyb);border-radius:12px;
  padding:4px 8px;background:linear-gradient(180deg,#eff5ff,#e0ebfd)}
.fsbox button{border:1.5px solid #a9c4f5;background:#fff;color:var(--skyd);min-width:46px;height:33px;
  border-radius:9px;font-size:16px;font-weight:900;line-height:1;letter-spacing:.5px;transition:.13s}
.fsbox button:hover{background:var(--grad-bg);color:#fff;border-color:#22c1dc}
.fsbox button:active{transform:scale(.94)}
#clock{border:1.5px solid var(--mintb);border-radius:11px;padding:9px 12px;font-size:15px;font-weight:900;
  color:var(--mintd);letter-spacing:1px;min-width:84px;text-align:center;background:linear-gradient(180deg,#eff9fd,#d9f1f9)}
#clock.run{color:#fff;background:var(--grad-bg);border-color:#22c1dc}
#clock.low{color:#fff;background:linear-gradient(135deg,#f87171,#dc2626);border-color:#dc2626;animation:blink .8s infinite}
@keyframes blink{50%{opacity:.45}}
#burger{display:none}

/* ============ 布局 ============ */
#wrap{display:flex;align-items:flex-start}
#side{position:sticky;top:62px;width:272px;flex:0 0 272px;height:calc(100vh - 62px);overflow-y:auto;
  background:linear-gradient(180deg,#f8fbff,#f3fafd);border-right:2px solid var(--sky2);padding:14px 12px 44px}
.sg{margin-bottom:18px}
.sg-h{font-size:15.5px;font-weight:900;color:var(--mintd);letter-spacing:1.4px;padding:7px 10px;margin-bottom:9px;
  background:linear-gradient(90deg,var(--mint),rgba(224,245,252,.12));border-left:4px solid #22b8d8;border-radius:5px}
.sg-h.tog{cursor:pointer;user-select:none;transition:.13s}
.sg-h.tog:hover{background:linear-gradient(90deg,var(--mint2),rgba(224,245,252,.2))}
.sg-h .hg{margin-left:8px;font-size:12.5px;font-weight:800;color:var(--mintd);
  background:#fff;border:1px solid var(--mintb);border-radius:999px;padding:1px 8px}
.side-close{display:none;align-items:center;justify-content:space-between;padding:2px 8px 12px;
  border-bottom:1px solid var(--line);margin-bottom:12px}
.side-close span{font-size:18px;font-weight:900;color:var(--skyd)}
.side-close button{border:1.5px solid var(--skyb);background:linear-gradient(180deg,#eff5ff,#dcebfd);border-radius:9px;
  padding:7px 13px;font-size:13.5px;font-weight:700;color:var(--skyd)}
.sbtn{display:block;width:100%;text-align:left;border:1.5px solid var(--skyb);
  background:linear-gradient(180deg,#f1f6ff,#e2ecfd);color:var(--skyd);
  border-radius:11px;padding:11px 13px;margin-bottom:9px;font-size:16px;font-weight:700;line-height:1.35;transition:.13s;
  box-shadow:0 1px 3px rgba(29,78,216,.09)}
.sbtn:hover{border-color:#3b82f6;background:linear-gradient(180deg,#e7f0ff,#d5e4fc);color:var(--skydd);transform:translateX(2px)}
.sbtn.on{background:var(--grad-bg);border-color:#22c1dc;color:#fff;font-weight:800;
  box-shadow:0 4px 14px rgba(59,130,246,.32);transform:none}
.sbtn i{font-style:normal;color:#7ea4f0;font-size:15px;margin-right:7px}
.sbtn.on i{color:rgba(255,255,255,.92)}
.sbtn .num{margin-left:8px;font-size:13px;font-weight:800;color:#7ea4f0;
  background:#fff;border:1px solid var(--skyb);border-radius:999px;padding:1px 8px}
.sbtn.on .num{color:var(--skyd);border-color:#fff}

/* —— 二级分组（沿用原设计语言） —— */
.sg-sub{display:flex;align-items:center;gap:8px;cursor:pointer;user-select:none;
  margin:10px 0 8px;padding:6px 10px;font-size:14.5px;font-weight:900;letter-spacing:1px;color:var(--skyd);
  background:linear-gradient(90deg,#eef5ff,rgba(238,245,255,.15));border-left:3px solid #6f9df3;border-radius:5px;
  transition:.13s}
.sg-sub:hover{background:linear-gradient(90deg,#e4efff,rgba(228,239,255,.2))}
.sg-sub .arw{font-size:10.5px;color:#6f9df3;transition:transform .18s;display:inline-block}
.sg-sub.open .arw{transform:rotate(90deg)}
.sg-sub .num{margin-left:auto;font-size:12.5px;font-weight:800;color:var(--skyd);
  background:#fff;border:1px solid var(--skyb);border-radius:999px;padding:1px 8px}
.skids{display:none;padding-left:8px;border-left:2px dotted #cfe0f8;margin-left:6px}
.skids.open{display:block}
.cbtn{display:flex;align-items:center;gap:6px;width:100%;text-align:left;
  border:1.5px solid var(--skyb);background:linear-gradient(180deg,#f7fbff,#eaf2fe);color:#26456f;
  border-radius:10px;padding:8px 11px;margin-bottom:7px;font-size:14.5px;font-weight:700;line-height:1.35;transition:.13s}
.cbtn:hover{border-color:#3b82f6;background:linear-gradient(180deg,#edf4ff,#dbe9fd);transform:translateX(2px)}
.cbtn.on{background:var(--grad-bg);border-color:#22c1dc;color:#fff;font-weight:800;
  box-shadow:0 3px 12px rgba(59,130,246,.3);transform:none}
.cbtn .num{margin-left:auto;font-size:12.5px;font-weight:800;color:#7ea4f0;background:#fff;
  border:1px solid var(--skyb);border-radius:999px;padding:1px 8px}
.cbtn.on .num{color:var(--skyd);border-color:#fff}
.cbtn.k1:not(.on) .num{color:#2563eb;border-color:#a9c8f7}
.cbtn.k2:not(.on) .num{color:#7c3aed;border-color:#c9b6f7}
.cbtn.k3:not(.on) .num{color:#0d9488;border-color:#95ddd4}
.cbtn.k4:not(.on) .num{color:#c2410c;border-color:#f8c39a}
.cbtn.k5:not(.on) .num{color:#be123c;border-color:#f8b4c8}
.cbtn.k6:not(.on) .num{color:#4338ca;border-color:#b3bdf7}
/* 难度星：天青 / 青绿 / 琥珀 / 玫红 */
.ds{font-size:11.5px;letter-spacing:.5px;font-weight:900;white-space:nowrap;flex:0 0 auto}
.ds.k8{color:#0891b2}.ds.k3{color:#0d9488}.ds.k7{color:#d97706}.ds.k5{color:#e11d48}
.cbtn.on .ds{color:#fff !important}
/* 左侧色条：篇目/题型按钮一眼分辨所属维度 */
.cbtn.k1{border-left:4px solid #93c5fd}
.cbtn.k2{border-left:4px solid #c4b5fd}
.cbtn.k3{border-left:4px solid #7dd3c8}
.cbtn.k4{border-left:4px solid #fdba74}
.cbtn.k5{border-left:4px solid #fda4ba}
.cbtn.k6{border-left:4px solid #a5b4fc}
.cbtn.on{border-left-color:rgba(255,255,255,.92)}
.cbtn .gh{color:#7ea4f0;font-weight:900}
.skids .ghd{display:flex;align-items:center;gap:8px;padding:5px 10px;margin:6px 0 6px;
  font-size:13px;font-weight:900;color:#3f6cae;letter-spacing:1px;
  background:linear-gradient(90deg,rgba(219,234,254,.85),rgba(219,234,254,.15));border-radius:5px}
.skids .ghd .num{margin-left:auto;font-size:12px;font-weight:800;color:var(--skyd);background:#fff;
  border:1px solid var(--skyb);border-radius:999px;padding:0 7px}

#main{flex:1;min-width:0;padding:18px 22px 90px}
.empty{background:linear-gradient(180deg,#ffffff,#eaf2ff);border:2px dashed var(--skyb);border-radius:16px;
  padding:60px 24px;text-align:center;color:#6d84a6;font-size:17.5px;line-height:2}
.empty b{color:var(--skyd);font-size:21px}

/* ============ 语篇区 ============ */
#qhead{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px}
#qtitle{font-size:25px;font-weight:900;letter-spacing:.5px;color:#1e2a4a;font-family:"Times New Roman",Georgia,serif}
#qmeta{font-size:14.5px;color:var(--mintd);background:linear-gradient(180deg,#eff9fd,#dcf2f9);
  border:1.5px solid var(--mintb);border-radius:999px;padding:6px 15px}
#qtags{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.qtag{font-size:13.5px;font-weight:800;color:var(--skyd);background:linear-gradient(180deg,#f1f6ff,#e2ecfd);
  border:1.5px solid var(--skyb);border-radius:999px;padding:5px 13px}
.qtag.src{color:var(--mintd);border-color:var(--mintb);background:linear-gradient(180deg,#eff9fd,#dcf2f9)}
.qtag.gt{font-weight:900}
.qtag.k1{color:#2563eb;border-color:#a9c8f7;background:linear-gradient(180deg,#f3f8ff,#e6f0ff)}
.qtag.k2{color:#7c3aed;border-color:#c9b6f7;background:linear-gradient(180deg,#faf7ff,#f1ebff)}
.qtag.k3{color:#0d9488;border-color:#95ddd4;background:linear-gradient(180deg,#f3fdfb,#e3f7f4)}
.qtag.k4{color:#c2410c;border-color:#f8c39a;background:linear-gradient(180deg,#fff9f4,#ffede0)}
.qtag.k5{color:#be123c;border-color:#f8b4c8;background:linear-gradient(180deg,#fff7f9,#ffe9ef)}
.qtag.k6{color:#4338ca;border-color:#b3bdf7;background:linear-gradient(180deg,#f8f9ff,#eaeeff)}
.qtag.k7{color:#b45309;border-color:#f5cf8b;background:linear-gradient(180deg,#fffcf0,#fef3c7)}
.qtag.k8{color:#0891b2;border-color:#8fd9e8;background:linear-gradient(180deg,#f2fdff,#e0f7fb)}

#passage{background:var(--card);border:1.5px solid #d5e2f8;border-radius:14px;
  padding:26px 30px;box-shadow:var(--shadow);font-size:var(--fs);line-height:1.9;color:#232c40;
  font-family:"Times New Roman",Georgia,"Songti SC",serif}
#passage p{margin:0 0 1em}
#passage p:last-child{margin-bottom:0}
.blank{font-family:"Times New Roman",Georgia,serif;display:inline-block;width:2.4em;text-align:center;
  font-size:.9em;font-weight:900;color:var(--skyd);background:var(--sky);border:1.5px solid var(--skyb);
  border-radius:.45em;padding:0 .18em;line-height:1.4;vertical-align:baseline;text-transform:uppercase;transition:.13s}
.blank:focus{outline:none;border-color:#3b82f6;background:#eaf1ff;box-shadow:0 0 0 3px rgba(59,130,246,.14)}
.blank.right{color:#fff;background:var(--ok);border-color:var(--ok)}
.blank.wrong{color:#fff;background:var(--no);border-color:var(--no)}
.blank.shake{animation:shake .3s}
@keyframes shake{25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}
.mk{font-size:.72em;font-weight:900;margin-left:.2em;vertical-align:baseline}
.mk.ok{color:var(--ok)} .mk.no{color:var(--no)}
.pno{font-size:.72em;color:#8291bb;font-weight:800;vertical-align:.18em;margin-right:.18em}
.pno.k1{color:#3b82f6}.pno.k2{color:#a855f7}.pno.k3{color:#14b8a6}

#opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px;margin-top:16px}
.opt{background:var(--card);border:1.5px solid #d5e2f8;border-radius:12px;padding:12px 14px;
  font-size:calc(var(--fs) * .84);line-height:1.8;cursor:pointer;transition:.13s;box-shadow:var(--shadow);
  font-family:"Times New Roman",Georgia,serif;color:#2a3450}
.opt b{color:var(--skyd);margin-right:.4em}
.opt:hover{border-color:#6f9df3;transform:translateY(-1px)}
.opt.used{opacity:.38;border-color:#c9d3ec}
.opt.hit{border-color:var(--ok);background:var(--okbg)}
.opt.hit.used{opacity:1}

/* ============ 提示与解析区 ============ */
#expls{margin-top:16px;display:flex;flex-direction:column;gap:10px}
#summary{background:linear-gradient(90deg,#fffbeb,#fef6e0);border:1.5px solid #f2d9a0;border-radius:12px;
  padding:12px 16px;font-size:15px;font-weight:700;color:var(--gold);display:flex;align-items:center;gap:12px;flex-wrap:wrap}
#summary .sok{color:var(--ok)}
.chip{display:inline-flex;align-items:center;font-size:13px;font-weight:900;
  border-radius:999px;padding:3px 11px;border:1.5px solid transparent;white-space:nowrap;margin:2px 3px}
.chip.k1{color:#1d4ed8;background:#dbeafe;border-color:#a9c8f7}
.chip.k2{color:#6d28d9;background:#ede9fe;border-color:#c9b6f7}
.chip.k3{color:#0f766e;background:#ccfbf1;border-color:#95ddd4}
.chip.k4{color:#9a3412;background:#ffedd5;border-color:#f8c39a}
.chip.k5{color:#9f1239;background:#ffe4e6;border-color:#f8b4c8}
.chip.k6{color:#3730a3;background:#e0e7ff;border-color:#b3bdf7}
.chip.k7{color:#92400e;background:#fef3c7;border-color:#f5cf8b}
.chip.k8{color:#155e75;background:#cffafe;border-color:#8fd9e8}
.exblock{background:var(--card);border:1.5px dashed var(--skyb);border-radius:12px;padding:12px 16px;
  font-size:calc(var(--fs) * .8);line-height:1.85;color:#3d4763;display:none}
.exblock.show{display:block}
.exhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:4px}
.extag{font-size:.82em;font-weight:900;color:var(--skyd);background:var(--sky);border-radius:6px;padding:.2em .6em}
.extag.k{color:var(--mintd);background:var(--mint)}
.extag.k1{color:#1d4ed8;background:#dbeafe}
.extag.k2{color:#6d28d9;background:#ede9fe}
.extag.k3{color:#0f766e;background:#ccfbf1}
.extag.k4{color:#9a3412;background:#ffedd5}
.extag.k5{color:#9f1239;background:#ffe4e6}
.extag.k6{color:#3730a3;background:#e0e7ff}
.extag.k7{color:#92400e;background:#fef3c7}
.extag.k8{color:#155e75;background:#cffafe}
.ansL{font-weight:900;color:var(--ok)}
.hintbar{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0}
.hbtn{border:1.5px solid var(--skyb);background:linear-gradient(180deg,#fff,#f4f9ff);color:var(--skyd);
  border-radius:8px;padding:5px 11px;font-size:.86em;font-weight:800}
.hbtn:hover{border-color:#3b82f6}
.hbtn:disabled{opacity:.45;cursor:not-allowed}
.hintitem{display:none;background:#fffdf4;border:1px solid #f2e6bd;border-radius:8px;
  padding:7px 12px;margin-top:5px;color:#6b5416}
.hintitem.show{display:block}
.favBtn{margin-top:8px;border:1.5px solid var(--skyb);background:#fff;border-radius:8px;
  padding:5px 12px;font-size:.86em;font-weight:700;color:var(--skyd)}
.favBtn.add{border-color:#f2c063;background:#fff8e8;color:#9a6a08}

/* ============ 底部栏 ============ */
#footbar{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;align-items:center;gap:12px;
  padding:11px 18px;background:linear-gradient(180deg,#ffffff,#f1f6ff);border-top:2px solid var(--sky2);
  box-shadow:0 -4px 18px rgba(29,78,216,.08)}
#footbar[hidden]{display:none}
#progress{font-size:15px;color:#4a5568;font-weight:700;white-space:nowrap}
#progress b{color:var(--skyd)}
#score{font-size:15px;color:#4a5568;font-weight:700;white-space:nowrap}
#score .so{color:var(--ok)} #score .sx{color:var(--no)}
.sp{flex:1}
.big{border:none;border-radius:12px;padding:11px 18px;font-size:15.5px;font-weight:800;letter-spacing:1px;transition:.15s;white-space:nowrap}
.big.pri{background:var(--grad-bg);color:#fff;box-shadow:0 3px 12px rgba(59,130,246,.3)}
.big.gray{border:1.5px solid var(--skyb);background:linear-gradient(180deg,#eff5ff,#e0ebfd);color:var(--skyd)}
.big.red{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 3px 12px rgba(220,38,38,.28)}
.big.pk{background:var(--k2g);color:#fff;box-shadow:0 3px 12px rgba(124,58,237,.28)}
.big.tl{background:var(--k3g);color:#fff;box-shadow:0 3px 12px rgba(13,148,136,.28)}
.big.am{background:var(--k4g);color:#fff;box-shadow:0 3px 12px rgba(234,88,12,.28)}
.big.vi{background:var(--k6g);color:#fff;box-shadow:0 3px 12px rgba(67,56,202,.28)}
.big:hover{transform:translateY(-1px)}

/* ============ 弹窗 ============ */
#mask{position:fixed;inset:0;z-index:100;background:rgba(28,36,48,.46);display:flex;align-items:center;justify-content:center;padding:18px}
#mask.hidden{display:none}
#modal{background:#fff;border-radius:16px;width:min(760px,94vw);max-height:86vh;display:flex;flex-direction:column;box-shadow:0 18px 60px rgba(0,0,0,.25)}
.mhead{display:flex;align-items:center;gap:10px;padding:16px 20px;border-bottom:1.5px solid var(--line)}
#mkTitle{font-size:19px;font-weight:900;color:var(--skyd);flex:1}
.mbtn{border:1.5px solid var(--skyb);background:linear-gradient(180deg,#eff5ff,#e0ebfd);color:var(--skyd);
  border-radius:10px;padding:8px 14px;font-size:13.5px;font-weight:700}
.mbtn.r{border-color:#f3b4b4;background:#fdecec;color:#b91c1c}
#mBody{overflow-y:auto;padding:14px 20px 20px}
.mitem{border:1.5px solid var(--line);border-radius:12px;padding:12px 16px;margin-bottom:12px;background:#fafcff}
.ms{font-size:15px;line-height:1.9;color:#232c40;font-family:"Times New Roman",Georgia,"Songti SC",serif}
.ms b{color:var(--skyd)}
.ma{margin-top:6px;font-size:14px;font-weight:800;color:var(--ok)}
.me{margin-top:4px;font-size:13.5px;line-height:1.8;color:#4a5568;white-space:pre-line}
.mbar{margin-top:8px;text-align:right}
.mbar button{border:1.5px solid var(--line);background:#fff;border-radius:9px;padding:6px 12px;font-size:12.5px;font-weight:700;color:#6d84a6}
.mbar button:hover{border-color:#f3b4b4;color:#b91c1c}
.mempty{padding:40px 20px;text-align:center;color:#8291bb;font-size:15.5px;line-height:2}

/* ============ 提示条 ============ */
#toast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%);z-index:200;
  background:rgba(28,36,48,.93);color:#fff;padding:12px 22px;border-radius:11px;font-size:15px;
  max-width:82vw;text-align:center;box-shadow:0 8px 24px rgba(0,0,0,.25)}
#toast.hidden{display:none}

@media (max-width: 860px){
  #burger{display:block}
  #side{position:fixed;left:0;top:62px;z-index:70;transform:translateX(-104%);transition:transform .22s;box-shadow:8px 0 30px rgba(28,36,48,.16)}
  #side.open{transform:none}
  .side-close{display:flex}
  #main{padding:14px 12px 90px}
  #passage{padding:18px 16px}
  .tb-logo{font-size:18px}
  .fsbox{display:none}
  .blank{font-size:16px !important;min-width:2.6em}
  .big{padding:10px 13px;font-size:14.5px}
  #footbar{gap:8px;padding:10px 12px}
}

/* 窄屏顶栏：按钮不换行（#topbar 是 62px 定高 sticky，换行会被裁），
   让顶栏**自身**横向滚动 —— 否则整页 document 被撑宽，右侧出现整页横向滚动条，
   且「导出」按钮彻底点不到。滚动条隐藏，触屏/触控板可直接横滑。
   底部那根渐变线用 ::after 绝对定位，在滚动容器里会随内容滚动，
   这里改用 fixed 定位 + 100vw 宽，保证始终铺满可视宽度。 */
@media (max-width: 700px){
  #topbar{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none}
  #topbar::-webkit-scrollbar{height:0;display:none}
  #topbar::after{position:fixed;left:0;right:auto;width:100vw;top:60px}
}


/* ==================== 阅读理解提分器特有 ==================== */
:root{ --fs:18px; --cfs:1; }

/* base.css 只定义了 .cbtn.k1~k6，而定位方式 special(k7)/顺序(k6)
   与证据距离 whole(k7) 会用到 k7/k8 —— 必须补齐，否则左栏这两个维度
   的彩色左边条会消失、选中态退化成默认灰。 */
.cbtn.k7{background:linear-gradient(180deg,#fffdf3,#fef7e2);border-color:#f5cf8b;color:#92400e}
.cbtn.k7:hover{background:linear-gradient(180deg,#fff9e6,#fdefc4);border-color:#f59e0b}
.cbtn.k7.on{background:var(--k7g);border-color:#d97706;color:#fff}
.cbtn.k7:not(.on) .num{color:#b45309;border-color:#f5cf8b}
.cbtn.k8{background:linear-gradient(180deg,#f3fdff,#e2f8fc);border-color:#8fd9e8;color:#155e75}
.cbtn.k8:hover{background:linear-gradient(180deg,#e9fbfe,#d0f2f9);border-color:#22c1dc}
.cbtn.k8.on{background:var(--k8g);border-color:#0891b2;color:#fff}
.cbtn.k8:not(.on) .num{color:#0891b2;border-color:#8fd9e8}
.cbtn.k7{border-left:4px solid #fcd34d}
.cbtn.k8{border-left:4px solid #67e8f9}

/* —— 篇卡片（主区列表） —— */
.plist{display:flex;flex-direction:column;gap:12px}
.pcard2{background:var(--card);border:1.5px solid #d5e2f8;border-left:5px solid var(--skyb);
  border-radius:14px;padding:14px 18px;box-shadow:var(--shadow);cursor:pointer;transition:.14s}
.pcard2:hover{border-color:#6f9df3;transform:translateY(-1px);box-shadow:0 6px 20px rgba(29,78,216,.13)}
.pcard2 .ph{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:7px}
.pcard2 .pt{font-size:17px;font-weight:900;color:#1e2a4a;letter-spacing:.3px}
.pcard2 .pv{font-size:13px;font-weight:800;color:var(--mintd);background:linear-gradient(180deg,#eff9fd,#dcf2f9);
  border:1.5px solid var(--mintb);border-radius:999px;padding:3px 11px}
.pcard2 .psm{font-size:14px;line-height:1.75;color:#4a5568;margin:4px 0 8px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pcard2 .pr{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pcard2 .go{margin-left:auto;font-size:13.5px;font-weight:900;color:var(--skyd);
  background:linear-gradient(180deg,#eef5ff,#dcebfd);border:1.5px solid var(--skyb);border-radius:9px;padding:5px 13px}

/* —— 答题页头 —— */
.qhead2{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px}
.qhead2 .bk{border:1.5px solid var(--skyb);background:linear-gradient(180deg,#f1f6ff,#e2ecfd);color:var(--skyd);
  border-radius:10px;padding:7px 14px;font-size:14px;font-weight:800}
.qhead2 .ttl{font-size:24px;font-weight:900;color:#1e2a4a;font-family:"Times New Roman",Georgia,serif;letter-spacing:.4px}
.sum2{background:linear-gradient(90deg,#fffbeb,#fef6e0);border:1.5px solid #f2d9a0;border-radius:12px;
  padding:11px 15px;font-size:15px;font-weight:700;line-height:1.8;color:var(--gold);margin-bottom:14px}

/* —— 正文句span —— */
#passage p{margin:0 0 .85em}
.sn{border-radius:4px;padding:.06em .06em;transition:background .13s,box-shadow .13s}
#passage.locate .sn{cursor:pointer}
#passage.locate .sn:hover{background:#eaf1ff;box-shadow:0 0 0 2px #cfe0fb}
/* 证据句着色走 .sn 内联 style（--kNb/--kNl），此处只留定位训练的三档判定 */
.sn.hit,.sn.v-hit{background:#dcfce7;box-shadow:0 0 0 2px #86efac}
.sn.miss,.sn.v-miss{background:#fee2e2;box-shadow:0 0 0 2px #fca5a5}
.sn.v-near{background:#fef3c7;box-shadow:0 0 0 2px #f5cf8b}
.sn.ev-same{background:#e8f1ff;box-shadow:0 0 0 2px #a9c8f7;border-radius:5px}
.sn.ev-near{background:#e3f7f4;box-shadow:0 0 0 2px #95ddd4;border-radius:5px}
.sn.ev-cross{background:#ffede0;box-shadow:0 0 0 2px #f8c39a;border-radius:5px}
.sn.ev-whole{background:#fef3c7;box-shadow:0 0 0 2px #f5cf8b;border-radius:5px}
.sn.dim{opacity:.34}

/* —— 题目卡 —— */
.qcards{display:flex;flex-direction:column;gap:14px;margin-top:18px}
.qcard{background:var(--card);border:1.5px solid #d5e2f8;border-radius:14px;padding:16px 18px;box-shadow:var(--shadow)}
.qcard .qh{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:9px}
.qno2{font-family:"Times New Roman",Georgia,serif;font-size:.92em;font-weight:900;color:#fff;
  background:var(--grad-bg);border-radius:8px;padding:3px 11px;letter-spacing:.5px;cursor:pointer}
.qno2:hover{filter:brightness(1.08)}
.stem{font-size:calc(var(--fs) * .96);line-height:1.8;color:#1e2a4a;font-family:"Times New Roman",Georgia,serif;
  font-weight:600;margin-bottom:10px}
/* 选项网格：默认 2×2（选项普遍不长，2 列最稳），长选项走单列 */
.ogrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.ogrid.one{grid-template-columns:1fr}
.optx{background:#fcfeff;border:1.5px solid #d5e2f8;border-radius:11px;padding:10px 13px;
  font-size:calc(var(--fs) * .86);line-height:1.75;cursor:pointer;transition:.13s;
  font-family:"Times New Roman",Georgia,serif;color:#2a3450;display:flex;gap:8px;align-items:flex-start}
.optx b{color:var(--skyd);font-family:-apple-system,"Microsoft YaHei",sans-serif;flex:0 0 auto}
.optx:hover{border-color:#6f9df3;background:#f6faff}
.optx.sel{border-color:#3b82f6;background:#eef5ff}
.optx.ok{border-color:var(--ok);background:var(--okbg)}
.optx.no{border-color:var(--no);background:var(--nobg)}
.optx.locked{cursor:default}
.qfoot{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:11px;padding-top:10px;border-top:1px dashed #dbe7f7}
.qfoot .lb{font-size:13.5px;font-weight:800;color:var(--skyd)}
.qfoot button{border:1.5px solid var(--skyb);background:linear-gradient(180deg,#fff,#f4f9ff);color:var(--skyd);
  border-radius:9px;padding:6px 13px;font-size:13.5px;font-weight:800}
.qfoot button:hover{border-color:#3b82f6}
.exbox{display:none;margin-top:11px;background:#fbfdff;border:1.5px dashed var(--skyb);border-radius:11px;
  padding:11px 14px;font-size:calc(var(--fs) * .82);line-height:1.85;color:#3d4763}
.exbox.show{display:block}
.exbox .et{font-size:13px;font-weight:900;color:var(--skyd);background:var(--sky);border-radius:6px;
  padding:1px 9px;display:inline-block;margin-bottom:6px}
.exbox .ev{margin-top:7px;padding:8px 11px;border-radius:9px;background:#f2f8ff;border-left:4px solid var(--skyb);
  font-family:"Times New Roman",Georgia,serif;color:#243a63}
.tagline{display:flex;gap:6px;flex-wrap:wrap;align-items:center}

/* —— 题卡（全屏） —— */
#pcard{position:fixed;inset:0;z-index:120;background:rgba(28,36,48,.42);display:flex;align-items:center;justify-content:center;padding:14px}
#pcard.hidden{display:none}
.pc-box{background:#fff;border-radius:16px;width:min(1080px,96vw);max-height:min(94vh,100%);
  display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.26);overflow:hidden}
.pc-hd{display:flex;align-items:center;gap:10px;padding:13px 18px;border-bottom:1.5px solid var(--line);flex:0 0 auto}
.pc-tag{font-family:"Times New Roman",Georgia,serif;font-weight:900;color:#fff;background:var(--grad-bg);
  border-radius:8px;padding:3px 12px;font-size:.95em}
.pc-title{font-size:19px;font-weight:900;color:var(--skyd);flex:1;min-width:0}
.pc-hint{font-size:12.5px;color:#8291bb;white-space:nowrap}
.pc-fs{display:flex;align-items:center;gap:5px}
.pcfs{border:1.5px solid var(--skyb);background:#fff;color:var(--skyd);border-radius:8px;
  min-width:42px;height:30px;font-size:15px;font-weight:900;line-height:1}
.pcfs:hover{background:var(--grad-bg);color:#fff;border-color:#22c1dc}
.pcfs-pct{border:none;background:transparent;font-size:13px;font-weight:900;color:var(--skyd);min-width:48px}
.pc-x{border:1.5px solid #f3b4b4;background:#fdecec;color:#b91c1c;border-radius:9px;
  min-width:34px;height:32px;font-size:15px;font-weight:900}
.pc-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:14px 18px;font-size:calc(var(--fs) * var(--cfs))}
.pc-fix{flex:0 0 auto;border-top:1.5px solid var(--line);padding:10px 18px;background:#fbfdff}
.pc-nav{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:8px}
.pc-nav button{border:1.5px solid var(--skyb);background:#fff;color:var(--skyd);border-radius:8px;
  padding:5px 11px;font-size:13px;font-weight:800}
.pc-nav button.on{background:var(--grad-bg);color:#fff;border-color:#22c1dc}

/* 定位训练 */
.locbox{background:linear-gradient(180deg,#f7fbff,#eef6ff);border:1.5px solid #cfe0fb;border-radius:12px;
  padding:12px 15px;margin-bottom:12px}
.locbox .lt{font-size:14.5px;font-weight:900;color:var(--skyd);margin-bottom:7px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.locbox .li{font-size:14px;line-height:1.85;color:#3d4763}
.locbox .rs{font-size:14.5px;font-weight:900;margin-top:7px}
.locbox .rs.ok{color:var(--ok)} .locbox .rs.near{color:#b45309} .locbox .rs.bad{color:var(--no)}
.btn-s{border:1.5px solid var(--skyb);background:linear-gradient(180deg,#fff,#f2f8ff);color:var(--skyd);
  border-radius:9px;padding:6px 13px;font-size:13.5px;font-weight:800;margin-right:7px}
.btn-s:hover{border-color:#3b82f6}
.btn-s.pri{background:var(--grad-bg);color:#fff;border-color:#22c1dc}

/* 证据句对照 */
.cmp{display:grid;grid-template-columns:1fr;gap:8px}
.cmp .row{display:grid;grid-template-columns:88px 1fr;gap:10px;align-items:start;
  border:1.5px solid #e2ecfb;border-radius:10px;padding:9px 12px;background:#fff}
.cmp .row .k{font-size:13px;font-weight:900;color:#fff;border-radius:7px;padding:2px 8px;text-align:center}
.cmp .row .v{font-size:14.5px;line-height:1.85;color:#243a63;font-family:"Times New Roman",Georgia,serif}
.cmp .row .v em{font-style:normal;background:#fef3c7;border-radius:4px;padding:0 3px;font-weight:800}
.cmp .row.zh .v{font-family:-apple-system,"Microsoft YaHei",sans-serif;font-size:14px;color:#3d4763}

/* 干扰项诊断 */
.dx{margin-top:11px}
.dx .row{display:grid;grid-template-columns:30px 1fr auto;gap:9px;align-items:start;
  border:1.5px solid #e2ecfb;border-radius:10px;padding:9px 12px;background:#fff;margin-bottom:7px}
.dx .row.ok{border-color:#a7e0bb;background:#f4fdf7}
.dx .row .l{font-weight:900;color:var(--skyd);font-family:"Times New Roman",Georgia,serif}
.dx .row .x{font-size:14.5px;line-height:1.8;color:#243a63;font-family:"Times New Roman",Georgia,serif}
.dx .row .r{font-size:12.5px;font-weight:900;border-radius:999px;padding:2px 10px;white-space:nowrap;border:1.5px solid transparent}
.dx .why{grid-column:2 / span 2;font-size:13px;line-height:1.8;color:#4a5568;margin-top:3px}
.dx .why .src{font-size:11.5px;font-weight:900;border-radius:6px;padding:1px 7px;margin-left:6px;
  border:1.5px solid var(--skyb);color:var(--skyd);background:#f2f8ff}
.dx .why .src.rule{border-color:#f5cf8b;color:#b45309;background:#fffbeb}
.dx .why .src.chk{border-color:#f3b4b4;color:#b91c1c;background:#fdecec}

/* 关联高亮图例 */
.lg{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin:0 0 12px;font-size:13.5px}
.lg .li2{display:inline-flex;align-items:center;gap:6px;font-weight:800;color:#3d4763}
.lg .sw{width:15px;height:15px;border-radius:5px;border:1.5px solid transparent}
.lg button{border:1.5px solid var(--skyb);background:#fff;color:var(--skyd);border-radius:8px;padding:5px 11px;
  font-size:13px;font-weight:800}
.lg button.on{background:var(--grad-bg);color:#fff;border-color:#22c1dc}
.ptip2{font-size:13.5px;color:#6d84a6;background:#f7fbff;border:1.5px dashed var(--skyb);border-radius:10px;
  padding:8px 13px;margin-bottom:12px;line-height:1.8}

/* 弹窗（错题本 / 笔记本 / 导出） */
.mhead .mkt{font-size:17px;font-weight:900;color:#1e2a4a;flex:1;min-width:0}
#mBody{padding:14px 20px;overflow-y:auto}
#mBody .big{display:block;width:100%;text-align:center;margin-bottom:10px}

/* 卡片底部作答区（固定在 .pc-fix 内，任何字号档位都无需滚动即可作答） */
#pcOpts{max-height:min(40vh,330px);overflow-y:auto;border-top:1px dashed #dbe7f7;margin-top:7px;padding-top:8px}
.pc-abt{font-size:12.5px;font-weight:900;color:var(--skyd);letter-spacing:.6px;margin-bottom:6px}
#pcOpts .ogrid{gap:7px}
#pcOpts .optx{padding:8px 11px}

/* 侧栏 chip 选中态（.chip.on 在 base.css 里没有定义） */
.chip.on{outline:2px solid currentColor;outline-offset:1px;font-weight:900}
.chip[style*="cursor"]{cursor:pointer}

/* 篇内题目卡：段间距与阅读节奏 */
#passage + .qcards{margin-top:16px}
.qcard .stem{margin-bottom:9px}
.qcard .ogrid + .qfoot{margin-top:12px}

@media (max-width:860px){
  .pc-body{padding:12px 12px}
  .pc-hint{display:none}
  .cmp .row{grid-template-columns:70px 1fr}
  .ogrid{grid-template-columns:1fr}
  #pcOpts{max-height:min(34vh,260px)}
}

/* ============ 账户按钮 + 登录 / 注册弹窗 ============ */
.tbtn.acct{border-color:#a9c8f7;background:linear-gradient(180deg,#f4f9ff,#e6f0ff);color:#2563eb}
.tbtn.acct:hover{background:linear-gradient(180deg,#e9f2ff,#d7e6ff);border-color:#3b82f6;color:#16389c}
.tbtn.acct.on{border-color:#7cd4e8;background:linear-gradient(180deg,#eafafe,#d3f1f9);color:#0e7490}

#loginMask{position:fixed;inset:0;z-index:120;background:rgba(28,36,48,.5);display:flex;align-items:center;justify-content:center;padding:18px}
#loginMask.hidden{display:none}
#loginModal{background:#fff;border-radius:18px;width:min(420px,94vw);box-shadow:0 22px 70px rgba(0,0,0,.3);overflow:hidden}
.lm-head{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1.5px solid var(--line);
  background:linear-gradient(135deg,#e6f0ff,#dcf2f9)}
#lmTitle{font-size:18px;font-weight:900;color:#1d4ed8;flex:1}
.lm-head .mbtn{border:1.5px solid var(--skyb);background:#fff;color:var(--skyd);border-radius:9px;padding:6px 11px;font-size:14px;font-weight:800}
.lm-tabs{display:flex;gap:6px;padding:14px 18px 0}
.lmt{flex:1;border:1.5px solid var(--skyb);background:linear-gradient(180deg,#f4f9ff,#e6f0ff);color:#2563eb;
  border-radius:10px 10px 0 0;padding:9px 4px;font-size:14px;font-weight:700}
.lmt.on{background:var(--grad-bg);border-color:#22c1dc;color:#fff;box-shadow:0 2px 10px rgba(34,193,220,.25)}
.lm-body{padding:16px 18px 20px;display:flex;flex-direction:column;gap:11px}
.lmi{width:100%;border:1.5px solid var(--skyb);border-radius:11px;padding:12px 14px;font-size:15.5px;color:#232c40;
  background:#fbfdff;outline:none}
.lmi:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.15)}
.lmi::placeholder{color:#9fb0d0}
.lm-otp{display:flex;gap:9px}
.lm-otp .lmi{flex:1}
.lmi-btn{flex:0 0 auto;border:1.5px solid #7cd4e8;background:linear-gradient(180deg,#eff9fd,#daf0f9);color:#0e7490;
  border-radius:11px;padding:0 14px;font-size:14px;font-weight:800;white-space:nowrap}
.lmi-btn:hover{background:linear-gradient(180deg,#e0f4fb,#c8e9f6);border-color:#22b8d8}
.lmi-btn:disabled{opacity:.55;cursor:not-allowed}
.lm-tip{font-size:13px;color:var(--mintd);min-height:16px}
.lm-err{font-size:13.5px;color:#dc2626;min-height:18px;line-height:1.5}
.lm-submit{border:none;border-radius:12px;padding:13px;font-size:16px;font-weight:900;color:#fff;
  background:var(--grad-bg);box-shadow:0 6px 18px rgba(34,193,220,.32)}
.lm-submit:hover{filter:brightness(1.04)}
.lm-foot{text-align:center}
#lmForgot{color:#2563eb;font-size:13.5px;text-decoration:none}
#lmForgot:hover{text-decoration:underline}

