.pto-reader { --reader-bg:#f5f7fa; --reader-paper:#fff; --reader-text:#18212f; width:100%; max-width:100%; min-height:calc(100vh - 80px); min-height:calc(100dvh - 80px); background:var(--reader-bg); color:var(--reader-text); display:grid; grid-template-rows:auto minmax(0,1fr) auto; overflow:hidden; }
.pto-reader[data-theme="sepia"] { --reader-bg:#ddd3bd; --reader-paper:#f5ecd8; --reader-text:#3d3426; }
.pto-reader[data-theme="dark"] { --reader-bg:#14171c; --reader-paper:#20252c; --reader-text:#f2f4f7; }
.pto-reader-toolbar { min-height:62px; padding:8px 14px; display:flex; align-items:center; gap:12px; background:#fff; border-bottom:1px solid #d8dee8; position:relative; z-index:5; }
.pto-reader-title { min-width:0; display:flex; flex-direction:column; flex:1; }
.pto-reader-title strong,.pto-reader-title span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pto-reader-title span { color:#667085; font-size:.82rem; }
.pto-reader-tools { display:flex; align-items:center; gap:5px; }
.pto-reader-icon-button { width:40px; height:40px; border:0; background:transparent; color:#26354a; display:inline-grid; place-items:center; text-decoration:none; cursor:pointer; border-radius:6px; font-size:1.05rem; }
.pto-reader-icon-button:hover,.pto-reader-icon-button:focus-visible { background:#edf2f7; outline:2px solid var(--pto-accent,#d7a62a); outline-offset:1px; }
.pto-reader-as { font-size:.82rem; color:#58677a; margin-right:5px; }
.pto-reader-as strong { display:inline-block; max-width:180px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; vertical-align:bottom; }
.pto-reader-stage { min-height:0; position:relative; display:grid; grid-template-columns:52px minmax(0,1fr) 52px; align-items:stretch; overflow:hidden; }
.pto-reader-viewport { min-height:560px; height:calc(100vh - 190px); max-width:1120px; width:100%; margin:0 auto; background:var(--reader-paper); color:var(--reader-text); overflow:auto; position:relative; box-shadow:0 2px 14px rgba(22,34,51,.12); }
.pto-reader-viewport.is-turning-next { animation:pto-reader-turn-next 340ms cubic-bezier(.3,.7,.25,1); transform-origin:right center; }
.pto-reader-viewport.is-turning-prev { animation:pto-reader-turn-prev 340ms cubic-bezier(.3,.7,.25,1); transform-origin:left center; }
@keyframes pto-reader-turn-next { 0%{transform:perspective(1100px) rotateY(0);filter:brightness(1)} 45%{transform:perspective(1100px) rotateY(-4deg) translateX(-1.5%);filter:brightness(.92);box-shadow:-14px 2px 24px rgba(15,23,42,.18)} 100%{transform:perspective(1100px) rotateY(0);filter:brightness(1)} }
@keyframes pto-reader-turn-prev { 0%{transform:perspective(1100px) rotateY(0);filter:brightness(1)} 45%{transform:perspective(1100px) rotateY(4deg) translateX(1.5%);filter:brightness(.92);box-shadow:14px 2px 24px rgba(15,23,42,.18)} 100%{transform:perspective(1100px) rotateY(0);filter:brightness(1)} }
.pto-reader[data-format="pdf"] .pto-reader-viewport { background:#e7ebf0; padding:18px; box-sizing:border-box; }
.pto-reader-loading { min-height:100%; display:grid; place-items:center; color:#64748b; }
.pto-reader-error { width:min(620px,calc(100% - 32px)); margin:32px auto; padding:20px; color:#18212f; background:#fff; border-left:4px solid #b42318; box-shadow:0 2px 14px rgba(22,34,51,.12); }
.pto-reader-error strong { display:block; font-size:1.15rem; }
.pto-reader-error p { margin:8px 0 14px; }
.pto-reader-error summary { cursor:pointer; font-weight:600; }
.pto-reader-error pre { max-width:100%; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; font:12px/1.45 monospace; }
.pto-reader-page-button { border:0; background:transparent; color:var(--reader-text); font-size:1.5rem; cursor:pointer; }
.pto-reader-page-button:hover,.pto-reader-page-button:focus-visible { background:rgba(127,127,127,.12); outline:2px solid var(--pto-accent,#d7a62a); outline-offset:-3px; }
.pto-reader-page-button:disabled { opacity:.35; cursor:default; }
.pto-reader-panel { position:absolute; z-index:4; top:0; bottom:0; left:0; width:min(340px,88vw); overflow:auto; background:#fff; color:#172033; padding:18px; box-shadow:8px 0 24px rgba(15,23,42,.2); }
.pto-reader-panel h2 { font-size:1.1rem; margin:0 0 14px; }
.pto-reader-panel label { display:grid; gap:6px; margin:0 0 16px; font-weight:600; }
.pto-reader-panel select,.pto-reader-panel input { min-height:42px; width:100%; }
#pto-reader-toc { display:grid; gap:7px; }
#pto-reader-toc button { text-align:left; padding:10px 11px; border:0; border-radius:6px; background:transparent; color:#26354a; cursor:pointer; line-height:1.35; }
#pto-reader-toc button:hover,#pto-reader-toc button:focus-visible { background:#eef2f7; }
.pto-reader-note { padding:10px 38px 10px 0; border-bottom:1px solid #e3e8ef; position:relative; }
.pto-reader-note small { display:block; color:#667085; }
.pto-reader-delete-note { position:absolute;right:0;top:10px;width:32px;height:32px;border:0;background:transparent;color:#9b2c2c;cursor:pointer;border-radius:4px; }
.pto-reader-delete-note:focus-visible { outline:2px solid #9b2c2c; }
.pto-reader-word-sheet { position:fixed; z-index:50; left:50%; bottom:max(18px,env(safe-area-inset-bottom)); transform:translateX(-50%); width:min(520px,calc(100vw - 24px)); padding:20px; background:#fff; color:#172033; border-radius:8px; box-shadow:0 18px 50px rgba(15,23,42,.3); }
.pto-reader-word-sheet h2 { margin:0 36px 2px 0; font-size:1.4rem; }
.pto-reader-word-sheet>p { margin:5px 0 12px; line-height:1.5; }
.pto-reader-word-sheet small { color:#667085; }
.pto-reader-word-close { position:absolute; top:10px; right:10px; width:36px; height:36px; border:0; background:transparent; cursor:pointer; }
.pto-reader-word-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.pto-reader-highlight-yellow{background:#ffe58a}.pto-reader-highlight-green{background:#b9efc4}.pto-reader-highlight-blue{background:#b9dcff}.pto-reader-highlight-pink{background:#ffc6de}
.pto-reader-footer { min-height:48px; padding:7px 16px; display:flex; align-items:center; gap:14px; background:#fff; border-top:1px solid #d8dee8; }
.pto-reader-footer span { min-width:120px; font-size:.82rem; color:#58677a; }
.pto-reader-footer progress { flex:1; height:9px; accent-color:var(--pto-accent,#d7a62a); }
.pto-reader-footer progress{display:none}.pto-reader-scrubber{display:flex;align-items:center;gap:12px;flex:1;min-width:220px}.pto-reader-scrubber>input[type="range"]{flex:1;min-width:120px;accent-color:var(--pto-accent,#d7a62a);cursor:pointer}.pto-reader-scrubber>input[type="range"]:disabled{cursor:wait;opacity:.55}.pto-reader-page-jump{display:flex;align-items:center;gap:6px;white-space:nowrap}.pto-reader-page-jump input{width:64px;min-height:34px;padding:4px 6px;border:1px solid #b9c3d0;border-radius:5px;text-align:center}.pto-reader-page-jump output{min-width:2ch;color:#58677a;font-size:.82rem}.pto-reader-page-jump span{min-width:auto}
.pto-reader-viewport canvas { display:block; margin:18px auto; max-width:calc(100% - 36px); height:auto; background:#fff; box-shadow:0 3px 16px rgba(15,23,42,.24); outline:1px solid rgba(15,23,42,.1); }
.pto-reader[data-format="pdf"] .pto-reader-viewport canvas { margin:0 auto; max-width:100%; }
.pto-reader:fullscreen { min-height:100vh; height:100vh; min-height:100dvh; height:100dvh; }
.pto-reader-identity { padding:36px 16px 64px; max-width:960px; }
.pto-reader-back { display:inline-block; margin-bottom:18px; }
.pto-reader-identity-panel { display:grid; grid-template-columns:180px minmax(0,1fr); gap:30px; align-items:start; }
.pto-reader-identity-cover { width:180px; aspect-ratio:2/3; object-fit:cover; }
.pto-reader-choices { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
@media (max-width:780px) {
  .pto-reader { height:100vh; min-height:100vh; height:100dvh; min-height:100dvh; }
  .pto-reader-toolbar { display:grid; grid-template-columns:40px minmax(0,1fr); gap:4px; padding:6px 8px; }
  .pto-reader-toolbar>.pto-reader-icon-button:first-child { grid-column:1; grid-row:1; }
  .pto-reader-title { grid-column:2; grid-row:1; width:100%; }
  .pto-reader-title strong,.pto-reader-title span { max-width:100%; }
  .pto-reader-tools { grid-column:1/-1; grid-row:2; width:100%; min-width:0; gap:2px; justify-content:flex-end; }
  .pto-reader-tools [data-reader-action="fullscreen"] { display:none; }
  .pto-reader-icon-button { width:36px; height:36px; flex:0 0 36px; }
  .pto-reader-as { flex:1 1 auto; min-width:0; margin-right:auto; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .pto-reader-as-label { display:none; }
  .pto-reader-as strong { display:block; max-width:100%; overflow:hidden; text-overflow:ellipsis; }
  .pto-reader-stage { grid-template-columns:minmax(0,1fr); width:100%; }
  .pto-reader-page-button { position:absolute; z-index:3; top:50%; transform:translateY(-50%); width:36px; min-width:36px; height:64px; padding:0; background:rgba(255,255,255,.9); box-shadow:0 1px 7px rgba(15,23,42,.14); }
  .pto-reader-prev { left:0; border-radius:0 6px 6px 0; }
  .pto-reader-next { right:0; border-radius:6px 0 0 6px; }
  .pto-reader[data-theme="dark"] .pto-reader-page-button { background:rgba(30,41,59,.9); }
  .pto-reader-viewport { min-height:0; height:100%; box-shadow:none; max-width:100%; }
  .pto-reader[data-format="pdf"] .pto-reader-viewport { padding:10px; }
  .pto-reader-footer { padding:7px max(8px,env(safe-area-inset-right)) max(7px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left)); gap:7px; flex-wrap:wrap; }
  .pto-reader-footer span { min-width:70px; flex:0 0 auto; }
  .pto-reader-scrubber { order:3; flex-basis:100%; min-width:0; }
  .pto-reader-footer .bws-btn { flex:0 0 auto; max-width:100%; }
  .pto-reader-identity-panel { grid-template-columns:1fr; }
  .pto-reader-identity-cover { width:120px; }
}
@media (max-width:390px) { .pto-reader-stage{grid-template-columns:minmax(0,1fr)}.pto-reader-page-button{width:34px;min-width:34px}.pto-reader-icon-button{width:34px;height:34px;flex-basis:34px}.pto-reader-as strong{max-width:24vw}.pto-reader-scrubber{gap:7px}.pto-reader-page-jump input{width:52px}.pto-reader-page-jump .bws-btn{padding-inline:8px} }
@media (max-width:780px) and (pointer:coarse) { .pto-reader-page-button { display:none; } }
@media (prefers-reduced-motion:reduce) { .pto-reader-viewport.is-turning-next,.pto-reader-viewport.is-turning-prev { animation:none; } }
body.pto-reader-mode { overflow-x:hidden; }
body.pto-reader-mode #main-content { min-width:0; overflow:hidden; }
body.pto-reader-mode .pto-a11y-toggle { display:none; }
.pto-reader-toc-group{min-width:0}.pto-reader-toc-parent{display:flex;align-items:center;min-width:0;border-radius:6px;background:#f7f9fc}.pto-reader-toc-parent .pto-reader-toc-chapter{flex:1;font-weight:700;text-align:left}.pto-reader-toc-toggle{width:38px;min-width:38px;height:42px;border:0;background:transparent;color:#526071;cursor:pointer}.pto-reader-toc-toggle i{display:inline-block;transition:transform .16s ease}.pto-reader-toc-toggle[aria-expanded="true"] i{transform:rotate(90deg)}.pto-reader-toc-children{display:grid;gap:2px;padding:5px 0 2px 38px}.pto-reader-toc-child{width:100%;text-align:left;color:#455468}.pto-reader-debug textarea{width:100%;min-height:260px;font:12px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;resize:vertical}.pto-reader-debug .bws-btn{margin-top:10px}
