.panel-v31-auth {
  min-height: 100vh;
  margin: 0;
  padding: 0;
}
/* Centrado de la pantalla de acceso V31 */
body.panel-v31-auth {
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

body.panel-v31-auth > .header {
  width: 100%;
  margin: 0;
  align-self: stretch;
}

.panel-v31-auth__main {
  display: grid;
  width: 100%;
  box-sizing: border-box;
  flex: 1 0 auto;
  min-height: 58vh;
  place-items: center;
  padding: clamp(40px, 7vw, 88px) 24px;
  background:
    radial-gradient(circle at top left, rgba(88, 213, 141, 0.13), transparent 34%),
    linear-gradient(180deg, #f8fcfb 0%, #ffffff 100%);
}

.panel-v31-twofa-page .panel-v31-auth__main {
  min-height: 100vh;
}

.panel-v31-auth__shell {
  width: min(100%, 420px);
}

.panel-v31-auth__panel {
  padding: 28px;
  background: var(--panel-v31-surface);
  border: 1px solid var(--panel-v31-border);
  border-radius: 18px;
  box-shadow: 0 18px 46px rgba(21, 69, 71, 0.1);
}

.panel-v31-auth__panel h1 {
  margin: 0 0 18px;
}

.panel-v31-auth-form {
  display: grid;
  gap: 14px;
}

.panel-v31-auth-form label {
  display: grid;
  gap: 6px;
  color: var(--panel-v31-muted);
  font-weight: 700;
}

.panel-v31-auth-form input {
  width: 100%;
  min-height: 42px;
  padding: 9px 10px;
  border: 1px solid var(--panel-v31-border);
  border-radius: 6px;
  font: inherit;
}

.panel-v31-auth-form input:focus {
  outline: 2px solid rgba(3, 127, 131, 0.24);
  border-color: var(--panel-v31-accent);
}

.panel-v31-auth-form button {
  min-height: 42px;
  border: 0;
  border-radius: 6px;
  background: var(--panel-v31-accent);
  color: #fff;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.panel-v31-auth-form button:hover,
.panel-v31-auth-form button:focus {
  background: var(--panel-v31-accent-dark);
}

.panel-v31-auth-error {
  margin: 0;
  color: var(--panel-v31-danger);
  font-weight: 700;
}

.panel-v31-auth-link,
.panel-v31-auth-note {
  display: block;
  margin-top: 16px;
  color: var(--panel-v31-muted);
}

.panel-v31-auth-debug {
  border-top: 1px solid var(--panel-v31-border);
  margin-top: 20px;
  padding-top: 14px;
}

.panel-v31-auth-debug h2 {
  font-size: 1rem;
  margin: 0 0 10px;
}

.panel-v31-auth-debug dl {
  display: grid;
  gap: 6px;
  margin: 0;
}

.panel-v31-auth-debug div {
  display: grid;
  grid-template-columns: minmax(140px, 1fr) auto;
  gap: 10px;
}

.panel-v31-auth-debug dt {
  color: var(--panel-v31-muted);
  font-size: 0.82rem;
}

.panel-v31-auth-debug dd {
  font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
  font-size: 0.82rem;
  margin: 0;
}
