body::-webkit-scrollbar,
div::-webkit-scrollbar {
    display: none;
}

.subtitle {
    height: 60vh;
    overflow-y: auto;
    text-align: justify;
    font-size: 20px;
}

main{
  max-width: 100%;
  overflow: hidden;
}

/* Common base styles */
body {
  font-family: 'Inter', sans-serif;
  background: #1a1a2e;
  min-height: 100vh;
}

/* Navbar styles */
.navbar {
  background: rgba(26, 26, 46, 0.9) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.navbar .container {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
}

.navbar-brand {
  font-weight: 500;
  font-size: 1.4rem;
  transition: opacity 0.2s ease;
  color: rgba(218, 139, 220, 1) !important;
}

.navbar-brand:hover {
  opacity: 0.8;
  color: rgba(218, 139, 220, 1) !important;
}

/* Hall name pill styles */
#hall_name {
  font-size: 0.85rem;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  white-space: nowrap;
}

/* Page title styles */
.page-title {
  color: #fff;
  font-weight: 600;
  font-size: 2rem;
  margin-bottom: 2rem;
  text-align: center;
}

/* Common card styles */
.hall-card, .event-card {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  transition: all 0.3s ease;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

.hall-card:hover, .event-card:hover {
  transform: translateY(-5px);
  border-color: rgba(255, 255, 255, 0.2);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15);
}

.hall-card .card-body, .event-card .card-body {
  padding: 2rem;
}

.hall-card .card-title, .event-card .card-title {
  font-weight: 600;
  font-size: 1.3rem;
  margin-bottom: 1rem;
  color: #fff;
}

.hall-card .btn, .event-card .btn {
  background: #0d6efd;
  border: none;
  border-radius: 8px;
  padding: 10px 24px;
  font-weight: 500;
  transition: all 0.2s ease;
}

.hall-card .btn:hover, .event-card .btn:hover {
  background: #0b5ed7;
  transform: translateY(-2px);
}

/* Loading spinner styles */
.loading-spinner {
  display: inline-block;
  width: 20px;
  height: 20px;
  border: 3px solid rgba(255, 255, 255, 0.3);
  border-radius: 50%;
  border-top-color: #fff;
  animation: spin 1s ease-in-out infinite;
  margin-right: 10px;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

/* Sponsor section styles */
.sponsor-section {
  margin-top: 4rem;
}

/* Page header styles for index.html */
.page-header {
  background: rgba(255, 255, 255, 0.01);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 8px;
  padding: 0.8rem 1rem;
  margin-bottom: 1rem;
  text-align: center;
}

.page-header .page-title {
  color: rgba(255, 255, 255, 0.8);
  font-size: 1rem;
  font-weight: 400;
  margin: 0;
  line-height: 1.2;
}

/* Sticky navbar for index.html */
.navbar.sticky {
  position: sticky;
  top: 0;
  z-index: 1000;
}

/* Main content spacing */
.main-content {
  margin-top: 1rem;
}

/* Mobile responsive styles */
@media (max-width: 768px) {
  .navbar-brand {
    font-size: 1.2rem;
  }
  
  #hall_name {
    font-size: 0.75rem;
  }

  /* When pill wraps to next line, align it with the brand logo */
  .navbar .container {
    align-items: flex-start;
  }
  
  #hall_name {
    margin-left: 12px;
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
  }

  .page-title {
    font-size: 1.8rem;
  }
  
  .hall-card .card-body, .event-card .card-body {
    padding: 1.5rem;
  }
  
  .page-header {
    padding: 0.6rem 0.8rem;
    margin-bottom: 0.8rem;
  }
  
  .page-header .page-title {
    font-size: 0.9rem;
  }
}

.subtitle {
    height: 60vh;
    overflow-y: auto;
    text-align: justify;
    font-size: 20px;
}

main{
  max-width: 100%;
  overflow: hidden;
}

