/* Frequency Matrix — identita' NextGen per le soglie di accesso.

   Si applica soltanto a /log-in/ e /logout/, servite da WordPress con il tema
   storico e il form del plugin User Registration.

   SOLO PRESENTAZIONE. Nessuna regola tocca markup, nome dei campi, nonce,
   azione del form, messaggi di errore o comportamento: sono le superfici da
   cui dipende l'accesso e restano quelle che sono. Se questo foglio venisse
   rimosso, la pagina tornerebbe esattamente com'era.

   I token sono quelli di fm.css, caricato prima: nessun colore nuovo. */

/* html deve essere dipinto quanto body: altrimenti restano fasce chiare sopra
   e sotto il contenuto, dove il tema non arriva. */
html:has(body.fm-login-nextgen) { background: #0b0714; }

.fm-login-nextgen {
  --fm-login-bg: var(--night, #0b0714);
  min-height: 100vh;
  --fm-login-ink: var(--night-ink, #ece8f1);
  --fm-login-muted: var(--night-muted, #948ca2);
  --fm-login-line: var(--night-line, #2a2136);
  background: var(--fm-login-bg);
  color: var(--fm-login-ink);
}

/* ---- chrome storico: si toglie di mezzo senza essere rimosso dal DOM ---- */
.fm-login-nextgen .site-header,
.fm-login-nextgen .custom-header,
.fm-login-nextgen #masthead,
.fm-login-nextgen .navigation-top,
.fm-login-nextgen .site-footer,
.fm-login-nextgen .widget-area,
.fm-login-nextgen #secondary,
.fm-login-nextgen .entry-header { display: none !important; }

/* Il tema dipinge di bianco i propri contenitori: senza forzarli resta una
   colonna chiara dietro la soglia. */
.fm-login-nextgen .site-content-contain,
.fm-login-nextgen #content,
.fm-login-nextgen .site-content,
.fm-login-nextgen .entry-content,
.fm-login-nextgen #primary,
.fm-login-nextgen .content-area,
.fm-login-nextgen #page,
.fm-login-nextgen body { background: var(--fm-login-bg) !important; padding: 0; margin: 0; }

.fm-login-nextgen .wrap,
.fm-login-nextgen #primary,
.fm-login-nextgen .content-area,
.fm-login-nextgen .entry-content,
.fm-login-nextgen article,
.fm-login-nextgen .hentry,
.fm-login-nextgen #user-registration,
.fm-login-nextgen .user-registration {
  max-width: none; width: auto; margin: 0; padding: 0; float: none;
  background: var(--fm-login-bg) !important;
  min-height: 0;
  border: 0;
}
/* il padding della soglia va ripristinato dopo l'azzeramento sopra */
.fm-login-nextgen #user-registration { padding: clamp(24px, 6vw, 64px) var(--s2, 16px) !important; }

/* ---- soglia ---- */
.fm-login-nextgen #user-registration {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: clamp(24px, 6vw, 64px) var(--s2, 16px);
  box-sizing: border-box;
}

.fm-login-nextgen #user-registration .ur-frontend-form,
.fm-login-nextgen .ur-frontend-form {
  width: 100%;
  max-width: 30rem;
  /* !important: il plugin dipinge la card di bianco con una regola che non
     posso modificare. Senza questo, il testo chiaro della soglia risulterebbe
     illeggibile. Seconda e ultima dichiarazione forzata del file. */
  background: color-mix(in srgb, var(--fm-login-ink) 5%, var(--fm-login-bg)) !important;
  border: 1px solid var(--fm-login-line) !important;
  border-radius: 0;
  padding: clamp(24px, 5vw, 44px);
  box-shadow: none;
  margin: 0;
}

/* marchio: aggiunto in testa alla soglia, non al documento */
.fm-login-nextgen #user-registration .ur-frontend-form::before,
.fm-login-nextgen .ur-frontend-form::before {
  content: "Frequency ●● Matrix";
  display: block;
  font-family: var(--mono, monospace);
  font-size: .72rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--fm-login-muted);
  margin-bottom: var(--s3, 24px);
}

/* Il plugin colora testo e sfondi con regole piu' specifiche del solo
   contenitore: si prefissa con #user-registration per pareggiarle. */
.fm-login-nextgen #user-registration,
.fm-login-nextgen #user-registration p,
.fm-login-nextgen #user-registration h1,
.fm-login-nextgen #user-registration h2,
.fm-login-nextgen #user-registration h3 { color: var(--fm-login-ink); }

/* ---- tipografia del form ---- */
.fm-login-nextgen #user-registration .user-registration-login-title,
.fm-login-nextgen #user-registration [data-field="login-title"] h2,
.fm-login-nextgen #user-registration [data-field="login-title"] h3 {
  font-family: var(--sans, system-ui);
  font-size: clamp(1.6rem, 4vw, 2.2rem);
  line-height: 1.1;
  letter-spacing: -.02em;
  /* Il plugin colora il titolo di scuro: su fondo notte sparirebbe. */
  color: var(--fm-login-ink) !important;
  margin: 0 0 var(--s1, 8px);
}
/* Qualunque intestazione dentro la soglia resta leggibile. */
.fm-login-nextgen #user-registration h1,
.fm-login-nextgen #user-registration h2,
.fm-login-nextgen #user-registration h3,
.fm-login-nextgen #user-registration legend { color: var(--fm-login-ink) !important; }
.fm-login-nextgen #user-registration .user-registration-login-description {
  color: var(--fm-login-muted);
  margin: 0 0 var(--s3, 24px);
  font-size: .95rem;
}

.fm-login-nextgen #user-registration .user-registration-form label,
.fm-login-nextgen #user-registration .ur-label {
  font-family: var(--mono, monospace);
  font-size: .6rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--fm-login-muted);
  font-weight: 500;
}

