/* =========================================================
   inline-style-1
   Dipindahkan dari index.html agar CSS bisa dicache browser.
   ========================================================= */
body { font-family: Arial, Helvetica, sans-serif; background-color: #f1f5f9; }
        @media print {
            .no-print { display: none !important; }
            @page { size: A4 portrait; margin: 1.2cm; }
            @page kwitansiPage { size: A4 portrait; margin: 1cm; }
            @page coverPage { size: A5 portrait; margin: 1cm; }
            body { background-color: white; margin: 0; padding: 0; }
            .print-container { box-shadow: none !important; margin: 0 !important; padding: 0 !important; width: 100% !important; max-width: none !important; }
            table { width: 100% !important; table-layout: fixed; border-collapse: collapse; }
            .text-sm { font-size: 10pt !important; }
            #mainAppContainer, #mainContent, #previewView { display: block !important; height: auto !important; overflow: visible !important; width: 100% !important; background: white !important; padding: 0 !important; margin: 0 !important; }
            .page-break { page-break-after: always; }
            .page-break:last-child { page-break-after: auto; }
            .doc-page.hidden { display: none !important; }
            .doc-page.block { display: block !important; }

            /* Fokus cetak dokumen utama: A4 portrait, margin kertas normal, tanpa padding ganda. */
            #doc_spp.doc-page.block,
            #doc_sp2d.doc-page.block,
            #doc_rekomendasi.doc-page.block {
                width: 100% !important;
                max-width: none !important;
                min-height: auto !important;
                padding: 0 !important;
                margin: 0 !important;
                box-shadow: none !important;
            }
            #doc_spp.doc-page.block { font-size: 10.5pt !important; }
            #doc_spp.doc-page.block table { font-size: 9pt !important; }
            #doc_spp.doc-page.block .mt-12 { margin-top: 0.7cm !important; }
            #doc_spp.doc-page.block .gap-y-16 { row-gap: 0.65cm !important; }
            #doc_spp.doc-page.block .h-16 { height: 1.2cm !important; }
            #doc_spp.doc-page.block .mb-8 { margin-bottom: 0.5cm !important; }
            #doc_spp.doc-page.block .mb-6 { margin-bottom: 0.35cm !important; }

            #doc_sp2d.doc-page.block table { font-size: 8.7pt !important; }
            #doc_sp2d.doc-page.block td { padding-top: 0.09cm !important; padding-bottom: 0.09cm !important; }
            #doc_sp2d.doc-page.block .p-3 { padding: 0.16cm !important; }
            #doc_sp2d.doc-page.block .p-4 { padding: 0.2cm !important; }
            #doc_sp2d.doc-page.block .h-16 { height: 1.1cm !important; }
            #doc_sp2d.doc-page.block .min-h-\[75px\] { min-height: 1.45cm !important; }

            /* Kwitansi dicetak di A4 portrait: prioritas tidak terpotong, 1 kwitansi per halaman bila perlu. Border tetap dipertahankan. */
            body.print-kwitansi #doc_kwitansi,
            body.print-kwitansi #doc_kwitansi .page-break { page: kwitansiPage; }
            body.print-kwitansi #doc_kwitansi.doc-page.block {
                width: 100% !important;
                max-width: none !important;
                padding: 0 !important;
                margin: 0 !important;
                box-shadow: none !important;
            }
            body.print-kwitansi #doc_kwitansi .page-break {
                width: 100% !important;
                max-width: none !important;
                min-height: auto !important;
                height: auto !important;
                padding: 0.55cm !important;
                margin: 0 !important;
                box-shadow: none !important;
                border: 1px solid #000 !important;
                overflow: visible !important;
                page-break-inside: avoid !important;
                break-inside: avoid !important;
                page-break-after: always !important;
                break-after: page !important;
            }
            body.print-kwitansi #doc_kwitansi .page-break:last-child {
                page-break-after: auto !important;
                break-after: auto !important;
            }
            body.print-kwitansi #doc_kwitansi,
            body.print-kwitansi #doc_kwitansi * { font-family: 'Times New Roman', Times, serif !important; }
            body.print-kwitansi #doc_kwitansi { font-size: 10pt !important; }
            body.print-kwitansi #doc_kwitansi table { font-size: 10pt !important; line-height: 1.02 !important; }
            body.print-kwitansi #doc_kwitansi td { padding-top: 0 !important; padding-bottom: 0 !important; }
            body.print-kwitansi #doc_kwitansi h1,
            body.print-kwitansi #doc_kwitansi h2,
            body.print-kwitansi #doc_kwitansi h4 { font-size: 10pt !important; line-height: 1.02 !important; }
            body.print-kwitansi #doc_kwitansi .h-20 { height: 2.1cm !important; }
            body.print-kwitansi #doc_kwitansi .mt-8 { margin-top: 0.35cm !important; }
            body.print-kwitansi #doc_kwitansi .mb-6 { margin-bottom: 0.06cm !important; }
            body.print-kwitansi #doc_kwitansi .mb-4 { margin-bottom: 0.06cm !important; }
            body.print-kwitansi #doc_kwitansi .mt-4 { margin-top: 0.06cm !important; }
            body.print-kwitansi #doc_kwitansi .mb-3 { margin-bottom: 0.04cm !important; }
            body.print-kwitansi #doc_kwitansi .mb-2 { margin-bottom: 0.04cm !important; }
            body.print-kwitansi #doc_kwitansi .py-1 { padding-top: 0 !important; padding-bottom: 0 !important; }
            body.print-kwitansi #doc_kwitansi .pt-4 { padding-top: 0.03cm !important; }
            body.print-kwitansi #doc_kwitansi .px-4 { padding-left: 0.12cm !important; padding-right: 0.12cm !important; }

            body.print-a5 #doc_cover { page: coverPage; }
            body.print-a5 #doc_cover.doc-page.block { padding: 0 !important; margin: 0 !important; box-shadow: none !important; }
        }
        .form-input { width: 100%; border: 1px solid #d1d5db; padding: 0.5rem; border-radius: 0.375rem; font-size: 0.875rem; outline: none; background-color: white; transition: all 0.2s; }
        .form-input:focus { border-color: #1e4b6e; box-shadow: 0 0 0 2px rgba(30, 75, 110, 0.2); }
        optgroup { font-weight: bold; color: #1e4b6e; background: #f8fafc; padding: 5px; }
        option { font-weight: normal; color: #334155; background: white; }
        .tab-btn { transition: all 0.2s; }
        .tab-btn.active-tab { background-color: white; color: #1e4b6e; box-shadow: 0 1px 3px rgba(0,0,0,0.1); }
        .no-scrollbar::-webkit-scrollbar { display: none; }
        .no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

        /* Update khusus kwitansi: font Times New Roman 10pt untuk preview dan cetak. */
        #doc_kwitansi,
        #doc_kwitansi * {
            font-family: 'Times New Roman', Times, serif !important;
            font-size: 10pt !important;
        }
        #doc_kwitansi h1,
        #doc_kwitansi h2,
        #doc_kwitansi h3,
        #doc_kwitansi h4,
        #doc_kwitansi table,
        #doc_kwitansi td,
        #doc_kwitansi p,
        #doc_kwitansi div,
        #doc_kwitansi span {
            font-size: 10pt !important;
        }

        /* Update khusus SP2D: semua border tebal dibuat tipis seperti kwitansi. */
        #doc_sp2d .border-\[3px\],
        #doc_sp2d .border-2,
        #doc_sp2d .border {
            border-width: 1px !important;
        }
        #doc_sp2d .border-b-\[4px\],
        #doc_sp2d .border-b-\[3px\],
        #doc_sp2d .border-b-\[2px\],
        #doc_sp2d .border-b {
            border-bottom-width: 1px !important;
        }
        #doc_sp2d .border-r-\[3px\],
        #doc_sp2d .border-r-\[2px\],
        #doc_sp2d .border-r {
            border-right-width: 1px !important;
        }
        #doc_sp2d .border-l-\[3px\],
        #doc_sp2d .border-l-\[2px\],
        #doc_sp2d .border-l {
            border-left-width: 1px !important;
        }
        #doc_sp2d .border-t-\[3px\],
        #doc_sp2d .border-t-\[2px\],
        #doc_sp2d .border-t {
            border-top-width: 1px !important;
        }
        /* Kwitansi: rincian Catatan Keuangan dibuat rapat seperti awal. Garis hanya sepanjang nominal Total potongan. */
        .kwitansi-keuangan { margin-top: 0 !important; line-height: 1 !important; border-collapse: collapse !important; border-spacing: 0 !important; }
        .kwitansi-keuangan tr { line-height: 1 !important; }
        .kwitansi-keuangan td { padding: 0 !important; margin: 0 !important; height: auto !important; vertical-align: baseline; }

        /* BKU: potongan pajak dibuat baris baru dan warna hijau agar mudah dibaca. */
        .bku-pajak-highlight,
        .verif-pajak-highlight {
            display: block;
            margin-top: 4px;
            color: #15803d !important;
            font-weight: 800;
            line-height: 1.35;
        }
        .verif-pajak-highlight {
            font-size: 10px;
            background: #f0fdf4;
            border: 1px solid #bbf7d0;
            border-radius: 6px;
            padding: 4px 6px;
        }
        @media print {
            .bku-pajak-highlight,
            .verif-pajak-highlight {
                color: #15803d !important;
                -webkit-print-color-adjust: exact;
                print-color-adjust: exact;
            }
        }
        .kwitansi-keuangan .rp-col { width: 32px !important; white-space: nowrap !important; }
        .kwitansi-keuangan .nilai-col { padding-left: 3px !important; padding-right: 0 !important; white-space: nowrap !important; }
        .kwitansi-keuangan .total-potongan-angka { display: inline-block; border-bottom: 1px solid #000; padding-bottom: 1px; line-height: 1; width: auto !important; }
        .kwitansi-keuangan .dibayarkan-angka { display: inline-block; border-top: 1px solid #000; border-bottom: 1px solid #000; padding: 1px 0; line-height: 1; width: auto !important; }
        .kwitansi-gap-payment td { padding-top: 0.28cm !important; }
        .kwitansi-gap-catatan td { padding-top: 0.32cm !important; }
        @media print {
            body.print-kwitansi #doc_kwitansi .kwitansi-keuangan { margin-top: 0 !important; line-height: 1 !important; border-collapse: collapse !important; border-spacing: 0 !important; }
            body.print-kwitansi #doc_kwitansi .kwitansi-keuangan tr { line-height: 1 !important; }
            body.print-kwitansi #doc_kwitansi .kwitansi-keuangan td { padding: 0 !important; margin: 0 !important; height: auto !important; vertical-align: baseline; }
            body.print-kwitansi #doc_kwitansi .kwitansi-keuangan .rp-col { width: 32px !important; white-space: nowrap !important; }
            body.print-kwitansi #doc_kwitansi .kwitansi-keuangan .nilai-col { padding-left: 3px !important; padding-right: 0 !important; white-space: nowrap !important; }
            body.print-kwitansi #doc_kwitansi .kwitansi-keuangan .total-potongan-angka { display: inline-block; border-bottom: 1px solid #000; padding-bottom: 1px; line-height: 1; width: auto !important; }
            body.print-kwitansi #doc_kwitansi .kwitansi-keuangan .dibayarkan-angka { display: inline-block; border-top: 1px solid #000; border-bottom: 1px solid #000; padding: 1px 0; line-height: 1; width: auto !important; }
            body.print-kwitansi #doc_kwitansi .kwitansi-gap-payment td { padding-top: 0.28cm !important; }
            body.print-kwitansi #doc_kwitansi .kwitansi-gap-catatan td { padding-top: 0.32cm !important; }
        }


        /* =========================================================
           UI REFRESH BY GPT - MODERN EXECUTIVE DESA THEME
           Fokus: tampilan aplikasi lebih modern tanpa mengubah logic.
           Cetak dokumen tetap mengikuti style print yang sudah ada.
        ========================================================= */
        :root {
            --brand-900: #0f172a;
            --brand-800: #16324f;
            --brand-700: #1e4b6e;
            --brand-600: #2563eb;
            --brand-gold: #d6a84f;
            --surface: rgba(255,255,255,.92);
            --surface-solid: #ffffff;
            --line-soft: rgba(148, 163, 184, .28);
            --text-main: #0f172a;
            --text-muted: #64748b;
        }

        @media screen {
            body {
                font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
                color: var(--text-main);
                background:
                    radial-gradient(circle at top left, rgba(37, 99, 235, .14), transparent 34rem),
                    radial-gradient(circle at top right, rgba(214, 168, 79, .16), transparent 28rem),
                    linear-gradient(135deg, #eef3f8 0%, #f8fafc 48%, #eef2f7 100%);
            }

            #loginView {
                background:
                    linear-gradient(135deg, rgba(15, 23, 42, .88), rgba(30, 75, 110, .78)),
                    radial-gradient(circle at 25% 20%, rgba(214, 168, 79, .34), transparent 18rem),
                    radial-gradient(circle at 80% 80%, rgba(37, 99, 235, .28), transparent 20rem);
            }
            #loginView > div {
                border: 1px solid rgba(255,255,255,.32) !important;
                border-top: 0 !important;
                border-radius: 1.6rem !important;
                background: rgba(255,255,255,.92) !important;
                backdrop-filter: blur(18px);
                box-shadow: 0 30px 90px rgba(15, 23, 42, .34) !important;
                position: relative;
                overflow: hidden;
            }
            #loginView > div::before {
                content: "";
                position: absolute;
                inset: 0 0 auto 0;
                height: 6px;
                background: linear-gradient(90deg, var(--brand-gold), #60a5fa, var(--brand-700));
            }
            #loginView h1 { color: var(--brand-900) !important; letter-spacing: .03em; }

            #mainAppContainer { background: transparent !important; }

            nav.no-print {
                background:
                    linear-gradient(180deg, rgba(15,23,42,.98), rgba(22,50,79,.98) 48%, rgba(15,23,42,.98)) !important;
                border-right: 1px solid rgba(255,255,255,.10);
                box-shadow: 18px 0 50px rgba(15,23,42,.20) !important;
            }
            nav.no-print > div:first-child {
                border-bottom: 1px solid rgba(255,255,255,.10) !important;
                background: linear-gradient(135deg, rgba(255,255,255,.10), transparent);
            }
            nav.no-print button {
                border-radius: 14px !important;
                margin: 2px 0;
                border-left-color: transparent !important;
            }
            nav.no-print button:hover {
                background: rgba(255,255,255,.12) !important;
                transform: translateX(3px);
            }
            nav.no-print button.border-white,
            nav.no-print button.bg-white,
            nav.no-print button.active-tab {
                background: linear-gradient(135deg, rgba(255,255,255,.22), rgba(255,255,255,.08)) !important;
                color: #fff !important;
                box-shadow: inset 0 0 0 1px rgba(255,255,255,.16), 0 12px 24px rgba(0,0,0,.18) !important;
            }
            #userRoleDisplay, #mobileUserRole {
                background: rgba(214,168,79,.18) !important;
                border-color: rgba(214,168,79,.36) !important;
                color: #fde68a !important;
            }

            #mainContent {
                background: transparent !important;
                scroll-behavior: smooth;
            }
            #topbarMenu {
                background: rgba(255,255,255,.82) !important;
                backdrop-filter: blur(18px);
                border-bottom: 1px solid var(--line-soft) !important;
                box-shadow: 0 14px 34px rgba(15,23,42,.08) !important;
            }
            #topbarMenu button {
                border-radius: 999px !important;
                border-color: rgba(148,163,184,.35) !important;
                box-shadow: 0 8px 22px rgba(15,23,42,.05);
            }

            .bg-white.shadow-xl.rounded-lg,
            #formView .bg-white,
            #spjView .bg-white,
            #verifikasiSpjView .bg-white,
            #laporanView .bg-white,
            #masterPaguView .bg-white,
            #pendapatanView .bg-white,
            #penarikanView .bg-white,
            #pembiayaanView .bg-white {
                border-radius: 1.35rem !important;
                border: 1px solid rgba(148,163,184,.22) !important;
                background: rgba(255,255,255,.90) !important;
                backdrop-filter: blur(14px);
                box-shadow: 0 24px 70px rgba(15, 23, 42, .10) !important;
            }

            .bg-\[\#1e4b6e\], .bg-blue-800, .bg-emerald-600, .bg-purple-700, .bg-teal-600 {
                background: linear-gradient(135deg, var(--brand-900), var(--brand-700)) !important;
            }
            .bg-\[\#1e4b6e\].sticky,
            #spjView .bg-\[\#1e4b6e\],
            #verifikasiSpjView .bg-\[\#1e4b6e\],
            #laporanView .bg-\[\#1e4b6e\] {
                position: relative;
                overflow: hidden;
            }
            .bg-\[\#1e4b6e\].sticky::after,
            #spjView .bg-\[\#1e4b6e\]::after,
            #verifikasiSpjView .bg-\[\#1e4b6e\]::after,
            #laporanView .bg-\[\#1e4b6e\]::after {
                content: "";
                position: absolute;
                right: -4rem;
                top: -4rem;
                width: 14rem;
                height: 14rem;
                border-radius: 999px;
                background: rgba(214,168,79,.18);
                pointer-events: none;
            }

            .form-input {
                border-radius: .85rem !important;
                border: 1px solid rgba(148,163,184,.42) !important;
                background: rgba(255,255,255,.94) !important;
                box-shadow: inset 0 1px 0 rgba(255,255,255,.7), 0 1px 2px rgba(15,23,42,.03);
            }
            .form-input:focus {
                border-color: var(--brand-600) !important;
                box-shadow: 0 0 0 4px rgba(37,99,235,.13), 0 10px 24px rgba(37,99,235,.09) !important;
            }
            label { color: #475569 !important; }

            button.action-btn,
            #btnSave,
            #btnCetakPreview,
            #btnSavePagu,
            #btnSavePendapatan,
            #btnSavePenarikan,
            #btnSavePembiayaan,
            button[onclick="handleLogin()"] {
                border-radius: 1rem !important;
                box-shadow: 0 14px 28px rgba(15,23,42,.14) !important;
                transition: transform .18s ease, box-shadow .18s ease, filter .18s ease !important;
            }
            button.action-btn:hover,
            #btnSave:hover,
            #btnCetakPreview:hover,
            #btnSavePagu:hover,
            #btnSavePendapatan:hover,
            #btnSavePenarikan:hover,
            #btnSavePembiayaan:hover,
            button[onclick="handleLogin()"]:hover {
                transform: translateY(-2px);
                box-shadow: 0 20px 38px rgba(15,23,42,.20) !important;
                filter: saturate(1.08);
            }
            #btnSave, .bg-green-600 { background: linear-gradient(135deg, #059669, #047857) !important; }
            #btnCetakPreview, button[onclick="handleLogin()"] { background: linear-gradient(135deg, var(--brand-900), var(--brand-700)) !important; }
            #btnAddBelanja {
                background: linear-gradient(135deg, rgba(37,99,235,.08), rgba(214,168,79,.10)) !important;
                border-color: rgba(30,75,110,.32) !important;
            }

            table {
                border-radius: 1rem;
                overflow: hidden;
            }
            thead {
                background: linear-gradient(180deg, #f8fafc, #eef2f7) !important;
            }
            tbody tr {
                transition: background .15s ease, transform .15s ease;
            }
            tbody tr:hover {
                background: rgba(37,99,235,.045) !important;
            }
            th { letter-spacing: .04em; }
            .border, .border-slate-200, .border-slate-300 { border-color: rgba(148,163,184,.30) !important; }

            #savedDataList > div,
            #lap_saldo_sumber_dana > div,
            .bg-indigo-50, .bg-purple-50, .bg-orange-50, .bg-teal-50, .bg-blue-50 {
                border-radius: 1rem !important;
                box-shadow: 0 12px 30px rgba(15,23,42,.06) !important;
            }

            #toast {
                border-radius: 999px !important;
                box-shadow: 0 20px 45px rgba(15,23,42,.25) !important;
                backdrop-filter: blur(12px);
            }
        }


        /* Cloud Safe: indikator sumber data agar jelas data berasal dari Google Sheet, bukan dummy/localStorage. */
        .cloud-safe-badge {
            display: inline-flex;
            align-items: center;
            gap: .35rem;
            border-radius: 999px;
            padding: .35rem .65rem;
            font-size: 10px;
            font-weight: 900;
            letter-spacing: .035em;
            text-transform: uppercase;
            border: 1px solid rgba(148, 163, 184, .35);
            background: rgba(255, 255, 255, .9);
            color: #334155;
            box-shadow: 0 6px 18px rgba(15, 23, 42, .08);
        }
        .cloud-safe-ok { color: #047857; background: #ecfdf5; border-color: #a7f3d0; }
        .cloud-safe-warn { color: #b45309; background: #fffbeb; border-color: #fde68a; }
        .cloud-safe-err { color: #b91c1c; background: #fef2f2; border-color: #fecaca; }
        .cloud-safe-panel {
            border: 1px solid rgba(30, 75, 110, .12);
            background: linear-gradient(135deg, rgba(255,255,255,.9), rgba(239,246,255,.72));
            border-radius: 16px;
            padding: .85rem 1rem;
            box-shadow: 0 10px 28px rgba(15, 23, 42, .06);
        }


        /* v3.8.42 - Verifikasi SPJ per SPP: rincian kwitansi diberi warna selang-seling agar mudah dibaca. */
        #verifikasiSpjView {
            max-width: none !important;
        }
        #verifikasiSpjView > .bg-white {
            overflow: hidden !important;
        }
        #verifikasiSpjView .verifikasi-table-wrap {
            width: 100%;
            overflow-x: hidden !important;
            border-radius: 18px !important;
            background: rgba(255,255,255,.96);
        }
        #verifikasiSpjView .verifikasi-spj-table {
            width: 100% !important;
            table-layout: fixed !important;
            border-collapse: separate !important;
            border-spacing: 0 !important;
        }
        #verifikasiSpjView .verifikasi-spj-table th,
        #verifikasiSpjView .verifikasi-spj-table td {
            white-space: normal !important;
            overflow-wrap: anywhere !important;
            word-break: break-word !important;
            vertical-align: top !important;
            line-height: 1.28 !important;
        }
        #verifikasiSpjView .verifikasi-spj-table th {
            position: sticky;
            top: 0;
            z-index: 2;
            background: #f8fafc !important;
            color: #475569 !important;
            font-size: 10px !important;
            letter-spacing: .03em;
        }
        #verifikasiSpjView .verifikasi-spj-table th:nth-child(1),
        #verifikasiSpjView .verifikasi-spj-table td:nth-child(1) { width: 5%; }
        #verifikasiSpjView .verifikasi-spj-table th:nth-child(2),
        #verifikasiSpjView .verifikasi-spj-table td:nth-child(2) { width: 38%; } /* Rincian kegiatan & kwitansi dibuat lebih lebar */
        #verifikasiSpjView .verifikasi-spj-table th:nth-child(3),
        #verifikasiSpjView .verifikasi-spj-table td:nth-child(3) { width: 15%; } /* PPKD + tanggal + sumber dana */
        #verifikasiSpjView .verifikasi-spj-table th:nth-child(4),
        #verifikasiSpjView .verifikasi-spj-table td:nth-child(4) { width: 12%; } /* Jumlah + status bayar */
        #verifikasiSpjView .verifikasi-spj-table th:nth-child(5),
        #verifikasiSpjView .verifikasi-spj-table td:nth-child(5) { width: 15%; } /* Kelengkapan + catatan */
        #verifikasiSpjView .verifikasi-spj-table th:nth-child(6),
        #verifikasiSpjView .verifikasi-spj-table td:nth-child(6) { width: 15%; } /* Aksi */

        #verifikasiSpjView .verif-uraian-cell,
        #verifikasiSpjView .verif-ppkd-date-cell,
        #verifikasiSpjView .verif-kelengkapan-cell,
        #verifikasiSpjView .verif-catatan-bendahara-cell {
            white-space: normal !important;
            overflow-wrap: anywhere !important;
            word-break: break-word !important;
        }
        #verifikasiSpjView .verif-kwitansi-block {
            padding: .45rem .5rem !important;
            border: 1px solid rgba(203,213,225,.85) !important;
            border-radius: .75rem !important;
            margin-bottom: .38rem !important;
        }
        #verifikasiSpjView .verif-kwitansi-block:last-child {
            margin-bottom: 0 !important;
        }
        #verifikasiSpjView .verif-kwitansi-zebra {
            background: #f1f5f9 !important;
        }
        #verifikasiSpjView .verif-kwitansi-white {
            background: #ffffff !important;
        }
        #verifikasiSpjView .verif-jumlah-bayar-cell,
        #verifikasiSpjView .verif-date-cell,
        #verifikasiSpjView .verif-jumlah-cell,
        #verifikasiSpjView .verif-bayar-cell {
            white-space: normal !important;
            overflow-wrap: normal !important;
            word-break: normal !important;
        }
        #verifikasiSpjView .verif-bayar-cell {
            padding-left: .35rem !important;
            padding-right: .35rem !important;
            text-align: center !important;
        }
        #verifikasiSpjView .verif-bayar-cell span {
            display: inline-flex !important;
            align-items: center !important;
            justify-content: center !important;
            min-width: 58px !important;
            max-width: 100% !important;
            white-space: nowrap !important;
            word-break: keep-all !important;
            overflow-wrap: normal !important;
            line-height: 1.05 !important;
            font-size: 10px !important;
            padding: .28rem .45rem !important;
        }
        #verifikasiSpjView .verif-bayar-cell div {
            white-space: nowrap !important;
            word-break: keep-all !important;
            overflow-wrap: normal !important;
            font-size: 10px !important;
        }
        #verifikasiSpjView .verif-jumlah-bayar-cell .verif-nominal-spj {
            display: block !important;
            text-align: right !important;
            font-weight: 900 !important;
            color: #0f172a !important;
            white-space: nowrap !important;
            word-break: keep-all !important;
            overflow-wrap: normal !important;
        }
        #verifikasiSpjView .verif-jumlah-bayar-cell .verif-bayar-mini {
            display: inline-flex !important;
            align-items: center !important;
            justify-content: center !important;
            margin-top: .3rem !important;
            padding: .25rem .45rem !important;
            border-radius: .55rem !important;
            font-size: 10px !important;
            font-weight: 900 !important;
            white-space: nowrap !important;
        }
        #verifikasiSpjView .verif-ppkd-date-cell .verif-date-source-mini {
            margin-top: .45rem !important;
            padding-top: .45rem !important;
            border-top: 1px dashed rgba(148,163,184,.65) !important;
        }
        #verifikasiSpjView .verif-kelengkapan-cell span,
        #verifikasiSpjView .verif-kelengkapan-cell a {
            padding: .25rem .42rem !important;
            font-size: 10px !important;
            line-height: 1.1 !important;
        }
        #verifikasiSpjView .verif-kelengkapan-cell div {
            font-size: 10px !important;
            line-height: 1.18 !important;
        }
        #verifikasiSpjView .verif-action-grid {
            display: grid !important;
            grid-template-columns: 1fr !important;
            gap: 4px !important;
            min-width: 0 !important;
            width: 100% !important;
        }
        #verifikasiSpjView .verif-action-grid a,
        #verifikasiSpjView .verif-action-grid button,
        #verifikasiSpjView .verif-aksi-cell > button {
            display: block !important;
            width: 100% !important;
            min-width: 0 !important;
            white-space: normal !important;
            overflow-wrap: anywhere !important;
            line-height: 1.15 !important;
            padding: .38rem .45rem !important;
            border-radius: .65rem !important;
            font-size: 10px !important;
            text-align: center !important;
        }

        @media (max-width: 1180px) {
            #verifikasiSpjView { padding-left: .55rem !important; padding-right: .55rem !important; }
            #verifikasiSpjView .p-4.md\:p-6 { padding: .8rem !important; }
            #verifikasiSpjView .verifikasi-spj-table th,
            #verifikasiSpjView .verifikasi-spj-table td { padding: .42rem !important; font-size: 10.5px !important; }
            #verifikasiSpjView .verifikasi-spj-table th:nth-child(2),
            #verifikasiSpjView .verifikasi-spj-table td:nth-child(2) { width: 40%; }
            #verifikasiSpjView .verifikasi-spj-table th:nth-child(3),
            #verifikasiSpjView .verifikasi-spj-table td:nth-child(3) { width: 15%; }
            #verifikasiSpjView .verifikasi-spj-table th:nth-child(4),
            #verifikasiSpjView .verifikasi-spj-table td:nth-child(4) { width: 12%; }
        }

        @media (max-width: 760px) {
            #verifikasiSpjView .verifikasi-table-wrap { overflow-x: visible !important; border: 0 !important; background: transparent; }
            #verifikasiSpjView .verifikasi-spj-table,
            #verifikasiSpjView .verifikasi-spj-table thead,
            #verifikasiSpjView .verifikasi-spj-table tbody,
            #verifikasiSpjView .verifikasi-spj-table tr,
            #verifikasiSpjView .verifikasi-spj-table td {
                display: block !important;
                width: 100% !important;
            }
            #verifikasiSpjView .verifikasi-spj-table thead { display: none !important; }
            #verifikasiSpjView .verifikasi-spj-table tr {
                margin-bottom: .8rem !important;
                border: 1px solid rgba(148,163,184,.35) !important;
                border-radius: 1rem !important;
                overflow: hidden !important;
                background: rgba(255,255,255,.98) !important;
                box-shadow: 0 14px 34px rgba(15,23,42,.08) !important;
            }
            #verifikasiSpjView .verifikasi-spj-table td {
                border: 0 !important;
                border-bottom: 1px solid rgba(226,232,240,.9) !important;
                display: grid !important;
                grid-template-columns: 98px minmax(0,1fr) !important;
                gap: .65rem !important;
                text-align: left !important;
                padding: .72rem !important;
            }
            #verifikasiSpjView .verifikasi-spj-table td:last-child { border-bottom: 0 !important; }
            #verifikasiSpjView .verifikasi-spj-table td::before {
                content: attr(data-label);
                font-weight: 900;
                font-size: 10px;
                color: #64748b;
                text-transform: uppercase;
                letter-spacing: .04em;
            }
            #verifikasiSpjView .verifikasi-spj-table .verif-no-cell {
                display: none !important;
            }
            #verifikasiSpjView .verif-action-grid {
                grid-template-columns: repeat(2, minmax(0,1fr)) !important;
            }
        }



        .bkk-table th, .bkk-table td { vertical-align: top; }
        @media print {
            #bkkView { width: 100% !important; max-width: none !important; }
            #bkkView table { font-size: 8.5pt !important; table-layout: fixed; }
            #bkkView th, #bkkView td { padding: 0.08cm !important; }
            #bkkView .bkk-uraian { white-space: normal !important; word-break: break-word !important; }
        }

    
        @media screen {
            #dashboardView .dashboard-mini-link[onclick*="pengaturan-config"] {
                background: linear-gradient(135deg, rgba(22, 163, 74, .10), rgba(37, 99, 235, .08)) !important;
                border-color: rgba(22, 163, 74, .28) !important;
                color: #047857 !important;
            }
        }

    
        /* FIX NOMINAL SP2D: beri ruang lebih lebar agar Rp dan angka tidak turun baris */
        .sp2d-nominal-table { table-layout: auto; width: 100%; }
        .sp2d-label-uang { width: 96px; min-width: 96px; white-space: nowrap; vertical-align: top; }
        .sp2d-colon { width: 12px; min-width: 12px; white-space: nowrap; vertical-align: top; }
        .sp2d-nominal-cell { width: 190px; min-width: 190px; white-space: nowrap; vertical-align: top; letter-spacing: .1px; }
        .sp2d-terbilang-cell { white-space: normal; vertical-align: top; }
        @media print {
            .sp2d-nominal-cell { width: 190px !important; min-width: 190px !important; white-space: nowrap !important; }
            .sp2d-label-uang { width: 96px !important; min-width: 96px !important; white-space: nowrap !important; }
            .sp2d-colon { width: 12px !important; min-width: 12px !important; }
        }
    

        /* v3.8.38 - Laporan Realisasi Siskeudes */
        .lap-siskeudes-paper { background:#fff; border:1px solid #111; color:#000; font-family: Arial, Helvetica, sans-serif; }
        .lap-siskeudes-table { width:100%; border-collapse:collapse; table-layout:fixed; font-size:11px; color:#000; }
        .lap-siskeudes-table th, .lap-siskeudes-table td { border:1px solid #111; padding:5px 6px; vertical-align:top; }
        .lap-siskeudes-table th { text-align:center; font-weight:800; background:#f8fafc; }
        .lap-siskeudes-num { text-align:right; white-space:nowrap; font-variant-numeric: tabular-nums; }
        .lap-siskeudes-code { width:80px; white-space:nowrap; text-align:center; font-weight:700; }
        .lap-siskeudes-section { font-weight:900; background:#f1f5f9; }
        .lap-siskeudes-sub { font-weight:800; }
        .lap-siskeudes-indent-1 { padding-left:18px !important; }
        .lap-siskeudes-indent-2 { padding-left:34px !important; }
        .lap-siskeudes-indent-3 { padding-left:50px !important; font-style:italic; }
        .lap-siskeudes-total { font-weight:900; background:#f8fafc; }
        @media print {
            @page { size: A4 landscape; margin: 0.7cm; }
            body.print-laporan-siskeudes .no-print { display:none !important; }
            body.print-laporan-siskeudes #mainAppContainer,
            body.print-laporan-siskeudes #mainContent,
            body.print-laporan-siskeudes #laporanSiskeudesView { display:block !important; height:auto !important; overflow:visible !important; background:#fff !important; padding:0 !important; margin:0 !important; max-width:none !important; width:100% !important; }
            body.print-laporan-siskeudes #laporanSiskeudesControls { display:none !important; }
            body.print-laporan-siskeudes .lap-siskeudes-paper { border:1px solid #000 !important; box-shadow:none !important; margin:0 !important; width:100% !important; }
            body.print-laporan-siskeudes .lap-siskeudes-table { font-size:8.5pt !important; }
            body.print-laporan-siskeudes .lap-siskeudes-table th,
            body.print-laporan-siskeudes .lap-siskeudes-table td { padding:3px 4px !important; }
        }


/* =========================================================
   prime-mature-ui-v388
   Dipindahkan dari index.html agar CSS bisa dicache browser.
   ========================================================= */
/* =========================================================
           UI PRIME MATURE v3.8.8
           Desain matang: executive dashboard, focus state jelas,
           mobile lebih stabil, dan print style tetap aman.
        ========================================================= */
        :root {
            --prime-navy-950: #07111f;
            --prime-navy-900: #0f172a;
            --prime-navy-800: #13233a;
            --prime-blue-700: #1e4b6e;
            --prime-blue-600: #2563eb;
            --prime-cyan-500: #06b6d4;
            --prime-gold-500: #d6a84f;
            --prime-emerald-600: #059669;
            --prime-red-600: #dc2626;
            --prime-surface: rgba(255, 255, 255, .88);
            --prime-surface-solid: #ffffff;
            --prime-line: rgba(148, 163, 184, .26);
            --prime-text: #0f172a;
            --prime-muted: #64748b;
            --prime-shadow-sm: 0 8px 24px rgba(15, 23, 42, .07);
            --prime-shadow-md: 0 18px 48px rgba(15, 23, 42, .12);
            --prime-shadow-lg: 0 30px 80px rgba(15, 23, 42, .18);
            --prime-radius: 22px;
        }

        @media screen {
            * { scrollbar-width: thin; scrollbar-color: rgba(30,75,110,.45) rgba(226,232,240,.65); }
            ::-webkit-scrollbar { width: 10px; height: 10px; }
            ::-webkit-scrollbar-track { background: rgba(226,232,240,.62); border-radius: 999px; }
            ::-webkit-scrollbar-thumb { background: linear-gradient(180deg, rgba(30,75,110,.62), rgba(37,99,235,.46)); border-radius: 999px; border: 2px solid rgba(226,232,240,.62); }

            html { background: #edf2f7; }
            body {
                min-height: 100vh;
                font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif !important;
                color: var(--prime-text) !important;
                background:
                    radial-gradient(circle at 12% 8%, rgba(214, 168, 79, .22), transparent 24rem),
                    radial-gradient(circle at 92% 14%, rgba(37, 99, 235, .18), transparent 28rem),
                    linear-gradient(135deg, #eef4fb 0%, #f8fafc 46%, #edf2f7 100%) !important;
            }

            body::before {
                content: "";
                position: fixed;
                inset: 0 auto 0 0;
                width: min(36vw, 520px);
                background: linear-gradient(180deg, rgba(7,17,31,.10), rgba(30,75,110,.05), transparent);
                pointer-events: none;
                z-index: -1;
            }

            #loginView {
                position: fixed !important;
                background:
                    linear-gradient(135deg, rgba(7, 17, 31, .94), rgba(19, 35, 58, .88)),
                    radial-gradient(circle at 24% 18%, rgba(214,168,79,.36), transparent 22rem),
                    radial-gradient(circle at 78% 78%, rgba(6,182,212,.24), transparent 22rem) !important;
                padding: 1.25rem !important;
            }
            #loginView > div {
                width: min(100%, 430px) !important;
                border: 1px solid rgba(255,255,255,.34) !important;
                border-top: 0 !important;
                border-radius: 28px !important;
                background: rgba(255,255,255,.92) !important;
                backdrop-filter: blur(24px) saturate(1.25);
                box-shadow: 0 34px 100px rgba(0,0,0,.34) !important;
                overflow: hidden;
                position: relative;
            }
            #loginView > div::before {
                content: "";
                position: absolute;
                inset: 0 0 auto 0;
                height: 7px;
                background: linear-gradient(90deg, var(--prime-gold-500), var(--prime-cyan-500), var(--prime-blue-600));
            }
            #loginView h1 { color: var(--prime-navy-900) !important; letter-spacing: .025em !important; }
            #loginView p { color: var(--prime-muted) !important; }

            #mainAppContainer {
                background: transparent !important;
            }
            #mainContent {
                background: transparent !important;
                scroll-behavior: smooth;
            }

            nav.no-print {
                width: 17.5rem !important;
                background:
                    radial-gradient(circle at top left, rgba(214,168,79,.16), transparent 13rem),
                    linear-gradient(180deg, var(--prime-navy-950), var(--prime-navy-800) 52%, var(--prime-navy-950)) !important;
                border-right: 1px solid rgba(255,255,255,.10) !important;
                box-shadow: 22px 0 58px rgba(15, 23, 42, .22) !important;
            }
            nav.no-print > div:first-child {
                min-height: 86px;
                background: linear-gradient(135deg, rgba(255,255,255,.11), rgba(255,255,255,.03)) !important;
                border-bottom: 1px solid rgba(255,255,255,.10) !important;
            }
            nav.no-print > div:first-child .text-white {
                font-size: 1.02rem !important;
                letter-spacing: .035em !important;
            }
            nav.no-print button {
                border-radius: 15px !important;
                margin: 2px 0 !important;
                transition: transform .18s ease, background .18s ease, box-shadow .18s ease, color .18s ease !important;
            }
            nav.no-print button:hover {
                transform: translateX(4px);
                background: rgba(255,255,255,.115) !important;
                box-shadow: inset 0 0 0 1px rgba(255,255,255,.09);
            }
            nav.no-print button.bg-\[\#153650\],
            nav.no-print button.text-white.border-blue-400,
            nav.no-print button.text-white.border-emerald-400,
            nav.no-print button.text-white.border-purple-400,
            nav.no-print button.text-white.border-teal-400,
            nav.no-print button.text-white.border-pink-400,
            nav.no-print button.text-white.border-yellow-400,
            nav.no-print button.text-white.border-lime-400 {
                background: linear-gradient(135deg, rgba(255,255,255,.22), rgba(255,255,255,.08)) !important;
                box-shadow: inset 0 0 0 1px rgba(255,255,255,.16), 0 14px 26px rgba(0,0,0,.18) !important;
                color: #fff !important;
            }
            #userRoleDisplay, #mobileUserRole {
                border-radius: 999px !important;
                box-shadow: inset 0 0 0 1px rgba(255,255,255,.12), 0 8px 20px rgba(0,0,0,.14) !important;
            }

            #topbarMenu {
                top: 0 !important;
                background: rgba(255,255,255,.80) !important;
                backdrop-filter: blur(20px) saturate(1.2);
                border-bottom: 1px solid var(--prime-line) !important;
                box-shadow: 0 14px 36px rgba(15,23,42,.08) !important;
            }
            #topbarMenu button {
                border-radius: 999px !important;
                border-color: rgba(148,163,184,.30) !important;
                box-shadow: var(--prime-shadow-sm) !important;
            }
            #topbarMenu button.bg-blue-600 {
                background: linear-gradient(135deg, var(--prime-navy-900), var(--prime-blue-700)) !important;
                color: #fff !important;
                border-color: rgba(255,255,255,.16) !important;
            }

            #formView, #spjView, #verifikasiSpjView, #laporanView,
            #masterPaguView, #pendapatanView, #penarikanView, #pembiayaanView,
            #bkuView, #bktView, #bksdView, #bkpView {
                animation: primeFadeUp .28s ease both;
            }
            @keyframes primeFadeUp {
                from { opacity: 0; transform: translateY(8px); }
                to { opacity: 1; transform: translateY(0); }
            }

            .bg-white.shadow-xl.rounded-lg,
            #formView .bg-white,
            #spjView .bg-white,
            #verifikasiSpjView .bg-white,
            #laporanView .bg-white,
            #masterPaguView .bg-white,
            #pendapatanView .bg-white,
            #penarikanView .bg-white,
            #pembiayaanView .bg-white,
            #bkuView .bg-white,
            #bktView .bg-white,
            #bksdView .bg-white,
            #bkpView .bg-white {
                border-radius: var(--prime-radius) !important;
                border: 1px solid var(--prime-line) !important;
                background: var(--prime-surface) !important;
                backdrop-filter: blur(18px) saturate(1.12);
                box-shadow: var(--prime-shadow-md) !important;
            }

            .bg-\[\#1e4b6e\], .bg-blue-800, .bg-emerald-600, .bg-purple-700, .bg-teal-600 {
                background:
                    radial-gradient(circle at 92% 20%, rgba(214,168,79,.20), transparent 12rem),
                    linear-gradient(135deg, var(--prime-navy-900), var(--prime-blue-700)) !important;
            }
            .bg-\[\#1e4b6e\].sticky,
            #spjView .bg-\[\#1e4b6e\],
            #verifikasiSpjView .bg-\[\#1e4b6e\],
            #laporanView .bg-\[\#1e4b6e\],
            #masterPaguView .bg-blue-800,
            #pendapatanView .bg-emerald-600,
            #penarikanView .bg-purple-700,
            #pembiayaanView .bg-teal-600,
            #bkuView .bg-blue-800,
            #bktView .bg-blue-800,
            #bksdView .bg-blue-800,
            #bkpView .bg-blue-800 {
                border-bottom: 1px solid rgba(255,255,255,.12) !important;
                position: relative;
                overflow: hidden;
            }
            .bg-\[\#1e4b6e\].sticky::after,
            #spjView .bg-\[\#1e4b6e\]::after,
            #verifikasiSpjView .bg-\[\#1e4b6e\]::after,
            #laporanView .bg-\[\#1e4b6e\]::after,
            #masterPaguView .bg-blue-800::after,
            #pendapatanView .bg-emerald-600::after,
            #penarikanView .bg-purple-700::after,
            #pembiayaanView .bg-teal-600::after,
            #bkuView .bg-blue-800::after,
            #bktView .bg-blue-800::after,
            #bksdView .bg-blue-800::after,
            #bkpView .bg-blue-800::after {
                content: "";
                position: absolute;
                right: -3.5rem;
                top: -5rem;
                width: 15rem;
                height: 15rem;
                border-radius: 999px;
                background: radial-gradient(circle, rgba(255,255,255,.18), rgba(255,255,255,0) 68%);
                pointer-events: none;
            }

            #formView section {
                padding: 1.15rem;
                border: 1px solid rgba(148,163,184,.22);
                border-radius: 20px;
                background: linear-gradient(180deg, rgba(248,250,252,.78), rgba(255,255,255,.72));
                box-shadow: 0 8px 26px rgba(15,23,42,.045);
            }
            #formView section h2 {
                display: inline-flex;
                align-items: center;
                gap: .45rem;
                padding: .38rem .72rem;
                border-radius: 999px;
                border: 1px solid rgba(30,75,110,.16);
                background: rgba(30,75,110,.07);
                color: var(--prime-blue-700) !important;
            }
            #belanjaList > div,
            #savedDataList > div {
                border-radius: 18px !important;
                border-color: rgba(148,163,184,.24) !important;
                box-shadow: 0 12px 30px rgba(15,23,42,.055) !important;
                transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease !important;
            }
            #belanjaList > div:hover,
            #savedDataList > div:hover {
                transform: translateY(-1px);
                box-shadow: 0 18px 42px rgba(15,23,42,.09) !important;
                border-color: rgba(37,99,235,.20) !important;
            }

            .form-input {
                min-height: 42px;
                border-radius: 14px !important;
                border: 1px solid rgba(148,163,184,.38) !important;
                background: rgba(255,255,255,.96) !important;
                box-shadow: inset 0 1px 0 rgba(255,255,255,.92), 0 1px 2px rgba(15,23,42,.035) !important;
            }
            textarea.form-input { min-height: unset; }
            .form-input:focus {
                border-color: rgba(37,99,235,.74) !important;
                box-shadow: 0 0 0 4px rgba(37,99,235,.13), 0 10px 26px rgba(37,99,235,.08) !important;
            }
            .form-input[readonly], .form-input:disabled {
                background: rgba(241,245,249,.88) !important;
                color: #475569 !important;
            }
            label {
                color: #475569 !important;
                letter-spacing: .015em;
            }

            button {
                touch-action: manipulation;
            }
            button.action-btn,
            #btnSave, #btnCetakPreview, #btnSavePagu, #btnSavePendapatan,
            #btnSavePenarikan, #btnSavePembiayaan,
            button[onclick="handleLogin()"] {
                border-radius: 16px !important;
                box-shadow: 0 16px 34px rgba(15,23,42,.14) !important;
                transition: transform .18s ease, box-shadow .18s ease, filter .18s ease !important;
            }
            button.action-btn:hover,
            #btnSave:hover, #btnCetakPreview:hover, #btnSavePagu:hover, #btnSavePendapatan:hover,
            #btnSavePenarikan:hover, #btnSavePembiayaan:hover,
            button[onclick="handleLogin()"]:hover {
                transform: translateY(-2px);
                box-shadow: 0 24px 48px rgba(15,23,42,.20) !important;
                filter: saturate(1.08);
            }
            #btnSave, .bg-green-600 { background: linear-gradient(135deg, #10b981, #047857) !important; }
            #btnCetakPreview, button[onclick="handleLogin()"] { background: linear-gradient(135deg, var(--prime-navy-900), var(--prime-blue-700)) !important; }
            #btnAddBelanja {
                background: linear-gradient(135deg, rgba(37,99,235,.08), rgba(214,168,79,.12)) !important;
                border-color: rgba(30,75,110,.28) !important;
            }
            .bg-red-600, .bg-red-500 { background: linear-gradient(135deg, #ef4444, #b91c1c) !important; }

            .overflow-x-auto { border-radius: 18px; }
            table {
                border-radius: 16px !important;
                overflow: hidden;
                border-color: rgba(148,163,184,.28) !important;
            }
            thead {
                background: linear-gradient(180deg, #f8fafc, #eef2f7) !important;
            }
            th {
                color: #475569 !important;
                letter-spacing: .055em;
                font-weight: 800 !important;
            }
            tbody tr {
                transition: background .14s ease, box-shadow .14s ease;
            }
            tbody tr:nth-child(even) { background: rgba(248,250,252,.56); }
            tbody tr:hover { background: rgba(37,99,235,.055) !important; }
            .border, .border-slate-200, .border-slate-300 { border-color: rgba(148,163,184,.28) !important; }

            #laporanView .grid > div,
            #lap_saldo_sumber_dana > div,
            .bg-indigo-50, .bg-purple-50, .bg-orange-50, .bg-teal-50, .bg-blue-50,
            .bg-slate-50.border.rounded-lg {
                border-radius: 18px !important;
                box-shadow: 0 12px 30px rgba(15,23,42,.055) !important;
            }
            #lap_total_masuk, #lap_total_keluar, #lap_saldo,
            #lap_saldo_bank, #lap_saldo_tunai, #lap_pajak_potong, #lap_pajak_setor {
                letter-spacing: -.02em;
            }

            #confirmModal { background: rgba(15,23,42,.54) !important; backdrop-filter: blur(8px); }
            #confirmModal > div {
                border-radius: 24px !important;
                border: 1px solid rgba(255,255,255,.42) !important;
                box-shadow: var(--prime-shadow-lg) !important;
            }
            #toast {
                border-radius: 999px !important;
                box-shadow: 0 22px 52px rgba(15,23,42,.26) !important;
                backdrop-filter: blur(14px) saturate(1.2);
            }

            .chart-fallback {
                position: absolute;
                inset: .5rem;
                display: flex;
                align-items: center;
                justify-content: center;
                text-align: center;
                padding: 1rem;
                border: 1px dashed rgba(148,163,184,.50);
                border-radius: 18px;
                background: rgba(248,250,252,.82);
                color: #64748b;
                font-size: .78rem;
                font-weight: 700;
            }

            @media (max-width: 767px) {
                #mainAppContainer { height: 100vh !important; }
                nav.no-print {
                    width: 100% !important;
                    height: auto !important;
                    max-height: 178px;
                    border-right: 0 !important;
                    border-bottom: 1px solid rgba(255,255,255,.10) !important;
                }
                nav.no-print > div:first-child { min-height: 68px; }
                nav.no-print button:hover { transform: none; }
                #formView, #spjView, #verifikasiSpjView, #laporanView,
                #masterPaguView, #pendapatanView, #penarikanView, #pembiayaanView,
                #bkuView, #bktView, #bksdView, #bkpView {
                    padding-left: .85rem !important;
                    padding-right: .85rem !important;
                }
                #formView section { padding: .9rem; }
                .bg-white.shadow-xl.rounded-lg,
                #formView .bg-white,
                #spjView .bg-white,
                #verifikasiSpjView .bg-white,
                #laporanView .bg-white,
                #masterPaguView .bg-white,
                #pendapatanView .bg-white,
                #penarikanView .bg-white,
                #pembiayaanView .bg-white {
                    border-radius: 18px !important;
                }
                #btnSave, #btnCetakPreview { width: 100%; }
                #formView .flex.gap-4.pt-4.border-t { flex-direction: column; }
            }
        }

        .bkk-table th, .bkk-table td { vertical-align: top; }
        @media print {
            #bkkView { width: 100% !important; max-width: none !important; }
            #bkkView table { font-size: 8.5pt !important; table-layout: fixed; }
            #bkkView th, #bkkView td { padding: 0.08cm !important; }
            #bkkView .bkk-uraian { white-space: normal !important; word-break: break-word !important; }
        }


