/* ================================
   Global Overlay Scrollbar
================================ */

html {
  scrollbar-width: thin;
  scrollbar-color: #327DC2 #F3F4F6; /* thumb | track for light mode */
}

.dark html {
  scrollbar-color: #60A5FA #1F2937; /* thumb | track for dark mode */
}

::-webkit-scrollbar {
  width: 8px;          /* thin width */
  height: 8px;         /* horizontal scrollbar */
}

::-webkit-scrollbar-track {
  background-color: transparent; /* overlay style track */
}

::-webkit-scrollbar-thumb {
  background-color: #327DC2;   /* Tailwind blue-500 */
  border-radius: 9999px;       /* fully rounded */
  border: 2px solid transparent; 
  background-clip: content-box;
  transition: background-color 0.3s ease, transform 0.2s ease;
}

::-webkit-scrollbar-thumb:hover {
  background-color: #2563EB; /* Tailwind blue-600 */
  transform: scale(1.1);     /* subtle hover pop */
}

/* -------------------
   Dark Mode
------------------- */
.dark ::-webkit-scrollbar-thumb {
  background-color: #60A5FA; /* Tailwind blue-400 */
}

.dark ::-webkit-scrollbar-thumb:hover {
  background-color: #3B82F6; /* Tailwind blue-500 */
  transform: scale(1.1);
}

.dark ::-webkit-scrollbar-track {
  background-color: transparent; /* overlay track for dark mode */
}

/* dropdown style */
        .dropdown-menu {
            transition: all 0.3s ease-out;
            max-height: 0;
            overflow: hidden;
            opacity: 0;
            visibility: hidden;
        }
        .dropdown-menu.show {
            max-height: 200px; /* Adjust based on content height */
            opacity: 1;
            visibility: visible;
        }

/* Style for the GitHub repository select */

#report-bug-section .form-group {

    display: flex;

    flex-direction: column;

    align-items: center;

    gap: 1rem;

}



#report-bug-section .github-row {

    flex-direction: row; /* Keep elements in a row */

    gap: 1rem;

}



#report-bug-section .github-logo {

    flex-shrink: 0;

    width: 2.5rem; /* Equivalent to w-10 */

    height: 2.5rem; /* Equivalent to h-10 */

    color: #4B5563; /* Tailwind gray-700 */

    transition: color 0.3s ease;

}



.dark #report-bug-section .github-logo {

    color: #D1D5DB; /* Tailwind gray-300 */

}



#report-bug-section .github-logo:hover {

    color: #1F2937; /* Tailwind gray-900 */

}



.dark #report-bug-section .github-logo:hover {

    color: #F9FAFB; /* Tailwind gray-50 */

}



#report-bug-section .github-logo svg {

    width: 100%;

    height: 100%;

}

#github-repo-select {
    flex-grow: 1; /* Allow select to take available space */
    max-width: 100%; /* Ensure it doesn't overflow */
    padding: 0.75rem 1rem; /* p-3 for py and px-4 */
    border-radius: 0.5rem; /* rounded-lg */
    border: 1px solid #D1D5DB; /* border-gray-300 */
    background-color: #F9FAFB; /* bg-gray-50 */
    color: #1F2937; /* text-gray-900 */
    font-size: 1rem; /* text-base */
    line-height: 1.5;
    appearance: none; /* Remove default arrow */
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3e%3cpath d='M7 7l3-3 3 3m0 6l-3 3-3-3' stroke='%236B7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 1.5em 1.5em;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;

}

.dark #github-repo-select {
    border-color: #374151; /* dark:border-gray-700 */
    background-color: #1F2937; /* dark:bg-gray-800 */
    color: #F9FAFB; /* dark:text-white */

}

#github-repo-select:focus {
    border-color: #0ea5e9; /* focus:border-primary-500 */
    ring-color: #0ea5e9; /* focus:ring-primary-500 */
    outline: none;
    box-shadow: 0 0 0 3px rgba(14, 165, 233, 0.2); /* ring-primary-500 with opacity */

}

.dark #github-repo-select:focus {

    box-shadow: 0 0 0 3px rgba(14, 165, 233, 0.4); /* dark:focus:ring-primary-400 */

}

/* Ensures images maintain aspect ratio without distortion */
.object-cover {
    object-fit: cover;
}

