/* ═══════════════════════════════════════════
   PDFify — Vanilla JS Plugin Styles  v2.0.1
   ─────────────────────────────────────────
   Drop-in CSS for the pdfify.js plugin.
   All classes use .pdfify- prefix.
   ═══════════════════════════════════════════ */

:root {
  /* ── Brand palette ── */
  --pdfify-color-primary-blue: rgba(20, 50, 117, 1);
  --pdfify-color-secondary-white: rgba(255, 255, 255, 1);
  --pdfify-color-secondary-black: rgba(0, 0, 0, 1);
  --pdfify-color-secondary-middle-gray: #9b9b9b;

  /* ── Core backgrounds ── */
  --pdfify-bg-primary: #ffffff;
  --pdfify-bg-secondary: #f5f5f5;
  --pdfify-bg-surface: #f0f0f0;
  --pdfify-bg-surface-alt: #f5f5f5;
  --pdfify-bg-elevated: #e8e8e8;
  --pdfify-bg-input: #ffffff;
  --pdfify-bg-canvas: #f0f0f0;

  /* ── Derived backgrounds ── */
  --pdfify-bg-toolbar: #f5f5f5f0;
  --pdfify-bg-thumb-panel: #f0f0f0;
  --pdfify-bg-loading-overlay: #ffffffee;

  /* ── Borders ── */
  --pdfify-border-color: var(--pdfify-color-secondary-middle-gray);
  --pdfify-border-hover: rgba(20, 50, 117, 0.4);
  --pdfify-thumb-border: 1px solid var(--pdfify-border-color);

  /* ── Text ── */
  --pdfify-text-primary: #000000;
  --pdfify-text-secondary: #4a4a4a;
  --pdfify-text-muted: var(--pdfify-color-secondary-middle-gray);
  --pdfify-text-dimmed: var(--pdfify-color-secondary-middle-gray);
  --pdfify-text-link: #143275;

  /* ── Accent ── */
  --pdfify-accent: #143275;
  --pdfify-accent-hover: rgba(20, 50, 117, 0.85);
  --pdfify-accent-gradient: linear-gradient(135deg, #143275, #1a5276);
  --pdfify-accent-bg: rgba(20, 50, 117, 0.08);
  --pdfify-accent-border: rgba(20, 50, 117, 0.25);

  /* ── Status ── */
  --pdfify-error: #c92a2a;

  /* ── Navigation arrows ── */
  --pdfify-nav-arrow-color: var(--pdfify-color-secondary-middle-gray);
  --pdfify-nav-arrow-hover: #000000;

  /* ── Icons (inline SVG data URIs) ── */
  --pdfify-icon-filter: none;
  --pdfify-icon-caret-left:  url("data:image/svg+xml,%3Csvg width='32' height='32' viewBox='0 0 32 32' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M17.4443 9L12 16L17.4446 23L19.9785 23L14.5342 16L19.9788 9L17.4443 9Z' fill='black'/%3E%3C/svg%3E");
  --pdfify-icon-caret-right: url("data:image/svg+xml,%3Csvg width='32' height='32' viewBox='0 0 32 32' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14.5557 23L20 16L14.5554 9L12.0215 9L17.4658 16L12.0212 23L14.5557 23Z' fill='black'/%3E%3C/svg%3E");
  --pdfify-icon-download:    url("data:image/svg+xml,%3Csvg width='32' height='32' viewBox='0 0 32 32' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M17 20.7V8H15V20.7L8 15.2V17.8L16 24L24 17.8V15.2L17 20.7Z' fill='black'/%3E%3Cpath d='M22 26H10V28H22V26Z' fill='black'/%3E%3C/svg%3E");
  --pdfify-icon-maximize:    url("data:image/svg+xml,%3Csvg width='32' height='32' viewBox='0 0 32 32' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 28H4V21H6V26H11V28Z' fill='black'/%3E%3Cpath d='M21 4L28 4L28 11L26 11L26 6L21 6L21 4Z' fill='black'/%3E%3Cpath d='M4 11L4 4L11 4L11 6L6 6L6 11L4 11Z' fill='black'/%3E%3Cpath d='M28 21L28 28L21 28L21 26L26 26L26 21L28 21Z' fill='black'/%3E%3C/svg%3E");
  --pdfify-icon-zoom-in:     url("data:image/svg+xml,%3Csvg width='32' height='32' viewBox='0 0 32 32' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.5 21C7.813 21 4 17.1865 4 12.5C4 7.813 7.813 4 12.5 4C17.1865 4 21 7.813 21 12.5C21 17.1865 17.1865 21 12.5 21ZM12.5 6C8.916 6 6 8.916 6 12.5C6 16.084 8.916 19 12.5 19C16.084 19 19 16.084 19 12.5C19 8.916 16.084 6 12.5 6Z' fill='black'/%3E%3Cpath d='M20.7068 19.293L19.2927 20.7071L26.2927 27.707L27.7067 26.293L20.7068 19.293Z' fill='black'/%3E%3Cpath d='M16.7419 11.3919L13.5086 11.4239L13.5086 8.19111L11.5089 8.19111L11.5088 11.4436L8.25628 11.4758L8.27559 13.4756L11.5089 13.4436L11.5089 16.6764H13.5086L13.5087 13.4239L16.7612 13.3917L16.7419 11.3919Z' fill='black'/%3E%3C/svg%3E");
  --pdfify-icon-zoom-out:    url("data:image/svg+xml,%3Csvg width='32' height='32' viewBox='0 0 32 32' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.5 21C7.813 21 4 17.1865 4 12.5C4 7.813 7.813 4 12.5 4C17.1865 4 21 7.813 21 12.5C21 17.1865 17.1865 21 12.5 21ZM12.5 6C8.916 6 6 8.916 6 12.5C6 16.084 8.916 19 12.5 19C16.084 19 19 16.084 19 12.5C19 8.916 16.084 6 12.5 6Z' fill='black'/%3E%3Cpath d='M20.7068 19.293L19.2927 20.7071L26.2927 27.707L27.7067 26.293L20.7068 19.293Z' fill='black'/%3E%3Cpath d='M16.7612 11.3919L16.7612 11.4239V11.4436L8.25628 11.4758L8.27559 13.4756L16.7612 13.4436V13.4239L16.7612 13.3917L16.7612 11.3919Z' fill='black'/%3E%3C/svg%3E");
  --pdfify-icon-thumbnails:  url("data:image/svg+xml,%3Csvg width='32' height='32' viewBox='0 0 32 32' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 10H22V23H24V8H9V10Z' fill='black'/%3E%3Cpath d='M4 28H20V12H4V28ZM6 14H18V26H6V14Z' fill='black'/%3E%3Cpath d='M13 4V6H26V19H28V4H13Z' fill='black'/%3E%3C/svg%3E");
  --pdfify-icon-share:       url("data:image/svg+xml,%3Csvg width='32' height='32' viewBox='0 0 32 32' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.5 12C10.4299 12 12 13.5701 12 15.5C12 17.4299 10.4299 19 8.5 19C6.5701 19 5 17.4299 5 15.5C5 13.5701 6.5701 12 8.5 12ZM8.5 10C5.4624 10 3 12.4624 3 15.5C3 18.5376 5.4624 21 8.5 21C11.5376 21 14 18.5376 14 15.5C14 12.4624 11.5376 10 8.5 10Z' fill='black'/%3E%3Cpath d='M25 29C22.7939 29 21 27.2056 21 25C21 22.7944 22.7939 21 25 21C27.2061 21 29 22.7944 29 25C29 27.2056 27.2061 29 25 29ZM25 23C23.8975 23 23 23.897 23 25C23 26.103 23.8975 27 25 27C26.1025 27 27 26.103 27 25C27 23.897 26.1025 23 25 23Z' fill='black'/%3E%3Cpath d='M23.3458 22.8385L15.9182 19L15 20.7768L22.4276 24.6152L23.3458 22.8385Z' fill='black'/%3E%3Cpath d='M25 3C22.7939 3 21 4.7944 21 7C21 9.2056 22.7939 11 25 11C27.2061 11 29 9.2056 29 7C29 4.7944 27.2061 3 25 3ZM25 9C23.8975 9 23 8.103 23 7C23 5.897 23.8975 5 25 5C26.1025 5 27 5.897 27 7C27 8.103 26.1025 9 25 9Z' fill='black'/%3E%3Cpath d='M23.3458 9.16153L15.9182 13L15 11.2232L22.4276 7.38477L23.3458 9.16153Z' fill='black'/%3E%3C/svg%3E");

  /* ── Shadows ── */
  --pdfify-shadow-sm: none;
  --pdfify-shadow-md: none;
  --pdfify-shadow-lg: none;

  /* ── Radii (set to 0 for sharp corners) ── */
  --pdfify-radius-sm: 0;
  --pdfify-radius-md: 0;
  --pdfify-radius-lg: 0;
  --pdfify-radius-xl: 0;
  --pdfify-radius-2xl: 0;

  /* ── Typography ── */
  --pdfify-font-family: 'Shape Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

  /* ── Sizes ── */
  --pdfify-toolbar-height: 48px;

  /* ── Flip-page appearance ── */
  --pdfify-page-bg: #ffffff;
  --pdfify-page-padding: 50px;
  --pdfify-page-shadow: none;

  /* ── Loading screen (customizable) ── */
  --pdfify-loading-bg: #ffffffee;
  --pdfify-loading-spinner-ring: var(--pdfify-color-secondary-middle-gray);
  --pdfify-loading-spinner-accent: #143275;
  --pdfify-loading-progress-track: var(--pdfify-color-secondary-middle-gray);
  --pdfify-loading-progress-fill: linear-gradient(135deg, #143275, #1a5276);
  --pdfify-loading-text-color: #4a4a4a;
  --pdfify-loading-error-color: #c92a2a;
}

/* ── Reset scoped to .pdfify ── */
.pdfify *,
.pdfify *::before,
.pdfify *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

.pdfify {
  font-family: var(--pdfify-font-family);
  color: var(--pdfify-text-primary);
  line-height: 1.6;
  position: relative;
  max-height: 100%;
}

.pdfify:focus {
  outline: none;
}

.pdfify-dynamic-height {
  transition: height 0.3s ease;
}

@keyframes pdfify-spin {
  to { transform: rotate(360deg); }
}

/* ═══════════════════════════════════════════
   Shared components
   ═══════════════════════════════════════════ */

/* ── Icon image ── */
.pdfify-icon {
  width: 24px;
  height: 24px;
  filter: var(--pdfify-icon-filter);
}

/* ── Icon button ── */
.pdfify-bar-btn {
  background: none;
  border: none;
  color: var(--pdfify-text-secondary);
  cursor: pointer;
  padding: 8px;
  border-radius: var(--pdfify-radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  font-size: 13px;
  transition: background 0.15s, color 0.15s;
  white-space: nowrap;
}

.pdfify-bar-btn:hover {
  background: var(--pdfify-border-color);
  color: var(--pdfify-text-primary);
}

.pdfify-bar-btn.active {
  color: var(--pdfify-accent);
}

.pdfify-bar-btn:disabled {
  opacity: 0.35;
  cursor: default;
  pointer-events: none;
}

.pdfify-bar-btn:disabled:hover {
  background: none;
  color: var(--pdfify-text-secondary);
}

/* ── Focus-visible indicators for keyboard navigation ── */
.pdfify .pdfify-bar-btn:focus-visible,
.pdfify .pdfify-fb-nav-arrow:focus-visible,
.pdfify .pdfify-fb-thumb-item:focus-visible,
.pdfify .pdfify-fb-share-dropdown a:focus-visible,
.pdfify .pdfify-fb-share-dropdown button:focus-visible {
  outline: 2px solid var(--pdfify-accent);
  outline-offset: 2px;
}

/* ── Loading overlay ── */
.pdfify-loading-overlay {
  position: absolute;
  inset: 0;
  z-index: 30;
  background: var(--pdfify-loading-bg);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
}

.pdfify-loading-spinner {
  width: 40px;
  height: 40px;
  border: 3px solid var(--pdfify-loading-spinner-ring);
  border-top-color: var(--pdfify-loading-spinner-accent);
  border-radius: 50%;
  animation: pdfify-spin 0.8s linear infinite;
}

.pdfify-loading-progress-text {
  font-size: 14px;
  color: var(--pdfify-loading-text-color);
}

.pdfify-loading-progress-track {
  width: 240px;
  height: 4px;
  background: var(--pdfify-loading-progress-track);
  overflow: hidden;
}

.pdfify-loading-progress-fill {
  height: 100%;
  background: var(--pdfify-loading-progress-fill);
  transition: width 0.15s;
}

.pdfify-loading-error {
  color: var(--pdfify-loading-error-color);
}

/* ═══════════════════════════════════════════
   Flipbook mode
   ═══════════════════════════════════════════ */

.pdfify-fb-viewer {
  position: relative;
  flex: 1;
  display: flex;
  flex-direction: column;
  background: var(--pdfify-bg-secondary);
}

.pdfify-fb-viewer:fullscreen {
  background: var(--pdfify-bg-secondary);
  height: 100vh;
}
.pdfify-fb-viewer:-webkit-full-screen {
  background: var(--pdfify-bg-secondary);
  height: 100vh;
}

.pdfify-fb-viewer-body {
  flex: 1;
  display: flex;
  overflow: hidden;
  position: relative;
  min-height: 0;
}

/* ── Main area (arrows + zoom + book) ── */
.pdfify-fb-main-area {
  flex: 1;
  position: relative;
  display: flex;
  min-height: 0;
}

/* ── Book area ── */
.pdfify-fb-book-area {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  padding: 16px;
  min-height: 0;
  background: var(--pdfify-page-bg);
}

.pdfify-fb-flipbook {
  width: 100%;
  height: 100%;
}

.pdfify-fb-flipbook--zoom-locked,
.pdfify-fb-flipbook--zoom-locked * {
  pointer-events: none !important;
}

/* StPageFlip overrides */
.pdfify-fb-book-area .stf__parent,
.pdfify-fb-book-area .stf__wrapper {
  background: transparent !important;
}

.pdfify-fb-flip-page {
  width: 100%;
  height: 100%;
  background: var(--pdfify-page-bg);
  box-shadow: var(--pdfify-page-shadow);
  overflow: hidden;
}

.pdfify-fb-flip-page--blank {
  background: var(--pdfify-page-bg);
  box-shadow: var(--pdfify-page-shadow);
  pointer-events: none;
}

.pdfify-fb-flip-page img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* ── Navigation arrows ── */
.pdfify-fb-nav-arrow {
  flex-shrink: 0;
  align-self: center;
  z-index: 10;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  width: 48px;
  height: 48px;
  transition: opacity 0.2s;
  user-select: none;
  -webkit-user-select: none;
  display: flex;
  align-items: center;
  justify-content: center;
}

.pdfify-fb-nav-arrow .pdfify-nav-icon {
  width: 48px;
  height: 48px;
  filter: var(--pdfify-icon-filter);
  opacity: 0.7;
  transition: opacity 0.2s;
}

.pdfify-fb-nav-arrow:hover .pdfify-nav-icon {
  opacity: 1;
}

.pdfify-fb-nav-arrow:disabled {
  opacity: 0;
  visibility: hidden;
  cursor: default;
}

/* ── Over mode: arrows overlay the book area ── */
.pdfify-fb-nav-arrow--over {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  align-self: unset;
  flex-shrink: unset;
}

.pdfify-fb-nav-prev.pdfify-fb-nav-arrow--over { left: 8px; }
.pdfify-fb-nav-next.pdfify-fb-nav-arrow--over { right: 8px; }

/* ── Half-over mode: arrows centred on the edge of the zoom wrapper ── */
.pdfify-fb-nav-arrow--half-over {
  position: absolute;
  top: 50%;
  align-self: unset;
  flex-shrink: unset;
}

.pdfify-fb-nav-prev.pdfify-fb-nav-arrow--half-over {
  left: 0;
  transform: translate(-50%, -50%);
}

.pdfify-fb-nav-next.pdfify-fb-nav-arrow--half-over {
  right: 0;
  transform: translate(50%, -50%);
}

/* ── Zoom wrapper ── */
.pdfify-fb-zoom-wrapper {
  flex: 1;
  display: flex;
  min-height: 0;
  user-select: none;
  -webkit-user-select: none;
}

/* ── Bottom toolbar ── */
.pdfify-fb-bottom-bar {
  height: var(--pdfify-toolbar-height);
  flex-shrink: 0;
  background: var(--pdfify-bg-toolbar);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border-top: 1px solid var(--pdfify-border-color);
  display: flex;
  align-items: center;
  padding: 0 12px;
  gap: 4px;
}

.pdfify-fb-bar-spacer { flex: 1; }

.pdfify-fb-bar-sep {
  width: 1px;
  height: 24px;
  background: var(--pdfify-border-color);
  margin: 0 6px;
}

.pdfify-fb-page-indicator {
  font-size: 13px;
  color: var(--pdfify-text-secondary);
  padding: 0 8px;
  white-space: nowrap;
  user-select: none;
}

.pdfify-fb-page-indicator input {
  width: 38px;
  text-align: center;
  background: var(--pdfify-bg-input);
  color: var(--pdfify-text-primary);
  border: 1px solid var(--pdfify-border-color);
  border-radius: var(--pdfify-radius-sm);
  padding: 3px;
  font-size: 13px;
}

.pdfify-fb-page-indicator input:focus {
  outline: 1px solid var(--pdfify-accent);
}

/* ── Thumbnail panel — always an overlay, never pushes content ── */
.pdfify-fb-thumb-panel {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 15;
  width: 0;
  height: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  background: var(--pdfify-bg-thumb-panel);
  border-right: var(--pdfify-thumb-border);
  transition: width 0.3s ease;
}

.pdfify-fb-thumb-panel.open {
  width: 154px;
}

.pdfify-fb-thumb-inner {
  padding: 12px 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  opacity: 0;
  transition: opacity 0.15s ease;
}

.pdfify-fb-thumb-panel.open .pdfify-fb-thumb-inner {
  opacity: 1;
  transition: opacity 0.2s ease 0.3s; /* delay matches panel width transition */
}

.pdfify-fb-thumb-item {
  cursor: pointer;
  border: 2px solid transparent;
  border-radius: var(--pdfify-radius-md);
  overflow: hidden;
  transition: border-color 0.2s;
  background: var(--pdfify-bg-elevated);
}

.pdfify-fb-thumb-item:hover {
  border-color: var(--pdfify-border-hover);
}

.pdfify-fb-thumb-item.active {
  border-color: var(--pdfify-accent) !important;
}

.pdfify-fb-thumb-item img,
.pdfify-fb-thumb-item canvas {
  width: 100%;
  height: auto;
  display: block;
}

.pdfify-fb-thumb-label {
  text-align: center;
  font-size: 11px;
  color: var(--pdfify-text-muted);
  padding: 3px 0;
  background: var(--pdfify-bg-thumb-panel);
}

/* ── Share dropdown ── */
.pdfify-fb-share-wrapper {
  position: relative;
}

.pdfify-fb-share-dropdown {
  position: absolute;
  bottom: 52px;
  right: 0;
  background: var(--pdfify-bg-elevated);
  border: 1px solid var(--pdfify-border-color);
  border-radius: var(--pdfify-radius-lg);
  padding: 8px 0;
  display: none;
  min-width: 180px;
  z-index: 20;
  box-shadow: var(--pdfify-shadow-md);
}

.pdfify-fb-share-dropdown.open {
  display: block;
}

.pdfify-fb-share-dropdown a,
.pdfify-fb-share-dropdown button {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 8px 16px;
  background: none;
  border: none;
  color: var(--pdfify-text-link);
  font-size: 13px;
  cursor: pointer;
  text-decoration: none;
  text-align: left;
  font-family: var(--pdfify-font-family);
}

.pdfify-fb-share-dropdown a:hover,
.pdfify-fb-share-dropdown button:hover {
  background: var(--pdfify-border-color);
  color: #fff;
}

/* ═══════════════════════════════════════════
   Reader mode
   ═══════════════════════════════════════════ */

.pdfify-reader {
  flex: 1;
  display: flex;
  flex-direction: column;
  background: var(--pdfify-bg-surface-alt);
  overflow: hidden;
  position: relative;
  width: 100%;
  max-width: 100%;
}

.pdfify-reader:fullscreen {
  background: var(--pdfify-bg-canvas);
}
.pdfify-reader:-webkit-full-screen {
  background: var(--pdfify-bg-canvas);
}

/* ── Toolbar ── */
.pdfify-reader-toolbar {
  height: var(--pdfify-toolbar-height);
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 0 12px;
  background: var(--pdfify-bg-toolbar);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border-top: 1px solid var(--pdfify-border-color);
}

/* Reader uses aria-disabled instead of the disabled attribute */
.pdfify-reader-toolbar .pdfify-bar-btn[aria-disabled="true"] {
  opacity: 0.35;
  cursor: default;
  pointer-events: none;
}

/* Hide toolbar prev/next buttons at document boundaries */
.pdfify-fb-bottom-bar .pdfify-toolbar-nav-btn:disabled,
.pdfify-reader-toolbar .pdfify-toolbar-nav-btn:disabled,
.pdfify-reader-toolbar .pdfify-toolbar-nav-btn[aria-disabled="true"] {
  display: none;
}

.pdfify-reader-spacer {
  flex: 1;
}

.pdfify-reader-page-info {
  font-size: 13px;
  color: var(--pdfify-text-secondary);
  padding: 0 8px;
  white-space: nowrap;
  user-select: none;
}

.pdfify-reader-page-info input {
  width: 38px;
  text-align: center;
  background: var(--pdfify-bg-input);
  color: var(--pdfify-text-primary);
  border: 1px solid var(--pdfify-border-color);
  border-radius: var(--pdfify-radius-sm);
  padding: 3px;
  font-size: 13px;
}

.pdfify-reader-page-info input:focus {
  outline: 1px solid var(--pdfify-accent);
}

/* ── Reader body (enhanced responsive layout) ── */
.pdfify-reader-body {
  flex: 1;
  position: relative;
  overflow: hidden;
  min-height: 0;
  touch-action: pan-x pan-y; /* allow 1-finger native scroll; omit pinch-zoom so our JS handler controls pinch and preventDefault() works */
}


/* ── Canvas area ── */
.pdfify-reader-canvas-wrap {
  flex: 1;
  display: flex;
  justify-content: center;
  background: var(--pdfify-bg-canvas);
  padding: 20px;
  min-height: 0;
  position: relative;
  overflow: hidden;
}

/* Enhanced reader: full-width canvas, height driven by page content */
.pdfify-reader-body--enhanced .pdfify-reader-canvas-wrap {
  width: 100%;
  padding: 0;
  overflow: hidden;
  display: block;
}

/* Standard reader: hide scrollbars when zoomed in (pan handles movement) */
.pdfify-reader-canvas-wrap.pdfify-reader-zoomed {
  overflow: hidden;
  justify-content: flex-start;
  align-items: flex-start;
  height: 100%;
}

/* Zoomed canvas: don't shrink (so it can overflow for scroll-centering), and
   use margin:auto so it stays visually centred when it fits without overflowing */
.pdfify-reader-canvas-wrap.pdfify-reader-zoomed .pdfify-reader-canvas {
  flex-shrink: 0;
  margin: 0 auto;
}

/* Enhanced reader: hide scrollbars when zoomed in (pan handles movement) */
.pdfify-reader-body--enhanced .pdfify-reader-canvas-wrap.pdfify-reader-zoomed {
  overflow: hidden;
  height: 100%; /* constrain to body height so canvas can be panned */
}

.pdfify-reader-canvas {
  display: block;
  width: 100%;
  height: auto;
  box-shadow: var(--pdfify-shadow-sm);
}

/* Enhanced reader: canvas fills full container width */
.pdfify-reader-body--enhanced .pdfify-reader-canvas {
  width: 100%;
  height: auto;
}

/* ── Drag-to-flip cursor ── */
.pdfify-reader-draggable {
  user-select: none;
  -webkit-user-select: none;
}

/* ── Reader navigation arrows ── */
.pdfify-reader-nav-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  width: 48px;
  height: 48px;
  transition: opacity 0.2s;
  user-select: none;
  -webkit-user-select: none;
  display: flex;
  align-items: center;
  justify-content: center;
}

.pdfify-reader-nav-arrow .pdfify-nav-icon {
  width: 48px;
  height: 48px;
  filter: var(--pdfify-icon-filter);
  opacity: 0.7;
  transition: opacity 0.2s;
}

.pdfify-reader-nav-arrow:hover .pdfify-nav-icon {
  opacity: 1;
}

.pdfify-reader-nav-arrow:disabled {
  opacity: 0;
  visibility: hidden;
  cursor: default;
}

.pdfify-reader-nav-prev { left: 4px; }
.pdfify-reader-nav-next { right: 4px; }

/* ── Reader outside mode: arrows are flex siblings of the canvas ── */
.pdfify-reader-body--nav-outside {
  display: flex;
}

.pdfify-reader-body--nav-outside .pdfify-reader-nav-arrow {
  position: static;
  align-self: center;
  flex-shrink: 0;
}

/* ── Reader half-over mode: arrows centred on the canvas edge ── */
.pdfify-reader-nav-prev.pdfify-reader-nav-arrow--half-over {
  left: 0;
  transform: translate(-50%, -50%);
}

.pdfify-reader-nav-next.pdfify-reader-nav-arrow--half-over {
  right: 0;
  transform: translate(50%, -50%);
}

/* ── Flip / swipe animation ── */
@keyframes pdfify-flip-out-left {
  from { transform: translateX(0); opacity: 1; }
  to   { transform: translateX(-30%); opacity: 0; }
}
@keyframes pdfify-flip-out-right {
  from { transform: translateX(0); opacity: 1; }
  to   { transform: translateX(30%); opacity: 0; }
}
@keyframes pdfify-flip-in-right {
  from { transform: translateX(30%); opacity: 0; }
  to   { transform: translateX(0); opacity: 1; }
}
@keyframes pdfify-flip-in-left {
  from { transform: translateX(-30%); opacity: 0; }
  to   { transform: translateX(0); opacity: 1; }
}

.pdfify-flip-out-left  { animation: pdfify-flip-out-left  0.2s ease-in forwards; }
.pdfify-flip-out-right { animation: pdfify-flip-out-right 0.2s ease-in forwards; }
.pdfify-flip-in-right  { animation: pdfify-flip-in-right  0.2s ease-out forwards; }
.pdfify-flip-in-left   { animation: pdfify-flip-in-left   0.2s ease-out forwards; }

/* ═══════════════════════════════════════════
   Responsive
   ═══════════════════════════════════════════ */

/* ── Reduced motion ── */
@media (prefers-reduced-motion: reduce) {
  .pdfify *,
  .pdfify *::before,
  .pdfify *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

@media (max-width: 768px) {
  .pdfify-fb-thumb-panel.open { width: 110px; }

  /* Hide side nav arrows and toolbar prev/next — swipe/drag handles navigation */
  .pdfify-fb-nav-arrow { display: none; }
  .pdfify-toolbar-nav-btn { display: none; }

  /* Move toolbar to top and flip border to match reader */
  .pdfify-fb-bottom-bar {
    order: -1;
    border-top: none;
    border-bottom: 1px solid var(--pdfify-border-color);
    gap: 2px;
    padding: 0 6px;
  }
  .pdfify-fb-bottom-bar .pdfify-bar-btn { padding: 6px; font-size: 12px; }
  .pdfify-fb-bottom-bar .pdfify-bar-btn .pdfify-btn-label { display: none; }

  .pdfify-reader-toolbar { gap: 2px; padding: 0 6px; }
  .pdfify-reader-toolbar .pdfify-bar-btn { padding: 6px; font-size: 12px; }
  .pdfify-reader-toolbar .pdfify-bar-btn .pdfify-btn-label { display: none; }
}

/* ── Exit fullscreen indicator ──────────────────── */
.pdfify-exit-fullscreen-btn {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 9999;
  background: var(--pdfify-bg-elevated, #e8e8e8);
  color: var(--pdfify-text-primary, #000);
  border: 1px solid var(--pdfify-border-color, #9b9b9b);
  border-radius: 6px;
  padding: 6px 14px;
  font-size: 13px;
  cursor: pointer;
  opacity: 0.85;
  transition: opacity 0.2s;
}
.pdfify-exit-fullscreen-btn:hover {
  opacity: 1;
}

/* ── Simulated fullscreen (iOS Safari fallback) ─── */
.pdfify-body-fullscreen {
  overflow: hidden;
}

.pdfify-simulated-fullscreen {
  position: fixed !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 9998 !important;
  overflow: auto !important;
}

.pdfify-fb-viewer.pdfify-simulated-fullscreen {
  background: var(--pdfify-bg-secondary);
  height: 100% !important;
}

.pdfify-reader.pdfify-simulated-fullscreen {
  background: var(--pdfify-bg-canvas);
}

/* ── Very narrow screens (≤400px) — ultra-compact toolbar ── */
@media (max-width: 400px) {
  .pdfify-fb-bottom-bar {
    gap: 1px;
    padding: 0 4px;
  }

  .pdfify-fb-bottom-bar .pdfify-bar-btn {
    padding: 4px;
  }

  .pdfify-fb-bar-sep {
    margin: 0 2px;
  }

  .pdfify-fb-page-indicator {
    padding: 0 4px;
  }

  .pdfify-reader-toolbar {
    gap: 1px;
    padding: 0 4px;
  }

  .pdfify-reader-toolbar .pdfify-bar-btn {
    padding: 4px;
  }

  .pdfify-reader-page-info {
    padding: 0 4px;
  }
}