/* =========================================================
   buku-kas-landscape-v3821
   Dipindahkan dari index.html agar CSS bisa dicache browser.
   ========================================================= */
/* =========================================================
           v3.8.27 - CETAK BUKU KAS A4 LANDSCAPE
           Berlaku untuk BKU, BKT, BKSD, BKP, dan Buku Kas Kegiatan.
           Dokumen SPP/SP2D/Kwitansi/Cover tetap memakai aturan cetak masing-masing.
        ========================================================= */
        @media print {
            @page bukuKasLandscapePage { size: A4 landscape; margin: 0.5in; }

            .print-landscape,
            #bkuView,
            #bktView,
            #bksdView,
            #bkpView,
            #bkkView {
                page: bukuKasLandscapePage !important;
                width: 100% !important;
                max-width: none !important;
                min-height: auto !important;
                padding: 0 !important;
                margin: 0 !important;
                background: #fff !important;
                box-shadow: none !important;
                border: 0 !important;
            }

            .print-landscape > div,
            #bkuView > div,
            #bktView > div,
            #bksdView > div,
            #bkpView > div,
            #bkkView > div {
                box-shadow: none !important;
                border: 0 !important;
                border-radius: 0 !important;
                width: 100% !important;
                max-width: none !important;
            }

            .print-landscape .overflow-x-auto,
            #bkuView .overflow-x-auto,
            #bktView .overflow-x-auto,
            #bksdView .overflow-x-auto,
            #bkpView .overflow-x-auto,
            #bkkView .overflow-x-auto {
                overflow: visible !important;
            }

            #bkuView table,
            #bktView table,
            #bksdView table,
            #bkpView table,
            #bkkView table {
                width: 100% !important;
                table-layout: fixed !important;
                border-collapse: collapse !important;
                font-size: 8.2pt !important;
                line-height: 1.15 !important;
            }

            #bkkView table { font-size: 8pt !important; }

            #bkuView th, #bkuView td,
            #bktView th, #bktView td,
            #bksdView th, #bksdView td,
            #bkpView th, #bkpView td,
            #bkkView th, #bkkView td {
                padding: 0.09cm !important;
                vertical-align: top !important;
                border-color: #000 !important;
                word-break: break-word !important;
                overflow-wrap: anywhere !important;
            }

            #bkuView .hidden.print\:block,
            #bktView .hidden.print\:block,
            #bksdView .hidden.print\:block,
            #bkpView .hidden.print\:block,
            #bkkView .hidden.print\:block {
                display: block !important;
            }

            #bkkHeaderInfo {
                font-size: 9pt !important;
                line-height: 1.25 !important;
                margin-bottom: 0.35cm !important;
            }
        }