/* Styles for the partner logo containers */
.partner-logo-container {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 1rem; /* p-4 */
    background-color: theme('colors.neutral.100'); /* bg-neutral-100 */
    border-radius: 0.5rem; /* rounded-lg */
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1); /* shadow-md */
    border: 1px solid theme('colors.neutral.200'); /* border-neutral-200 */
    transition: all 0.3s ease-in-out;
}

.dark .partner-logo-container {
    background-color: theme('colors.neutral.700'); /* dark:bg-neutral-700 */
    border-color: theme('colors.neutral.600'); /* dark:border-neutral-600 */
}

.partner-logo-container:hover {
    border-color: theme('colors.primary.brand-hover'); /* hover:border-brand-hover */
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1); /* hover:shadow-lg */
}

/* Partners Section Styling */
.partner-logo-container {
    transition: all 0.3s ease-in-out;
    cursor: pointer;
    box-sizing: border-box; /* Include padding and border in the element's total width and height */
}

.partner-logo-container:hover {
    transform: translateY(-5px) scale(1.05);
    box-shadow: 0 15px 20px -5px rgba(0, 0, 0, 0.2), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
    border-color: theme('colors.primary.400' / 0.5); /* Blue border on hover using primary-400 with opacity */
}

.dark .partner-logo-container:hover {
    border-color: theme('colors.primary.500'); /* Darker blue for dark mode hover */
}

/* Bug Report */
.report-bug-section {
    background-color: theme('colors.white'); /* Light background matching main container */
    border-radius: 0; /* No rounded corners */
    box-shadow: none; /* No shadow */
    border: none; /* No explicit border, relies on overall page design */
    padding: 3rem;
    transition: all 0.3s ease;
}
.dark .report-bug-section {
    background-color: transparent; /* Dark background matching main container */
    border-color: theme('colors.neutral.600'); /* Darker border for dark mode, if border was present */
    box-shadow: none; /* No shadow */
}

.form-container-inner {
    max-width: 600px;
    margin: 0 auto;
}

.form-group label {
    display: block;
    margin-bottom: 0.6rem;
    font-weight: 700;
    color: theme('colors.neutral.700'); /* Neutral-700 */
}
.dark .form-group label {
    color: theme('colors.neutral.400'); /* Neutral-400 for dark mode labels */
}
.form-group select {
    width: 100%;
    padding: 0.8rem 1rem;
    border: 1px solid theme('colors.neutral.300'); /* Neutral-300 */
    border-radius: 0; 
    background-color: theme('colors.neutral.100'); /* Neutral-100 */
    color: theme('colors.neutral.800'); /* Neutral-800 */
    font-size: 1.05rem;
    transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, background-color 0.2s ease-in-out;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23374151'%3E%3Cpath fill-rule='evenodd' d='M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z' clip-rule='evenodd' /%3E%3C/svg%3E"); /* Using Neutral-700 hex */
    background-repeat: no-repeat;
    background-position: right 0.8rem center;
    background-size: 1.4em 1.4em;
}
.dark .form-group select {
    background-color: theme('colors.neutral.900'); /* Darker background for dark mode select */
    border-color: theme('colors.neutral.600'); /* Darker border for dark mode */
    color: theme('colors.neutral.200'); /* Neutral-200 text */
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%239CA3AF'%3E%3Cpath fill-rule='evenodd' d='M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z' clip-rule='evenodd' /%3E%3C/svg%3E"); /* Using Neutral-400 hex */
}
.form-group select:focus {
    outline: none;
    border-color: theme('colors.primary.500'); /* Primary-500 */
    box-shadow: 0 0 0 4px theme('colors.primary.500' / 0.4);
    background-color: theme('colors.white'); /* White on focus for light mode */
}
.dark .form-group select:focus {
    background-color: theme('colors.neutral.700'); /* Slightly lighter dark on focus */
}

.github-logo {
    flex-shrink: 0;
    margin-right: 1.25rem;
}
.github-logo svg {
    width: 3rem;
    height: 3rem;
    color: theme('colors.neutral.800');
    transition: color 0.2s ease-in-out;
}
.dark .github-logo svg {
    color: theme('colors.neutral.200');
}
.github-logo:hover svg {
    color: theme('colors.primary.500');
}
.dark .github-logo:hover svg {
    color: theme('colors.primary.400');
}

@media (max-width: 639px) {
    .github-row {
        flex-direction: column;
        align-items: center;
        gap: 1.25rem;
        margin-bottom: 2rem;
    }
    .github-logo {
        margin-right: 0;
    }
    .report-bug-section {
        padding: 2rem;
    }
}

/* Styles for the partner logo containers */

