/* Przeglądarka katalogu PDF (templates/CatalogPage.ss, javascript/catalog-viewer.js).
   Wygląd 1:1 z wersją zaakceptowaną przez klienta (katalog_2026/katalog-viewer.html). */
:root { --bg: #1f1f1f; --bar: #2b2b2b; --fg: #eee; --accent: #d4261c; }
* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--fg); font: 14px/1.4 system-ui, sans-serif; }
header { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; gap: 8px; padding: 8px 12px; background: var(--bar); }
header .title { font-weight: 600; margin-right: auto; }
header button, header a { background: #444; color: var(--fg); border: 0; border-radius: 4px; padding: 6px 10px; cursor: pointer; text-decoration: none; }
header button:disabled { opacity: .4; cursor: default; }
header a.download { background: var(--accent); }
header input { width: 3.5em; text-align: center; border: 0; border-radius: 4px; padding: 6px; }
#pages { max-width: 900px; margin: 0 auto; padding: 12px; }
/* scroll-margin: przejście do strony nie chowa jej górnej krawędzi pod przyklejonym paskiem */
.page { position: relative; margin: 0 auto 12px; background: #fff; box-shadow: 0 2px 8px rgba(0,0,0,.5); scroll-margin-top: 58px; }
.page canvas { display: block; width: 100%; height: auto; }
.page.loading::after { content: "Ładowanie strony…"; position: absolute; inset: 0; display: grid; place-items: center; color: #888; }
.status { padding: 48px 0; text-align: center; color: #aaa; }
.status a { color: var(--fg); }
