/* Accesso · mobile first: su telefono una sola schermata, senza scorrimento. */
body.auth-page{background:#fff;height:100vh;height:100dvh;overflow:hidden}
.auth{display:flex;flex-direction:column;height:100vh;height:100dvh}

/* pannello a sinistra: su telefono resta solo la barra con il logo */
.auth-side{padding:14px 18px 0;background:#fff;display:flex;align-items:center}
.auth-side .logo{font-size:1.1rem}
.side-body{display:none}

.auth-main{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:6px 22px 14px}
.back-home{position:absolute;top:-44px;right:16px;display:inline-flex;gap:6px;align-items:center;background:var(--g10);border:1px solid var(--g20);border-radius:999px;padding:8px 14px;font:600 .8rem var(--head);color:var(--g70);text-decoration:none}
.back-home:hover{color:var(--g100);border-color:var(--g40)}
.auth-box{width:100%;max-width:440px}
.auth-box h2{font:600 1.7rem/1.1 var(--head);letter-spacing:-.02em;margin-bottom:6px}
.switch{color:var(--g60);font-size:.92rem;margin-bottom:16px}
.switch a,.forgot,.terms a{color:var(--blue);font-weight:600;text-decoration:none}
.switch a:hover,.forgot:hover{text-decoration:underline}
.field{margin-bottom:11px}
.field[hidden]{display:none}
.field label{display:block;font:600 .84rem var(--head);margin-bottom:5px}
.input{display:flex;align-items:center;gap:10px;border:1px solid var(--g30);border-radius:13px;padding:0 13px;background:#fff;height:48px;color:var(--g50)}
.input:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px #2a6fdb22}
.input input{flex:1;min-width:0;border:0;outline:0;font:.95rem var(--body);color:var(--g100);background:transparent;height:100%}
.input input::placeholder{color:var(--g40)}
.eye{border:0;background:none;color:var(--g50);cursor:pointer;display:grid;place-items:center;padding:6px}
.eye:hover{color:var(--g100)}
.hint{display:block;margin-top:4px;color:var(--g50);font-size:.78rem}
.hint[hidden]{display:none}
.forgot{display:inline-block;margin:0 0 12px;font-size:.88rem}
.forgot[hidden]{display:none}
.msg{border-radius:12px;padding:10px 14px;margin-bottom:10px;font-size:.86rem;line-height:1.35}
.msg.err{background:#ffe9e4;color:#a8321b}
.msg.ok{background:#e2f8ec;color:#06603a}
.msg[hidden]{display:none}
.btn-block{width:100%;padding:14px 22px;font-size:1rem}
.terms{margin-top:14px;text-align:center;color:var(--g50);font-size:.78rem}
.terms a{color:var(--g60);text-decoration:underline;font-weight:500}

/* ≥ 900px: due colonne come nella schermata di riferimento */
@media(min-width:900px){
  body.auth-page{height:auto;overflow:auto}
  .auth{display:grid;grid-template-columns:1fr 1fr;height:auto;min-height:100vh}
  .auth-side{position:relative;padding:40px 48px;background:radial-gradient(700px 500px at 100% 0%,#fff,transparent 60%),linear-gradient(160deg,#e6efff,#f4f7ff 55%,#fff);border-right:1px solid var(--g20);display:flex;flex-direction:column;align-items:stretch;gap:36px}
  .auth-side .logo{font-size:1.25rem}
  .side-body{max-width:520px;display:flex;flex-direction:column;gap:20px;margin-block:auto}
  .auth-side h1{font:600 clamp(2rem,3.2vw,2.7rem)/1.08 var(--head);letter-spacing:-.025em}
  .side-lead{color:var(--g60);font-size:1.02rem;max-width:480px}
  .chat-demo{display:grid;gap:10px;max-width:420px;margin-top:10px}
  .chat-demo .bub{padding:11px 16px;border-radius:18px;font-size:.9rem;box-shadow:0 8px 20px -14px #0006}
  .chat-demo .bub.me{justify-self:end;background:var(--blue);color:#fff;border-bottom-right-radius:5px}
  .chat-demo .bub.ai{background:#fff;border:1px solid var(--g20);border-bottom-left-radius:5px}
  .auth-main{padding:40px 24px}
  .back-home{top:26px;right:30px;padding:9px 18px;font-size:.86rem}
  .auth-box h2{font-size:2.1rem;margin-bottom:8px}
  .switch{font-size:1rem;margin-bottom:24px}
  .field{margin-bottom:16px}
  .input{height:54px}
  .input input{font-size:1rem}
  .btn-block{padding:16px 24px;font-size:1.05rem}
  .terms{margin-top:22px;font-size:.85rem}
}

/* Controllo di sicurezza Turnstile (compare solo in produzione) */
.captcha{margin:0 0 14px;min-height:65px;display:flex;justify-content:center}

/* Accesso con Google */
.or{display:flex;align-items:center;gap:12px;color:var(--g50);font-size:.85rem;margin:14px 0}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--g20)}
#google{gap:10px}