.badge-outline-secondary {
    color: #6c757d;
    background-color: transparent;
    background-image: none;
    border-color: #6c757d;
    border: 1px solid;
}

.masked-overflow {
    /* scroll bar width, for use in mask calculations */
    --scrollbar-width: 0px;
    /* mask fade distance, for use in mask calculations */
    --mask-height: 45px;
    /* If content exceeds height of container, overflow! */
    overflow-y: auto;
    /* Need to make sure container has bottom space,
  otherwise content at the bottom is always faded out */
    padding-bottom: var(--mask-height);

    /* The CSS mask */

    /* The content mask is a linear gradient from top to bottom */
    --mask-image-content: linear-gradient(to bottom,
            transparent,
            black var(--mask-height),
            black calc(100% - var(--mask-height)),
            transparent);
    /* Here we scale the content gradient to the width of the container 
  minus the scrollbar width. The height is the full container height */
    --mask-size-content: calc(100% - var(--scrollbar-width)) 100%;

    /* The scrollbar mask is a black pixel */
    --mask-image-scrollbar: linear-gradient(black, black);

    /* The width of our black pixel is the width of the scrollbar.
  The height is the full container height */
    --mask-size-scrollbar: var(--scrollbar-width) 100%;

    /* Apply the mask image and mask size variables */
    mask-image: var(--mask-image-content), var(--mask-image-scrollbar);
    mask-size: var(--mask-size-content), var(--mask-size-scrollbar);

    /* Position the content gradient in the top left, and the 
  scroll gradient in the top right */
    mask-position: 0 0, 100% 0;

    /* We don't repeat our mask images */
    mask-repeat: no-repeat, no-repeat;
}


.summary-box {
  border: 1px solid #6c757d;
  /* Bootstrap's secondary color */
  padding: 15px;
  border-radius: 5px;
  margin-bottom: 20px;
  background-color: #343a40;
  /* Consistent with index.html */
  color: #f8f9fa;
  /* Consistent with index.html */
  height: 250px;
  /* Slightly bigger*/
  overflow-y: auto;
}

.summary-title {
  color: #f8f9fa;
  /* Consistent with index.html */
  padding-bottom: 20px;
}

/* Navigation underline styles */
.nav-underline {
  border-bottom: none;
  gap: 0.5rem;
}

.nav-underline .nav-item {
  margin-bottom: 0;
}

/* Content section styles */
.content-section {
  background: rgba(255, 255, 255, 0.02);
  border-radius: 12px;
  padding: 2rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

/* Sponsor card styles */
.sponsor-card {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  transition: all 0.3s ease;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

.sponsor-card:hover {
  transform: translateY(-3px);
  border-color: rgba(255, 255, 255, 0.2);
}

.sponsor-card .btn {
  background: #0d6efd;
  border: none;
  border-radius: 8px;
  padding: 10px 20px;
  font-weight: 500;
  transition: all 0.2s ease;
}

.sponsor-card .btn:hover {
  background: #0b5ed7;
  transform: translateY(-2px);
}

/* Card styles */
.card {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

/* Button styles */
.btn-primary {
  background: #0d6efd;
  border: none;
  border-radius: 8px;
  padding: 10px 20px;
  font-weight: 500;
  transition: all 0.2s ease;
}

.btn-primary:hover {
  background: #0b5ed7;
  transform: translateY(-2px);
}

.btn-secondary {
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 8px;
}

.btn-secondary:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.3);
}

/* Dropdown styles */
.dropdown-menu {
  background: rgba(26, 26, 46, 0.95);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
}

.dropdown-item:hover {
  background: rgba(255, 255, 255, 0.1);
}

/* Speaker display improvements */
.subtitle .row {
  margin: 0;
  align-items: flex-start;
}

.subtitle .col-1 {
  padding: 0;
  padding-right: 0.75rem;
  flex: 0 0 auto;
  width: auto;
  max-width: 120px;
  min-width: 80px;
}

.subtitle .col-11 {
  padding: 0;
  flex: 1;
  word-wrap: break-word;
  overflow-wrap: break-word;
}

.subtitle .badge {
  font-size: 11px;
  padding: 0.35em 0.65em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
  display: inline-block;
}

/* Desktop navigation improvements */
.nav-tabs-container {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
  padding: 0.6rem;
  margin-bottom: 1.2rem;
}

.nav-underline .nav-link {
  border-radius: 6px;
  padding: 8px 16px;
  font-weight: 500;
  transition: all 0.3s ease;
  border: 1px solid transparent;
  background: rgba(255, 255, 255, 0.05);
  color: rgba(255, 255, 255, 0.7);
  text-decoration: none;
  font-size: 13px;
}

.nav-underline .nav-link:hover {
  background: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.9);
  border-color: rgba(255, 255, 255, 0.2);
  transform: translateY(-2px);
}

