/* styles.css - minimal overrides for your Bootstrap-based AI portal */

.navbar-brand span {
  font-size: 1.2rem;
  font-weight: bold;
}

#textOutput,
#ttsOutput,
#imageGenerationResult,
#variationOutput,
#visionOutput,
#recordingOutput,
#moderationOutput,
#reasoningOutput,
#embeddingsOutput,
#structuredOutput,
#functionCallOutput {
  min-height: 80px;
}

/* Banner: below header, smaller height */
.banner img {
  width: 100%;
  max-height: 300px; /* Limit banner height */
  object-fit: cover;
  display: block;
}

/* Main / Hero Section */
.hero {
  padding: 40px 20px;
  text-align: center;
  background-color: #fff;
  max-width: 800px;
  margin: 20px auto;
  border-radius: 8px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.mega-dropdown {
  position: static !important;
}

.mega-menu {
  padding: 1rem;
  width: 100%;
  border-radius: 0;
  margin-top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  border-top: 2px solid #0d6efd;
  box-shadow: 0 6px 12px rgba(0,0,0,0.175);
}

/* Dropdown header styling (category headers) */
.dropdown-header {
  color: #0d6efd;
  font-size: 1rem;
  padding: 0.5rem 1rem;
  margin-bottom: 0.25rem;
  border-bottom: 1px solid #e9ecef;
}


/* Hover effect */
.dropdown:hover > .dropdown-menu {
  display: block;
}

.dropdown:hover > .nav-link {
  color: white !important;
}

/* Mobile adjustments */
@media (max-width: 992px) {
  .mega-menu {
      position: static;
      width: 100%;
      margin-top: 0;
  }
  
  .mega-menu .row {
      flex-direction: column;
  }
  
  .mega-menu .col {
      width: 100%;
      margin-bottom: 1rem;
  }
}

/* Main / Coming Soon Section */
.coming-soon {
  padding: 40px 20px;
  text-align: center;
  background-color: #fff;
  max-width: 800px;
  margin: 20px auto;
  border-radius: 8px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.coming-soon h2 {
  margin-top: 0;
}


/* Video Creation */

.container-video {
  max-width: 600px;
  margin: 0 auto;
}

.textarea-videos {
  width: 100%;
  height: 150px;
  margin-bottom: 10px;
  padding: 10px;
  font-size: 16px;
}

button-videos {
  padding: 10px 20px;
  font-size: 16px;
  cursor: pointer;
}

.result-videos {
  margin-top: 20px;
}

.video-container-video {
  margin-top: 20px;
}

/* Usage indicator animation */
.usage-indicator {
  animation: fadeIn 0.3s ease-in;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: scale(0.8);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

/* Smooth transition khi sort */
[data-tool-id] {
  transition: all 0.3s ease;
}


/* Mega Menu Styles */
.mega-dropdown:hover .mega-menu {
    display: block;
}

.dropdown:hover .dropdown-menu {
    display: block;
}

.mega-menu, .dropdown-menu {
    display: none;
}

/* Smooth animations */
.mega-menu {
    top: 3rem;
    left: auto !important;
    right: -12% !important;
    transform: translateX(-50%) !important;
    
    animation: slideDown 0.3s ease-out;
}

/* Smooth animations */
.login-page .mega-menu {
    top: 3rem;
    left: auto !important;
    right: -19% !important;
    transform: translateX(-50%) !important;
    
    animation: slideDown 0.3s ease-out;
}

.dropdown-menu {
    top: 2.1rem !important;
    animation: fadeIn 0.1s ease-out;
}

@media (min-width: 768px) and (max-width: 1024px) {
    .mega-menu {
        right: -48.5% !important;
        top: 4rem;
    }
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateX(-50%) translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateX(-50%) translateY(0);
    }
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #94a3b8; }
.dark ::-webkit-scrollbar-thumb { background: #334155; }

.fade-in { animation: fadeIn 0.3s ease-in-out; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

.snowflakes {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 9999;
}
.snowflake {
    position: absolute;
    top: -10px;
    color: #fff;
    font-size: 1em;
    animation: fall linear infinite;
}
@keyframes fall {
    to { transform: translateY(100vh); }
}
.snowflake:nth-child(1) { left: 10%; animation-duration: 8s; animation-delay: 0s; }
.snowflake:nth-child(2) { left: 20%; animation-duration: 10s; animation-delay: 2s; }
.snowflake:nth-child(3) { left: 30%; animation-duration: 7s; animation-delay: 4s; }
.snowflake:nth-child(4) { left: 40%; animation-duration: 9s; animation-delay: 1s; }
.snowflake:nth-child(5) { left: 50%; animation-duration: 11s; animation-delay: 3s; }
.snowflake:nth-child(6) { left: 60%; animation-duration: 8s; animation-delay: 5s; }
.snowflake:nth-child(7) { left: 70%; animation-duration: 10s; animation-delay: 2s; }
.snowflake:nth-child(8) { left: 80%; animation-duration: 9s; animation-delay: 4s; }
.snowflake:nth-child(9) { left: 90%; animation-duration: 7s; animation-delay: 1s; }
.snowflake:nth-child(10) { left: 15%; animation-duration: 11s; animation-delay: 3s; }

@keyframes shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-10px); }
    75% { transform: translateX(10px); }
}
.animate-shake {
    animation: shake 0.5s ease-in-out;
}