/* =========================================================
   buku-kas-print-repeat-wrap-v3823
   Dipindahkan dari index.html agar CSS bisa dicache browser.
   ========================================================= */
/* =========================================================
           v3.8.26 - OPTIMASI CETAK BUKU KAS
           - Header tabel dan footer/totals tabel diulang di setiap halaman print.
           - Row tidak dipotong di tengah halaman.
           - Kolom Uraian/Kegiatan dibuat lebih luas daripada Nomor Bukti.
           - Nomor Bukti dibuat wrap text agar tidak melebar.
        ========================================================= */
        @media print {
            body.print-buku-kas #bkuView table,
            body.print-buku-kas #bktView table,
            body.print-buku-kas #bksdView table,
            body.print-buku-kas #bkpView table,
            body.print-buku-kas #bkkView table {
                page-break-inside: auto !important;
                break-inside: auto !important;
                table-layout: fixed !important;
                width: 100% !important;
            }

            body.print-buku-kas #bkuView thead,
            body.print-buku-kas #bktView thead,
            body.print-buku-kas #bksdView thead,
            body.print-buku-kas #bkpView thead,
            body.print-buku-kas #bkkView thead {
                display: table-header-group !important;
                position: static !important;
            }

            body.print-buku-kas #bkuView tfoot,
            body.print-buku-kas #bktView tfoot,
            body.print-buku-kas #bksdView tfoot,
            body.print-buku-kas #bkpView tfoot,
            body.print-buku-kas #bkkView tfoot {
                display: table-footer-group !important;
            }

            body.print-buku-kas #bkuView tr,
            body.print-buku-kas #bktView tr,
            body.print-buku-kas #bksdView tr,
            body.print-buku-kas #bkpView tr,
            body.print-buku-kas #bkkView tr {
                page-break-inside: avoid !important;
                break-inside: avoid !important;
            }

            body.print-buku-kas #bkuView th,
            body.print-buku-kas #bkuView td,
            body.print-buku-kas #bktView th,
            body.print-buku-kas #bktView td,
            body.print-buku-kas #bksdView th,
            body.print-buku-kas #bksdView td,
            body.print-buku-kas #bkpView th,
            body.print-buku-kas #bkpView td,
            body.print-buku-kas #bkkView th,
            body.print-buku-kas #bkkView td {
                white-space: normal !important;
                overflow: visible !important;
                text-overflow: clip !important;
                word-break: normal !important;
                overflow-wrap: break-word !important;
                hyphens: auto !important;
            }

            /* BKU/BKT/BKSD: Uraian lebih luas, Nomor Bukti wrap. */
            body.print-buku-kas #bkuView th:nth-child(1), body.print-buku-kas #bkuView td:nth-child(1),
            body.print-buku-kas #bktView th:nth-child(1), body.print-buku-kas #bktView td:nth-child(1),
            body.print-buku-kas #bksdView th:nth-child(1), body.print-buku-kas #bksdView td:nth-child(1) { width: 4% !important; }
            body.print-buku-kas #bkuView th:nth-child(2), body.print-buku-kas #bkuView td:nth-child(2),
            body.print-buku-kas #bktView th:nth-child(2), body.print-buku-kas #bktView td:nth-child(2),
            body.print-buku-kas #bksdView th:nth-child(2), body.print-buku-kas #bksdView td:nth-child(2) { width: 8% !important; }
            body.print-buku-kas #bkuView th:nth-child(3), body.print-buku-kas #bkuView td:nth-child(3),
            body.print-buku-kas #bktView th:nth-child(3), body.print-buku-kas #bktView td:nth-child(3),
            body.print-buku-kas #bksdView th:nth-child(3), body.print-buku-kas #bksdView td:nth-child(3) {
                width: 11% !important;
                white-space: normal !important;
                word-break: break-word !important;
                overflow-wrap: anywhere !important;
                font-size: 7.3pt !important;
                line-height: 1.05 !important;
            }
            body.print-buku-kas #bkuView th:nth-child(4), body.print-buku-kas #bkuView td:nth-child(4),
            body.print-buku-kas #bktView th:nth-child(4), body.print-buku-kas #bktView td:nth-child(4),
            body.print-buku-kas #bksdView th:nth-child(4), body.print-buku-kas #bksdView td:nth-child(4) {
                width: 33% !important;
                white-space: normal !important;
                word-break: normal !important;
                overflow-wrap: break-word !important;
            }
            body.print-buku-kas #bkuView th:nth-child(5), body.print-buku-kas #bkuView td:nth-child(5),
            body.print-buku-kas #bktView th:nth-child(5), body.print-buku-kas #bktView td:nth-child(5),
            body.print-buku-kas #bksdView th:nth-child(5), body.print-buku-kas #bksdView td:nth-child(5) { width: 8% !important; }
            body.print-buku-kas #bkuView th:nth-child(6), body.print-buku-kas #bkuView td:nth-child(6),
            body.print-buku-kas #bkuView th:nth-child(7), body.print-buku-kas #bkuView td:nth-child(7),
            body.print-buku-kas #bkuView th:nth-child(8), body.print-buku-kas #bkuView td:nth-child(8),
            body.print-buku-kas #bktView th:nth-child(6), body.print-buku-kas #bktView td:nth-child(6),
            body.print-buku-kas #bktView th:nth-child(7), body.print-buku-kas #bktView td:nth-child(7),
            body.print-buku-kas #bktView th:nth-child(8), body.print-buku-kas #bktView td:nth-child(8),
            body.print-buku-kas #bksdView th:nth-child(6), body.print-buku-kas #bksdView td:nth-child(6),
            body.print-buku-kas #bksdView th:nth-child(7), body.print-buku-kas #bksdView td:nth-child(7),
            body.print-buku-kas #bksdView th:nth-child(8), body.print-buku-kas #bksdView td:nth-child(8) { width: 12% !important; }

            /* Buku Pajak: kolom bukti/uraian pajak dibuat lebar dan wrap. */
            body.print-buku-kas #bkpView th:nth-child(1), body.print-buku-kas #bkpView td:nth-child(1) { width: 4% !important; }
            body.print-buku-kas #bkpView th:nth-child(2), body.print-buku-kas #bkpView td:nth-child(2) { width: 8% !important; }
            body.print-buku-kas #bkpView th:nth-child(3), body.print-buku-kas #bkpView td:nth-child(3) {
                width: 44% !important;
                white-space: normal !important;
                word-break: break-word !important;
                overflow-wrap: anywhere !important;
            }
            body.print-buku-kas #bkpView th:nth-child(4), body.print-buku-kas #bkpView td:nth-child(4),
            body.print-buku-kas #bkpView th:nth-child(5), body.print-buku-kas #bkpView td:nth-child(5) { width: 14% !important; }
            body.print-buku-kas #bkpView th:nth-child(6), body.print-buku-kas #bkpView td:nth-child(6) { width: 16% !important; }
            body.print-buku-kas #bkpView th:nth-child(7), body.print-buku-kas #bkpView td:nth-child(7) { display: none !important; }

            /* Buku Kas Kegiatan: Uraian dibuat dominan, Nomor Bukti wrap. */
            body.print-buku-kas #bkkView th:nth-child(1), body.print-buku-kas #bkkView td:nth-child(1) { width: 4% !important; }
            body.print-buku-kas #bkkView th:nth-child(2), body.print-buku-kas #bkkView td:nth-child(2) { width: 8% !important; }
            body.print-buku-kas #bkkView th:nth-child(3), body.print-buku-kas #bkkView td:nth-child(3) {
                width: 10% !important;
                white-space: normal !important;
                word-break: break-word !important;
                overflow-wrap: anywhere !important;
                font-size: 7.2pt !important;
                line-height: 1.05 !important;
            }
            body.print-buku-kas #bkkView th:nth-child(4), body.print-buku-kas #bkkView td:nth-child(4) {
                width: 30% !important;
                white-space: normal !important;
                word-break: normal !important;
                overflow-wrap: break-word !important;
            }
            body.print-buku-kas #bkkView th:nth-child(5), body.print-buku-kas #bkkView td:nth-child(5) { width: 10% !important; }
            body.print-buku-kas #bkkView th:nth-child(6), body.print-buku-kas #bkkView td:nth-child(6) { width: 12% !important; }
            body.print-buku-kas #bkkView th:nth-child(7), body.print-buku-kas #bkkView td:nth-child(7) { width: 9% !important; }
            body.print-buku-kas #bkkView th:nth-child(8), body.print-buku-kas #bkkView td:nth-child(8) { width: 8% !important; }
            body.print-buku-kas #bkkView th:nth-child(9), body.print-buku-kas #bkkView td:nth-child(9) { width: 9% !important; }

            body.print-buku-kas #bkuView td:nth-child(6), body.print-buku-kas #bkuView td:nth-child(7), body.print-buku-kas #bkuView td:nth-child(8),
            body.print-buku-kas #bktView td:nth-child(6), body.print-buku-kas #bktView td:nth-child(7), body.print-buku-kas #bktView td:nth-child(8),
            body.print-buku-kas #bksdView td:nth-child(6), body.print-buku-kas #bksdView td:nth-child(7), body.print-buku-kas #bksdView td:nth-child(8),
            body.print-buku-kas #bkpView td:nth-child(4), body.print-buku-kas #bkpView td:nth-child(5), body.print-buku-kas #bkpView td:nth-child(6),
            body.print-buku-kas #bkkView td:nth-child(5), body.print-buku-kas #bkkView td:nth-child(6), body.print-buku-kas #bkkView td:nth-child(7), body.print-buku-kas #bkkView td:nth-child(8), body.print-buku-kas #bkkView td:nth-child(9) {
                white-space: nowrap !important;
                font-size: 7.4pt !important;
            }
        }

        @media screen {
            #bkuView table, #bktView table, #bksdView table, #bkpView table, #bkkView table { table-layout: fixed; }
            #bkuView td:nth-child(3), #bktView td:nth-child(3), #bksdView td:nth-child(3), #bkkView td:nth-child(3), #bkpView td:nth-child(3) {
                white-space: normal !important;
                word-break: break-word !important;
                overflow-wrap: anywhere !important;
            }
            #bkuView td:nth-child(4), #bktView td:nth-child(4), #bksdView td:nth-child(4), #bkkView td:nth-child(4) {
                white-space: normal !important;
                word-break: normal !important;
                overflow-wrap: break-word !important;
            }
        }


