.forum-page {
  min-height: 100vh;
  background-color: #121212; /* Darker background for modern feel */
  padding-bottom: 80px;
  color: #fff;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  /* Global Animations */
  @keyframes fadeInUp {
    from {
      opacity: 0;
      transform: translateY(20px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  @keyframes pulse {
    0% { transform: scale(1); box-shadow: 0 4px 12px rgba(0, 185, 107, 0.4); }
    50% { transform: scale(1.05); box-shadow: 0 8px 24px rgba(0, 185, 107, 0.6); }
    100% { transform: scale(1); box-shadow: 0 4px 12px rgba(0, 185, 107, 0.4); }
  }

  .hero-section {
    padding: 60px 20px 30px;
    text-align: center;
    background: linear-gradient(180deg, rgba(0,0,0,0.8) 0%, rgba(0,185,107,0.15) 100%);
    position: relative;
    overflow: hidden;

    /* Subtle pattern overlay if desired */
    &::before {
        content: '';
        position: absolute;
        top: 0; left: 0; right: 0; bottom: 0;
        background-image: radial-gradient(#333 1px, transparent 1px);
        background-size: 20px 20px;
        opacity: 0.1;
        z-index: 0;
    }

    .title {
      position: relative;
      font-size: 36px; /* Increased from 32px */
      font-weight: 800;
      margin-bottom: 12px;
      color: #fff;
      letter-spacing: -0.5px;
      text-shadow: 0 2px 10px rgba(0,0,0,0.5);
      z-index: 1;
      
      .highlight {
        color: #00b96b;
        background: linear-gradient(45deg, #00b96b, #00ff9d);
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
      }
    }

    .subtitle {
      position: relative;
      color: #aaa;
      font-size: 17px; /* Increased from 16px */
      margin-bottom: 30px;
      font-weight: 500;
      z-index: 1;
    }

    .search-box {
      position: relative;
      display: flex;
      gap: 12px;
      margin-bottom: 24px;
      z-index: 2;

      .at-search-bar {
        flex: 1;
        background-color: transparent;
        padding: 0;
        
        &::after { border-bottom: none; }

        .at-search-bar__input-cnt {
          background-color: rgba(255, 255, 255, 0.08);
          border: 1px solid rgba(255,255,255,0.1);
          border-radius: 26px; /* More rounded */
          transition: all 0.3s ease;
          height: 48px; /* Taller touch target (from 44px) */
          display: flex;
          align-items: center;

          &:focus-within {
              background-color: rgba(255, 255, 255, 0.12);
              border-color: #00b96b;
              box-shadow: 0 0 0 2px rgba(0, 185, 107, 0.2);
          }
        }

        .at-search-bar__input {
          color: #fff;
          font-size: 17px; /* Larger input text (from 16px) */
        }
        
        .at-search-bar__placeholder {
             font-size: 16px;
        }
      }

      .create-btn {
        background: linear-gradient(135deg, #00b96b 0%, #009456 100%);
        color: #fff;
        border: none;
        border-radius: 26px;
        padding: 0 24px;
        font-size: 16px; /* Larger button text */
        font-weight: 600;
        display: flex;
        align-items: center;
        justify-content: center;
        box-shadow: 0 4px 12px rgba(0, 185, 107, 0.3);
        transition: transform 0.2s;

        &:active {
            transform: scale(0.95);
        }
      }
    }
  }

  .section-container {
    margin: 0 16px 20px;
    background: #1e1e1e; /* Card background */
    border-radius: 16px;
    padding: 16px;
    border: 1px solid rgba(255, 255, 255, 0.05);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
    animation: fadeInUp 0.6s ease-out forwards;

    .section-header {
      display: flex;
      align-items: center;
      gap: 8px;
      margin-bottom: 16px;
      padding-bottom: 12px;
      border-bottom: 1px solid rgba(255, 255, 255, 0.05);
      
      .section-title {
        font-size: 16px;
        font-weight: 700;
        color: #fff;
        letter-spacing: 0.5px;
      }
    }

    .announcement-swiper {
      height: 40px;
      
      .announcement-item {
        height: 40px;
        display: flex;
        align-items: center;
        background: rgba(255, 255, 255, 0.03);
        padding: 0 12px;
        border-radius: 8px;
        border-left: 3px solid #ff4d4f;
        
        .item-text {
          font-size: 14px;
          color: #ddd;
          overflow: hidden;
          text-overflow: ellipsis;
          white-space: nowrap;
        }
      }
    }

    .star-users-scroll {
      white-space: nowrap;
      width: 100%;
      padding-bottom: 5px; /* Scrollbar space if visible */
      
      .star-user-card {
        display: inline-flex;
        flex-direction: column;
        align-items: center;
        margin-right: 16px;
        width: 80px;
        background: rgba(255, 255, 255, 0.03);
        padding: 12px 8px;
        border-radius: 12px;
        border: 1px solid rgba(255, 255, 255, 0.05);
        transition: transform 0.2s;

        &:active {
            transform: translateY(2px);
        }
        
        .user-avatar {
          width: 48px;
          height: 48px;
          border-radius: 50%;
          border: 2px solid #ffd700;
          margin-bottom: 8px;
          box-shadow: 0 4px 8px rgba(0,0,0,0.3);
        }
        
        .user-name {
          font-size: 12px;
          font-weight: 600;
          color: #eee;
          max-width: 100%;
          overflow: hidden;
          text-overflow: ellipsis;
          white-space: nowrap;
          margin-bottom: 2px;
        }
        
        .user-title {
          font-size: 10px;
          color: #888;
          background: rgba(255, 215, 0, 0.1);
          color: #ffd700;
          padding: 2px 6px;
          border-radius: 4px;
        }
      }
    }
  }

  .tabs-wrapper {
    background-color: transparent; /* Changed from black */
    margin-bottom: 10px;
    padding: 0 10px;

    /* Override Taro UI default white background */
    .at-tabs {
        background-color: transparent;
        height: auto;
    }

    .at-tabs__header {
        background-color: transparent;
        border-bottom: none; /* Removed border */
        text-align: left;
    }

    .at-tabs__item {
      color: #888;
      font-size: 17px; /* Increased from 16px */
      padding: 14px 20px; /* Larger touch target */
      transition: all 0.3s;
      
      &--active {
        color: #fff; /* White active text */
        font-weight: 700;
        font-size: 20px; /* Increased from 19px */
        text-shadow: 0 0 10px rgba(0, 185, 107, 0.4);
      }
    }
    
    .at-tabs__item-underline {
      background-color: #00b96b;
      height: 4px; /* Slightly thicker */
      border-radius: 2px;
      bottom: 5px;
      width: 28px !important; /* Short underline style */
      margin-left: calc(50% - 14px); /* Center specific width underline */
    }
  }

  .topic-list {
    padding: 10px 16px;

    .topic-card {
      background: #1e1e1e;
      border: 1px solid rgba(255,255,255,0.05);
      border-radius: 16px;
      padding: 24px; /* Increased from 20px */
      margin-bottom: 24px; /* Increased spacing */
      position: relative;
      box-shadow: 0 4px 12px rgba(0,0,0,0.2);
      transition: transform 0.2s, box-shadow 0.2s;
      animation: fadeInUp 0.5s ease-out backwards; /* Apply animation */

      &:active {
          transform: scale(0.98);
          background: #252525;
      }

      &.pinned {
        border-color: rgba(0, 185, 107, 0.3);
        background: linear-gradient(180deg, rgba(0, 185, 107, 0.05) 0%, #1e1e1e 100%);
        box-shadow: 0 8px 20px rgba(0, 185, 107, 0.1);
      }

      /* Animation delay for staggered effect - simplistic approach (nth-child logic is better in CSS-in-JS or fixed list) */
      &:nth-child(1) { animation-delay: 0.1s; }
      &:nth-child(2) { animation-delay: 0.2s; }
      &:nth-child(3) { animation-delay: 0.3s; }
      &:nth-child(4) { animation-delay: 0.4s; }
      &:nth-child(5) { animation-delay: 0.5s; }

      .card-header {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 10px;
        margin-bottom: 14px;

        .tag {
          font-size: 12px; /* Slightly larger */
          padding: 4px 10px;
          border-radius: 6px;
          font-weight: 600;
          background: rgba(255,255,255,0.1);
          color: #aaa;
          
          &.pinned-tag {
            background: rgba(255, 77, 79, 0.15);
            color: #ff4d4f;
            border: 1px solid rgba(255, 77, 79, 0.3);
          }
          
          &.verified-tag {
            background: rgba(0, 185, 107, 0.15);
            color: #00b96b;
            border: 1px solid rgba(0, 185, 107, 0.3);
          }
        }

        .card-title {
          font-size: 22px; /* Increased from 19px */
          font-weight: 700;
          color: #fff;
          flex: 1;
          line-height: 1.4;
        }
      }

      .card-content {
        font-size: 17px; /* Increased from 15px */
        color: #ccc; /* Slightly brighter for better contrast */
        margin-bottom: 20px;
        line-height: 1.7;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3; /* Show 3 lines */
        overflow: hidden;
      }

      .card-image {
        margin-bottom: 20px;
        border-radius: 12px;
        overflow: hidden;
        
        image {
          width: 100%;
          max-height: 220px; /* Taller image preview */
          object-fit: cover;
          display: block; /* Remove inline spacing */
        }
      }

      .card-footer {
        display: flex;
        justify-content: space-between;
        align-items: center;
        font-size: 14px; /* Increased from 13px */
        color: #888;
        padding-top: 16px;
        border-top: 1px solid rgba(255,255,255,0.05);

        .author-info {
          display: flex;
          align-items: center;
          gap: 10px;

          .avatar {
            width: 40px; /* Larger avatar */
            height: 40px;
            border-radius: 50%;
            border: 1px solid rgba(255,255,255,0.1);
          }

          .nickname {
            color: #ccc;
            font-weight: 500;
            
            &.star {
              color: #ffd700;
              font-weight: 700;
            }
          }
        }

        .stats {
          display: flex;
          gap: 20px;
          
          .stat-item {
            display: flex;
            align-items: center;
            gap: 6px;
            
            .at-icon {
                font-size: 18px;
                margin-right: 0;
            }
          }
        }
      }
    }
  }

  .empty-state {
    text-align: center;
    padding: 60px 20px;
    color: #666;
    font-size: 14px;
    
    &::before {
        content: '📭'; /* Simple icon */
        display: block;
        font-size: 40px;
        margin-bottom: 10px;
        opacity: 0.5;
    }
  }
  
  .fab {
    position: fixed;
    right: 24px;
    bottom: 50px;
    width: 56px;
    height: 56px;
    background: linear-gradient(135deg, #00b96b 0%, #009456 100%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 20px rgba(0, 185, 107, 0.5);
    z-index: 100;
    animation: pulse 3s infinite;
    transition: transform 0.2s;

    &:active {
        transform: scale(0.9);
        animation: none;
    }
    
    .at-icon {
      font-size: 28px;
      color: #fff;
    }
  }
}
