(function(){'use strict';var d=document,q=function(s,c){return Array.prototype.slice.call((c||d).querySelectorAll(s));}; window.cleanNumber=function(v){if(v===null||v===undefined)return'';var s=String(v).trim().replace(/\s|Rp/gi,'');if(!s)return'';var neg=s.charAt(0)==='-';s=s.replace(/-/g,'');var comma=s.lastIndexOf(','),dot=s.lastIndexOf('.');if(comma>=0&&dot>=0){if(comma>dot)s=s.replace(/\./g,'').replace(',','.');else s=s.replace(/,/g,'');}else if(comma>=0){var ca=s.split(',');s=(ca.length===2&&ca[1].length>0&&ca[1].length<=2)?ca[0].replace(/,/g,'')+'.'+ca[1]:s.replace(/,/g,'');}else if(dot>=0){var da=s.split('.');s=(da.length===2&&da[1].length>0&&da[1].length<=2)?s:s.replace(/\./g,'');}s=s.replace(/[^0-9.]/g,'');return(neg?'-':'')+s;}; window.parseMoney=function(v){var n=Number(window.cleanNumber(v));return Number.isFinite(n)?n:0;}; window.formatNumber=function(v){if(v===null||v===undefined)return'';var raw=String(v).trim().replace(/\s|Rp/gi,''),neg=raw.charAt(0)==='-';raw=raw.replace(/-/g,'').replace(/[^0-9.,]/g,'');if(raw==='')return'';var comma=raw.lastIndexOf(','),dot=raw.lastIndexOf('.'),integer=raw,decimal='',hasDecimal=false;if(comma>=0&&dot>=0){var sep=comma>dot?',':'.',at=Math.max(comma,dot);integer=raw.substring(0,at).replace(/[.,]/g,'');decimal=raw.substring(at+1).replace(/\D/g,'').substring(0,2);hasDecimal=true;}else if(comma>=0){var ctail=raw.length-comma-1;if(ctail<=2){integer=raw.substring(0,comma).replace(/\D/g,'');decimal=raw.substring(comma+1).replace(/\D/g,'').substring(0,2);hasDecimal=true;}else integer=raw.replace(/,/g,'');}else if(dot>=0){var dtail=raw.length-dot-1;if(raw.split('.').length===2&&dtail>0&&dtail<=2){integer=raw.substring(0,dot).replace(/\D/g,'');decimal=raw.substring(dot+1).replace(/\D/g,'').substring(0,2);hasDecimal=true;}else integer=raw.replace(/\./g,'');}integer=(integer||'0').replace(/^0+(?=\d)/,'').replace(/\B(?=(\d{3})+(?!\d))/g,'.');return(neg?'-':'')+integer+(hasDecimal?','+decimal:'');}; window.formatRupiah=function(v){return'Rp '+new Intl.NumberFormat('id-ID').format(Number(v)||0);}; window.formatTglIndo=function(v){if(!v)return'-';var x=String(v).split(' ')[0].split('-');if(x.length!==3)return v;var b=['Januari','Februari','Maret','April','Mei','Juni','Juli','Agustus','September','Oktober','November','Desember'];return Number(x[2])+' '+b[Number(x[1])-1]+' '+x[0];}; function filter(v){v=(v||'').toLowerCase();q('.app-menu-item').forEach(function(x){x.hidden=!!v&&x.dataset.menuLabel.indexOf(v)<0;if(v&&x.tagName==='DETAILS'&&!x.hidden)x.open=true;});var box=d.querySelector('.search-menu-results');if(!box)return;box.innerHTML='';q('.app-sidebar .app-menu-item:not([hidden]) a[href]').slice(0,16).forEach(function(a){var n=a.cloneNode(true);n.className='d-block p-2 border-bottom text-decoration-none';box.appendChild(n);});if(!box.children.length){var empty=d.createElement('div');empty.className='empty-state';empty.textContent='Menu tidak ditemukan';box.appendChild(empty);}} q('.menu-filter').forEach(function(x){x.addEventListener('input',function(){filter(x.value);});}); function moneyFields(scope){q('input[name],input.format-rupiah',scope||d).forEach(function(x){var n=String(x.name||x.id||'').replace(/\[[^\]]*\]/g,'').toLowerCase();var money=/^(amount|debit|kredit|nominal|jumlah|harga|price|unit_price|estimated_price|discount_amount|opening_balance|statement_balance|outstanding_receipts|outstanding_payments|charge|credit_limit|nilai|nilai_perolehan|nilai_residu|biaya|budget|basic_salary|salary|fixed_amount|installment_amount|principal|residual_value|proceeds)$/.test(n)||/(^|_)(amount|nominal|harga|salary|balance|cost|budget|price|proceeds)$/.test(n);if(!money)return;x.classList.add('format-rupiah');if(String(x.type).toLowerCase()==='number')x.type='text';x.setAttribute('inputmode','decimal');if(x.value)x.value=window.formatNumber(x.value);});} moneyFields(d);q('input[type=number],.format-rupiah').forEach(function(x){x.setAttribute('inputmode',x.step&&String(x.step).indexOf('.')>=0?'decimal':'numeric');}); q('img:not([loading])').forEach(function(x){x.loading='lazy';x.decoding='async';}); q('.table-responsive table').forEach(function(t){t.classList.add('table-hover','responsive-detail-table');var heads=q('thead th',t).map(function(h){return h.textContent.trim();});q('tbody tr',t).forEach(function(r){q('td',r).forEach(function(c,i){if(!c.dataset.label)c.dataset.label=heads[i]||'';});});}); q('form').forEach(function(f){f.addEventListener('submit',function(e){if(e.defaultPrevented||f.dataset.ajax==='true')return;if(f.dataset.submitting==='1'){e.preventDefault();return;}if(!navigator.onLine&&String(f.method).toLowerCase()==='post'){e.preventDefault();alert('Posting transaksi offline tidak diizinkan. Sambungkan internet lalu coba kembali.');return;}f.dataset.submitting='1';q('button[type=submit],input[type=submit]',f).forEach(function(b){b.disabled=true;b.setAttribute('aria-busy','true');});var l=d.getElementById('globalLoading');if(l)l.hidden=false;});}); q('input[type=file][accept*="image"]:not([multiple])').forEach(function(input){input.addEventListener('change',function(){var file=input.files&&input.files[0];if(!file||file.size<350000)return;var img=new Image(),url=URL.createObjectURL(file);img.onload=function(){var scale=Math.min(1,1600/Math.max(img.width,img.height)),canvas=d.createElement('canvas');canvas.width=Math.round(img.width*scale);canvas.height=Math.round(img.height*scale);canvas.getContext('2d').drawImage(img,0,0,canvas.width,canvas.height);canvas.toBlob(function(blob){if(blob&&blob.size