html { 
  /* Permitir scroll vertical en móviles y evitar saltos horizontales */
  min-height: 100vh;
  overflow-x: hidden;
  overflow-y: auto;
  /*background: url(assets/img/bg.jpg) no-repeat center center fixed; */
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;  
}
/* Eliminar overflow global que bloquea el scroll */
* {
  color:white;
  font-size: 1.0rem;
}

p { margin: 3px; padding: 3px; font-size:1rem; line-height: 1.2rem;}

img{
  display: block;
  margin: auto;
  width: 100%;
  height: auto;
}

.blur { filter: blur(3px); opacity:.5; transition: .5s all; }
.blocked { opacity:.8; filter: blur(4px) grayscale(1); pointer-events: none; }
.null { opacity:.2; filter: blur(8px) grayscale(1); pointer-events: none; }

i { font-size:20px; opacity: .6; } i:hover { opacity:1; }

#copyright { background-color: rgba(0,0,0,.1); position: absolute; top:10px; left: 10px; text-align:center; padding: 2px 5px; border-radius: 5px; }

#ip { font-size: 80%; opacity: .7; }

#captcha-invisible {display: none}

#blocked_log {   
  display:none; z-index: 2000; position: absolute; top:0; left: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,1); 
  font-size: 28px;    
}

#login-button{
  cursor: pointer;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 30px;
  margin: auto;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background: rgba(3,3,3,1);
  overflow: hidden;
  opacity: 1;
  box-shadow: 10px 10px 30px #000;
}


 
/* Logo y botones responsivos */
#logo { 
  width:200px; position: absolute; top:50px; left:50%; transform: translateX(-50%); 
  border-radius: 20px; box-shadow: 0px 0px 10px 0px cyan;   
}
#login-button{
  cursor: pointer;
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  padding: 30px; margin: auto; width: 100px; height: 100px;
  border-radius: 50%; background: rgba(3,3,3,1); opacity: 1; box-shadow: 10px 10px 30px #000;
}
#login-info  { position: fixed; bottom:50px; right:50px; display: flex; }
#login-info .btn { font-size: 50px; height: 90px; width: 80px; line-height:90px; border-radius:20px; }
 

  #login-info .btn { 
    opacity: 1;
    transition: .5s all ease-in-out;
    margin: 0px 5px; 
    background-color: rgba(0,0,0,.95 ); font-size: 50px; color: white; 
    text-align: center; vertical-align: middle;
    border:none;
    height: 90px; width: 80px; line-height:90px; border-radius:20px;  
    box-shadow: 0px 0px 3px 0px #444;
  }

  #login-info .btn:hover { color:white; }
  
  #login-info iframe { border:none; height:90px; width:80px; margin-top:-10px; }



/* Login container */
#container, #container-newpass, #container-forgotten {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  padding: 10px;
  margin: auto;
  width:350px; height: 320px;
  border-radius: 12px;
  background: rgba(3,3,3,1);
  box-shadow: 0px 0px 8px 0px black;
  display: none;
  border: 3px solid rgba(255,255,255,.3);
  text-align: center;
  /* Permitir scroll interno si el alto es menor (teclado, pantalla pequeña) */
  overflow-y: auto;    
}

#container-newpass {
  height: 350px;
}

#container-forgotten {
  height: 350px;
}

/* Ajustes de responsividad */
@media (max-width: 800px) {
  #container, #container-newpass, #container-forgotten {
    width: 80vw; 
    height: auto;
    max-height: 75vh;
  }
}

#container-newpass {
  background: rgba(13,13,13,1);
  /*height: 475px;*/
}

@media (max-width: 800px) {
  #container, #container-newpass, #container-forgotten {
    width: 80vw; 
    height: 50vh; 
  }
}

#remember-container {
  margin:0px auto; 
  width:278px;
  text-align: center;
}

