/* 课程阅读器 V1：首屏先交代问题与产出；正文专心阅读；大纲按需打开。 */

body.lesson-page{background:var(--surface)}
body.lesson-page #main{min-height:70vh}

.reader-shell{max-width:1120px;margin:0 auto;padding:0 28px 72px}
.reader-toolbar{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:58px;border-bottom:1px solid var(--line);color:var(--dim);font-size:13px}
.reader-back{display:inline-flex;align-items:center;min-height:44px;color:var(--ink-2)}
.reader-back:hover{color:var(--accent-text)}

.reader-outline{position:relative;z-index:80}
.reader-outline>summary{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;border-radius:8px;color:var(--ink);font-weight:700;cursor:pointer;list-style:none}
.reader-outline>summary::-webkit-details-marker{display:none}
.reader-outline>summary::before{content:"☰";font-size:13px;color:var(--dim)}
.reader-outline[open]>summary{background:var(--bg-2)}
.reader-outline .sp-txt-m{min-width:35px;color:var(--green-text);font-size:12px;font-weight:700;text-align:right}
.reader-outline-panel{position:absolute;top:50px;right:0;width:min(460px,calc(100vw - 32px));max-height:min(72vh,700px);overflow:auto;padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--sh-pop)}
.reader-outline-head{display:grid;gap:4px;padding:0 8px 16px;border-bottom:1px solid var(--line)}
.reader-outline-head b{font-size:15px;line-height:1.5}
.reader-outline-head span{color:var(--dim);font-size:12px;line-height:1.55}
.reader-outline-panel .side-toc{padding-top:12px}
.reader-outline-panel .s-ch{margin-top:12px}
.reader-outline-panel .s-ch-t{font-family:inherit;font-size:12px;font-weight:750;letter-spacing:0;color:var(--dim)}
.reader-outline-panel .s-l{min-height:42px;border-radius:7px;font-size:12.5px;line-height:1.45}
.reader-outline-panel .s-idx{font-family:inherit;font-size:11px}

.reader-grid{display:grid;grid-template-columns:minmax(0,760px) 260px;grid-template-areas:"hero rail" "article rail";gap:0 56px;align-items:start}
.reader-hero{grid-area:hero;padding:54px 0 42px;border-bottom:1px solid var(--line)}
.reader-problem-label{margin:0 0 12px;color:var(--accent-text);font-size:14px;font-weight:800}
.reader-template-concept .reader-problem-label{color:var(--blue)}
.reader-template-capstone .reader-problem-label{color:var(--gold)}
.reader-hero h1{max-width:740px;margin:0;font-size:clamp(32px,3.1vw,42px);line-height:1.23;letter-spacing:-.028em;text-wrap:balance;overflow-wrap:anywhere}
.reader-delivery{display:grid;gap:5px;margin:28px 0 24px;padding-left:18px;border-left:3px solid var(--green)}
.reader-delivery span{color:var(--green-text);font-size:13px;font-weight:750}
.reader-delivery strong{max-width:680px;font-size:17px;line-height:1.65;font-weight:750}
.reader-template-concept .reader-delivery{border-left-color:var(--blue)}
.reader-template-concept .reader-delivery span{color:var(--blue)}
.reader-template-capstone .reader-delivery{border-left-color:var(--gold)}
.reader-template-capstone .reader-delivery span{color:var(--gold)}
.reader-start{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border-radius:8px;background:var(--btn-bg);color:var(--btn-ink);font-size:15px;font-weight:800}
.reader-start:hover{background:var(--btn-hov)}
.reader-meta{display:flex;align-items:center;flex-wrap:wrap;gap:7px 13px;margin-top:20px;color:var(--dim);font-size:12.5px}
.reader-meta span+span::before{content:"·";margin-right:13px;color:var(--line-2)}
.reader-meta .l-free{padding:2px 7px;border:1px solid color-mix(in srgb,var(--green) 35%,var(--line));border-radius:999px;color:var(--green-text);font-weight:700}
.reader-meta .l-free::before{display:none}

.reader-rail{grid-area:rail;position:sticky;top:82px;margin-top:54px;padding:22px;background:var(--bg-2);border-radius:12px}
.reader-template-concept .reader-rail{background:color-mix(in srgb,var(--blue) 5%,var(--bg-2))}
.reader-template-capstone .reader-rail{background:color-mix(in srgb,var(--gold) 7%,var(--bg-2))}
.reader-rail-now{display:grid;gap:7px}
.reader-rail-now span,.reader-rail-output>span{color:var(--dim);font-size:12px;font-weight:700}
.reader-rail-now strong{font-size:16px;line-height:1.45}
.reader-rail .side-progress{margin:18px 0 22px}
.reader-rail-output{padding-top:19px;border-top:1px solid var(--line)}
.reader-rail-output p{margin:7px 0 0;font-size:13px;line-height:1.65;font-weight:650}
.reader-rail .btn-done{width:100%;min-height:46px;margin-top:20px;background:var(--btn-bg);color:var(--btn-ink)}
.reader-rail .btn-done:hover{background:var(--btn-hov)}
.reader-rail .btn-done.is-done{background:var(--green)}
.reader-help{margin-top:16px;border-top:1px solid var(--line)}
.reader-help summary{display:flex;align-items:center;min-height:44px;color:var(--ink-2);font-size:13px;font-weight:750;cursor:pointer}
.reader-help p{margin:0 0 8px;color:var(--dim);font-size:12.5px;line-height:1.7}
.reader-local-note{margin:16px 0 0;color:var(--dim);font-size:11.5px;line-height:1.6}

