 button.disabled,
 button:disabled {
     opacity: 0.35;
     cursor: not-allowed;
     pointer-events: none;
 }

 .catalog-page {
     align-items: center;
     cursor: zoom-in;
     display: flex;
     justify-content: center;
     transition: opacity 0.2s ease;
 }

 .catalog-page img {
     display: block;
     max-width: 100%;
     max-height: calc(100vh - 20px);
     width: auto;
     height: auto;
 }

 .catalog-pages {
     height: 100%;
     overflow: hidden;
     display: flex;
     flex-direction: column;
     justify-content: flex-start;
 }

 .catalog-page.zoomed {
     position: relative;
     z-index: 200;
     cursor: grab;
     overflow: auto;
     max-height: calc(100vh - 120px);
 }

 .catalog-page.zoomed:active {
     cursor: grabbing;
 }

 .catalog-page.zoomed::-webkit-scrollbar {
     width: 10px;
     height: 10px;
 }

 .catalog-page.zoomed::-webkit-scrollbar-thumb {
     background: rgba(0, 0, 0, 0.25);
     border-radius: 6px;
 }

 .catalog-page.zoomed img {
     transform: scale(2);
     transform-origin: top left;
     transition: transform 0.25s ease;
 }

 .catalog-row {
     width: 100%;
     height: 100%;
     flex-shrink: 0;
     display: flex;
     justify-content: center;
     align-items: center;
 }

 .catalog-row.double {
     justify-content: center;
 }

 .catalog-row.single {
     justify-content: center;
 }

 .catalog-toolbar {
     position: sticky;
     top: 0;
     background: #fff;
     z-index: 10;
     border-bottom: 1px solid #eee;
 }

 .catalog-toolbar-vertical {
     position: fixed;
     top: 50%;
     right: 16px;
     transform: translateY(-50%);
     display: flex;
     flex-direction: column;
     align-items: center;
     gap: 12px;
     background: rgba(255, 255, 255, 0.95);
     border: 1px solid #e5e5e5;
     border-radius: 8px;
     padding: 10px 8px;
     z-index: 100;
 }

 .catalog-toolbar-vertical button {
     background: none;
     border: none;
     font-size: 22px;
     cursor: pointer;
 }

 .catalog-viewer {
     margin: 0 auto;
     position: relative;
     height: 100vh;
     max-width: 90vw;
     overflow: hidden;
     width: 100%;
 }

 .catalog-viewer.zoom-active .catalog-row.double .catalog-page:not(.zoomed) {
     opacity: 0.35;
     pointer-events: none;
 }

 .edge-nav {
     position: fixed;
     top: 50%;
     transform: translateY(-50%);
     background: rgba(255, 255, 255, 0.85);
     border: 1px solid #ddd;
     border-radius: 50%;
     width: 42px;
     height: 42px;
     font-size: 24px;
     cursor: pointer;
     z-index: 900;
 }

 .edge-nav.left {
     left: 16px;
 }

 .edge-nav.right {
     right: 72px;
 }

 .page-indicator {
     font-size: 14px;
     color: #333;
     white-space: nowrap;
 }

 @media (max-width: 768px) {

     .catalog-toolbar-vertical,
     .edge-nav {
         display: none;
     }
 }