:root { color-scheme: light; font-family: system-ui, sans-serif; color: #243139; background: #e8edf0; }
* { box-sizing: border-box; }
body { margin: 0; height: 100vh; height: 100dvh; display: grid; grid-template-rows: auto minmax(0, 1fr); }
header { background: white; padding: 14px 20px 10px; box-shadow: 0 1px 5px #0002; z-index: 1; }
.title-row, nav, .controls { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.title-row { justify-content: space-between; gap: 12px; }
h1 { margin: 0; font-size: 1.1rem; font-weight: 700; } h1 span { font-weight: 400; margin-left: 6px; }
a { color: #226457; text-underline-offset: 3px; } nav { font-size: .9rem; }
.download { border: 1px solid #226457; padding: 7px 10px; border-radius: 5px; text-decoration: none; }
.controls { margin-top: 12px; font-size: .9rem; gap: 8px; }
button, input, select { font: inherit; color: inherit; background: #fff; border: 1px solid #a6b2b9; border-radius: 4px; padding: 6px 8px; min-height: 34px; }
button { cursor: pointer; } button:disabled { cursor: default; opacity: .45; } button:hover:enabled { background: #eef7f4; }
#page-number { width: 4rem; } #page-count { min-width: 2.2rem; } #zoom { max-width: 7.4rem; }
:focus-visible { outline: 3px solid #368e7e; outline-offset: 2px; }
#status { font-size: .8rem; margin: 8px 0 0; color: #52616a; } #status.error { color: #a12222; }
main { position: relative; min-height: 0; } #viewerContainer { position: absolute; inset: 0; overflow: auto; }
.pdfViewer { padding: 16px 0; } .pdfViewer .page { box-shadow: 0 2px 12px #0002; }
@media (max-width: 550px) { header { padding: 10px 12px 8px; } h1 { font-size: 1rem; } nav { gap: 12px; } .controls { gap: 6px; } }
