/* =========================================================
   KEImesh — OAuth
   Google: basado en el tema oficial "outline_dark"
   ========================================================= */

.social-auth {
  display: grid;
  gap: 10px;
  margin: 18px 0 2px;
}

.social-auth-divider {
  display: flex;
  align-items: center;
  gap: 10px;

  color: var(--muted);

  font:
    600 .58rem "JetBrains Mono",
    monospace;

  letter-spacing: .14em;
  text-transform: uppercase;
}

.social-auth-divider::before,
.social-auth-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--border);
}


/* =========================================================
   GOOGLE
   ========================================================= */

.gsi-material-button {
  position: relative;

  width: 100% !important;
  max-width: 400px !important;

  height: 44px !important;
  min-height: 44px !important;

  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;

  box-sizing: border-box;

  padding: 0 16px !important;
  gap: 12px !important;

  background: #131314 !important;
  border: 1px solid #8E918F !important;
  border-radius: 6px !important;

  color: #FFFFFF !important;

  cursor: pointer;
  overflow: hidden;

  font-family: Arial, sans-serif !important;

  transition:
    background-color .18s ease,
    box-shadow .18s ease;
}


/*
   Contenedor interno:
   mantiene icono + texto en línea horizontal.
*/

.gsi-material-button .gsi-material-button-content-wrapper {
  display: flex !important;
  align-items: center !important;

  width: auto !important;
  height: 100% !important;

  flex: 1 1 auto !important;

  min-width: 0;

  gap: 12px !important;
}


/* =========================================================
   LOGO GOOGLE
   ========================================================= */

.gsi-material-button .gsi-material-button-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  width: 20px !important;
  min-width: 20px !important;
  height: 20px !important;

  flex: 0 0 20px !important;

  margin: 0 !important;

  background: transparent !important;
  box-shadow: none !important;
}

.gsi-material-button .gsi-material-button-icon svg {
  display: block !important;

  width: 20px !important;
  height: 20px !important;

  max-width: 20px !important;
  max-height: 20px !important;
}


/* =========================================================
   TEXTO
   ========================================================= */

.gsi-material-button .gsi-material-button-contents {
  display: block !important;

  flex: 1 1 auto !important;

  min-width: 0;

  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;

  text-align: left;

  color: #FFFFFF !important;

  /*
     Aproximación visual al Google Sans Medium 14/20.
     No se incluye ni distribuye ninguna fuente de Google.
  */
  font:
    500 14px/20px Arial,
    sans-serif !important;
}


/* =========================================================
   ESTADO GOOGLE
   ========================================================= */

.gsi-material-button .gsi-material-button-state {
  position: absolute !important;
  inset: 0;

  opacity: 0;

  pointer-events: none;

  background: rgba(255,255,255,.06);

  transition: opacity .18s ease;
}

.gsi-material-button:hover .gsi-material-button-state {
  opacity: 1;
}


/*
   Hover discreto para integrarlo visualmente con KEImesh,
   sin alterar los colores base del tema.
*/

.gsi-material-button:hover {
  background: #171718 !important;

  box-shadow:
    0 0 0 1px rgba(0,212,255,.04),
    0 6px 18px rgba(0,0,0,.18);
}

.gsi-material-button:active {
  background: #111112 !important;
}

.gsi-material-button:focus-visible {
  outline: none;

  box-shadow:
    0 0 0 3px rgba(0,212,255,.10);
}


/* =========================================================
   MICROSOFT
   ========================================================= */

.microsoft-material-button {
  position: relative;

  width: 100% !important;
  max-width: 400px !important;

  height: 44px !important;
  min-height: 44px !important;

  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;

  box-sizing: border-box;

  padding: 0 16px !important;
  gap: 12px !important;

  background: #131314 !important;
  border: 1px solid #8E918F !important;
  border-radius: 6px !important;

  color: #FFFFFF !important;

  cursor: pointer;

  font:
    500 14px/20px Arial,
    sans-serif !important;

  transition:
    background-color .18s ease,
    box-shadow .18s ease;
}

.microsoft-material-button .social-auth-icon {
  width: 20px !important;
  height: 20px !important;

  min-width: 20px !important;

  flex: 0 0 20px !important;

  margin: 0 !important;

  padding: 0 !important;

  background: transparent !important;
  border-radius: 0 !important;

  object-fit: contain !important;
}

.microsoft-material-button span {
  flex: 1 1 auto;

  min-width: 0;

  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;

  text-align: left;

  color: #FFFFFF !important;

  font:
    500 14px/20px Arial,
    sans-serif !important;
}

.microsoft-material-button:hover {
  background: #171718 !important;

  box-shadow:
    0 0 0 1px rgba(0,212,255,.04),
    0 6px 18px rgba(0,0,0,.18);
}

.microsoft-material-button:active {
  background: #111112 !important;
}

.microsoft-material-button:focus-visible {
  outline: none;

  box-shadow:
    0 0 0 3px rgba(0,212,255,.10);
}


/* =========================================================
   MÓVIL
   ========================================================= */

@media (max-width: 480px) {

  .social-auth {
    gap: 9px;
    margin-top: 16px;
  }

  .social-auth-button {
    height: 44px !important;
    min-height: 44px !important;

    padding: 0 12px !important;
    gap: 10px !important;

    border-radius: 6px !important;
  }

  .gsi-material-button .gsi-material-button-content-wrapper {
    gap: 10px !important;
  }

  .gsi-material-button .gsi-material-button-icon {
    width: 20px !important;
    min-width: 20px !important;
    height: 20px !important;

    flex-basis: 20px !important;
  }

  .gsi-material-button .gsi-material-button-icon svg {
    width: 20px !important;
    height: 20px !important;
  }

  .gsi-material-button .gsi-material-button-contents,
  .microsoft-material-button span {
    font-size: 13px !important;
    line-height: 18px !important;
  }

  .microsoft-material-button .social-auth-icon {
    width: 20px !important;
    min-width: 20px !important;
    height: 20px !important;

    flex-basis: 20px !important;
  }
}


/* =========================================================
   MÓVILES MUY PEQUEÑOS
   ========================================================= */

@media (max-width: 340px) {

  .gsi-material-button,
  .microsoft-material-button {
    padding: 0 10px !important;
  }

  .gsi-material-button .gsi-material-button-contents,
  .microsoft-material-button span {
    font-size: 12px !important;
  }
}