
        /* ===== RESET & BASE STYLES ===== */
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        /* Scrollbar width */
::-webkit-scrollbar {
  width: 10px;
}

/* Track (background) */
::-webkit-scrollbar-track {
  background: #0f172a; /* dark background */
  border-radius: 10px;
}

/* Thumb (scroll handle) */
::-webkit-scrollbar-thumb {
  background: linear-gradient(
    180deg,
    rgb(88,184,255),
    rgb(88,184,255)
  );
  border-radius: 10px;
  border: 2px solid #0f172a;
}

/* Hover effect */
::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(
    180deg,
    rgb(88,184,255),
    rgb(88,184,255)
  );
}

        :root {
            --primary: #396a9d;
            --primary-dark: #1160e1;
            --primary-light: rgb(88,184,255);
            --secondary: #737373;
            --secondary-dark: #343434;
            --dark: #0f0f0f;
            --darker: #080808;
            --dark-light: #1a1a1a;
            --gray: #2a2a2a;
            --gray-light: #3a3a3a;
            --light: #ffffff;
            --light-gray: #f5f5f5;
            --text: #e0e0e0;
            --text-secondary: #aaaaaa;
            --success: #10b981;
            --warning: #f59e0b;
            --danger: #4479ef;
            --border-radius: 16px;
            --border-radius-sm: 8px;
            --border-radius-lg: 24px;
            --box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
            --box-shadow-light: 0 5px 15px rgba(0, 0, 0, 0.1);
            --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
            --transition-fast: all 0.15s ease;
            --gradient-primary: linear-gradient(135deg, var(--primary) 0%, var(--primary-light) 100%);
            --gradient-secondary: linear-gradient(135deg, var(--secondary) 0%, var(--secondary-dark) 100%);
            --gradient-dark: linear-gradient(135deg, var(--darker) 0%, var(--dark) 100%);
        }

        body {
            font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
            background: var(--dark);
            color: var(--text);
            line-height: 1.6;
            min-height: 100vh;
            overflow-x: hidden;
        }

        ::selection {
            background-color: var(--primary);
            color: white;
        }

        /* ===== LAYOUT & CONTAINERS ===== */
        .container {
            width: 100%;
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 24px;
        }

        .grid {
            display: grid;
            gap: 24px;
        }

        .grid-2 {
            grid-template-columns: repeat(2, 1fr);
        }

        .grid-3 {
            grid-template-columns: repeat(3, 1fr);
        }

        .grid-4 {
            grid-template-columns: repeat(4, 1fr);
        }

        .flex {
            display: flex;
        }

        .flex-col {
            flex-direction: column;
        }

        .items-center {
            align-items: center;
        }

        .justify-between {
            justify-content: space-between;
        }

        .justify-center {
            justify-content: center;
        }

        .gap-1 {
            gap: 0.5rem;
        }

        .gap-2 {
            gap: 1rem;
        }

        .gap-3 {
            gap: 1.5rem;
        }

        .gap-4 {
            gap: 2rem;
        }

        .gap-6 {
            gap: 3rem;
        }

        .text-center {
            text-align: center;
        }

        .text-right {
            text-align: right;
        }

        .mt-1 {
            margin-top: 0.5rem;
        }

        .mt-2 {
            margin-top: 1rem;
        }

        .mt-3 {
            margin-top: 1.5rem;
        }

        .mt-4 {
            margin-top: 2rem;
        }

        .mt-6 {
            margin-top: 3rem;
        }

        .mt-8 {
            margin-top: 4rem;
        }

        .mb-1 {
            margin-bottom: 0.5rem;
        }

        .mb-2 {
            margin-bottom: 1rem;
        }

        .mb-3 {
            margin-bottom: 1.5rem;
        }

        .mb-4 {
            margin-bottom: 2rem;
        }

        .mb-6 {
            margin-bottom: 3rem;
        }

        .p-3 {
            padding: 1.5rem;
        }

        .p-4 {
            padding: 2rem;
        }

        .p-6 {
            padding: 3rem;
        }

        .w-full {
            width: 100%;
        }

        .max-w-md {
            max-width: 28rem;
        }

        .max-w-lg {
            max-width: 32rem;
        }

        .max-w-xl {
            max-width: 36rem;
        }

        .max-w-2xl {
            max-width: 42rem;
        }

        /* ===== TYPOGRAPHY ===== */
        h1,
        h2,
        h3,
        h4,
        h5,
        h6 {
            font-weight: 700;
            line-height: 1.2;
            margin-bottom: 1rem;
        }

        h1 {
            font-size: 3.5rem;
            background: var(--gradient-primary);
            -webkit-background-clip: text;
            background-clip: text;
            color: transparent;
        }

        h2 {
            font-size: 2.5rem;
            color: var(--light);
        }

        h3 {
            font-size: 1.75rem;
            color: var(--light);
        }

        h4 {
            font-size: 1.25rem;
            color: var(--text);
        }

        .text-lg {
            font-size: 1.125rem;
        }

        .text-xl {
            font-size: 1.25rem;
        }

        .text-2xl {
            font-size: 1.5rem;
        }

        .text-sm {
            font-size: 0.875rem;
        }

        .font-bold {
            font-weight: 700;
        }

        .font-semibold {
            font-weight: 600;
        }

        .text-primary {
            color: var(--primary);
        }

        .text-secondary {
            color: var(--secondary);
        }

        .text-light {
            color: var(--light);
        }

        .text-gray {
            color: var(--text-secondary);
        }

        .lead {
            font-size: 1.25rem;
            color: var(--text-secondary);
        }

        /* ===== BUTTONS ===== */
        .btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 0.75rem;
            padding: 1rem 2rem;
            border-radius: var(--border-radius);
            font-weight: 600;
            font-size: 1rem;
            cursor: pointer;
            transition: var(--transition);
            border: none;
            outline: none;
            text-decoration: none;
            position: relative;
            overflow: hidden;
        }

        .btn::after {
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
            transition: 0.5s;
        }

        .btn:hover::after {
            left: 100%;
        }

        .btn-primary {
            background: var(--gradient-primary);
            color: white;
        }

        .btn-primary:hover {
            transform: translateY(-3px);
            box-shadow: 0 15px 30px rgba(0,136,255,0.3);
        }

        .btn-secondary {
            background: var(--gradient-secondary);
            color: white;
        }

        .btn-secondary:hover {
            transform: translateY(-3px);
            box-shadow: 0 15px 30px rgba(0, 242, 234, 0.3);
        }

        .btn-outline {
            background: transparent;
            color: var(--text);
            border: 2px solid var(--gray);
        }

        .btn-outline:hover {
            border-color: var(--primary);
            color: var(--primary);
            transform: translateY(-3px);
        }

        .btn-sm {
            padding: 0.75rem 1.5rem;
            font-size: 0.875rem;
        }

        .btn-lg {
            padding: 1.25rem 2.5rem;
            font-size: 1.125rem;
        }

        .btn-icon {
            width: 3rem;
            height: 3rem;
            padding: 0;
            border-radius: 50%;
        }

        .btn-group {
            display: flex;
            gap: 1rem;
            flex-wrap: wrap;
        }

        /* ===== CARDS ===== */
        .card {
            background: var(--dark-light);
            border-radius: var(--border-radius);
            overflow: hidden;
            transition: var(--transition);
            border: 1px solid var(--gray);
            height: 100%;
        }

        .card:hover {
            transform: translateY(-8px);
            border-color: var(--primary);
            box-shadow: var(--box-shadow);
        }

        .card-header {
            padding: 1.5rem;
            border-bottom: 1px solid var(--gray);
        }

        .card-body {
            padding: 1.5rem;
        }

        .card-footer {
            padding: 1.5rem;
            border-top: 1px solid var(--gray);
        }

        .card-icon {
            width: 4rem;
            height: 4rem;
            border-radius: var(--border-radius);
            background: var(--gradient-primary);
            display: flex;
            align-items: center;
            justify-content: center;
            margin-bottom: 1.5rem;
            font-size: 1.75rem;
            color: white;
        }

        /* ===== HEADER & NAVIGATION ===== */
        header {
            background: rgba(15, 15, 15, 0.95);
            backdrop-filter: blur(20px);
            position: sticky;
            top: 0;
            z-index: 1000;
            border-bottom: 1px solid var(--gray);
        }

        .header-content {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 1.25rem 0;
        }

        .logo {
            display: flex;
            align-items: center;
            gap: 0.75rem;
            text-decoration: none;
        }

        .logo-icon {
            width: 2.5rem;
            height: 2.5rem;
            border-radius: 12px;
            background: var(--gradient-primary);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.25rem;
            color: white;
        }

        .logo-text {
            font-size: 1.5rem;
            font-weight: 800;
            color: white;
        }

        .logo-text span {
            background: var(--gradient-primary);
            -webkit-background-clip: text;
            background-clip: text;
            color: transparent;
        }

        .nav {
            display: flex;
            gap: 0.5rem;
        }

        .nav-link {
            padding: 0.75rem 1.25rem;
            border-radius: var(--border-radius);
            text-decoration: none;
            color: var(--text);
            font-weight: 500;
            transition: var(--transition);
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        .nav-link:hover {
            background: var(--gray);
            color: var(--light);
        }

        .nav-link.active {
            background: var(--primary);
            color: white;
        }

        .mobile-menu-btn {
            display: none;
            background: none;
            border: none;
            color: var(--text);
            font-size: 1.5rem;
            cursor: pointer;
            width: 3rem;
            height: 3rem;
            border-radius: var(--border-radius-sm);
            align-items: center;
            justify-content: center;
        }

        .mobile-menu-btn:hover {
            background: var(--gray);
        }

        /* ===== MAIN CONTENT ===== */
        main {
            min-height: calc(100vh - 200px);
            padding: 3rem 0;
        }

        .page {
            display: none;
            animation: fadeIn 0.5s ease;
        }

        .page.active {
            display: block;
        }

        @keyframes fadeIn {
            from {
                opacity: 0;
                transform: translateY(20px);
            }

            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        /* ===== HERO SECTION ===== */
        .hero {
            text-align: center;
            max-width: 800px;
            margin: 0 auto 4rem;
        }

        .hero-subtitle {
            font-size: 1.25rem;
            color: var(--text-secondary);
            margin-bottom: 2rem;
        }

        .features {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
            gap: 1.5rem;
            margin-top: 4rem;
        }

        .feature {
            background: var(--dark-light);
            border-radius: var(--border-radius);
            padding: 2rem;
            text-align: center;
            border: 1px solid var(--gray);
            transition: var(--transition);
        }

        .feature:hover {
            border-color: var(--primary);
            transform: translateY(-5px);
        }

        .feature-icon {
            width: 4rem;
            height: 4rem;
            border-radius: var(--border-radius);
            background: var(--gradient-primary);
            display: flex;
            align-items: center;
            justify-content: center;
            margin: 0 auto 1.5rem;
            font-size: 1.5rem;
            color: white;
        }

        /* ===== DOWNLOAD FORM ===== */
        .download-card {
            background: var(--dark-light);
            border-radius: var(--border-radius-lg);
            padding: 3rem;
            border: 1px solid var(--gray);
            box-shadow: var(--box-shadow);
            max-width: 800px;
            margin: 0 auto;
        }

        .form-group {
            margin-bottom: 1.5rem;
        }

        .form-label {
            display: block;
            margin-bottom: 0.75rem;
            font-weight: 600;
            color: var(--light);
        }

        .input-group {
            display: flex;
            gap: 1rem;
        }

        .input-with-icon {
            position: relative;
            flex: 1;
        }

        .input-with-icon i {
            position: absolute;
            left: 1.25rem;
            top: 50%;
            transform: translateY(-50%);
            color: var(--text-secondary);
            z-index: 1;
        }

        .form-control {
            width: 100%;
            padding: 1.25rem 1.25rem 1.25rem 3.5rem;
            background: var(--darker);
            border: 2px solid var(--gray);
            border-radius: var(--border-radius);
            color: var(--text);
            font-size: 1rem;
            transition: var(--transition);
        }

        .form-control:focus {
            outline: none;
            border-color: var(--primary);
            box-shadow: 0 0 0 3px rgba(0,101,255,0.1);
        }

        /* ===== IMPROVED VIDEO PLAYER & MEDIA PREVIEW STYLES ===== */

        /* Media preview grid yang lebih fleksibel */
        .media-preview {
            display: grid;
            grid-template-columns: 1fr;
            gap: 2rem;
            margin-bottom: 2rem;
            width: 100%;
        }

        @media (min-width: 992px) {
            .media-preview {
                grid-template-columns: minmax(300px, 500px) minmax(300px, 1fr);
                align-items: start;
            }
        }

        /* Video container responsif dengan aspect ratio dinamis */
        .video-player-container {
            position: relative;
            border-radius: var(--border-radius);
            overflow: hidden;
            background: #000;
            width: 100%;
            margin: 0 auto;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
            max-width: 500px;
        }

        /* Default untuk video TikTok (portrait) */
        .video-player-container.portrait {
            aspect-ratio: 9/16;
            max-height: 70vh;
        }

        /* Untuk video 4:5 (common TikTok ratio) */
        .video-player-container.ratio-4-5 {
            aspect-ratio: 4/5;
            max-height: 70vh;
        }

        /* Untuk video landscape */
        .video-player-container.landscape {
            aspect-ratio: 16/9;
            max-height: 50vh;
        }

        /* Untuk video square */
        .video-player-container.square {
            aspect-ratio: 1/1;
            max-height: 60vh;
        }

        /* Video player yang benar-benar responsif */
        .video-player {
            width: 100%;
            height: 100%;
            object-fit: contain;
            /* Menjaga aspect ratio tanpa crop */
            display: block;
            background: #000;
        }

        /* Play overlay untuk semua rasio */
        .play-overlay {
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            display: flex;
            align-items: center;
            justify-content: center;
            background: rgba(0, 0, 0, 0.5);
            opacity: 0;
            transition: var(--transition);
            cursor: pointer;
        }

        .video-player-container:hover .play-overlay {
            opacity: 1;
        }

        /* Play button */
        .play-btn {
            width: 4rem;
            height: 4rem;
            border-radius: 50%;
            background: var(--primary);
            border: none;
            color: white;
            font-size: 1.5rem;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: var(--transition);
        }

        .play-btn:hover {
            transform: scale(1.1);
            background: var(--primary-dark);
        }

        /* Media info yang lebih konsisten */
        .media-info {
            background: var(--dark-light);
            border-radius: var(--border-radius);
            padding: 1.5rem;
            border: 1px solid var(--gray);
            height: fit-content;
            overflow: visible;
        }

        @media (max-width: 991px) {
            .media-info {
                order: 2;
            }

            .video-player-container {
                order: 1;
                max-width: 100%;
            }
        }

        /* Info item yang lebih rapi */
        .info-item {
            display: flex;
            align-items: flex-start;
            gap: 1rem;
            padding: 0.75rem 0;
            border-bottom: 1px solid var(--gray);
        }

        .info-item:last-child {
            border-bottom: none;
        }

        .info-icon {
            width: 2.5rem;
            height: 2.5rem;
            border-radius: var(--border-radius-sm);
            background: var(--gradient-primary);
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-size: 1rem;
            flex-shrink: 0;
            margin-top: 0.25rem;
        }

        .info-content {
            flex: 1;
            min-width: 0;
            /* Mencegah overflow */
        }

        .info-content .text-sm {
            display: block;
            margin-bottom: 0.25rem;
            color: var(--text-secondary);
        }

        .info-content .font-semibold {
            display: block;
            word-break: break-word;
            line-height: 1.4;
        }

        /* Download options yang lebih baik */
        .download-options {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 1rem;
            margin-top: 2rem;
        }

        @media (max-width: 768px) {
            .download-options {
                grid-template-columns: 1fr;
            }
        }

        .download-options .btn {
            width: 100%;
            justify-content: center;
            padding: 1rem;
        }

        /* Responsive adjustments */
        @media (max-width: 480px) {

            .video-player-container.portrait,
            .video-player-container.ratio-4-5 {
                max-height: 60vh;
            }

            .video-player-container.landscape {
                max-height: 40vh;
            }

            .video-player-container.square {
                max-height: 50vh;
            }

            .media-info {
                padding: 1.25rem;
            }

            .info-item {
                padding: 0.5rem 0;
            }

            .info-icon {
                width: 2rem;
                height: 2rem;
                font-size: 0.875rem;
            }
        }

        @media (min-width: 1400px) {
            .media-preview {
                grid-template-columns: minmax(400px, 600px) minmax(400px, 1fr);
            }
        }

        /* Fallback untuk browser yang tidak support aspect-ratio */
        @supports not (aspect-ratio: 9/16) {
            .video-player-container {
                position: relative;
                padding-bottom: 56.25%;
                /* Default 16:9 */
            }

            .video-player-container.portrait {
                padding-bottom: 177.78%;
                /* 9:16 = 56.25% */
            }

            .video-player-container.ratio-4-5 {
                padding-bottom: 125%;
                /* 4:5 = 80% */
            }

            .video-player-container.square {
                padding-bottom: 100%;
                /* 1:1 */
            }

            .video-player {
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
            }
        }

        /* ===== RESULT SECTION ===== */
        .result-container {
            display: none;
            margin-top: 3rem;
            animation: slideUp 0.5s ease;
        }

        .result-container.active {
            display: block;
        }

        @keyframes slideUp {
            from {
                opacity: 0;
                transform: translateY(30px);
            }

            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        /* ===== ABOUT PAGE ===== */
        .content-card {
            background: var(--dark-light);
            border-radius: var(--border-radius);
            padding: 3rem;
            border: 1px solid var(--gray);
        }

        .api-card {
            background: var(--darker);
            border-radius: var(--border-radius);
            padding: 2rem;
            border-left: 4px solid var(--primary);
            margin: 2rem 0;
        }

        .code-block {
            background: var(--darker);
            border-radius: var(--border-radius-sm);
            padding: 1.5rem;
            font-family: 'Courier New', monospace;
            overflow-x: auto;
            margin: 1.5rem 0;
            border: 1px solid var(--gray);
        }

        /* ===== DONATION PAGE ===== */
        .donation-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
            gap: 2rem;
            margin-top: 3rem;
        }

        .donation-card {
            text-align: center;
            padding: 2.5rem;
            border: 2px solid transparent;
            transition: var(--transition);
        }

        .donation-card:hover {
            border-color: var(--primary);
            transform: translateY(-5px);
        }

        .donation-icon {
            width: 5rem;
            height: 5rem;
            border-radius: 50%;
            background: var(--gradient-primary);
            display: flex;
            align-items: center;
            justify-content: center;
            margin: 0 auto 1.5rem;
            font-size: 2rem;
            color: white;
        }


        /* ===== STATISTICS PAGE ===== */
        .stats-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
            gap: 1.5rem;
            margin-bottom: 3rem;
        }

        .stat-card {
            text-align: center;
            padding: 2rem;
            position: relative;
            overflow: hidden;
        }

        .stat-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 4px;
            background: var(--gradient-primary);
        }

        .stat-number {
            font-size: 3rem;
            font-weight: 800;
            background: var(--gradient-primary);
            -webkit-background-clip: text;
            background-clip: text;
            color: transparent;
            line-height: 1;
            margin: 1rem 0;
        }

        .charts-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
            gap: 2rem;
            margin-top: 3rem;
        }

        .chart-container {
            background: var(--dark-light);
            border-radius: var(--border-radius);
            padding: 2rem;
            border: 1px solid var(--gray);
            overflow: hidden;
            /* Prevent horizontal overflow */
        }

        .chart-container h3 {
            margin-bottom: 1rem;
            font-size: 1.125rem;
            /* Smaller title on mobile */
        }

        .chart-container canvas {
            max-width: 100% !important;
            height: auto !important;
            /* Ensure canvas doesn't overflow */
        }

        /* Mobile-specific chart styles */
        @media (max-width: 768px) {
            .charts-grid {
                grid-template-columns: 1fr;
                gap: 1.5rem;
                margin-top: 2rem;
            }

            .chart-container {
                padding: 1.5rem;
            }

            .chart-container h3 {
                font-size: 1rem;
                margin-bottom: 0.75rem;
            }

            /* Reduce chart height on mobile */
            .chart-container>div {
                height: 250px !important;
            }
        }

        @media (max-width: 480px) {
            .charts-grid {
                grid-template-columns: 1fr;
                gap: 1rem;
                margin-top: 1.5rem;
            }

            .chart-container {
                padding: 1rem;
            }

            .chart-container h3 {
                font-size: 0.875rem;
                margin-bottom: 0.5rem;
            }

            /* Even smaller chart height on very small screens */
            .chart-container>div {
                height: 200px !important;
            }

            .stat-number {
                font-size: 2rem;
            }

            .stat-card {
                padding: 1.5rem;
            }
        }


        /* ===== DOCUMENTATION PAGE STYLES ===== */
        .endpoint-list {
            margin-top: 2rem;
        }

        /* Unique styling for JavaScript and Python example containers */
        .js-code-example {
            background: linear-gradient(135deg, rgba(255, 0, 80, 0.05) 0%, rgba(255, 0, 80, 0.02) 100%);
            border: 1px solid rgba(255, 0, 80, 0.1);
            border-radius: var(--border-radius);
            padding: 1.5rem;
            margin-bottom: 1.5rem;
            position: relative;
            overflow: hidden;
        }

        .js-code-example::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 3px;
            background: var(--gradient-primary);
        }

        .python-code-example {
            background: linear-gradient(135deg, rgba(0, 242, 234, 0.05) 0%, rgba(0, 242, 234, 0.02) 100%);
            border: 1px solid rgba(0, 242, 234, 0.1);
            border-radius: var(--border-radius);
            padding: 1.5rem;
            margin-bottom: 1.5rem;
            position: relative;
            overflow: hidden;
        }

        .python-code-example::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 3px;
            background: var(--gradient-secondary);
        }

        /* Desktop styling for unique containers */
        @media (min-width: 769px) {

            .js-code-example h4,
            .python-code-example h4 {
                margin-bottom: 1rem;
            }

            .js-code-example .code-block-container,
            .python-code-example .code-block-container {
                margin: 0;
            }
        }

        .endpoint-item {
            background: var(--dark-light);
            border-radius: var(--border-radius);
            padding: 1.5rem;
            margin-bottom: 1.5rem;
            border: 1px solid var(--gray);
            overflow: hidden;
        }

        .endpoint-header {
            display: flex;
            flex-direction: column;
            gap: 1rem;
            margin-bottom: 1.5rem;
        }

        @media (min-width: 768px) {
            .endpoint-header {
                flex-direction: row;
                align-items: center;
            }
        }

        .endpoint-method {
            padding: 0.5rem 1rem;
            border-radius: var(--border-radius-sm);
            font-weight: 600;
            font-size: 0.875rem;
            background: var(--primary);
            color: white;
            width: fit-content;
            display: inline-block;
        }

        .endpoint-url {
            font-family: monospace;
            background: var(--darker);
            padding: 0.75rem 1rem;
            border-radius: var(--border-radius-sm);
            color: var(--secondary);
            word-break: break-all;
            overflow-wrap: break-word;
            font-size: 0.875rem;
            line-height: 1.4;
        }

        @media (min-width: 768px) {
            .endpoint-url {
                font-size: 1rem;
                flex: 1;
                word-break: normal;
                overflow-x: auto;
                white-space: nowrap;
            }
        }


        /* Fix untuk tabel documentation - Enhanced Mobile Support */
        .param-table-container {
            width: 100%;
            overflow-x: auto;
            margin: 1.5rem 0;
            -webkit-overflow-scrolling: touch;
            border: 1px solid var(--gray);
            border-radius: var(--border-radius-sm);
            position: relative;
            background: var(--dark-light);
        }

        /* Visual indicator for scrollable content */
        .param-table-container::after {
            content: '';
            position: absolute;
            right: 0;
            top: 0;
            bottom: 0;
            width: 20px;
            background: linear-gradient(to left, var(--dark-light), transparent);
            pointer-events: none;
            opacity: 0;
            transition: opacity 0.3s ease;
        }

        .param-table-container.scrollable::after {
            opacity: 1;
        }

        .param-table {
            width: 100%;
            min-width: 600px;
            border-collapse: collapse;
            font-size: 0.875rem;
        }

        @media (max-width: 768px) {
            .param-table {
                min-width: 500px;
                font-size: 0.8125rem;
            }
        }

        @media (max-width: 480px) {
            .param-table {
                min-width: 450px;
                font-size: 0.75rem;
            }
        }

        .param-table th,
        .param-table td {
            padding: 0.875rem;
            text-align: left;
            border-bottom: 1px solid var(--gray);
            vertical-align: top;
            word-wrap: break-word;
            overflow-wrap: break-word;
        }

        @media (max-width: 768px) {

            .param-table th,
            .param-table td {
                padding: 0.625rem;
            }
        }

        @media (max-width: 480px) {

            .param-table th,
            .param-table td {
                padding: 0.5rem;
            }
        }

        .param-table th {
            background: var(--darker);
            font-weight: 600;
            color: var(--light);
            white-space: nowrap;
            position: sticky;
            left: 0;
            z-index: 10;
            box-shadow: 2px 0 0 var(--gray);
        }

        .param-table td {
            color: var(--text-secondary);
            line-height: 1.5;
        }

        .param-table td:first-child {
            font-family: 'Courier New', monospace;
            color: var(--secondary);
            background: rgba(0, 242, 234, 0.05);
            font-weight: 600;
            white-space: nowrap;
        }

        .param-table .param-description {
            max-width: 300px;
            word-break: break-word;
        }

        @media (max-width: 768px) {
            .param-table .param-description {
                max-width: 200px;
            }
        }

        /* Scrollbar styling untuk tabel */
        .param-table-container::-webkit-scrollbar {
            height: 8px;
        }

        .param-table-container::-webkit-scrollbar-track {
            background: var(--darker);
            border-radius: 4px;
        }

        .param-table-container::-webkit-scrollbar-thumb {
            background: var(--primary);
            border-radius: 4px;
        }

        .param-table-container::-webkit-scrollbar-thumb:hover {
            background: var(--primary-dark);
        }


        /* Code block improvements with copy button */
        .code-block-container {
            position: relative;
            margin: 1.5rem 0;
            border-radius: var(--border-radius-sm);
            overflow: hidden;
            border: 1px solid var(--gray);
            background: var(--dark-light);
        }

        .code-block-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 0.75rem 1rem;
            background: var(--darker);
            border-bottom: 1px solid var(--gray);
            font-size: 0.75rem;
            color: var(--text-secondary);
        }

        .code-language {
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.05em;
        }

        .copy-btn {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            padding: 0.375rem 0.75rem;
            background: var(--primary);
            color: white;
            border: none;
            border-radius: var(--border-radius-sm);
            font-size: 0.75rem;
            font-weight: 600;
            cursor: pointer;
            transition: var(--transition);
            font-family: inherit;
        }

        .copy-btn:hover {
            background: var(--primary-dark);
            transform: translateY(-1px);
        }

        .copy-btn:active {
            transform: translateY(0);
        }

        .copy-btn.copied {
            background: var(--success);
        }

        .copy-btn i {
            font-size: 0.625rem;
        }


        .code-block {
            background: var(--darker);
            padding: 1rem;
            font-family: 'Courier New', monospace;

            overflow-x: auto;
            font-size: 0.8125rem;
            line-height: 1.5;
            -webkit-overflow-scrolling: touch;
            max-width: 100%;
            /* Limit maximum width */
            max-height: 400px;
            /* Prevent overly tall blocks */
            overflow-y: auto;
            position: relative;
            /* Ensure code blocks don't exceed container width */
            word-break: break-word;
            overflow-wrap: break-word;
        }





        /* Special handling for JavaScript and Python code examples */
        .example-grid .code-block,
        .js-code-example .code-block,
        .python-code-example .code-block {
            max-width: 100%;
            overflow-x: auto;
            /* Add horizontal scroll for long lines */
            white-space: pre-wrap;
            /* Allow wrapping while preserving formatting */
            word-break: break-word;
            /* Break long words and URLs */
            min-width: 0;
            /* Allow shrinking below content width */
            width: 100%;
            box-sizing: border-box;
            /* Better mobile scrolling */
            -webkit-overflow-scrolling: touch;
            /* Prevent horizontal overflow */
            max-height: 400px;
            overflow-y: auto;
        }



        /* Force horizontal scroll for mobile on JS/Python examples */
        @media (max-width: 768px) {

            .example-grid .code-block,
            .js-code-example .code-block,
            .python-code-example .code-block {
                font-size: 0.75rem;
                padding: 0.75rem;
                max-height: 300px;
                /* Ensure horizontal scroll on mobile */
                overflow-x: auto;
                overflow-y: auto;
                /* Critical: Prevent width overflow */
                max-width: 100%;
                width: 100%;
                box-sizing: border-box;
                /* Better text wrapping for mobile */
                white-space: pre-wrap;
                word-break: break-word;
                /* Improve mobile scrolling */
                -webkit-overflow-scrolling: touch;
            }

            /* Ensure example grid containers don't overflow */
            .example-grid {
                width: 100%;
                overflow-x: hidden;
                /* Better grid layout on mobile */
                display: block;
            }

            .example-grid>div {
                width: 100%;
                max-width: 100%;
                overflow-x: hidden;
                margin-bottom: 1.5rem;
                /* Stack vertically on mobile */
                display: block;
            }

            /* Unique styles for JS and Python examples */
            .js-code-example,
            .python-code-example {
                width: 100%;
                max-width: 100%;
                overflow-x: hidden;
                margin-bottom: 1.5rem;
            }


            /* Mobile-specific text wrapping for long URLs */
            .js-code-example .code-block code,
            .python-code-example .code-block code {
                word-break: break-all;
                overflow-wrap: break-word;
                line-height: 1.4;
            }



            /* Better text wrapping for long lines on mobile */
            .js-code-example .code-block,
            .python-code-example .code-block {
                /* Force text to wrap while preserving indentation */
                white-space: pre-wrap;
                word-break: break-word;
                overflow-wrap: break-word;
                /* Ensure long URLs don't cause horizontal overflow */
                max-width: 100%;
                /* Better spacing for mobile */
                padding: 1rem;
                font-size: 0.75rem;
            }

            /* Stack code examples vertically on very small screens */
            @media (max-width: 480px) {

                .js-code-example,
                .python-code-example {
                    margin-bottom: 2rem;
                }

                .js-code-example .code-block,
                .python-code-example .code-block {
                    padding: 0.75rem;
                    font-size: 0.6875rem;
                    line-height: 1.3;
                }
            }

            /* Mobile responsive adjustments for unique containers */
            @media (max-width: 768px) {

                .js-code-example,
                .python-code-example {
                    padding: 1rem;
                    margin-bottom: 1rem;
                }

                .js-code-example h4,
                .python-code-example h4 {
                    font-size: 1rem;
                    margin-bottom: 0.75rem;
                }

                .js-code-example .code-block-container,
                .python-code-example .code-block-container {
                    margin: 0;
                }
            }

            /* Very small mobile screens */
            @media (max-width: 480px) {

                .js-code-example,
                .python-code-example {
                    padding: 0.75rem;
                }

                .js-code-example h4,
                .python-code-example h4 {
                    font-size: 0.875rem;
                    margin-bottom: 0.5rem;
                }
            }
        }


        /* Extra small mobile screens */

        .code-block::before {
            content: '';
            position: absolute;
            top: 0;
            right: 0;
            width: 20px;
            height: 100%;
            background: linear-gradient(to left, var(--darker), transparent);
            pointer-events: none;
            opacity: 0;
            transition: opacity 0.3s ease;
        }

        .code-block-container.scrollable .code-block::before {
            opacity: 1;
        }

        @media (min-width: 768px) {
            .code-block {
                font-size: 0.875rem;
                padding: 1.5rem;
                max-height: 500px;

            }

            .code-block-header {
                padding: 1rem 1.5rem;
                font-size: 0.875rem;
            }

            .copy-btn {
                padding: 0.5rem 1rem;
                font-size: 0.875rem;
            }
        }

        /* Ensure code blocks are contained properly */
        .code-wrapper {
            position: relative;
            background: var(--dark-light);
            border-radius: var(--border-radius-sm);
            overflow: hidden;
        }

        /* Scrollbar styling for code blocks */
        .code-block::-webkit-scrollbar {
            height: 8px;
            width: 8px;
        }

        .code-block::-webkit-scrollbar-track {
            background: var(--gray);
            border-radius: 4px;
        }

        .code-block::-webkit-scrollbar-thumb {
            background: var(--primary);
            border-radius: 4px;
        }

        .code-block::-webkit-scrollbar-thumb:hover {
            background: var(--primary-dark);
        }

        /* Improved example usage section for mobile */
        .example-grid {
            display: grid;
            grid-template-columns: 1fr;
            gap: 1.5rem;
            margin-top: 2rem;
        }

        @media (min-width: 768px) {
            .example-grid {
                grid-template-columns: 1fr 1fr;
            }
        }

        .example-card {
            background: var(--dark-light);
            border-radius: var(--border-radius);
            padding: 1.5rem;
            border: 1px solid var(--gray);
        }

        .example-card h4 {
            margin-bottom: 1rem;
            color: var(--primary);
            font-size: 1rem;
        }

        @media (min-width: 768px) {
            .example-card h4 {
                font-size: 1.125rem;
            }
        }

        /* Mobile optimization for documentation page */
        .documentation-section {
            padding: 1rem;
        }

        @media (min-width: 768px) {
            .documentation-section {
                padding: 2rem;
            }
        }




        /* Improved mobile readability */
        .endpoint-desc {
            font-size: 0.9375rem;
            line-height: 1.6;
            color: var(--text-secondary);
            margin-bottom: 1rem;
        }

        @media (min-width: 768px) {
            .endpoint-desc {
                font-size: 1rem;
            }
        }

        /* API endpoint styling */
        .api-endpoint {
            display: flex;
            flex-direction: column;
            gap: 0.5rem;
            margin-bottom: 1rem;
        }

        @media (min-width: 640px) {
            .api-endpoint {
                flex-direction: row;
                align-items: center;
            }
        }

        .api-method {
            min-width: 80px;
            text-align: center;
        }

        .api-path {
            flex: 1;
            min-width: 0;
        }

        /* Improve overall spacing in documentation */
        .endpoint-section {
            margin-bottom: 2rem;
        }

        .endpoint-section:last-child {
            margin-bottom: 0;
        }

        .endpoint-title {
            font-size: 1.25rem;
            color: var(--light);
            margin-bottom: 1rem;
            padding-bottom: 0.5rem;
            border-bottom: 2px solid var(--primary);
        }

        @media (min-width: 768px) {
            .endpoint-title {
                font-size: 1.5rem;
            }
        }

        /* Response examples */
        .response-example {
            margin-top: 1.5rem;
        }

        .response-title {
            font-size: 1rem;
            color: var(--primary);
            margin-bottom: 0.5rem;
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        /* Parameter descriptions */
        .param-description {
            font-size: 0.875rem;
            color: var(--text-secondary);
            margin-top: 0.25rem;
        }

        .param-required {
            color: var(--danger);
            font-weight: 600;
        }

        .param-optional {
            color: var(--warning);
            font-weight: 600;
        }

        /* Fix untuk very long URLs */
        .url-break {
            word-break: break-word;
            overflow-wrap: anywhere;
        }

        /* Mobile-specific improvements */
        @media (max-width: 767px) {
            .documentation-section .content-card {
                padding: 1rem;
            }

            .endpoint-item {
                padding: 1rem;
                margin-bottom: 1rem;
            }

            .param-table th,
            .param-table td {
                padding: 0.5rem;
                font-size: 0.75rem;
            }

            .code-block {
                padding: 0.75rem;
                font-size: 0.75rem;
            }

            .example-card {
                padding: 1rem;
            }

            .example-card h4 {
                font-size: 0.875rem;
            }
        }

        /* Ensure tables don't break layout on very small screens */
        @media (max-width: 480px) {
            .endpoint-url {
                font-size: 0.75rem;
                padding: 0.5rem;
            }

            .param-table {
                min-width: 500px;
            }

            .code-block {
                font-size: 0.6875rem;
            }
        }

        /* ===== LOADING & ERROR STATES ===== */
        .loading {
            display: none;
            text-align: center;
            padding: 3rem;
        }

        .loading.active {
            display: block;
        }

        .spinner {
            width: 4rem;
            height: 4rem;
            border: 4px solid var(--gray);
            border-top: 4px solid var(--primary);
            border-radius: 50%;
            animation: spin 1s linear infinite;
            margin: 0 auto 1.5rem;
        }

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

            100% {
                transform: rotate(360deg);
            }
        }

        .error-alert {
            display: none;
            background: rgba(239, 68, 68, 0.1);
            border: 1px solid var(--danger);
            border-radius: var(--border-radius);
            padding: 1.5rem;
            margin: 1.5rem 0;
            align-items: center;
            gap: 1rem;
        }

        .error-alert.active {
            display: flex;
            animation: shake 0.5s;
        }

        @keyframes shake {

            0%,
            100% {
                transform: translateX(0);
            }

            10%,
            30%,
            50%,
            70%,
            90% {
                transform: translateX(-5px);
            }

            20%,
            40%,
            60%,
            80% {
                transform: translateX(5px);
            }
        }

        .error-icon {
            width: 3rem;
            height: 3rem;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-size: 1.25rem;
            flex-shrink: 0;
        }

        /* Fix untuk image container */
        .image-container {
            width: 100%;
            max-width: 500px;
            border-radius: var(--border-radius);
            overflow: hidden;
            margin: 0 auto;
            background: #000;
        }

        .image-container .video-player {
            width: 100%;
            height: auto;
            display: block;
        }

        /* Loading state improvements */
        .loading {
            padding: 2rem;
            background: var(--dark-light);
            border-radius: var(--border-radius);
            border: 1px solid var(--gray);
        }

        .loading p {
            margin-top: 1rem;
            color: var(--text-secondary);
        }

        /* Error alert improvements */
        .error-alert {
            padding: 1.5rem;
            background: rgba(239, 68, 68, 0.1);
            border: 1px solid var(--danger);
            border-radius: var(--border-radius);
            margin: 1.5rem 0;
        }

        .error-alert .error-icon {
            margin-right: 1rem;
            flex-shrink: 0;
        }

        .error-alert div {
            flex: 1;
        }

        /* ===== FOOTER ===== */
        footer {
            background: var(--darker);
            border-top: 1px solid var(--gray);
            padding: 3rem 0 2rem;
            margin-top: 4rem;
        }

        .footer-content {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
            gap: 3rem;
            margin-bottom: 2rem;
        }

        .footer-logo {
            display: flex;
            align-items: center;
            gap: 0.75rem;
            margin-bottom: 1.5rem;
        }

        .footer-description {
            color: var(--text-secondary);
            line-height: 1.7;
        }

        .footer-links h4 {
            margin-bottom: 1.5rem;
            color: var(--light);
        }

        .footer-links ul {
            list-style: none;
        }

        .footer-links li {
            margin-bottom: 0.75rem;
        }

        .footer-links a {
            color: var(--text-secondary);
            text-decoration: none;
            transition: var(--transition);
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        .footer-links a:hover {
            color: var(--primary);
            transform: translateX(5px);
        }

        .social-links {
            display: flex;
            gap: 1rem;
            margin-top: 1.5rem;
        }

        .social-link {
            width: 2.5rem;
            height: 2.5rem;
            border-radius: 50%;
            background: var(--gray);
            display: flex;
            align-items: center;
            justify-content: center;
            color: var(--text);
            text-decoration: none;
            transition: var(--transition);
        }

        .social-link:hover {
            background: var(--primary);
            color: white;
            transform: translateY(-3px);
        }

        .footer-bottom {
            border-top: 1px solid var(--gray);
            padding-top: 2rem;
            text-align: center;
            color: var(--text-secondary);
            font-size: 0.875rem;
        }

        /* ===== RESPONSIVE DESIGN ===== */
        @media (max-width: 992px) {
            h1 {
                font-size: 2.75rem;
            }

            h2 {
                font-size: 2rem;
            }

            .grid-2,
            .grid-3,
            .grid-4 {
                grid-template-columns: 1fr;
            }

            .download-card {
                padding: 2rem;
            }

            .content-card {
                padding: 2rem;
            }
        }


        @media (max-width: 768px) {
            h1 {
                font-size: 2.25rem;
            }

            h2 {
                font-size: 1.75rem;
            }

            .header-content {
                flex-wrap: wrap;
                gap: 1rem;
            }

            /* Improved mobile navigation */
            .mobile-menu-btn {
                display: flex;
                width: 44px;
                height: 44px;
                touch-action: manipulation;
            }

            .nav {
                position: fixed;
                top: 80px;
                left: 0;
                right: 0;
                background: var(--dark-light);
                border: 1px solid var(--gray);
                border-radius: var(--border-radius);
                margin: 0 16px;
                padding: 1rem;
                flex-direction: column;
                display: none;
                z-index: 999;
                box-shadow: var(--box-shadow);
                max-height: calc(100vh - 100px);
                overflow-y: auto;
            }

            .nav.active {
                display: flex;
            }

            .nav-link {
                padding: 1rem;
                min-height: 44px;
                border-radius: var(--border-radius-sm);
                touch-action: manipulation;
            }

            /* Improved mobile form */
            .input-group {
                flex-direction: column;
                gap: 0.75rem;
            }

            .btn {
                width: 100%;
                min-height: 44px;
                padding: 0.875rem 1.5rem;
                font-size: 0.95rem;
                touch-action: manipulation;
            }

            /* Mobile download options */
            .download-options {
                grid-template-columns: 1fr;
                gap: 0.75rem;
            }

            .download-options .btn {
                min-height: 48px;
                padding: 1rem;
            }

            /* Mobile charts */
            .charts-grid {
                grid-template-columns: 1fr;
                gap: 1rem;
            }

            /* Mobile download card */
            .download-card {
                padding: 1.5rem;
                margin: 0 -8px;
            }

            /* Mobile form control */
            .form-control {
                padding: 1rem 1rem 1rem 3rem;
                font-size: 16px;
                /* Prevents zoom on iOS */
                border-radius: var(--border-radius-sm);
            }

            /* Mobile feature cards */
            .features {
                grid-template-columns: 1fr;
                gap: 1rem;
            }

            .feature {
                padding: 1.5rem;
            }

            .feature-icon {
                width: 3.5rem;
                height: 3.5rem;
            }

            /* Mobile video container */
            .video-player-container {
                max-width: 100%;
                border-radius: var(--border-radius-sm);
            }

            .video-player-container.portrait,
            .video-player-container.ratio-4-5 {
                max-height: 50vh;
            }

            .video-player-container.landscape {
                max-height: 35vh;
            }

            .video-player-container.square {
                max-height: 45vh;
            }

            /* Mobile media info */
            .media-info {
                padding: 1rem;
                border-radius: var(--border-radius-sm);
            }

            .info-item {
                padding: 0.75rem 0;
            }

            .info-icon {
                width: 2.25rem;
                height: 2.25rem;
                font-size: 0.875rem;
            }

            /* Mobile chart container */
            .chart-container {
                padding: 1rem;
                border-radius: var(--border-radius-sm);
            }

            .chart-container>div {
                height: 220px !important;
            }

            /* Mobile stat cards */
            .stat-card {
                padding: 1.25rem;
            }

            .stat-number {
                font-size: 2rem;
            }

            /* Mobile content cards */
            .content-card {
                padding: 1.5rem;
                margin: 0 -8px;
            }

            /* Mobile donation cards */
            .donation-grid {
                grid-template-columns: 1fr;
                gap: 1rem;
            }

            .donation-card {
                padding: 1.5rem;
            }

            .donation-icon {
                width: 4rem;
                height: 4rem;
                font-size: 1.5rem;
            }

            /* Mobile footer */
            .footer-content {
                grid-template-columns: 1fr;
                gap: 2rem;
            }

            .social-links {
                justify-content: center;
            }
        }

        @media (max-width: 480px) {

            /* Extra small mobile optimizations */
            h1 {
                font-size: 2rem;
                line-height: 1.1;
            }

            .download-card,
            .content-card {
                padding: 1rem;
                margin: 0 -4px;
            }

            .btn {
                padding: 0.75rem 1rem;
                font-size: 0.9rem;
            }

            .form-control {
                padding: 0.875rem 0.875rem 0.875rem 2.75rem;
            }

            .video-player-container.portrait,
            .video-player-container.ratio-4-5 {
                max-height: 45vh;
            }

            .video-player-container.landscape {
                max-height: 30vh;
            }

            .video-player-container.square {
                max-height: 40vh;
            }

            .media-info {
                padding: 0.75rem;
            }

            .info-item {
                padding: 0.5rem 0;
            }

            .chart-container>div {
                height: 180px !important;
            }

            .stat-number {
                font-size: 1.75rem;
            }

            .features {
                gap: 0.75rem;
            }

            .feature {
                padding: 1rem;
            }

            .feature-icon {
                width: 3rem;
                height: 3rem;
                font-size: 1.25rem;
            }

            /* Touch target improvements */
            .btn,
            .nav-link,
            .mobile-menu-btn,
            .form-control {
                min-height: 44px;
            }
        }




        /* ===== UTILITY CLASSES ===== */
        .rounded {
            border-radius: var(--border-radius);
        }

        .rounded-lg {
            border-radius: var(--border-radius-lg);
        }

        .shadow {
            box-shadow: var(--box-shadow);
        }

        .shadow-light {
            box-shadow: var(--box-shadow-light);
        }

        .bg-dark {
            background: var(--dark);
        }

        .bg-dark-light {
            background: var(--dark-light);
        }

        .bg-darker {
            background: var(--darker);
        }

        .bg-gradient-primary {
            background: var(--gradient-primary);
        }

        .bg-gradient-dark {
            background: var(--gradient-dark);
        }

        .border {
            border: 1px solid var(--gray);
        }

        .border-t {
            border-top: 1px solid var(--gray);
        }

        .border-b {
            border-bottom: 1px solid var(--gray);
        }

        .opacity-50 {
            opacity: 0.5;
        }

        .opacity-75 {
            opacity: 0.75;
        }

        .cursor-pointer {
            cursor: pointer;
        }

        .transition {
            transition: var(--transition);
        }

        .transition-fast {
            transition: var(--transition-fast);
        }


        .animate-pulse {
            animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
        }

        @keyframes pulse {

            0%,
            100% {
                opacity: 1;
            }

            50% {
                opacity: 0.5;
            }
        }

        /* ===== DOWNLOAD LOADING STATES ===== */
        .download-btn-loading {
            position: relative;
            pointer-events: none;
            opacity: 0.7;
        }

        .download-btn-loading::after {
            content: '';
            position: absolute;
            width: 16px;
            height: 16px;
            margin: auto;
            border: 2px solid transparent;
            border-top-color: #ffffff;
            border-radius: 50%;
            animation: spin 1s linear infinite;
        }

        .download-btn-loading .btn-text {
            visibility: hidden;
        }

        /* Loading indicator untuk individual download buttons */
        .download-item-loading {
            position: relative;
            pointer-events: none;
            opacity: 0.6;
        }

        .download-item-loading::before {
            content: '';
            position: absolute;
            width: 16px;
            height: 16px;
            top: 50%;
            left: 50%;
            margin-left: -8px;
            margin-top: -8px;
            border: 2px solid transparent;
            border-top-color: currentColor;
            border-radius: 50%;
            animation: spin 1s linear infinite;
            z-index: 1;
        }

        .download-item-loading .btn-text {
            visibility: hidden;
        }

        /* Progress bar untuk download */
        .download-progress {
            width: 100%;
            height: 4px;
            background: var(--gray);
            border-radius: 2px;
            overflow: hidden;
            margin: 1rem 0;
            display: none;
        }

        .download-progress.active {
            display: block;
        }

        .download-progress-bar {
            height: 100%;
            background: var(--gradient-primary);
            width: 0%;
            transition: width 0.3s ease;
        }