/* =========================================================
   buku-kas-paginated-print-v3823
   Dipindahkan dari index.html agar CSS bisa dicache browser.
   ========================================================= */
/* =========================================================
           v3.8.26 - FIX CETAK BUKU KAS PAGINATED
           - Hanya area buku kas yang dicetak, preview SPP/SP2D disembunyikan.
           - Header + footer dibuat ulang per halaman A4 landscape.
           - Footer tidak dipaksa masuk setelah tabel panjang; data dipecah per halaman.
           - Kolom Uraian lebih luas dari Nomor Bukti, Nomor Bukti tetap wrap.
        ========================================================= */
        #bukuKasPrintPages { display: none; }
        @media print {
            body.print-buku-kas #loginView,
            body.print-buku-kas #mainAppContainer,
            body.print-buku-kas #previewView,
            body.print-buku-kas #toast,
            body.print-buku-kas #confirmModal {
                display: none !important;
            }

            body.print-buku-kas {
                background: #fff !important;
                margin: 0 !important;
                padding: 0 !important;
            }

            body.print-buku-kas #bukuKasPrintPages {
                display: block !important;
                background: #fff !important;
                color: #000 !important;
                width: 100% !important;
                margin: 0 !important;
                padding: 0 !important;
            }

            body.print-buku-kas .bk-print-page {
                page: bukuKasLandscapePage;
                width: 100% !important;
                min-height: 184mm !important;
                box-sizing: border-box !important;
                display: flex !important;
                flex-direction: column !important;
                page-break-after: always !important;
                break-after: page !important;
                overflow: hidden !important;
                background: #fff !important;
                color: #000 !important;
                font-family: Arial, Helvetica, sans-serif !important;
            }

            body.print-buku-kas .bk-print-page:last-child {
                page-break-after: auto !important;
                break-after: auto !important;
            }

            body.print-buku-kas .bk-print-header {
                flex: 0 0 auto !important;
                margin: 0 0 0.16cm 0 !important;
                padding: 0 !important;
                page-break-inside: avoid !important;
                break-inside: avoid !important;
            }

            body.print-buku-kas .bk-print-header .hidden,
            body.print-buku-kas .bk-print-footer .hidden {
                display: block !important;
            }

            body.print-buku-kas .bk-print-header h1 {
                font-size: 9.5pt !important;
                line-height: 1.08 !important;
                margin: 0 !important;
            }

            body.print-buku-kas .bk-print-header h2,
            body.print-buku-kas .bk-print-header h3,
            body.print-buku-kas .bk-print-header p {
                font-size: 8.4pt !important;
                line-height: 1.08 !important;
                margin: 0 !important;
            }

            body.print-buku-kas .bk-print-info {
                font-size: 7.2pt !important;
                line-height: 1.08 !important;
                margin: 0.08cm 0 0.14cm 0 !important;
                display: grid !important;
                grid-template-columns: 2.2cm 0.2cm 1fr !important;
                gap: 0.02cm 0.08cm !important;
                font-weight: 700 !important;
            }

            body.print-buku-kas .bk-print-table-wrap {
                flex: 0 1 auto !important;
                width: 100% !important;
                overflow: visible !important;
                page-break-inside: avoid !important;
                break-inside: avoid !important;
            }

            body.print-buku-kas table.bk-print-table {
                width: 100% !important;
                table-layout: fixed !important;
                border-collapse: collapse !important;
                border: 1px solid #000 !important;
                font-size: 6.45pt !important;
                line-height: 1.04 !important;
                color: #000 !important;
            }

            body.print-buku-kas .bk-print-table th,
            body.print-buku-kas .bk-print-table td {
                border: 1px solid #000 !important;
                padding: 0.035cm 0.045cm !important;
                vertical-align: top !important;
                color: #000 !important;
                background: transparent !important;
                white-space: normal !important;
                word-break: normal !important;
                overflow-wrap: break-word !important;
                text-overflow: clip !important;
                overflow: visible !important;
            }

            body.print-buku-kas .bk-print-table thead th {
                background: #d9d9d9 !important;
                font-weight: 700 !important;
                text-align: center !important;
                vertical-align: middle !important;
            }

            body.print-buku-kas .bk-print-table tfoot td {
                font-weight: 700 !important;
                background: #fff !important;
            }

            body.print-buku-kas .bk-print-table td:nth-child(3),
            body.print-buku-kas .bk-print-table th:nth-child(3) {
                overflow-wrap: anywhere !important;
                word-break: break-word !important;
                font-size: 5.85pt !important;
                line-height: 1 !important;
            }

            body.print-buku-kas .bk-print-table td:nth-child(4),
            body.print-buku-kas .bk-print-table th:nth-child(4) {
                overflow-wrap: break-word !important;
                word-break: normal !important;
            }

            body.print-buku-kas .bk-print-table td:nth-last-child(-n+3) {
                white-space: nowrap !important;
                font-size: 6.05pt !important;
            }

            body.print-buku-kas .bk-print-footer {
                flex: 0 0 auto !important;
                margin-top: auto !important;
                padding-top: 0.14cm !important;
                page-break-inside: avoid !important;
                break-inside: avoid !important;
                font-size: 6.15pt !important;
                line-height: 1.02 !important;
                color: #000 !important;
            }

            body.print-buku-kas .bk-print-footer * {
                color: #000 !important;
                line-height: 1.02 !important;
                font-size: 6.15pt !important;
            }

            body.print-buku-kas .bk-print-footer table {
                width: 100% !important;
                border-collapse: collapse !important;
                border: 0 !important;
                table-layout: auto !important;
                font-size: 6.05pt !important;
            }

            body.print-buku-kas .bk-print-footer table td {
                border: 0 !important;
                padding: 0 !important;
                font-size: 6.05pt !important;
            }

            body.print-buku-kas .bk-print-footer .mb-8,
            body.print-buku-kas .bk-print-footer .mb-6,
            body.print-buku-kas .bk-print-footer .mb-4,
            body.print-buku-kas .bk-print-footer .mb-3,
            body.print-buku-kas .bk-print-footer .mb-2 {
                margin-bottom: 0.06cm !important;
            }

            body.print-buku-kas .bk-print-footer .mt-16,
            body.print-buku-kas .bk-print-footer .mt-8,
            body.print-buku-kas .bk-print-footer .mt-4,
            body.print-buku-kas .bk-print-footer .mt-3,
            body.print-buku-kas .bk-print-footer .mt-2 {
                margin-top: 0.08cm !important;
            }

            body.print-buku-kas .bk-print-footer .h-20,
            body.print-buku-kas .bk-print-footer .h-16 {
                height: 0.55cm !important;
            }

            body.print-buku-kas .bk-print-footer .flex {
                display: flex !important;
            }

            body.print-buku-kas .bk-print-footer .w-1\/3 {
                width: 33.333333% !important;
            }

            body.print-buku-kas .bk-print-footer p {
                margin: 0 !important;
            }

            body.print-buku-kas .bk-print-page .no-print,
            body.print-buku-kas .bk-print-page button,
            body.print-buku-kas .bk-print-page input,
            body.print-buku-kas .bk-print-page select,
            body.print-buku-kas .bk-print-page textarea {
                display: none !important;
            }
        }


