body dialog.gnt-card-viewer {
  position: fixed; inset: 0; margin: 0; padding: 0; border: 0;
  width: 100vw; width: 100dvw; height: 100vh; height: 100dvh;
  max-width: none; max-height: none; border-radius: 0;
  box-sizing: border-box; background: #f6f5f1; color: #244b40;
  font: 400 14px/1.4 Arial, sans-serif; overflow: hidden;
}
body dialog.gnt-card-viewer[open] { display: grid; grid-template-rows: auto minmax(0, 1fr); }
body dialog.gnt-card-viewer::backdrop { background: #f6f5f1; }
body dialog.gnt-card-viewer .gnt-card-bar {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap;
  gap: 10px 20px; padding: 10px max(16px, env(safe-area-inset-right)) 10px max(16px, env(safe-area-inset-left));
  background: #fff; border-bottom: 1px solid #dedfda;
}
body dialog.gnt-card-viewer h2 { margin: 0; color: #244b40; font: 600 16px/1.4 Arial, sans-serif; }
body dialog.gnt-card-viewer .gnt-card-pages,
body dialog.gnt-card-viewer .gnt-card-actions { display: flex; align-items: center; gap: 8px; }
body dialog.gnt-card-viewer button,
body dialog.gnt-card-viewer .gnt-card-download {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  min-height: 44px; padding: 8px 14px; margin: 0; box-sizing: border-box;
  border: 1px solid #dedfda; border-radius: 5px; background: #fff;
  color: #244b40; font: 500 13px/1.3 Arial, sans-serif;
  text-decoration: none; cursor: pointer; white-space: nowrap;
}
body dialog.gnt-card-viewer button[aria-pressed="true"],
body dialog.gnt-card-viewer .gnt-card-download { background: #244b40; color: #fff; border-color: #244b40; }
body dialog.gnt-card-viewer button:hover { border-color: #244b40; }
body dialog.gnt-card-viewer :focus-visible { outline: 3px solid #a5824d; outline-offset: 2px; }
body dialog.gnt-card-viewer .gnt-card-close { font-size: 22px; width: 44px; padding: 0; }
body dialog.gnt-card-viewer .gnt-card-stage {
  position: relative; min-width: 0; min-height: 0; overflow: auto;
  display: grid; place-items: center; padding: 12px; box-sizing: border-box;
  overscroll-behavior: contain; touch-action: pan-x pan-y pinch-zoom;
}
body dialog.gnt-card-viewer .gnt-card-image {
  display: block; width: 100%; height: 100%; min-height: 0;
  max-width: 100%; max-height: 100%; object-fit: contain; margin: 0;
}
body dialog.gnt-card-viewer .gnt-card-image[hidden] { display: none; }
body dialog.gnt-card-viewer.gnt-card-zoomed .gnt-card-stage { display: block; }
body dialog.gnt-card-viewer.gnt-card-zoomed .gnt-card-image {
  width: max(1400px, 150vw); height: auto; max-width: none; max-height: none;
}
body dialog.gnt-card-viewer .gnt-card-error { color: #244b40; padding: 24px; text-align: center; }
body dialog.gnt-card-viewer .gnt-card-error[hidden] { display: none; }
body dialog.gnt-card-viewer .gnt-card-error a { color: #244b40; text-decoration: underline; }
.gnt-card-open { display: block; cursor: zoom-in; }
@media (max-width: 760px) {
  body dialog.gnt-card-viewer .gnt-card-bar { gap: 8px; padding: 8px 10px; }
  body dialog.gnt-card-viewer h2 { font-size: 14px; flex: 1; }
  body dialog.gnt-card-viewer .gnt-card-pages { order: 3; flex: 1 0 100%; justify-content: center; }
  body dialog.gnt-card-viewer .gnt-card-actions { gap: 5px; }
  body dialog.gnt-card-viewer button,
  body dialog.gnt-card-viewer .gnt-card-download { font-size: 12px; padding-inline: 10px; }
  body dialog.gnt-card-viewer .gnt-card-zoom { min-width: 44px; }
  body dialog.gnt-card-viewer .gnt-card-zoom-label { display: none; }
  body dialog.gnt-card-viewer .gnt-card-stage { padding: 4px; }
}
