* {
   box-sizing: border-box;
   margin: 0;
   padding: 0;
  }

 

  *:not(i):not([class*="fa-"]) {
    font-family: 'Google Sans', sans-serif !important;
  }
 
  /* Declaración de tipografía Google Sans desde archivos locales #7c6ff3 0%, #d2d0eb */
  @font-face {
   font-family: 'Google Sans';
   src: url('/assets/fonts/google-sans.ttf') format('truetype');
   font-weight: 400;
   font-style: normal;
   font-display: swap;
  }

  @font-face {
   font-family: 'Google Sans';
   src: url('/assets/fonts/google-sans-bold.ttf') format('truetype');
   font-weight: 700;
   font-style: normal;
   font-display: swap;
  }

  body {
   background: linear-gradient(135deg, #7c6ff3 0%, #d2d0eb 100%);
   color: #ffffff;
   font-family: 'Google Sans', sans-serif !important;
   min-height: 100vh;
   position: relative;
   overflow-x: hidden;
  }

  /* Marca de agua de fondo (Logo) */
  .bg-watermark {
   position: absolute;
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%);
   width: 600px;
   max-width: 90vw;
   opacity: 0.05;
   pointer-events: none;
   z-index: 1;
  }

  /* Imagen del profesional en la esquina inferior derecha (100% OPACO) */

  .hero-professional {

   position: absolute;

   bottom: 0;

   right: 20px;

   max-height: 85vh;

   max-width: 45vw;

   object-fit: contain;

   pointer-events: none;

   z-index: 2;

   opacity: 1; /* Forzar opacidad 100% */

  }



  /* Contenedor Principal */
  .login-container {
   position: relative;
   z-index: 3;
   max-width: 600px;
   min-height: 100vh;
   padding: 40px 20px;
   display: flex;
   flex-direction: column;
   justify-content: space-between; /* Distribuye el contenido arriba y la prueba abajo */
   margin-left: 5vw;
  }

  .login-header h2 {
   font-size: 2.5rem;
   font-weight: 700;
   margin-bottom: 16px;
   color: #ffffff;

  }



  .login-header p.description {

   font-size: 1.05rem;

   line-height: 1.6;

   margin-bottom: 28px;

   color: #f0f0f0;

  }



  /* Botones principales */

  .btn-white {
   display: inline-block;
   background-color: #ffffff;
   color: #7d70f3;
   font-weight: 700;
   padding: 12px 24px;
   border-radius: 8px;
   text-decoration: none;
   border: none;
   cursor: pointer;
   font-size: 0.95rem;
   transition: all 0.2s ease;
   box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  }



  .btn-white:hover {
   background-color: #f0f0f0;
   transform: translateY(-2px);
  }



  /* Botón "Iniciar sesión" optimizado */

  .btn-translucent-black {

   background-color: rgba(0, 0, 0, 0.3);

   color: #ffffff;

   font-weight: 500;

   padding: 8px 18px; /* Tamaño reducido */

   border-radius: 30px;

   border: none; /* Sin borde */

   cursor: pointer;

   font-size: 0.88rem; /* Tamaño de letra más pequeño */

   transition: all 0.2s ease;

   box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);

   display: inline-flex;

   align-items: center;

   gap: 8px;

  }



  .btn-translucent-black:hover {

   background-color: rgba(0, 0, 0, 0.5);

   transform: translateY(-1px);

   box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25);

  }



  /* Secciones de interacción */

  .section-block {

   margin-top: 24px;

  }



  .section-label {
   font-size: 0.9rem;
   margin-bottom: 8px;
   color: #e0e0e0;
   display: block;
  }



  /* Footer / Bottom de la pantalla */

  .login-bottom {

   margin-top: auto;

   padding-top: 30px;

  }



  /* Modal / Formulario de Login Estilizado */

  .modal-overlay {

   display: none;

   position: fixed;

   top: 0;

   left: 0;

   width: 100vw;

   height: 100vh;

   background: rgba(0, 0, 0, 0.7);

   backdrop-filter: blur(4px);

   z-index: 10;

   justify-content: center;

   align-items: center;

  }



  .modal-overlay.active {

   display: flex;

  }



  .modal-card {

   background: #ffffff;

   color: #333333;

   padding: 32px;

   border-radius: 12px;

   width: 100%;

   max-width: 400px;

   box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);

   position: relative;

  }



  .modal-card h3 {

   color: #053FAB;

   margin-bottom: 20px;

   font-size: 1.5rem;

   text-align: center;

  }



  .modal-close {

   position: absolute;

   top: 12px;

   right: 16px;

   background: transparent;

   border: none;

   font-size: 1.5rem;

   cursor: pointer;

   color: #666;

  }



  .form-group {

   margin-bottom: 16px;

   text-align: left;

  }



  .form-group label {

   display: block;

   font-size: 0.85rem;

   font-weight: 600;

   margin-bottom: 6px;

   color: #444;

  }



  .form-control {

   width: 100%;

   padding: 10px 12px;

   border: 1px solid #ccc;

   border-radius: 6px;

   font-size: 0.95rem;

  }



  .btn-submit {

   width: 100%;

   background-color: #053FAB;

   color: #ffffff;

   border: none;

   padding: 12px;

   border-radius: 6px;

   font-weight: 600;

   cursor: pointer;

   margin-top: 10px;

  }



  .btn-submit:hover {

   background-color: #06245C;

  }



  /* Botón demo pequeño */
  .btn-demo-small {
   background-color: #ffffff;
   color: #06245C;
   font-size: 0.8rem;
   font-weight: 600;
   padding: 6px 14px;
   border-radius: 4px;
   border: none;
   cursor: pointer;
  }

  .btn-demo-small:hover {
   background-color: #e6e6e6;
  }

  @media (max-width: 900px) {
   .hero-professional {
    opacity: 1; /* Solo en pantallas móviles muy reducidas si solapa texto */
    max-width: 70vw;
    bottom: 0;
    right: 0;
   }

   .login-container {
    margin-left: 0;
    max-width: 100%;
   }

  }