:root{
  --primary-accent:#23405a;
  --accent-green:#4caf50;
  --accent-gray:#5c6770;
  --light-gray:#f7f8fa;
  --medium-gray:#dfe3e6;
  --dark-gray:#2f3133;
  --border-color:#e0e0e0;
  --shadow-color:rgba(0,0,0,.07);
}

body{
  background-color:#fff;
  font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;
  margin:0;
  padding:0;
  min-height:100vh;
}

.login-container{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background-color:#fff;
}

.login-card{
  background:#fff;
  border-radius:15px;
  box-shadow:0 6px 22px var(--shadow-color);
  border:1px solid var(--border-color);
  overflow:hidden;
  max-width:1000px;
  width:100%;
  min-height:550px;
}

.login-left{
  background:#fff;
  padding:40px 35px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
  color:var(--dark-gray);
  min-height:550px;
  border-right:1px solid var(--border-color);
}

.brand-container{
  display:flex;
  flex-direction:column;
  align-items:center;
}

.logo-image{
  display:block;
  width:clamp(200px,38vw,380px);
  max-width:85%;
  height:auto;
  object-fit:contain;
  image-rendering:-webkit-optimize-contrast;
  image-rendering:crisp-edges;
  border-radius:12px;
  margin-bottom:25px;
  box-shadow:0 6px 18px rgba(0,0,0,.12);
  transition:transform .25s ease,box-shadow .25s ease;
}

.logo-image:hover{
  transform:scale(1.02);
  box-shadow:0 8px 22px rgba(0,0,0,.18);
}

.logo-text{
  font-size:2.6rem;
  font-weight:700;
  margin-bottom:8px;
  color:var(--primary-accent);
}

.brand-subtitle{
  font-size:1rem;
  font-weight:500;
  color:var(--accent-gray);
  letter-spacing:1px;
  text-transform:uppercase;
}

.login-right{
  padding:25px 20px;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  background-color:#fff;
  overflow-y:auto;
}

.tabs-container{margin-bottom:15px;}

.tabs{
  display:flex;
  background-color:var(--light-gray);
  border-radius:8px;
  padding:3px;
  box-shadow:inset 0 2px 4px rgba(0,0,0,.05);
}

.tab{
  flex:1;
  padding:8px 10px;
  text-align:center;
  border-radius:6px;
  cursor:pointer;
  transition:all .3s ease;
  font-weight:600;
  color:var(--accent-gray);
  font-size:12px;
}

.tab.active{
  background:var(--primary-accent);
  color:#fff;
  box-shadow:0 2px 8px rgba(35,64,90,.4);
}

.tab i{margin-right:8px;}

.welcome-title{
  color:var(--primary-accent);
  font-size:1.4rem;
  font-weight:700;
  margin-bottom:5px;
  line-height:1.2;
}

.welcome-subtitle{
  color:#666;
  font-size:.9rem;
  margin-bottom:20px;
}

.form-group{margin-bottom:12px;}

.form-label{
  font-weight:600;
  color:var(--dark-gray);
  margin-bottom:4px;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.3px;
  display:block;
}

.form-label i{
  margin-right:8px;
  color:var(--primary-accent);
}

.form-control{
  width:100%;
  padding:10px 14px;
  border:2px solid var(--medium-gray);
  border-radius:6px;
  background-color:var(--light-gray);
  font-size:13px;
  transition:all .3s ease;
  box-sizing:border-box;
}

.form-control:focus{
  border-color:var(--primary-accent);
  background-color:#fff;
  box-shadow:0 0 0 2px rgba(35,64,90,.1);
  outline:none;
  transform:translateY(-1px);
}

.form-control:read-only{
  background-color:#e9ecef;
  cursor:not-allowed;
  color:#6c757d;
}

