/* Full-screen, in-site PDF reader. Rendering dimensions remain under JavaScript control. */
.pdf-dialog {
  --pdf-navy: #0c213b;
  --pdf-bronze: #83572b;
  --pdf-paper: #fff;
  --pdf-ground: #f8fafc;
  --pdf-rule: #d9e0e8;
  border: 0;
  border-radius: 0;
  margin: 0;
  padding: 0;
  inset: 0;
  width: 100%;
  height: 100dvh;
  max-width: none;
  max-height: none;
  overflow: hidden;
  background: var(--pdf-ground);
  color: var(--pdf-navy);
  font-family: var(--font-brand);
}

.pdf-dialog[open] { display: flex; flex-direction: column; }
.pdf-dialog::backdrop { background: rgb(12 33 59 / 76%); }
.pdf-dialog *, .pdf-dialog *::before, .pdf-dialog *::after { box-sizing: border-box; }
.pdf-dialog button, .pdf-dialog input, .pdf-dialog textarea, .pdf-dialog select, .pdf-dialog option { font-family: inherit; }
.pdf-dialog button, .pdf-dialog a { -webkit-tap-highlight-color: transparent; }

.pdf-dialog-header {
  z-index: 2;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
  min-height: 64px;
  padding: max(10px, env(safe-area-inset-top)) 16px 10px;
  background: var(--pdf-navy);
  color: var(--pdf-paper);
}
.pdf-brand { font-size: 11px; font-weight: 700; letter-spacing: .17em; white-space: nowrap; }
.pdf-dialog-header h2 { min-width: 0; margin: 0; font-size: clamp(18px, 4.5vw, 24px); font-weight: 500; line-height: 1.1; overflow: hidden; text-align: center; text-overflow: ellipsis; white-space: nowrap; }

.pdf-close, .pdf-toolbar button, .pdf-download {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  border: 1px solid transparent;
  border-radius: 0;
  font: inherit;
  line-height: 1;
  text-decoration: none;
}
.pdf-close { gap: 7px; padding: 8px 10px; background: transparent; color: var(--pdf-paper); }
.pdf-close svg { width: 17px; height: 17px; flex: 0 0 auto; }
.pdf-close:hover, .pdf-close:focus-visible { background: rgb(255 255 255 / 12%); }

