/* Compartido por las páginas de formulario simple: login, inscripcion, solicitar-acceso,
   recuperar-contrasena, restablecer-contrasena. */
body::before {
  content:''; position:fixed; inset:0; z-index:0;
  background: radial-gradient(ellipse 60% 50% at 20% 10%, rgba(110,9,26,0.12) 0%, transparent 70%),
              radial-gradient(ellipse 50% 60% at 80% 80%, rgba(107,22,9,0.07) 0%, transparent 70%);
  pointer-events:none;
}

.btn-back { font-family:'Space Mono',monospace; font-size:0.7rem; padding:6px 14px; border-radius:6px; border:1px solid var(--border); background:transparent; color:#fff; cursor:pointer; text-decoration:none; transition:all 0.2s; }
.btn-back:hover { border-color:var(--accent2-bright); color:var(--accent2-bright); }

.hero { position:relative; z-index:1; text-align:center; padding: 4rem 2rem 2.5rem; }
.hero-tag { display:inline-block; font-family:'Space Mono',monospace; font-size:0.7rem; letter-spacing:0.15em; padding:5px 14px; border:1px solid var(--accent); border-radius:50px; color:var(--accent); margin-bottom:1.5rem; }
.hero h1 { font-size:clamp(2rem,5vw,3rem); font-weight:800; line-height:1.1; letter-spacing:-0.03em; margin-bottom:1rem; }
.hero h1 em { font-style:normal; background: linear-gradient(90deg,var(--accent),var(--accent2)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; }
.hero-sub { font-size:1rem; color:var(--text-dim); max-width:460px; margin:0 auto; line-height:1.6; }

.form-wrap { position:relative; z-index:1; max-width:480px; margin:0 auto; padding:0 2rem 5rem; }
.form-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:2rem; }
.form-card label { display:flex; flex-direction:column; gap:6px; font-size:0.8rem; color:var(--text-dim); margin-bottom:1.2rem; }
.form-card input {
  padding:12px 14px; background:var(--surface2); border:1px solid var(--border); border-radius:8px;
  color:var(--text); font-family:'Syne',sans-serif; font-size:0.9rem; outline:none; transition:border-color 0.2s;
}
.form-card input:focus { border-color:var(--accent); box-shadow:var(--glow); }
.field-error { color:var(--accent3); font-size:0.75rem; min-height:1.1em; }

.btn-primary {
  display:inline-flex; align-items:center; justify-content:center; gap:8px; width:100%;
  padding:13px 24px; border-radius:10px;
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  color:#fff; font-family:'Space Mono',monospace; font-size:0.85rem;
  text-decoration:none; font-weight:700; transition:all 0.2s;
  border:none; cursor:pointer;
}
.btn-primary:hover { transform:translateY(-2px); box-shadow:var(--glow); }
.btn-primary:disabled { opacity:0.6; cursor:default; transform:none; box-shadow:none; }

.form-result { margin-top:1.2rem; padding:12px 14px; border-radius:8px; font-size:0.85rem; line-height:1.5; display:none; }
.form-result.success { display:block; background:rgba(5,65,40,0.08); border:1px solid rgba(5,65,40,0.3); color:#0a5c38; }
.form-result.error { display:block; background:rgba(108,9,42,0.08); border:1px solid rgba(108,9,42,0.3); color:var(--accent3); }

.form-back-link { display:block; text-align:center; margin-top:1rem; font-size:0.8rem; color:var(--text-dim); text-decoration:none; }
.form-back-link:hover { color:var(--accent); }

@media(max-width:600px) {
  .hero { padding:3rem 1rem 2rem; }
  .form-wrap { padding:0 1rem 3rem; }
}
