/* ==========================================================================
   Gesco by HostCM — Pages d'authentification (clair / minimaliste / neutre)
   ========================================================================== */
:root{
  --accent:#10b981; --accent-600:#059669; --accent-700:#047857;
  --accent-ring:rgba(16,185,129,.18);
  --bg:#f6f7f9; --surface:#ffffff; --border:#e6e8eb; --border-strong:#d6d9de;
  --text:#111827; --text-muted:#6b7280; --text-faint:#9ca3af; --danger:#ef4444;
}
*{ margin:0; padding:0; box-sizing:border-box; }
body{
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  color:var(--text);
  background:var(--bg);
  background-image:
    radial-gradient(60vw 60vw at 85% -10%, rgba(16,185,129,.10), transparent 60%),
    radial-gradient(50vw 50vw at -10% 110%, rgba(59,130,246,.08), transparent 55%);
  min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px;
  -webkit-font-smoothing:antialiased;
}
.container{
  background:var(--surface); border:1px solid var(--border); padding:40px;
  border-radius:18px; box-shadow:0 12px 40px rgba(16,24,40,.08); width:100%; max-width:520px;
}

/* Logo / marque */
.logo{ text-align:center; margin-bottom:28px; }
.logo h1{
  font-size:27px; font-weight:800; letter-spacing:-.02em; color:var(--text);
  margin-bottom:6px; -webkit-text-fill-color:initial; background:none;
}
.logo p{ color:var(--text-muted); font-size:14px; }
.logo .brand-tag{ display:inline-block; margin-top:6px; font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--text-faint); }

/* Alertes */
.alert{ padding:13px 15px; border-radius:10px; margin-bottom:22px; font-size:14px; line-height:1.5; border:1px solid transparent; }
.alert-error,.alert-danger{ background:#fef2f2; color:#991b1b; border-color:#fecaca; }
.alert-success{ background:#ecfdf5; color:#065f46; border-color:#a7f3d0; }
.alert-info{ background:#eff6ff; color:#1e40af; border-color:#bfdbfe; }
.alert-warning{ background:#fffbeb; color:#92400e; border-color:#fde68a; }

/* Formulaire */
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-group{ margin-bottom:20px; }
label{ display:block; margin-bottom:7px; color:var(--text); font-weight:600; font-size:13.5px; }
label .req{ color:var(--danger); }
input,select,textarea{
  width:100%; padding:12px 14px; border:1px solid var(--border-strong); border-radius:10px;
  font-size:15px; font-family:inherit; color:var(--text); background:var(--surface); transition:border-color .15s, box-shadow .15s;
}
input:focus,select:focus,textarea:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-ring); }
input.err-border{ border-color:var(--danger); }
input.ok-border{ border-color:var(--accent); }
.email-hint{ font-size:12px; margin-top:6px; min-height:16px; }
small{ color:var(--text-muted); font-size:12px; }

/* Bouton principal */
.btn{
  width:100%; padding:14px; background:var(--accent-600); color:#fff; border:none; border-radius:10px;
  font-size:15px; font-weight:700; cursor:pointer; transition:.15s; font-family:inherit;
}
.btn:hover{ background:var(--accent-700); }
.btn:disabled{ opacity:.55; cursor:not-allowed; }

/* Liens bas de carte */
.links{ margin-top:22px; text-align:center; font-size:14px; color:var(--text-muted); }
.links a{ color:var(--accent-700); text-decoration:none; font-weight:600; }
.links a:hover{ text-decoration:underline; }
.divider{ color:var(--border-strong); margin:0 8px; }

.grecaptcha-badge{ visibility:hidden !important; }

@media(max-width:600px){
  .container{ padding:30px 22px; }
  .form-row{ grid-template-columns:1fr; gap:0; }
}