.pdf-toolbar {
  position: relative;
  z-index: 1;
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  border-bottom: 1px solid var(--pdf-rule);
  background: var(--pdf-paper);
  box-shadow: 0 2px 8px rgb(12 33 59 / 7%);
}
.pdf-download { gap: 8px; padding: 8px 13px; background: var(--pdf-navy); color: var(--pdf-paper); }
.pdf-download:hover, .pdf-download:focus-visible { background: var(--pdf-bronze); color: var(--pdf-paper); }
.pdf-download svg { width: 18px; height: 18px; }
.pdf-zoom-controls { display: flex; flex: 1 1 260px; align-items: center; justify-content: flex-end; gap: 4px; min-width: 0; }
.pdf-toolbar button { padding: 8px 11px; border-color: var(--pdf-rule); background: var(--pdf-paper); color: var(--pdf-navy); }
.pdf-toolbar button:hover, .pdf-toolbar button:focus-visible { border-color: var(--pdf-bronze); background: #fffaf5; }
#pdf-zoom-out, #pdf-zoom-in { font-family: var(--font-brand); font-size: 26px; font-weight: 400; }
#pdf-zoom-fit { min-width: 72px; font-size: 14px; }
#pdf-zoom-value, #pdf-page-status { font-size: 14px; font-variant-numeric: tabular-nums; white-space: nowrap; }
#pdf-zoom-value { min-width: 48px; padding: 0 3px; text-align: center; }
#pdf-page-status { overflow: hidden; max-width: 42%; padding-left: 6px; text-overflow: ellipsis; color: #4b5a6a; }

.pdf-scroll {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x pan-y pinch-zoom;
  background: var(--pdf-ground);
  outline: none;
}
.pdf-scroll:focus-visible { outline: 2px solid var(--pdf-bronze); outline-offset: -4px; }
.pdf-pages {
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 20px;
  width: max-content;
  min-width: 100%;
  min-height: 100%;
  padding: 16px;
  padding-bottom: max(16px, env(safe-area-inset-bottom));
}

#pdf-loading { width: min(100%, 480px); margin: 40px auto; padding: 18px; background: var(--pdf-paper); border: 1px solid var(--pdf-rule); color: #4b5a6a; text-align: center; }
.pdf-error { width: min(100% - 32px, 500px); margin: 40px auto; padding: 24px; border: 1px solid #c99f76; background: var(--pdf-paper); box-shadow: 0 8px 24px rgb(12 33 59 / 10%); text-align: center; }
.pdf-error p { margin: 0 0 16px; }
.pdf-error button { min-width: 44px; min-height: 44px; padding: 9px 16px; border: 1px solid var(--pdf-navy); background: var(--pdf-navy); color: var(--pdf-paper); font: inherit; }
.pdf-error button:hover, .pdf-error button:focus-visible { border-color: var(--pdf-bronze); background: var(--pdf-bronze); }

.pdf-page {
  position: relative;
  flex: 0 0 auto;
  width: max-content;
  max-width: none;
  overflow: hidden;
  border: 1px solid #d7dde4;
  background: var(--pdf-paper);
  box-shadow: 0 4px 14px rgb(12 33 59 / 13%);
}
.pdf-page-canvas, .pdf-page canvas { display: block; max-width: none; }
.pdf-page.is-placeholder { min-width: min(78vw, 620px); min-height: min(108vw, 876px); background: linear-gradient(110deg, #eef1f4 25%, #f7f8fa 38%, #eef1f4 52%); background-size: 200% 100%; animation: pdf-page-pulse 1.4s linear infinite; }
.pdf-page.is-rendering::after { position: absolute; top: 12px; right: 12px; width: 18px; height: 18px; border: 2px solid rgb(12 33 59 / 20%); border-top-color: var(--pdf-bronze); border-radius: 50%; content: ""; animation: pdf-page-spin .7s linear infinite; }
.pdf-page-index { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.pdf-dialog iframe { max-width: none; }

.pdf-dialog :focus-visible { outline: 2px solid #bc966c; outline-offset: 3px; }
@keyframes pdf-page-pulse { to { background-position: -200% 0; } }
@keyframes pdf-page-spin { to { transform: rotate(360deg); } }

@media (max-width: 539px) {
  .pdf-dialog-header { gap: 8px; padding-right: 8px; padding-left: 10px; }
  .pdf-brand { font-size: 9px; letter-spacing: .12em; }
  .pdf-close { padding: 8px; }
  .pdf-toolbar { gap: 7px; padding: 8px; }
  .pdf-download { flex: 1 1 100%; }
  .pdf-zoom-controls { flex-basis: 100%; justify-content: space-between; gap: 3px; }
  .pdf-toolbar button { padding-right: 8px; padding-left: 8px; }
  #pdf-zoom-fit { min-width: 66px; }
  #pdf-page-status { max-width: 30%; padding-left: 2px; }
  .pdf-pages { gap: 12px; padding: 8px; padding-bottom: max(8px, env(safe-area-inset-bottom)); }
  #pdf-loading { margin-top: 24px; }
}

@media (max-width: 359px) {
  .pdf-close span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
  .pdf-dialog-header h2 { font-size: 17px; }
  #pdf-page-status { display: none; }
}

@media (prefers-reduced-motion: reduce) { .pdf-page.is-placeholder, .pdf-page.is-rendering::after { animation: none; } }

body.pdf-modal-open { overflow: hidden; }
.pdf-dialog { color-scheme: light; }
.pdf-download.is-disabled { opacity: .55; cursor: wait; }
.pdf-toolbar button:disabled { opacity: .4; cursor: default; }
.pdf-page { border: 0; outline: 1px solid #d7dde4; }
