/* login.css */
:root{
  --blue:#3498db;
  --blue-dark:#2980b9;
  --bg:#f4f7fb;
  --card:#ffffff;
}
*{box-sizing:border-box}
body{
  margin:0;
  font-family:'Poppins',system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  background:var(--bg);
  color:#17222a;
  min-height:100vh;
}

/* header */
.topbar{
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 20px;
  background:var(--blue);
  color:white;
}
/* regla explícita para el logo: ancho fijo y mantener proporción */
.brand-logo{
  width:50px;
  height:auto;
  display:block;
  object-fit:contain;
  max-height:56px; /* evita que estire verticalmente si la imagen es muy alta */
}

/* nombre de la marca */
.brand-name{font-weight:600;font-size:20px}

.brand-name a {
  color: white;
  text-decoration: none;
}

/* layout */
.main-area{
  display:flex;
  justify-content:center;
  align-items:center;
  padding:28px;
  min-height:calc(100vh - 72px);
}

.card{
  width:100%;
  max-width:480px;
  background:var(--card);
  padding:28px;
  border-radius:12px;
  box-shadow:0 12px 40px rgba(7,22,43,0.08);
}

/* alert */
.alert{
  padding:10px 12px;
  border-radius:8px;
  margin-bottom:12px;
  font-weight:600;
  display:block;
}
.alert.hidden{display:none}
.alert.error{background:#ffecec;border:1px solid #ffbdbd;color:#8b0000}
.alert.success{background:#ecffef;border:1px solid #b9f7c2;color:#0a5c2c}

/* shake */
@keyframes shake {
  10%,90%{transform:translateX(-1px)}
  20%,80%{transform:translateX(2px)}
  30%,50%,70%{transform:translateX(-4px)}
  40%,60%{transform:translateX(4px)}
}
.shake{animation:shake .55s cubic-bezier(.36,.07,.19,.97)}

/* form */
.card-title{margin:0 0 12px;text-align:center;color:#1f425a;font-size:20px}
label{display:block;margin-top:12px;font-weight:600;color:#254554}
input{
  width:100%;
  padding:12px;
  margin-top:6px;
  border:1px solid #dfe8ef;
  border-radius:8px;
  font-size:15px;
  outline:none;
}
input:focus{box-shadow:0 4px 12px rgba(53,125,190,0.06);border-color:var(--blue)}

.btn{
  margin-top:18px;
  width:100%;
  padding:12px;
  background:var(--blue);
  color:white;
  border:0;
  border-radius:10px;
  font-weight:700;
  cursor:pointer;
}
.btn:hover{background:var(--blue-dark)}

.links{margin-top:14px;text-align:center}
.links a{color:var(--blue);text-decoration:none}

/* password container + eye icon */
.password-container{position:relative}
.eye-icon{
  position:absolute;
  right:10px;
  top:50%;
  transform:translateY(-50%);
  width:22px;height:22px;
  cursor:pointer;
  user-select:none;
}