.credential-document { cursor: zoom-in; }
html:has(.certificate-viewer[open]) { overflow: hidden; scrollbar-gutter: stable; }
body:has(.certificate-viewer[open]) .mobile-call { display: none; }
.certificate-viewer {
  position: fixed;
  inset: 0;
  width: min(1100px, calc(100vw - 32px));
  height: min(1100px, calc(100dvh - 32px));
  max-width: none;
  max-height: none;
  margin: auto;
  padding: 20px;
  overflow: hidden;
  border: 1px solid #526e74;
  border-radius: 6px;
  background: #102124;
  color: #f5f9fa;
  box-shadow: 0 24px 100px #0008;
}
.certificate-viewer:not([open]) { display: none; }
.certificate-viewer[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 16px; }
.certificate-viewer::backdrop { background: #041216e8; backdrop-filter: blur(4px); }
.certificate-viewer-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
#certificate-viewer-title { font: 600 16px/1.4 var(--font); }
.certificate-viewer button {
  min-height: 44px;
  min-width: 44px;
  padding: 10px 16px;
  border: 1px solid #607c82;
  border-radius: 3px;
  background: #1b363c;
  color: #f5f9fa;
  font: 600 13px/1.5 var(--font);
  cursor: pointer;
}
.certificate-viewer button:hover:enabled { background: #2a4b52; }
.certificate-viewer button:disabled { opacity: .45; cursor: default; }
.certificate-viewer :focus-visible { outline: 2px solid var(--mint); outline-offset: 3px; }
.certificate-viewer-close { flex-shrink: 0; }
.certificate-viewer-close span { margin-left: 8px; color: var(--mint); }
.certificate-viewer-stage { min-width: 0; min-height: 0; overflow: auto; overscroll-behavior: contain; border: 1px solid #354d52; background: #07191d; }
.certificate-viewer-canvas { display: grid; place-items: center; width: max-content; min-width: 100%; min-height: 100%; padding: 16px; }
.certificate-viewer-canvas img { display: block; max-width: none; height: auto; background: #fff; }
.certificate-viewer-canvas img[hidden] { display: none; }
.certificate-viewer-toolbar { display: flex; align-items: center; flex-wrap: wrap; justify-content: center; gap: 10px; }
.certificate-viewer-status { min-width: 48px; text-align: center; font-size: 12px; line-height: 1.5; font-variant-numeric: tabular-nums; }
@media (max-width: 650px) {
  .certificate-viewer { width: calc(100vw - 20px); height: calc(100dvh - 20px); padding: 12px; }
  .certificate-viewer[open] { gap: 12px; }
  #certificate-viewer-title { font-size: 13px; }
  .certificate-viewer button { padding: 10px 12px; }
}
