/* ============================================================
   HOWAR MIRROR — pagine auth (login / forgot / imposta password)
   Modellate sulla login di ecosystem: card a due colonne, sfondo navy
   con accenti verde HOWAR, pannello brandizzato + form.
   ============================================================ */
:root {
  --primary: #57A035; --primary-dark: #468729;
  --white: #fff; --light-gray: #E9ECF3; --gray: #6E7A8A; --dark-gray: #2E3A59;
  --radius: 8px; --shadow-lg: 0 10px 25px rgba(0,0,0,.15);
}
* { box-sizing: border-box; }
body.mirror-authpage {
  margin: 0; font-family: 'Inter', system-ui, -apple-system, sans-serif;
  background: #223B57;
  background-image:
    radial-gradient(circle at 0% 0%, rgba(87,160,53,.20), transparent 42%),
    radial-gradient(circle at 100% 100%, rgba(87,160,53,.10), transparent 52%);
  min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 20px;
}
.login-container { width: 100%; max-width: 880px; }
.login-card {
  display: flex; border-radius: 16px; overflow: hidden;
  box-shadow: var(--shadow-lg); background: var(--white);
  min-height: 500px; border-top: 4px solid var(--primary);
}
/* pannello brandizzato (sinistra) */
.login-image {
  flex: 1; position: relative; display: flex; align-items: center; justify-content: center;
  color: #fff; padding: 32px;
  background: linear-gradient(160deg, rgba(34,59,87,.86), rgba(34,59,87,.94)), url('../images/login-bg.jpg') center/cover;
}
.login-image-content { position: relative; z-index: 2; text-align: center; }
.brand-badge { font-size: 30px; font-weight: 800; letter-spacing: 1px; }
.brand-badge b { color: #8Fe36a; font-weight: 800; }
.brand-tag { margin: 14px auto 26px; font-size: 15px; line-height: 1.5; color: #dbe4ee; max-width: 260px; }
.security-badge {
  display: inline-flex; align-items: center; gap: 10px;
  background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.25);
  padding: 10px 18px; border-radius: 50px; backdrop-filter: blur(8px);
  font-weight: 600; font-size: 14px;
}
/* form (destra) */
.login-form-container { flex: 1; display: flex; flex-direction: column; padding: 34px; }
.login-header { text-align: center; margin-bottom: 26px; }
.login-logo-img { max-width: 140px; height: auto; }
.login-form-wrapper { flex: 1; display: flex; flex-direction: column; justify-content: center; max-width: 340px; margin: 0 auto; width: 100%; }
.login-title { font-size: 25px; font-weight: 700; margin: 0 0 6px; color: var(--dark-gray); text-align: center; }
.login-subtitle { font-size: 13px; color: var(--gray); text-align: center; margin: 0 0 24px; }
.login-alert { padding: 12px 15px; border-radius: var(--radius); margin-bottom: 16px; font-size: 12.5px; font-weight: 500; }
.login-alert.danger { background: #f8d7da; color: #842029; border: 1px solid #f5c2c7; }
.login-alert.info { background: #cfe2ff; color: #084298; border: 1px solid #b6d4fe; }
.login-alert.success { background: #d1e7dd; color: #0f5132; border: 1px solid #badbcc; }
.form-group { margin-bottom: 18px; }
.form-label { display: block; margin-bottom: 7px; font-weight: 600; color: var(--dark-gray); font-size: 12px; }
.form-control {
  width: 100%; padding: 12px 15px; font-size: 14px; color: var(--dark-gray);
  border: 2px solid var(--light-gray); border-radius: var(--radius); background: #fff; transition: all .2s ease;
}
.form-control:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(87,160,53,.12); }
.btn-login {
  width: 100%; margin-top: 8px; padding: 13px; border: 0; border-radius: var(--radius);
  color: #fff; font-size: 14px; font-weight: 700; cursor: pointer;
  background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%); transition: all .2s ease;
}
.btn-login:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(87,160,53,.28); }
.form-links { text-align: center; margin-top: 16px; }
.link-forgot {
  display: inline-block; color: #2D4B9A; font-size: 12.5px; font-weight: 500; text-decoration: none;
  padding: 8px 14px; border-radius: var(--radius); background: rgba(45,75,154,.08); border: 1px solid rgba(45,75,154,.15);
}
.link-forgot:hover { color: var(--primary); background: rgba(87,160,53,.1); border-color: rgba(87,160,53,.2); }
.login-footer { margin-top: auto; text-align: center; padding-top: 18px; }
.security-info { display: inline-flex; align-items: center; gap: 6px; color: var(--primary); font-size: 11px; font-weight: 600; padding: 5px 12px; background: rgba(87,160,53,.1); border-radius: 20px; }

@media (max-width: 768px) {
  .login-card { flex-direction: column; }
  .login-image { min-height: 150px; padding: 22px; }
  .brand-badge { font-size: 24px; } .brand-tag { display: none; }
  .login-form-container { padding: 26px 18px; }
}

/* ============================================================
   Front rispondenti — landing in stile login (colonna destra)
   ============================================================ */
.resp-wrapper { max-width: 400px; justify-content: flex-start; padding-top: 4px; }
.resp-intro { font-size: 13px; line-height: 1.6; color: #4b5563; margin: 4px 0 20px; }
.resp-intro p { margin: 0 0 12px; }
.resp-anon { background: rgba(87,160,53,.08); border: 1px solid rgba(87,160,53,.22);
  border-radius: 8px; padding: 12px 14px; color: #2E3A59; margin: 0 0 12px; }
.resp-hint { font-size: 12px; color: #6b7280; }
.resp-cta { display: block; text-align: center; text-decoration: none; }
.resp-note { font-size: 11px; color: #9ca3af; text-align: center; margin-top: 14px; line-height: 1.5; }
.resp-note a { color: #2D4B9A; text-decoration: none; }

/* IL PULSANTE RESTA IN VISTA SUL TELEFONO.
   La landing e' alta 964px e "Inizia" cade a 784. Su un iPhone con Chrome
   restano circa 664px visibili: il pulsante nasceva 120px sotto il bordo, e
   231 su un iPhone piccolo con Safari. Chi apriva l'invito leggeva il riquadro
   sull'anonimato, arrivava in fondo a cio' che vedeva e non trovava nessun
   modo di cominciare.
   Non e' un'ipotesi: il 09/09/2026 nel log di accesso un rispondente ha
   caricato la pagina intera in un secondo, da iPhone, e se n'e' andato senza
   mai chiedere rispondi.php. Il pulsante non era rotto, era fuori campo.
   Sotto i 768px diventa quindi una barra fissa in fondo allo schermo; sopra
   resta esattamente dov'era. Vale solo per il pulsante di avvio: quello del
   ringraziamento (.resp-cta-row) e' un invito, non un passo obbligato, e sta
   bene nel flusso. */
@media (max-width: 768px) {
  .resp-cta-avvio {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 30;
    width: auto; margin: 0; border-radius: 0;
    /* env() vale 0 se il viewport non e' a tutto schermo: innocuo, e copre
       il caso in cui un domani si passi a viewport-fit=cover. */
    padding: 15px 18px calc(15px + env(safe-area-inset-bottom, 0px));
    box-shadow: 0 -6px 18px rgba(27,46,71,.18);
  }
  /* Niente sollevamento al tocco: su una barra fissa il :hover che iOS applica
     dopo il tap la farebbe sobbalzare sopra il bordo dello schermo. */
  .resp-cta-avvio:hover { transform: none; box-shadow: 0 -6px 18px rgba(27,46,71,.18); }
  /* Spazio per la riga che segue il pulsante, se no la barra le sta sopra.
     E' la nota sulla privacy, che deve restare leggibile fino in fondo. */
  .resp-cta-avvio + .resp-note { margin-bottom: 78px; }
}

/* Ringraziamento — blocco cross-sell */
.resp-crosssell { margin-top: 18px; padding-top: 18px; border-top: 1px solid #E9ECF3; }
.resp-crosssell p { font-size: 13px; line-height: 1.6; color: #4b5563; margin: 0 0 14px; }

/* Ringraziamento — i due inviti affiancati: acquisto (pieno) e approfondimento (contorno).
   Su schermi stretti si impilano, tenendo per primo l'invito principale. */
.resp-cta-row { display: flex; gap: 10px; align-items: stretch; }
.resp-cta-row .resp-cta { flex: 1 1 auto; margin: 0; }
.resp-cta-sec {
  flex: 0 0 auto; display: flex; align-items: center; justify-content: center;
  padding: 0 16px; border: 1px solid #C7D0DE; border-radius: 8px;
  background: #fff; color: #2E3A59; font-size: 13px; font-weight: 600;
  text-decoration: none; white-space: nowrap; text-align: center;
  transition: background .15s, border-color .15s;
}
.resp-cta-sec:hover { background: #F5F7FB; border-color: #9BA8BE; }
@media (max-width: 420px) {
  .resp-cta-row { flex-direction: column; }
  .resp-cta-sec { padding: 11px 16px; }
}