.reader-article{grid-area:article;min-width:0;padding-top:38px}
body.lesson-page .reader-article .lesson-body{max-width:760px;color:var(--ink);font-size:17px;line-height:1.82}
body.lesson-page .reader-article .lesson-body>p{max-width:720px;margin:16px 0;color:var(--ink-2)}
body.lesson-page .reader-article .lesson-body>h2{margin:52px 0 14px;font-size:27px;line-height:1.4;letter-spacing:-.018em;text-wrap:balance}
body.lesson-page .reader-article .lesson-body>h3{margin:34px 0 10px;font-size:20px;line-height:1.48}
body.lesson-page .reader-article .lesson-body .hn{display:inline;margin-right:8px;color:var(--dim);font-family:inherit;font-size:.72em;font-weight:700}
body.lesson-page .reader-article .problem-lead{margin:0 0 28px;padding:0;border:0;background:transparent}
body.lesson-page .reader-article .problem-kicker{display:none}
body.lesson-page .reader-article .problem-lead>p:last-child{max-width:700px;margin:0;color:var(--ink-2);font-size:18px;line-height:1.82}

/* 信息类型各用一种视觉语言：说明不套框，操作、软件界面、警告和验收彼此可辨。 */
body.lesson-page .reader-article .follow{margin:24px 0 38px;border:0;border-radius:10px;background:var(--bg-2);box-shadow:none}
body.lesson-page .reader-article .follow .f-head{border-bottom:1px solid var(--line)}
body.lesson-page .reader-article .teacher-call{margin:24px 0;padding:4px 0 4px 16px;border:0;border-left:3px solid var(--blue)}
body.lesson-page .reader-article :is(.c02-rollout-note,.c03-tour-tip,.risk-note,.warning){border:0;border-left:3px solid var(--gold);border-radius:0;background:color-mix(in srgb,var(--gold) 7%,var(--surface))}
body.lesson-page .reader-article :is(.lesson-close-bridge,.proof-result,.finish-proof,.final-proof){border-radius:0;box-shadow:none}
body.lesson-page .reader-article .lesson-close-bridge{margin-top:48px;padding:24px 0 0;border:0;border-top:3px solid var(--green);background:transparent}
body.lesson-page .reader-article .source-strip{display:none}

.lesson-sources{margin:58px 0 12px;padding-top:16px;border-top:1px solid var(--line)}
.lesson-sources>summary{display:flex;align-items:center;min-height:44px;color:var(--dim);font-size:13px;font-weight:700;cursor:pointer}
.lesson-sources .source-strip{display:grid;margin:0;padding:12px 0;border:0;background:transparent}
.lesson-sources .source-strip+ .source-strip{border-top:1px solid var(--line)}
.lesson-sources .source-strip>span{font-family:inherit;font-size:12px;font-weight:750}
.lesson-sources .source-strip a{font-size:13px}

.reader-article .lesson-pn{margin-top:58px;padding-top:24px;border-top:1px solid var(--line)}
.reader-article .pn{border:0;background:transparent}

@media(max-width:980px){
  .reader-shell{max-width:820px}
  .reader-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"hero" "rail" "article";gap:0}
  .reader-rail{position:static;margin:24px 0 0;padding:18px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:16px 22px;align-items:start}
  .reader-rail .side-progress{grid-column:1;margin:12px 0 0}
  .reader-rail-output{grid-column:2;grid-row:1 / span 2;padding:0 0 0 20px;border-top:0;border-left:1px solid var(--line)}
  .reader-rail .btn-done{grid-column:1;margin:0}
  .reader-help{grid-column:2;margin:0;padding-left:20px;border:0;border-left:1px solid var(--line)}
  .reader-local-note{grid-column:1 / -1;margin:0}
}

@media(max-width:640px){
  body.lesson-page .site-head{display:none}
  .reader-shell{padding:0 18px 50px}
  .reader-toolbar{min-height:50px}
  .reader-back{max-width:68%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
  .reader-outline>summary{padding:0 6px;font-size:12px}
  .reader-outline-panel{position:fixed;top:58px;right:12px;left:12px;width:auto;max-height:78vh;padding:16px}
  .reader-hero{padding:30px 0 28px}
  .reader-hero h1{font-size:29px;line-height:1.3;letter-spacing:-.022em}
  .reader-problem-label{margin-bottom:9px;font-size:13px}
  .reader-delivery{margin:22px 0 20px;padding-left:14px}
  .reader-delivery strong{font-size:15px;line-height:1.65}
  .reader-start{width:100%;min-height:50px}
  .reader-meta{margin-top:16px;font-size:11.5px}
  .reader-meta span:last-child{flex-basis:100%}
  .reader-meta span:last-child::before{display:none}
  .reader-rail{margin-top:18px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;padding:16px}
  .reader-rail .side-progress{grid-column:1;margin:5px 0 0}
  .reader-rail-output{display:none}
  .reader-rail .btn-done{grid-column:2;grid-row:1 / span 2;width:auto;min-width:112px;margin:0}
  .reader-help{grid-column:1 / -1;margin:8px 0 0;padding:0;border-left:0;border-top:1px solid var(--line)}
  .reader-local-note{display:none}
  .reader-article{padding-top:30px}
  body.lesson-page .reader-article .lesson-body{font-size:16px;line-height:1.8}
  body.lesson-page .reader-article .lesson-body>h2{scroll-margin-top:20px;margin-top:42px;font-size:22px;line-height:1.44}
  body.lesson-page .reader-article .lesson-body>h3{font-size:19px}
  body.lesson-page .reader-article .problem-lead>p:last-child{font-size:16px;line-height:1.8}
  .lesson-sources{margin-top:44px}
  .reader-article .lesson-pn{grid-template-columns:1fr;margin-top:44px}
}

@media(max-width:360px){
  .reader-shell{padding-inline:14px}
  .reader-hero h1{font-size:27px}
}
