/* ==========================================================================
   Levitha — Auth design system (TEMA CHIARO)
   Usato da tutte le pagine del flusso di accesso e registrazione
   (login, forgot/reset password, verify_otp, setpassword, a_login,
   a_send_link, register_page). Stesse classi → cambiando questo file
   cambiano tutte insieme.
   ========================================================================== */

:root{
  --lv-bg:#F6F5F1;
  --lv-bg-2:#FFFFFF;
  --lv-ink:#0A1310;
  --lv-ink-2:rgba(10,19,16,.64);
  --lv-ink-3:rgba(10,19,16,.42);
  --lv-line:rgba(10,19,16,.12);
  --lv-line-2:rgba(10,19,16,.18);
  --lv-green:#3E8E6E;
  --lv-green-h:#4CA681;
  --lv-green-l:#2F8061;   /* verde leggibile su chiaro (link/accenti) */
  --lv-field:#FFFFFF;
  --lv-danger:#C0453F;
}

*{box-sizing:border-box;}

body.auth-page{
  margin:0;
  min-height:100svh;
  background:var(--lv-bg);
  color:var(--lv-ink);
  font-family:"Schibsted Grotesk",-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
}

/* Glow verde tenue in alto */
body.auth-page::before{
  content:"";
  position:fixed;
  left:50%;top:-12%;
  width:56vw;height:56vw;
  transform:translateX(-50%);
  background:radial-gradient(circle,rgba(62,142,110,.14),rgba(62,142,110,0) 62%);
  pointer-events:none;
  z-index:0;
}

.auth-shell{
  position:relative;
  z-index:1;
  min-height:100svh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(24px,6vh,72px) 20px;
}

.auth-card{
  width:100%;
  max-width:440px;
  background:var(--lv-bg-2);
  border:1px solid var(--lv-line);
  border-radius:24px;
  padding:clamp(28px,4vw,44px);
  box-shadow:0 30px 70px -40px rgba(10,19,16,.22);
}

/* Brand / logo (su chiaro: logo nei suoi colori) */
.auth-brand{
  display:flex;
  justify-content:center;
  margin-bottom:26px;
}
.auth-brand a{display:block;width:150px;height:25px;overflow:hidden;}
.auth-brand img{
  display:block;
  width:163px;height:163px;
  margin:-70px 0 0 -7px;
  filter:none;
}

.auth-title{
  margin:0 0 10px;
  font-size:clamp(22px,3.4vw,28px);
  line-height:1.12;
  letter-spacing:-.02em;
  font-weight:600;
  text-align:center;
}
.auth-intro{
  margin:0 0 26px;
  font-size:14.5px;
  line-height:1.6;
  color:var(--lv-ink-2);
  text-align:center;
}

/* Alert */
.alert{
  border-radius:14px;
  padding:13px 16px;
  font-size:14px;
  line-height:1.5;
  margin-bottom:18px;
}
.alert-error{
  border:1px solid rgba(192,69,63,.35);
  background:rgba(192,69,63,.08);
  color:#9B322D;
}
.alert-success{
  border:1px solid rgba(62,142,110,.4);
  background:rgba(62,142,110,.10);
  color:#276B4F;
}

/* Form */
.form-row{margin-bottom:16px;display:flex;flex-direction:column;gap:8px;}
.form-row label{
  font-size:12.5px;
  letter-spacing:.02em;
  color:var(--lv-ink-2);
  font-weight:500;
}
.auth-card input[type="text"],
.auth-card input[type="email"],
.auth-card input[type="tel"],
.auth-card input[type="password"],
.auth-card input[type="number"],
.auth-card select{
  width:100%;
  background:var(--lv-field);
  border:1px solid var(--lv-line-2);
  border-radius:12px;
  padding:14px 16px;
  color:var(--lv-ink);
  font-size:15px;
  font-family:inherit;
  outline:none;
  transition:border-color .25s ease,box-shadow .25s ease;
}
.auth-card input::placeholder{color:var(--lv-ink-3);}
.auth-card input:focus,
.auth-card select:focus{
  border-color:var(--lv-green);
  box-shadow:0 0 0 3px rgba(62,142,110,.12);
}
.field-hint{
  font-size:12px;
  line-height:1.5;
  color:var(--lv-ink-3);
}

