/* ============================================================
   考研速查 · 数学二 + 408
   深色为主，可切浅色；公式排版不依赖任何外部字体/脚本
   ============================================================ */

:root{
  --bg:#0b0f14;
  --panel:#121821;
  --panel-2:#171f29;
  --panel-3:#1d2733;
  --line:#243040;
  --line-2:#33445a;
  --text:#e9eff7;
  --text-2:#c2cedd;
  --muted:#8797aa;
  --accent:#5aa9ff;
  --accent-dim:rgba(90,169,255,.14);
  --teal:#3ddc97;
  --amber:#ffb84d;
  --red:#ff7b72;
  --purple:#b79cff;
  --radius:16px;
  --radius-sm:10px;
  --shadow:0 10px 30px rgba(0,0,0,.35);
  --sidebar-w:288px;
  --font-math:"Cambria Math","Latin Modern Math","Times New Roman","Microsoft YaHei",serif;
  --font-ui:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei","Hiragino Sans GB",sans-serif;
}

html[data-theme="light"]{
  --bg:#f2f5f9;
  --panel:#ffffff;
  --panel-2:#f5f8fc;
  --panel-3:#eaf0f7;
  --line:#dde5ef;
  --line-2:#c3d1e2;
  --text:#16202c;
  --text-2:#3d4c5e;
  --muted:#6b7c90;
  --accent:#1f6fd0;
  --accent-dim:rgba(31,111,208,.1);
  --teal:#12996b;
  --amber:#b46b00;
  --red:#c93c33;
  --purple:#6b4fd8;
  --shadow:0 8px 24px rgba(23,43,77,.08);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;background:var(--bg);color:var(--text);
  font-family:var(--font-ui);font-size:15px;line-height:1.7;
  -webkit-font-smoothing:antialiased;overflow:hidden;
}
button{font-family:inherit}
b,strong{font-weight:650}

/* ---------------- 布局 ---------------- */
#app{display:flex;height:100vh;overflow:hidden}
#sidebar{
  width:var(--sidebar-w);flex:0 0 var(--sidebar-w);
  background:var(--panel);border-right:1px solid var(--line);
  display:flex;flex-direction:column;z-index:50;
}
#main{flex:1;display:flex;flex-direction:column;min-width:0}
#view{flex:1;overflow-y:auto;padding:24px 30px 100px;scroll-behavior:smooth}
#view::-webkit-scrollbar{width:10px}
#view::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:5px}
#scrim{display:none}

/* ---------------- 侧边栏 ---------------- */
.brand{display:flex;align-items:center;gap:11px;padding:17px 16px 13px;border-bottom:1px solid var(--line)}
.brand-mark{
  width:42px;height:42px;flex:0 0 42px;border-radius:12px;
  display:grid;place-items:center;font-size:14px;font-weight:800;letter-spacing:.5px;
  color:#04121f;background:linear-gradient(135deg,#5aa9ff,#3ddc97);
}
.brand-title{font-size:16px;font-weight:700;letter-spacing:.3px}
.brand-sub{font-size:11.5px;color:var(--muted);letter-spacing:.4px}

.side-progress{padding:11px 16px 12px;border-bottom:1px solid var(--line)}
.sp-row{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:7px}

#nav{flex:1;overflow-y:auto;padding:6px 8px 16px}
#nav::-webkit-scrollbar{width:8px}
#nav::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:4px}

.nav-title{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 11px 7px;font-size:11px;letter-spacing:1.4px;color:var(--muted);
}
.nav-title-num{letter-spacing:.2px;font-size:10.5px;opacity:.8}

.nav-view{
  width:100%;display:flex;align-items:center;gap:9px;padding:8px 11px;margin-bottom:2px;
  border:0;border-radius:9px;background:transparent;color:var(--text-2);
  font-size:13.5px;cursor:pointer;text-align:left;
}
.nav-view:hover{background:var(--panel-2);color:var(--text)}
.nav-view.on{background:var(--accent-dim);color:var(--accent);font-weight:600}
.nv-ico{width:16px;text-align:center;opacity:.85}
.nv-num{margin-left:auto;font-size:11px;color:var(--muted)}