/* ---- campi: area tattile piena, nessun cambio di nome o tipo ----
   La specificita' include #user-registration perche' il foglio del plugin
   fissa min-height:38px con una regola piu' specifica del solo attributo. */
.fm-login-nextgen #user-registration input[type="text"],
.fm-login-nextgen #user-registration input[type="email"],
.fm-login-nextgen #user-registration input[type="password"],
.fm-login-nextgen input[type="text"],
.fm-login-nextgen input[type="email"],
.fm-login-nextgen input[type="password"] {
  width: 100%;
  /* !important: il foglio del plugin fissa min-height:38px con una regola che
     non posso modificare. E' l'unica dichiarazione forzata di questo file, e
     riguarda un target tattile, non l'aspetto. */
  min-height: 48px !important;
  height: auto;
  box-sizing: border-box;
  background: color-mix(in srgb, var(--fm-login-ink) 8%, var(--fm-login-bg)) !important;
  border: 1px solid var(--fm-login-line);
  border-radius: 0;
  color: var(--fm-login-ink) !important;
  padding: 0 14px;
  font-family: var(--sans, system-ui);
  font-size: 1rem;
  transition: border-color .3s ease;
}
.fm-login-nextgen input[type="text"]:focus,
.fm-login-nextgen input[type="email"]:focus,
.fm-login-nextgen input[type="password"]:focus {
  outline: none;
  border-color: var(--gold, #c68b2e);
}

/* Target tattili: la casella resta di 20px per non deformare l'allineamento,
   ma l'area cliccabile e' l'etichetta, che arriva a 44px. */
.fm-login-nextgen #user-registration .user-registration-form__input-checkbox { min-width: 20px; min-height: 20px; }
.fm-login-nextgen #user-registration .user-registration-form__label-for-checkbox {
  color: var(--fm-login-muted);
  display: inline-flex; align-items: center; gap: 10px; min-height: 44px;
}
/* Mostra/nascondi password: icona piccola, area piena. */
.fm-login-nextgen #user-registration a.password_preview,
.fm-login-nextgen #user-registration .password_preview {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 44px; min-height: 44px;
}
/* Password dimenticata e altri collegamenti del form. */
.fm-login-nextgen #user-registration a {
  display: inline-flex; align-items: center; min-height: 44px;
}

/* ---- azioni ---- */
.fm-login-nextgen #user-registration button[type="submit"],
.fm-login-nextgen #user-registration input[type="submit"],
.fm-login-nextgen #user-registration .ur-submit-button,
.fm-login-nextgen button[type="submit"],
.fm-login-nextgen input[type="submit"] {
  width: 100%;
  min-height: 48px;
  background: var(--gold, #c68b2e) !important;
  color: var(--night, #0b0714) !important;
  border: 0;
  border-radius: 0;
  font-family: var(--mono, monospace);
  font-size: .74rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .3s ease;
}
.fm-login-nextgen button[type="submit"]:hover,
.fm-login-nextgen input[type="submit"]:hover,
.fm-login-nextgen .ur-submit-button:hover { background: var(--gold-vivid, #e0a53f); }

.fm-login-nextgen a { color: var(--fm-login-ink); }
.fm-login-nextgen a:hover { color: var(--gold, #c68b2e); }
.fm-login-nextgen .user-registration-LostPassword a,
.fm-login-nextgen .ur-login-footer a {
  color: var(--fm-login-muted);
  display: inline-flex; align-items: center; min-height: 44px;
}

/* ---- messaggi: restano quelli del plugin, solo leggibili sul fondo scuro --- */
.fm-login-nextgen .user-registration-error,
.fm-login-nextgen .user-registration-message,
.fm-login-nextgen .user-registration-info,
.fm-login-nextgen .ur-error {
  background: color-mix(in srgb, var(--fm-login-ink) 6%, transparent);
  border-left: 2px solid var(--gold, #c68b2e);
  color: var(--fm-login-ink);
  padding: var(--s2, 16px);
  margin: 0 0 var(--s2, 16px);
  list-style: none;
}
.fm-login-nextgen .user-registration-error a,
.fm-login-nextgen .user-registration-message a { color: var(--gold, #c68b2e); }

/* ---- ritorno al sito ---- */
.fm-login-nextgen .fm-login-back {
  position: fixed; top: 0; left: 0; right: 0;
  display: flex; align-items: center; gap: 12px;
  min-height: 44px; padding: 0 var(--s2, 16px);
  font-family: var(--mono, monospace); font-size: .62rem;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--fm-login-muted);
  background: color-mix(in srgb, var(--fm-login-bg) 88%, transparent);
  backdrop-filter: blur(8px);
  z-index: 30;
}
.fm-login-nextgen .fm-login-back a {
  color: var(--fm-login-muted); text-decoration: none;
  display: inline-flex; align-items: center; min-height: 44px;
}
.fm-login-nextgen .fm-login-back a:hover { color: var(--gold, #c68b2e); }

@media (prefers-reduced-motion: reduce) {
  .fm-login-nextgen input,
  .fm-login-nextgen button[type="submit"],
  .fm-login-nextgen .fm-login-back a { transition: none; }
}
