/*
 * This is a manifest file that'll be compiled into application.css.
 *
 * With Propshaft, assets are served efficiently without preprocessing steps. You can still include
 * application-wide styles in this file, but keep in mind that CSS precedence will follow the standard
 * cascading order, meaning styles declared later in the document or manifest will override earlier ones,
 * depending on specificity.
 *
 * Consider organizing styles into separate files for maintainability.
 */

 /* #message-list{
    height: calc(100vh - 254px);
 } */

  .glow-border {
    border-radius: 1.5rem;
    transition: box-shadow 0.3s ease;
  }
  
  .glow-border.active {
    background: linear-gradient(135deg, #049668, #7DE2D1);
    animation: glow-animation 1.5s ease-in-out infinite;
  }
  
@keyframes glow-animation {
  0% {
    box-shadow: 0 0 5px #049668, 0 0 10px #7DE2D1;
  }
  50% {
    box-shadow: 0 0 8px #7DE2D1, 0 0 12px #049668;
  }
  100% {
    box-shadow: 0 0 5px #049668, 0 0 10px #7DE2D1;
  }
}

.center-on-mobile{
   @media screen and (max-width: 768px) {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    margin: 0;
    
   }
}


/* Styling for speech recognition */
[data-controller~="bridge--speech"] .recording {
  background-color: rgba(220, 38, 38, 0.7) !important; 
  animation: pulse 1.5s infinite;
}

[data-controller~="bridge--speech"] .active {
  border-color: rgba(74, 222, 128, 0.7) !important;
  box-shadow: 0 0 15px rgba(74, 222, 128, 0.6);
}

[data-controller~="bridge--speech"] .active-glow {
  box-shadow: 0 0 15px var(--glow-intensity, 0.5) rgba(74, 222, 128, 0.6);
  border-color: rgba(74, 222, 128, var(--glow-intensity, 0.5)) !important;
  transition: all 0.15s ease;
}

@keyframes pulse {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}

/* When native speech is available, hide web implementation buttons */
[data-native-speech-available="true"] [data-controller~="speech"]:not([data-controller~="bridge--speech"]) {
  display: none !important;
}