.partner-logo-container {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 1rem; /* p-4 */
    background-color: #F3F4F6; /* bg-gray-100 */
    border-radius: 0.5rem; /* rounded-lg */
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1); /* shadow-md */
    border: 1px solid #E5E7EB; /* border-gray-200 */
    transition: all 0.3s ease-in-out;

}



.dark .partner-logo-container {
    background-color: #374151; /* dark:bg-gray-700 */
    border-color: #4B5563; /* dark:border-gray-600 */

}

.partner-logo-container:hover {
    border-color: #327DC2; /* hover:border-blue-500 */
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1); /* hover:shadow-lg */

}

        /* Partners Section Styling */
        .partner-logo-container {
            transition: all 0.3s ease-in-out;
            cursor: pointer;
            box-sizing: border-box; /* Include padding and border in the element's total width and height */

        }

        .partner-logo-container:hover {
            transform: translateY(-5px) scale(1.05);
            box-shadow: 0 15px 20px -5px rgba(0, 0, 0, 0.2), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
            border-color: #327DC2; /* Blue border on hover */

        }

        .dark .partner-logo-container:hover {
            border-color: #327DC2; /* Darker blue for dark mode hover */
        }

        /* Bug Report */

        .report-bug-section {
            background-color: #ffffff; /* Light background matching main container */
            border-radius: 0; /* No rounded corners */
            box-shadow: none; /* No shadow */
            border: none; /* No explicit border, relies on overall page design */
            padding: 3rem;
            transition: all 0.3s ease;

        }

        .dark .report-bug-section {
            background-color: transparent; /* Dark background matching main container */
            border-color: #4a5568; /* Darker border for dark mode, if border was present */
            box-shadow: none; /* No shadow */

        }



        .form-container-inner {
            max-width: 600px;
            margin: 0 auto;

        }

        .form-group label {
            display: block;
            margin-bottom: 0.6rem;
            font-weight: 700;
            color: #4a5568; /* Gray-700 */

        }

        .dark .form-group label {
            color: #a0aec0; /* Gray-400 for dark mode labels */

        }

        .form-group select {
            width: 100%;
            padding: 0.8rem 1rem;
            border: 1px solid #cbd5e0; /* Gray-300 */
            border-radius: 0; 
            background-color: #edf2f7; /* Gray-100 */
            color: #2d3748; /* Gray-800 */
            font-size: 1.05rem;
            transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out, background-color 0.2s ease-in-out;
            appearance: none;
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%234a5568'%3E%3Cpath fill-rule='evenodd' d='M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z' clip-rule='evenodd' /%3E%3C/svg%3E");
            background-repeat: no-repeat;
            background-position: right 0.8rem center;
            background-size: 1.4em 1.4em;

        }

        .dark .form-group select {
            background-color: #333333; /* Darker background for dark mode select */
            border-color: #4a4a4a; /* Darker border for dark mode */
            color: #e2e8f0; /* White text */
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23a0aec0'%3E%3Cpath fill-rule='evenodd' d='M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z' clip-rule='evenodd' /%3E%3C/svg%3E");

        }

        .form-group select:focus {
            outline: none;
            border-color: #3b82f6; /* Blue-500 */
            box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.4);
            background-color: #ffffff; /* White on focus for light mode */

        }

        .dark .form-group select:focus {
            background-color: #2d3748; /* Slightly lighter dark on focus */

        }



        .github-logo {
            flex-shrink: 0;
            margin-right: 1.25rem;

        }

        .github-logo svg {
            width: 3rem;
            height: 3rem;
            color: #2d3748;
            transition: color 0.2s ease-in-out;

        }

        .dark .github-logo svg {
            color: #e2e8f0;

        }

        .github-logo:hover svg {
            color: #327DC2;

        }

        .dark .github-logo:hover svg {
            color: #327DC2;

        }

        @media (max-width: 639px) {
            .github-row {
                flex-direction: column;
                align-items: center;
                gap: 1.25rem;
                margin-bottom: 2rem;

            }

            .github-logo {
                margin-right: 0;

            }
            .report-bug-section {
                padding: 2rem;
            }
        }

