/* Scoped certificate reader. All document imagery is rendered from the original PDFs. */
.certificate-preview{position:relative}
.certificate-enlarge{display:block;padding:6px 2px 0;text-align:center;font-size:11px;font-weight:700;color:#173a47;line-height:1.2}
.certificate-preview:hover{border-color:#215da5;box-shadow:0 3px 14px #142f3b18}
[data-certificate]:focus-visible{outline:3px solid #2365bd;outline-offset:4px}
#certificate-viewer{width:min(1160px,calc(100vw - 48px));height:calc(100dvh - 48px);max-width:none;max-height:none;padding:0;border:0;border-radius:8px;color:#153541;background:white;overflow:hidden;box-shadow:0 18px 80px #0005}
#certificate-viewer::backdrop{background:#061d2ad9;backdrop-filter:blur(3px)}
.cert-shell{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.cert-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 24px;background:#102f3b;color:#fff}
.cert-header p{font-size:11px;font-weight:600;letter-spacing:.06em;line-height:1.4;margin:0 0 5px;color:#c4d5d9}
.cert-header h2{font-size:23px;line-height:1.15;letter-spacing:-.02em;margin:0}
#certificate-viewer button{font:inherit;font-weight:600;min-width:44px;min-height:44px;padding:8px;border:1px solid #c7d2d6;border-radius:4px;background:#fff;color:#12323f;cursor:pointer;line-height:1}
#certificate-viewer button:hover:not(:disabled){background:#e7eef2}
#certificate-viewer button:focus-visible,#cv-pdf:focus-visible,#cv-stage:focus-visible{outline:3px solid #438eea;outline-offset:-3px}
#certificate-viewer button:disabled{opacity:.35;cursor:default}
#certificate-viewer #cv-close{color:#fff;background:transparent;border-color:#ffffff40;font-size:29px;flex-shrink:0}
#certificate-viewer #cv-close:hover{background:#ffffff15}
.cert-stage{position:relative;min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;touch-action:none;background:#e4e9eb;outline-offset:-4px;scrollbar-gutter:stable}
.cert-stage.is-zoomed{cursor:grab}.cert-stage.is-dragging{cursor:grabbing}
.cert-canvas{position:relative;min-width:100%;min-height:100%}
#cv-image{position:absolute;max-width:none;max-height:none;display:block;background:#fff;box-shadow:0 2px 13px #102f3b28;user-select:none;-webkit-user-select:none;-webkit-user-drag:none}
#cv-image[hidden]{display:none}
.cert-image-status{position:absolute;top:45%;left:0;right:0;text-align:center;font-size:15px;padding:18px;color:#304957}
.cert-image-status[hidden]{display:none}
.cert-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 20px;padding:12px 24px;border-top:1px solid #ccd6d9;background:#fff}
.cert-pagination,.cert-zoom{display:flex;align-items:center;gap:8px}
#cv-page{min-width:95px;text-align:center;font-size:13px;font-variant-numeric:tabular-nums}
#cv-zoom{min-width:45px;text-align:right;font-size:12px;font-variant-numeric:tabular-nums}
#cv-pdf{font-size:14px;font-weight:700;text-decoration:none;border-bottom:1px solid #97aab1;padding:12px 0;white-space:nowrap}
#cv-pdf span{margin-left:12px}
.cert-gesture-hint{display:none}
@media(max-width:640px){
  #certificate-viewer{width:100vw;height:100dvh;margin:0;border-radius:0}
  .cert-header{padding:12px 16px;gap:10px}.cert-header h2{font-size:20px}.cert-header p{font-size:10px}
  .cert-toolbar{padding:9px 12px max(9px,env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr auto;gap:8px 12px}
  .cert-pagination{grid-column:1/-1;justify-content:center;border-bottom:1px solid #dfe5e7;padding-bottom:7px}
  #cv-page{min-width:150px}
  .cert-zoom{gap:5px}#cv-zoom{min-width:36px;font-size:11px}
  #cv-pdf{font-size:12px}#cv-pdf span{margin-left:4px}
  .cert-gesture-hint{display:block;grid-column:1/-1;text-align:center;margin:0;font-size:11px;line-height:1.3;color:#536b75}
  #certificate-viewer button{min-width:40px;min-height:44px}
}
@media(prefers-reduced-motion:reduce){#certificate-viewer{scroll-behavior:auto}}
