/* Page-scoped reader: the site's shared shell remains the source of navigation. */
.pdf-tool-page { background:#f7f7f5; color:#18181b; }
.pdf-tool { padding:110px 0 64px; min-height:80vh; --pdf-blue:#2952e3; }
.pdf-tool [hidden] { display:none!important; }
.pdf-tool .container { max-width:1360px; }
.pdf-heading { display:flex; align-items:center; gap:24px; margin-bottom:24px; }
.pdf-heading h1 { margin:0; font-size:24px; line-height:1.3; letter-spacing:-.035em; }
.pdf-heading .project-back { margin:0; min-height:44px; display:inline-flex; align-items:center; }
.pdf-toolbar { display:flex; flex-wrap:wrap; gap:16px; align-items:center; padding:16px; border:1px solid #e2e2e6; border-radius:12px; background:#fff; }
.pdf-tool button,.pdf-file-button { display:inline-flex; min-height:44px; padding:10px 15px; border:1px solid #d8d8de; border-radius:8px; background:#fff; color:#18181b; align-items:center; justify-content:center; font:inherit; font-size:13px; cursor:pointer; }
.pdf-tool button:hover { border-color:#2952e3; }
.pdf-tool button:disabled { opacity:.5; cursor:default; }
.pdf-tool button:focus-visible,.pdf-tool select:focus-visible,.pdf-file-button:focus-within { outline:2px solid var(--pdf-blue); outline-offset:3px; }
.pdf-file-button { position:relative; overflow:hidden; background:var(--pdf-blue); border-color:var(--pdf-blue); color:#fff; flex-shrink:0; }
.pdf-file-button input { position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; height:100%; }
.pdf-languages { display:flex; align-items:center; gap:12px; flex:1; }
.pdf-languages label { display:grid; gap:4px; min-width:0; }
.pdf-languages label>span { font-size:11px; color:#62626b; }
.pdf-languages select { min-height:36px; max-width:180px; padding:4px 24px 4px 0; border:0; color:#18181b; background:transparent; font:inherit; font-size:14px; }
.pdf-mode { display:flex; gap:3px; padding:3px; border-radius:9px; background:#f1f1f3; }
.pdf-mode button { border-color:transparent; background:transparent; }
.pdf-mode button[aria-pressed=true] { background:#fff; border-color:#e2e2e6; color:var(--pdf-blue); }
.pdf-drop { display:grid; min-height:300px; margin-top:20px; padding:40px 20px; align-content:center; justify-items:center; gap:12px; border:1px dashed #c9c9d2; border-radius:12px; background:#fff; text-align:center; }
.pdf-drop strong { font-size:20px; font-weight:550; letter-spacing:-.02em; }
.pdf-drop p { margin:0; color:#62626b; font-size:13px; }
.pdf-drop.is-dragging { border-color:var(--pdf-blue); background:#f0f3ff; }
.pdf-error { margin:16px 0; padding:13px 16px; border-radius:8px; background:#fff2ed; color:#8a3127; font-size:14px; line-height:1.65; }
.pdf-reader { margin-top:20px; }
.pdf-reader-bar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:14px; }
.pdf-file-meta { display:grid; gap:5px; min-width:0; }
.pdf-file-meta strong { font-size:14px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pdf-file-meta span { font-size:12px; color:#62626b; min-height:1.5em; }
.pdf-actions { display:flex; gap:8px; flex-shrink:0; }
.pdf-actions button:first-child { background:var(--pdf-blue); color:#fff; border-color:var(--pdf-blue); }
.pdf-view-controls { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
.pdf-pagination { display:flex; justify-content:center; align-items:center; gap:12px; }
.pdf-pagination span { font-size:13px; min-width:105px; text-align:center; }
.pdf-columns { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:20px; align-items:start; }
.pdf-columns>section { min-width:0; }
.pdf-columns h2 { margin:0 0 12px; color:#62626b; font-size:12px; font-weight:500; }
.pdf-page-frame { position:relative; min-height:240px; max-height:78vh; overflow:auto; padding:1px; overscroll-behavior:contain; border:1px solid #e2e2e6; background:#efeff2; }
.pdf-page-surface { position:relative; max-width:none; margin-inline:auto; overflow:hidden; background:#fff; box-shadow:0 0 0 1px #e2e2e6; }
.pdf-page-surface canvas { display:block; max-width:none; height:auto!important; }
.pdf-translations>[data-pdf-blocks] { padding:20px; border:1px solid #e2e2e6; border-radius:8px; background:#fff; min-height:240px; }
.pdf-tool .pdf-block { display:block; width:100%; margin:0 0 12px; padding:14px; border:1px solid transparent; text-align:start; line-height:1.9; font-size:var(--pdf-reading-size,15px); overflow-wrap:anywhere; }
.pdf-tool .pdf-block:last-child { margin-bottom:0; }
.pdf-tool .pdf-block.is-pending { color:#62626b; background:#f7f7f8; font-size:13px; }
.pdf-tool .pdf-block.is-active { border-color:#2952e3; background:#f0f3ff; }
.pdf-block:dir(rtl) { text-align:right; }
.pdf-page-note { margin:0; color:#62626b; line-height:1.8; font-size:14px; }
.pdf-reader[data-mode=translated] .pdf-original { display:none; }
.pdf-reader[data-mode=translated] .pdf-columns { display:block; max-width:800px; margin:auto; }
.pdf-notice,.pdf-session-note { max-width:900px; margin:18px 0 0; color:#62626b; font-size:12px; line-height:1.8; }
.pdf-notice a { color:#2952e3; text-decoration:underline; }
.pdf-session-note { margin-top:5px; }
.pdf-selection { position:fixed; z-index:120; right:24px; bottom:24px; width:min(440px,calc(100vw - 32px)); max-height:65vh; padding:20px; border:1px solid #d8d8de; border-radius:14px; background:#fff; box-shadow:0 12px 50px #18181b1f; overflow:auto; }
.pdf-selection-head { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.pdf-selection-head h2 { margin:0; font-size:14px; font-weight:600; }
.pdf-selection-head button { padding:0; min-width:44px; font-size:22px; border:0; }
.pdf-selection-source { margin:12px 0; padding-bottom:16px; border-bottom:1px solid #e2e2e6; color:#62626b; font-size:13px; line-height:1.7; overflow-wrap:anywhere; max-height:140px; overflow:auto; }
.pdf-selection-result { font-size:15px; line-height:1.85; white-space:pre-wrap; overflow-wrap:anywhere; }
.pdf-selection-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:16px; }
/* PDF.js TextLayer positioning, scoped to this reader. */
.pdf-tool .textLayer { position:absolute; inset:0; overflow:clip; opacity:1; line-height:1; text-align:initial; letter-spacing:normal; word-spacing:normal; text-size-adjust:none; -webkit-text-size-adjust:none; forced-color-adjust:none; transform-origin:0 0; --min-font-size:1; --text-scale-factor:calc(var(--total-scale-factor) * var(--min-font-size)); --min-font-size-inv:calc(1 / var(--min-font-size)); }
.pdf-tool .textLayer :is(span,br) { position:absolute; color:transparent; white-space:pre; cursor:text; transform-origin:0 0; user-select:text; -webkit-user-select:text; }
.pdf-tool .textLayer>.markedContent { display:contents; }
.pdf-tool .textLayer>:not(.markedContent),.pdf-tool .textLayer .markedContent span:not(.markedContent) { z-index:1; --font-height:0; font-size:calc(var(--text-scale-factor) * var(--font-height)); --scale-x:1; --rotate:0deg; transform:rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv)); }
.pdf-tool .textLayer ::selection { background:#2952e344; color:transparent; }
.pdf-tool .textLayer .is-active { background:#2952e333; }
.pdf-tool .textLayer[data-main-rotation="90"] { transform:rotate(90deg) translateY(-100%); }
.pdf-tool .textLayer[data-main-rotation="180"] { transform:rotate(180deg) translate(-100%,-100%); }
.pdf-tool .textLayer[data-main-rotation="270"] { transform:rotate(270deg) translateX(-100%); }
@media(max-width:900px) { .pdf-tool { padding-top:100px; } .pdf-toolbar { gap:12px; } .pdf-mode { margin-left:auto; } .pdf-columns { gap:14px; } }
@media(max-width:680px) { .pdf-tool { padding-top:92px; } .pdf-heading { gap:20px; margin-bottom:16px; } .pdf-heading h1 { font-size:22px; } .pdf-toolbar { padding:12px; } .pdf-languages { justify-content:flex-end; gap:8px; } .pdf-languages select { max-width:105px; font-size:13px; } .pdf-mode { width:100%; } .pdf-mode button { flex:1; } .pdf-drop { min-height:260px; } .pdf-reader-bar { align-items:stretch; flex-direction:column; gap:12px; } .pdf-actions { flex-wrap:wrap; } .pdf-actions button { flex:1; padding:10px; } .pdf-columns { grid-template-columns:minmax(0,1fr); gap:24px; } .pdf-translations>[data-pdf-blocks] { padding:12px; } .pdf-selection { right:16px; bottom:16px; padding:16px; } .pdf-notice { font-size:11px; } }
@media(prefers-reduced-motion:reduce) { .pdf-tool * { scroll-behavior:auto!important; } }

.pdf-zoom { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.pdf-zoom>button { min-width:44px; padding:8px 12px; }
.pdf-zoom-value { display:flex; align-items:center; gap:2px; min-height:44px; padding:0 10px; background:#fff; border:1px solid #d8d8de; border-radius:8px; font-size:13px; }
.pdf-zoom-value input { width:48px; padding:0; border:0; background:transparent; text-align:right; font:inherit; color:inherit; -moz-appearance:textfield; }
.pdf-zoom-value input::-webkit-inner-spin-button,.pdf-zoom-value input::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.pdf-zoom-value:focus-within { outline:2px solid #2952e3; outline-offset:3px; }
.pdf-zoom-fit[aria-pressed=true] { color:#2952e3; }
@media(max-width:680px) { .pdf-view-controls { justify-content:center; } .pdf-pagination { width:100%; } .pdf-zoom { justify-content:center; } .pdf-page-frame { max-height:70vh; } }