/* About Section */
        /* History Feature Container Styles - New Responsive Grid */
        .history-feature-container {
            display: grid;
            grid-template-columns: repeat(1, minmax(0, 1fr)); /* Single column by default */
            gap: 2.5rem; /* Space between cards */
            padding-top: 2.5rem;
            padding-bottom: 2.5rem;
        }

        @media (min-width: 640px) { /* sm breakpoint */
            .history-feature-container {
                grid-template-columns: repeat(2, minmax(0, 1fr)); /* 2 columns on small screens */
            }
        }

        @media (min-width: 1024px) { /* lg breakpoint */
            .history-feature-container {
                grid-template-columns: repeat(3, minmax(0, 1fr)); /* 3 columns on large screens */
            }
        }

        /* History Feature Card Styles - Modern & Interactive */
        .history-feature-card {
            background-color: #ffffff; /* White card background */
            border-radius: 1rem; /* rounded-xl */
            box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06); /* Softer, layered shadow */
            padding: 2.5rem; /* p-10 */
            text-align: center;
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); /* Ease-in-out for smooth animations */
            border: 1px solid #e5e7eb; /* Light gray border */
            position: relative;
            overflow: hidden;
        }

        .dark .history-feature-card {
            background-color: #1a202c; /* Dark background */
            border-color: #2d3748; /* Darker border */
            box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5); /* Stronger dark shadow */
        }

        .history-feature-card:hover {
            transform: translateY(-8px); /* More pronounced lift on hover */
            box-shadow: 0 15px 40px rgba(0, 0, 0, 0.15); /* Deeper shadow on hover */
            border-color: #327DC2; /* New blue for hover accent */
        }

        .dark .history-feature-card:hover {
            border-color: #4a90d9; /* Lighter shade of new blue for dark mode hover */
            box-shadow: 0 15px 40px rgba(0, 0, 0, 0.7);
        }

        /* Card background ornament (subtle gradient overlay) */
        .history-feature-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: linear-gradient(135deg, rgba(50, 125, 194, 0.03) 0%, rgba(74, 144, 217, 0.01) 100%); /* New blue gradients */
            opacity: 1;
            z-index: 0;
            pointer-events: none;
        }

        .dark .history-feature-card::before {
            background: linear-gradient(135deg, rgba(74, 144, 217, 0.03) 0%, rgba(50, 125, 194, 0.01) 100%);
        }

        .history-feature-card > * {
            position: relative; /* Ensure content is above the pseudo-element */
            z-index: 1;
        }

        /* Feature Icon Container */
        .feature-icon-container {
            width: 4.5rem; /* Larger icon container */
            height: 4.5rem;
            background-color: #e0f2fe; /* Tailwind blue-100 */
            border-radius: 9999px; /* rounded-full */
            display: flex;
            align-items: center;
            justify-content: center;
            margin: 0 auto 1.5rem;
            transition: background-color 0.3s ease;
        }

        .dark .feature-icon-container {
            background-color: #1e3a8a; /* Tailwind blue-900 */
        }

        .feature-icon-container i {
            font-size: 2rem; /* Larger icon size */
            color: #2563eb; /* Tailwind blue-600 */
            transition: color 0.3s ease;
        }

        .dark .feature-icon-container i {
            color: #93c5fd; /* Tailwind blue-300 */
        }

        /* Feature Date Styling */
        .feature-date {
            font-size: 0.95rem; /* Slightly larger */
            font-weight: 700;
            color: #1d4ed8; /* Tailwind blue-700 */
            margin-bottom: 0.75rem;
            letter-spacing: 0.075em; /* More tracking */
            text-transform: uppercase;
        }

        .dark .feature-date {
            color: #93c5fd; /* Tailwind blue-300 */
        }

        /* Heading Styles */
        .history-feature-card h3 {
            font-size: 2rem; /* Larger heading */
            font-weight: 800; /* Extra bold */
            color: #1a202c; /* gray-900 */
            margin-bottom: 1rem;
            line-height: 1.3;
        }

        .dark .history-feature-card h3 {
            color: #ffffff; /* white */
        }

        /* Paragraph Styles */
        .history-feature-card p {
            font-size: 1.05rem; /* Slightly larger paragraph */
            color: #4a5568; /* gray-700 */
            line-height: 1.7;
        }

        .dark .history-feature-card p {
            color: #cbd5e0; /* gray-300 */
        }

        /* Link within paragraph */
        .history-feature-card p a {
            color: #3b82f6; /* blue-500 */
            font-weight: 600;
            text-decoration: underline;
            transition: color 0.2s ease;
        }

        .dark .history-feature-card p a {
            color: #60a5fa; /* blue-400 */
        }

        .history-feature-card p a:hover {
            color: #2563eb; /* blue-600 */
        }

        .dark .history-feature-card p a:hover {
            color: #3b82f6; /* blue-500 */
        }

