.academy-password-dialog {
  box-sizing: border-box;
  width: min(31rem, calc(100% - 1.5rem));
  max-height: calc(100dvh - 1.5rem);
  margin: auto;
  padding: 0;
  border: 1px solid #d9e3ee;
  border-radius: 16px;
  background: #fff;
  color: var(--wow-ink, #142842);
  box-shadow: 0 18px 68px #08233b44;
  font: 400 1.0625rem / 1.5 var(--wow-font, system-ui, sans-serif);
  overscroll-behavior: contain;
}

.academy-password-dialog:not([open]),
.academy-password-dialog [hidden] {
  display: none !important;
}

.academy-password-dialog::backdrop { background: #071e397a; }
.academy-password-content { position: relative; padding: clamp(1.15rem, 5vw, 2rem); }
.academy-password-dialog h2 {
  margin: 0 2.6rem .5rem 0;
  color: var(--wow-navy, #092348);
  font-size: clamp(1.5rem, 4.8vw, 1.9rem);
  line-height: 1.22;
}

.academy-password-intro { margin: 0 0 1rem; color: #486075; }
.academy-password-dialog button, .academy-password-dialog input { font: inherit; }
.academy-password-close {
  position: absolute;
  inset: .7rem .65rem auto auto;
  min-width: 44px;
  min-height: 44px;
  border: 1px solid #d9e3ee;
  border-radius: 50%;
  background: #f3f6fa;
  color: var(--wow-navy, #092348);
  font-size: 1.5rem !important;
  line-height: 1 !important;
  cursor: pointer;
}

.academy-password-dialog label { display: block; margin: .8rem 0 .35rem; font-weight: 650; }
.academy-password-dialog input {
  display: block;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  min-height: 48px;
  padding: .65rem .7rem;
  border: 1px solid #b7c8d8;
  border-radius: 8px;
  background: #fff;
  color: inherit;
}

.academy-password-field { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .45rem; }
.academy-password-field button,
.academy-password-secondary {
  min-height: 44px;
  padding: .45rem .65rem;
  border: 1px solid #b7c8d8;
  border-radius: 8px;
  background: #fff;
  color: var(--wow-navy, #092348);
  font-weight: 620 !important;
  cursor: pointer;
}

.academy-password-hint { margin: .35rem 0 0; color: #486075; }
.academy-password-primary {
  width: 100%;
  min-height: 48px;
  margin-top: 1rem;
  padding: .6rem .75rem;
  border: 1px solid #092348;
  border-radius: 8px;
  background: #092348;
  color: #fff;
  font-weight: 680 !important;
  cursor: pointer;
}

.academy-password-actions, .academy-password-verification {
  display: grid;
  gap: .4rem;
  margin-top: .55rem;
}

.academy-password-link {
  min-height: 44px;
  width: 100%;
  padding: .4rem .25rem;
  border: 0;
  background: transparent;
  color: var(--wow-navy, #092348);
  font-weight: 620 !important;
  text-decoration: underline;
  text-underline-offset: .18em;
  cursor: pointer;
}

.academy-password-message {
  margin: .65rem 0 0;
  padding: .55rem .65rem;
  border-left: 3px solid #9d7639;
  background: #f2f5f9;
  overflow-wrap: anywhere;
}

.academy-password-message:empty { display: none; }
.academy-password-message[data-error="true"] { border-color: #a73f39; background: #fff2f1; color: #792b2b; }
.academy-password-dialog :focus-visible { outline: 3px solid #9d7639; outline-offset: 2px; }
.academy-password-dialog button:disabled { opacity: .6; cursor: wait; }
