.publication{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}
.publication h2{font-size:18px;line-height:1.4;color:var(--ink);margin:0 0 8px;font-weight:600;overflow-wrap:anywhere}
.publication p{margin:6px 0;font-size:14px}
.publication .copyright{font-size:12px;color:var(--muted);max-width:85ch}
.pdf-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}
.pdf-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);font:inherit;font-size:14px;font-weight:600;cursor:pointer;text-align:center}
.pdf-button.primary{background:var(--teal-ink);border-color:var(--teal-ink);color:var(--bg)}
.pdf-button:hover{border-color:var(--teal-ink)}
.pdf-button:disabled{opacity:.5;cursor:wait}
.pdf-button:focus-visible,.pdf-toolbar input:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
.pdf-button svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;flex:none}
.pdf-viewer{margin-top:20px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--soft)}
.pdf-viewer[hidden]{display:none}
.pdf-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px;background:var(--bg);border-bottom:1px solid var(--line)}
.pdf-toolbar .pdf-button{padding:6px;min-width:44px}
.pdf-toolbar label{display:flex;align-items:center;gap:6px;font-size:13px}
.pdf-toolbar input{width:58px;min-height:44px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink);font:inherit;text-align:center}
.pdf-toolbar .pdf-close{margin-left:auto}
.pdf-pages{overflow:auto;max-height:78vh;min-height:240px;padding:12px;text-align:center;overscroll-behavior:contain}
.pdf-pages canvas{display:block;margin:auto;background:var(--bg);max-width:none}
.pdf-status{font-size:13px;color:var(--muted);margin:10px 0}
@media(max-width:480px){.pdf-actions .pdf-button{flex:1}.pdf-toolbar{gap:5px;padding:8px}.pdf-pages{padding:6px}}