#rec, #forgotten {
  display: inline; padding: 7px; margin:1px;
  width:42%; 
  text-align: center;
  cursor: pointer;
  border-radius: 20px;
  background-color: #003b45;
  color:white; opacity:.9;
  display: inline-block;
}
#rec:hover, #forgotten:hover { opacity:1; }


#alert_redirect { width: 95%; color:gray; font-size: 85%; }

.close-btn{
  position: absolute;
  cursor: pointer;  
  top: 8px;
  right: 8px;
  height:20px; width:20px;
  text-align: center;
  border-radius: 50%;
  color: rgba(0,0,0,.4);
  background-color: rgba(100,100,100,.5);
  opacity: .9;
}

.close-btn:hover{
  opacity: .8;
  color:white;
}

.btn { margin-top: 0px; opacity:.5;}
.btn:hover { opacity:1; color:white;}

.btn-secundary {
  opacity: .8; background-color: rgba(255,255,255,.5);
}



#captcha { 
  font-size: 28px; display: flex; color: #444; 
  height: 40px;   
  line-height: 40px; vertical-align: middle;
  margin-bottom: 8px;
}

  .code, .code-input { 
    display: inline-block;
    margin: 0px auto;
    width: 50px; 
    font-size: 18px;
    text-align: center; 
    border-radius: 20px;
    border: none;
    background: rgba(200,200,200,.1);

  }


/* Heading */
h1{  
  position: relative;
  margin-top: 10px;
  text-align: center;
  font-size: 26px;
  color: #ddd;
  text-shadow: 3px 3px 10px #000;
}

#atajos { position: absolute; bottom:5px; }
.atajo { padding:3px 5px; bottom: 5px; margin:0px; width:45px; height:10px; font-size:10px; background-color: gray; display: inline-flex; text-align: left; line-height: 10px; text-align: center;  }

/* Inputs */
a, input {  
  text-decoration: none; position: relative; width: 80%;
  display: block; margin:8px auto; font-size: 18px;
  color: #fff; font-weight: 600; padding: 8px 20px;
  border-radius: 20px; border: none; background: rgba(200,200,200,.1);
  -webkit-transition: all 2s ease-in-out;
  -moz-transition: all 2s ease-in-out;
  -o-transition: all 2s ease-in-out;
  transition: all 0.2s ease-in-out;
}
#captcha { font-size: 28px; display: flex; color: #444; height: 40px; line-height: 40px; margin-bottom: 8px; }
.code, .code-input { width: 50px; font-size: 18px; }
a{  
  text-align: center;
  background: rgba(107,255,3,0.3);
}

a:hover{
  opacity: 0.5;
}

.info { font-size: 20px; height: 100%; }

input:focus{
  outline: none;  
  background: rgba(3,3,3,.55);
  border:1px solid rgba(255,255,255,.5);
  opacity:1;
}

/*input:active { outline: none; box-shadow: 3px 3px 10px white; }*/

a:focus { outline: none; opacity:1; }

input:disabled{
  opacity:.5;
}

/* Placeholders */
::-webkit-input-placeholder {
   color: #ccc;  }
:-moz-placeholder { /* Firefox 18- */
   color: red;  }
::-moz-placeholder {  /* Firefox 19+ */
   color: red;  }
:-ms-input-placeholder {  
   color: #333;  }


.orange-btn{
  background: rgba(87,198,255,.5);
}


ul,
li {
  margin: 0;
  padding: 0;
  list-style-type: none;
}

/* Tips de password */
#pswd_info {
  position: fixed; bottom: 160px; right: 55px; width: 250px;
  padding: 15px; background: #fefefe; font-size: .875em;
  border-radius: 15px; box-shadow: 0 1px 3px #ccc; border: 1px solid #ddd;
  color:black; text-align: left;
}
#pswd_info h4 {
  margin: 0 0 10px 0;
  padding: 0;
  font-weight: normal;
  color: black;
}

#pswd_info b { font-weight: 800; }