.nav-underline .nav-link.active {
  background: #0d6efd;
  color: white;
  border-color: #0d6efd;
  box-shadow: 0 4px 15px rgba(13, 110, 253, 0.3);
}

.nav-underline .nav-link.active:hover {
  background: #0b5ed7;
  transform: translateY(-2px);
}

/* Mobile responsive improvements */
@media (max-width: 768px) {
  .subtitle {
    height: 50vh;
    font-size: 18px;
  }
  
  .summary-box {
    height: 300px;
    padding: 20px;
    margin-bottom: 30px;
  }
  
  /* Improve content sections on mobile */
  .content-section {
    padding: 1.5rem !important;
    margin-bottom: 1.5rem;
  }
  
  /* Remove padding for Slido and Summary on mobile */
  #slido_row.content-section,
  #summary_row.content-section {
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
  }
  
  /* Make iframe full width on mobile */
  .content-section iframe {
    width: 100% !important;
    height: 400px !important;
    min-height: 400px;
  }
  
  /* Slido specific improvements */
  #slido-content {
    padding: 0;
    margin: 0;
  }
  
  #slido-content iframe {
    width: 100% !important;
    height: 500px !important;
    border-radius: 8px;
  }
  
  /* Summary content improvements */
  #summary-content {
    padding: 1.5rem;
    font-size: 16px;
    line-height: 1.6;
  }
  
  /* Navigation improvements for mobile */
  .nav-tabs-container {
    padding: 0.5rem;
    margin-bottom: 0.8rem;
    background: rgba(255, 255, 255, 0.03) !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    border-radius: 8px !important;
    box-shadow: none !important;
  }
  
  .nav-underline .nav-link {
    padding: 6px 12px;
    font-size: 12px;
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    color: rgba(255, 255, 255, 0.7) !important;
    border-radius: 6px !important;
    transition: all 0.3s ease !important;
  }
  
  .nav-underline .nav-link:hover {
    background: rgba(255, 255, 255, 0.12) !important;
    color: rgba(255, 255, 255, 0.9) !important;
    border-color: rgba(255, 255, 255, 0.25) !important;
  }
  
  .nav-underline .nav-link.active {
    background: rgba(13, 110, 253, 0.8) !important;
    color: white !important;
    border-color: rgba(13, 110, 253, 0.8) !important;
    box-shadow: 0 2px 8px rgba(13, 110, 253, 0.2) !important;
  }
  
  .nav-underline .nav-link.active:hover {
    background: rgba(11, 94, 215, 0.9) !important;
  }
  
  /* Mobile speaker display improvements */
  .subtitle .col-1 {
    max-width: 100px;
    min-width: 70px;
    padding-right: 0.5rem;
  }
  
  .subtitle .badge {
    font-size: 10px;
    padding: 0.3em 0.5em;
  }
  
  .subtitle .col-11 {
    font-size: 16px;
    line-height: 1.4;
  }
}