/* ===== 大模型论文学习站 共享样式 ===== */
:root{
  --bg:#0b1226;--bg-soft:#111a36;--card:#172244;--card-2:#1c2a52;
  --ink:#e9eefb;--ink-soft:#a4b0cf;--ink-dim:#7a86a8;--line:#293a66;
  --accent:#5b9dff;--accent-2:#7c5cff;
  --c01:#5b9dff;--c02:#36d399;--c03:#a78bfa;--c04:#fbbd23;--c05:#f472b6;--c06:#f87171;
  --shadow:0 10px 30px rgba(0,0,0,.4);
  --radius:14px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  background:linear-gradient(160deg,#0a1124 0%,#101a3a 100%);color:var(--ink);line-height:1.75;min-height:100vh;
  font-feature-settings:"tnum"}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1200px;margin:0 auto;padding:0 22px 80px}
.wrap-narrow{max-width:1000px;margin:0 auto;padding:0 22px 80px}

/* ===== Hero ===== */
header.hero{text-align:center;padding:60px 22px 32px;position:relative;overflow:hidden}
header.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 70% at 50% 0%,rgba(124,92,255,.22),transparent 70%);pointer-events:none}
.badge{display:inline-block;background:rgba(91,157,255,.18);color:var(--accent);padding:5px 16px;border-radius:999px;font-size:13px;font-weight:600;margin-bottom:18px;letter-spacing:.5px}
.hero h1{font-size:42px;margin:0 0 14px;letter-spacing:1px;background:linear-gradient(135deg,#fff,#9db8ff 60%,#c8a8ff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.hero p{color:var(--ink-soft);font-size:16px;margin:0 auto;max-width:680px}
.stats{display:flex;gap:24px;justify-content:center;flex-wrap:wrap;margin-top:28px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 24px;min-width:120px}
.stat b{display:block;font-size:26px;color:var(--accent);line-height:1.2;font-variant-numeric:tabular-nums}
.stat span{font-size:13px;color:var(--ink-soft)}

/* ===== Section / Group ===== */
.section{margin-top:48px}
.section-title{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:700;margin:0 0 18px;color:#cfe0ff}
.section-title .tag{font-size:12px;font-weight:600;background:var(--card-2);border:1px solid var(--line);color:var(--ink-soft);padding:3px 11px;border-radius:999px}

/* ===== Category Cards ===== */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:18px}
a.cat-card{display:block;text-decoration:none;color:inherit;background:var(--card);border:1px solid var(--line);
  border-radius:18px;padding:22px;transition:.22s;position:relative;overflow:hidden;border-left:4px solid var(--accent)}
a.cat-card::after{content:"";position:absolute;right:-30px;top:-30px;width:90px;height:90px;border-radius:50%;
  background:radial-gradient(circle,rgba(91,157,255,.22),transparent 70%);transition:.3s}
a.cat-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);text-decoration:none}
a.cat-card:hover::after{transform:scale(1.7)}
.cat-card .ico{font-size:32px;line-height:1}
.cat-card h3{margin:10px 0 6px;font-size:20px;color:#fff}
.cat-card p{margin:0;color:var(--ink-soft);font-size:13.5px;line-height:1.65}
.cat-card .meta{margin-top:14px;display:flex;gap:8px;flex-wrap:wrap}
.cat-card .meta span{font-size:11.5px;background:var(--card-2);border:1px solid var(--line);border-radius:7px;padding:2px 9px;color:var(--ink-soft)}
.cat-card .cno{position:absolute;right:18px;top:16px;font-size:12px;font-weight:700;color:var(--ink-dim);opacity:.7;letter-spacing:1px}

/* Color variants by category */
.cat-card.c01{border-left-color:var(--c01)} .cat-card.c01::after{background:radial-gradient(circle,rgba(91,157,255,.22),transparent 70%)}
.cat-card.c02{border-left-color:var(--c02)} .cat-card.c02::after{background:radial-gradient(circle,rgba(54,211,153,.22),transparent 70%)}
.cat-card.c03{border-left-color:var(--c03)} .cat-card.c03::after{background:radial-gradient(circle,rgba(167,139,250,.22),transparent 70%)}
.cat-card.c04{border-left-color:var(--c04)} .cat-card.c04::after{background:radial-gradient(circle,rgba(251,189,35,.22),transparent 70%)}
.cat-card.c05{border-left-color:var(--c05)} .cat-card.c05::after{background:radial-gradient(circle,rgba(244,114,182,.22),transparent 70%)}
.cat-card.c06{border-left-color:var(--c06)} .cat-card.c06::after{background:radial-gradient(circle,rgba(248,113,113,.22),transparent 70%)}

/* ===== Paper List ===== */
.paper-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:14px}
.paper-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px;position:relative;transition:.2s;border-left:3px solid var(--accent)}
.paper-card:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:var(--shadow)}
.paper-card .pno{font-size:11px;color:var(--ink-dim);letter-spacing:1px}
.paper-card h4{margin:4px 0 6px;font-size:16px;color:#fff;line-height:1.4}
.paper-card h4 a{color:#fff}
.paper-card h4 a:hover{color:var(--accent);text-decoration:none}
.paper-card .desc{font-size:13px;color:var(--ink-soft);margin:0 0 10px;line-height:1.55}
.paper-card .row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:12px}
.paper-card .row a{background:var(--card-2);border:1px solid var(--line);border-radius:6px;padding:3px 9px;color:var(--ink-soft);transition:.2s}
.paper-card .row a:hover{color:#fff;border-color:var(--accent);text-decoration:none}
.paper-card .row .arxiv{color:var(--accent-2);font-family:ui-monospace,"SF Mono",Consolas,monospace;font-size:11.5px}
.paper-card .prio{position:absolute;top:14px;right:14px;font-size:13px}
.paper-card .prio.p3{color:#fbbd23}
.paper-card .prio.p2{color:#7ec4ff;opacity:.8}
.paper-card .prio.p1{color:var(--ink-dim);opacity:.6}

/* color variants */
.paper-card.c01{border-left-color:var(--c01)}
.paper-card.c02{border-left-color:var(--c02)}
.paper-card.c03{border-left-color:var(--c03)}
.paper-card.c04{border-left-color:var(--c04)}
.paper-card.c05{border-left-color:var(--c05)}
.paper-card.c06{border-left-color:var(--c06)}

/* ===== Reading Path ===== */
.path{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:24px 26px;margin-top:20px;position:relative;overflow:hidden}
.path::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(124,92,255,.10),transparent 60%);pointer-events:none}
.path h3{margin:0 0 6px;font-size:18px;color:#fff}
.path .sub{margin:0 0 16px;color:var(--ink-soft);font-size:13.5px}
.path ol{margin:0;padding-left:22px;color:var(--ink);font-size:14px;line-height:1.85}
.path ol li::marker{color:var(--accent-2);font-weight:700}
.path ol li a{color:#d8e3ff}

/* ===== Search ===== */
.search-wrap{margin:30px 0 10px;position:relative;max-width:520px}
.search-input{width:100%;background:var(--card);border:1.5px solid var(--line);border-radius:12px;color:var(--ink);
  font-size:15px;padding:12px 16px 12px 42px;outline:none;transition:.2s;font-family:inherit}
.search-input:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(91,157,255,.15)}
.search-input::placeholder{color:var(--ink-dim)}
.search-wrap::before{content:"🔍";position:absolute;left:14px;top:50%;transform:translateY(-50%);opacity:.7}

/* ===== 阅读进度：首页"继续阅读"卡片 ===== */
#continue-reading{margin-top:28px}
#continue-reading:empty{display:none}
.continue-card{background:linear-gradient(135deg,rgba(124,92,255,.14),rgba(91,157,255,.08));
  border:1px solid var(--line);border-radius:16px;padding:20px 22px;position:relative;
  border-left:4px solid var(--accent-2);box-shadow:var(--shadow)}
.continue-head{display:flex;justify-content:space-between;align-items:center;
  color:var(--ink-soft);font-size:13px;margin-bottom:10px;flex-wrap:wrap;gap:8px}
.continue-tag{color:var(--accent-2);font-weight:700;letter-spacing:.5px}
.continue-time{color:var(--ink-dim);font-size:12px}
.continue-link{display:block;color:inherit;text-decoration:none}
.continue-link:hover{text-decoration:none}
.continue-title{font-size:18px;color:#fff;font-weight:600;margin-bottom:10px;line-height:1.4}
.continue-link:hover .continue-title{color:var(--accent)}
.continue-bar{height:6px;background:var(--card-2);border-radius:4px;overflow:hidden;margin:6px 0}
.continue-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));
  border-radius:4px;transition:width .3s}
.continue-meta{color:var(--ink-soft);font-size:13px;margin-top:6px}

.continue-others-label{margin-top:18px;color:var(--ink-dim);font-size:11.5px;
  text-transform:uppercase;letter-spacing:1.5px}
.continue-others{margin-top:8px;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}
.continue-mini{display:flex;justify-content:space-between;align-items:center;gap:8px;
  background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 12px;
  text-decoration:none;color:var(--ink-soft);font-size:12.5px;transition:.2s}
.continue-mini:hover{border-color:var(--accent);color:#fff;text-decoration:none;transform:translateY(-2px)}
.continue-mini .t{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.continue-mini .p{color:var(--accent-2);font-weight:700;font-variant-numeric:tabular-nums;font-size:11.5px;flex-shrink:0}

.continue-clear{position:absolute;top:14px;right:14px;background:transparent;color:var(--ink-dim);
  border:1px solid var(--line);border-radius:6px;padding:3px 10px;font-size:11.5px;cursor:pointer;
  font-family:inherit;transition:.2s}
.continue-clear:hover{color:var(--ink);border-color:var(--accent);background:var(--card-2)}

/* 论文卡片"已读"标记 */
.visited-badge{position:absolute;left:14px;bottom:10px;font-size:11px;color:var(--accent);
  background:rgba(91,157,255,.14);border:1px solid var(--accent);border-radius:6px;
  padding:2px 9px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.4;
  letter-spacing:.3px}
.paper-card{padding-bottom:34px}

/* 顶栏阅读进度百分比 */
.topnav .read-pct{margin-left:8px;color:var(--accent);font-size:12px;font-weight:700;
  font-variant-numeric:tabular-nums;background:var(--card);border:1px solid var(--line);
  border-radius:6px;padding:3px 9px;min-width:42px;text-align:center}

/* ===== Footer ===== */
footer{text-align:center;color:var(--ink-dim);font-size:13px;margin-top:60px;padding-top:24px;border-top:1px solid var(--line)}
footer b{color:var(--accent)}

/* ===== Article (per-paper page) ===== */
.topnav{position:sticky;top:0;z-index:50;background:rgba(11,18,38,.85);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);padding:10px 22px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.topnav .back{color:var(--ink-soft);font-size:14px}
.topnav .back:hover{color:var(--accent);text-decoration:none}
.topnav .crumb{color:var(--ink-dim);font-size:13px}
.topnav .pdf-btn{margin-left:auto;background:var(--accent);color:#0a1124;padding:6px 14px;border-radius:8px;font-weight:600;font-size:13px}
.topnav .pdf-btn:hover{background:#7eb4ff;text-decoration:none}
.topnav .pn{color:var(--ink-soft);font-size:13px;background:var(--card);border:1px solid var(--line);padding:5px 11px;border-radius:7px}
.topnav .pn:hover{color:#fff;border-color:var(--accent);text-decoration:none}

.article-shell{display:grid;grid-template-columns:240px 1fr;gap:36px;max-width:1200px;margin:0 auto;padding:24px 22px 80px}
aside.toc{position:sticky;top:60px;align-self:start;max-height:calc(100vh - 80px);overflow:auto;
  background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;font-size:13px}
aside.toc h4{margin:0 0 10px;font-size:13px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:1px}
aside.toc .toc{padding:0;background:transparent;border:0;border-radius:0;max-height:none;overflow:visible;position:static}
aside.toc ul{margin:0;padding:0;list-style:none}
aside.toc li{margin:3px 0}
aside.toc ul ul{padding-left:14px;margin-top:2px}
aside.toc ul ul ul{padding-left:12px}
aside.toc a{color:var(--ink-soft);display:block;padding:3px 8px;border-radius:6px;border-left:2px solid transparent;line-height:1.45;font-size:13px}
aside.toc ul ul a{font-size:12px;opacity:.88}
aside.toc ul ul ul a{font-size:11.5px;opacity:.72}
aside.toc a:hover{color:#fff;background:var(--card-2);text-decoration:none;border-left-color:var(--accent)}

.article{min-width:0}
.article h1{font-size:30px;margin:0 0 8px;color:#fff;line-height:1.3}
.article h2{font-size:22px;margin:36px 0 14px;padding-bottom:8px;border-bottom:1px solid var(--line);color:#cfe0ff}
.article h3{font-size:18px;margin:26px 0 10px;color:#d8e3ff}
.article h4{font-size:15.5px;margin:20px 0 8px;color:#c5d4f5}
.article p{margin:10px 0}
.article ul,.article ol{padding-left:24px}
.article li{margin:3px 0}
.article strong{color:#fff}
.article em{color:#c5d4f5}
.article hr{border:none;border-top:1px solid var(--line);margin:30px 0}
.article a{color:var(--accent)}

/* Blockquote — used heavily for 原文/翻译/讲解 */
.article blockquote{margin:14px 0;padding:12px 16px;border-left:3px solid var(--accent-2);
  background:rgba(124,92,255,.07);border-radius:0 8px 8px 0;color:#d6dffb;font-size:14.5px}
.article blockquote p:first-child{margin-top:0}
.article blockquote p:last-child{margin-bottom:0}
.article blockquote strong:first-child{color:var(--accent)}

/* Code */
.article code{background:rgba(255,255,255,.07);padding:1.5px 6px;border-radius:5px;font-size:.92em;
  font-family:ui-monospace,"SF Mono",Consolas,Menlo,monospace;color:#e8d8a8;border:1px solid var(--line)}
.article pre{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:14px 16px;overflow:auto;
  font-size:13px;line-height:1.55}
.article pre code{background:none;border:0;padding:0;color:#d8e2ff}

/* Tables */
.article table{border-collapse:collapse;margin:14px 0;width:100%;font-size:13.5px;background:var(--card);
  border-radius:8px;overflow:hidden}
.article table th,.article table td{border:1px solid var(--line);padding:8px 12px;text-align:left;vertical-align:top}
.article table th{background:var(--card-2);color:#fff;font-weight:600}
.article table tr:nth-child(even) td{background:rgba(255,255,255,.02)}

/* Accent variants per category */
body.c01 .article blockquote{border-left-color:var(--c01);background:rgba(91,157,255,.07)}
body.c01 .article blockquote strong:first-child{color:var(--c01)}
body.c01 .topnav .pdf-btn{background:var(--c01)}
body.c02 .article blockquote{border-left-color:var(--c02);background:rgba(54,211,153,.07)}
body.c02 .article blockquote strong:first-child{color:var(--c02)}
body.c02 .topnav .pdf-btn{background:var(--c02)}
body.c03 .article blockquote{border-left-color:var(--c03);background:rgba(167,139,250,.08)}
body.c03 .article blockquote strong:first-child{color:var(--c03)}
body.c03 .topnav .pdf-btn{background:var(--c03)}
body.c04 .article blockquote{border-left-color:var(--c04);background:rgba(251,189,35,.07)}
body.c04 .article blockquote strong:first-child{color:var(--c04)}
body.c04 .topnav .pdf-btn{background:var(--c04);color:#0a1124}
body.c05 .article blockquote{border-left-color:var(--c05);background:rgba(244,114,182,.07)}
body.c05 .article blockquote strong:first-child{color:var(--c05)}
body.c05 .topnav .pdf-btn{background:var(--c05)}
body.c06 .article blockquote{border-left-color:var(--c06);background:rgba(248,113,113,.07)}
body.c06 .article blockquote strong:first-child{color:var(--c06)}
body.c06 .topnav .pdf-btn{background:var(--c06)}

/* Anchored headings smooth target */
.article h2,.article h3,.article h4{scroll-margin-top:64px}

/* ===== 移动端 TOC 抽屉按钮 ===== */
.toc-mobile-btn{display:none;align-items:center;gap:6px;
  background:var(--card);border:1px solid var(--line);color:var(--ink-soft);
  border-radius:8px;padding:5px 12px;font-size:13px;cursor:pointer;font-family:inherit;line-height:1.2;
  -webkit-tap-highlight-color:transparent}
.toc-mobile-btn:active{transform:scale(.96)}
.toc-close-btn{display:none;position:absolute;top:10px;right:10px;
  background:transparent;border:0;color:var(--ink-soft);font-size:22px;cursor:pointer;line-height:1;padding:6px 10px}

/* Responsive */
@media (max-width:900px){
  .wrap,.wrap-narrow{padding:0 16px 60px}
  .hero{padding:42px 16px 26px}
  .hero h1{font-size:28px}
  .hero p{font-size:14.5px}
  .stat{padding:10px 18px;min-width:96px}
  .stat b{font-size:22px}

  .article-shell{grid-template-columns:1fr;gap:0;padding:18px 16px 60px}
  .article h1{font-size:24px}
  .article h2{font-size:19px;margin-top:28px}
  .article h3{font-size:16.5px}
  .article blockquote{font-size:14px;padding:10px 14px}
  .article table{font-size:12.5px;display:block;overflow-x:auto;white-space:nowrap}
  .article pre{font-size:12px}

  .topnav{padding:8px 12px;gap:8px}
  .topnav .back,.topnav .crumb{font-size:13px}
  .topnav .pdf-btn{padding:5px 10px;font-size:12.5px}
  .topnav .pn{padding:4px 9px;font-size:12px}

  /* 按钮显示 */
  .toc-mobile-btn{display:inline-flex}

  /* TOC 改为右侧抽屉 */
  aside.toc{
    position:fixed;top:0;right:-100%;
    height:100vh;width:min(86vw,360px);max-height:none;
    border-radius:0;border:0;border-left:1px solid var(--line);
    z-index:1000;overflow:auto;margin:0;padding:46px 18px 24px;
    transition:right .28s ease;
    box-shadow:-12px 0 36px rgba(0,0,0,.55);
  }
  aside.toc .toc-close-btn{display:block}
  body.toc-open aside.toc{right:0}

  /* 遮罩 */
  body.toc-open::before{content:"";position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:999;
    backdrop-filter:blur(2px)}
  body.toc-open{overflow:hidden}

  /* 首页卡片网格紧凑 */
  .cat-grid{grid-template-columns:1fr;gap:14px}
  .cat-card{padding:18px}
  .paper-list{grid-template-columns:1fr;gap:12px}
  .paper-card{padding:14px 16px}
  .paper-card h4{font-size:15px;padding-right:36px}
  .path{padding:18px}
}

@media (max-width:480px){
  .hero h1{font-size:24px}
  .topnav{flex-wrap:wrap}
  .topnav .pn{flex:1;text-align:center}
}