#pswd_info::before {
  content: "\25B2";
  position: absolute;
  top: -12px;
  left: 45%;
  font-size: 14px;
  line-height: 14px;
  color: #ddd;
  text-shadow: none;
  display: block;
}
.invalid {
  /*background: url(../images/invalid.png) no-repeat 0 50%;*/
  padding-left: 22px;
  line-height: 24px;
  color: #ec3f41;
}
.valid {
  /*background: url(../images/valid.png) no-repeat 0 50%;*/
  padding-left: 22px;
  line-height: 24px;
  color: #3a7d34;
}
#pswd_info {
  display: none;
}

i.big { font-size: 200%; }

#CapsLock {
  position:absolute; bottom:35px; left:50%; 
  display: none;    
  font-size: 14px; color:white; 
  background: #444 url(assets/img/ic-alerta.png) 5px center no-repeat; background-size:16px;
  padding: 2px; padding-left: 27px; padding-right: 5px;
  border-radius: 4px; 
  margin-left: 5px; margin-top:20px; 
  opacity:.5;
}

#aclaraciones {
  position: fixed;
  display: none;
  background-color: rgba(128,128,128,.5);
  padding: 30px 30px 30px 70px; 
  border: 3px solid white; border-radius: 8px; box-shadow: 0px 0px 80px 5px black;
  text-align: left;
  font-size: 130%;
  max-width:50%; 
  width:650px;
  min-width:300px;
  margin: 80px auto;
  z-index: 3000;
  left: 50%; transform: translateX(-50%);
  color: white; text-shadow: 1px 1px 1px #444;
}

  @media (max-width: 800px) {    
    #aclaraciones { min-width:90%; }
  }

/* Mejoras para pantallas pequeñas */
@media (max-width: 480px) {
  #aclaraciones {
    max-width: 95vw; width: auto; min-width: unset;
    padding: 16px 16px 16px 50px; font-size: 110%; margin: 40px auto;
  }
  #aclaraciones i { margin-left: -40px; }
}


  #aclaraciones i { position: absolute; margin-left: -50px; margin-top: -5px; opacity:.5; }
  #aclaraciones .icofont-close { position: absolute; margin-top:0; top:6px; right:5px; cursor:pointer; }

  .icofont-spinner {
    position:absolute;
    -webkit-animation:spin 2s linear infinite;
    -moz-animation:spin 2s linear infinite;
    animation:spin 2s linear infinite;
  }

  @keyframes spin { 100% { -webkit-transform: rotate(360deg); transform:rotate(360deg); } }

  @keyframes pulsate { 
    50% { -webkit-transform: scale(1.2); transform:scale(1.2); } 
    0%, 100% { -webkit-transform: scale(1); transform:scale(1); } 
  }

  .rotate360 {
    -webkit-animation:spin 2s linear infinite;
    -moz-animation:spin 2s linear infinite;
    animation:spin 2s linear infinite;
  }
  #aclaraciones .pulsate {
    -webkit-animation:pulsate ease-in-out 2s infinite;
    -moz-animation:pulsate 2s ease-in-out infinite;
    animation:pulsate 2s ease-in-out infinite;
  }
  #aclaraciones b { color: white; text-shadow: 1px 1px 1px #444; font-size: 100%; }

  #aclaraciones a {
    transition: 0.2s all ease-in-out;
    cursor:pointer;
    padding: 0px 10px;
    border: 2px solid #ccc; border-radius: 20px; 
    margin: 0px 3px;
    font-weight: 300;
    text-align: center;
    text-decoration: none;
    background: rgba(0,0,0,.5);
    color:white;
    text-shadow: 1px 1px 1px #444;
    box-shadow: 0px 0px 5px 1px #444;
    display:inline-grid; min-width: 60px;
  }
  #aclaraciones a:hover { background: rgba(0,0,0,.8); } 
  #aclaraciones small { font-size: 85%; line-height: 20px; color: white; text-shadow: 1px 1px 1px #444; }
  #aclaraciones big { font-size: 110%; line-height: 20px; font-weight: 600; color:white; text-shadow: 1px 1px 3px black; }
  #aclaraciones video { 
    margin:0px; padding:0px; margin-left:-70px; margin-top:-10px;
    top:0px; left:2px;
    width:calc(100% + 100px); height: 100%; 
    border-radius: 7px; box-shadow: 0px 0px 5px 2px #333;   
  }
  #aclaraciones pie { position:absolute; bottom:2px; left: 20px; color:white; font-size:90%; padding-top: 20px;}

