:root { color-scheme: light; --reader-toolbar-height: 56px; --reader-surface: #e6e7e9; --reader-ink: #30343b; --reader-line: #d4d6da; }
* { box-sizing: border-box; }
body { margin: 0; background: var(--reader-surface); color: var(--reader-ink); font-family: -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.reader-toolbar { height: var(--reader-toolbar-height); display: flex; align-items: center; gap: 16px; padding: 0 20px; background: #fafafa; border-bottom: 1px solid var(--reader-line); }
.reader-title { font-size: 14px; font-weight: 600; margin-right: auto; white-space: nowrap; }
.reader-pagination { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 13px; }
button, input, select { font: inherit; color: inherit; }
button { width: 44px; height: 44px; border: 0; background: transparent; border-radius: 6px; font-size: 26px; cursor: pointer; }
button:hover { background: #e9eaec; }
button:disabled { opacity: .35; cursor: default; }
input { width: 46px; height: 36px; text-align: center; border: 1px solid var(--reader-line); border-radius: 5px; background: white; appearance: textfield; }
input::-webkit-inner-spin-button { appearance: none; }
select { height: 44px; max-width: 116px; border: 0; background: transparent; font-size: 13px; cursor: pointer; }
:focus-visible { outline: 2px solid #536d8e; outline-offset: 2px; }
#reader { height: calc(100vh - var(--reader-toolbar-height)); height: calc(100dvh - var(--reader-toolbar-height)); overflow: auto; overflow-y: scroll; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
#pages { width: max-content; min-width: 100%; padding: 20px 12px 28px; }
.pdf-page { position: relative; margin: 0 auto 18px; background: white; box-shadow: 0 1px 5px #0002; overflow: hidden; }
.pdf-page:last-child { margin-bottom: 0; }
.pdf-page canvas { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.page-placeholder { position: absolute; inset: 0; display: grid; place-items: center; color: #767b83; font-size: 13px; }
#status, #fallback, noscript p { padding: 28px 20px; text-align: center; font-size: 14px; line-height: 1.8; }
#fallback a, .page-error a { color: #354c6c; text-underline-offset: 4px; }
.page-error { padding: 30px 16px; text-align: center; line-height: 1.8; }
#native-pdf { display: block; width: 100%; height: 100%; border: 0; }
@media(max-width:540px) {
  :root { --reader-toolbar-height: 52px; }
  .reader-toolbar { gap: 4px; padding: 0 8px; }
  .reader-title { font-size: 12px; }
  .reader-pagination { gap: 4px; }
  input { width: 38px; }
  button { width: 36px; height: 44px; }
  select { max-width: 94px; font-size: 12px; }
  #pages { padding: 8px 4px 20px; }
  .pdf-page { margin-bottom: 8px; }
}

/* Keep language selection visible without crowding the reading controls. */
#language { width: 104px; flex-shrink: 0; }
#download-pdf { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 10px; border: 1px solid var(--reader-line); border-radius: 6px; background: white; color: var(--reader-ink); font-size: 14px; text-decoration: none; white-space: nowrap; flex-shrink: 0; }
#download-pdf:hover { background: #e9eaec; }
@media(max-width:760px) {
  :root { --reader-toolbar-height: 100px; }
  .reader-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; grid-template-areas: "title download language" "pagination pagination zoom"; gap: 0 8px; padding: 4px 12px; }
  .reader-title { grid-area: title; font-size: 14px; }
  #language { grid-area: language; justify-self: end; font-size: 14px; width: 82px; }
  #download-pdf { grid-area: download; }
  .reader-pagination { grid-area: pagination; }
  #zoom { grid-area: zoom; justify-self: end; font-size: 14px; max-width: 108px; }
  .reader-pagination button { width: 44px; }
  .native-toolbar { grid-template-areas: "title download language"; }
}
