.template-preview-stage__mount {
  display: block;
  overflow-x: auto;
  overflow-y: visible;
  padding-bottom: 10px;
  scrollbar-gutter: stable both-edges;
}

.template-preview-stage__mount > * {
  width: max-content;
  min-width: max-content;
  margin-inline: auto;
}

.passport-preview__set,
.medical-report-preview__set,
.decision-notice-preview__set,
.visa-preview__set {
  width: max-content;
  min-width: max-content;
}

.passport-cover {
  width: 88mm !important;
  height: 125mm !important;
  aspect-ratio: auto !important;
}

.passport-sheet {
  width: 125mm !important;
  height: 176mm !important;
  aspect-ratio: auto !important;
}

.medical-report-page,
.decision-notice-page {
  width: 210mm !important;
  height: 297mm !important;
  aspect-ratio: auto !important;
}

.visa-sheet,
.roc-abrs-visa-preview .visa-sheet,
.smc-visa-sheet,
.aeo-visa-sheet,
.scd-visa-sheet,
.iib-visa-sheet,
.toc-visa-sheet,
.idpb-visa-sheet {
  width: 125mm !important;
  height: 176mm !important;
  aspect-ratio: auto !important;
}

.fsc-visa-sheet {
  width: 176mm !important;
  height: 125mm !important;
  aspect-ratio: auto !important;
}

.visa-sticker,
.roc-abrs-visa-preview .visa-sticker,
.smc-visa-sticker {
  width: 108mm !important;
  aspect-ratio: 108 / 74 !important;
}

.aeo-visa-sticker {
  width: 106.5mm !important;
  aspect-ratio: 108 / 72 !important;
}

.scd-visa-sticker {
  width: 106mm !important;
  aspect-ratio: 108 / 74 !important;
}

.iib-visa-sticker {
  width: 110mm !important;
  aspect-ratio: 108 / 72 !important;
}

.toc-visa-sticker {
  width: 108mm !important;
  aspect-ratio: 108 / 72 !important;
}

.idpb-visa-sticker {
  width: 109mm !important;
  aspect-ratio: 109 / 71 !important;
}

.fsc-visa-sticker {
  width: 53mm !important;
  height: 112mm !important;
  aspect-ratio: auto !important;
}

