.book-scan-viewer-open { overflow: hidden; }

.book-scan-viewer {
  position: fixed;
  inset: 0;
  width: min(96vw, 1100px);
  height: min(94dvh, 900px);
  max-width: none;
  max-height: none;
  margin: auto;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--psh-line, #d4d7e1);
  border-radius: 12px;
  background: var(--psh-paper, #fff);
  color: var(--psh-ink, #29283b);
}

.book-scan-viewer[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.book-scan-viewer::backdrop { background: rgb(21 24 31 / 75%); }
.book-scan-viewer [hidden] { display: none !important; }

.book-scan-header,
.book-scan-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 12px;
}

.book-scan-header { border-bottom: 1px solid var(--psh-line, #d4d7e1); }
.book-scan-toolbar { border-top: 1px solid var(--psh-line, #d4d7e1); }
#personal-surgery-home .book-scan-header h2 { margin: 0; font-size: 1.125rem; }
.book-scan-controls { display: flex; align-items: center; gap: 4px; }
.book-scan-count { font-size: .875rem; white-space: nowrap; }

.book-scan-viewer button {
  min-width: 44px;
  min-height: 44px;
  padding: 4px 8px;
  border: 1px solid var(--psh-line, #d4d7e1);
  border-radius: 6px;
  background: var(--psh-project, #eff0f5);
  color: inherit;
  font: inherit;
  font-weight: 650;
  cursor: pointer;
}

.book-scan-viewer button:disabled { opacity: .45; cursor: default; }
.book-scan-viewport { min-height: 0; min-width: 0; overflow: auto; overscroll-behavior: contain; }
.book-scan-viewport:focus-visible { outline-offset: -3px; }
.book-scan-stage { position: relative; display: flex; width: max-content; min-width: 100%; min-height: 100%; align-items: center; justify-content: center; }
.book-scan-stage img { display: block; flex: none; max-width: none; max-height: none; }
#personal-surgery-home .book-scan-status { max-width: 100vw; margin: 0; padding: 14px; text-align: center; }

@media (max-width: 690px) {
  .book-scan-viewer { width: 100vw; height: 100dvh; border: 0; border-radius: 0; }
  .book-scan-header { padding-top: max(8px, env(safe-area-inset-top)); }
  .book-scan-toolbar { padding-bottom: max(8px, env(safe-area-inset-bottom)); }
}

@media (max-width: 350px) {
  .book-scan-toolbar { flex-wrap: wrap; }
}
