/* Full-screen reservation document preview; kept separate from the reservation modal. */
.reservation-document-viewer{
  position:fixed;
  inset:0;
  z-index:120;
  display:flex;
  flex-direction:column;
  width:100%;
  height:100vh;
  height:100dvh;
  min-height:0;
  overflow:hidden;
  padding-top:env(safe-area-inset-top,0px);
  padding-right:env(safe-area-inset-right,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
  padding-left:env(safe-area-inset-left,0px);
  background:#edf3f6;
  color:#142c3e;
  overscroll-behavior:contain;
  isolation:isolate;
}

body.document-preview-open{overflow:hidden}

.reservation-document-viewer .document-viewer-toolbar{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  grid-template-areas:"back heading download";
  align-items:center;
  gap:12px;
  flex:0 0 auto;
  min-width:0;
  padding:12px clamp(14px,3vw,28px);
  background:#fff;
  border-bottom:1px solid #d9e4e9;
  box-shadow:0 4px 14px rgba(15,47,67,.08);
}

.reservation-document-viewer .document-viewer-back{
  grid-area:back;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  min-width:108px;
  min-height:42px;
  padding:9px 13px;
  border:1px solid #bdd4df;
  border-radius:10px;
  background:#f1f7f9;
  color:#15516a;
  font-size:13px;
  font-weight:800;
  line-height:1.2;
  white-space:nowrap;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}

.reservation-document-viewer .document-viewer-heading{
  grid-area:heading;
  display:grid;
  gap:3px;
  min-width:0;
  color:#19394e;
}

.reservation-document-viewer .document-viewer-heading strong{
  overflow:hidden;
  font-size:15px;
  font-weight:850;
  line-height:1.25;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.reservation-document-viewer .document-viewer-heading small{
  overflow:hidden;
  color:#6b8190;
  font-size:11px;
  line-height:1.3;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.reservation-document-viewer .document-viewer-download{
  grid-area:download;
  min-height:42px;
  padding:9px 13px;
  border:1px solid #bfd6df;
  border-radius:10px;
  background:#eaf4f6;
  color:#145c68;
  font-size:12px;
  font-weight:850;
  line-height:1.2;
  white-space:nowrap;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}

.reservation-document-viewer .document-viewer-back:hover,
.reservation-document-viewer .document-viewer-download:hover:not(:disabled){
  border-color:#83b8c1;
  background:#e4f1f2;
}

.reservation-document-viewer .document-viewer-back:focus-visible,
.reservation-document-viewer .document-viewer-download:focus-visible,
.reservation-document-viewer .document-viewer-retry:focus-visible{
  outline:3px solid rgba(19,167,121,.48);
  outline-offset:2px;
}

.reservation-document-viewer .document-viewer-download:disabled,
.reservation-document-viewer .document-viewer-back:disabled,
.reservation-document-viewer .document-viewer-retry:disabled{
  opacity:.58;
  cursor:wait;
}

.reservation-document-viewer .document-viewer-state{
  flex:0 0 auto;
  min-width:0;
  margin:0;
  padding:9px clamp(14px,3vw,28px);
  border-bottom:1px solid #d9e4e9;
  background:#f6fafb;
  color:#496779;
  font-size:12px;
  line-height:1.4;
  overflow-wrap:anywhere;
}

.reservation-document-viewer .document-viewer-state:empty{display:none}
.reservation-document-viewer .document-viewer-state.is-error{
  border-bottom-color:#e8c4bf;
  background:#fff2ef;
  color:#9b382d;
}

.reservation-document-viewer .document-viewer-frame{
  display:block;
  flex:1 1 auto;
  width:100%;
  min-width:0;
  min-height:0;
  border:0;
  background:#dfe8ec;
}
.reservation-document-viewer .document-viewer-frame[hidden]{display:none!important}

.reservation-document-viewer .document-viewer-retry{
  flex:0 0 auto;
  align-self:center;
  min-height:40px;
  margin:12px;
  padding:9px 16px;
  border:1px solid #bdd4df;
  border-radius:10px;
  background:#fff;
  color:#15516a;
  font-size:13px;
  font-weight:800;
  cursor:pointer;
}

.reservation-document-viewer .document-viewer-retry[hidden]{display:none!important}

/* Download feedback remains adjacent to its action in the reservation detail. */
.document-download-state{
  display:block;
  grid-column:1/-1;
  max-width:100%;
  margin:7px 0 0;
  color:#496779;
  font-size:12px;
  line-height:1.45;
  overflow-wrap:anywhere;
}

.document-download-state:empty{display:none}
.document-download-state.is-error{color:#a13c32}
.document-download-state[aria-busy="true"]{color:#537586}

@media(max-width:560px){
  .reservation-document-viewer .document-viewer-toolbar{
    grid-template-columns:auto minmax(0,1fr);
    grid-template-areas:
      "back heading"
      "download download";
    gap:8px 10px;
    padding:10px max(12px,env(safe-area-inset-left,0px)) 11px;
  }

  .reservation-document-viewer .document-viewer-back{
    min-width:110px;
    min-height:42px;
    justify-self:start;
  }

  .reservation-document-viewer .document-viewer-heading strong{font-size:14px}
  .reservation-document-viewer .document-viewer-heading small{font-size:10px}

  .reservation-document-viewer .document-viewer-download{
    justify-self:end;
    min-height:40px;
    padding:8px 12px;
  }

  .reservation-document-viewer .document-viewer-state{
    padding-right:max(12px,env(safe-area-inset-right,0px));
    padding-left:max(12px,env(safe-area-inset-left,0px));
  }
}

@media(prefers-reduced-motion:reduce){
  .reservation-document-viewer .document-viewer-back,
  .reservation-document-viewer .document-viewer-download,
  .reservation-document-viewer .document-viewer-retry{scroll-behavior:auto}
}