/* =========================================================
   bku-footer-readable-v3825
   Dipindahkan dari index.html agar CSS bisa dicache browser.
   ========================================================= */
/* v3.8.26 - Footer BKU rapi kiri + angka tabel lebih mudah dibaca */
        @media print {
            body.print-buku-kas table.bk-print-table {
                font-size: 7.15pt !important;
                line-height: 1.12 !important;
            }
            body.print-buku-kas .bk-print-table th,
            body.print-buku-kas .bk-print-table td {
                padding: 0.045cm 0.055cm !important;
            }
            body.print-buku-kas .bk-print-table td:nth-last-child(-n+3),
            body.print-buku-kas .bk-print-table tfoot td:nth-last-child(-n+3) {
                font-size: 7.45pt !important;
                font-weight: 700 !important;
                white-space: nowrap !important;
                letter-spacing: 0 !important;
            }
            body.print-buku-kas .bk-print-table td:nth-child(3),
            body.print-buku-kas .bk-print-table th:nth-child(3) {
                font-size: 6.4pt !important;
                line-height: 1.05 !important;
            }
            body.print-buku-kas .bk-print-table tfoot td {
                font-size: 7.35pt !important;
                padding-top: 0.06cm !important;
                padding-bottom: 0.06cm !important;
            }
            body.print-buku-kas .bk-print-footer {
                text-align: left !important;
                font-size: 7.05pt !important;
                line-height: 1.12 !important;
                padding-top: 0.08cm !important;
            }
            body.print-buku-kas .bk-print-footer * {
                text-align: left !important;
                font-size: 7.05pt !important;
                line-height: 1.12 !important;
            }
            body.print-buku-kas .bk-foot-wrap {
                width: 100% !important;
                display: block !important;
                color: #000 !important;
            }
            body.print-buku-kas .bk-foot-keterangan {
                width: 58% !important;
                margin: 0 !important;
                padding: 0 !important;
            }
            body.print-buku-kas .bk-foot-title {
                font-weight: 700 !important;
                margin: 0 0 0.035cm 0 !important;
            }
            body.print-buku-kas .bk-foot-subtitle {
                margin: 0.035cm 0 0.02cm 0.12cm !important;
            }
            body.print-buku-kas .bk-foot-subtitle-gap {
                margin-top: 0.08cm !important;
            }
            body.print-buku-kas .bk-foot-table {
                width: auto !important;
                min-width: 9.8cm !important;
                table-layout: auto !important;
                border-collapse: collapse !important;
                margin: 0 0 0.02cm 0.24cm !important;
                border: 0 !important;
            }
            body.print-buku-kas .bk-foot-table td {
                border: 0 !important;
                padding: 0 !important;
                vertical-align: top !important;
            }
            body.print-buku-kas .bk-foot-label {
                width: 6.4cm !important;
                padding-right: 0.03cm !important;
                white-space: normal !important;
            }
            body.print-buku-kas .bk-foot-rp {
                width: 0.48cm !important;
                padding-left: 0 !important;
                padding-right: 0.02cm !important;
                white-space: nowrap !important;
            }
            body.print-buku-kas .bk-foot-value {
                min-width: 2.5cm !important;
                text-align: right !important;
                font-weight: 700 !important;
                padding-left: 0.03cm !important;
                white-space: nowrap !important;
            }
            body.print-buku-kas .bk-foot-line {
                border-top: 1px solid #000 !important;
                padding-top: 0.02cm !important;
            }
            body.print-buku-kas .bk-foot-signatures {
                margin-top: 0.32cm !important;
                display: flex !important;
                justify-content: space-between !important;
                text-align: center !important;
                width: 100% !important;
            }
            body.print-buku-kas .bk-foot-sign {
                width: 32% !important;
                text-align: center !important;
            }
            body.print-buku-kas .bk-foot-sign * {
                text-align: center !important;
            }
            body.print-buku-kas .bk-sign-space {
                height: 0.62cm !important;
            }
            body.print-buku-kas .bk-sign-name {
                font-weight: 700 !important;
                margin: 0 !important;
            }
        }


/* =========================================================
   buku-kas-narrow-readable-v3826
   Dipindahkan dari index.html agar CSS bisa dicache browser.
   ========================================================= */
/* v3.8.27 - Cetak Buku Kas: margin default 0.5 inch, footer dekat tabel, teks lebih besar */
        @media print {
            @page bukuKasLandscapePage { size: A4 landscape; margin: 0.5in !important; }

            body.print-buku-kas .bk-print-page {
                min-height: auto !important;
                height: auto !important;
                overflow: visible !important;
                justify-content: flex-start !important;
            }

            body.print-buku-kas .bk-print-header {
                margin-bottom: 0.08cm !important;
            }

            body.print-buku-kas .bk-print-header h1 {
                font-size: 10.2pt !important;
                line-height: 1.08 !important;
            }
            body.print-buku-kas .bk-print-header h2,
            body.print-buku-kas .bk-print-header h3,
            body.print-buku-kas .bk-print-header p {
                font-size: 9.1pt !important;
                line-height: 1.08 !important;
            }

            body.print-buku-kas table.bk-print-table {
                font-size: 8.05pt !important;
                line-height: 1.12 !important;
            }
            body.print-buku-kas .bk-print-table th,
            body.print-buku-kas .bk-print-table td {
                padding: 0.045cm 0.055cm !important;
            }
            body.print-buku-kas .bk-print-table th {
                font-size: 8.05pt !important;
                line-height: 1.08 !important;
            }
            body.print-buku-kas .bk-print-table td:nth-child(3),
            body.print-buku-kas .bk-print-table th:nth-child(3) {
                font-size: 6.9pt !important;
                line-height: 1.04 !important;
            }
            body.print-buku-kas .bk-print-table td:nth-child(4),
            body.print-buku-kas .bk-print-table th:nth-child(4) {
                font-size: 7.9pt !important;
                line-height: 1.12 !important;
            }
            body.print-buku-kas .bk-print-table td:nth-last-child(-n+3),
            body.print-buku-kas .bk-print-table tfoot td:nth-last-child(-n+3) {
                font-size: 8.25pt !important;
                line-height: 1.1 !important;
                font-weight: 700 !important;
                white-space: nowrap !important;
            }
            body.print-buku-kas .bk-print-table tfoot td {
                font-size: 8.05pt !important;
                padding-top: 0.055cm !important;
                padding-bottom: 0.055cm !important;
            }

            /* Footer tidak lagi dipaksa turun ke bawah halaman. */
            body.print-buku-kas .bk-print-footer {
                margin-top: 0.18cm !important;
                padding-top: 0 !important;
                font-size: 7.7pt !important;
                line-height: 1.08 !important;
                text-align: left !important;
            }
            body.print-buku-kas .bk-print-footer * {
                font-size: 7.7pt !important;
                line-height: 1.08 !important;
            }
            body.print-buku-kas .bk-foot-keterangan {
                width: 64% !important;
            }
            body.print-buku-kas .bk-foot-title {
                margin-bottom: 0.025cm !important;
            }
            body.print-buku-kas .bk-foot-subtitle {
                margin: 0.025cm 0 0.015cm 0.08cm !important;
            }
            body.print-buku-kas .bk-foot-subtitle-gap {
                margin-top: 0.045cm !important;
            }
            body.print-buku-kas .bk-foot-table {
                min-width: 8.7cm !important;
                margin-left: 0.16cm !important;
                margin-bottom: 0.01cm !important;
            }
            body.print-buku-kas .bk-foot-label {
                width: 5.55cm !important;
                padding-right: 0.015cm !important;
            }
            body.print-buku-kas .bk-foot-rp {
                width: 0.32cm !important;
                padding-right: 0.01cm !important;
            }
            body.print-buku-kas .bk-foot-value {
                min-width: 2.45cm !important;
                padding-left: 0.01cm !important;
                text-align: right !important;
            }
            body.print-buku-kas .bk-foot-signatures {
                margin-top: 0.22cm !important;
            }
            body.print-buku-kas .bk-sign-space {
                height: 0.55cm !important;
            }
        }


/* =========================================================
   buku-kas-margin-05-v3827
   Dipindahkan dari index.html agar CSS bisa dicache browser.
   ========================================================= */
/* v3.8.27 - Margin print Buku Kas default 0,5 inch */
        @media print {
            @page bukuKasLandscapePage { size: A4 landscape; margin: 0.5in !important; }
            body.print-buku-kas .bk-print-page {
                min-height: 184mm !important;
                height: auto !important;
                overflow: visible !important;
            }
            body.print-buku-kas .bk-print-footer {
                margin-top: 0.16cm !important;
            }
        }


/* =========================================================
   ai-agent-bendahara-style-v3828
   Dipindahkan dari index.html agar CSS bisa dicache browser.
   ========================================================= */
/* =========================================================
           AI AGENT BENDAHARA DESA v3.8.28
           Modul assistant lokal: membantu isi draft SPP, cek pagu,
           baca ringkasan buku kas, dan memberi saran pajak awal.
           Tidak mengubah data cloud sebelum user klik Simpan.
        ========================================================= */
        @media screen {
            #aiAgentView .ai-agent-shell {
                display: grid;
                grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
                gap: 1rem;
            }
            #aiAgentView .ai-card {
                border: 1px solid rgba(148,163,184,.24);
                background: rgba(255,255,255,.92);
                border-radius: 22px;
                box-shadow: 0 18px 48px rgba(15,23,42,.10);
                overflow: hidden;
            }
            #aiAgentView .ai-hero {
                background:
                    radial-gradient(circle at 92% 15%, rgba(214,168,79,.24), transparent 11rem),
                    linear-gradient(135deg, #07111f, #1e4b6e);
                color: #fff;
                padding: 1.25rem;
            }
            #aiAgentView .ai-badge {
                display: inline-flex;
                align-items: center;
                gap: .35rem;
                padding: .35rem .65rem;
                border-radius: 999px;
                font-size: 10px;
                font-weight: 900;
                letter-spacing: .04em;
                text-transform: uppercase;
                background: rgba(255,255,255,.14);
                border: 1px solid rgba(255,255,255,.18);
                color: #dbeafe;
            }
            #aiAgentView .ai-log {
                height: 430px;
                overflow-y: auto;
                padding: 1rem;
                background:
                    radial-gradient(circle at top left, rgba(37,99,235,.06), transparent 18rem),
                    linear-gradient(180deg, rgba(248,250,252,.92), rgba(255,255,255,.96));
            }
            #aiAgentView .ai-msg {
                max-width: 86%;
                margin-bottom: .75rem;
                border-radius: 18px;
                padding: .75rem .9rem;
                font-size: .86rem;
                line-height: 1.45;
                box-shadow: 0 10px 24px rgba(15,23,42,.07);
            }
            #aiAgentView .ai-msg-user {
                margin-left: auto;
                background: linear-gradient(135deg, #1e4b6e, #0f172a);
                color: #fff;
                border-bottom-right-radius: 6px;
            }
            #aiAgentView .ai-msg-bot {
                background: #fff;
                color: #0f172a;
                border: 1px solid rgba(148,163,184,.26);
                border-bottom-left-radius: 6px;
            }
            #aiAgentView .ai-input-wrap {
                padding: 1rem;
                border-top: 1px solid rgba(148,163,184,.22);
                background: rgba(255,255,255,.96);
            }
            #aiAgentView .ai-chip {
                border: 1px solid rgba(30,75,110,.20);
                background: rgba(30,75,110,.06);
                color: #1e4b6e;
                border-radius: 999px;
                padding: .42rem .7rem;
                font-size: .72rem;
                font-weight: 800;
                transition: .16s ease;
            }
            #aiAgentView .ai-chip:hover { transform: translateY(-1px); background: rgba(30,75,110,.12); }
            #aiAgentView .ai-stat {
                border-radius: 18px;
                padding: .9rem;
                background: linear-gradient(180deg, rgba(248,250,252,.96), rgba(255,255,255,.96));
                border: 1px solid rgba(148,163,184,.22);
            }
            #aiAgentView .ai-draft-box {
                background: #f8fafc;
                border: 1px dashed rgba(30,75,110,.34);
                border-radius: 18px;
                padding: .9rem;
                font-size: .82rem;
            }
            #aiAgentView .ai-warning {
                border-left: 4px solid #d97706;
                background: #fffbeb;
                color: #92400e;
                padding: .65rem .8rem;
                border-radius: 12px;
                font-size: .78rem;
                font-weight: 700;
            }
            @media (max-width: 980px) {
                #aiAgentView .ai-agent-shell { grid-template-columns: 1fr; }
                #aiAgentView .ai-log { height: 360px; }
                #aiAgentView .ai-msg { max-width: 94%; }
            }
        }


/* =========================================================
   fullscreen-mode-v3829
   Dipindahkan dari index.html agar CSS bisa dicache browser.
   ========================================================= */
/* v3.8.42 - Fullscreen otomatis setelah login + tombol keluar fullscreen */
        @media screen {
            .fullscreen-btn {
                display: inline-flex;
                align-items: center;
                justify-content: center;
                gap: .45rem;
                border-radius: 14px;
                font-weight: 900;
                transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
            }
            .fullscreen-btn:hover { transform: translateY(-1px); }
            body.app-fullscreen-active,
            body.app-fullscreen-forced {
                overflow: hidden !important;
            }
            body.app-fullscreen-active #mainAppContainer,
            body.app-fullscreen-forced #mainAppContainer {
                position: fixed !important;
                inset: 0 !important;
                z-index: 9990 !important;
                width: 100vw !important;
                height: 100vh !important;
                max-width: none !important;
                max-height: none !important;
            }
            #btnExitFullscreenFloating {
                display: none;
                position: fixed;
                top: 12px;
                right: 12px;
                z-index: 9999;
                padding: 10px 14px;
                border-radius: 999px;
                border: 1px solid rgba(255,255,255,.30);
                background: rgba(30, 75, 110, .94);
                color: #fff;
                box-shadow: 0 16px 40px rgba(15,23,42,.28);
                backdrop-filter: blur(10px);
                font-size: 12px;
                line-height: 1;
            }
            body.app-fullscreen-active #btnExitFullscreenFloating,
            body.app-fullscreen-forced #btnExitFullscreenFloating { display: inline-flex; }
        }


/* =========================================================
   offline-sync-v3830
   Dipindahkan dari index.html agar CSS bisa dicache browser.
   ========================================================= */