@media (max-width: 980px) {
  .template-preview-shell {
    width: min(1160px, calc(100vw - 32px)) !important;
    padding: 28px 0 56px !important;
  }

  .template-preview-stage__mount > * {
    margin-inline: 0;
  }

  .passport-preview__set {
    gap: 24px !important;
  }

  .passport-cover__surface {
    padding: 12.6mm 7.2mm 8.8mm !important;
  }

  .passport-cover__issuer-native {
    font-size: 7.1mm !important;
  }

  .passport-cover__issuer-en {
    font-size: 4.35mm !important;
  }

  .passport-cover__title-native {
    font-size: 11.8mm !important;
  }

  .passport-cover__title-en {
    font-size: 6.8mm !important;
  }

  .aeo-asra-passport-preview .passport-page--message::after,
  .aeo-asra-passport-preview .passport-page--identity::after {
    width: 46mm !important;
    height: 46mm !important;
  }

  .idpb-iumd-passport-preview .passport-page--message::after {
    width: 32mm !important;
    height: 32mm !important;
  }

  .idpb-iumd-passport-preview .passport-page--identity::after {
    width: 28mm !important;
    height: 28mm !important;
  }

  .iib-edn-passport-preview .passport-page--message::after,
  .iib-edn-passport-preview .passport-page--identity::after {
    width: 38mm !important;
    height: 38mm !important;
  }

  .toc-frb-passport-preview .passport-page--message::after,
  .toc-frb-passport-preview .passport-page--identity::after {
    width: 34mm !important;
    height: 34mm !important;
  }

  .passport-identity__body {
    grid-template-columns: 126px minmax(0, 1fr) !important;
    gap: 10px !important;
  }

  .passport-identity__title {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    align-items: baseline !important;
  }

  .passport-identity__meta-row {
    grid-template-columns: 1.2fr 0.54fr 0.88fr 1.15fr !important;
    gap: 8px !important;
  }

  .passport-details {
    grid-template-columns: minmax(0, 0.52fr) minmax(0, 1.08fr) minmax(0, 0.9fr) !important;
    column-gap: 10px !important;
    row-gap: 5px !important;
  }

  .passport-field--span-all {
    grid-column: 1 / 4 !important;
  }

  .passport-field--span-two {
    grid-column: 1 / 3 !important;
  }

  .passport-field--sex {
    grid-column: 1 !important;
  }

  .passport-field--nationality {
    grid-column: 2 !important;
  }

  .passport-field--birth-date,
  .passport-field--issue-date,
  .passport-field--expiry-date {
    grid-column: 3 !important;
    transform: translateX(-25px) !important;
  }

  .passport-field--birth-place,
  .passport-field--issue-place,
  .passport-field--authority {
    grid-column: 1 / 3 !important;
  }

  .passport-field--signature {
    grid-column: 3 !important;
    width: 74px !important;
    transform: translateX(-25px) !important;
  }

  .medical-report-page {
    padding: 11mm 13mm 10mm !important;
    gap: 4.2mm !important;
  }

  .medical-report-masthead__title-row {
    grid-template-columns: minmax(0, 1fr) auto !important;
  }

  .medical-record-line--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .medical-record-line--2,
  .medical-result-strip,
  .medical-signoff {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .medical-record-pair {
    grid-template-columns: 31mm minmax(0, 1fr) !important;
    gap: 3.2mm !important;
  }

  .medical-compact-table thead {
    display: table-header-group !important;
  }

  .medical-compact-table tbody tr {
    display: table-row !important;
    grid-template-columns: none !important;
    padding: 0 !important;
    border-bottom: 0 !important;
  }

  .medical-compact-table tbody th,
  .medical-compact-table tbody td {
    display: table-cell !important;
    width: auto !important;
    padding: 2.2mm 1.6mm !important;
    border-bottom: 1px solid rgba(159, 129, 112, 0.18) !important;
  }

  .medical-lab-table {
    display: table !important;
    overflow-x: visible !important;
  }

  .medical-ruled-table tbody th,
  .medical-ruled-table tbody td {
    display: table-cell !important;
    width: auto !important;
    padding-right: 0 !important;
  }

  .decision-notice-header__main {
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 10mm !important;
  }

  .decision-notice-status {
    justify-items: end !important;
  }

  .decision-notice-meta {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }

  .decision-notice-footer__signoff {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .passport-page--visa-lower {
    padding: 5.5mm 5.2mm 4.8mm !important;
  }

  .visa-sticker__face {
    padding: 3.2mm 3.8mm 2.6mm !important;
  }

  .visa-sticker__number {
    font-size: 6.1mm !important;
  }

  .visa-sticker__title-native {
    font-size: 4.55mm !important;
  }

  .visa-sticker__title-en {
    font-size: 2.55mm !important;
  }

  .visa-sticker__main {
    display: block !important;
  }

  .visa-sticker__bands {
    width: 100% !important;
  }

  .visa-band--triple {
    grid-template-columns: 0.8fr 0.8fr 1.4fr !important;
  }

  .visa-band--dual,
  .visa-band--final {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  }

  .visa-band--final {
    grid-template-columns: 1.08fr 0.92fr !important;
  }

  .visa-slot {
    grid-template-columns: 4mm minmax(14.8mm, 17mm) minmax(0, 1fr) !important;
    min-height: 8.9mm !important;
    padding: 1.1mm 1.45mm 1mm !important;
  }

  .visa-band--triple .visa-slot {
    grid-template-columns: 4mm minmax(11.8mm, 13.2mm) minmax(0, 1fr) !important;
    column-gap: 0.68mm !important;
  }

  .visa-slot + .visa-slot {
    border-left: 1px solid color-mix(in srgb, var(--visa-theme-line, #998d63) 70%, transparent) !important;
    border-top: 0 !important;
  }

  .visa-slot__index {
    min-width: 3.5mm !important;
    height: 3.5mm !important;
    font-size: 1.58mm !important;
  }

  .visa-slot__label-en {
    font-size: 1.48mm !important;
  }

  .visa-slot__label-zh {
    font-size: 1.72mm !important;
  }

  .visa-slot__value {
    font-size: 3.55mm !important;
    min-height: 3.55mm !important;
    padding-left: 0 !important;
  }

  .visa-slot__value--emphasis {
    font-size: 3.95mm !important;
  }

  .visa-slot__value--native {
    font-size: 3.65mm !important;
  }

  .visa-slot--issued-at .visa-slot__value {
    align-self: start !important;
    white-space: normal !important;
    line-height: 1.14 !important;
    font-size: 2.7mm !important;
    min-height: 6mm !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    overflow: hidden !important;
  }

  .visa-slot--issued-at .visa-slot__value--native {
    font-size: 2.8mm !important;
  }

  .visa-slot--full .visa-slot__value {
    font-size: 3.2mm !important;
  }

  .visa-slot--remarks .visa-slot__value--remarks {
    align-self: start !important;
    min-height: auto !important;
    font-size: 1.64mm !important;
    line-height: 1.18 !important;
    white-space: normal !important;
    display: block !important;
    overflow: visible !important;
    text-overflow: clip !important;
  }

  .visa-sticker__wall-mark {
    right: -1.2mm !important;
    bottom: 8.6mm !important;
    width: 39mm !important;
  }

  .smc-visa-sticker__body {
    grid-template-columns: 1.18fr 0.92fr !important;
  }

  .aeo-visa-ritual-grid {
    grid-template-columns: minmax(0, 33.8mm) minmax(0, 24.8mm) minmax(0, 33.8mm) !important;
  }

  .aeo-visa-center-stack {
    grid-template-rows: auto 1fr !important;
  }

  .aeo-visa-sigil-spine {
    min-height: 29mm !important;
  }

  .aeo-visa-field--nameplate .aeo-visa-field__value,
  .aeo-visa-field--compact .aeo-visa-field__value {
    white-space: nowrap !important;
  }

  .scd-visa-sticker__register-head {
    grid-template-columns: minmax(0, 1.55fr) repeat(3, minmax(0, 0.7fr)) !important;
  }

  .scd-visa-sticker__ledger {
    grid-template-columns: minmax(0, 1fr) 18mm minmax(0, 1fr) !important;
  }

  .scd-visa-engine {
    min-height: 0 !important;
    height: 100% !important;
  }

  .scd-visa-field--head .scd-visa-field__value,
  .scd-visa-field--head-name .scd-visa-field__value {
    white-space: nowrap !important;
  }

  .iib-visa-upper-console {
    grid-template-columns: repeat(3, 1fr) !important;
  }

  .iib-visa-sticker__matrix {
    grid-template-columns: minmax(0, 1.08fr) 26mm minmax(0, 0.92fr) !important;
  }

  .iib-visa-sticker__strips {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .iib-visa-scanwell {
    min-height: 22mm !important;
  }

  .toc-visa-upper-status {
    grid-template-columns: repeat(3, 1fr) !important;
  }

  .toc-visa-sticker__row--top {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .toc-visa-sticker__row--middle {
    grid-template-columns: minmax(0, 1fr) 20mm minmax(0, 1fr) !important;
  }

  .toc-visa-sticker__row--footer {
    grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr) !important;
  }

  .toc-visa-sticker__badge {
    min-height: 22mm !important;
  }

  .idpb-visa-sticker__register {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }

  .idpb-visa-sticker__dossier {
    grid-template-columns: minmax(0, 1fr) 20mm minmax(0, 1fr) !important;
  }

  .idpb-visa-field--span-two {
    grid-column: span 2 !important;
  }

  .fsc-visa-sticker {
    right: 4.2mm !important;
    top: 4.2mm !important;
  }
}
