/* A reading index inside the existing room, not another slide presentation. */
.jc-ledger-dialog { box-sizing:border-box; position:fixed; inset:0; width:100%; height:100dvh; max-width:none; max-height:none; margin:0; border:0; padding:36px clamp(20px,5vw,88px) 70px; overflow:auto; overscroll-behavior:contain; background:#f3f5f4; color:#252b2d; font:14px/1.8 'Jiancheng Sans',sans-serif; }
.jc-ledger-dialog::backdrop { background:#252b2d55; }
.jc-ledger-dialog[open] { animation:jc-ledger-arrive 320ms cubic-bezier(.22,1,.36,1); }
.jc-ledger-dialog * { box-sizing:border-box; }
.jc-ledger-dialog [hidden] { display:none!important; }
.jc-ledger-dialog :is(h1,h2,h3,p,dl,dd) { margin:0; }
.jc-ledger-dialog button,.jc-ledger-dialog input { font:inherit; color:inherit; }
.jc-ledger-dialog button { cursor:pointer; border:0; background:transparent; min-height:44px; }
.jc-ledger-dialog :is(button,input,summary,a):focus-visible { outline:2px solid #214fc4; outline-offset:4px; }
.jc-ledger-header { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; max-width:1280px; margin:auto; }
.jc-ledger-header p { font-size:12px; color:#59636a; }
.jc-ledger-header h1 { font-size:clamp(28px,3.2vw,44px); line-height:1.4; letter-spacing:-.035em; margin-top:14px; font-weight:550; }
.jc-ledger-close { position:fixed; top:22px; right:clamp(20px,5vw,88px); z-index:2; padding:8px 12px; background:#f3f5f4!important; box-shadow:0 0 0 6px #f3f5f4; }
.jc-ledger-intro { max-width:1280px; margin:22px auto 38px; }
.jc-ledger-intro>p { color:#48575e; }
.jc-ledger-intro details { margin-top:14px; font-size:12px; max-width:800px; color:#59636a; }
.jc-ledger-dialog summary { cursor:pointer; }
.jc-ledger-intro details p { margin-top:12px; }
.jc-ledger-layout { display:grid; grid-template-columns:180px minmax(0,1fr); gap:clamp(24px,5vw,80px); max-width:1280px; margin:auto; border-top:1px solid #cbd4d8; padding-top:24px; }
.jc-ledger-categories { align-self:start; position:sticky; top:0; display:flex; flex-direction:column; gap:4px; }
.jc-ledger-categories button { display:flex; align-items:center; justify-content:space-between; text-align:left; padding:10px 12px; font-size:13px; }
.jc-ledger-categories button span { font-size:10px; color:#59636a; }
.jc-ledger-categories button[aria-pressed=true] { background:#e3e9eb; color:#214fc4; }
.jc-ledger-search { padding-bottom:20px; }
.jc-ledger-search label { display:block; font-size:12px; margin-bottom:8px; color:#59636a; }
.jc-ledger-search input { width:100%; min-height:48px; border:1px solid #a8b8c0; background:transparent; padding:10px 14px; border-radius:0; }
.jc-ledger-count { font-size:11px; margin-top:12px!important; color:#59636a; }
.jc-ledger-entry { border-top:1px solid #cbd4d8; scroll-margin-top:84px; }
.jc-ledger-entry>summary { scroll-margin-top:84px; }
.jc-ledger-entry>summary { display:flex; gap:24px; justify-content:space-between; padding:24px 0; list-style:none; }
.jc-ledger-entry>summary::-webkit-details-marker { display:none; }
.jc-ledger-name { min-width:0; }
.jc-ledger-name h2 { font-size:20px; font-weight:550; line-height:1.5; }
.jc-ledger-name p { font-size:12px; color:#59636a; margin-top:8px; max-width:650px; }
.jc-ledger-meta { display:flex; flex-direction:column; text-align:right; gap:3px; flex-shrink:0; font-size:11px; color:#59636a; }
.jc-ledger-expand { color:#214fc4; margin-top:5px; }
.jc-ledger-entry[open] .jc-ledger-expand { font-size:0; }
.jc-ledger-entry[open] .jc-ledger-expand::after { content:'收起 −'; font-size:11px; }
.jc-ledger-body { padding:8px 0 30px; animation:jc-ledger-body 180ms ease-out; }
.jc-ledger-body h3 { font-size:12px; color:#59636a; font-weight:400; margin-bottom:18px; }
.jc-ledger-units>div { display:grid; grid-template-columns:minmax(150px,1fr) 2fr; gap:24px; border-top:1px solid #e0e5e6; padding:14px 0; }
.jc-ledger-units dt { font-size:13px; overflow-wrap:anywhere; }
.jc-ledger-units dd { font-size:13px; color:#48575e; }
.jc-ledger-update { border-left:2px solid #879da8; padding-left:14px; margin-top:20px!important; font-size:12px; }
.jc-ledger-source { margin-top:22px; font-size:11px; color:#59636a; }
.jc-ledger-source p { margin-top:10px; }
.jc-ledger-site { display:inline-block; min-height:44px; padding-top:16px; color:#214fc4; text-decoration:none; font-size:12px; }
.jc-ledger-empty { padding:44px 0; }
.jc-ledger-empty h2 { font-size:22px; font-weight:500; }
.jc-ledger-empty p { color:#59636a; margin:12px 0; }
.jc-ledger-empty button { color:#214fc4; }
.jc-ledger-footnote { padding-top:32px; border-top:1px solid #cbd4d8; font-size:11px; color:#59636a; }
@keyframes jc-ledger-arrive { from { opacity:0; transform:translateY(28px); } to { opacity:1; transform:none; } }
@keyframes jc-ledger-body { from { opacity:0; transform:translateY(-5px); } to { opacity:1; transform:none; } }
@media(max-width:700px) {
 .jc-ledger-dialog { padding:22px 20px 50px; }
 .jc-ledger-header { gap:12px; }
 .jc-ledger-header h1 { font-size:27px; }
 .jc-ledger-close { top:18px; padding:8px 4px; font-size:11px!important; }
 .jc-ledger-intro { margin:18px 0 24px; }
 .jc-ledger-layout { display:block; padding-top:16px; }
 .jc-ledger-categories { position:static; flex-direction:row; overflow-x:auto; gap:8px; padding-bottom:16px; }
 .jc-ledger-categories button { white-space:nowrap; gap:16px; border:1px solid #d8dedf; }
 .jc-ledger-entry>summary { gap:12px; padding:22px 0; }
 .jc-ledger-name h2 { font-size:17px; }
 .jc-ledger-meta { font-size:10px; }
 .jc-ledger-units>div { grid-template-columns:1fr; gap:5px; }
}
@media(prefers-reduced-motion:reduce) { .jc-ledger-dialog[open],.jc-ledger-body { animation:none; } }

/* Detailed records use an annotated reading flow, not a second slide deck. */
.jc-ledger-story { max-width:850px; padding:6px 0 28px; }
.jc-ledger-story :is(h4,h5) { margin:0; font-weight:550; }
.jc-ledger-kicker { color:#526972; font-size:11px; }
.jc-ledger-story h3.jc-ledger-thesis { color:#252b2d; font-size:clamp(23px,2.1vw,30px); line-height:1.55; font-weight:550; margin:16px 0; max-width:700px; }
.jc-ledger-lead { color:#48575e; font-size:15px; line-height:1.95; max-width:740px; }
.jc-ledger-jump { display:flex; flex-wrap:wrap; gap:0 22px; margin:20px 0 8px; border-bottom:1px solid #cbd4d8; }
.jc-ledger-jump button { padding:10px 0; font-size:12px; color:#214fc4; }
.jc-ledger-chapter { padding:30px 0; scroll-margin-top:84px; outline-offset:5px; }
.jc-ledger-chapter+.jc-ledger-chapter { border-top:1px solid #d6dfe1; }
.jc-ledger-chapter h4 { font-size:11px; color:#526972; letter-spacing:.02em; margin-bottom:18px; }
.jc-ledger-chapter h5 { font-size:17px; line-height:1.7; margin-bottom:10px; }
.jc-ledger-chapter p { font-size:14px; line-height:2; max-width:740px; color:#3e5058; }
.jc-ledger-flow { margin:0; padding:0 0 0 24px; list-style:decimal-leading-zero; }
.jc-ledger-flow li { padding:0 0 22px 12px; }
.jc-ledger-flow li:last-child { padding-bottom:0; }
.jc-ledger-flow li::marker { color:#69808a; font-size:11px; }
.jc-ledger-decision+.jc-ledger-decision { margin-top:26px; }
.jc-ledger-chapter p.jc-ledger-tradeoff { color:#5a666d; font-size:12px; line-height:1.9; margin-top:10px; }
.jc-ledger-incident>div { display:grid; grid-template-columns:96px minmax(0,1fr); gap:18px; padding:16px 0; border-bottom:1px solid #dce3e5; }
.jc-ledger-incident dt { font-size:12px; color:#526972; }
.jc-ledger-incident dd { font-size:14px; line-height:2; color:#3e5058; }
.jc-ledger-proof { border-top:1px solid #cbd4d8; padding:0 0 6px; }
.jc-ledger-proof>summary { display:flex; gap:16px; justify-content:space-between; align-items:center; list-style:none; padding:18px 0; min-height:54px; font-size:14px; }
.jc-ledger-proof>summary::-webkit-details-marker { display:none; }
.jc-ledger-proof-hint { white-space:nowrap; font-size:11px; color:#214fc4; }
.jc-ledger-proof[open] { padding-bottom:24px; }
.jc-ledger-proof[open] .jc-ledger-proof-hint { font-size:0; }
.jc-ledger-proof[open] .jc-ledger-proof-hint::after { content:'收起 −'; font-size:11px; }
.jc-ledger-chapter p.jc-ledger-proof-source { font-size:11px; margin-bottom:12px; color:#526972; overflow-wrap:anywhere; }
.jc-ledger-proof pre { max-width:100%; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; padding:20px; background:#e6ecee; font:12px/1.9 monospace; color:#253b45; }
.jc-ledger-story p.jc-ledger-takeaway { max-width:740px; margin-top:20px; padding:8px 0 8px 18px; border-left:2px solid #829ba7; font-size:15px; line-height:1.9; color:#253b45; }
.jc-ledger-next { margin-top:24px; color:#526972; font-size:12px; }
.jc-ledger-next summary { min-height:44px; padding:10px 0; }
.jc-ledger-next li { margin-bottom:12px; }
.jc-ledger-capture { margin:28px 0 8px; border-top:1px solid #cbd4d8; padding:26px 0; }
.jc-ledger-capture h4 { font-size:22px; line-height:1.6; margin:12px 0; }
.jc-ledger-capture-intro { font-size:14px; line-height:1.9; color:#3e5058; max-width:740px; }
.jc-ledger-capture-controls { display:flex; gap:24px; margin:20px 0 12px; }
.jc-ledger-capture-controls button { padding:8px 0; border-bottom:2px solid transparent; font-size:13px; }
.jc-ledger-capture-controls button[aria-pressed=true] { color:#214fc4; border-bottom-color:#214fc4; }
.jc-ledger-capture figure { margin:0; }
.jc-ledger-capture-screen { border:1px solid #cbd4d8; background:white; }
.jc-ledger-capture img { display:block; width:100%; height:auto; }
.jc-ledger-capture figcaption { min-height:66px; padding:16px 0 8px; font-size:13px; line-height:1.9; color:#3e5058; }
.jc-ledger-original { display:inline-block; font-size:12px; color:#214fc4; min-height:44px; padding:8px 0; }
.jc-ledger-capture-scope { font-size:11px; line-height:1.9; color:#526972; max-width:740px; }
.jc-ledger-capture-fallback { padding:28px; font-size:14px; line-height:1.9; }
.jc-ledger-ownership { margin-top:24px; }
@media(max-width:700px) {
 .jc-ledger-meta { max-width:96px; }
 .jc-ledger-lead { font-size:14px; }
 .jc-ledger-jump { gap:0 18px; }
 .jc-ledger-chapter { padding:26px 0; }
 .jc-ledger-incident>div { grid-template-columns:1fr; gap:6px; }
 .jc-ledger-proof>summary { align-items:flex-start; }
 .jc-ledger-proof pre { padding:14px; font-size:11px; }
 .jc-ledger-capture h4 { font-size:20px; }
}