/* =========================================================
           v3.8.34 - OFFLINE INPUT + AUTO SYNC
           Data yang gagal terkirim ke Google Sheet disimpan sementara
           di localStorage, diberi tanda khusus, lalu dikirim otomatis
           saat koneksi internet kembali online.
        ========================================================= */
        @media screen {
            .offline-sync-badge {
                display: inline-flex;
                align-items: center;
                justify-content: center;
                gap: .35rem;
                border-radius: 999px;
                padding: .35rem .6rem;
                font-size: 10px;
                font-weight: 900;
                letter-spacing: .035em;
                text-transform: uppercase;
                border: 1px solid rgba(148, 163, 184, .38);
                box-shadow: inset 0 0 0 1px rgba(255,255,255,.08), 0 8px 18px rgba(15,23,42,.12);
                white-space: nowrap;
            }
            .offline-online { background: rgba(16,185,129,.16); color: #a7f3d0; border-color: rgba(16,185,129,.32); }
            .offline-pending { background: rgba(245,158,11,.18); color: #fde68a; border-color: rgba(245,158,11,.44); }
            .offline-offline { background: rgba(239,68,68,.18); color: #fecaca; border-color: rgba(239,68,68,.42); }
            .offline-syncing { background: rgba(59,130,246,.18); color: #bfdbfe; border-color: rgba(59,130,246,.42); }
            .offline-pending-card {
                border-color: #f59e0b !important;
                background: linear-gradient(180deg, #fffbeb, #ffffff) !important;
                box-shadow: 0 12px 30px rgba(245, 158, 11, .13) !important;
            }
            .offline-local-label {
                display: inline-flex;
                align-items: center;
                gap: .25rem;
                padding: .18rem .45rem;
                border-radius: 999px;
                background: #fef3c7;
                color: #92400e;
                border: 1px solid #f59e0b;
                font-size: 9px;
                font-weight: 900;
                margin-left: .35rem;
                white-space: nowrap;
            }
        }


/* =========================================================
   dashboard-menu-topbar-v3831
   Dipindahkan dari index.html agar CSS bisa dicache browser.
   ========================================================= */
/* =========================================================
           v3.8.34 - Dashboard menu utama + topbar menu cepat
           - Buku Kas Kegiatan dan AI Agent dipindah ke bar atas.
           - Dashboard modern untuk akses cepat seluruh modul.
        ========================================================= */
        @media screen {
            #topbarMenu {
                gap: .55rem !important;
                align-items: center !important;
            }
            #topbarMenu .topbar-section-label {
                font-size: 10px;
                font-weight: 900;
                color: #64748b;
                text-transform: uppercase;
                letter-spacing: .075em;
                margin-right: .15rem;
                white-space: nowrap;
            }
            #topbarMenu .topbar-divider {
                width: 1px;
                height: 26px;
                background: rgba(148, 163, 184, .36);
                flex: 0 0 auto;
                margin: 0 .2rem;
            }
            #topbarMenu button.quick-topbar-primary {
                background: linear-gradient(135deg, #0f172a, #1e4b6e) !important;
                color: #fff !important;
                border-color: rgba(255,255,255,.14) !important;
                box-shadow: 0 12px 28px rgba(15,23,42,.14) !important;
            }
            #topbarMenu button.quick-topbar-primary:hover {
                transform: translateY(-1px);
                filter: saturate(1.08);
            }

            #dashboardView {
                animation: primeFadeUp .28s ease both;
            }
            #dashboardView .dashboard-shell {
                display: grid;
                grid-template-columns: minmax(0, 1fr);
                gap: 1rem;
            }
            #dashboardView .dashboard-hero {
                position: relative;
                overflow: hidden;
                border-radius: 28px;
                border: 1px solid rgba(148,163,184,.24);
                background:
                    radial-gradient(circle at 88% 18%, rgba(214,168,79,.26), transparent 16rem),
                    radial-gradient(circle at 10% 10%, rgba(6,182,212,.18), transparent 18rem),
                    linear-gradient(135deg, #07111f 0%, #13233a 52%, #1e4b6e 100%);
                color: #fff;
                box-shadow: 0 30px 86px rgba(15,23,42,.18);
            }
            #dashboardView .dashboard-hero::after {
                content: "";
                position: absolute;
                right: -4.5rem;
                bottom: -6rem;
                width: 18rem;
                height: 18rem;
                border-radius: 999px;
                background: rgba(255,255,255,.10);
                pointer-events: none;
            }
            #dashboardView .dashboard-pill {
                display: inline-flex;
                align-items: center;
                gap: .45rem;
                padding: .42rem .75rem;
                border-radius: 999px;
                background: rgba(255,255,255,.12);
                border: 1px solid rgba(255,255,255,.16);
                color: #dbeafe;
                font-size: 10px;
                font-weight: 900;
                text-transform: uppercase;
                letter-spacing: .06em;
            }
            #dashboardView .dashboard-stat-grid {
                display: grid;
                grid-template-columns: repeat(4, minmax(0, 1fr));
                gap: .85rem;
            }
            #dashboardView .dashboard-stat-card {
                border-radius: 20px;
                padding: 1rem;
                background: rgba(255,255,255,.12);
                border: 1px solid rgba(255,255,255,.14);
                backdrop-filter: blur(14px);
                min-height: 104px;
            }
            #dashboardView .dashboard-stat-label {
                color: #bfdbfe;
                font-size: 10px;
                font-weight: 900;
                text-transform: uppercase;
                letter-spacing: .055em;
            }
            #dashboardView .dashboard-stat-value {
                margin-top: .45rem;
                font-size: 1.35rem;
                line-height: 1.05;
                font-weight: 1000;
                letter-spacing: -.025em;
            }
            #dashboardView .dashboard-menu-grid {
                display: grid;
                grid-template-columns: repeat(4, minmax(0, 1fr));
                gap: 1rem;
            }
            #dashboardView .dashboard-menu-card {
                text-align: left;
                border-radius: 22px;
                padding: 1rem;
                border: 1px solid rgba(148,163,184,.24);
                background: rgba(255,255,255,.92);
                box-shadow: 0 18px 46px rgba(15,23,42,.08);
                min-height: 148px;
                transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
                position: relative;
                overflow: hidden;
            }
            #dashboardView .dashboard-menu-card::after {
                content: "";
                position: absolute;
                right: -2.8rem;
                top: -3.2rem;
                width: 8rem;
                height: 8rem;
                border-radius: 999px;
                background: rgba(30,75,110,.07);
                pointer-events: none;
            }
            #dashboardView .dashboard-menu-card:hover {
                transform: translateY(-4px);
                border-color: rgba(37,99,235,.30);
                box-shadow: 0 26px 64px rgba(15,23,42,.13);
            }
            #dashboardView .dashboard-icon {
                width: 44px;
                height: 44px;
                border-radius: 16px;
                display: flex;
                align-items: center;
                justify-content: center;
                background: linear-gradient(135deg, rgba(30,75,110,.12), rgba(214,168,79,.14));
                font-size: 1.35rem;
                margin-bottom: .75rem;
            }
            #dashboardView .dashboard-card-title {
                font-weight: 1000;
                color: #0f172a;
                font-size: .94rem;
                line-height: 1.18;
            }
            #dashboardView .dashboard-card-desc {
                margin-top: .35rem;
                color: #64748b;
                font-size: .76rem;
                line-height: 1.35;
            }
            #dashboardView .dashboard-card-tag {
                display: inline-flex;
                margin-top: .75rem;
                padding: .24rem .52rem;
                border-radius: 999px;
                background: #f1f5f9;
                color: #475569;
                font-size: 10px;
                font-weight: 900;
                text-transform: uppercase;
                letter-spacing: .04em;
            }
            #dashboardView .dashboard-section-title {
                display: flex;
                align-items: center;
                justify-content: space-between;
                gap: 1rem;
                margin: 1.15rem 0 .75rem;
            }
            #dashboardView .dashboard-section-title h2 {
                font-size: .9rem;
                font-weight: 1000;
                color: #1e4b6e;
                text-transform: uppercase;
                letter-spacing: .08em;
            }
            #dashboardView .dashboard-soft-panel {
                border-radius: 24px;
                border: 1px solid rgba(148,163,184,.24);
                background: rgba(255,255,255,.84);
                backdrop-filter: blur(16px);
                box-shadow: 0 18px 46px rgba(15,23,42,.08);
            }
            @media (max-width: 1180px) {
                #dashboardView .dashboard-stat-grid,
                #dashboardView .dashboard-menu-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
            }
            @media (max-width: 720px) {
                #dashboardView { padding-left: .85rem !important; padding-right: .85rem !important; }
                #dashboardView .dashboard-hero { border-radius: 20px; }
                #dashboardView .dashboard-stat-grid,
                #dashboardView .dashboard-menu-grid { grid-template-columns: 1fr; }
                #dashboardView .dashboard-menu-card { min-height: 124px; }
            }
        }


/* =========================================================
   grouped-input-bukukas-menu-v3832
   Dipindahkan dari index.html agar CSS bisa dicache browser.
   ========================================================= */
/* =========================================================
           v3.8.38 - Menu dikelompokkan
           - Input Data menggabungkan Form SPP, Pagu, Penerimaan, Penarikan, Pembiayaan, Surat Rekomendasi.
           - Buku Kas menjadi tombol induk berisi BKU, BKT, BKSD, BKP, dan BKK.
           - Dashboard utama dibuat lebih ringkas dengan grup menu modern.
        ========================================================= */
        @media screen {
            #topbarMenu {
                overflow-x: visible !important;
                flex-wrap: wrap;
                row-gap: .55rem !important;
            }
            #topbarMenu .topbar-dropdown {
                position: relative;
                flex: 0 0 auto;
            }
            #topbarMenu .topbar-dropdown > summary {
                list-style: none;
                cursor: pointer;
                user-select: none;
                display: inline-flex;
                align-items: center;
                gap: .45rem;
                padding: .62rem 1rem;
                border-radius: 999px;
                border: 1px solid rgba(148,163,184,.32);
                background: rgba(255,255,255,.94);
                color: #334155;
                font-size: .86rem;
                font-weight: 900;
                white-space: nowrap;
                box-shadow: 0 10px 24px rgba(15,23,42,.07);
                transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
            }
            #topbarMenu .topbar-dropdown > summary::-webkit-details-marker { display: none; }
            #topbarMenu .topbar-dropdown > summary::after {
                content: "▾";
                font-size: .72rem;
                opacity: .75;
            }
            #topbarMenu .topbar-dropdown[open] > summary,
            #topbarMenu .topbar-dropdown > summary:hover {
                transform: translateY(-1px);
                border-color: rgba(30,75,110,.36);
                box-shadow: 0 16px 34px rgba(15,23,42,.12);
            }
            #topbarMenu .topbar-dropdown-menu {
                position: absolute;
                top: calc(100% + .45rem);
                left: 0;
                width: min(92vw, 330px);
                padding: .55rem;
                border-radius: 18px;
                border: 1px solid rgba(148,163,184,.30);
                background: rgba(255,255,255,.98);
                box-shadow: 0 24px 70px rgba(15,23,42,.18);
                z-index: 70;
                display: grid;
                gap: .38rem;
                backdrop-filter: blur(18px) saturate(1.12);
            }
            #topbarMenu .topbar-dropdown-menu button {
                width: 100%;
                justify-content: flex-start;
                text-align: left;
                border-radius: 14px !important;
                padding: .72rem .85rem !important;
                font-size: .82rem !important;
                line-height: 1.18;
                box-shadow: none !important;
            }
            #topbarMenu .topbar-dropdown-menu button:hover {
                transform: translateX(2px);
                background: #f8fafc !important;
            }
            #topbarMenu .topbar-dropdown-hint {
                padding: .15rem .35rem .45rem;
                color: #64748b;
                font-size: 10px;
                font-weight: 800;
                text-transform: uppercase;
                letter-spacing: .05em;
            }

            nav.no-print .sidebar-menu-group {
                width: 100%;
            }
            nav.no-print .sidebar-menu-group > summary {
                list-style: none;
                cursor: pointer;
                padding: .65rem 1rem;
                border-radius: 15px;
                color: #dbeafe;
                font-size: .875rem;
                font-weight: 900;
                border-left: 4px solid transparent;
                background: rgba(255,255,255,.06);
                display: flex;
                justify-content: space-between;
                align-items: center;
                gap: .5rem;
            }
            nav.no-print .sidebar-menu-group > summary::-webkit-details-marker { display: none; }
            nav.no-print .sidebar-menu-group > summary::after {
                content: "▾";
                font-size: .72rem;
                opacity: .75;
            }
            nav.no-print .sidebar-menu-group[open] > summary {
                background: rgba(255,255,255,.12);
                border-left-color: rgba(96,165,250,.85);
            }
            nav.no-print .sidebar-submenu {
                display: grid;
                gap: .15rem;
                margin: .28rem 0 .5rem .45rem;
                padding-left: .45rem;
                border-left: 1px solid rgba(255,255,255,.14);
            }
            nav.no-print .sidebar-submenu button {
                font-size: .82rem !important;
                padding-top: .52rem !important;
                padding-bottom: .52rem !important;
            }

            #dashboardView .dashboard-group-grid {
                display: grid;
                grid-template-columns: repeat(3, minmax(0, 1fr));
                gap: 1rem;
            }
            #dashboardView .dashboard-group-card {
                position: relative;
                overflow: hidden;
                border-radius: 24px;
                border: 1px solid rgba(148,163,184,.24);
                background: rgba(255,255,255,.93);
                box-shadow: 0 20px 52px rgba(15,23,42,.09);
                padding: 1rem;
                min-height: 255px;
            }
            #dashboardView .dashboard-group-card::after {
                content: "";
                position: absolute;
                right: -4rem;
                top: -4rem;
                width: 11rem;
                height: 11rem;
                border-radius: 999px;
                background: rgba(30,75,110,.07);
                pointer-events: none;
            }
            #dashboardView .dashboard-group-head {
                display: flex;
                gap: .8rem;
                align-items: flex-start;
                margin-bottom: .85rem;
                position: relative;
                z-index: 1;
            }
            #dashboardView .dashboard-group-title {
                font-size: 1rem;
                font-weight: 1000;
                color: #0f172a;
                line-height: 1.15;
            }
            #dashboardView .dashboard-group-desc {
                color: #64748b;
                font-size: .76rem;
                line-height: 1.35;
                margin-top: .22rem;
            }
            #dashboardView .dashboard-mini-actions {
                display: grid;
                gap: .45rem;
                position: relative;
                z-index: 1;
            }
            #dashboardView .dashboard-mini-link {
                width: 100%;
                text-align: left;
                border-radius: 15px;
                padding: .72rem .8rem;
                border: 1px solid rgba(148,163,184,.24);
                background: #f8fafc;
                color: #334155;
                font-size: .82rem;
                font-weight: 900;
                transition: transform .16s ease, background .16s ease, border-color .16s ease;
            }
            #dashboardView .dashboard-mini-link:hover {
                transform: translateX(3px);
                background: #eff6ff;
                border-color: rgba(37,99,235,.25);
            }
            #dashboardView .dashboard-feature-card {
                grid-column: span 3;
                display: grid;
                grid-template-columns: repeat(4, minmax(0, 1fr));
                gap: .75rem;
                border-radius: 24px;
                border: 1px solid rgba(148,163,184,.24);
                background: rgba(255,255,255,.84);
                backdrop-filter: blur(16px);
                box-shadow: 0 18px 46px rgba(15,23,42,.08);
                padding: 1rem;
            }
            #dashboardView .dashboard-feature-card .dashboard-menu-card {
                min-height: 128px;
                box-shadow: 0 12px 30px rgba(15,23,42,.055);
            }
            @media (max-width: 1180px) {
                #dashboardView .dashboard-group-grid { grid-template-columns: 1fr; }
                #dashboardView .dashboard-feature-card {
                    grid-column: span 1;
                    grid-template-columns: repeat(2, minmax(0, 1fr));
                }
            }
            @media (max-width: 720px) {
                #topbarMenu {
                    overflow-x: auto !important;
                    flex-wrap: nowrap;
                }
                #topbarMenu .topbar-dropdown {
                    position: static;
                }
                #topbarMenu .topbar-dropdown-menu {
                    position: fixed;
                    left: .75rem;
                    right: .75rem;
                    top: 4.25rem;
                    width: auto;
                    max-height: 72vh;
                    overflow-y: auto;
                }
                #dashboardView .dashboard-feature-card { grid-template-columns: 1fr; }
            }
        }


/* =========================================================
   dashboard-stat-overflow-fix-v3833
   Dipindahkan dari index.html agar CSS bisa dicache browser.
   ========================================================= */
