/* ======= Paleta y base (ajustable para igualar 100% la maqueta) ======= */
:root{
  --bg: #ffffff;
  --text: #1f2937;
  --muted: #6b7280;
  --primary: #1f5cff;        /* botón azul */
  --primary-press: #194ad1;
  --border: #e5e7eb;
  --surface: #ffffff;
  --shadow: 0 15px 40px rgba(0,0,0,.12);

  /* Footer turquesa visto en la captura (ajustable) */
  --footer-bg: #78cfd4;
  --footer-bottom: #66c2c9;
}

/* Reset */
*{box-sizing:border-box}
html,body{margin:0}
body{font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial; color:var(--text); background:var(--bg)}

.wrap{width:min(1100px, 92%); margin-inline:auto}

/* ======= Header ======= */
.fa-header{position:sticky; top:0; z-index:10; background:#f7f8fb; border-bottom:1px solid var(--border)}
.fa-header .wrap{display:grid; grid-template-columns: 1fr minmax(280px, 520px) 1fr; align-items:center; gap:1rem; padding:.6rem 0}
.brand{display:inline-flex; align-items:center; gap:.6rem; color:inherit; padding:.2rem 0}
.brand .logo{display:block; height:44px; max-width:220px; width:auto; object-fit:contain; filter: drop-shadow(0 2px 3px rgba(0,0,0,.1))}
.brand b{font-weight:800}
.search{display:flex; align-items:center; gap:.4rem; padding:.35rem; border:1px solid #dfe3ea; border-radius:999px; background:#fff}
.search input{flex:1; border:0; outline:0; padding:.4rem .6rem; border-radius:999px}
.search .icon{border:0; background:transparent; padding:.3rem .6rem; cursor:pointer}
.right{display:flex; justify-content:flex-end; align-items:center; gap:1rem; color:#374151}
.menu-btn{display:none}

.btn{display:inline-flex; align-items:center; justify-content:center; gap:.5rem; border:1px solid #dfe3ea; background:#fff; padding:.7rem 1rem; border-radius:10px; cursor:pointer; text-decoration:none; color:#111; font-weight:600}
.btn.primary{background:var(--primary); color:#fff; border-color:transparent; box-shadow: 0 8px 20px rgba(31,92,255,.25)}
.btn.primary:active{background:var(--primary-press)}

/* ======= Fondo de login ======= */
.login-hero{position:relative; min-height:calc(100vh - 220px); display:grid; place-items:center; padding:5rem 1rem}
.blob{position:absolute; border-radius:50%; opacity:.9; filter: blur(0.2px);}
.blob-teal{width:300px; height:300px; background:#aee8e6; top:60px; left:20%;}
.blob-blue{width:250px; height:250px; background:#7da0ff; top:150px; right:28%;}
.blob-yellow{width:160px; height:160px; background:#f6e58d; bottom:150px; left:35%;}
.blob-coral{width:260px; height:260px; background:#ff8c8c; bottom:80px; right:25%;}

/* ======= Tarjeta ======= */
.login-card{position:relative; z-index:1; width:min(420px, 92%); background:var(--surface); border-radius:16px; border:1px solid var(--border); box-shadow:var(--shadow)}
.card-body{padding:1.4rem 1.4rem}
.logo-row{display:flex; align-items:center; gap:.6rem; justify-content:center}
.logo-row .logo{display:block; height:48px; width:auto}
.brand-text{font-weight:500}
.title{margin:.6rem 0 1rem; text-align:center; font-size:1.2rem}
.link{color:#1a73e8; text-decoration:none}
.link:hover{text-decoration:underline}

.form{display:flex; flex-direction:column; gap:.7rem}
.form input{padding:.8rem .95rem; border:1.5px solid #d1d5db; border-radius:10px; outline:0; font-size:1rem; transition:border-color .15s ease, box-shadow .15s ease}
.form input:focus{border-color:#6b8cff; box-shadow:0 0 0 3px rgba(107,140,255,.25)}
.row{display:flex; gap:.5rem; align-items:center}
.row.between{justify-content:space-between}
.tiny{font-size:.9rem; color:#6b7280}
.center{text-align:center}

.btn.full{width:100%}

/* ======= Footer ======= */
.fa-footer{background:var(--footer-bg); color:#fff; border-top:1px solid rgba(255,255,255,.4)}
.fa-footer .foot-top{display:grid; grid-template-columns: 1fr 2fr; gap:1rem; padding:2rem 0}
.foot-brand{display:flex; align-items:center; gap:.6rem}
.foot-brand .logo{display:block; height:40px; width:auto}
.foot-links{display:grid; grid-template-columns: 1fr 1fr 1fr; gap:1rem}
.foot-links a{color:#fff; text-decoration:none; opacity:.95}
.foot-links .muted{opacity:.9; margin-bottom:.4rem}
.fa-footer .foot-bottom{display:flex; align-items:center; justify-content:space-between; border-top:1px solid rgba(255,255,255,.35); padding:.6rem 0; background:var(--footer-bottom)}
.fa-footer .legal{display:flex; gap:1rem}
.fa-footer .legal a{color:#fff; opacity:.95; text-decoration:none}

/* Accesibilidad */
.sr-only{position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0}

@media (max-width: 900px){
  .fa-header .wrap{grid-template-columns: 1fr 1fr auto}
  .search{display:none}
  .menu-btn{display:inline-flex; border:1px solid #dfe3ea; background:#fff; padding:.5rem .7rem; border-radius:10px}
  .right{display:none}
  .fa-footer .foot-top{grid-template-columns:1fr}
  .foot-links{grid-template-columns: 1fr 1fr}
}
@media (max-width: 560px){
  .foot-links{grid-template-columns:1fr}
}


/* ===== Registro & Login: tarjetas y labels ===== */
.auth-card{position:relative; z-index:1; width:min(420px, 92%); background:var(--surface); border-radius:16px; border:1px solid var(--border); box-shadow:var(--shadow)}
.label{font-size:.85rem; color:#6b7280}
.register{color:#1f5cff}

/* Ajuste del título en dos líneas, centrado */
#view-registro .title{line-height:1.35; margin-top:.4rem}
