/* Mismo mando de tamaño que el panel (ver panel.css): todo aquí va en rem
   y escala desde esta línea. Mantener los dos valores iguales para que la
   pantalla de acceso y el panel no se vean de tamaños distintos. */
html{font-size:118.75%;}

:root{
  --ink:#0A1C14; --forest:#0A1E16; --forest-2:#0F2A1F;
  --green:#2FCB6E; --green-bright:#39DC7C; --green-soft:#E7F7EE;
  --cream:#F4F1EA; --paper:#FFFFFF; --line:#E8E4D9;
  --muted:#6E7B72; --muted-2:#9AA39C; --muted-dark:#8FA399; --red:#D9534F;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:'Hanken Grotesk',system-ui,sans-serif;
  background:var(--cream);color:var(--ink);
  -webkit-font-smoothing:antialiased;line-height:1.45;
}
.serif{font-family:'Instrument Serif',serif;font-style:italic;font-weight:400;}

.auth{display:grid;grid-template-columns:1.05fr 1fr;min-height:100vh;}

/* ---- Brand panel (left): degradado verde/forest ---- */
.auth-brand{
  position:relative;overflow:hidden;color:#fff;
  background:var(--forest);
  background-image:
    radial-gradient(120% 80% at 0% 0%,rgba(57,220,124,.20),transparent 55%),
    radial-gradient(90% 70% at 100% 100%,rgba(57,220,124,.12),transparent 60%);
  display:flex;flex-direction:column;justify-content:space-between;
  padding:2.875rem 3.125rem;min-height:100vh;
}
.auth-brand::after{
  content:"";position:absolute;right:-8.125rem;bottom:-8.125rem;width:25rem;height:25rem;border-radius:50%;
  background:radial-gradient(circle,rgba(57,220,124,.14),transparent 70%);z-index:0;
}
.auth-brand > *{position:relative;z-index:1;}
.auth-brand__logo img{width:12.5rem;height:auto;display:block;}
.auth-brand__quote{max-width:27.5rem;}
.auth-brand__quote p{font-size:2rem;line-height:1.2;font-weight:700;letter-spacing:-.02em;color:#fff;}
.auth-brand__quote p .serif{font-size:2.25rem;color:var(--green-bright);}
.auth-brand__quote .who{margin-top:1.25rem;}
.auth-brand__quote .who b{display:block;font-size:0.90625rem;font-weight:700;}
.auth-brand__quote .who span{font-size:0.78125rem;color:var(--muted-dark);}

/* ---- Form side (right) ---- */
.auth-form{display:flex;align-items:center;justify-content:center;padding:2.5rem 1.75rem;}
.auth-card{width:100%;max-width:24.5rem;}
.auth-card .head{margin-bottom:1.625rem;}
.auth-card .head .eyebrow{font-size:0.6875rem;text-transform:uppercase;letter-spacing:.14em;color:var(--green);font-weight:700;}
.auth-card .head h1{font-size:1.6875rem;font-weight:700;letter-spacing:-.02em;margin-top:0.5rem;}
.auth-card .head p{color:var(--muted);font-size:0.84375rem;margin-top:0.375rem;}

.auth-mobile-logo{display:none;}

.fieldset{display:flex;flex-direction:column;gap:1rem;}
.field{display:flex;flex-direction:column;gap:0.4375rem;}
.field label{font-size:0.6875rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:600;}
.field input[type=email],.field input[type=password]{
  font-family:inherit;font-size:0.875rem;color:var(--ink);
  border:1px solid var(--line);border-radius:0.6875rem;padding:0.75rem 0.875rem;background:#fff;width:100%;
  transition:.16s;
}
.field input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 0.1875rem rgba(57,220,124,.16);}

.row-between{display:flex;align-items:center;justify-content:space-between;gap:0.625rem;margin-top:0.125rem;}
.check{display:inline-flex;align-items:center;gap:0.5rem;font-size:0.8125rem;color:var(--muted);cursor:pointer;}
.check input{width:0.9375rem;height:0.9375rem;accent-color:var(--green);}
.link{font-size:0.8125rem;color:var(--muted);text-decoration:none;}
.link:hover{color:var(--ink);text-decoration:underline;}

.btn-submit{
  margin-top:0.5rem;width:100%;font-family:inherit;font-size:0.90625rem;font-weight:700;cursor:pointer;
  padding:0.8125rem 1rem;border-radius:0.6875rem;border:1px solid var(--green-bright);
  background:var(--green-bright);color:var(--forest);
  box-shadow:0 0.5rem 1.25rem -0.5rem rgba(57,220,124,.7);transition:.16s;
  display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;
}
.btn-submit:hover{background:var(--green);}
.btn-submit svg{width:1rem;height:1rem;}

.err{color:var(--red);font-size:0.78125rem;margin-top:0.125rem;}
.status{background:var(--green-soft);color:#177544;font-size:0.8125rem;padding:0.6875rem 0.875rem;border-radius:0.625rem;margin-bottom:1.125rem;}
.auth-foot{margin-top:1.625rem;font-size:0.75rem;color:var(--muted-2);text-align:center;}

@media(max-width:860px){
  .auth{grid-template-columns:1fr;}
  .auth-brand{display:none;}
  .auth-form{padding:2.25rem 1.375rem;min-height:100vh;}
  .auth-mobile-logo{display:block;width:10.625rem;height:auto;margin:0 auto 1.875rem;}
}