/* =========================================================
           v3.8.34 - FIX DASHBOARD STAT CARD
           Angka panjang seperti saldo/pajak tidak keluar dari kartu.
           Kartu statistik dibuat melebar ke samping dengan horizontal scroll.
        ========================================================= */
        @media screen {
            #dashboardView .dashboard-hero {
                overflow: hidden !important;
            }
            #dashboardView .dashboard-stat-grid {
                width: 100% !important;
                max-width: 100% !important;
                min-width: 0 !important;
                display: grid !important;
                grid-template-columns: none !important;
                grid-auto-flow: column !important;
                grid-auto-columns: minmax(205px, max-content) !important;
                gap: .85rem !important;
                overflow-x: auto !important;
                overflow-y: hidden !important;
                padding: .25rem .25rem .75rem !important;
                margin: 0 -.25rem !important;
                scroll-snap-type: x proximity;
                -webkit-overflow-scrolling: touch;
            }
            #dashboardView .dashboard-stat-grid::-webkit-scrollbar {
                height: 8px;
            }
            #dashboardView .dashboard-stat-grid::-webkit-scrollbar-track {
                background: rgba(255,255,255,.12);
                border-radius: 999px;
            }
            #dashboardView .dashboard-stat-grid::-webkit-scrollbar-thumb {
                background: rgba(255,255,255,.34);
                border-radius: 999px;
            }
            #dashboardView .dashboard-stat-card {
                min-width: 205px !important;
                width: max-content !important;
                max-width: none !important;
                box-sizing: border-box !important;
                overflow: visible !important;
                scroll-snap-align: start;
            }
            #dashboardView .dashboard-stat-label,
            #dashboardView .dashboard-stat-card .text-\[11px\] {
                white-space: normal !important;
            }
            #dashboardView .dashboard-stat-value {
                display: block !important;
                width: max-content !important;
                max-width: none !important;
                white-space: nowrap !important;
                word-break: keep-all !important;
                overflow-wrap: normal !important;
                overflow: visible !important;
                text-overflow: clip !important;
                font-size: clamp(1.18rem, 1.55vw, 1.45rem) !important;
                line-height: 1.05 !important;
            }
            #dashboardView #dash_total_saldo,
            #dashboardView #dash_total_pajak {
                font-size: clamp(1.05rem, 1.35vw, 1.28rem) !important;
            }
            @media (max-width: 1180px) {
                #dashboardView .dashboard-stat-grid {
                    grid-auto-columns: minmax(195px, max-content) !important;
                }
                #dashboardView .dashboard-stat-card {
                    min-width: 195px !important;
                }
            }
            @media (max-width: 720px) {
                #dashboardView .dashboard-stat-grid {
                    grid-auto-columns: minmax(180px, max-content) !important;
                }
                #dashboardView .dashboard-stat-card {
                    min-width: 180px !important;
                }
            }
        }


/* =========================================================
   dashboard-compact-no-scroll-zoom75-v3834
   Dipindahkan dari index.html agar CSS bisa dicache browser.
   ========================================================= */
/* =========================================================
           v3.8.34 - Dashboard compact + default tampilan 75%
           - Kartu statistik diperkecil agar tidak perlu geser horizontal.
           - Angka panjang dibungkus aman di dalam kartu.
           - Tampilan aplikasi dibuat setara zoom 75% memakai root font-size,
             sehingga layout tetap memenuhi layar dan menu lebih banyak terlihat.
        ========================================================= */
        @media screen {
            html {
                font-size: 75% !important;
            }

            body {
                --app-default-zoom: 75%;
            }

            #topbarMenu {
                padding-top: .55rem !important;
                padding-bottom: .55rem !important;
                gap: .45rem !important;
            }
            #topbarMenu button,
            #topbarMenu .topbar-dropdown > summary {
                padding: .55rem .82rem !important;
                font-size: .78rem !important;
            }

            nav.no-print > div:first-child {
                min-height: 68px !important;
            }
            nav.no-print button,
            nav.no-print .sidebar-menu-group > summary {
                font-size: .80rem !important;
                padding-top: .56rem !important;
                padding-bottom: .56rem !important;
            }

            #dashboardView .dashboard-hero {
                padding: 1.15rem !important;
                overflow: hidden !important;
            }
            #dashboardView .dashboard-hero .relative.z-10 {
                gap: 1rem !important;
                align-items: center !important;
            }
            #dashboardView .dashboard-pill {
                font-size: 8px !important;
                padding: .32rem .58rem !important;
            }
            #dashboardView .dashboard-hero h1 {
                font-size: clamp(1.35rem, 2.2vw, 2.25rem) !important;
                margin-top: .85rem !important;
                line-height: 1.05 !important;
            }
            #dashboardView .dashboard-hero p {
                font-size: .86rem !important;
                line-height: 1.35 !important;
            }
            #dashboardView .dashboard-hero .mt-4 {
                margin-top: .75rem !important;
            }

            #dashboardView .dashboard-stat-grid {
                display: grid !important;
                grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
                grid-auto-flow: row !important;
                grid-auto-columns: auto !important;
                gap: .45rem !important;
                width: 52% !important;
                max-width: 52% !important;
                min-width: 0 !important;
                overflow: visible !important;
                padding: 0 !important;
                margin: 0 !important;
                scroll-snap-type: none !important;
            }
            #dashboardView .dashboard-stat-grid::-webkit-scrollbar {
                display: none !important;
            }
            #dashboardView .dashboard-stat-card {
                min-width: 0 !important;
                width: auto !important;
                max-width: 100% !important;
                min-height: 72px !important;
                padding: .58rem .55rem !important;
                border-radius: 14px !important;
                overflow: hidden !important;
                box-sizing: border-box !important;
            }
            #dashboardView .dashboard-stat-label,
            #dashboardView .dashboard-stat-card .text-\[11px\] {
                display: block !important;
                width: 100% !important;
                max-width: 100% !important;
                white-space: normal !important;
                overflow-wrap: anywhere !important;
                word-break: normal !important;
            }
            #dashboardView .dashboard-stat-label {
                font-size: 7.5px !important;
                line-height: 1.12 !important;
                letter-spacing: .045em !important;
            }
            #dashboardView .dashboard-stat-card .text-\[11px\] {
                font-size: 8.5px !important;
                line-height: 1.15 !important;
                margin-top: .28rem !important;
            }
            #dashboardView .dashboard-stat-value,
            #dashboardView #dash_total_saldo,
            #dashboardView #dash_total_pajak {
                display: block !important;
                width: 100% !important;
                max-width: 100% !important;
                margin-top: .25rem !important;
                white-space: normal !important;
                overflow-wrap: anywhere !important;
                word-break: break-word !important;
                overflow: visible !important;
                text-overflow: clip !important;
                font-size: clamp(.82rem, 1.08vw, 1rem) !important;
                line-height: 1.04 !important;
                letter-spacing: -.015em !important;
            }
            #dashboardView #dash_total_saldo,
            #dashboardView #dash_total_pajak {
                font-size: clamp(.72rem, .92vw, .9rem) !important;
                line-height: 1.02 !important;
            }

            #dashboardView .dashboard-soft-panel {
                padding: 1rem !important;
            }
            #dashboardView .dashboard-group-card {
                min-height: 220px !important;
                padding: .85rem !important;
            }
            #dashboardView .dashboard-mini-link {
                padding: .58rem .7rem !important;
                font-size: .78rem !important;
                border-radius: 12px !important;
            }
        }

        @media screen and (max-width: 1280px) {
            #dashboardView .dashboard-hero .relative.z-10 {
                align-items: stretch !important;
            }
            #dashboardView .dashboard-stat-grid {
                width: 100% !important;
                max-width: 100% !important;
                grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
            }
        }

        @media screen and (max-width: 900px) {
            html {
                font-size: 82% !important;
            }
            #dashboardView .dashboard-stat-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
            }
            #dashboardView .dashboard-stat-card {
                min-height: 76px !important;
            }
        }

        @media screen and (max-width: 520px) {
            html {
                font-size: 88% !important;
            }
            #dashboardView .dashboard-stat-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
                gap: .5rem !important;
            }
            #dashboardView .dashboard-stat-value,
            #dashboardView #dash_total_saldo,
            #dashboardView #dash_total_pajak {
                font-size: .86rem !important;
            }
        }


/* =========================================================
   buku-kas-footer-ttd-besar-v3835
   Dipindahkan dari index.html agar CSS bisa dicache browser.
   ========================================================= */
/* v3.8.35 - Update Frontend Buku Kas
           - Ruang tanda tangan diperbesar.
           - Footer/keterangan buku kas memakai Times New Roman 12pt.
        */
        @media screen {
            #bkuPrintFooter,
            #bktPrintFooter,
            #bksdPrintFooter,
            #bkkPrintFooter,
            #bkpPrintFooter,
            .bk-print-footer,
            .bk-foot-wrap,
            .bk-foot-wrap * {
                font-family: "Times New Roman", Times, serif !important;
                font-size: 12pt !important;
                line-height: 1.25 !important;
            }

            .bk-foot-signatures {
                margin-top: 0.85cm !important;
                gap: 0.55cm !important;
            }

            .bk-sign-space {
                height: 1.75cm !important;
                min-height: 1.75cm !important;
            }
        }

        @media print {
            body.print-buku-kas #bkuPrintFooter,
            body.print-buku-kas #bktPrintFooter,
            body.print-buku-kas #bksdPrintFooter,
            body.print-buku-kas #bkkPrintFooter,
            body.print-buku-kas #bkpPrintFooter,
            body.print-buku-kas .bk-print-footer,
            body.print-buku-kas .bk-foot-wrap,
            body.print-buku-kas .bk-foot-wrap *,
            body.print-buku-kas .bk-foot-keterangan,
            body.print-buku-kas .bk-foot-keterangan *,
            body.print-buku-kas .bk-foot-signatures,
            body.print-buku-kas .bk-foot-signatures * {
                font-family: "Times New Roman", Times, serif !important;
                font-size: 12pt !important;
                line-height: 1.25 !important;
            }

            body.print-buku-kas .bk-print-footer {
                margin-top: 0.28cm !important;
                padding-top: 0.12cm !important;
                text-align: left !important;
            }

            body.print-buku-kas .bk-foot-wrap {
                page-break-inside: avoid !important;
                break-inside: avoid !important;
                width: 100% !important;
            }

            body.print-buku-kas .bk-foot-keterangan {
                width: 100% !important;
                max-width: 100% !important;
                margin: 0 !important;
                padding: 0 !important;
            }

            body.print-buku-kas .bk-foot-title,
            body.print-buku-kas .bk-foot-subtitle {
                font-weight: 700 !important;
                margin-bottom: 0.06cm !important;
            }

            body.print-buku-kas .bk-foot-table {
                width: auto !important;
                min-width: 14.8cm !important;
                table-layout: auto !important;
                border-collapse: collapse !important;
                margin: 0 0 0.08cm 0.35cm !important;
                border: 0 !important;
            }

            body.print-buku-kas .bk-foot-table td {
                border: 0 !important;
                padding: 0.01cm 0.03cm !important;
                vertical-align: top !important;
            }

            body.print-buku-kas .bk-foot-label {
                width: 9.8cm !important;
                white-space: normal !important;
            }

            body.print-buku-kas .bk-foot-rp {
                width: 0.75cm !important;
                white-space: nowrap !important;
            }

            body.print-buku-kas .bk-foot-value {
                min-width: 3.6cm !important;
                text-align: right !important;
                font-weight: 700 !important;
                white-space: nowrap !important;
            }

            body.print-buku-kas .bk-foot-signatures {
                margin-top: 0.95cm !important;
                display: flex !important;
                justify-content: space-between !important;
                align-items: flex-start !important;
                gap: 0.6cm !important;
                width: 100% !important;
                text-align: center !important;
                page-break-inside: avoid !important;
                break-inside: avoid !important;
            }

            body.print-buku-kas .bk-foot-sign {
                width: 32% !important;
                text-align: center !important;
            }

            body.print-buku-kas .bk-foot-sign p {
                margin: 0 !important;
                text-align: center !important;
            }

            body.print-buku-kas .bk-sign-space {
                height: 1.85cm !important;
                min-height: 1.85cm !important;
            }

            body.print-buku-kas .bk-sign-name {
                font-weight: 700 !important;
                margin: 0 !important;
                text-decoration: underline !important;
            }
        }


/* =========================================================
   surat-rekomendasi-page-v3836
   Dipindahkan dari index.html agar CSS bisa dicache browser.
   ========================================================= */
@media screen {
            #rekomendasiView .rekom-card {
                border-radius: 22px;
                border: 1px solid rgba(148,163,184,.28);
                box-shadow: 0 18px 46px rgba(15,23,42,.08);
                background: rgba(255,255,255,.94);
            }
            #rekomendasiView .rekom-table-wrap {
                max-height: 420px;
                overflow: auto;
                border-radius: 16px;
                border: 1px solid #e2e8f0;
            }
            #rekomendasiView .rekom-table th {
                position: sticky;
                top: 0;
                z-index: 2;
                background: #ecfdf5;
                color: #065f46;
            }
            #rekomendasiView .rekom-preview-paper {
                background: #fff;
                color: #111827;
                border: 1px solid #cbd5e1;
                box-shadow: 0 18px 44px rgba(15,23,42,.10);
                max-width: 1020px;
                margin: 0 auto;
                padding: 26px;
                font-family: "Times New Roman", Times, serif;
            }
            #rekomendasiView .rekom-preview-paper table {
                border-collapse: collapse;
                width: 100%;
            }
            #rekomendasiView .rekom-preview-paper td,
            #rekomendasiView .rekom-preview-paper th {
                border: 1px solid #111827;
                padding: 5px 6px;
                vertical-align: middle;
            }
            #rekomendasiView #rekomendasiPrintArea.rekom-preview-ready {
                display: block !important;
                align-items: initial !important;
                justify-content: initial !important;
                text-align: left !important;
                background: transparent !important;
                border: 0 !important;
                box-shadow: none !important;
                max-width: 100% !important;
                padding: 0 !important;
                min-height: 0 !important;
                overflow: visible !important;
            }
            #rekomendasiView #rekomendasiPrintArea.rekom-preview-ready .rekom-screen-page-label {
                max-width: 1123px;
                margin: 0 auto 8px auto;
                padding: 8px 14px;
                border-radius: 999px;
                background: #0f172a;
                color: #fff;
                font-family: Arial, sans-serif;
                font-size: 12px;
                font-weight: 800;
                letter-spacing: .04em;
                text-transform: uppercase;
                width: fit-content;
            }
            #rekomendasiView #rekomendasiPrintArea.rekom-preview-ready .rekom-print-letter,
            #rekomendasiView #rekomendasiPrintArea.rekom-preview-ready .rekom-print-lampiran {
                display: block !important;
                float: none !important;
                clear: both !important;
                box-sizing: border-box !important;
                background: #fff !important;
                color: #111827 !important;
                border: 1px solid #cbd5e1 !important;
                box-shadow: 0 18px 44px rgba(15,23,42,.10) !important;
                margin: 0 auto 28px auto !important;
                padding: 30px !important;
                font-family: "Times New Roman", Times, serif !important;
                overflow: visible !important;
            }
            #rekomendasiView #rekomendasiPrintArea.rekom-preview-ready .rekom-print-letter {
                max-width: 794px !important;
                min-height: 1123px !important;
                font-size: 12pt !important;
                line-height: 1.35 !important;
            }
            #rekomendasiView #rekomendasiPrintArea.rekom-preview-ready .rekom-print-lampiran {
                max-width: 1123px !important;
                min-height: 794px !important;
                font-size: 10.5pt !important;
                line-height: 1.15 !important;
                overflow-x: auto !important;
            }
            #rekomendasiView #rekomendasiPrintArea.rekom-preview-ready .rekom-print-lampiran table {
                min-width: 980px;
                table-layout: fixed;
            }
        }
        @media print {
            @page rekomendasiPortrait { size: A4 portrait; margin: 1.3cm; }
            @page rekomendasiLandscape { size: A4 landscape; margin: .7cm; }

            body.print-surat-rekomendasi * { visibility: hidden !important; }
            body.print-surat-rekomendasi #rekomendasiPrintArea,
            body.print-surat-rekomendasi #rekomendasiPrintArea * { visibility: visible !important; }

            body.print-surat-rekomendasi #rekomendasiPrintArea {
                position: absolute !important;
                left: 0 !important;
                top: 0 !important;
                width: 100% !important;
                max-width: none !important;
                min-height: 0 !important;
                display: block !important;
                align-items: initial !important;
                justify-content: initial !important;
                text-align: left !important;
                padding: 0 !important;
                margin: 0 !important;
                border: 0 !important;
                box-shadow: none !important;
                background: #fff !important;
                color: #000 !important;
                font-family: "Times New Roman", Times, serif !important;
                overflow: visible !important;
            }

            body.print-surat-rekomendasi .rekom-print-letter {
                page: rekomendasiPortrait !important;
                display: block !important;
                float: none !important;
                clear: both !important;
                box-sizing: border-box !important;
                break-after: page !important;
                page-break-after: always !important;
                padding: 0 !important;
                margin: 0 !important;
                width: 100% !important;
                min-height: auto !important;
                border: 0 !important;
                box-shadow: none !important;
                background: #fff !important;
                overflow: visible !important;
                font-family: "Times New Roman", Times, serif !important;
                font-size: 12pt !important;
                line-height: 1.35 !important;
            }

            body.print-surat-rekomendasi .rekom-print-lampiran {
                page: rekomendasiLandscape !important;
                display: block !important;
                float: none !important;
                clear: both !important;
                box-sizing: border-box !important;
                break-before: page !important;
                page-break-before: always !important;
                padding: 0 !important;
                margin: 0 !important;
                width: 100% !important;
                min-height: auto !important;
                border: 0 !important;
                box-shadow: none !important;
                background: #fff !important;
                overflow: visible !important;
                font-family: "Times New Roman", Times, serif !important;
                font-size: 10.5pt !important;
                line-height: 1.15 !important;
            }

            body.print-surat-rekomendasi .rekom-print-lampiran table {
                width: 100% !important;
                border-collapse: collapse !important;
                table-layout: fixed !important;
            }

            body.print-surat-rekomendasi .rekom-print-lampiran th,
            body.print-surat-rekomendasi .rekom-print-lampiran td {
                border: 1px solid #000 !important;
                padding: 4px 4px !important;
                vertical-align: middle !important;
                color: #000 !important;
            }

            body.print-surat-rekomendasi .rekom-print-lampiran th {
                text-align: center !important;
                font-weight: 700 !important;
            }

            body.print-surat-rekomendasi .no-print { display: none !important; }
            body.print-surat-rekomendasi .rekom-no-border,
            body.print-surat-rekomendasi .rekom-no-border td,
            body.print-surat-rekomendasi .rekom-no-border th {
                border: 0 !important;
            }
        }


