.login-page { min-height:100vh; background:linear-gradient(135deg, #f9faf8 0%, var(--abb-green-soft) 100%); }
.login-shell { min-height:100vh; display:grid; place-items:center; padding:2rem 1rem; }
.login-card { width:min(100%, 520px); background:#fff; border:1px solid var(--abb-border); border-radius:24px; padding:2rem; box-shadow:var(--shadow-md); }
.brand { display:flex; align-items:center; gap:1rem; margin-bottom:1.5rem; }
.brand-logo { width:76px; height:76px; object-fit:contain; border-radius:6px; }
.brand h1 { margin:0; font-size:1.55rem; }
.login-tabs { display:grid; grid-template-columns:1fr 1fr; padding:4px; background:#f0f2ef; border-radius:var(--radius-md); margin-bottom:1.5rem; }
.login-tab { border:0; background:transparent; padding:.75rem; border-radius:8px; color:var(--abb-text-secondary); font-weight:700; }
.login-tab.active { background:#fff; color:var(--abb-green-deep); box-shadow:var(--shadow-sm); }
.login-form { display:none; }
.login-form.active { display:grid; gap:1rem; }
.form-heading p { color:var(--abb-text-secondary); margin-bottom:.25rem; }
.login-form label { display:grid; gap:.4rem; font-size:.9rem; font-weight:700; }
.login-form input { width:100%; min-height:46px; border:1px solid var(--abb-border); border-radius:var(--radius-md); padding:.7rem .8rem; outline:none; }
.login-form input:focus { border-color:var(--abb-green); box-shadow:0 0 0 3px rgba(43,151,66,.13); }
.login-help { margin:1.25rem 0 0; padding-top:1rem; border-top:1px solid var(--abb-border); color:var(--abb-text-secondary); font-size:.82rem; }
@media (max-width:560px) { .login-card{padding:1.25rem}.brand-logo{width:60px;height:60px}.brand h1{font-size:1.25rem}.login-tab{font-size:.86rem} }
.login-form input[name="lote"] { text-transform:uppercase; letter-spacing:.03em; font-weight:700; }

/* Toggle contrasena con Bootstrap Icon */
.password-wrapper { position:relative; display:flex; align-items:center; width:100%; }
.password-wrapper input { width:100%; padding-right:2.75rem; }
.btn-toggle-password {
    position:absolute; right:0.4rem; top:50%; transform:translateY(-50%);
    background:transparent; border:none; padding:0.4rem 0.55rem;
    color:var(--abb-text-secondary); cursor:pointer; font-size:1.15rem; line-height:1;
    border-radius:6px; display:inline-flex; align-items:center; justify-content:center;
    transition:color 0.15s ease, background-color 0.15s ease;
}
.btn-toggle-password:hover,
.btn-toggle-password:focus-visible {
    color:var(--abb-green-deep); background-color:rgba(43, 151, 66, 0.08); outline:none;
}

/* Opcion recordar credenciales */
.login-options-row { display:flex; align-items:center; justify-content:space-between; margin-top:-0.25rem; }
.checkbox-label {
    display:inline-flex !important; flex-direction:row !important; align-items:center; gap:0.5rem;
    font-size:0.86rem !important; font-weight:500 !important; color:var(--abb-text-secondary);
    cursor:pointer; user-select:none; margin:0;
}
.checkbox-label input[type="checkbox"] {
    width:1.05rem; height:1.05rem; min-height:unset; margin:0; padding:0;
    accent-color:var(--abb-green); cursor:pointer; border-radius:4px;
}
