:root {
    --bg-dark: #0f172a;
    --card-bg: rgba(30, 41, 59, 0.7);
    --accent-cyan: #06b6d4;
    --accent-glow: rgba(6, 182, 212, 0.25);
    --border-glow: rgba(56, 189, 248, 0.2);
    --text-muted: #94a3b8;
}

body {
    background-color: var(--bg-dark) !important;
    color: #f8fafc !important;
    font-family: 'Plus Jakarta Sans', sans-serif;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

/* Navbar Style */
.navbar-futuristic {
    background: rgba(15, 23, 42, 0.85) !important;
    backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border-glow);
}

.navbar-dark .navbar-nav .nav-link {
    color: #cbd5e1 !important;
}

.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link.active {
    color: #38bdf8 !important;
}

/* Glassmorphism Card Style */
.glass-card {
    background: var(--card-bg) !important;
    backdrop-filter: blur(16px);
    border: 1px solid var(--border-glow) !important;
    border-radius: 1rem;
    box-shadow: 0 10px 30px -10px rgba(0,0,0,0.5);
    transition: all 0.3s ease;
}

.glass-card:hover {
    border-color: var(--accent-cyan) !important;
    box-shadow: 0 10px 30px -5px var(--accent-glow);
}

/* Neon Button */
.btn-neon {
    background: linear-gradient(135deg, #06b6d4, #3b82f6) !important;
    color: #ffffff !important;
    font-weight: 600;
    border: none !important;
    box-shadow: 0 4px 15px var(--accent-glow);
    transition: all 0.3s ease;
}

.btn-neon:hover {
    color: #ffffff !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px var(--accent-glow);
}

/* Text Overrides for Dark Theme */
.text-muted {
    color: #94a3b8 !important;
}

/* Sinkronisasi Tab Navigasi */
.nav-tabs {
    border-bottom: 1px solid var(--border-glow) !important;
}

.nav-tabs .nav-link {
    color: #94a3b8 !important;
    background-color: transparent !important;
    border: none !important;
    border-radius: 0.5rem 0.5rem 0 0;
    transition: all 0.2s ease;
}

.nav-tabs .nav-link:hover {
    color: #38bdf8 !important;
    background-color: rgba(56, 189, 248, 0.05) !important;
}

.nav-tabs .nav-link.active {
    color: #38bdf8 !important;
    background-color: rgba(6, 182, 212, 0.15) !important;
    border-bottom: 2px solid #06b6d4 !important;
}

/* ---------------------------------------------------
   SINKRONISASI TABEL BOOTSTRAP (UNTUK DESKTOP VIEW)
   Desktop tetap berupa tabel normal seperti semula
--------------------------------------------------- */
.table-responsive {
    background-color: transparent !important;
}

.table-futuristic,
.table-futuristic > :not(caption) > * > * {
    background-color: transparent !important;
    color: #f8fafc !important;
    border-color: var(--border-glow) !important;
    box-shadow: none !important;
}

.table-futuristic th {
    background-color: rgba(15, 23, 42, 0.8) !important;
    color: #38bdf8 !important;
    font-weight: 700;
    border-bottom: 2px solid var(--border-glow) !important;
}

.table-futuristic td {
    background-color: transparent !important;
    color: #f8fafc !important;
    border-bottom: 1px solid rgba(56, 189, 248, 0.1) !important;
    vertical-align: middle;
}

.table-futuristic tbody tr:hover > * {
    background-color: rgba(56, 189, 248, 0.05) !important;
    color: #ffffff !important;
}

/* Wrapper Layout Fix */
.main-wrapper {
    flex: 1;
}

/* ---------------------------------------------------
   TRANSFORMASI KARTU KHUSUS MOBILE VIEW (MAX-WIDTH: 768PX)
   Mengubah tabel menjadi Card View elegan persis seperti contoh
   tanpa mengubah sedikit pun tampilan desktop view.
--------------------------------------------------- */
@media screen and (max-width: 768px) {
    .table-futuristic thead {
        display: none !important;
    }

    .table-futuristic, 
    .table-futuristic tbody, 
    .table-futuristic tr, 
    .table-futuristic td {
        display: block !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .table-futuristic tr {
        background: rgba(30, 41, 59, 0.85) !important;
        border: 1px solid rgba(56, 189, 248, 0.25) !important;
        border-radius: 1rem !important;
        margin-bottom: 1rem !important;
        padding: 14px 16px !important;
        box-shadow: 0 8px 25px rgba(0, 0, 0, 0.5);
    }

    .table-futuristic td {
        display: block !important;
        text-align: left !important;
        padding: 6px 0 !important;
        background: transparent !important;
        border: none !important;
        color: #f8fafc !important;
        font-size: 0.9rem !important;
    }

    .table-futuristic td:last-child {
        margin-top: 8px !important;
        padding-top: 8px !important;
        border-top: 1px solid rgba(56, 189, 248, 0.15) !important;
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
    }
}

/* =========================================================
   KHUSUS MOBILE VIEW: CARD VIEW & LABEL DATA WARGA
   Desktop view dijamin 100% aman dan tidak tersentuh.
========================================================= */
@media screen and (max-width: 768px) {
    /* Sembunyikan header tabel khusus di HP */
    .table-warga thead {
        display: none !important;
    }

    /* Ubah struktur tabel warga menjadi blok vertikal */
    .table-warga, 
    .table-warga tbody, 
    .table-warga tr, 
    .table-warga td {
        display: block !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    /* Desain Kartu Mobile */
    .table-warga tr {
        background: rgba(30, 41, 59, 0.9) !important;
        border: 1px solid rgba(56, 189, 248, 0.3) !important;
        border-radius: 1rem !important;
        margin-bottom: 1rem !important;
        padding: 14px 16px !important;
        box-shadow: 0 8px 25px rgba(0, 0, 0, 0.5);
    }

    /* Tata letak sel agar sejajar rapi kiri-kanan */
    .table-warga td {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        text-align: right !important;
        padding: 7px 0 !important;
        background: transparent !important;
        border: none !important;
        border-bottom: 1px solid rgba(56, 189, 248, 0.08) !important;
        color: #ffffff !important;
        font-size: 0.9rem !important;
    }

    /* Baris terakhir untuk tombol aksi diposisikan rapi di bawah */
    .table-warga td:last-child {
        border-bottom: none !important;
        margin-top: 8px !important;
        padding-top: 10px !important;
        border-top: 1px solid rgba(56, 189, 248, 0.15) !important;
        justify-content: flex-end !important;
    }

    /* Memunculkan label teks pengenal secara presisi */
    .table-warga tr td:nth-child(1)::before { content: "NIK :"; font-weight: 600; color: #38bdf8; text-align: left; }
    .table-warga tr td:nth-child(2)::before { content: "Nama :"; font-weight: 600; color: #38bdf8; text-align: left; }
    .table-warga tr td:nth-child(3)::before { content: "Alamat :"; font-weight: 600; color: #38bdf8; text-align: left; }
    .table-warga tr td:nth-child(4)::before { content: "No HP :"; font-weight: 600; color: #38bdf8; text-align: left; }
    .table-warga tr td:nth-child(5)::before { content: "Domisili :"; font-weight: 600; color: #38bdf8; text-align: left; }
    .table-warga tr td:nth-child(6)::before { content: "Catatan :"; font-weight: 600; color: #38bdf8; text-align: left; }
    .table-warga tr td:nth-child(7)::before { content: "Aksi :"; font-weight: 600; color: #38bdf8; text-align: left; }
}

/* =========================================================
   ISOLASI LABEL: HANYA AKTIF PADA HALAMAN DATA WARGA (MOBILE)
   Desktop view dijamin aman tanpa perubahan sedikit pun.
========================================================= */
@media screen and (max-width: 768px) {
    /* 1. Matikan label otomatis universal agar halaman Surat, Iuran, & Inventaris bersih */
    .table-futuristic tr td::before {
        content: none !important;
    }

    /* 2. Aktifkan label KHUSUS hanya untuk tabel dengan class .table-warga */
    .table-warga tr td:nth-child(1)::before { content: "NIK :" !important; font-weight: 600; color: #38bdf8; text-align: left; display: inline-block; }
    .table-warga tr td:nth-child(2)::before { content: "Nama :" !important; font-weight: 600; color: #38bdf8; text-align: left; display: inline-block; }
    .table-warga tr td:nth-child(3)::before { content: "Alamat :" !important; font-weight: 600; color: #38bdf8; text-align: left; display: inline-block; }
    .table-warga tr td:nth-child(4)::before { content: "No HP :" !important; font-weight: 600; color: #38bdf8; text-align: left; display: inline-block; }
    .table-warga tr td:nth-child(5)::before { content: "Domisili :" !important; font-weight: 600; color: #38bdf8; text-align: left; display: inline-block; }
    .table-warga tr td:nth-child(6)::before { content: "Catatan :" !important; font-weight: 600; color: #38bdf8; text-align: left; display: inline-block; }
    .table-warga tr td:nth-child(7)::before { content: "Aksi :" !important; font-weight: 600; color: #38bdf8; text-align: left; display: inline-block; }
}

/* =========================================================
   MOBILE VIEW FINAL FIX: PAKSA MUNCUL LABEL REKAP 1 TAHUN
   Desktop view 100% aman dan tidak tersentuh.
========================================================= */
@media screen and (max-width: 768px) {
    .table-rekap-tahun thead {
        display: none !important;
    }

    .table-rekap-tahun, 
    .table-rekap-tahun tbody, 
    .table-rekap-tahun tr, 
    .table-rekap-tahun td {
        display: block !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .table-rekap-tahun tr {
        background: rgba(30, 41, 59, 0.9) !important;
        border: 1px solid rgba(56, 189, 248, 0.3) !important;
        border-radius: 1rem !important;
        margin-bottom: 1rem !important;
        padding: 14px 16px !important;
        box-shadow: 0 8px 25px rgba(0, 0, 0, 0.5);
    }

    .table-rekap-tahun td {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        text-align: right !important;
        padding: 6px 0 !important;
        background: transparent !important;
        border: none !important;
        border-bottom: 1px solid rgba(56, 189, 248, 0.08) !important;
        color: #f8fafc !important;
        font-size: 0.85rem !important;
    }

    .table-rekap-tahun td:last-child {
        border-bottom: none !important;
    }

    /* Mengaktifkan kembali dan memaksa render label dari atribut data-label khusus rekap tahun */
    .table-rekap-tahun tr td::before {
        content: attr(data-label) !important;
        font-weight: 600 !important;
        color: #38bdf8 !important;
        text-align: left !important;
        display: inline-block !important;
    }
}