/* =========================================================
   surat-rekomendasi-pdf-orientation-fix-v3840
   Dipindahkan dari index.html agar CSS bisa dicache browser.
   ========================================================= */
/*
           Fokus PDF Surat Rekomendasi:
           - Surat dapat dicetak A4 portrait.
           - Lampiran dapat dicetak A4 landscape.
           - Tombol PDF 2 Halaman tetap tersedia, tetapi tombol terpisah paling stabil untuk Save as PDF browser.
        */
        @media print {
            @page rekomSuratPortraitOnly { size: A4 portrait; margin: 1.3cm; }
            @page rekomLampiranLandscapeOnly { size: A4 landscape; margin: .7cm; }

            body.print-surat-rekomendasi-only * { visibility: hidden !important; }
            body.print-lampiran-rekomendasi-only * { visibility: hidden !important; }
            body.print-surat-rekomendasi-only #rekomendasiPrintArea,
            body.print-surat-rekomendasi-only #rekomendasiPrintArea *,
            body.print-lampiran-rekomendasi-only #rekomendasiPrintArea,
            body.print-lampiran-rekomendasi-only #rekomendasiPrintArea * { visibility: visible !important; }

            body.print-surat-rekomendasi-only #rekomendasiPrintArea,
            body.print-lampiran-rekomendasi-only #rekomendasiPrintArea {
                position: absolute !important;
                left: 0 !important;
                top: 0 !important;
                width: 100% !important;
                max-width: none !important;
                min-height: 0 !important;
                display: block !important;
                padding: 0 !important;
                margin: 0 !important;
                border: 0 !important;
                box-shadow: none !important;
                background: #fff !important;
                color: #000 !important;
                overflow: visible !important;
                font-family: "Times New Roman", Times, serif !important;
            }

            body.print-surat-rekomendasi-only .rekom-screen-page-label,
            body.print-lampiran-rekomendasi-only .rekom-screen-page-label {
                display: none !important;
                visibility: hidden !important;
            }

            body.print-surat-rekomendasi-only .rekom-print-lampiran,
            body.print-lampiran-rekomendasi-only .rekom-print-letter {
                display: none !important;
                visibility: hidden !important;
            }

            body.print-surat-rekomendasi-only .rekom-print-letter {
                page: rekomSuratPortraitOnly !important;
                display: block !important;
                width: 100% !important;
                max-width: none !important;
                min-height: auto !important;
                padding: 0 !important;
                margin: 0 !important;
                border: 0 !important;
                box-shadow: none !important;
                background: #fff !important;
                color: #000 !important;
                font-family: "Times New Roman", Times, serif !important;
                font-size: 12pt !important;
                line-height: 1.35 !important;
                overflow: visible !important;
                break-after: auto !important;
                page-break-after: auto !important;
            }

            body.print-lampiran-rekomendasi-only .rekom-print-lampiran {
                page: rekomLampiranLandscapeOnly !important;
                display: block !important;
                width: 100% !important;
                max-width: none !important;
                min-height: auto !important;
                padding: 0 !important;
                margin: 0 !important;
                border: 0 !important;
                box-shadow: none !important;
                background: #fff !important;
                color: #000 !important;
                font-family: "Times New Roman", Times, serif !important;
                font-size: 10.5pt !important;
                line-height: 1.15 !important;
                overflow: visible !important;
                break-before: auto !important;
                page-break-before: auto !important;
            }

            body.print-lampiran-rekomendasi-only .rekom-print-lampiran table {
                width: 100% !important;
                table-layout: fixed !important;
                border-collapse: collapse !important;
            }

            body.print-lampiran-rekomendasi-only .rekom-print-lampiran th,
            body.print-lampiran-rekomendasi-only .rekom-print-lampiran td {
                border: 1px solid #000 !important;
                padding: 4px !important;
                color: #000 !important;
                vertical-align: middle !important;
            }
        }


/* =========================================================
   surat-rekomendasi-print-scale80-v3841
   Dipindahkan dari index.html agar CSS bisa dicache browser.
   ========================================================= */
/*
           Default cetak lampiran rekomendasi dibuat setara Scale 80%.
           Catatan: browser tidak mengizinkan aplikasi mengubah dropdown Scale pada print dialog secara langsung,
           jadi pengecilan dilakukan dari CSS print agar hasil PDF otomatis lebih rapi.
        */
        @media print {
            body.print-surat-rekomendasi .rekom-print-lampiran,
            body.print-lampiran-rekomendasi-only .rekom-print-lampiran {
                zoom: 0.8 !important;
                transform-origin: top left !important;
            }

            body.print-surat-rekomendasi .rekom-print-lampiran table,
            body.print-lampiran-rekomendasi-only .rekom-print-lampiran table {
                width: 100% !important;
                max-width: 100% !important;
            }
        }


/* =========================================================
   data-umum-backend-and-hidden-fallback-v3900
   Dipindahkan dari index.html agar CSS bisa dicache browser.
   ========================================================= */
.hidden { display: none !important; }
        #mainAppContainer.hidden, #confirmModal.hidden { display: none !important; }
        #toast.opacity-0 { opacity: 0 !important; }
        #toast.translate-y-32 { transform: translateY(8rem) !important; }
        .data-umum-grid { display: grid; grid-template-columns: repeat(1, minmax(0, 1fr)); gap: 0.75rem; }
        @media (min-width: 768px) { .data-umum-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
        @media (min-width: 1024px) { .data-umum-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
        .data-umum-card { background: #fff; border: 1px solid #e2e8f0; border-radius: 1rem; padding: 1rem; box-shadow: 0 8px 22px rgba(15,23,42,.04); }
        .data-umum-title { font-size: .75rem; font-weight: 900; text-transform: uppercase; color: #334155; border-bottom: 1px solid #e2e8f0; padding-bottom: .5rem; margin-bottom: .75rem; }


/* =========================================================
   spp-wizard-css
   Dipindahkan dari index.html agar CSS bisa dicache browser.
   ========================================================= */
/* SPP Wizard / Form bertahap - tidak mengubah ID input dan fungsi lama */
  .spp-step-section{display:none;}
  .spp-step-section.spp-step-active{display:block;animation:sppFadeIn .18s ease-out;}
  @keyframes sppFadeIn{from{opacity:.35;transform:translateY(6px)}to{opacity:1;transform:none}}
  .spp-wizard-step-btn{border:1px solid #cbd5e1;background:#fff;color:#475569;border-radius:14px;padding:10px 12px;font-size:11px;font-weight:800;display:flex;align-items:center;gap:8px;text-align:left;transition:.15s;min-height:48px;}
  .spp-wizard-step-btn:hover{border-color:#1e4b6e;color:#1e4b6e;background:#f8fafc;}
  .spp-wizard-step-btn.spp-active{background:#1e4b6e;color:#fff;border-color:#1e4b6e;box-shadow:0 8px 18px rgba(30,75,110,.22);}
  .spp-wizard-step-btn.spp-done{background:#ecfdf5;color:#065f46;border-color:#a7f3d0;}
  .spp-wizard-num{width:24px;height:24px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#e2e8f0;color:#334155;font-weight:900;flex:0 0 auto;}
  .spp-wizard-step-btn.spp-active .spp-wizard-num{background:#fff;color:#1e4b6e;}
  .spp-wizard-step-btn.spp-done .spp-wizard-num{background:#10b981;color:#fff;}
  .spp-wizard-nav{position:sticky;bottom:0;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);z-index:9;margin-top:18px;padding-top:14px;}
  .spp-wizard-note{font-size:11px;color:#64748b;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:12px;padding:10px 12px;}


/* =========================================================
   silades-loading-percent-logout-style
   Dipindahkan dari index.html agar CSS bisa dicache browser.
   ========================================================= */
/* Loading dibuat kecil di topbar, tidak lagi popup besar yang menutup layar */
  #siladesDataLoadingBox{position:static!important;left:auto!important;bottom:auto!important;transform:none!important;z-index:auto!important;background:#ffffff;border:1px solid #dbe7f3;border-radius:999px;box-shadow:0 4px 12px rgba(15,23,42,.08);padding:5px 8px;width:190px;max-width:190px;font-family:Inter,Arial,sans-serif;flex:0 0 auto;align-self:center;}
  #siladesDataLoadingBox.silades-hidden{display:none!important;}
  #siladesDataLoadingTop{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:4px;}
  #siladesDataLoadingText{font-size:10px;font-weight:900;color:#0f2942;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:118px;}
  #siladesDataLoadingPercent{font-size:10px;font-weight:1000;color:#047857;background:#dcfce7;border:1px solid #bbf7d0;border-radius:999px;padding:2px 6px;min-width:38px;text-align:center;line-height:1.2;}
  #siladesDataLoadingTrack{height:5px;background:#e5edf5;border-radius:999px;overflow:hidden;}
  #siladesDataLoadingBar{height:100%;width:0%;background:linear-gradient(90deg,#10b981,#22c55e,#0ea5e9);border-radius:999px;transition:width .28s ease;}
  #siladesDataLoadingHint{display:none!important;}
  #btnTopFullscreenSilades{margin-left:auto!important;background:#ecfeff!important;color:#0e7490!important;border:1px solid #a5f3fc!important;font-weight:900!important;}
  #btnTopFullscreenSilades:hover{background:#0891b2!important;color:#fff!important;border-color:#0891b2!important;}
  body.app-fullscreen-active #btnTopFullscreenSilades,
  body.app-fullscreen-forced #btnTopFullscreenSilades{background:#fef3c7!important;color:#92400e!important;border-color:#fcd34d!important;}
  body.app-fullscreen-active #btnTopFullscreenSilades:hover,
  body.app-fullscreen-forced #btnTopFullscreenSilades:hover{background:#f59e0b!important;color:#fff!important;border-color:#f59e0b!important;}
  #btnTopLogoutSilades{background:#fee2e2!important;color:#b91c1c!important;border:1px solid #fecaca!important;font-weight:900!important;}
  #btnTopLogoutSilades:hover{background:#dc2626!important;color:#fff!important;border-color:#dc2626!important;}
  @media (max-width: 768px){#siladesDataLoadingBox{width:145px;max-width:145px;}#siladesDataLoadingText{max-width:78px;}#btnTopFullscreenSilades{margin-left:auto!important;}}
  @media print{#siladesDataLoadingBox,#btnTopLogoutSilades,#btnTopFullscreenSilades{display:none!important;}}


/* =========================================================
   verifikasi-spj-print-v3837
   Dipindahkan dari index.html agar CSS bisa dicache browser.
   ========================================================= */
#verifikasiSpjPrintArea { display: none; }
        @media print {
            @page verifikasiSpjPage { size: A4 landscape; margin: .65cm; }
            body.print-verifikasi-spj * { visibility: hidden !important; }
            body.print-verifikasi-spj #verifikasiSpjPrintArea,
            body.print-verifikasi-spj #verifikasiSpjPrintArea * { visibility: visible !important; }
            body.print-verifikasi-spj #verifikasiSpjPrintArea {
                display: block !important;
                position: absolute !important;
                left: 0 !important;
                top: 0 !important;
                width: 100% !important;
                margin: 0 !important;
                padding: 0 !important;
                background: #fff !important;
                color: #000 !important;
                page: verifikasiSpjPage !important;
                font-family: "Times New Roman", Times, serif !important;
            }
            body.print-verifikasi-spj .verif-print-page {
                width: 100% !important;
                margin: 0 !important;
                padding: 0 !important;
                background: #fff !important;
                color: #000 !important;
                font-size: 9.2pt !important;
                line-height: 1.22 !important;
            }
            body.print-verifikasi-spj .verif-print-title {
                text-align: center !important;
                font-weight: 700 !important;
                font-size: 13pt !important;
                margin: 0 0 .18cm 0 !important;
                text-transform: uppercase !important;
            }
            body.print-verifikasi-spj .verif-print-subtitle {
                text-align: center !important;
                font-size: 9pt !important;
                margin: 0 0 .35cm 0 !important;
            }
            body.print-verifikasi-spj .verif-print-meta {
                display: flex !important;
                justify-content: space-between !important;
                gap: .35cm !important;
                font-size: 8.7pt !important;
                margin-bottom: .25cm !important;
            }
            body.print-verifikasi-spj .verif-print-table {
                width: 100% !important;
                border-collapse: collapse !important;
                table-layout: fixed !important;
                font-size: 7.8pt !important;
            }
            body.print-verifikasi-spj .verif-print-table th,
            body.print-verifikasi-spj .verif-print-table td {
                border: 1px solid #000 !important;
                padding: 3px 4px !important;
                vertical-align: top !important;
                color: #000 !important;
                background: #fff !important;
                word-break: break-word !important;
                overflow-wrap: anywhere !important;
            }
            body.print-verifikasi-spj .verif-print-table th {
                text-align: center !important;
                font-weight: 700 !important;
                background: #f1f5f9 !important;
                -webkit-print-color-adjust: exact !important;
                print-color-adjust: exact !important;
            }
            body.print-verifikasi-spj .verif-kwitansi-block {
                padding: 3px 4px !important;
                margin-bottom: 3px !important;
                border: 1px solid #cbd5e1 !important;
                border-radius: 3px !important;
                -webkit-print-color-adjust: exact !important;
                print-color-adjust: exact !important;
            }
            body.print-verifikasi-spj .verif-kwitansi-zebra {
                background: #f1f5f9 !important;
                -webkit-print-color-adjust: exact !important;
                print-color-adjust: exact !important;
            }
            body.print-verifikasi-spj .verif-kwitansi-white {
                background: #fff !important;
                -webkit-print-color-adjust: exact !important;
                print-color-adjust: exact !important;
            }
            body.print-verifikasi-spj .verif-print-table th:nth-child(1),
            body.print-verifikasi-spj .verif-print-table td:nth-child(1) { width: 7% !important; text-align:center !important; }
            body.print-verifikasi-spj .verif-print-table th:nth-child(2),
            body.print-verifikasi-spj .verif-print-table td:nth-child(2) { width: 43% !important; }
            body.print-verifikasi-spj .verif-print-table th:nth-child(3),
            body.print-verifikasi-spj .verif-print-table td:nth-child(3) { width: 18% !important; }
            body.print-verifikasi-spj .verif-print-table th:nth-child(4),
            body.print-verifikasi-spj .verif-print-table td:nth-child(4) { width: 12% !important; text-align:right !important; }
            body.print-verifikasi-spj .verif-print-table th:nth-child(5),
            body.print-verifikasi-spj .verif-print-table td:nth-child(5) { width: 20% !important; }
            body.print-verifikasi-spj .verif-pajak-highlight,
            body.print-verifikasi-spj .verif-print-tax {
                display: block !important;
                margin-top: 3px !important;
                padding: 2px 3px !important;
                color: #065f46 !important;
                font-weight: 700 !important;
                background: #dcfce7 !important;
                border: 1px solid #86efac !important;
                border-radius: 3px !important;
                -webkit-print-color-adjust: exact !important;
                print-color-adjust: exact !important;
            }
            body.print-verifikasi-spj .verif-print-sign {
                margin-top: .65cm !important;
                display: flex !important;
                justify-content: space-between !important;
                gap: .8cm !important;
                text-align: center !important;
                page-break-inside: avoid !important;
                break-inside: avoid !important;
            }
            body.print-verifikasi-spj .verif-print-sign > div { width: 32% !important; }
            body.print-verifikasi-spj .verif-print-sign-space { height: 1.45cm !important; }
            body.print-verifikasi-spj .verif-print-name { font-weight: 700 !important; text-decoration: underline !important; text-transform: uppercase !important; }
        }


/* =========================================================
   silades-compact-belanja-spp-style
   Dipindahkan dari index.html agar CSS bisa dicache browser.
   ========================================================= */
/* Form SPP: tampilan rincian belanja dibuat lebih kompak */
      #belanjaList .spp-belanja-compact {
        padding: .75rem !important;
        border-radius: 16px !important;
      }
      #belanjaList .spp-belanja-compact .form-input {
        min-height: 34px !important;
        padding: .35rem .55rem !important;
        border-radius: 11px !important;
        font-size: 11px !important;
      }
      #belanjaList .spp-belanja-compact select.form-input {
        padding-right: 1.75rem !important;
      }
      #belanjaList .spp-belanja-compact .uang-input {
        padding-left: 1.75rem !important;
      }
      #belanjaList .spp-belanja-compact .uang-prefix {
        left: .65rem !important;
        top: .55rem !important;
      }
      #belanjaList .spp-belanja-compact .kwitansi-wrap {
        margin-bottom: .45rem !important;
        padding-bottom: .45rem !important;
      }
      #belanjaList .spp-belanja-compact .pajak-panel {
        margin-top: .65rem !important;
        padding: .65rem !important;
      }
      #belanjaList .spp-belanja-compact label {
        margin-bottom: .25rem !important;
      }
