 
       /* --- ROOT VARIABLES --- */
        :root {
            --primary-bg: #f8f9fa;
            --card-bg: #ffffff;
            --text-main: #333333;
            --text-sub: #888888;
            --brand-color: #001f3f;
            --accent-color: #d4af37;
            --header-text: #ffffff;
            --shadow-soft: 0 5px 20px rgba(0,0,0,0.05);
            --shadow-hard: 0 4px 10px rgba(0,0,0,0.15);
            --gradient-main: linear-gradient(135deg, #001f3f 0%, #004080 100%);
            --card-radius: 15px;
            --orange-btn: #ff4500;
            --gold-gradient: linear-gradient(135deg, #d4af37 0%, #f6e07b 50%, #d4af37 100%);
            --luxury-shadow: 0 10px 30px -5px rgba(0, 31, 63, 0.2);
        }

        /* --- TEMA WARNA (REVISI TUGAS 4 & TUGAS BARU NO. 2) --- */
        
        /* 1. Ungu */
        body.theme-purple { --brand-color: #6a1b9a; --accent-color: #e1bee7; --gradient-main: linear-gradient(135deg, #6a1b9a 0%, #8e24aa 100%); }
        /* 2. Hijau Cerah */
        body.theme-green { --brand-color: #00c853; --accent-color: #b9f6ca; --gradient-main: linear-gradient(135deg, #00c853 0%, #69f0ae 100%); }
        /* 3. Biru Cerah Agak Tua */
        body.theme-blue { --brand-color: #0277bd; --accent-color: #81d4fa; --gradient-main: linear-gradient(135deg, #0277bd 0%, #039be5 100%); }
        /* 4. Gold */
        body.theme-gold { --brand-color: #ff8f00; --accent-color: #ffecb3; --gradient-main: linear-gradient(135deg, #ff8f00 0%, #ffc107 100%); }
        /* 5. Pink */
        body.theme-pink { --brand-color: #e91e63; --accent-color: #f8bbd0; --gradient-main: linear-gradient(135deg, #e91e63 0%, #f48fb1 100%); }
        /* 6. Hitam Gradasi Light */
        body.theme-black { --brand-color: #212121; --accent-color: #757575; --gradient-main: linear-gradient(135deg, #212121 0%, #616161 100%); }

        /* --- 6 TEMA TAMBAHAN BARU (MEWAH & PEKAT) --- */
        /* 7. Crimson Red (Pekat Mewah) */
        body.theme-crimson { --brand-color: #880e4f; --accent-color: #ff5252; --gradient-main: linear-gradient(135deg, #880e4f 0%, #c62828 100%); }
        /* 8. Royal Teal (Elegan Cerah) */
        body.theme-teal { --brand-color: #004d40; --accent-color: #64ffda; --gradient-main: linear-gradient(135deg, #004d40 0%, #009688 100%); }
        /* 9. Midnight Violet (Pekat Misterius) */
        body.theme-violet { --brand-color: #311b92; --accent-color: #b388ff; --gradient-main: linear-gradient(135deg, #311b92 0%, #673ab7 100%); }
        /* 10. Sunset Luxury (Cerah Mewah) */
        body.theme-sunset-lux { --brand-color: #bf360c; --accent-color: #ffab91; --gradient-main: linear-gradient(135deg, #bf360c 0%, #e64a19 100%); }
        /* 11. Deep Ocean (Pekat Tenang) */
        body.theme-deep-ocean { --brand-color: #1a237e; --accent-color: #536dfe; --gradient-main: linear-gradient(135deg, #1a237e 0%, #304ffe 100%); }
        /* 12. Elegant Brown (Klasik Mewah) */
        body.theme-brown-gold { --brand-color: #3e2723; --accent-color: #d7ccc8; --gradient-main: linear-gradient(135deg, #3e2723 0%, #5d4037 100%); }


        /* Default fallback (Ungu) */
        body {
            background: var(--primary-bg);
            margin-bottom: 100px; /* Space for Navbar */
            overflow-x: hidden;
            font-family: 'Poppins', sans-serif;
            color: var(--text-main);
            transition: background 0.3s ease;
            /* Prevent horizontal scroll */
            width: 100%;
            max-width: 100%;
        }

        /* FIX BUG PERINGATAN (Z-INDEX SWEETALERT) */
        .swal-overlay {
            z-index: 99999 !important; /* Agar muncul di atas halaman Full Screen */
        }

       /* --- AWAL EDIT CSS PROTEKSI GAMBAR --- */
        /* --- UTILITIES --- */
        .app-page {
            display: none;
            width: 100%;
            min-height: 100vh;
            background-color: var(--primary-bg);
            padding-bottom: 90px;
        }

        /* CLASS ANTI MALING GAMBAR (PWA/HP/PC) */
        .img-protected {
            pointer-events: none; /* Matikan klik pada gambar */
            -webkit-user-drag: none; /* Matikan drag di PC */
            user-drag: none;
            -webkit-touch-callout: none; /* Matikan pop-up 'Save Image' di iPhone/Android */
            -webkit-user-select: none;
            -moz-user-select: none;
            -ms-user-select: none;
            user-select: none;
        }
        /* --- AKHIR EDIT CSS PROTEKSI GAMBAR --- */
        .app-full-page {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: var(--primary-bg);
            z-index: 11000; /* Higher than header/footer but lower than Alert */
            overflow-y: auto;
            padding-bottom: 50px;
        }

        /* LOADING OVERLAY */
        #loading-overlay {
            position: fixed;
            top: 0; left: 0; width: 100%; height: 100%;
            background: #ffffff;
            z-index: 30000; /* Highest Priority */
            display: flex;
            justify-content: center;
            align-items: center;
            flex-direction: column;
        }
        .spinner {
            width: 40px; height: 40px;
            border: 4px solid #f3f3f3;
            border-top: 4px solid var(--orange-btn);
            border-radius: 50%;
            animation: spin 1s linear infinite;
        }
        @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

        /* Default Show Home */
        #home-page {
            display: block;
        }

        a { text-decoration: none; color: inherit; }
        a:hover { text-decoration: none; }

        /* --- KODE BARU: HEADER HOME FULL BLEED --- */
        #header {
            color: #3ed2ff;
            position: fixed;
            /* EDIT: Menempel di atas, dan turun sedikit menyesuaikan status bar HP */
            top: 0;
            left: 50%;
            transform: translateX(-50%); /* Hapus translateY agar posisi presisi di ujung atas */
            z-index: 10000;
            width: 100%;
            height: auto;
            /* EDIT: Padding mendeteksi poni/kamera HP otomatis */
            padding: calc(10px + env(safe-area-inset-top)) 15px 10px 15px !important;
            border-radius: 0px;
            transition: 0.7s;
            background: transparent;
            pointer-events: none; /* Biarkan klik tembus ke banner di bawahnya */
        }
        
        /* EDIT TAMBAHAN: Memaksa Slider Banner Home menabrak atap layar */
        .header-codingasik {
            margin-top: 0 !important;
            padding-top: 0 !important;
            position: relative;
        }
        /* Pastikan gambar slider Home juga cover menutupi atap */
        .header-codingasik .carousel-item img {
            object-fit: cover;
            /* Tinggi minimal agar banner tidak terlalu gepeng saat ditarik ke atas */
            min-height: 220px; 
        }

        .codingasik-box-saldo {
            display: flex;
            position: relative;
            margin-top: -20px;
            z-index: 100;
            box-shadow: var(--shadow-soft);
            padding: 10px;
            border-radius: 10px;
            padding-bottom: 12px !important;
            background: #fff;
            border: 1px solid #eee;
        }

        .QR-codingasik {
            border-right: 2px solid #e0e0e0;
            padding-right: 10px;
            margin-right: 10px;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .QR-codingasik img {
            transition: transform 0.2s;
            cursor: pointer;
        }
        
        .QR-codingasik img:active {
            transform: scale(1.2);
        }

        .saldo {
            width: 100%;
            border-right: 2px solid #e0e0e0;
            padding-right: 10px;
            margin-right: 10px;
        }

        .saldo img {
            width: 25px;
            margin-top: 5px;
        }

        .text h6 {
            font-size: 10px;
            color: grey;
            margin-left: 7px;
            margin-top: 5px;
            margin-bottom: 0px;
        }

        .text p {
            font-size: 12px;
            color: black;
            font-weight: bold;
            margin-left: 7px;
            margin-top: 0px;
            margin-bottom: 0px;
        }

        /* --- SCROLL MENU (PROMO) --- */
        div.scrollmenu {
            background-color: transparent;
            overflow-x: auto; 
            white-space: nowrap;
            padding-left: 15px;
            padding-right: 15px;
            padding-bottom: 10px;
            scrollbar-width: none; 
            -ms-overflow-style: none;
            -webkit-overflow-scrolling: touch;
            cursor: grab;
        }
        
        div.scrollmenu::-webkit-scrollbar {
            display: none;
        }

        .promo-card {
            display: inline-block;
            width: 150px;
            margin-right: 10px;
            border-radius: 10px;
            overflow: hidden;
            box-shadow: 0 2px 8px rgba(0,0,0,0.1);
            background: white;
            text-align: center;
            cursor: pointer; /* Agar terlihat bisa diklik */
        }

        .promo-card img {
            width: 100%;
            height: 150px;
            object-fit: cover;
            display: block;
        }
        
       /* --- AWAL EDIT TOMBOL PROMO --- */
        .promo-btn {
            background: linear-gradient(135deg, #004ba0 0%, #1976d2 50%, #004ba0 100%); /* Biru Mewah Glossy */
            color: white; /* Tulisan Putih */
            font-weight: bold;
            font-size: 12px;
            padding: 8px;
            width: 100%;
            border: none;
            position: relative;
            overflow: hidden;
            cursor: pointer;
            box-shadow: 0 -2px 5px rgba(0,0,0,0.1);
        }

        /* Efek Cahaya Berjalan Kanan ke Kiri */
        .promo-btn::after {
            content: "";
            position: absolute;
            top: 0;
            right: -100%; /* Mulai dari luar kanan */
            width: 50%;
            height: 100%;
            background: linear-gradient(to left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.5) 50%, rgba(255,255,255,0) 100%);
            transform: skewX(-25deg);
            animation: kilap-promo 2.5s infinite; /* Berulang setiap 2.5 detik */
        }

        @keyframes kilap-promo {
            0% { right: -100%; }
            20% { right: 200%; } /* Meluncur ke kiri */
            100% { right: 200%; } /* Jeda sebelum mengulang */
        }
        /* --- AKHIR EDIT TOMBOL PROMO --- */
        /* --- MENU UTAMA STYLES --- */
        .coding-asik-menu {
            list-style: none;
            margin: 0;
            padding: 10px;
            display: grid;
            border: right;
            grid-template-columns: repeat(4, 1fr);
            justify-items: center;
            position: relative;
            top: 0px;
        }

        .button {
            width: auto;
            margin-left: 2%;
            margin-right: 2%;
            background-color: transparent;
            border: none;
            height: 80px;
            margin-top: 10px;
            margin-bottom: 10px;
            position: relative;
            display: inline-block;
            cursor: pointer; 
        }

        .button img {
            width: 50px;
            padding: 8px;
            border-radius: 15px;
            background: #fff;
            box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
            display: block;
            margin: 0 auto; 
            transition: all 0.2s ease; 
            border: 1px solid #f0f0f0;
        }

        .button img:hover {
            transform: translateY(-3px);
            box-shadow: 0 6px 15px rgba(0, 0, 0, 0.15);
        }

        .button p {
            font-size: 11px;
            margin-top: 8px;
            font-weight: 600;
            text-align: center;
            color: #333;
        }

        @keyframes jelly {
            0% { transform: scale(1, 1); }
            30% { transform: scale(1.25, 0.75); }
            40% { transform: scale(0.75, 1.25); }
            50% { transform: scale(1.15, 0.85); }
            65% { transform: scale(0.95, 1.05); }
            75% { transform: scale(1.05, 0.95); }
            100% { transform: scale(1, 1); }
        }

        .button:active img {
            animation: jelly 0.6s ease;
        }

        .section-title {
            font-size: 16px;
            font-weight: bold;
            margin-bottom: 10px;
            margin-left: 15px;
            color: #333;
            margin-top: 20px;
        }
        
        /* ===== CSS UNTUK BOTTOM NAVBAR ===== */
        .bottom-navbar {
            position: fixed;
            bottom: 0;
            left: 0;
            width: 100%;
            background-color: white;
            display: flex;
            justify-content: space-around;
            align-items: flex-end; 
            height: 70px;
            padding-bottom: 10px;
            border-top-left-radius: 20px;
            border-top-right-radius: 20px;
            box-shadow: 0px -2px 10px rgba(0,0,0,0.1);
            z-index: 9999;
            transition: transform 0.3s ease; /* Smooth hide/show */
        }

        .nav-item {
            text-align: center;
            color: #888;
            flex: 1;
            font-size: 10px;
            font-weight: 600;
            position: relative;
            cursor: pointer;
        }

        .nav-item i {
            display: block;
            font-size: 20px; 
            margin-bottom: 5px;
            color: #888;
        }
        
        .nav-item.active, .nav-item:hover {
            color: var(--brand-color); 
        }
        
        .nav-item.active i, .nav-item:hover i {
            color: var(--brand-color);
        }

        .nav-center-container {
            position: relative;
            top: -10px; 
            flex: 1;
            display: flex;
            justify-content: center;
        }

        .nav-center-button {
            width: 60px;
            height: 60px;
            background-color: var(--brand-color); 
            border-radius: 50%;
            display: flex;
            justify-content: center;
            align-items: center;
            box-shadow: 0px 4px 10px rgba(0,0,0,0.3);
            border: 4px solid white;
            text-decoration: none !important;
        }

        /* REVISI TUGAS 3: IMG di tombol tengah */
        .nav-center-button img {
            object-fit: contain;
        }

        .nav-item:active i {
            transform: scale(0.9);
        }
        .nav-center-button:active {
            transform: scale(0.95);
        }

        /* ======================================================== */
        /* === TAMBAHAN CSS BARU & REVISI UI ENTERPRISE === */
        /* ======================================================== */

        /* --- HEADER UMUM (Account & Affiliate) --- */
        .page-header-luxury {
            background: var(--gradient-main);
            color: white;
            padding: 20px;
            padding-top: 30px;
            padding-bottom: 30px;
            border-bottom-left-radius: 30px;
            border-bottom-right-radius: 30px;
            box-shadow: var(--shadow-soft);
            position: relative;
        }
        
        .header-nav-row {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 20px;
        }
        
        .header-title {
            font-size: 18px;
            font-weight: 700;
            letter-spacing: 0.5px;
            text-transform: uppercase;
        }

        .user-welcome-section {
            display: flex;
            align-items: center;
        }
        
        .user-avatar-small {
            width: 50px;
            height: 50px;
            border-radius: 50%;
            background: rgba(255,255,255,0.2);
            display: flex;
            align-items: center;
            justify-content: center;
            margin-right: 15px;
            font-size: 24px;
            color: white;
            border: 2px solid var(--accent-color);
        }
        
        .user-info-text h3 {
            font-size: 16px;
            font-weight: 700;
            margin: 0;
            color: white;
        }
        
        .user-info-text span {
            font-size: 12px;
            background: var(--accent-color);
            color: var(--brand-color);
            padding: 2px 8px;
            border-radius: 10px;
            font-weight: 700;
        }

        /* DEFAULT KARTU DOMPET / AFFILIATE */
        .credit-card {
            border-radius: 20px;
            padding: 20px;
            color: white;
            position: relative;
            box-shadow: 0 15px 35px rgba(0,0,0,0.2);
            margin-top: 10px;
            overflow: hidden;
            transition: all 0.5s ease;
        }

       /* 1. KARTU FREE MEMBER (SILVER) */
        .card-free {
            background: linear-gradient(135deg, #E8E8E8 0%, #94a3b8 100%);
            border: 1px solid #e2e8f0;
            color: white; /* DIUBAH JADI PUTIH */
            text-shadow: 0 1px 3px rgba(0,0,0,0.3); /* Tambah bayangan tipis agar tulisan putih jelas dibaca */
        }

        /* --- TAMBAHAN BARU: POSISI STATUS DI KARTU --- */
        .card-status-badge {
            position: absolute;
            top: 20px;
            right: 20px;
            font-size: 11px;
            font-weight: 800;
            text-transform: uppercase;
            letter-spacing: 1px;
            opacity: 0.9;
        }

        /* 2. KARTU BELAJAR VIGO (BIRU) */
        .card-belajar {
            background: linear-gradient(135deg, #1e3a8a 0%, #3b82f6 100%);
            border: 1px solid #60a5fa;
            color: white;
        }

        /* 3. KARTU GURU VIGO (GOLDEN PREMIUM + ABSTRAK MEWAH) */
        .card-guru {
            background: 
                radial-gradient(circle at 10% 20%, rgba(255,255,255,0.2) 0%, transparent 40%),
                radial-gradient(circle at 90% 80%, rgba(255,255,255,0.2) 0%, transparent 40%),
                linear-gradient(135deg, #d4af37 0%, #f6e07b 50%, #b48512 100%);
            border: 1px solid #ffe066;
            color: #3e2723; /* Teks agak gelap agar kontras dengan emas */
        }
        .card-guru .card-balance { text-shadow: 0 2px 4px rgba(255,255,255,0.5); }

        /* 4. KARTU MASTER VIGO (BLACK CARD + ABSTRAK UKIRAN PREMIUM) */
        .card-master {
            background: 
                radial-gradient(ellipse at center, rgba(212, 175, 55, 0.15) 0%, transparent 60%),
                linear-gradient(135deg, rgba(255,255,255,0.05) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.05) 50%, rgba(255,255,255,0.05) 75%, transparent 75%, transparent),
                linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
            background-size: 100% 100%, 40px 40px, 100% 100%;
            border: 1px solid #d4af37; /* Border Emas */
            color: #d4af37; /* Teks Emas */
            box-shadow: 0 15px 35px rgba(0,0,0,0.5), inset 0 0 20px rgba(212, 175, 55, 0.2);
        }
        .card-master .card-balance { color: white; text-shadow: 0 2px 5px rgba(0,0,0,0.8); }
        .card-master .card-chip { background: linear-gradient(135deg, #a67c00, #bf953f); }
        .card-chip {
            width: 40px;
            height: 30px;
            background: linear-gradient(135deg, #d4af37, #f6e07b);
            border-radius: 5px;
            margin-bottom: 15px;
            position: relative;
            overflow: hidden;
        }
        .card-chip::after {
            content: ''; position: absolute; top:0; left:0; right:0; bottom:0;
            background: transparent;
            border: 1px solid rgba(0,0,0,0.1);
            border-radius: 5px;
        }
        
        .card-label {
            font-size: 10px;
            text-transform: uppercase;
            opacity: 0.8;
            letter-spacing: 2px;
            margin-bottom: 5px;
        }
        
        .card-balance {
            font-size: 32px;
            font-weight: 800;
            text-shadow: 0 2px 4px rgba(0,0,0,0.3);
            margin-bottom: 15px;
            letter-spacing: 1px;
        }
        
        .card-footer-info {
            display: flex;
            justify-content: space-between;
            align-items: flex-end;
        }
        
        .card-holder {
            font-size: 14px;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 1.5px;
        }
        
        .card-logo {
            font-size: 18px;
            font-style: italic;
            font-weight: 800;
            opacity: 0.9;
        }

        .action-buttons-container {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 15px;
            margin-top: 25px;
            padding: 0 5px;
        }
        
        .action-btn {
            background: white;
            border: none;
            border-radius: 15px;
            padding: 15px;
            text-align: center;
            box-shadow: var(--shadow-soft);
            transition: transform 0.2s;
            cursor: pointer;
        }
        
        .action-btn:active { transform: scale(0.98); }
        
        .action-btn i {
            font-size: 24px;
            margin-bottom: 8px;
            display: block;
            color: var(--brand-color);
        }
        
        .action-btn span {
            font-size: 12px;
            font-weight: 700;
            color: #555;
            text-transform: uppercase;
        }

        .referral-section {
            margin-top: 30px;
            background: white;
            border-radius: 15px;
            padding: 20px;
            box-shadow: var(--shadow-soft);
            text-align: center;
        }
        
        .referral-box {
            background: #f1f2f6;
            border: 1px dashed var(--brand-color);
            border-radius: 10px;
            padding: 10px;
            margin: 15px 0;
            font-family: monospace;
            font-size: 12px;
            color: #333;
            word-break: break-all;
        }

        .history-section-title {
            margin-top: 30px;
            margin-bottom: 15px;
            padding: 0 5px;
            font-size: 16px;
            font-weight: 700;
            color: var(--brand-color);
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        /* --- HALAMAN AKUN MENU GRID --- */
        .account-menu-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 15px;
            padding: 20px;
            margin-top: -30px; /* Overlap header */
            position: relative;
            z-index: 10;
        }
        
        .menu-card {
            background: white;
            border-radius: 15px;
            padding: 20px 15px;
            box-shadow: var(--shadow-soft);
            display: flex;
            flex-direction: column;
            align-items: center;
            text-align: center;
            transition: transform 0.2s;
            cursor: pointer;
            height: 100%;
        }
        
        .menu-card:active { transform: scale(0.95); }
        
        .menu-icon-circle {
            width: 50px;
            height: 50px;
            border-radius: 50%;
            background: #f0f4f8;
            display: flex; align-items: center; justify-content: center;
            font-size: 20px;
            margin-bottom: 10px;
            color: var(--brand-color);
        }
        
        .menu-label {
            font-size: 13px;
            font-weight: 600;
            color: #333;
            line-height: 1.4;
        }

        /* --- THEME SWITCHER --- */
        .theme-section {
            padding: 20px;
            background: white;
            margin: 20px;
            border-radius: 15px;
            box-shadow: var(--shadow-soft);
        }
        .theme-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr); /* 4 Kolom agar muat banyak */
            gap: 15px;
            margin-top: 15px;
        }
        .theme-circle {
            width: 40px; height: 40px; border-radius: 50%;
            cursor: pointer; border: 2px solid #ddd;
            margin: 0 auto;
            transition: transform 0.2s;
        }
        .theme-circle:hover { transform: scale(1.1); }

       /* --- KODE BARU: FULL SCREEN PAGES HEADER --- */
        .fs-header {
            background: white;
            /* EDIT: Tambah safe-area-inset-top agar halaman selain produk (Riwayat, Akun) 
               teks headernya tidak tertabrak jam HP */
            padding: calc(15px + env(safe-area-inset-top)) 20px 15px 20px;
            display: flex;
            align-items: center;
            box-shadow: 0 2px 10px rgba(0,0,0,0.05);
            position: sticky; top: 0; z-index: 100;
        }
        .fs-back-btn {
            font-size: 20px; color: var(--brand-color);
            margin-right: 15px; cursor: pointer;
        }
        .fs-title {
            font-size: 16px; font-weight: 700; color: #333;
        }

        /* Stats Page */
        .stats-hero {
            background: var(--brand-color);
            color: white;
            padding: 30px 20px;
            text-align: center;
            border-bottom-left-radius: 30px;
            border-bottom-right-radius: 30px;
        }
        .stats-grid-container {
            display: grid; grid-template-columns: 1fr 1fr; gap: 15px;
            padding: 20px; margin-top: -40px;
        }
        .stat-card {
            background: white; padding: 20px; border-radius: 15px;
            text-align: center; box-shadow: var(--shadow-hard);
        }
        .stat-val { font-size: 20px; font-weight: bold; color: var(--brand-color); margin: 5px 0; }
        .stat-lbl { font-size: 10px; color: #888; text-transform: uppercase; font-weight: 600; }

        /* Network Tree Page */
        .tree-wrapper {
            padding: 40px 20px;
            overflow: auto; /* Allow scroll everywhere */
            min-height: 80vh;
            display: flex;
            justify-content: center;
            align-items: flex-start;
        }
        
        /* Tree Node Card Style REVISI TUGAS 4: LEBIH BESAR */
        .node-card {
            width: 160px; /* Lebih Besar */
            background: white;
            border-radius: 12px;
            box-shadow: 0 5px 15px rgba(0,0,0,0.15);
            padding: 12px;
            text-align: center;
            position: relative;
            z-index: 2;
            cursor: pointer;
            border-top: 4px solid var(--brand-color);
            transition: 0.2s;
            margin-bottom: 5px;
        }
        .node-card:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0,0,0,0.25); }
        .node-img { width: 55px; height: 55px; border-radius: 50%; margin: 0 auto 5px; background: #eee; object-fit: cover; border: 2px solid white; box-shadow: 0 2px 5px rgba(0,0,0,0.1); }
        .node-name { font-size: 12px; font-weight: bold; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #333; margin-top:5px; }
        .node-rank { font-size: 10px; background: var(--accent-color); color: white; padding: 2px 8px; border-radius: 4px; display: inline-block; margin-bottom: 3px; font-weight: 600; }
        
        /* STYLE NODE VACANCY (LOWONGAN KERJA) */
        .node-vacancy {
            border: 2px dashed #ccc;
            background: #fdfdfd;
            color: #888;
            cursor: pointer;
            border-top: none; /* Reset standard border */
            box-shadow: none;
            width: 140px;
        }
        .node-vacancy:hover {
            background: #f0f8ff;
            border-color: var(--brand-color);
            color: var(--brand-color);
        }
        .plus-icon {
            font-size: 24px;
            font-weight: bold;
            margin-bottom: 5px;
            background: #eee;
            width: 40px;
            height: 40px;
            border-radius: 50%;
            display: flex;
            justify-content: center;
            align-items: center;
            margin: 0 auto 5px auto;
        }

        .tree-lines {
            display: flex; flex-direction: column; align-items: center;
        }
        .line-vert { width: 2px; height: 25px; background: #999; margin: 0 auto; }
        .line-horz { height: 2px; background: #999; width: 52%; margin: 0 auto; }

        /* Commission Page & Luxury Styles */
        .commission-hero {
            background: var(--gradient-main);
            color: white;
            padding: 40px 20px;
            text-align: center;
            border-radius: 0 0 30px 30px;
            box-shadow: var(--luxury-shadow);
            margin-bottom: 20px;
        }
        .comm-total-label { font-size: 14px; text-transform: uppercase; letter-spacing: 2px; opacity: 0.8; }
        .comm-total-value { font-size: 36px; font-weight: 800; margin: 10px 0; text-shadow: 0 4px 10px rgba(0,0,0,0.3); }
        
        .comm-list { padding: 20px; margin-top: -40px; }
        .comm-item {
            background: white; border-radius: 15px; padding: 20px;
            margin-bottom: 15px; box-shadow: var(--shadow-hard);
            display: flex; justify-content: space-between; align-items: center;
            border-left: 5px solid var(--brand-color);
            transition: transform 0.2s;
        }
        .comm-item:hover { transform: translateY(-2px); }
        .comm-icon-box {
            width: 40px; height: 40px; border-radius: 10px;
            background: #f0f4f8; color: var(--brand-color);
            display: flex; align-items: center; justify-content: center;
            font-size: 18px; margin-right: 15px;
        }
        .comm-info { flex: 1; }

        /* --- MODALS --- */
        .modal-overlay {
            display: none; 
            position: fixed; top: 0; left: 0; width: 100%; height: 100%;
            background: rgba(0,0,0,0.6); z-index: 20000;
            justify-content: center; align-items: center;
            backdrop-filter: blur(5px);
        }
        .modal-box {
            background: white; width: 85%; max-width: 350px;
            padding: 25px; border-radius: 20px;
            box-shadow: 0 10px 30px rgba(0,0,0,0.3);
            text-align: center; position: relative;
            animation: slideUp 0.3s ease;
        }
        @keyframes slideUp { from {transform: translateY(20px); opacity: 0;} to {transform: translateY(0); opacity: 1;} }
        .modal-input {
            width: 100%; padding: 12px; margin-bottom: 15px;
            border: 1px solid #ddd; border-radius: 10px; background: #f9f9f9;
            font-size: 14px;
        }
        .modal-btn {
            width: 100%; padding: 12px; border: none; border-radius: 10px;
            background: var(--brand-color); color: white; font-weight: bold; cursor: pointer;
            box-shadow: 0 4px 10px rgba(0,0,0,0.2);
            margin-bottom: 10px; /* Add space for multiple buttons */
        }
        .close-modal { position: absolute; top: 15px; right: 20px; font-size: 20px; color: #999; cursor: pointer; }

        /* Toast */
        #toast-container { position: fixed; bottom: 80px; left: 50%; transform: translateX(-50%); z-index: 20001; width: 80%; pointer-events: none; }
        .toast-msg { background: rgba(0,0,0,0.8); color: white; padding: 10px 20px; border-radius: 30px; text-align: center; font-size: 12px; margin-top: 10px; animation: fadeInOut 3s forwards; }
        @keyframes fadeInOut { 0% { opacity: 0; transform: translateY(20px); } 10% { opacity: 1; transform: translateY(0); } 90% { opacity: 1; transform: translateY(0); } 100% { opacity: 0; transform: translateY(-20px); } }


        /* --- NEW AUTH LOGIN PAGE STYLES (REVISI TASK 2: PRESISI & RAPI) --- */
        #auth-page {
            position: fixed;
            top: 0; left: 0;
            width: 100%; height: 100%;
            background: white;
            z-index: 20000;
            overflow-y: auto;
            display: flex; 
            justify-content: center;
            align-items: flex-start; 
            padding-top: 20px; /* Jarak dari atas dikurangi biar pas */
            padding-bottom: 20px;
        }

        .auth-card {
            background: #fff;
            width: 90%;
            max-width: 350px; /* Task 2: Lebih ramping presisi di HP */
            padding: 25px 20px;
            border-radius: 15px;
            box-shadow: 0 0 20px rgba(0,0,0,0.1);
            margin: auto; /* Center vertical/horizontal */
            text-align: center;
        }

        .auth-logo {
            width: 120px; /* REVISI: Ukuran logo disesuaikan */
            margin-bottom: 15px;
        }

        .auth-title {
            font-size: 20px;
            font-weight: bold;
            color: #333;
            margin-bottom: 5px;
        }

        .auth-subtitle {
            font-size: 13px;
            color: #777;
            margin-bottom: 25px;
        }

        .auth-label {
            text-align: left;
            font-size: 13px;
            font-weight: 600;
            color: #333;
            margin-bottom: 5px;
            display: block;
        }

        .auth-input-group {
            position: relative;
            margin-bottom: 15px;
        }

        .auth-input {
            width: 100%;
            padding: 10px 12px;
            border: 1px solid #ddd;
            border-radius: 8px;
            font-size: 14px;
            outline: none;
            background: #fcfcfc;
        }
        .auth-input:focus {
            border-color: var(--orange-btn);
            background: #fff;
        }

        .auth-eye {
            position: absolute; right: 15px; top: 50%; transform: translateY(-50%);
            color: #999; cursor: pointer;
        }

        .btn-primary-orange {
            background: var(--orange-btn);
            color: white;
            font-weight: bold;
            width: 100%;
            padding: 10px;
            border: none;
            border-radius: 8px;
            font-size: 15px;
            margin-top: 10px;
            box-shadow: 0 4px 10px rgba(255, 69, 0, 0.3);
            cursor: pointer;
        }
        .btn-primary-orange:active { transform: scale(0.98); }

        .auth-footer {
            margin-top: 20px;
            font-size: 13px;
            color: #555;
        }
        .auth-link {
            color: var(--orange-btn);
            font-weight: bold;
            cursor: pointer;
        }
        
        .forgot-pass {
            text-align: right;
            display: block;
            font-size: 12px;
            color: var(--orange-btn);
            margin-top: -10px;
            margin-bottom: 15px;
            cursor: pointer;
        }


        /* === REVISI FINAL: TAMPILAN MARKETPLACE (MIRIP GAMBAR 2 & 3) === */
        
        /* REVISI: GRID FULL LEBAR (MEMENUHI LAYAR) */
        .product-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr); /* Tetap 2 Kolom */
            gap: 4px; /* Jarak antar produk SANGAT KECIL agar kartu lebar */
            padding: 4px; /* Jarak dari pinggir layar SANGAT TIPIS */
            background: #f1f1f1;
            width: 100%; /* Pastikan lebar 100% */
            box-sizing: border-box;
        }

        /* 2. Kartu Produk (TUGAS 1: RAPI & KONSISTEN) */
        .product-card-ecommerce {
            background: white;
            border-radius: 4px; /* Radius kecil agar mirip marketplace */
            overflow: hidden;
            box-shadow: 0 1px 2px rgba(0,0,0,0.1);
            display: flex;
            flex-direction: column;
            cursor: pointer;
            height: 100%; /* Paksa tinggi full agar rata */
            position: relative;
        }

        /* Kotak Gambar (Wajib Persegi 1:1) */
        .prod-img-box {
            width: 100%;
            aspect-ratio: 1 / 1; /* KUNCI AGAR GAMBAR KOTAK RAPI */
            background: #f4f4f4;
            position: relative;
        }

        .prod-img-box img {
            width: 100%;
            height: 100%;
            object-fit: cover; /* Gambar penuh tanpa gepeng */
        }

        /* Ikon Love di Pojok Kanan Atas Gambar */
        .fav-icon {
            position: absolute;
            top: 5px;
            right: 5px;
            width: 25px;
            height: 25px;
            background: rgba(255,255,255,0.7);
            border-radius: 50%;
            display: flex;
            justify-content: center;
            align-items: center;
            font-size: 14px;
            color: #999;
            z-index: 5;
        }
        .fav-icon.active { color: #ff4500; }

        /* Area Informasi Teks */
        .prod-info {
            padding: 8px;
            display: flex;
            flex-direction: column;
            flex: 1; /* Mengisi sisa ruang ke bawah */
        }

        /* Judul Produk (Maksimal 2 Baris) */
        .prod-title {
            font-size: 13px;
            font-weight: 400;
            line-height: 1.4;
            color: #333;
            margin-bottom: 4px;
            
            /* Logic pemotong teks 2 baris */
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
            text-overflow: ellipsis;
            height: 36px; /* Paksa tinggi tetap untuk 2 baris */
        }

        /* Label "Terlaris" / "Diskon" */
        .tag-box {
            margin-bottom: 6px;
        }
        .tag-badge-orange {
            font-size: 9px;
            padding: 1px 4px;
            border: 1px solid #ff5722;
            color: #ff5722;
            font-weight: bold;
            border-radius: 2px;
            display: inline-block;
        }

        /* === STYLE BARU: HARGA DI ATAS & INFO BAWAH RAPI === */

        /* 1. Harga (Paling Atas) */
        .prod-price {
            color: #ee4d2d;       /* Warna Orange Shopee */
            font-weight: bold;
            font-size: 15px;      /* Ukuran font harga pas */
            margin-bottom: 2px;   /* Jarak tipis ke judul */
            line-height: 1.2;
        }

        /* 2. Judul Produk (Lebih Kecil & Rapi) */
        .prod-title {
            font-size: 11px;      /* REVISI: Ukuran font dikecilkan (11px) agar muat banyak */
            font-weight: 400;     /* Normal weight biar tidak sumpek */
            color: #212121;
            line-height: 1.3;     /* Jarak antar baris teks */
            margin-bottom: 6px;
            
            /* Logic 2 Baris (Teks memanjang akan turun, lalu ... jika kepanjangan) */
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
            text-overflow: ellipsis;
            min-height: 29px;     /* Menjaga tinggi tetap konsisten */
        }

        /* 3. Baris Bawah (Wadah Label & Lokasi) */
        .prod-bottom-row {
            margin-top: auto;     /* Dorong ke paling bawah kartu */
            display: flex;
            align-items: center;  /* Rata tengah vertikal */
            justify-content: space-between; /* Label di KIRI, Lokasi di KANAN */
            width: 100%;
            padding-top: 6px;     /* Sedikit jarak dari rating */
        }

        /* Style Label Terlaris */
        .tag-badge-orange {
            font-size: 9px;
            padding: 1px 4px;
            border: 1px solid #ff5722;
            background-color: #fff0eb;
            color: #ff5722;
            font-weight: bold;
            border-radius: 2px;
            line-height: 1;
        }
        
        /* --- AWAL EDIT CSS CASHBACK --- */
        .badge-cashback {
            position: absolute;
            bottom: 5px;
            left: 5px;
            display: flex;
            align-items: center;
            border-radius: 4px; /* Ujung agak membulat */
            overflow: hidden;
            z-index: 5;
            box-shadow: 0 2px 5px rgba(0,0,0,0.2);
            border: 1px solid #ffccd0; /* Garis tepi merah muda tipis */
            background: #fff5f6; /* Latar belakang kanan */
        }
        /* Kotak merah bagian kiri */
        .cb-icon-box {
            background: #e60023; /* Merah pekat */
            color: white;
            padding: 3px 5px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 10px;
        }
        /* Kotak teks bagian kanan */
        .cb-text-box {
            padding: 2px 5px;
            display: flex;
            flex-direction: column;
            justify-content: center;
        }
        .cb-label {
            font-size: 7px;
            color: #777;
            line-height: 1;
            margin-bottom: 2px;
            font-weight: 600;
        }
        .cb-value {
            font-size: 9px;
            color: #e60023;
            font-weight: 900;
            line-height: 1;
        }
        /* --- AKHIR EDIT CSS CASHBACK --- */

        /* Style Lokasi */
        .prod-location {
            font-size: 10px;
            color: #757575;
            white-space: nowrap;  /* Agar teks lokasi tidak turun baris */
            overflow: hidden;
            text-overflow: ellipsis;
            max-width: 60%;       /* Membatasi lebar agar tidak menabrak label */
            text-align: right;
        }
        
        /* Style Tambahan Rating (Biar pas) */
        .rating-sold {
            font-size: 10px;
            color: #999;
            display: flex;
            align-items: center;
            margin-bottom: 2px;
        }

        .prod-info { padding: 8px; flex: 1; display: flex; flex-direction: column; }
        .prod-title { font-size: 13px; font-weight: 500; line-height: 1.4; margin-bottom: 5px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: #333; }
        .prod-tags { margin-bottom: 5px; }
        .tag-badge { font-size: 9px; padding: 2px 4px; border-radius: 2px; border: 1px solid var(--orange-btn); color: var(--orange-btn); font-weight: bold; }
        .prod-price { color: var(--orange-btn); font-weight: bold; font-size: 16px; margin-bottom: 5px; } /* Harga sedikit diperbesar */
        .prod-meta { font-size: 10px; color: #999; display: flex; align-items: center; gap: 5px; margin-top: auto; }
        .star-icon { color: #ffc107; font-size: 10px; }

        /* --- CART & CHECKOUT STYLES --- */
        .cart-list { padding: 15px; padding-bottom: 80px; } /* Extra padding for footer */
        .cart-item {
            display: flex; background: white; padding: 10px; border-radius: 10px;
            margin-bottom: 10px; box-shadow: var(--shadow-soft); align-items: center;
        }
        .cart-item img { width: 60px; height: 60px; object-fit: cover; border-radius: 8px; margin-right: 15px; }
        .cart-details { flex: 1; }
        .cart-title { font-size: 14px; font-weight: bold; color: #333; }
        .cart-price { color: var(--orange-btn); font-weight: bold; }
        .cart-remove { color: red; cursor: pointer; font-size: 18px; padding: 5px; }
        .cart-footer {
            position: fixed; 
            bottom: 0; /* REVISI: Turun ke bawah (was 70px) */
            left: 0; 
            width: 100%; 
            background: white;
            padding: 15px; border-top: 1px solid #eee; display: flex; justify-content: space-between; align-items: center;
            box-shadow: 0 -2px 10px rgba(0,0,0,0.05); z-index: 12000; /* Higher Z-Index than navbar */
        }
        
        /* Modal Checkout Custom */
        .detail-img { width: 100%; height: 250px; object-fit: cover; border-radius: 10px; margin-bottom: 15px; }
        .qty-control { display: flex; align-items: center; margin-top: 15px; }
        .qty-btn { width: 30px; height: 30px; background: #eee; border: none; font-weight: bold; border-radius: 5px; }
        .qty-val { margin: 0 15px; font-weight: bold; }

/* ======================================================= */
        /* --- REVISI: PAKET BERLANGGANAN FULL SCREEN & ELEGAN --- */
        /* ======================================================= */
        #package-selection-overlay {
            display: none; 
            position: fixed; top: 0; left: 0; width: 100%; height: 100%;
            /* Background gradasi gelap seperti digambar */
            background: linear-gradient(180deg, #160a24 0%, #2a0845 50%, #0d0216 100%);
            z-index: 30000; /* Paling atas menutupi navbar bawah */
            flex-direction: column;
            color: white;
            overflow: hidden;
            font-family: 'Poppins', sans-serif;
        }

        .vip-header {
            display: flex; justify-content: space-between; align-items: center; 
            padding: 20px; font-size: 18px; font-weight: bold; z-index: 10;
        }
        .vip-header i { font-size: 20px; cursor: pointer; }

        /* Tombol Panah Kiri Kanan */
        .vip-nav-btn {
            position: absolute; top: 50%; transform: translateY(-50%);
            width: 40px; height: 40px; background: rgba(255,255,255,0.2);
            border-radius: 50%; display: flex; justify-content: center; align-items: center;
            color: white; font-size: 18px; cursor: pointer; z-index: 20;
            backdrop-filter: blur(5px); transition: 0.3s;
        }
        .vip-nav-btn:active { background: rgba(255,255,255,0.5); }
        .nav-left { left: 10px; }
        .nav-right { right: 10px; }

        /* Slider Container */
        .vip-slider {
            display: flex; flex: 1; overflow-x: auto; scroll-snap-type: x mandatory;
            scroll-behavior: smooth; padding: 20px 0; align-items: center;
            scrollbar-width: none; -ms-overflow-style: none;
        }
        .vip-slider::-webkit-scrollbar { display: none; }

        /* Kartu Glassmorphism */
        .vip-card {
            min-width: 85vw; max-width: 350px; margin: 0 auto;
            scroll-snap-align: center;
            background: rgba(255, 255, 255, 0.05);
            backdrop-filter: blur(30px); -webkit-backdrop-filter: blur(30px);
            border: 1px solid rgba(255, 255, 255, 0.2);
            border-radius: 20px; padding: 40px 20px 20px 20px;
            text-align: center; position: relative;
            box-shadow: inset 0 0 20px rgba(255,255,255,0.05), 0 20px 40px rgba(0,0,0,0.5);
            /* Gap antar kartu */
            margin-left: 7.5vw; margin-right: 7.5vw;
        }

        /* Gambar Hologram Atas (Pakai SRC) */
        .vip-top-img {
            position: absolute; top: -30px; left: 50%; transform: translateX(-50%);
            width: 75px; height: auto; z-index: 5;
            filter: drop-shadow(0 10px 15px rgba(210, 136, 255, 0.4));
        }

        /* Badge Most Popular (Pakai SRC) */
        .vip-badge-img {
            position: absolute; top: -20px; right: -20px;
            width: 80px; height: auto; z-index: 6;
        }

       .vip-title { color: #d288ff; font-size: 20px; font-weight: 700; margin-top: 10px; margin-bottom: 5px; }
        .vip-sub { font-size: 12px; color: #ccc; margin-bottom: -5px; }
        .vip-price { font-size: 26px; font-weight: 800; margin-bottom: 20px; color: white; letter-spacing: -1px; }

        /* Kotak Fitur (Persis Gambar) */
        .vip-box-area { display: flex; flex-direction: column; gap: 10px; margin-bottom: 20px; }
        .vip-box {
            background: rgba(136, 74, 208, 0.15); /* Ungu transparan */
            border: 1px solid rgba(136, 74, 208, 0.3);
            border-radius: 20px; padding: 12px;
            text-align: center;
        }
        .vip-box-title { font-size: 12px; color: #ccc; margin-bottom: 3px; }
        .vip-box-value { font-size: 15px; font-weight: 700; color: white; }

        .vip-footer-text { font-size: 12px; color: #d288ff; font-weight: 600; margin-bottom: 20px; line-height: 1.4; }

        .vip-btn {
            background: linear-gradient(90deg, #4b5059 0%, #2f343d 100%);
            border: 1px solid rgba(255,255,255,0.2);
            color: white; font-weight: bold; font-size: 16px;
            width: 100%; padding: 15px; border-radius: 30px;
            cursor: pointer; transition: 0.2s;
            box-shadow: 0 5px 15px rgba(0,0,0,0.3);
        }
        .vip-btn:active { transform: scale(0.95); }

        /* Titik Navigasi Bawah (Dots) */
        .vip-dots {
            display: flex; justify-content: center; gap: 8px; padding-bottom: 30px;
        }
        .vip-dot {
            width: 10px; height: 10px; border-radius: 50%;
            background: rgba(255,255,255,0.3); transition: 0.3s;
        }
        .vip-dot.active { background: white; transform: scale(1.2); }
        
        /* --- LOCK SCREEN (PREMIUM ACTIVATION) STYLES --- */
        #lock-screen-overlay {
            display: none; /* Default Hidden */
            position: fixed; top: 0; left: 0; width: 100%; height: 100%;
            background: rgba(0, 31, 63, 0.95); /* Deep Navy Transparent */
            backdrop-filter: blur(10px);
            z-index: 25000;
            justify-content: center; align-items: center;
            flex-direction: column;
            color: white;
            padding: 20px;
        }
        .lock-card {
            background: linear-gradient(145deg, #001f3f, #003366);
            border: 2px solid var(--accent-color);
            border-radius: 20px;
            padding: 30px 20px;
            width: 100%; max-width: 400px;
            text-align: center;
            box-shadow: 0 0 30px rgba(212, 175, 55, 0.3);
            animation: zoomIn 0.5s ease;
        }
        @keyframes zoomIn { from {transform: scale(0.8); opacity: 0;} to {transform: scale(1); opacity: 1;} }
        
        .lock-icon { font-size: 50px; color: var(--accent-color); margin-bottom: 20px; }
        .lock-title { font-size: 22px; font-weight: 800; color: white; margin-bottom: 10px; text-transform: uppercase; letter-spacing: 1px; }
        .lock-subtitle { font-size: 13px; color: #ccc; margin-bottom: 25px; line-height: 1.5; }
        .lock-input {
            width: 100%; padding: 12px; margin-bottom: 15px;
            background: rgba(255,255,255,0.1); border: 1px solid #555;
            color: white; border-radius: 10px; text-align: center;
            font-size: 14px; letter-spacing: 1px;
        }
        .lock-input::placeholder { color: #888; }
        .lock-btn {
            width: 100%; padding: 12px; border: none; border-radius: 10px;
            background: var(--gold-gradient); color: #001f3f;
            font-weight: 800; font-size: 16px; margin-top: 10px;
            box-shadow: 0 5px 15px rgba(212, 175, 55, 0.4);
            cursor: pointer; transition: transform 0.2s;
        }
        .lock-btn:active { transform: scale(0.95); }
        .lock-footer { margin-top: 20px; font-size: 12px; color: var(--accent-color); cursor: pointer; text-decoration: underline; }

        /* REVISI TUGAS 1: ICON CHAT TANPA BACKGROUND (TRANSPARAN) */
        .floating-chat-btn {
            position: fixed; bottom: 90px; right: 20px;
            width: 60px; height: 60px;
            /* Background dihapus untuk support gambar transparan */
            background: transparent; 
            border-radius: 50%;
            
            /* --- REVISI: GANTI JADI NONE AGAR DEFAULT TERSEMBUNYI --- */
            display: none; 
            /* -------------------------------------------------------- */
            
            justify-content: center; align-items: center;
            /* Shadow dihapus jika mengganggu, tapi disimpan halus */
            /* box-shadow: 0 4px 10px rgba(0,0,0,0.3); */
            z-index: 9990; cursor: pointer;
            border: none;
            transition: transform 0.2s;
        }
        .floating-chat-btn:active { transform: scale(0.9); }
        .floating-chat-btn img {
            width: 100%; height: 100%; object-fit: contain;
        }
        
        /* REVISI TUGAS 1: CHAT FULL SCREEN, ELEGANT, LUXURY */
        .chat-window {
            display: none;
            position: fixed;
            top: 0; left: 0; right: 0; bottom: 0; /* Full Screen */
            width: 100%; height: 100%;
            background: white;
            z-index: 20002; /* REVISI: Lebih tinggi dari Auth agar aman */
            flex-direction: column; overflow: hidden;
            animation: slideUp 0.3s ease;
        }
        .chat-header {
            background: var(--gradient-main);
            color: white;
            padding: 15px 20px;
            font-weight: 700;
            display: flex;
            justify-content: space-between;
            align-items: center;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
        }
      .chat-body {
            flex: 1;
            /* REVISI: Padding bawah diperbesar jadi 100px agar pesan terakhir tidak tertutup input */
            padding: 20px 20px 100px 20px; 
            overflow-y: auto;
            background: #f0f2f5;
            display: flex;
            flex-direction: column;
            gap: 12px;
            scroll-behavior: smooth; /* Agar scroll otomatis halus */
        }
        /* REVISI TUGAS 1: FIX TOMBOL KIRIM SEJAJAR */
        .chat-input-area {
            position: absolute; /* Mengunci posisi di bawah chat window */
            bottom: 0;
            left: 0;
            width: 100%;
            padding: 10px 15px;
            background: white;
            border-top: 1px solid #eee;
            display: flex;
            justify-content: center;
            z-index: 10;
            padding-bottom: 20px; /* Ruang aman untuk HP layar poni */
        }
        
        .chat-input-wrapper {
            display: flex;            /* KUNCI: Membuat input & tombol sejajar */
            align-items: center;      /* KUNCI: Rata tengah vertikal */
            justify-content: space-between;
            background: #f1f2f6;
            border-radius: 30px;
            padding: 5px 10px 5px 15px; /* Padding kanan dikurangi sedikit */
            width: 100%;
            max-width: 95%;           /* Agar tidak terlalu mepet pinggir */
            border: 1px solid #ddd;
            box-sizing: border-box;
        }

        .chat-msg {
            max-width: 75%;
            padding: 10px 15px;
            border-radius: 15px;
            font-size: 13px;
            line-height: 1.5;
            position: relative;
            box-shadow: 0 1px 2px rgba(0,0,0,0.1);
        }
        .msg-me {
            align-self: flex-end;
            background: var(--brand-color);
            color: white;
            border-bottom-right-radius: 2px;
        }
        .msg-admin {
            align-self: flex-start;
            background: white;
            color: #333;
            border-bottom-left-radius: 2px;
        }
        .chat-img-upload {
            cursor: pointer;
            color: #555;
            font-size: 20px;
            padding: 5px;
            margin-right: 10px;
        }

        /* --- STYLES UNTUK MISI CUAN (NEW) --- */
        .task-tabs {
            display: flex;
            background: white;
            margin-bottom: 15px;
            border-bottom: 1px solid #eee;
        }
        .task-tab-btn {
            flex: 1;
            padding: 15px;
            text-align: center;
            font-weight: 600;
            color: #888;
            cursor: pointer;
            border-bottom: 3px solid transparent;
        }
        .task-tab-btn.active {
            color: var(--brand-color);
            border-bottom-color: var(--brand-color);
        }
        .task-card {
            background: white;
            padding: 15px;
            border-radius: 12px;
            margin-bottom: 15px;
            box-shadow: 0 2px 8px rgba(0,0,0,0.05);
            display: flex;
            align-items: center;
            justify-content: space-between;
        }
        .task-icon {
            width: 50px; height: 50px;
            border-radius: 10px;
            background: #f0f4f8;
            display: flex; align-items: center; justify-content: center;
            font-size: 24px; color: var(--brand-color);
            margin-right: 15px;
        }
        .task-info { flex: 1; }
        .task-title { font-weight: bold; font-size: 14px; margin-bottom: 2px; }
        .task-reward { color: #27ae60; font-weight: bold; font-size: 13px; }
        .task-btn {
            background: var(--brand-color);
            color: white;
            border: none;
            padding: 8px 15px;
            border-radius: 20px;
            font-size: 12px;
            font-weight: bold;
        }
        .task-history-item {
            background: white;
            padding: 15px;
            border-bottom: 1px solid #eee;
            display: flex; justify-content: space-between;
            align-items: center;
        }
        .status-badge {
            font-size: 10px; padding: 3px 8px; border-radius: 4px; color: white; font-weight: bold;
        }
        .bg-pending { background: #f39c12; }
        .bg-approved { background: #27ae60; }
        .bg-rejected { background: #c0392b; }

        /* --- LUXURY & PROFESSIONAL HISTORY (REVISI TUGAS 5: TRANSPARAN MEWAH) --- */
        .glass-card {
            background: rgba(255, 255, 255, 0.65);
            backdrop-filter: blur(12px);
            -webkit-backdrop-filter: blur(12px);
            border: 1px solid rgba(255, 255, 255, 0.4);
            box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.1);
        }

        .history-card-luxury {
            /* REVISI: Glassmorphism Style */
            background: rgba(255, 255, 255, 0.7);
            backdrop-filter: blur(10px);
            border: 1px solid rgba(255,255,255,0.5);
            
            border-radius: 15px;
            padding: 15px;
            margin-bottom: 12px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            border-left: 4px solid var(--accent-color);
            transition: transform 0.2s;
        }
        .history-card-luxury:hover { transform: translateY(-2px); box-shadow: 0 8px 25px rgba(0,0,0,0.1); }
        .h-icon {
            width: 40px; height: 40px; border-radius: 50%;
            display: flex; align-items: center; justify-content: center;
            font-size: 18px; margin-right: 15px;
            flex-shrink: 0;
        }
        .h-icon.income { background: rgba(39, 174, 96, 0.1); color: #27ae60; }
        .h-icon.expense { background: rgba(192, 57, 43, 0.1); color: #c0392b; }
        .h-details { flex: 1; }
        .h-title { font-weight: 700; font-size: 13px; color: #333; margin-bottom: 3px; }
        .h-sub { font-size: 10px; color: #999; }
        .h-amount { font-weight: 800; font-size: 14px; }
        .h-amount.inc { color: #27ae60; }
        .h-amount.exp { color: #c0392b; }

        /* Search Box for Tree */
        .search-tree-container {
            padding: 15px 20px;
            background: white;
            border-bottom: 1px solid #eee;
            position: sticky; top: 60px; z-index: 99;
        }
        .search-box {
            display: flex;
            align-items: center;
            background: #f5f5f5;
            border-radius: 10px;
            padding: 8px 15px;
        }
        .search-box input { border: none; background: transparent; width: 100%; outline: none; font-size: 13px; margin-left: 10px; }
        
        /* REVISI TUGAS 4: UPLINE INFO DI BAWAH SEARCH BAR SINKRON */
        .upline-info-box {
            background: rgba(255,255,255,0.9);
            padding: 8px 15px;
            margin: 0 20px 10px 20px;
            border-radius: 10px;
            box-shadow: 0 2px 5px rgba(0,0,0,0.05);
            font-size: 12px;
            border: 1px solid #eee;
            display: flex;
            justify-content: space-between;
            align-items: center;
            color: #555;
        }

        /* REVISI TUGAS 3: MODAL VOUCHER ELEGANT */
        .voucher-modal-box {
            background: linear-gradient(135deg, #ffffff 0%, #f9f9f9 100%);
            width: 85%; max-width: 350px;
            padding: 30px 20px;
            border-radius: 20px;
            box-shadow: 0 15px 40px rgba(0,0,0,0.2);
            text-align: center;
            position: relative;
            animation: bounceIn 0.4s ease;
            border: 1px solid #eee;
        }
        @keyframes bounceIn {
            0% { transform: scale(0.8); opacity: 0; }
            60% { transform: scale(1.05); opacity: 1; }
            100% { transform: scale(1); }
        }
        .voucher-icon-top {
            font-size: 50px;
            margin-bottom: 15px;
            display: inline-block;
            animation: float 3s ease-in-out infinite;
        }
        @keyframes float { 0% { transform: translateY(0px); } 50% { transform: translateY(-10px); } 100% { transform: translateY(0px); } }
        .close-voucher {
            position: absolute; top: 15px; right: 15px;
            background: #eee; width: 30px; height: 30px; border-radius: 50%;
            display: flex; align-items: center; justify-content: center;
            cursor: pointer; color: #555; font-weight: bold;
        }

        /* ========================================= */
        /* === REVISI TUGAS 1: PRODUCT FULL PAGE STYLE === */
        /* ========================================= */
        
        /* Container PDP Full Page */
        #product-full-page {
            z-index: 15000; /* Higher priority than standard pages */
            padding-bottom: 0; /* Remove standard padding */
            background: #f4f4f4;
        }

       /* === KODE BARU: HEADER PDP SHOPEE STYLE === */
        /* PDP Header Transparent -> Sticky */
        .pdp-header {
            position: fixed;
            top: 0; left: 0; width: 100%;
            display: flex; justify-content: space-between; align-items: center;
            /* EDIT: Padding atas otomatis mendeteksi poni/status bar HP ditambah 10px jarak aman */
            padding: calc(10px + env(safe-area-inset-top)) 15px 15px 15px;
            background: transparent; /* Paksa tembus pandang di awal */
            z-index: 20000;
            transition: background 0.3s ease, box-shadow 0.3s ease;
        }
        .pdp-header.scrolled {
            background: white;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
        }
        /* Style Tombol Bulat Melayang (Back, Share, Cart) */
        .pdp-nav-icon {
            width: 38px; height: 38px;
            background: rgba(0, 0, 0, 0.45); /* Gelap transparan */
            border-radius: 50%;
            display: flex; align-items: center; justify-content: center;
            color: white; font-size: 16px;
            cursor: pointer;
            backdrop-filter: blur(5px); /* Efek kaca blur */
            box-shadow: 0 2px 8px rgba(0,0,0,0.15); /* Bayangan agar tombol menonjol */
            transition: all 0.3s ease;
        }
        /* Saat halaman di-scroll ke bawah, Header jadi putih, icon jadi hitam polos */
        .pdp-header.scrolled .pdp-nav-icon {
            background: transparent;
            color: #333;
            box-shadow: none; /* Hilangkan bayangan saat header putih */
            backdrop-filter: none;
        }
        /* =========================================== */
        .pdp-cart-count {
            position: absolute; top: -5px; right: -5px;
            background: var(--orange-btn); color: white;
            font-size: 9px; padding: 2px 5px; border-radius: 50%;
            font-weight: bold;
        }

        /* === KODE BARU: HERO IMAGE FULL BLEED === */
        .pdp-hero {
            width: 100%; 
            /* EDIT: Rasio 1/1.1 membuat gambar sedikit lebih panjang ke bawah, 
               menutupi area atas dengan sempurna seperti aplikasi asli */
            aspect-ratio: 1 / 1.1; 
            background: #f4f4f4;
            position: relative;
            margin-top: 0; /* Pastikan tidak ada jarak di atas */
        }
        .pdp-hero img { 
            width: 100%; 
            height: 100%; 
            object-fit: cover; 
        }

        /* === REVISI: KOLOM ORANGE LEBIH TIPIS === */
        .pdp-flash-sale {
            background: linear-gradient(90deg, #ef330a 0%, #ff5e3a 100%);
            color: white; 
            /* EDIT PADDING: Angka pertama (8px) adalah jarak atas-bawah. Perkecil biar tipis */
            padding: 8px 15px; 
            display: flex; 
            justify-content: space-between; 
            align-items: center;
            min-height: 45px; /* Tinggi minimal bar orange */
        }
        
        /* Font Harga di dalam kolom orange */
        .pdp-price-lg { 
            font-size: 20px; /* Perkecil sedikit (misal dari 24px ke 20px) */
            font-weight: bold; 
            color: white; 
            text-shadow: 0 1px 2px rgba(0,0,0,0.1); 
        }

        .pdp-info-sec {
            background: white; padding: 15px;
            margin-bottom: 8px;
            box-shadow: 0 1px 3px rgba(0,0,0,0.05);
        }
        
        .pdp-price-lg { font-size: 24px; font-weight: bold; color: var(--orange-btn); }
        .pdp-title-lg { font-size: 16px; font-weight: 500; color: #333; margin: 8px 0; line-height: 1.4; }
        
        .pdp-meta-row { display: flex; justify-content: space-between; font-size: 12px; color: #888; border-top: 1px solid #f0f0f0; padding-top: 10px; margin-top: 5px; }

        /* Review Section */
        .pdp-rating-summary {
            display: flex; align-items: center; gap: 5px; font-size: 14px;
        }
        .pdp-stars { color: #ffc107; }

        .review-item {
            padding: 10px 0; border-bottom: 1px solid #f0f0f0;
        }
        .review-user { font-weight: bold; font-size: 12px; margin-bottom: 2px; }
        .review-text { font-size: 12px; color: #555; }
        .review-date { font-size: 10px; color: #999; margin-top: 2px; }

        /* Description */
        .pdp-desc-text {
            font-size: 13px; line-height: 1.6; color: #444; white-space: pre-wrap;
        }

        /* === PERBAIKAN TOMBOL BELI & FOOTER PRODUK === */
        .pdp-footer {
            position: fixed; 
            bottom: 0; 
            left: 0; 
            width: 100%;
            background: white; 
            border-top: 1px solid #eee;
            display: flex; 
            height: 65px; /* Sedikit lebih tinggi agar lega */
            z-index: 20000 !important; /* PASTI MUNCUL DI ATAS SEMUA */
            padding: 5px 10px; /* Jarak dalam */
            box-shadow: 0 -2px 10px rgba(0,0,0,0.05);
        }

        /* Tombol Chat & Cart (Kiri) */
        .pdp-btn-icon {
            width: 50px; /* Lebar tombol icon */
            display: flex; 
            flex-direction: column; 
            align-items: center; 
            justify-content: center;
            color: white; /* Warna Ikon Abu */
            font-size: 10px; 
            cursor: pointer;
            margin-right: 5px;
            background: #33A69A; /* Warna Background Ikon (Abu Muda) */
            border-radius: 8px;
        }
        .pdp-btn-icon i { font-size: 18px; margin-bottom: 2px; }
        .pdp-btn-icon:hover { background: #eee; color: var(--brand-color); }

        /* Tombol Beli Sekarang (Kanan - Lebar) */
        .pdp-btn-buy {
            flex: 1; /* Mengisi sisa ruang (Otomatis Lebar) */
            background: linear-gradient(90deg, #ff9800 0%, #ff5722 100%); /* Warna Gradasi Orange-Merah */
            color: white;
            font-weight: bold; 
            font-size: 14px; 
            border: none;
            border-radius: 8px; /* Sudut membulat */
            display: flex; 
            flex-direction: column; 
            align-items: center; 
            justify-content: center;
            box-shadow: 0 4px 10px rgba(255, 87, 34, 0.3);
            transition: transform 0.1s;
        }
        .pdp-btn-buy:active { transform: scale(0.98); }
        .pdp-btn-buy span { font-size: 11px; font-weight: normal; opacity: 0.9; }

        /* === FITUR DESKRIPSI HIDE/SHOW === */
        .pdp-desc-container {
            position: relative;
        }
        
        /* Kondisi saat deskripsi tertutup (Hanya tampil sedikit) */
        .desc-truncate {
            max-height: 80px; /* Tinggi maksimal saat tertutup */
            overflow: hidden;
            position: relative;
        }
        
        /* Efek bayangan putih di bawah saat tertutup */
        .desc-truncate::after { 
            content: "";
            position: absolute; 
            bottom: 0; left: 0; width: 100%; height: 40px;
            background: linear-gradient(transparent, white);
        }

        /* Tombol Baca Selengkapnya */
        .read-more-btn {
            display: block;
            width: 100%;
            text-align: center;
            color: var(--brand-color);
            font-weight: bold;
            font-size: 12px;
            padding: 10px 0;
            cursor: pointer;
            border-top: 1px solid #f0f0f0;
            margin-top: 5px;
        }
        .read-more-btn i { margin-left: 5px; }
        /* Comment Input */
        .comment-box {
            background: #f9f9f9; padding: 10px; border-radius: 8px; margin-top: 10px;
        }
        .comment-input { width: 100%; border: 1px solid #ddd; padding: 8px; font-size: 12px; border-radius: 5px; }

/* --- PWA INSTALL BUTTON STYLE --- */
        #pwa-install-banner {
            display: none; /* Disembunyikan dulu, muncul lewat JS */
            position: fixed;
            bottom: 100px; /* Posisi di atas navbar bawah */
            left: 50%;
            transform: translateX(-50%);
            width: 90%;
            max-width: 400px;
            background: #0096FF; /* Warna Hijau Tua/Biru seperti contoh */
            color: white;
            padding: 12px 20px;
            border-radius: 50px;
            box-shadow: 0 4px 15px rgba(0,0,0,0.3);
            z-index: 10005; /* Di atas konten lain */
            align-items: center;
            justify-content: center;
            cursor: pointer;
            font-weight: bold;
            font-size: 14px;
            text-transform: uppercase;
            animation: slideUp 0.5s ease;
        }

        #pwa-install-banner i {
            margin-right: 10px;
            font-size: 18px;
        }

        #pwa-install-banner:active {
            transform: translateX(-50%) scale(0.95);
        }
        
 /* --- STYLE RIWAYAT KEUANGAN (REVISI: SIMPLE & ELEGANT) --- */
        .history-list-clean {
            display: flex;
            flex-direction: column;
            gap: 10px; /* Jarak antar item */
        }

        .h-item-clean {
            display: flex;
            align-items: center;
            justify-content: space-between;
            background: #ffffff;
            padding: 12px 15px;
            border-radius: 12px;
            /* Shadow sangat tipis agar ringan dirender browser HP */
            box-shadow: 0 2px 6px rgba(0,0,0,0.03); 
            border: 1px solid #f5f5f5;
            transition: background 0.2s;
        }

        .h-item-clean:active {
            background-color: #f9f9f9; /* Efek klik halus */
        }

        /* Ikon Bulat di Kiri */
        .h-icon-circle {
            width: 42px;
            height: 42px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 18px;
            margin-right: 15px;
            flex-shrink: 0;
        }
        /* Warna Background Ikon */
        .bg-icon-in { background: #e8f5e9; color: #27ae60; } /* Hijau Soft */
        .bg-icon-out { background: #ffebee; color: #c0392b; } /* Merah Soft */
/* Tambahkan ini untuk Ikon Belanja (Biru Soft) */
.bg-icon-shop { background: #e3f2fd; color: #1976d2; }
        /* Detail Teks Tengah */
        .h-info {
            flex: 1; /* Mengisi ruang kosong */
            display: flex;
            flex-direction: column;
            justify-content: center;
        }
        .h-label {
            font-size: 13px;
            font-weight: 600;
            color: #333;
            margin-bottom: 2px;
            line-height: 1.2;
        }
        .h-date {
            font-size: 10px;
            color: #999;
        }

        /* Bagian Kanan (Nominal & Status) */
        .h-right {
            text-align: right;
            display: flex;
            flex-direction: column;
            align-items: flex-end;
        }
        .h-value {
            font-size: 13px;
            font-weight: 700;
            letter-spacing: 0.3px;
        }
        .val-plus { color: #27ae60; }
        .val-min { color: #333; } /* Nominal keluar warna hitam/abu biar elegan */

        /* Badge Status Kecil */
        .h-status {
            font-size: 9px;
            font-weight: 600;
            padding: 2px 6px;
            border-radius: 4px;
            margin-top: 3px;
            text-transform: uppercase;
        }
        .st-pending { background: #fff3cd; color: #856404; }
        .st-success { background: #d4edda; color: #155724; }
        .st-failed { background: #f8d7da; color: #721c24; }
 
 /* ========================================= */
        /* === FITUR BARU: HALAMAN QRIS FULL SCREEN === */
        /* ========================================= */
        .qris-container {
            padding: 15px;
            background-color: #f4f6f9;
            min-height: 100vh;
        }
        .qris-card {
            background: #ffffff;
            border-radius: 12px;
            padding: 20px;
            box-shadow: 0 4px 10px rgba(0,0,0,0.03);
            margin-bottom: 15px;
            border: 1px solid #f0f0f0;
        }
        .qris-label {
            font-size: 14px;
            font-weight: 700;
            color: #333;
            margin-bottom: 10px;
            display: block;
        }
       /* Kotak Putus-putus Scan QR (Direvisi jadi Solid Biasa) */
        .qris-scan-box {
            border: 1px solid #ccc; /* DIUBAH JADI GARIS SOLID BIASA */
            border-radius: 8px;
            padding: 15px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            background-color: #ffffff; /* DIUBAH JADI PUTIH */
            cursor: pointer;
            margin-bottom: 20px;
        }
        .qris-scan-box span {
            font-weight: 700;
            color: #666;
            font-size: 14px;
        }
        .qris-scan-box i {
            font-size: 24px;
            color: #333;
        }
        /* Input Nominal dengan awalan Rp */
        .qris-input-group {
            display: flex;
            border: 1px solid #ccc;
            border-radius: 8px;
            overflow: hidden;
            margin-bottom: 5px;
        }
        .qris-input-addon {
            background-color: #f1f3f5;
            padding: 12px 15px;
            font-weight: 700;
            color: #333;
            border-right: 1px solid #ccc;
        }
        .qris-input-field {
            flex: 1;
            border: none;
            padding: 12px;
            font-size: 16px;
            font-weight: bold;
            outline: none;
        }
        .qris-hint {
            font-size: 12px;
            color: #777;
            margin-bottom: 20px;
            font-weight: 600;
        }
        /* Tombol Biru Cerah */
        .btn-qris-blue {
            background-color: #00bdf2;
            color: white;
            width: 100%;
            padding: 14px;
            border: none;
            border-radius: 8px;
            font-size: 16px;
            font-weight: bold;
            cursor: pointer;
            box-shadow: 0 4px 10px rgba(0, 189, 242, 0.3);
            transition: transform 0.2s;
        }
        .btn-qris-blue:active {
            transform: scale(0.98);
        }
        /* Card Riwayat Transfer */
        .qris-history-card {
            background: #ffffff;
            border-radius: 12px;
            padding: 20px;
            box-shadow: 0 4px 10px rgba(0,0,0,0.03);
            border: 1px solid #f0f0f0;
            font-size: 18px;
            font-weight: 700;
            color: #00bdf2;
            cursor: pointer;
            display: flex;
            align-items: center;
        }
  
/* ============================================================ */
        /* === PERBAIKAN TAMPILAN: PAKSA MODE MOBILE DI DESKTOP/PC === */
        /* ============================================================ */
        
        /* Kodingan ini hanya aktif jika lebar layar lebih dari 500px (Tablet/Laptop/PC) */
        @media screen and (min-width: 500px) {
            
            /* 1. Buat latar belakang gelap di luar area aplikasi */
            body {
                background-color: #333 !important; /* Warna abu gelap */
                display: flex;
                justify-content: center;
                background-image: linear-gradient(to bottom, #2c3e50, #000000);
                min-height: 100vh;
            }

            /* 2. Batasi lebar semua Halaman Utama agar seperti HP */
            .app-page, 
            .app-full-page, 
            #auth-page {
                width: 100% !important;
                max-width: 480px !important; /* Batas lebar HP */
                margin: 0 auto; /* Posisi Tengah */
                background-color: var(--primary-bg);
                min-height: 100vh;
                box-shadow: 0 0 50px rgba(0,0,0,0.5); /* Efek Bayangan agar timbul */
                position: relative;
                overflow-x: hidden;
            }

            /* 3. Perbaiki Elemen yang posisinya FIXED (Navbar, Header, Modal) */
            /* Agar tidak melebar ke seluruh layar monitor, tapi tetap di dalam area 480px */
            
          #header,                 /* Header Home */
            .bottom-navbar,          /* Menu Bawah */
            .pdp-footer,             /* Tombol Beli Produk */
            .pdp-header,             /* Header Produk */
            .fs-header,              /* Header Halaman Full */
            .chat-window,            /* Jendela Chat */
            .modal-overlay,          /* Background Modal */
            #lock-screen-overlay,    /* Layar Kunci */
            #pwa-install-banner,     /* Tombol Install */
            .cart-footer,            /* Footer Keranjang */
            .search-tree-container,  /* Search Jaringan */
            .chat-input-area,        /* Input Chat */
            .vigo-sticky-header      /* TAMBAHAN BARU: Header Scroll VIGO */
            {
                            max-width: 480px !important;
                width: 100% !important;
                left: 50% !important;
                transform: translateX(-50%) !important;
                right: auto !important;
                border-left: 1px solid rgba(0,0,0,0.1); /* Batas visual */
                border-right: 1px solid rgba(0,0,0,0.1);
            }

            /* 4. Fix Khusus Header Home (Karena aslinya punya transform sendiri) */
            #header {
                top: 0 !important;
                transform: translateX(-50%) !important;
                position: fixed !important;
                border-radius: 0 0 20px 20px;
            }

            /* 5. Fix Tombol Chat Melayang (Floating Button) */
            /* Agar tetap menempel di pojok kanan AREA HP, bukan pojok kanan MONITOR */
            .floating-chat-btn {
                position: fixed !important;
                left: auto !important; 
                /* Rumus: Tengah Layar + Setengah Lebar HP - Jarak Margin */
                right: calc(50% - 240px + 20px) !important; 
                transform: none !important;
                width: 60px !important; /* Reset width */
            }

            /* 6. Halaman Login/Auth agar rapi di tengah */
            #auth-page {
                display: flex;
                align-items: center; /* Vertikal tengah */
                justify-content: center; /* Horizontal tengah */
                padding-top: 0 !important;
            }
            .auth-card {
                width: 90% !important;
                margin: 0 auto !important;
                box-shadow: none !important; /* Hilangkan shadow ganda */
            }

            /* 7. Sembunyikan Scrollbar Desktop yang jelek */
            ::-webkit-scrollbar {
                width: 5px;
            }
            ::-webkit-scrollbar-thumb {
                background: #888; 
                border-radius: 10px;
            }
            ::-webkit-scrollbar-track {
                background: #f1f1f1; 
            }
        }
 
 /* ========================================= */
        /* FITUR MEDIA & TUTORIAL VIGO (RINGAN & CEPAT) */
        /* ========================================= */
        
        #media-tutorial-page {
            background-color: #f4f6f9;
        }

        .video-list-container {
            padding: 15px;
            padding-bottom: 100px;
        }

        .video-card-vigo {
            background: white;
            border-radius: 12px;
            box-shadow: 0 4px 10px rgba(0,0,0,0.05);
            margin-bottom: 20px;
            overflow: hidden;
            border: 1px solid #eee;
        }

        /* Wrapper Video 16:9 yang Presisi */
        .yt-wrapper {
            position: relative;
            padding-bottom: 56.25%; /* Ratio 16:9 */
            height: 0;
            overflow: hidden;
            background: #000;
            cursor: pointer;
        }
        
        .yt-wrapper img {
            position: absolute;
            top: 0; left: 0;
            width: 100%; height: 100%;
            object-fit: cover;
            opacity: 0.8;
            transition: 0.3s;
        }
        
        .yt-wrapper:hover img {
            opacity: 1;
        }

        /* Tombol Play Merah Tengah */
        .yt-play-btn {
            position: absolute;
            top: 50%; left: 50%;
            transform: translate(-50%, -50%);
            width: 60px; height: 40px;
            background-color: rgba(255, 0, 0, 0.8);
            border-radius: 10px;
            display: flex; justify-content: center; align-items: center;
            color: white; font-size: 20px;
            transition: 0.2s;
            z-index: 2;
        }
        
        .yt-wrapper:hover .yt-play-btn {
            background-color: red;
            transform: translate(-50%, -50%) scale(1.1);
        }

        .yt-wrapper iframe {
            position: absolute;
            top: 0; left: 0;
            width: 100%; height: 100%;
            border: 0;
            z-index: 3;
        }

        .video-info-vigo {
            padding: 15px;
        }

        .video-title-vigo {
            font-size: 14px;
            font-weight: bold;
            color: #333;
            line-height: 1.4;
        }
        /* Warna saat Bioskop aktif di kartu itu */
        .is-cinema .cinema-toggle-box {
            border-color: #ff4500;
            background: rgba(255, 69, 0, 0.1);
        }
       .is-cinema .cinema-toggle-box label {
            color: #ff4500;
        }

        /* ========================================= */
        /* === CSS KHUSUS HALAMAN POIN HADIAH === */
        /* ========================================= */
        .box-poin {
           background: white; border-radius: 12px; box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px;
           position: relative; width: 93.5%; margin: -40px auto 0 auto; padding: 10px; padding-top: 0px; text-align: center; z-index: 10;
        }
        .box-poin p {
           background: #2196f3; color: white; font-weight: 600; margin-bottom: 20px; width: 150px;
           border-radius: 0px 0px 10px 10px; padding: 5px 0; margin-left: auto; margin-right: auto;
        }
        .btn-tutor-poin a {
           margin: 0 5px; font-size: 10px; padding: 8px 12px; border-radius: 100px;
           margin-top: 15px; text-decoration: none; display: inline-block; border: none;
           background-color: #2196f3; color: white !important; font-weight: 600;
        }
        .card-poin {
            padding-bottom: 0px; border-radius: 10px !important; border: none;
            box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px; margin-top: 15px; background: white;
        }
        .card-poin-header {
             background: #fff; color: #2196f3; font-weight: bold; font-size: 15px;
             border-radius: 10px 10px 0px 0px !important; padding: 10px 15px; border-bottom: 1px solid #eee;
        }
        .icon-opt { float: right; margin-top: -60px; width: 100px; }
        
        /* TABS POIN */
        .tab-poin { overflow: hidden; display: flex; background-color: #f4f6f9; margin-top: 15px; }
        .tab-poin button {
          background-color: inherit; border: none; width: 33.3%; font-weight: bold;
          cursor: pointer; transition: 0.3s; color: #888; font-size: 13px; padding: 10px 5px; border-bottom: 3px solid transparent;
        }
        .tab-poin button.active { color: #2196f3; border-bottom: 3px solid #2196f3; }
        .tabcontent-poin { display: none; padding-bottom: 30px; }
        
        /* LIST MARCHIN */
        .box-marchin {
            box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px; margin-top: 15px; background: white;
            width: 100%; height: 80px; border-radius: 10px 0px 0px 10px; display: flex;
        }
        .marchin-image img {
            width: 60px; margin-right: 15px; padding: 10px; border-radius: 10px;
            box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px; margin: 10px;
        }
      .button-poin {
           font-size: 13px; text-align: center; margin-top: 15px; padding: 5px; width: 100px;
           background: #2196f3; color: white; height: 80px; border-radius: 0px 10px 10px 0px;
           box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px; cursor: pointer; display: flex; flex-direction: column; justify-content: center;
        }

        /* ========================================= */
        /* CSS BARU: VIGO RIDE & DRIVER REGISTRATION */
        /* ========================================= */
        #map-container {
            width: 100%;
            height: 50vh; /* Setengah layar HP */
            background: #eee;
            z-index: 1; /* Jangan lebih tinggi dari header */
        }
        
        .ride-booking-panel {
            background: white;
            padding: 20px;
            border-top-left-radius: 20px;
            border-top-right-radius: 20px;
            box-shadow: 0 -5px 20px rgba(0,0,0,0.1);
            position: relative;
            z-index: 10;
            margin-top: -20px; /* Menutupi bawah map sedikit */
            min-height: 50vh;
        }

        .ride-input-box {
            display: flex;
            align-items: center;
            background: #f4f6f9;
            padding: 12px 15px;
            border-radius: 10px;
            margin-bottom: 10px;
            border: 1px solid #e0e0e0;
        }

        .ride-input-box i { font-size: 16px; width: 25px; text-align: center; }
        .ride-input-box input { border: none; background: transparent; width: 100%; outline: none; font-size: 14px; font-family: 'Poppins', sans-serif;}
        
        .ride-price-box {
            display: flex; justify-content: space-between; align-items: center;
            padding: 15px 0; border-top: 1px dashed #ccc; margin-top: 10px;
        }
        
        .btn-order-ride {
            background: var(--brand-color); color: white; width: 100%; padding: 15px;
            border: none; border-radius: 10px; font-weight: bold; font-size: 16px;
            box-shadow: 0 4px 10px rgba(0,0,0,0.2); transition: 0.2s;
        }
        .btn-order-ride:active { transform: scale(0.98); }

/* KODE BARU: UI PENCARIAN ALAMAT GOJEK STYLE */
        #location-search-overlay {
            display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%;
            background: white; z-index: 35000; flex-direction: column;
        }
        .search-header { display: flex; align-items: center; padding: 15px; box-shadow: 0 2px 10px rgba(0,0,0,0.05); }
        .search-back { font-size: 20px; color: #333; margin-right: 15px; cursor: pointer; }
        .search-input-wrapper { flex: 1; position: relative; }
        .search-input-wrapper input { width: 100%; background: #f4f6f9; border: none; padding: 12px 15px; border-radius: 10px; outline: none; font-size: 14px; }
        .search-result-list { flex: 1; overflow-y: auto; padding: 0 15px; }
        .loc-item { display: flex; align-items: flex-start; padding: 15px 0; border-bottom: 1px solid #eee; cursor: pointer; }
        .loc-item i { font-size: 18px; color: #888; width: 30px; margin-top: 2px; }
        .loc-item-text h4 { font-size: 14px; font-weight: bold; color: #333; margin: 0 0 3px 0; }
        .loc-item-text p { font-size: 11px; color: #888; margin: 0; }
        .use-gps-btn { display: flex; align-items: center; padding: 15px 0; border-bottom: 5px solid #f4f6f9; cursor: pointer; color: var(--brand-color); font-weight: bold; }
        
        #ride-status-box { display:none; background:white; padding:20px; border-radius:15px; box-shadow:0 -5px 20px rgba(0,0,0,0.1); position:relative; z-index:10; margin-top:-20px; text-align:center;}
        .loading-pulse { width:50px; height:50px; background:var(--brand-color); border-radius:50%; margin:0 auto 15px auto; animation: pulse 1.5s infinite; display:flex; justify-content:center; align-items:center; color:white; font-size:20px;}
        @keyframes pulse { 0% {box-shadow: 0 0 0 0 rgba(0,31,63,0.7);} 70% {box-shadow: 0 0 0 20px rgba(0,31,63,0);} 100% {box-shadow: 0 0 0 0 rgba(0,31,63,0);} }

/* --- CSS BARU: VIGO RIDE UI ACTIVE & REVIEW --- */
        #active-ride-panel {
            background: white; border-radius: 25px 25px 0 0; padding: 20px;
            box-shadow: 0 -10px 25px rgba(0,0,0,0.1); position: relative; z-index: 1000; margin-top: -20px;
            display: none; flex-direction: column;
        }
        .driver-info-box { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px dashed #eee; padding-bottom: 15px; margin-bottom: 15px; }
        .driver-profile { display: flex; align-items: center; gap: 12px; }
        .driver-pic { width: 50px; height: 50px; border-radius: 50%; border: 2px solid var(--brand-color); object-fit: cover; }
        .driver-name { font-size: 15px; font-weight: 800; color: #333; margin: 0; }
        .driver-plate { font-size: 11px; background: #f1f5f9; padding: 3px 8px; border-radius: 6px; font-weight: 600; color: var(--text-secondary); display: inline-block; margin-top: 2px; }
        
        .ride-action-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 15px; }
        .btn-ride-action { padding: 12px; border-radius: 12px; font-weight: 700; font-size: 13px; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 8px; transition: 0.2s; }
        .btn-tips { background: #fffbeb; color: #d97706; border: 1px solid #fde68a; }
        .btn-tips:active { background: #fde68a; }
        .btn-chat-driver { background: #eff6ff; color: var(--brand-color); border: 1px solid #bfdbfe; }
        
        .ride-status-bar { width: 100%; padding: 12px; border-radius: 10px; font-weight: 800; font-size: 13px; text-align: center; color: white; transition: 0.3s; margin-top: 10px; box-shadow: 0 4px 10px rgba(0,0,0,0.1); }
        .status-jemput { background: var(--brand-color); animation: pulseBlue 1.5s infinite; }
        .status-jalan { background: #27ae60; } /* FIX: Menggunakan Hex Warna Hijau Standar */
        @keyframes pulseBlue { 0% { box-shadow: 0 0 0 0 rgba(0, 31, 63, 0.3); } 70% { box-shadow: 0 0 0 8px rgba(0, 31, 63, 0); } 100% { box-shadow: 0 0 0 0 rgba(0, 31, 63, 0); } }

       /* MODAL RATING & REVIEW (REVISI ELEGAN & LUXURY) */
        .rating-stars img { 
            width: 38px; 
            cursor: pointer; 
            transition: all 0.3s ease; 
            /* Bintang tidak aktif dibuat abu-abu dan transparan */
            filter: grayscale(100%) opacity(0.3); 
        }
        .rating-stars img.active { 
            /* Bintang aktif dimunculkan warna aslinya, membesar sedikit, dan diberi efek cahaya/bayangan emas */
            filter: grayscale(0%) opacity(1); 
            transform: scale(1.2); 
            filter: drop-shadow(0px 5px 8px rgba(255, 165, 0, 0.5));
        }
        
  /* ======================================================== */
        /* CSS BARU: TOKO SAYA & CHAT SELLER (UI DIPERBAIKI)        */
        /* ======================================================== */
        .merchant-dashboard-header {
            background: linear-gradient(135deg, #8e24aa 0%, #311b92 100%);
            color: white; padding: 40px 20px; text-align: center;
            border-bottom-left-radius: 25px; border-bottom-right-radius: 25px;
            box-shadow: 0 10px 20px rgba(142, 36, 170, 0.2);
        }
        .store-avatar { 
            width: 80px; height: 80px; border-radius: 50%; 
            border: 3px solid white; margin: 0 auto 10px auto; 
            display: flex; justify-content: center; align-items: center; 
            background: rgba(255,255,255,0.2); font-size: 35px; 
            box-shadow: 0 5px 15px rgba(0,0,0,0.2);
        }
        
        /* Mobile Product Input Form (Vertical Stack) */
        .mobile-form-group { margin-bottom: 18px; text-align: left; }
        .mobile-label { font-size: 13px; font-weight: 700; color: #444; margin-bottom: 8px; display: block; }
        .mobile-input { 
            width: 100%; background: #fcfcfc; border: 1px solid #ddd; 
            padding: 14px; border-radius: 12px; font-size: 14px; outline: none; 
            transition: 0.3s;
        }
        .mobile-input:focus { border-color: var(--brand-color); background: #fff; box-shadow: 0 0 0 3px rgba(0,31,63,0.1); }
        
        .pdp-btn-chat-seller {
            background: #e8f5e9; color: #2e7d32; border: 1px solid #a5d6a7;
            border-radius: 10px; font-size: 13px; font-weight: bold; padding: 10px 15px;
            display: flex; align-items: center; justify-content: center; gap: 8px; 
            width: 100%; margin-top: 15px; cursor: pointer; transition: 0.2s;
        }
        .pdp-btn-chat-seller:active { transform: scale(0.98); background: #c8e6c9; }

        /* Seller Chat P2P Modal */
        #seller-chat-modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: white; z-index: 45000; flex-direction: column; }
        .seller-chat-header { background: #2e7d32; color: white; padding: 15px 20px; display: flex; align-items: center; gap: 15px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); }
        
        /* Penanda Toko di Card Home */
        .badge-toko { position: absolute; top: 5px; left: 5px; background: rgba(142, 36, 170, 0.9); color: white; font-size: 9px; padding: 4px 8px; border-radius: 6px; font-weight: bold; z-index: 5; backdrop-filter: blur(2px); }    
        
/* === UI TAMBAHAN MASTER PRODUK MITRA === */
        /* Accordion Form Lipat */
        .form-section { background: #fff; border: 1px solid #eee; border-radius: 12px; margin-bottom: 15px; overflow: hidden; box-shadow: 0 2px 5px rgba(0,0,0,0.02); }
        .form-section summary { background: #f8fafc; padding: 15px; font-weight: 700; color: var(--brand-color); cursor: pointer; display: flex; align-items: center; justify-content: space-between; font-size: 13px; outline: none; }
        .form-section summary::-webkit-details-marker { display: none; }
        .form-section summary::after { content: '\f107'; font-family: 'Font Awesome 5 Free'; color: #888; }
        .form-section[open] summary::after { content: '\f106'; }
        .form-section-body { padding: 15px; border-top: 1px solid #eee; }

        /* Grid Upload Foto Max 10 */
        .img-upload-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 10px; }
        .img-upload-box { aspect-ratio: 1; border: 2px dashed #ddd; border-radius: 8px; display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; background: #fafafa; cursor: pointer; overflow: hidden; }
        .img-upload-box i { font-size: 20px; color: #aaa; margin-bottom: 5px; }
        .img-upload-box span { font-size: 9px; color: #888; text-align: center; }
        .img-upload-box img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; z-index: 2; }
        .img-upload-box input[type="file"] { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; z-index: 3; }

        /* Label Opsional */
        .lbl-optional { font-size: 10px; color: #aaa; font-weight: normal; font-style: italic; float: right; }

        /* Card Khusus Dashboard Toko (Bisa Edit/Hapus) */
        .merchant-item-card { display: flex; background: white; border-radius: 10px; padding: 10px; margin-bottom: 12px; box-shadow: 0 2px 8px rgba(0,0,0,0.05); border: 1px solid #f0f0f0; }
        .merchant-item-img { width: 70px; height: 70px; border-radius: 8px; object-fit: cover; margin-right: 12px; }
        .merchant-item-info { flex: 1; display: flex; flex-direction: column; justify-content: center; }
        .merchant-item-title { font-size: 13px; font-weight: bold; color: #333; margin-bottom: 4px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
        .merchant-item-price { font-size: 14px; font-weight: bold; color: var(--orange-btn); }
        .merchant-item-stock { font-size: 10px; color: #888; }
        .merchant-item-actions { display: flex; flex-direction: column; justify-content: space-around; gap: 5px; padding-left: 10px; border-left: 1px dashed #eee; }
        .btn-act-merch { width: 32px; height: 32px; border-radius: 6px; border: none; display: flex; align-items: center; justify-content: center; color: white; font-size: 12px; }
        .btn-edit-m { background: #3498db; }
        .btn-del-m { background: #e74c3c; }  
/* === UI CHECKOUT SHOPEE STYLE === */
        .checkout-address-box { background: white; padding: 20px 15px; position: relative; margin-bottom: 10px; }
        .shopee-border-bottom { height: 3px; width: 100%; position: absolute; bottom: 0; left: 0; background: repeating-linear-gradient(45deg, #ff6b6b, #ff6b6b 33px, transparent 33px, transparent 41px, #4d90fe 41px, #4d90fe 74px, transparent 74px, transparent 82px); }
        .checkout-section { background: white; padding: 15px; margin-bottom: 10px; box-shadow: 0 1px 2px rgba(0,0,0,0.05); }
        .checkout-item { display: flex; align-items: center; margin-bottom: 15px; background: #fcfcfc; padding: 10px; border-radius: 8px; border: 1px solid #f0f0f0; }
        .checkout-item img { width: 55px; height: 55px; object-fit: cover; border-radius: 5px; margin-right: 15px; }
        .checkout-item-info { flex: 1; }
        .checkout-item-title { font-size: 13px; color: #333; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-bottom: 5px; }
        .checkout-item-price { font-size: 14px; font-weight: bold; color: var(--orange-btn); }
        
        .payment-method-box { border: 1px solid #ddd; padding: 12px; border-radius: 8px; margin-bottom: 10px; display: flex; align-items: center; gap: 10px; cursor: pointer; transition: 0.2s; }
        .payment-method-box.selected { border-color: var(--orange-btn); background: #fff0eb; color: var(--orange-btn); font-weight: bold; box-shadow: 0 2px 8px rgba(255, 69, 0, 0.1); }
        .payment-method-box i { font-size: 20px; width: 30px; text-align: center; }
        
        .city-search-result { max-height: 200px; overflow-y: auto; background: white; border: 1px solid #ddd; border-radius: 8px; position: absolute; width: calc(100% - 30px); z-index: 10; display: none; box-shadow: 0 5px 15px rgba(0,0,0,0.1); }
        .city-item { padding: 12px 15px; font-size: 12px; border-bottom: 1px solid #eee; cursor: pointer; line-height: 1.4; }
        .city-item:hover { background: #f0f8ff; color: var(--brand-color); font-weight: bold; }
  
/* ======================================================== */
        /* === FITUR BARU: VIGO STICKY HEADER SCROLL (ALA MOVA) === */
        /* ======================================================== */
        .vigo-sticky-header {
            position: fixed;
            top: -120px; /* Sembunyi di atas layar secara default */
            left: 0;
            width: 100%;
            background: rgba(255, 255, 255, 0.98);
            backdrop-filter: blur(10px);
            -webkit-backdrop-filter: blur(10px);
            z-index: 10500; /* Di atas elemen lain tapi di bawah modal */
            box-shadow: 0 4px 15px rgba(0,0,0,0.08);
            transition: top 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); /* Animasi turun yang elegan */
            border-bottom-left-radius: 15px;
            border-bottom-right-radius: 15px;
            padding-top: 15px; /* Jarak aman notch HP */
        }

        /* Class ini ditambahkan oleh JS saat di-scroll */
        .vigo-sticky-header.show {
            top: 0;
        }

        /* Baris Atas: Logo VIGO & Tagline */
        .vigo-brand-row {
            display: flex;
            align-items: center;
            padding: 10px 15px;
            gap: 10px;
        }
        .vigo-logo-text {
            color: #e60023; /* Merah Mewah */
            font-size: 22px;
            font-weight: 900;
            letter-spacing: 1px;
            margin: 0;
            line-height: 1;
        }
        .vigo-tagline {
            color: #555;
            font-size: 13px;
            font-weight: 500;
            margin: 0;
            line-height: 1.2;
        }

        /* Baris Bawah: Menu Kategori Scroll */
        .vigo-nav-row {
            display: flex;
            overflow-x: auto;
            padding: 0 15px 12px 15px;
            gap: 10px;
            scrollbar-width: none; /* Sembunyikan scrollbar Firefox */
            -ms-overflow-style: none;  /* Sembunyikan scrollbar IE/Edge */
        }
        .vigo-nav-row::-webkit-scrollbar {
            display: none; /* Sembunyikan scrollbar Chrome/Safari */
        }
        
        .vigo-nav-pill {
            white-space: nowrap;
            padding: 6px 15px;
            border-radius: 20px;
            font-size: 12px;
            font-weight: 600;
            color: #666;
            border: 1px solid #ddd;
            cursor: pointer;
            transition: all 0.2s ease;
        }
        .vigo-nav-pill:active {
            transform: scale(0.95);
        }
        
        /* Style saat menu kategori aktif */
        .vigo-nav-pill.active {
            color: #e60023;
            border-color: #e60023;
            background-color: #fff0f2;
        } 
 
 /* ======================================================== */
        /* CSS BARU: UI PEMBAYARAN & GPS CHECKOUT                   */
        /* ======================================================== */
        .btn-gps-checkout {
            background: #e3f2fd; color: #1976d2; border: 1px solid #bbdefb;
            padding: 8px 12px; border-radius: 8px; font-size: 12px; font-weight: bold;
            width: 100%; text-align: left; margin-bottom: 8px; cursor: pointer;
            display: flex; align-items: center; justify-content: space-between;
            transition: 0.2s;
        }
        .btn-gps-checkout:active { background: #bbdefb; transform: scale(0.98); }
        
        /* Modal Pilihan Bank / E-Wallet Bottom Sheet */
        .payment-channel-overlay {
            display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%;
            background: rgba(0,0,0,0.6); z-index: 30000; align-items: flex-end; justify-content: center;
            backdrop-filter: blur(3px);
        }
        .payment-channel-box {
            background: white; width: 100%; max-width: 480px; border-radius: 20px 20px 0 0;
            padding: 20px; animation: slideUpSheet 0.3s ease; max-height: 80vh; overflow-y: auto;
        }
        @keyframes slideUpSheet { from {transform: translateY(100%);} to {transform: translateY(0);} }
        
        .channel-item {
            display: flex; align-items: center; padding: 15px; border: 1px solid #eee;
            border-radius: 12px; margin-bottom: 10px; cursor: pointer; transition: 0.2s;
        }
        .channel-item:hover { background: #fcfcfc; }
        .channel-item.active { border-color: var(--orange-btn); background: #fff0eb; }
        .channel-item img { width: 40px; height: auto; margin-right: 15px; object-fit: contain; }
        .channel-info { flex: 1; }
        .channel-name { font-weight: bold; font-size: 14px; color: #333; }
        .channel-desc { font-size: 11px; color: #888; }

        /* Halaman Instruksi Pembayaran */
        .instruction-box { background: white; padding: 20px; border-radius: 15px; text-align: center; margin-bottom: 15px; box-shadow: 0 4px 10px rgba(0,0,0,0.05); }
        .rek-number { font-size: 24px; font-weight: 900; letter-spacing: 2px; color: var(--brand-color); margin: 10px 0; padding: 10px; background: #f8f9fa; border-radius: 10px; border: 1px dashed #ccc; }  
 
 /* ======================================================== */
        /* CSS BARU: KASIR OFFLINE & TRANSFER SALDO (O2O)           */
        /* ======================================================== */
        .instore-modal-box {
            background: white; width: 100%; max-width: 400px;
            border-radius: 20px 20px 0 0; padding: 25px 20px;
            position: absolute; bottom: 0; animation: slideUpSheet 0.3s ease;
        }
        .instore-prod-info { display: flex; align-items: center; gap: 15px; margin-bottom: 20px; padding-bottom: 15px; border-bottom: 1px dashed #eee; }
        .instore-prod-img { width: 60px; height: 60px; border-radius: 10px; object-fit: cover; }
        .instore-prod-title { font-weight: 800; font-size: 15px; color: #333; line-height: 1.2; margin-bottom: 5px; }
        .instore-prod-price { font-weight: 900; color: var(--orange-btn); font-size: 18px; }
        
        .pay-method-btn {
            display: flex; align-items: center; justify-content: space-between;
            padding: 15px; border-radius: 12px; border: 2px solid #eee;
            margin-bottom: 10px; cursor: pointer; transition: 0.2s;
        }
        .pay-method-btn:active { transform: scale(0.98); }
        .pay-method-btn.saldo { background: #f0fdf4; border-color: #bbf7d0; }
        .pay-method-btn.cash { background: #fffbeb; border-color: #fde68a; }
        
        .pay-method-title { font-weight: 800; font-size: 14px; color: #333; }
        .pay-method-desc { font-size: 10px; color: #666; margin-top: 2px; }
 
 /* ======================================================== */
        /* CSS BARU: FORM KASIR OFFLINE & VISUAL SCANNER            */
        /* ======================================================== */
        
        /* Modal Form Input Produk Baru */
        #register-kasir-modal .modal-box { max-width: 450px; max-height: 90vh; overflow-y: auto; text-align: left; }
        .kasir-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 10px; }
        
        /* Toggle Barcode vs Visual */
        .scan-mode-toggle { display: flex; background: #eee; border-radius: 30px; margin-bottom: 15px; overflow: hidden; }
        .scan-mode-btn { flex: 1; text-align: center; padding: 10px; font-size: 12px; font-weight: bold; cursor: pointer; color: #888; transition: 0.3s; }
        .scan-mode-btn.active { background: var(--brand-color); color: white; }

        /* ======================================================== */
        /* CSS REVISI: KAMERA DIPERBESAR & UI REKOMENDASI AI        */
        /* ======================================================== */
        
        /* Kamera Diperbesar dari 250px menjadi 350px (Lebih lega) */
        #visual-camera-container { width: 100%; height: 380px; background: black; position: relative; border-radius: 12px; overflow: hidden; display: none; margin-bottom: 10px; }
        #visual-video { width: 100%; height: 100%; object-fit: cover; }
        #visual-capture-btn { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); background: var(--orange-btn); color: white; border: none; padding: 12px 25px; border-radius: 30px; font-weight: 900; font-size: 14px; cursor: pointer; box-shadow: 0 4px 15px rgba(255, 69, 0, 0.5); z-index: 10; }
        #visual-capture-btn:active { transform: translateX(-50%) scale(0.9); }
        
        /* Target overlay ala Iron Man */
        .scan-overlay-ui { position: absolute; top:0; left:0; width:100%; height:100%; pointer-events: none; }
        .scan-overlay-ui::before { content:''; position: absolute; top: 15%; left: 15%; right: 15%; bottom: 25%; border: 2px dashed rgba(255,255,255,0.7); border-radius: 15px; box-shadow: 0 0 0 1000px rgba(0,0,0,0.4); }

        /* UI Daftar Rekomendasi Mirip */
        .similar-item { display: flex; align-items: center; padding: 10px; border-bottom: 1px solid #eee; cursor: pointer; transition: 0.2s; }
        .similar-item:active { background: #f0f8ff; }
        .similar-img { width: 45px; height: 45px; border-radius: 8px; object-fit: cover; margin-right: 15px; }
        .similar-info { flex: 1; text-align: left; }
        .similar-title { font-size: 13px; font-weight: bold; color: #333; margin-bottom: 2px; }
        .similar-score { font-size: 10px; font-weight: bold; color: var(--orange-btn); }
     