/* ===== 学习库 · 统一样式 =====
   设计：浅色纸感 + 深蓝主色（与高数 HTML 呼应）
   可拓展：新书/新科目只需加数据 js，样式零改动 */
:root{
  --c-bg:#f4f2ed;
  --c-surface:#ffffff;
  --c-ink:#242424;
  --c-muted:#66605a;
  --c-blue:#1f3a5f;
  --c-blue2:#2c4a6e;
  --c-accent:#d98e2b;
  --c-line:#e3ded5;
  --c-soft:#faf8f4;
  --radius:10px;
  --shadow:0 2px 10px rgba(0,0,0,.06);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:"Songti SC","Noto Serif CJK SC","SimSun",Georgia,serif;color:var(--c-ink);background:var(--c-bg);line-height:1.8;font-size:16px}
a{color:var(--c-blue2);text-decoration:none}
a:hover{text-decoration:underline}

/* ---------- 顶部导航 ---------- */
.site-header{position:sticky;top:0;z-index:50;background:linear-gradient(135deg,var(--c-blue),var(--c-blue2));color:#fff;box-shadow:0 2px 10px rgba(0,0,0,.22)}
.header-inner{max-width:1100px;margin:0 auto;padding:10px 18px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.brand{font-size:17px;font-weight:700;letter-spacing:.5px;white-space:nowrap}
.brand a{color:#fff}
.site-nav{display:flex;gap:6px;flex-wrap:wrap}
.site-nav a{color:#cfe0f2;font-size:13px;padding:3px 10px;border:1px solid #46648a;border-radius:14px;white-space:nowrap}
.site-nav a:hover,.site-nav a.active{background:#46648a;color:#fff;text-decoration:none}
.search-wrap{position:relative;flex:1;min-width:220px}
.search-wrap input{width:100%;border:0;border-radius:16px;padding:7px 14px;font-size:14px;font-family:inherit;outline:none;background:#fff}
.search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--c-line);border-radius:var(--radius);box-shadow:0 6px 20px rgba(0,0,0,.12);max-height:60vh;overflow:auto;display:none;z-index:60}
.search-results .sr-item{padding:8px 14px;border-bottom:1px solid var(--c-line);cursor:pointer;font-size:14px}
.search-results .sr-item:hover{background:var(--c-soft)}
.search-results .sr-item .t{font-size:14px}
.search-results .sr-item .m{font-size:12px;color:var(--c-muted)}
.search-results .sr-empty{padding:10px 14px;font-size:13px;color:var(--c-muted)}

/* ---------- 主体 ---------- */
main{max-width:1100px;margin:0 auto;padding:26px 18px 90px}
.hero{background:var(--c-surface);border-radius:var(--radius);padding:28px 32px;box-shadow:var(--shadow);margin-bottom:22px}
.hero h1{margin:0 0 10px;font-size:27px}
.hero p{margin:5px 0;color:var(--c-muted);font-size:15px}
h2.section{font-size:20px;margin:36px 0 14px;padding-bottom:6px;border-bottom:2px solid var(--c-blue)}

/* ---------- 卡片 ---------- */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.card{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow)}
.card h3{margin:0 0 6px;font-size:17px}
.card .meta{font-size:13px;color:var(--c-muted);display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px;align-items:center}
.badge{display:inline-block;font-size:12px;padding:1px 9px;border-radius:10px;white-space:nowrap}
.badge.ready{background:#e7f3e7;color:#2d6a2d}
.badge.pending{background:#f7e9d8;color:#8a5a1f}
.badge.en{background:#e6f1fb;color:#185fa5}
.badge.zh{background:#faeeda;color:#8a5a1f}
.badge.main{background:#fcebeb;color:#a32d2d}
.badge.extra{background:#eef0f3;color:#5f5e5a}
.card .desc{font-size:14px;color:var(--c-ink)}
.card .links{margin-top:10px;font-size:14px}
.card .links a{margin-right:12px}

/* ---------- 科目/标签 ---------- */
.subj-row{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}
.chip{display:inline-block;font-size:13px;padding:3px 12px;border:1px solid var(--c-line);border-radius:14px;background:var(--c-soft);color:var(--c-blue2);cursor:pointer}
.chip:hover{background:#e6f1fb;text-decoration:none}

/* ---------- 对照表 ---------- */
table.map{width:100%;border-collapse:collapse;background:var(--c-surface);box-shadow:var(--shadow);font-size:14px}
table.map th,table.map td{border:1px solid var(--c-line);padding:8px 12px;text-align:left;vertical-align:top}
table.map th{background:var(--c-blue);color:#fff;font-weight:500}
table.map tr:nth-child(even){background:var(--c-soft)}

/* ---------- 学习路径 ---------- */
ol.path{padding-left:22px}
ol.path li{margin:6px 0;font-size:15px}
ol.path .stars{color:var(--c-accent);font-size:13px}
ol.path .tag{font-size:12px;color:var(--c-muted);margin-left:8px}

/* ---------- 进度 ---------- */
.progress-bar{height:8px;background:var(--c-line);border-radius:4px;overflow:hidden;margin-top:8px}
.progress-bar i{display:block;height:100%;width:0;background:var(--c-accent);transition:width .3s}
.btn{display:inline-block;font-size:13px;padding:3px 12px;border:1px solid var(--c-blue2);border-radius:14px;color:var(--c-blue2);background:#fff;cursor:pointer}
.btn:hover{background:var(--c-blue);color:#fff;text-decoration:none}
.btn.done{background:var(--c-blue);color:#fff}

/* ---------- 书页（阅读器） ---------- */
.book-main{max-width:900px;margin:0 auto;padding:26px 20px 90px}
.breadcrumb{font-size:14px;color:var(--c-muted);margin-bottom:14px}
.breadcrumb a{color:var(--c-blue2)}
.toc-panel{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);padding:14px 20px;margin-bottom:22px;box-shadow:var(--shadow)}
.toc-panel summary{cursor:pointer;font-size:15px;font-weight:500;color:var(--c-blue2);padding:4px 0}
.toc-panel ul{margin:4px 0 8px 18px;font-size:14px}
.toc-panel a{display:inline-block;padding:1px 0}

/* ---------- 章节页（拆分后） ---------- */
.chapter-nav{display:flex;justify-content:space-between;gap:12px;margin:30px 0 10px;font-size:15px}
.chapter-nav a{padding:6px 16px;border:1px solid var(--c-blue2);border-radius:16px;color:var(--c-blue2);background:#fff}
.chapter-nav a:hover{background:var(--c-blue);color:#fff;text-decoration:none}
.concept-chips{margin:6px 0;font-size:12px}
.concept-chips .chip{font-size:12px;padding:1px 9px;margin-right:4px}
.sol-link,.ex-link{display:inline-block;font-size:13px;color:var(--c-accent);margin:4px 0}
.ex-block,.sol-block{border-left:3px solid var(--c-line);padding:6px 14px;margin:10px 0;background:var(--c-soft)}
.sol-block{border-left-color:var(--c-accent)}

/* ---------- 书目录页（卡片网格 v0.5） ---------- */
.toc-group{margin-bottom:18px}
.toc-group h3{font-size:16px;margin:10px 0 8px;color:var(--c-blue)}
.toc-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.toc-card{display:block;background:var(--c-surface);border:1px solid var(--c-line);border-radius:10px;padding:14px 16px;box-shadow:var(--shadow);color:var(--c-ink);transition:transform .12s,border-color .12s}
.toc-card:hover{transform:translateY(-2px);border-color:var(--c-blue2);text-decoration:none}
.toc-card .t{display:block;font-size:15px;font-weight:500}
.toc-card .ck{display:block;font-size:12px;color:#bbb;margin-top:6px}
.toc-card .ck:not(.none){color:#2d6a2d}

/* ---------- 首页精简版（v0.3） ---------- */
.subj-block{margin-bottom:6px}
.subj-title{font-size:18px;margin:22px 0 10px;color:var(--c-blue);font-weight:500}
.main-books{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.book-card{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);padding:14px 18px;box-shadow:var(--shadow)}
.book-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.book-name{font-size:16px;font-weight:500}
.lang-tag{display:inline-block;font-size:10px;font-weight:600;color:#fff;background:#7fa8d9;border-radius:4px;padding:1px 5px;margin-right:6px;vertical-align:2px;letter-spacing:.5px}
.dot{width:9px;height:9px;border-radius:50%;flex:none}
.dot.ok{background:#2d9d4e}
.dot.todo{background:#d0c9bd}
.book-desc{font-size:13px;color:var(--c-muted);margin:6px 0 10px;line-height:1.6}
.book-foot{display:flex;gap:12px;align-items:center;font-size:14px}
.open{font-weight:500}
.open.pending{color:#b3aa9c;font-weight:400}
.extra-line{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:8px 0 6px}
.extra-label{color:var(--c-muted);font-size:12px;margin-right:2px}
.extra-chip{font-size:12.5px;padding:2px 11px;border:1px solid var(--c-line);border-radius:12px;color:#9a927f;background:var(--c-soft)}
.extra-chip.ready{color:var(--c-blue2);border-color:#b5d4f4;background:#e6f1fb}

/* 工具折叠区 */
details.tool{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);padding:0 18px;margin-bottom:10px;box-shadow:var(--shadow)}
details.tool>summary{cursor:pointer;font-size:15px;font-weight:500;color:var(--c-blue2);padding:12px 0;list-style:none}
details.tool>summary::-webkit-details-marker{display:none}
details.tool>summary::before{content:"▸ ";color:var(--c-muted)}
details.tool[open]>summary::before{content:"▾ "}
details.tool>div{padding-bottom:14px}

/* ---------- 收纳式首页（v0.4 all-in-one，仅主页生效） ---------- */
body.home{overflow:hidden}
body.home>main{max-width:1100px;height:calc(100vh - 92px);display:flex;flex-direction:column;padding-bottom:0}
#navcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;flex:none;align-content:start;overflow:auto}
.navcard{background:var(--c-surface);border:1px solid var(--c-line);border-radius:12px;padding:20px 10px;text-align:center;cursor:pointer;box-shadow:var(--shadow);transition:transform .12s,border-color .12s,box-shadow .12s;user-select:none}
.navcard:hover{transform:translateY(-3px);border-color:var(--c-blue2);box-shadow:0 6px 16px rgba(31,58,95,.12)}
.navcard .nm{font-size:16px;font-weight:500;color:var(--c-ink)}
.navcard .ct{font-size:12px;color:var(--c-muted);margin-top:4px}
/* L1 钻取子界面 */
#view-home,#view-detail{flex:1;min-height:0;display:flex;flex-direction:column}
#view-detail{overflow:auto}
.detail-bar{display:flex;align-items:center;gap:12px;flex:none;margin-bottom:12px}
.detail-bar #detail-title{font-size:18px;font-weight:500;color:var(--c-blue)}
#detail-body{flex:1}
.ov-stats{display:flex;gap:12px;margin:4px 0 6px;flex-wrap:wrap}
.ov-stat{background:var(--c-surface);border:1px solid var(--c-line);border-radius:10px;padding:10px 22px;text-align:center;box-shadow:var(--shadow)}
.ov-stat b{font-size:23px;color:var(--c-blue)}
.ov-stat span{font-size:12px;color:var(--c-muted);display:block;margin-top:2px}
.ov-subj{font-size:16px;margin:18px 0 8px;color:var(--c-blue);font-weight:500}
.book-card.small{padding:10px 14px}
.book-card.small .book-foot{margin-top:6px}
.ai-note{font-size:12px;color:var(--c-muted);margin-top:24px;padding-top:10px;border-top:1px dashed var(--c-line)}

.img-missing{border:1px dashed var(--c-line);background:var(--c-soft);color:var(--c-muted);font-size:13px;padding:14px 16px;border-radius:8px;margin:10px 0;text-align:center}

/* ---------- 深色模式 ---------- */
body.dark{
  --c-bg:#16181d;
  --c-surface:#20242c;
  --c-ink:#e3e5ea;
  --c-muted:#9aa0ab;
  --c-blue:#7fa8d9;
  --c-blue2:#8fb4e0;
  --c-accent:#e0a04a;
  --c-line:#353a44;
  --c-soft:#262b34;
  --shadow:0 2px 10px rgba(0,0,0,.45);
}
body.dark .site-header{background:linear-gradient(135deg,#1c2733,#24303d)}
body.dark .site-nav a{color:#a9c2dd;border-color:#3d4c5e}
body.dark .site-nav a:hover,body.dark .site-nav a.active{background:#3d4c5e;color:#fff}
body.dark .search-wrap input{background:#2a2f39;color:#e3e5ea}
body.dark .search-wrap input::placeholder{color:#7a828f}
body.dark .search-results{background:#20242c;border-color:#353a44}
body.dark .search-results .sr-item:hover{background:#262b34}
body.dark .search-results .sr-item .m{color:#9aa0ab}
body.dark .navcard.on{background:#1d2c3d;box-shadow:inset 0 0 0 2px #2e4a66}
body.dark .dot.todo{background:#4a5058}
body.dark .open.pending{color:#6a7078}
body.dark .extra-chip{color:#8a8272;background:#262b34}
body.dark .extra-chip.ready{color:#8fb4e0;border-color:#2e4a66;background:#1d2c3d}
body.dark .chip{background:#262b34;color:#8fb4e0;border-color:#353a44}
body.dark .btn{background:#20242c;color:#8fb4e0;border-color:#8fb4e0}
body.dark .btn:hover,body.dark .btn.done{background:#1f3a5f;color:#fff;border-color:#1f3a5f}
body.dark table.map th{background:#1c2733}
body.dark table.map tr:nth-child(even){background:#262b34}
body.dark .subj-title,body.dark .ov-subj,body.dark .toc-group h3{color:#7fa8d9}
body.dark .ov-stat b{color:#7fa8d9}
body.dark details.tool>summary{color:#8fb4e0}
body.dark .chapter-nav a{background:#20242c;color:#8fb4e0;border-color:#8fb4e0}
body.dark .chapter-nav a:hover{background:#1f3a5f;color:#fff}
body.dark .toc-card{color:#e3e5ea}
body.dark .toc-card:hover{border-color:#8fb4e0}
/* 章页：压过内嵌的原书浅色样式 */
body.dark main,body.dark .book-content{background:#20242c !important;color:#e3e5ea !important;box-shadow:0 2px 18px rgba(0,0,0,.45) !important}
body.dark main h1,body.dark main h2,body.dark main h3,body.dark main h4{color:#8fb4e0 !important}
body.dark main p,body.dark main li,body.dark main td,body.dark main th{color:#e3e5ea !important}
body.dark main a{color:#8fb4e0}
body.dark main pre,body.dark main code{background:#262b34 !important;color:#d7dce3 !important}
body.dark main img{filter:brightness(.92)}
body.dark .toc-panel,body.dark details.tool{background:#20242c;border-color:#353a44}
body.dark .img-missing{background:#262b34;border-color:#353a44;color:#9aa0ab}
/* 主题切换按钮 */
.theme-btn{position:fixed;right:18px;bottom:18px;z-index:80;width:42px;height:42px;border-radius:50%;border:1px solid var(--c-line);background:var(--c-surface);color:var(--c-ink);font-size:18px;cursor:pointer;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center}
.theme-btn:hover{border-color:var(--c-blue2)}
/* 浮动返回主页按钮（左下） */
.home-fab{position:fixed;left:18px;bottom:18px;z-index:80;width:42px;height:42px;border-radius:50%;border:1px solid var(--c-line);background:var(--c-blue);color:#fff;font-size:20px;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center;text-decoration:none}
.home-fab:hover{background:var(--c-blue2);color:#fff;text-decoration:none}

/* ---------- 页脚 ---------- */
.footer{max-width:1100px;margin:0 auto;padding:20px 18px 40px;color:var(--c-muted);font-size:13px;border-top:1px solid var(--c-line)}

@media(max-width:640px){
  .hero{padding:20px}
  .header-inner{gap:8px}
  .card-grid{grid-template-columns:1fr}
}