/* Barra inferior: logos izquierda, íconos derecha en una línea */
#toolbar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap;      /* no se rompe en dos líneas */
  padding: 0 12px;
  gap: 8px;
  overflow: hidden;       /* si se excede, recorta */
  pointer-events: none;   /* los hijos sí reciben clic */
}
#toolbar > * {
  pointer-events: auto;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Contenedor de logos (izquierda) */
#cliente {
  position: static;       /* anula fixed anterior */
  display: flex;
  align-items: center;
  gap: 8px;
}
#cliente img {
  height: 80px;
  width: auto;
  object-fit: contain;
  max-width: 360px;
  opacity: 1;
}
/* Mostrar solo el primer logo si hay varios */
#cliente img:not(:first-child) { display: none; }

/* Contenedor de íconos (derecha) */
#login-info {
  position: static;       /* anula fixed anterior */
  display: flex;
  align-items: center;
  gap: 8px;
}
#login-info .btn {
  font-size: 22px;
  height: 40px;
  width: 40px;
  line-height: 40px;
  border-radius: 10px;
}
#login-info iframe {
  height: 40px;
  width: 70px;
  border: none;
  margin-top: 0;
}

/* Desktop: un poco más grande */
@media (min-width: 481px) {
  #cliente img { height: 80px; max-width: 420px; }
  #login-info .btn {
    font-size: 28px;
    height: 50px;
    width: 50px;
    line-height: 50px;
  }
  #login-info iframe { height: 50px; width: 80px; }
}

/* Móvil muy pequeño: más compacto aún */
@media (max-width: 360px) {
  #cliente img { height: 80px; max-width: 320px; }
  #login-info .btn {
    font-size: 20px;
    height: 36px;
    width: 36px;
    line-height: 36px;
  }
  #login-info iframe { height: 36px; width: 64px; }
}
/* Fila de inputs: imagen izquierda, campos derecha */
#inputs .input-container {
  display: flex;
  align-items: stretch;
  gap: 12px;
  margin: 16px;  
}

/* Columna derecha con CUIL y PASS apilados */
#inputs .input-fields {
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1 1 auto;
}

/* Normalizar medidas de los inputs dentro de la fila */
#inputs .input-fields .form-control {
  height: 44px;
  line-height: 44px;
  width: 100%;
  margin: 0;
  padding: 8px 16px;
  box-sizing: border-box;
}

/* La foto ocupa el 100% del alto del contenedor y NO hereda width:100% */
#inputs .input-container #foto {
  width: auto !important;                          /* anula regla global img */
  height: calc(44px * 2 + 8px);                    /* 2 inputs + gap */
  aspect-ratio: 1 / 1;                             /* reserva espacio antes de cargar */
  object-fit: cover;
  border-radius: 12px;
  display: block;
  margin: 0;
  opacity: 1;
}

/* Móviles: más compacto para que entre en una línea */
@media (max-width: 480px) {
  #inputs .input-fields .form-control {
    height: 40px;
    line-height: 40px;
  }
  #inputs .input-container #foto {
    height: calc(40px * 2 + 6px);
    border-radius: 10px;
  }
}

/* Extra pequeño */
@media (max-width: 360px) {
  #inputs .input-fields .form-control {
    height: 36px;
    line-height: 36px;
  }
  #inputs .input-container #foto {
    height: calc(36px * 2 + 6px);
  }
}
    