.form-control.is-invalid{border-color:#dc3545;}

.form-check-container{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:12px;
}

.form-check{display:flex;align-items:center;}

.form-check-input{
  margin-right:6px;
  border-radius:4px;
  border:2px solid var(--border-color);
  transform:scale(.9);
}

.form-check-input:checked{
  background-color:var(--accent-green);
  border-color:var(--accent-green);
}

.form-check-label{font-size:12px;color:var(--dark-gray);}

.forgot-password{
  color:var(--primary-accent);
  text-decoration:none;
  font-weight:600;
  font-size:12px;
  transition:color .3s ease;
}

.forgot-password:hover{
  color:var(--accent-green);
  text-decoration:underline;
}

.btn-login{
  width:100%;
  padding:12px;
  background:linear-gradient(45deg,var(--primary-accent),#2f6b54);
  border:none;
  border-radius:6px;
  color:#fff;
  font-weight:700;
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:1px;
  cursor:pointer;
  transition:all .3s ease;
  box-shadow:0 4px 12px rgba(35,64,90,.3);
  margin-top:8px;
}

.btn-login:hover{
  transform:translateY(-2px);
  box-shadow:0 6px 18px rgba(35,64,90,.4);
  background:linear-gradient(45deg,#2f6b54,var(--primary-accent));
}

.btn-login i{margin-right:10px;}

.alert{
  padding:8px 12px;
  border:none;
  margin-bottom:12px;
  font-size:12px;
}

.alert-danger{
  background-color:#f8d7da;
  color:#721c24;
  border-left:3px solid #dc3545;
}

.alert-success{
  background-color:#d4edda;
  color:#155724;
  border-left:3px solid #28a745;
}

.alert i{margin-right:8px;}

@media (max-width:991px){
  .login-card{max-width:800px;}
  .login-left{
    min-height:350px;
    padding:30px 20px;
    border-right:none;
    border-bottom:1px solid var(--border-color);
  }
  .login-right{padding:20px 15px;}
  .logo-text{font-size:2.2rem;}
  .welcome-title{font-size:1.3rem;}
  .logo-image{width:clamp(180px,45vw,340px);}
}

@media (max-width:767px){
  .login-container{padding:15px;}
  .login-card{border-radius:12px;min-height:500px;}
  .login-left{
    min-height:280px;
    padding:20px 15px;
    border-bottom:1px solid var(--border-color);
    border-right:none;
  }
  .login-right{padding:15px;}
  .logo-text{font-size:1.8rem;}
  .welcome-title{font-size:1.2rem;}
  .logo-image{width:clamp(160px,60vw,300px);margin-bottom:20px;}
  .tab{padding:10px 12px;font-size:13px;}
  .form-control{padding:9px 12px;}
  .btn-login{padding:11px;font-size:12px;}
}

@media (max-width:575px){
  .tabs{flex-direction:column;gap:5px;}
  .form-check-container{flex-direction:column;align-items:flex-start;gap:10px;}
  .logo-image{width:clamp(150px,70vw,270px);}
  .logo-text{font-size:1.6rem;}
}

@media (min-width:992px){
  .login-left{flex:0 0 41.666667%;max-width:41.666667%;}
  .login-right{flex:0 0 58.333333%;max-width:58.333333%;}
}

#register-container{
  display:none;
  opacity:0;
  transform:translateX(50px);
  transition:opacity .4s ease,transform .4s ease;
  position:relative;
  z-index:5;
}

#register-container.active{
  display:flex;
  opacity:1;
  transform:translateX(0);
}

.login-container.hidden{
  display:none;
  opacity:0;
  transform:translateX(-50px);
}
.swal-ab-forti {
  box-shadow: 0 25px 50px -12px rgba(220,38,38,0.5) !important;
  border: 2px solid #dc2626 !important;
}
.swal-text-center { text-align: center !important; }
.btn-ab-elegant {
  background: linear-gradient(45deg,#dc2626,#ef4444) !important;
  border: none !important;
  padding: 12px 32px !important;
  font-weight: 600 !important;
  box-shadow: 0 4px 20px rgba(220,38,38,0.4) !important;
  transition: all 0.3s ease !important;
}
.btn-ab-elegant:hover { transform: translateY(-2px) !important; box-shadow: 0 8px 30px rgba(220,38,38,0.6) !important; }