/* Bottoni */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  border:0;
  border-radius:99px;
  padding:15px 24px;
  font-size:15px;
  font-weight:600;
  font-family:inherit;
  cursor:pointer;
  text-decoration:none;
  transition:transform .3s cubic-bezier(.16,1,.3,1),background .3s ease,opacity .3s ease;
}
.btn-primary{background:var(--lv-green);color:#fff;margin-top:6px;}
.btn-primary:hover{background:var(--lv-green-h);transform:translateY(-2px);color:#fff;}
.btn-ghost{background:transparent;border:1px solid var(--lv-line-2);color:var(--lv-ink);}
.btn-ghost:hover{background:rgba(10,19,16,.05);}

/* Link area */
.auth-links{
  margin-top:20px;
  text-align:center;
  font-size:13.5px;
  color:var(--lv-ink-2);
}
.auth-links a{color:var(--lv-green-l);text-decoration:none;font-weight:600;transition:color .25s ease;}
.auth-links a:hover{color:var(--lv-green);}

.auth-divider{
  height:1px;
  background:var(--lv-line);
  margin:30px 0;
}

/* Scelta profilo (multi-match) */
.choice-title{
  margin:0 0 8px;
  font-size:18px;
  font-weight:600;
  letter-spacing:-.01em;
}
.choice-intro{
  margin:0 0 18px;
  font-size:14px;
  line-height:1.55;
  color:var(--lv-ink-2);
}
.choice-card{
  border:1px solid var(--lv-line-2);
  border-radius:14px;
  padding:14px 16px;
  margin-bottom:12px;
  transition:border-color .25s ease,background .25s ease;
}
.choice-card:hover{border-color:var(--lv-green);background:rgba(62,142,110,.04);}
.choice-line{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;cursor:pointer;}
.choice-line input[type="radio"]{margin-top:3px;width:16px;height:16px;accent-color:var(--lv-green);}
.choice-label{font-size:15px;font-weight:600;}
.choice-sub{font-size:13px;color:var(--lv-ink-2);margin-top:2px;}

/* Extra (verify_otp ecc.) */
.btn-link{
  display:inline-block;
  background:transparent;
  border:0;
  padding:0;
  color:var(--lv-green-l);
  font-size:13.5px;
  font-weight:600;
  font-family:inherit;
  cursor:pointer;
  text-decoration:none;
  transition:color .25s ease;
}
.btn-link:hover{color:var(--lv-green);}
.small-note{
  font-size:12.5px;
  line-height:1.55;
  color:var(--lv-ink-3);
}

/* ==========================================================================
   Design ".page/.card" — a_login / a_send_link / setpassword
   ========================================================================== */
.page{
  position:relative;
  z-index:1;
  min-height:100svh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(24px,6vh,72px) 20px;
  background:var(--lv-bg);
  color:var(--lv-ink);
  font-family:"Schibsted Grotesk",-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;
}
.page .card{
  width:100%;
  max-width:480px;
  background:var(--lv-bg-2);
  border:1px solid var(--lv-line);
  border-radius:24px;
  padding:clamp(28px,4vw,44px);
  box-shadow:0 30px 70px -40px rgba(10,19,16,.22);
}
.page .brand{display:flex;justify-content:center;margin-bottom:26px;}
.page .brand a{display:block;width:150px;height:25px;overflow:hidden;}
.page .brand img{display:block;width:163px;height:163px;margin:-70px 0 0 -7px;filter:none;}
.page h1{margin:0 0 12px;font-size:clamp(22px,3.4vw,28px);line-height:1.14;letter-spacing:-.02em;font-weight:600;text-align:center;}
.page .intro{margin:0 0 24px;font-size:14.5px;line-height:1.6;color:var(--lv-ink-2);text-align:center;}
.page label{display:block;font-size:12.5px;color:var(--lv-ink-2);font-weight:500;margin-bottom:8px;}
.page input[type="text"],.page input[type="email"],.page input[type="tel"],.page input[type="password"],.page input[type="number"]{
  width:100%;background:var(--lv-field);border:1px solid var(--lv-line-2);border-radius:12px;
  padding:14px 16px;color:var(--lv-ink);font-size:15px;font-family:inherit;outline:none;
  transition:border-color .25s ease,box-shadow .25s ease;
}
.page input::placeholder{color:var(--lv-ink-3);}
.page input:focus{border-color:var(--lv-green);box-shadow:0 0 0 3px rgba(62,142,110,.12);}
.page .hint,.page .top-note,.page .meta-note{font-size:12.5px;line-height:1.55;color:var(--lv-ink-3);margin-top:8px;}
.page .btn{
  display:inline-flex;align-items:center;justify-content:center;width:100%;margin-top:16px;
  background:var(--lv-green);color:#fff;border:0;border-radius:99px;padding:15px 24px;
  font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;text-decoration:none;
  transition:transform .3s cubic-bezier(.16,1,.3,1),background .3s ease;
}
.page .btn:hover{background:var(--lv-green-h);transform:translateY(-2px);color:#fff;}
.page .alert{border-radius:14px;padding:13px 16px;font-size:14px;line-height:1.5;margin-bottom:18px;}
.page .alert.error{border:1px solid rgba(192,69,63,.35);background:rgba(192,69,63,.08);color:#9B322D;}
.page .alert.success{border:1px solid rgba(62,142,110,.4);background:rgba(62,142,110,.10);color:#276B4F;}
.page .results{margin-top:24px;}
.page .result-card{border:1px solid var(--lv-line-2);border-radius:14px;padding:14px 16px;margin-bottom:12px;}
.page .result-name{font-size:15px;font-weight:600;margin-bottom:10px;}
.page .delivery-options{display:flex;flex-direction:column;gap:8px;}
.page .radio-line{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;font-size:14px;color:var(--lv-ink-2);cursor:pointer;}
.page .radio-line input[type="radio"]{width:16px;height:16px;accent-color:var(--lv-green);}
.page .actions{margin-top:18px;}
.page .actions .btn{display:block;width:100%;text-align:center;text-decoration:none;}
.page .preview-box{
  margin-top:16px;padding:12px 14px;border-radius:14px;
  background:rgba(62,142,110,.08);border:1px solid rgba(62,142,110,.28);
  color:var(--lv-ink-2);font-size:14px;line-height:1.5;word-break:break-word;
}
.page .preview-box a{color:var(--lv-green-l);text-decoration:underline;}
.page .setpassword-form{margin-top:8px;}
