.catalogue-toolbar {
    align-items: center;
    background: #111827;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    padding: .75rem;
}

.catalogue-toolbar-group { align-items: center; display: flex; gap: .35rem; }
.catalogue-toolbar button, .catalogue-toolbar a {
    align-items: center; background: #374151; border: 1px solid #4b5563; border-radius: .5rem;
    color: white; display: inline-flex; font-size: .75rem; font-weight: 600; justify-content: center;
    min-height: 2.25rem; min-width: 2.25rem; padding: .4rem .65rem;
}
.catalogue-toolbar button:hover, .catalogue-toolbar a:hover { background: #4b5563; }
.catalogue-toolbar input { border: 1px solid #6b7280; border-radius: .5rem; font-size: .75rem; min-height: 2.25rem; }
.catalogue-toolbar [data-pdf-page] { padding: .35rem; text-align: center; width: 3.5rem; }
.catalogue-toolbar [data-pdf-search] { min-width: 13rem; padding: .4rem .7rem; }
.catalogue-search-group { margin-left: auto; }
.catalogue-loading, .catalogue-pdf-error { background: white; padding: 2rem; text-align: center; }
.catalogue-progress { appearance: none; background: #e5e7eb; border: 0; border-radius: 999px; height: .5rem; overflow: hidden; width: 100%; }
.catalogue-progress::-webkit-progress-bar { background: #e5e7eb; }
.catalogue-progress::-webkit-progress-value { background: #dc2626; transition: width .2s ease; }
.catalogue-progress::-moz-progress-bar { background: #dc2626; }
.catalogue-pdf-error { color: #991b1b; }
.catalogue-pdf-error button { background: #dc2626; border-radius: .75rem; color: white; margin-top: 1rem; padding: .6rem 1rem; }
.catalogue-pdf-error .catalogue-error-link { background: #fff; border: 1px solid #fecaca; border-radius: .75rem; color: #991b1b; display: inline-flex; font-size: .875rem; font-weight: 600; padding: .6rem 1rem; }
.catalogue-pdf-stage { height: min(78vh, 920px); position: relative; }
.catalogue-pdf-container { inset: 0; overflow: auto; position: absolute; }
.catalogue-pdf-container .pdfViewer { min-height: 100%; }
.catalogue-pdf-container .pdfViewer .page { margin: 12px auto; }

@media (max-width: 900px) {
    .catalogue-search-group { margin-left: 0; order: 3; width: 100%; }
    .catalogue-search-group [data-pdf-search] { flex: 1; min-width: 0; }
    .catalogue-pdf-stage { height: 70vh; }
}