.animate-pulse {
    animation: pulse 1.5s ease-in-out infinite;
}

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


/* Generic styles for headings and text to match site theme */
h1, h2, h3, h4 {
    color: theme('colors.neutral.900'); /* Dark text for headings */
}
.dark h1, .dark h2, .dark h3, .dark h4 {
    color: theme('colors.neutral.200'); /* Light text for headings in dark mode */
}
p {
    color: theme('colors.neutral.700'); /* Neutral-700 for body text */
}
.dark p {
    color: theme('colors.neutral.400'); /* Neutral-400 for body text in dark mode */
}

.primary-text-color {
    color: theme('colors.primary.brand-primary'); /* Primary blue */
}
.dark .primary-text-color {
    color: theme('colors.primary.300'); /* Lighter blue for dark mode primary */
}

/* Staff Section Specific Styles */

/* Error */
.container-404 {
    /* Applied styles to match main site's .container */
    background-color: theme('colors.white');
    border-radius: 1.5rem; /* Consistent rounded corners */
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    padding: 2.5rem;
    max-width: 700px;
    width: 100%;
    box-sizing: border-box;
    border: 1px solid theme('colors.neutral.200'); /* Light border */
}
.dark .container-404 {
    background-color: theme('colors.neutral.700'); /* Darker background for dark mode */
    border-color: theme('colors.neutral.600'); /* Darker border for dark mode */
}
.error-code {
    font-size: 8rem; /* Large 404 code */
    font-weight: 900; /* Extra bold */
    line-height: 1;
    color: theme('colors.error'); /* Red-500 */
    margin-bottom: 1rem;
}
.dark .error-code {
    color: theme('colors.error'); /* Using 'error' from config for dark mode */
}
.error-message {
    font-size: 2.5rem; /* Large message text */
    font-weight: 800; /* Extra bold */
    color: theme('colors.neutral.900'); /* Dark text */
    margin-bottom: 1.5rem;
}
.dark .error-message {
    color: theme('colors.neutral.200'); /* Light text */
}
.sub-message {
    font-size: 1.125rem; /* Base message text */
    color: theme('colors.neutral.700'); /* Neutral-700 */
    margin-bottom: 2.5rem;
}
.dark .sub-message {
    color: theme('colors.neutral.400'); /* Neutral-400 */
}
.home-button {
    display: inline-block;
    padding: 0.75rem 2rem;
    background-color: theme('colors.primary.500'); /* Primary-500 */
    color: theme('colors.white');
    font-weight: 700;
    border-radius: 0.5rem;
    text-decoration: none;
    transition: background-color 0.2s ease-in-out, transform 0.2s ease-in-out;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.home-button:hover {
    background-color: theme('colors.primary.brand-hover'); /* Primary-brand-hover */
    transform: translateY(-2px);
}
.dark .home-button {
    background-color: theme('colors.primary.400'); /* Lighter blue for dark mode */
}
.dark .home-button:hover {
    background-color: theme('colors.primary.500'); /* Original blue on dark mode hover */
}


        .vote-container {
            background-color: rgba(255, 255, 255, 0.9); /* Semi-transparent background for content */
            padding: 40px;
            border-radius: 10px;
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
            text-align: center;
            max-width: 800px;
            width: 90%;
            position: relative; /* Ensure it's above the background */
            z-index: 1;
        }

        .vote-container h1 {
            color: #007bff; /* Example primary color */
            margin-bottom: 20px;
            font-size: 2.5em;
        }

        .vote-container p {
            font-size: 1.1em;
            line-height: 1.6;
            margin-bottom: 30px;
        }

        .vote-links {
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            gap: 20px;
            margin-top: 30px;
        }

        .vote-link-card {
            background-color: #f0f0f0;
            border: 1px solid #ddd;
            border-radius: 8px;
            padding: 25px;
            width: 280px;
            text-align: center;
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
            transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
        }

        .vote-link-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 6px 15px rgba(0, 0, 0, 0.15);
        }

        .vote-link-card h3 {
            color: #0056b3;
            margin-bottom: 15px;
            font-size: 1.5em;
        }

        .vote-link-card a.button {
            display: inline-block;
            background-color: #28a745; /* Example button color */
            color: white;
            padding: 12px 25px;
            border-radius: 5px;
            text-decoration: none;
            font-weight: bold;
            transition: background-color 0.2s ease-in-out;
        }

        .vote-link-card a.button:hover {
            background-color: #218838;
        }

        .rewards {
            margin-top: 40px;
            padding: 20px;
            background-color: rgba(240, 240, 240, 0.8);
            border-radius: 8px;
        }

        .rewards h2 {
            color: #d9534f;
            margin-bottom: 20px;
            font-size: 2em;
        }

        .rewards ul {
            list-style: none;
            padding: 0;
            text-align: left;
        }

        .rewards ul li {
            margin-bottom: 10px;
            font-size: 1.05em;
            padding-left: 25px;
            position: relative;
        }

        .rewards ul li::before {
            content: '⭐'; /* Star icon for list items */
            position: absolute;
            left: 0;
        }

        /* Responsive adjustments */
        @media (max-width: 768px) {
            .vote-container {
                padding: 20px;
            }
            .vote-container h1 {
                font-size: 2em;
            }
            .vote-link-card {
                width: 100%; /* Stack cards on smaller screens */
            }
        }

        /* Loading Spinner */
        .loader {
            border: 4px solid #f3f3f3; /* Light grey */
            border-top: 4px solid #3498db; /* Blue */
            border-radius: 50%;
            width: 40px;
            height: 40px;
            animation: spin 1s linear infinite;
        }

        .dark .loader {
            border-color: #4a5568; /* Dark grey */
            border-top-color: #63b3ed; /* Light blue */
        }

        @keyframes spin {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }


