/* ============================================================
   ECO Core — Pantallas de autenticación (login, registro,
   recuperar y restablecer contraseña). Fuente Poppins.
   ============================================================ */
* { font-family: 'Poppins', sans-serif; }
body { margin: 0; background: #eef1f6; }

.eco-auth { min-height: 100vh; display: grid; grid-template-columns: 1fr; }
@media (min-width: 992px) { .eco-auth { grid-template-columns: 1.05fr .95fr; } }

/* ---- Panel de marca ---- */
.eco-auth-brand { display: none; position: relative; overflow: hidden; padding: 56px 52px;
    background: linear-gradient(160deg, #0052b4 0%, #003c8c 55%, #002d6e 100%); color: #fff; }
@media (min-width: 992px) { .eco-auth-brand { display: flex; flex-direction: column; } }
.eco-auth-brand .b-circle { position: absolute; border-radius: 50%; pointer-events: none; }
.eco-auth-brand .bc1 { width: 340px; height: 340px; right: -90px; top: -110px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.08); }
.eco-auth-brand .bc2 { width: 200px; height: 200px; right: 60px; top: 60px; background: rgba(255,255,255,.04); }
.eco-auth-brand .bc3 { width: 260px; height: 260px; left: -100px; bottom: -120px; background: rgba(255,255,255,.05); }
.eco-brand-logo { display: flex; align-items: center; gap: 12px; position: relative; text-decoration: none; }
.eco-brand-logo .lg-chip { width: 46px; height: 46px; border-radius: 13px; background: rgba(255,255,255,.15); border: 1px solid rgba(255,255,255,.22); display: flex; align-items: center; justify-content: center; padding: 8px; }
.eco-brand-logo .lg-chip img { width: 100%; }
.eco-brand-logo h5 { margin: 0; font-weight: 700; font-size: 19px; letter-spacing: -.01em; color: #fff; }
.eco-brand-logo span { font-size: 11px; color: rgba(255,255,255,.5); }
.eco-brand-hero { margin-top: auto; position: relative; }
.eco-brand-hero h1 { font-size: 34px; font-weight: 700; line-height: 1.15; margin: 0 0 14px; color: #fff; }
.eco-brand-hero p { color: rgba(255,255,255,.7); font-size: 14.5px; max-width: 420px; line-height: 1.6; margin: 0 0 26px; }
.eco-brand-feat { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; color: rgba(255,255,255,.9); font-size: 13.5px; }
.eco-brand-feat .material-icons-outlined { font-size: 18px; background: rgba(255,255,255,.14); border-radius: 9px; padding: 7px; }

/* ---- Panel del formulario ---- */
.eco-auth-form { display: flex; align-items: center; justify-content: center; padding: 40px 24px; background: #fff; }
.eco-auth-card { width: 100%; max-width: 400px; }
.eco-auth-card .mobile-logo { display: flex; }
@media (min-width: 992px) { .eco-auth-card .mobile-logo { display: none; } }
.eco-auth-card h4 { font-weight: 700; color: #0f172a; margin: 0 0 6px; font-size: 23px; }
.eco-auth-card .sub { color: #64748b; font-size: 13.5px; margin: 0 0 26px; }
.eco-auth-card .form-label { font-size: 12.5px; font-weight: 600; color: #334155; margin-bottom: 6px; }
.eco-auth-card .form-control,
.eco-auth-card .form-select { border-radius: 11px; border: 1px solid #e2e8f0; padding: 11px 14px; font-size: 14px; background: #f8fafc; }
.eco-auth-card .form-control:focus,
.eco-auth-card .form-select:focus { background: #fff; border-color: #0052b4; box-shadow: 0 0 0 3px rgba(0,82,180,.12); }
.eco-auth-card .input-group-text { border-radius: 11px; border: 1px solid #e2e8f0; background: #f8fafc; }
.eco-auth-card .ig-icon { position: relative; }
.eco-auth-card .ig-icon .field-icon { position: absolute; left: 13px; top: calc(50% + 12px); transform: translateY(-50%); color: #94a3b8; font-size: 19px; z-index: 5; }
.eco-auth-card .ig-icon .form-control { padding-left: 42px; }
.eco-forgot { font-size: 12.5px; color: #0052b4; text-decoration: none; font-weight: 500; }
.eco-forgot:hover { text-decoration: underline; }
.eco-btn-login { width: 100%; border: 0; border-radius: 12px; padding: 12px; font-weight: 600; font-size: 14.5px; color: #fff;
    background: linear-gradient(135deg, #0052b4 0%, #003c8c 100%); box-shadow: 0 6px 18px rgba(0,52,180,.28); transition: .15s; }
.eco-btn-login:hover { filter: brightness(1.06); transform: translateY(-1px); color: #fff; }
.eco-btn-ghost { width: 100%; border: 1px solid #e2e8f0; background: #fff; border-radius: 12px; padding: 11px; font-weight: 600; font-size: 14px; color: #334155; text-align: center; text-decoration: none; display: block; transition: .15s; }
.eco-btn-ghost:hover { background: #f8fafc; color: #0052b4; border-color: #cbd5e1; }
.eco-auth-card .register { text-align: center; font-size: 13px; color: #64748b; margin: 0; }
.eco-auth-card .register a { color: #0052b4; font-weight: 600; text-decoration: none; }
.eco-sep { display: flex; align-items: center; gap: 14px; margin: 26px 0 18px; color: #94a3b8; font-size: 12px; }
.eco-sep::before, .eco-sep::after { content: ""; flex: 1; height: 1px; background: #e2e8f0; }
.eco-social { display: flex; justify-content: center; gap: 12px; }
.eco-social a { width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; border: 1px solid #e2e8f0; color: #ef4444; font-size: 19px; background: #fff; transition: .15s; }
.eco-social a:hover { background: #fef2f2; border-color: #fecaca; }
