body {
  min-height: 100dvh;
  word-break: normal;
  overflow-wrap: break-word;
}

[hidden] { display: none !important; }

.shell { min-height: 100dvh; }

.skip-link {
  position: fixed;
  top: 0.8rem;
  left: 0.8rem;
  z-index: 120;
  padding: 1rem 1.4rem;
  background: var(--white);
  color: var(--press-black);
  border-radius: var(--r-sm);
  font-size: 1.4rem;
  font-weight: 700;
  text-decoration: none;
  transform: translateY(-160%);
  transition: transform var(--d-fast) var(--ease-out);
}

.skip-link:focus { transform: translateY(0); }

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible {
  outline: 3px solid var(--tiger-orange);
  outline-offset: 3px;
}

.auth-mark {
  display: block;
  text-decoration: none;
}

.auth-head h1,
.auth-head h2 {
  margin: 0;
  color: var(--white);
  font-family: var(--f-body);
  font-size: 2.4rem;
  font-weight: 650;
  line-height: 1.2;
  letter-spacing: -0.018em;
}

.auth-head p { text-wrap: pretty; }

.field { gap: 0.6rem; }

.field-label {
  padding-left: 0;
  color: var(--d-text-1);
  font-size: 1.25rem;
  font-weight: 650;
}

.input-d::placeholder {
  color: var(--d-text-3);
  opacity: 1;
}

.input-d[aria-invalid="true"] {
  border-color: #FF786A;
  box-shadow: 0 0 0 2px rgba(255,120,106,0.16);
}

.field-control { position: relative; }
.field-control .input-d { padding-right: 7rem; }

.password-toggle {
  position: absolute;
  top: 50%;
  right: 0.6rem;
  transform: translateY(-50%);
  min-height: 32px;
  padding: 0 0.7rem;
  border: 0;
  background: transparent;
  color: var(--d-text-2);
  font: 600 1.2rem var(--f-body);
  cursor: pointer;
}

.password-toggle:hover { color: var(--white); }

.field-help {
  margin: 0;
  padding-left: 0;
}

.field-error {
  margin: 0;
  color: #FF9A90;
  font-size: 1.15rem;
  line-height: 1.45;
}

.form-status {
  margin: 0;
  padding: 1rem 1.2rem;
  border: 1px solid rgba(255,120,106,0.45);
  border-radius: var(--r-sm);
  background: rgba(255,120,106,0.1);
  color: #FFD3CE;
  font-size: 1.25rem;
  line-height: 1.5;
}

.form-status.is-success {
  border-color: rgba(103,204,145,0.45);
  background: rgba(103,204,145,0.1);
  color: #C7F4D9;
}

.prototype-notice {
  margin: 0;
  padding: 1rem 1.15rem;
  border: 1px solid rgba(249,104,21,0.42);
  border-radius: var(--r-sm);
  background: rgba(249,104,21,0.1);
  color: var(--d-text-1);
  font-size: 1.2rem;
  line-height: 1.55;
}

.prototype-notice strong {
  display: block;
  margin-bottom: 0.25rem;
  color: var(--white);
  font-size: 1.2rem;
  font-weight: 700;
}

.prototype-notice a { color: var(--white); }

.input-d:disabled,
.password-toggle:disabled {
  cursor: not-allowed;
  opacity: 0.62;
}

.btn-primary-d:disabled,
.btn-secondary-d:disabled,
.btn-social:disabled,
.ed-demo-auth:disabled {
  cursor: not-allowed;
  opacity: 0.7;
}

.consent-group {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.consent-legend {
  margin-bottom: 0.7rem;
  color: var(--white);
  font-size: 1.3rem;
  font-weight: 650;
}

.consent-tag {
  margin-right: 0.35rem;
  color: var(--tiger-orange);
  font-weight: 700;
}

.consent-tag.is-optional {
  color: var(--d-text-3);
  font-weight: 600;
}

.state-switcher[hidden] { display: none; }

@media (max-width: 767px) {
  .topnav .links { display: none; }
  .auth-head h1,
  .auth-head h2 { font-size: 2.2rem; }
}

@media (max-width: 767px), (max-height: 760px) {
  .center { align-items: flex-start; }
}