/* Donation Page */
/* Light mode defaults (already handled by Tailwind, but good for explicit overrides) */
body {
    background-color: #f3f4f6; /* gray-100 */
    color: #1f2937; /* gray-900 */
}

/* Dark mode styles */
.dark body {
    background-color: #111827; /* gray-900 */
    color: #f3f4f6; /* gray-100 */
}

.dark .bg-white {
    background-color: #1f2937; /* gray-800 */
}

.dark .text-gray-900 {
    color: #f3f4f6; /* gray-100 */
}

.dark .text-gray-700 {
    color: #d1d5db; /* gray-300 */
}

.dark .text-gray-600 {
    color: #9ca3af; /* gray-400 */
}


/* Specific styling for the PayPal button */
#paypal-button-container > div {
    width: 100%; /* Ensures the PayPal iframe takes full width of its parent */
}

@keyframes glow-gradient {
  0% { border-color: #327DC2; box-shadow: 0 0 8px #327DC2; }
  50% { border-color: #1A558C; box-shadow: 0 0 16px #1A558C; }
  100% { border-color: #327DC2; box-shadow: 0 0 8px #327DC2; }
}

.animate-glow-gradient {
  border-radius: inherit;
  border-width: 2px;
  border-style: solid;
  animation: glow-gradient 3s ease-in-out infinite;
}


/* Snow container */
#snow-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  overflow: visible;
  z-index: -1;
}

.snowflake {
    position: absolute;
    top: -2rem;
    user-select: none;
    pointer-events: none;
    will-change: transform;
    animation-name: fall;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    transform-origin: center;
    color: var(--snow-color, white); /* use CSS variable for theme-based color */
}

@keyframes fall {
  0% { transform: translateY(-10px); }
  100% { transform: translateY(100vh); }
}

/* Accumulated snow */
.snow-accumulated {
  position: absolute;
  color: #fff;
  font-size: 0.5rem;
  pointer-events: none;
  user-select: none;
  opacity: 0.8;
}

/* Fireworks container */
#fireworks-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  overflow: hidden;
  z-index: -1;
}

.firework {
  position: absolute;
  bottom: 0;
  width: 4px;
  height: 40px;
  background: transparent;
  border-radius: 50%;
  animation: launch 1s ease-out forwards, explode 1s ease-out forwards 1s;
}

@keyframes launch {
  0% { transform: translateY(0); opacity: 1; }
  100% { transform: translateY(-60vh); opacity: 1; }
}

@keyframes explode {
  0% {
    width: 4px;
    height: 4px;
    opacity: 1;
    box-shadow:
      0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff,
      0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff;
  }
  100% {
    width: 200px;
    height: 200px;
    opacity: 0;
    box-shadow:
      40px -40px currentColor, -40px -30px currentColor,
      50px 20px currentColor, -50px 50px currentColor,
      20px 40px currentColor, -20px -50px currentColor,
      0px 60px currentColor, 60px 0px currentColor;
  }
}

.firework { color: hsl(calc(360 * var(--h)), 100%, 70%); }


