/* Sample-only additions: banner, in-page summary/TOC page, demo reader (styles ported from read.html / sum.js) */
html,body{overflow-x:hidden}
.demo-banner{background:#3d6e8a;color:#fff;font-size:13px;line-height:1.45;padding:8px 16px;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;justify-content:center;text-align:center}
.demo-banner a{color:#fff;font-weight:600;white-space:nowrap}
.tools input{min-width:0;flex:1 1 220px}
.modes{flex-wrap:wrap}
@media (max-width:420px){.modes button{padding:9px 10px;font-size:14px}h1{font-size:24px}}
.cv span{word-break:keep-all}
.rec a.ri,.rec div.ri{cursor:pointer}
.ov{position:fixed;inset:0;z-index:50;overflow:auto;background:var(--bg);-webkit-overflow-scrolling:touch}
body.noscroll{overflow:hidden}
.doc .back{background:none;border:0;color:#8a5a34;font:inherit;font-size:15px;padding:0;cursor:pointer;text-decoration:underline}
.doc .top img{max-width:40vw}
.doc h1{word-break:keep-all}
.doc a.pv{cursor:pointer}
.notice{margin:22px 0 0;padding:14px 16px;border:1px dashed #8a5a34;border-radius:10px;background:var(--card);color:var(--ink);font-size:15px;line-height:1.6}
.notice b{color:#8a5a34}
.sumbar{position:sticky;top:0;z-index:5;display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:8px 0;background:var(--bg)}
.sumbar button,.sumbar select{font:inherit;font-size:14px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);cursor:pointer;max-width:100%}
.sumbar .pri{background:#8a5a34;color:#fff;border-color:#8a5a34}.sumbar .lv{font-size:12px;color:var(--muted)}
.doc .speaking{background:#f3e3a666;border-radius:4px;box-shadow:0 0 0 4px #f3e3a666}
.dlg .go.btn{border:0;cursor:pointer;font-family:inherit}
#dx .star{display:block;margin:10px auto 0}
#dsn{margin-top:12px}
#xb p{color:var(--ink);font-size:14px;line-height:1.6;margin:8px 0}
#xb .fakeqr{display:grid;grid-template-columns:repeat(7,14px);gap:2px;justify-content:center;margin:10px auto;padding:10px;background:#fff;border-radius:8px;width:max-content}
#xb .fakeqr i{width:14px;height:14px;background:#ddd}#xb .fakeqr i.k{background:#2b2420}
#ntd{border:0;border-radius:14px;padding:0;width:min(94vw,640px);max-height:88vh;background:var(--card);color:var(--ink)}
#ntd .in{padding:16px;position:relative}#ntd .x{position:absolute;right:8px;top:6px;background:none;border:0;font-size:22px;color:var(--muted);cursor:pointer}
#ntd .nt a{cursor:pointer}
/* ---- demo reader (from read.html) ---- */
.rd{--rbg:#2b2420;--bar:#1d1a17ee;--rink:#f4efe6;--btn:#8a5a34;--rmuted:#c9bdb0;background:var(--rbg);color:var(--rink);z-index:60}
.rd.night{--rbg:#111}
.rd .bar{position:sticky;top:0;display:flex;gap:6px;align-items:center;padding:8px 10px;background:var(--bar);z-index:3;flex-wrap:wrap}
.rd .bar a,.rd .bar button{color:#fff;background:var(--btn);border:0;border-radius:8px;padding:8px 12px;font-size:15px;text-decoration:none;cursor:pointer;font-family:inherit}
.rd .bar button[aria-pressed=true]{background:#3d7a4a}.rd .bar button:disabled{opacity:.45}
.rd .bar .t{flex:1;min-width:60px;font-size:14px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.rd .bar input{width:58px;padding:7px;border-radius:8px;border:0;font-size:15px;text-align:center}
.rd .bar .m{font-size:12px;color:var(--rmuted)}
@media (max-width:480px){.rd .bar{gap:4px;padding:6px}.rd .bar button{padding:7px 9px;font-size:14px}.rd .bar .t{flex-basis:100%;order:-1}.rd .bar input{width:48px}}
.rguide{max-width:1000px;margin:10px auto 0;padding:12px 14px;background:#fffdf8;color:#2b2420;border-radius:10px;font-size:14px;line-height:1.6}
.rguide ul{margin:6px 0 8px;padding-left:20px}.rguide button{border:0;border-radius:8px;padding:7px 14px;background:#8a5a34;color:#fff;font:inherit;font-size:14px;cursor:pointer}
@media (max-width:1030px){.rguide{margin:10px 10px 0}}
#rstage{max-width:1000px;margin:10px auto 0;overflow:auto;position:relative;touch-action:pan-x pan-y pinch-zoom}
#rpaper{position:relative;margin:0 auto;width:100%;aspect-ratio:1/1.414;background:#fff;color:#2b2420;box-shadow:0 4px 18px #0007;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8%;font-size:calc(var(--z,1)*clamp(13px,2.2vw,18px))}
.rd.night #rpaper{filter:invert(.92) hue-rotate(180deg)}
#rpaper .pg-no{position:absolute;top:4%;right:6%;font-size:.8em;color:#8a7a6a}
#rpaper .pg-body{max-width:30em;text-align:center}
#rpaper .pg-big{font-size:1.2em;line-height:1.7;font-weight:600;margin:0 0 14px;word-break:keep-all}
#rpaper .pg-small{font-size:.85em;color:#6f655c;margin:0;line-height:1.6}
#rpaper::before,#rpaper::after{content:"";position:absolute;left:8%;right:8%;height:1px;background:#e2d8c8}
#rpaper::before{top:9%}#rpaper::after{bottom:9%}
#rend{display:none;max-width:1000px;margin:14px auto 30px;text-align:center}#rend button{padding:10px 18px;border-radius:10px;border:0;background:#3d7a4a;color:#fff;font-size:15px;cursor:pointer}
.rd.last #rend{display:block}
.rd .hint{position:fixed;top:50%;transform:translateY(-50%);font-size:34px;color:#fff;opacity:0;pointer-events:none;transition:opacity .25s;z-index:2;text-shadow:0 2px 8px #000}
.rd .hint.l{left:10px}.rd .hint.r{right:10px}.rd .hint.on{opacity:.7}
#nd{border:0;border-radius:14px;padding:0;width:min(94vw,560px);max-height:88vh;background:#fffdf8;color:#2b2420}
#nd::backdrop{background:#0008}#nd .in{padding:16px 16px 18px;position:relative}#nd h3{margin:0 0 8px;font-size:18px}
#nd textarea{width:100%;min-height:120px;font-size:16px;line-height:1.5;padding:10px;border:1px solid #e2d8c8;border-radius:10px;font-family:inherit;resize:vertical}
#nd .row{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}#nd .row button{border:0;border-radius:8px;padding:9px 14px;font-size:15px;cursor:pointer;font-family:inherit;background:#e9dfd0;color:#2b2420}
#nd .row .pri{background:#8a5a34;color:#fff}#nd .x{position:absolute;right:10px;top:8px;border:0;background:none;font-size:24px;cursor:pointer;color:#6f655c}
#nd ul{list-style:none;padding:0;margin:12px 0 0;max-height:40vh;overflow:auto}#nd li{border-top:1px solid #eee3d3;padding:8px 2px}
#nd li .pg{color:#8a5a34;font-weight:600;cursor:pointer;background:none;border:0;padding:0;font-size:14px;font-family:inherit}#nd li .tx{white-space:pre-wrap;margin:4px 0;font-size:15px;line-height:1.5}
#nd li .ac button{background:none;border:0;color:#6f655c;font-size:13px;cursor:pointer;padding:2px 6px 2px 0}#nd .sm{font-size:12px;color:#6f655c}
#dx .star.dim{opacity:.55;border-style:dashed}