.nav-group{margin-top:10px}
.ng-head{
  width:100%;display:flex;align-items:center;gap:7px;padding:7px 10px;
  border:0;border-radius:8px;background:transparent;cursor:pointer;
  font-size:11.5px;letter-spacing:.6px;color:var(--muted);text-align:left;
}
.ng-head:hover{background:var(--panel-2);color:var(--text-2)}
.ng-chev{font-size:9px;transition:transform .15s;opacity:.9}
.nav-group.collapsed .ng-chev{transform:rotate(-90deg)}
.ng-ico{font-size:13px}
.ng-name{font-weight:700}
.ng-num{margin-left:auto;font-size:10.5px;opacity:.85}

.nav-ch{
  width:100%;display:flex;align-items:center;gap:7px;
  padding:6px 10px;border:0;border-radius:8px;background:transparent;
  color:var(--text-2);font-size:12.8px;cursor:pointer;text-align:left;line-height:1.45;
}
.nav-ch:hover{background:var(--panel-2);color:var(--text)}
.nav-ch.on{background:var(--panel-3);color:var(--text);font-weight:600}
.nc-ring{
  width:9px;height:9px;flex:0 0 9px;border-radius:50%;
  background:conic-gradient(var(--teal) var(--p,0%), var(--line-2) 0);
}
.nc-no{flex:0 0 auto;font-size:10.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.nav-ch.on .nc-no{color:var(--accent)}
.nc-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nc-num{font-size:10.5px;color:var(--muted)}
.nc-y1{
  font-size:9.5px;color:var(--purple);border:1px solid rgba(183,156,255,.45);
  border-radius:4px;padding:0 3px;line-height:1.5;flex:0 0 auto;
}

.side-foot{padding:10px 12px 13px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px}
.btn-ghost{
  border:1px solid var(--line-2);background:transparent;color:var(--text-2);
  padding:7px 12px;border-radius:9px;font-size:12.5px;cursor:pointer;
}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
.btn-ghost.sm{padding:6px 11px;font-size:12px}
.side-tip{width:100%;font-size:11px;color:var(--muted);margin:2px 0 0;line-height:1.5}

/* ---------------- 顶栏 ---------------- */
#topbar{
  display:flex;align-items:center;gap:12px;padding:11px 20px;
  border-bottom:1px solid var(--line);background:var(--panel);
  position:relative;z-index:10;flex-wrap:wrap;
}
#btn-menu{display:none}
.btn-icon{
  border:1px solid var(--line-2);background:transparent;color:var(--text);
  width:36px;height:34px;border-radius:9px;font-size:16px;cursor:pointer;
}
.seg{
  display:inline-flex;gap:2px;padding:3px;border:1px solid var(--line);
  background:var(--panel-2);border-radius:11px;
}
.seg-btn{
  border:0;background:transparent;color:var(--text-2);padding:6px 20px;
  border-radius:8px;font-size:14px;font-weight:650;cursor:pointer;
}
.seg-btn.on{background:linear-gradient(135deg,#5aa9ff,#4d8cf5);color:#04121f}
html[data-theme="light"] .seg-btn.on{background:linear-gradient(135deg,#1f6fd0,#3f8ae8);color:#fff}

.search-wrap{
  position:relative;flex:1;max-width:430px;min-width:170px;margin-left:auto;
  display:flex;align-items:center;
}
.search-ico{position:absolute;left:11px;font-size:15px;color:var(--muted);pointer-events:none}
#search{
  width:100%;padding:8px 34px 8px 32px;border-radius:10px;
  border:1px solid var(--line);background:var(--panel-2);color:var(--text);
  font-size:13.5px;outline:none;font-family:inherit;
}
#search:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}
#search::-webkit-search-cancel-button{display:none}
.search-clear{
  position:absolute;right:6px;border:0;background:transparent;color:var(--muted);
  cursor:pointer;font-size:13px;padding:4px 6px;border-radius:6px;
}
.search-clear:hover{color:var(--text);background:var(--panel-3)}

.top-tools{display:flex;gap:7px}
.chip-btn{
  border:1px solid var(--line-2);background:transparent;color:var(--text-2);
  padding:7px 12px;border-radius:9px;font-size:12.5px;cursor:pointer;white-space:nowrap;
}
.chip-btn:hover{border-color:var(--accent);color:var(--accent)}
.chip-btn.on{border-color:var(--accent);background:var(--accent-dim);color:var(--accent);font-weight:600}

/* ---------------- 通用 ---------------- */
.bar{height:6px;background:var(--line);border-radius:3px;overflow:hidden}
.bar>i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,var(--accent),var(--teal));transition:width .35s}
.grow{flex:1}
.eyebrow{font-size:11.5px;letter-spacing:1.2px;color:var(--muted);text-transform:uppercase}

/* ---------------- 首页 ---------------- */
.hero{
  max-width:980px;margin:0 auto 20px;display:grid;grid-template-columns:1fr 292px;gap:20px;
  background:linear-gradient(160deg,var(--panel),var(--panel-2));
  border:1px solid var(--line);border-radius:var(--radius);padding:24px 26px;position:relative;overflow:hidden;
}
.hero::after{
  content:"";position:absolute;right:-70px;top:-70px;width:230px;height:230px;border-radius:50%;
  background:radial-gradient(circle,rgba(90,169,255,.18),transparent 70%);pointer-events:none;
}
.hero h1{font-size:27px;line-height:1.32;margin:8px 0 10px;letter-spacing:.5px}
.hero-desc{color:var(--text-2);font-size:13.8px;max-width:560px;margin:0 0 16px}
.hero-stats{display:flex;gap:22px;margin-bottom:18px;flex-wrap:wrap}
.hs b{display:block;font-size:22px;line-height:1.2}
.hs span{font-size:11.5px;color:var(--muted)}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap}
.btn-primary{
  border:0;background:linear-gradient(135deg,#5aa9ff,#3ddc97);color:#04121f;
  padding:9px 18px;border-radius:10px;font-size:13.5px;font-weight:700;cursor:pointer;
}
.btn-primary:hover{filter:brightness(1.06)}

.cd-card{
  background:var(--panel-3);border:1px solid var(--line);border-radius:12px;padding:14px 16px;height:100%;
}
.cd-label{font-size:11px;letter-spacing:1px;color:var(--muted);margin-bottom:6px}
.cd-text{font-size:13.5px;line-height:1.65;color:var(--text)}
.cd-text b{font-size:26px;color:var(--amber);margin:0 2px;vertical-align:-2px}
.cd-note{margin-top:10px;font-size:11.5px;color:var(--muted);line-height:1.6;border-top:1px dashed var(--line-2);padding-top:9px}

.mode-cards{max-width:980px;margin:0 auto 18px;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.mode-card{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:18px 20px;display:flex;flex-direction:column;
}
.mc-top{display:flex;align-items:center;gap:12px}
.mc-ico{
  width:44px;height:44px;flex:0 0 44px;border-radius:13px;display:grid;place-items:center;
  font-size:17px;font-weight:800;color:#04121f;
}
.mc-ico.blue{background:linear-gradient(135deg,#5aa9ff,#7c8cff)}
.mc-ico.green{background:linear-gradient(135deg,#3ddc97,#4fd1c5)}
.mc-top h3{margin:0;font-size:16px}
.mc-sub{margin:0;font-size:11.5px;color:var(--muted)}
.mc-note{margin:12px 0 10px;font-size:12.5px;color:var(--text-2);min-height:20px}
.mc-stats{display:flex;align-items:baseline;gap:5px;font-size:11.5px;color:var(--muted);margin-bottom:9px;flex-wrap:wrap}
.mc-stats b{font-size:19px;color:var(--text);line-height:1;font-variant-numeric:tabular-nums}
.mc-stats i{width:1px;height:11px;background:var(--line-2);margin:0 5px}
.mc-actions{display:flex;align-items:center;justify-content:space-between;margin-top:14px}
.mc-hint{font-size:12px;color:var(--muted)}

.tips{
  max-width:980px;margin:20px auto 0;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);padding:20px 22px;
}
.tips h3{margin:0 0 10px;font-size:15px;letter-spacing:.3px}
.tips ol{margin:0;padding-left:20px;color:var(--text-2);font-size:13.5px}
.tips li{margin-bottom:7px;line-height:1.7}
.tips li b{color:var(--text)}
.tips-foot{margin:12px 0 0;font-size:11.5px;color:var(--muted);border-top:1px dashed var(--line-2);padding-top:10px}

/* ---------------- 章节页 ---------------- */
.chapter-head{max-width:980px;margin:0 auto 12px}
.chapter-head.slim{margin-bottom:18px}
.back{
  border:0;background:transparent;color:var(--muted);font-size:12.5px;
  cursor:pointer;padding:2px 0;margin-bottom:8px;
}
.back:hover{color:var(--accent)}
.chapter-head h2{font-size:23px;margin:6px 0 8px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;line-height:1.35}
.ch-star{font-size:13px;color:var(--amber);letter-spacing:2px}
.ch-note{margin:0 0 14px;color:var(--text-2);font-size:13.5px;max-width:760px}
.ch-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.ch-progress{flex:1;min-width:180px;max-width:300px}
.ch-progress span{font-size:11.5px;color:var(--muted);display:block;margin-bottom:5px}
.filters{display:flex;gap:8px;flex-wrap:wrap}
.filter{
  border:1px solid var(--line);background:transparent;color:var(--text-2);
  padding:5px 12px;border-radius:20px;font-size:12.5px;cursor:pointer;
}
.filter:hover{border-color:var(--accent)}
.filter.on{background:var(--accent-dim);border-color:var(--accent);color:var(--accent);font-weight:600}

.sec-nav{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.sec-chip{
  display:inline-flex;align-items:center;gap:6px;
  border:1px solid var(--line);background:var(--panel-2);color:var(--text-2);
  padding:5px 10px;border-radius:9px;font-size:12px;cursor:pointer;
}
.sec-chip:hover{border-color:var(--accent);color:var(--accent)}
.sec-chip i{font-style:normal;font-size:10.5px;color:var(--muted);background:var(--panel-3);border-radius:5px;padding:0 5px}

.sec-block{scroll-margin-top:18px}
.sec-title{
  max-width:980px;margin:24px auto 12px;display:flex;align-items:center;gap:10px;
  font-size:13px;color:var(--text-2);letter-spacing:.3px;
}
.sec-title span{font-weight:650}
.sec-title i{flex:1;height:1px;background:linear-gradient(90deg,var(--line-2),transparent)}
.sec-title em{font-style:normal;font-size:11px;color:var(--muted)}

/* ---------------- 知识卡片 ---------------- */
.card{
  max-width:980px;margin:0 auto 14px;background:var(--panel);
  border:1px solid var(--line);border-radius:14px;padding:15px 18px 17px;
  position:relative;transition:border-color .15s,box-shadow .2s;
}
.card:hover{border-color:var(--line-2)}
.card.is-mastered{border-color:rgba(61,220,151,.45);background:linear-gradient(180deg,rgba(61,220,151,.055),transparent 42%)}
.card.is-mastered::before{
  content:"";position:absolute;left:-1px;top:14px;bottom:14px;width:3px;border-radius:3px;background:var(--teal);
}
.card.flash{box-shadow:0 0 0 2px var(--accent),0 8px 24px rgba(90,169,255,.18)}
.card-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.card-title{margin:0;font-size:15.5px;font-weight:650;line-height:1.5}
.badge-y1{
  font-size:10.5px;color:var(--purple);border:1px solid rgba(183,156,255,.5);
  background:rgba(183,156,255,.09);border-radius:5px;padding:1px 5px;line-height:1.5;white-space:nowrap;
}
.tag{font-size:10.5px;border-radius:5px;padding:1px 6px;line-height:1.6;white-space:nowrap;font-weight:600}
.tag-must{color:#ff8b83;background:rgba(255,123,114,.13);border:1px solid rgba(255,123,114,.3)}
.tag-hot{color:#ffc266;background:rgba(255,184,77,.12);border:1px solid rgba(255,184,77,.3)}
.tag-warn{color:#c3acff;background:rgba(183,156,255,.12);border:1px solid rgba(183,156,255,.3)}
.tag-idea{color:#8fb4d8;background:rgba(90,169,255,.1);border:1px solid rgba(90,169,255,.22)}
html[data-theme="light"] .tag-must{color:#b3261e;background:rgba(201,60,51,.08);border-color:rgba(201,60,51,.25)}
html[data-theme="light"] .tag-hot{color:#8a5200;background:rgba(180,107,0,.08);border-color:rgba(180,107,0,.25)}
html[data-theme="light"] .tag-warn{color:#4b2fbe;background:rgba(107,79,216,.08);border-color:rgba(107,79,216,.25)}
html[data-theme="light"] .tag-idea{color:#1f5f96;background:rgba(31,111,208,.07);border-color:rgba(31,111,208,.2)}

.icon-btn{
  border:0;background:transparent;color:var(--muted);font-size:17px;line-height:1;
  width:30px;height:30px;border-radius:8px;cursor:pointer;
}
.icon-btn:hover{background:var(--panel-2);color:var(--amber)}
.icon-btn.fav.on{color:var(--amber)}
.master-btn{
  border:1px solid var(--line-2);background:transparent;color:var(--text-2);
  padding:5px 11px;border-radius:8px;font-size:12px;cursor:pointer;white-space:nowrap;
}
.master-btn:hover{border-color:var(--teal);color:var(--teal)}
.master-btn.on{border-color:var(--teal);background:rgba(61,220,151,.12);color:var(--teal);font-weight:600}

.answer{position:relative}
.formula{
  margin-top:11px;padding:12px 15px;background:var(--panel-2);
  border:1px solid var(--line);border-radius:10px;overflow-x:auto;overflow-y:hidden;
}
.explain{margin:10px 2px 0;font-size:13.8px;color:var(--text-2);line-height:1.8}
.explain sub,.explain sup{line-height:0}

.reveal{
  display:none;position:absolute;inset:0;z-index:2;
  border:1px dashed var(--line-2);border-radius:10px;background:var(--panel-2);
  color:var(--muted);font-size:12.5px;cursor:pointer;
}
.reveal:hover{color:var(--accent);border-color:var(--accent)}
.card.masked .answer .formula,.card.masked .answer .explain{filter:blur(7px);user-select:none;pointer-events:none}
.card.masked .reveal{display:flex;align-items:center;justify-content:center;background:rgba(10,14,20,.32);backdrop-filter:blur(1.5px)}
html[data-theme="light"] .card.masked .reveal{background:rgba(255,255,255,.34)}

/* ---------------- 上一讲 / 下一讲 ---------------- */
.pager{max-width:980px;margin:26px auto 0;display:flex;gap:12px}
.pager-btn{
  flex:1;display:flex;flex-direction:column;gap:3px;padding:11px 15px;
  border:1px solid var(--line);border-radius:12px;background:var(--panel);
  color:var(--muted);cursor:pointer;text-align:left;font-size:11.5px;
}
.pager-btn b{font-size:13.5px;color:var(--text);font-weight:600;line-height:1.4}
.pager-btn:hover{border-color:var(--accent)}
.pager-btn.next{text-align:right;align-items:flex-end}
.pager-btn.disabled{opacity:.45;cursor:default;border-style:dashed;justify-content:center}

/* ---------------- 搜索结果 / 收藏 ---------------- */
.res-ch{
  max-width:980px;margin:18px auto 9px;display:flex;align-items:center;justify-content:space-between;
  font-size:11.5px;letter-spacing:.4px;color:var(--muted);
  border-bottom:1px dashed var(--line-2);padding-bottom:6px;
}
.res-ch .link{border:0;background:transparent;color:var(--accent);font-size:11.5px;cursor:pointer}
.empty{
  max-width:980px;margin:20px auto;padding:34px;text-align:center;color:var(--muted);
  border:1px dashed var(--line-2);border-radius:14px;font-size:13.5px;
}
mark{background:rgba(255,184,77,.32);color:inherit;border-radius:3px;padding:0 2px}

/* ---------------- Toast ---------------- */
#toast{
  position:fixed;left:50%;bottom:34px;transform:translate(-50%,16px);
  background:var(--panel-3);color:var(--text);border:1px solid var(--line-2);
  padding:9px 18px;border-radius:10px;font-size:13px;box-shadow:var(--shadow);
  opacity:0;pointer-events:none;transition:.22s;z-index:100;
}
#toast.show{opacity:1;transform:translate(-50%,0)}

/* ============================================================
   公式排版（tex.js 输出）
   ============================================================ */
.tex{
  font-family:var(--font-math);font-size:1.06em;line-height:2;
  white-space:normal;word-spacing:.5px;letter-spacing:.1px;
}
.tex i{font-style:italic}
.tex .rm{font-style:normal}
.tex .gk{font-style:normal}
.tex .sym{font-family:var(--font-math);font-style:normal;padding:0 .1em}
.tex .rel{padding:0 .17em}

.frac{
  display:inline-flex;flex-direction:column;vertical-align:middle;
  text-align:center;margin:0 .22em;line-height:1.25;font-size:.97em;
  position:relative;top:-.04em;
}
.frac .fn{border-bottom:1px solid currentColor;padding:0 .2em .1em}
.frac .fd{padding:.1em .2em 0}

.sqrt{display:inline-flex;align-items:flex-start;vertical-align:middle;margin:0 .06em}
.sqrt .sq{font-family:var(--font-math);font-size:1.25em;line-height:1;position:relative;top:.02em}
.sqrt .sidx{font-size:.5em;vertical-align:super;margin-right:-.06em}
.sqrt .sbody{border-top:1px solid currentColor;padding:.1em .16em 0;margin-top:.03em;margin-left:.02em}

.scr{white-space:nowrap}
.scr .ssup{font-size:.66em;vertical-align:super;line-height:0;margin-left:.03em}
.scr .ssub{font-size:.66em;vertical-align:sub;line-height:0;margin-left:.03em}

.intop{display:inline-flex;align-items:center;vertical-align:middle;margin:0 .1em 0 .02em}
.intop .isym{font-family:var(--font-math);font-size:1.65em;line-height:1;font-style:normal;margin-right:.05em}
.intop .ilims{display:inline-flex;flex-direction:column;justify-content:center;font-size:.58em;line-height:1.25;margin-left:-.04em}
.bigop{display:inline-flex;flex-direction:column;align-items:center;vertical-align:middle;margin:0 .14em}
.bigop .isym{font-size:1.5em;line-height:1.05}
.bigop .osup,.bigop .osub{font-size:.62em;line-height:1.15;font-style:normal}
.oplim{display:inline-flex;flex-direction:column;align-items:center;vertical-align:middle;margin:0 .2em .06em;line-height:1.1}
.oplim .lsym{font-family:var(--font-math);font-style:normal;letter-spacing:.02em}
.oplim .lsub{font-size:.62em;line-height:1.15}

.matwrap{display:inline-flex;align-items:center;vertical-align:middle;margin:0 .2em}
.matwrap .dl{
  font-family:var(--font-math);line-height:.92;
  transform:scaleX(.6);transform-origin:center;opacity:.9;align-self:center;
}
.matwrap .dl-brace{transform:none;font-weight:300;opacity:.95}
.mat-bars{display:inline-flex;align-items:center;border-left:1px solid currentColor;border-right:1px solid currentColor;padding:0 .32em}
.mat{display:inline-grid;gap:.16em .62em;align-items:center;justify-items:center;line-height:1.55;font-size:.95em}
.mat-cases{justify-items:start;gap:.22em .75em}
.mat-cases .mcell{text-align:left;white-space:nowrap}

.xarrow{display:inline-flex;flex-direction:column;align-items:center;vertical-align:middle;margin:0 .22em;line-height:1}
.xarrow .xlab{font-size:.6em;white-space:nowrap}
.xarrow .xarr{font-size:1.05em}
.tex .acc-vec{text-decoration:overline;padding-top:.06em}
.tex .ovl{text-decoration:overline}
.tex .uln{text-decoration:underline}

/* ---------------- 代码实现 ---------------- */
.code-meta{
  display:flex;align-items:center;justify-content:space-between;
  margin:12px 0 6px;font-size:11px;color:var(--muted);
}
.code-lang{letter-spacing:.8px}
.link-btn{
  border:0;background:transparent;color:var(--accent);font-size:11.5px;
  cursor:pointer;padding:0;
}
.link-btn:hover{text-decoration:underline}
.code-wrap{border:1px solid var(--line);border-radius:10px;background:#0c1219;overflow:hidden}
pre.code{
  margin:0;padding:12px 14px;overflow-x:auto;
  font-family:"Cascadia Code","Consolas","JetBrains Mono",monospace;
  font-size:12.5px;line-height:1.65;color:#d7e3f2;tab-size:2;
}
pre.code .c{color:#7fae7f;font-style:italic}
.code-off{display:none;margin-top:10px;font-size:11.5px;color:var(--muted)}
body.hide-code .code-wrap,body.hide-code .code-meta{display:none}
body.hide-code .code-off{display:block}
html[data-theme="light"] .code-wrap{background:#f6f8fb}
html[data-theme="light"] pre.code{color:#243447}
html[data-theme="light"] pre.code .c{color:#3f7a3f}
.card.masked .code-wrap{filter:blur(6px);pointer-events:none}

/* ---------------- 英语作文入口 / 网站声明 ---------------- */
/* 返回大厅 */
.nav-hub{
  margin-top:6px;
  border:1px solid rgba(167,139,250,.34);
  background:linear-gradient(135deg,rgba(167,139,250,.14),rgba(90,169,255,.08));
  color:var(--text);font-weight:600;
}
.nav-hub:hover{
  border-color:rgba(167,139,250,.75);
  background:linear-gradient(135deg,rgba(167,139,250,.24),rgba(90,169,255,.14));
}

.nav-english{
  margin-top:6px;  border:1px solid rgba(90,169,255,.38);
  background:linear-gradient(135deg,rgba(90,169,255,.16),rgba(61,220,151,.10));
  color:var(--text);font-weight:600;
}
.nav-english:hover{
  border-color:var(--accent);color:var(--text);
  background:linear-gradient(135deg,rgba(90,169,255,.26),rgba(61,220,151,.16));
}
.nav-english .nv-arrow{margin-left:auto;color:var(--accent);font-size:13px;transition:transform .15s}
.nav-english:hover .nv-arrow{transform:translate(2px,-2px)}
.nav-politics{
  margin-top:6px;
  border:1px solid rgba(255,184,77,.38);
  background:linear-gradient(135deg,rgba(255,184,77,.14),rgba(255,123,114,.09));
  color:var(--text);font-weight:600;
}
.nav-politics:hover{
  border-color:var(--amber);color:var(--text);
  background:linear-gradient(135deg,rgba(255,184,77,.24),rgba(255,123,114,.15));
}
.nav-politics .nv-arrow{margin-left:auto;color:var(--amber);font-size:13px;transition:transform .15s}
.nav-politics:hover .nv-arrow{transform:translate(2px,-2px)}
.nav-words{
  margin-top:6px;
  border:1px solid rgba(167,139,250,.38);
  background:linear-gradient(135deg,rgba(167,139,250,.16),rgba(90,169,255,.10));
  color:var(--text);font-weight:600;
}
.nav-words:hover{
  border-color:var(--purple);color:var(--text);
  background:linear-gradient(135deg,rgba(167,139,250,.26),rgba(90,169,255,.16));
}
.nav-words .nv-arrow{margin-left:auto;color:var(--purple);font-size:13px;transition:transform .15s}
.nav-words:hover .nv-arrow{transform:translate(2px,-2px)}

.en-banner{
  max-width:980px;margin:0 auto 18px;display:flex;align-items:center;gap:14px;
  padding:16px 20px;border-radius:16px;text-decoration:none;
  border:1px solid rgba(183,156,255,.35);
  background:linear-gradient(120deg,rgba(90,169,255,.14),rgba(183,156,255,.14));
  color:var(--text);transition:border-color .15s,transform .15s;
}
.en-banner:hover{border-color:var(--purple);transform:translateY(-1px)}
.en-ico{
  width:42px;height:42px;flex:0 0 42px;border-radius:12px;display:grid;place-items:center;
  font-size:20px;background:var(--panel-2);border:1px solid var(--line);
}
.en-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.en-title{font-size:15px;font-weight:700}
.en-sub{font-size:12.5px;color:var(--muted)}
.en-go{margin-left:auto;font-size:13px;color:var(--purple);white-space:nowrap}
.en-go b{display:inline-block;transition:transform .15s}
.en-banner:hover .en-go b{transform:translateX(3px)}

.notice-bar{
  max-width:980px;margin:0 auto 18px;display:flex;align-items:center;gap:10px;
  padding:11px 16px;border-radius:12px;font-size:14px;color:var(--text);
  border:1px solid rgba(255,184,77,.38);background:rgba(255,184,77,.09);
}
.notice-bar .notice-ico{font-size:17px}
.notice-bar a{
  color:var(--amber);text-decoration:none;
  border-bottom:1px dashed rgba(255,184,77,.6);
}
.notice-bar a:hover{color:var(--text)}
.site-notice{
  max-width:980px;margin:30px auto 0;padding-top:14px;text-align:center;
  border-top:1px dashed var(--line-2);font-size:13.5px;color:var(--muted);
}
.site-notice a{color:var(--amber);text-decoration:none}
.site-notice a:hover{text-decoration:underline}

/* ---------------- 响应式 ---------------- */
@media (max-width:1040px){
  .hero{grid-template-columns:1fr}
  .cd-card{height:auto}
}
@media (max-width:860px){
  .mode-cards{grid-template-columns:1fr}
}
@media (max-width:760px){
  #btn-menu{display:inline-flex;align-items:center;justify-content:center}
  #sidebar{
    position:fixed;left:0;top:0;bottom:0;transform:translateX(-102%);
    transition:transform .22s ease;box-shadow:var(--shadow);
  }
  body.sidebar-open #sidebar{transform:none}
  body.sidebar-open #scrim{display:block;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:40}
  #topbar{padding:9px 12px;gap:8px}
  .seg-btn{padding:6px 14px;font-size:13px}
  .search-wrap{order:5;flex:1 1 100%;max-width:none;margin-left:0}
  .top-tools{margin-left:auto}
  #view{padding:16px 13px 90px}
  .hero{padding:18px}
  .hero h1{font-size:22px}
  .chapter-head h2{font-size:19px;gap:6px}
  .card{padding:13px 13px 15px}
  .sec-title{margin-top:20px}
  .pager{flex-direction:column}
  .pager-btn.next{text-align:left;align-items:flex-start}
  .tex{font-size:.98em}
}

/* ---------------- 打印 ---------------- */
@media print{
  #sidebar,#topbar,#toast,.reveal,.card-head .icon-btn,.master-btn,.pager,.sec-nav{display:none!important}
  body{overflow:visible;background:#fff;color:#000}
  #app,#main,#view{display:block;height:auto;overflow:visible;padding:0}
  .card,.hero,.tips,.chapter-head,.mode-card{border-color:#ccc;background:#fff;color:#000;break-inside:avoid;max-width:none}
  .formula{background:#f7f7f7;border-color:#ddd}
  .tex{color:#000}
}
