@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--primary:#22c55e;--primary-dark:#16a34a;--secondary:#fbbf24;--bg:#f8fafc;--card-bg:#fff;--text:#1e293b;--text-muted:#64748b;--border:#e2e8f0;--danger:#ef4444;--info:#3b82f6}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Inter,sans-serif;line-height:1.5}.container{max-width:1140px;margin:0 auto;padding:1rem}@media (width>=768px){.container{padding:2rem}}header{border-bottom:1px solid var(--border);flex-direction:column;gap:1.5rem;margin-bottom:1.5rem;padding:1rem 0;display:flex}@media (width>=992px){header{flex-direction:row;justify-content:space-between;align-items:center;margin-bottom:2rem;padding:1.5rem 0}}.logo-section{align-items:center;gap:.75rem;display:flex}.logo-section img{width:auto;height:48px}@media (width>=640px){.logo-section img{height:60px}}.logo-section h1{color:var(--primary-dark);font-size:1.1rem;font-weight:700;line-height:1.2}@media (width>=640px){.logo-section h1{font-size:1.25rem}}.header-actions{flex-wrap:wrap;gap:.5rem;display:flex}.dashboard-actions{box-shadow:none;background:0 0;border:0;border-radius:0;flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;margin-bottom:1.5rem;padding:0;display:flex}.qris-container{justify-content:center;margin-bottom:2rem;display:flex}.qris-container img{border-radius:12px;max-width:100%;height:auto;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.stats{grid-template-columns:1fr;gap:1rem;margin-bottom:2rem;display:grid}@media (width>=480px){.stats{grid-template-columns:repeat(2,1fr)}}@media (width>=768px){.stats{grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-bottom:2.5rem}}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:1.25rem;box-shadow:0 1px 3px #0000000d}.card h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem;font-size:.75rem}.card .value{color:var(--primary);font-size:1.75rem;font-weight:700}.form-section{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;margin-bottom:2rem;padding:1.25rem}@media (width>=768px){.form-section{padding:2rem}}.form-section h2{margin-bottom:1.25rem;font-size:1.125rem}.grid-form{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=640px){.grid-form{grid-template-columns:1fr 1fr}}.form-group{flex-direction:column;gap:.4rem;display:flex}.form-group label{font-size:.875rem;font-weight:500}.col-span-full{grid-column:1/-1}input,select,textarea{border:1px solid var(--border);background:#fff;border-radius:8px;width:100%;padding:.625rem;font-family:inherit;font-size:.95rem}input:focus,select:focus,textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #22c55e1a}button{cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;padding:.75rem 1.25rem;font-size:.875rem;font-weight:600;transition:all .2s;display:inline-flex}input[type=text],input[type=number],input[type=date],input[type=password],select,textarea{border:1px solid var(--border);box-sizing:border-box;background:#fff;border-radius:8px;width:100%;padding:.625rem;font-size:.875rem;transition:all .2s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-outline{border:1px solid var(--border);color:var(--text);background:0 0}.btn-outline:hover{background:var(--bg)}.table-section{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;overflow:hidden}.table-header{border-bottom:1px solid var(--border);flex-direction:column;gap:1rem;padding:1rem;display:flex}@media (width>=1024px){.table-header{flex-direction:column;justify-content:space-between;align-items:center}}.table-header>div{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.table-container{-webkit-overflow-scrolling:touch;width:100%;padding:10px;overflow-x:auto}table{border-collapse:collapse;width:100%}@media (width>=768px){table{min-width:600px}}th{text-align:left;text-transform:uppercase;color:var(--text-muted);letter-spacing:.05em;border-bottom:1px solid var(--border);background:#f8fafc;padding:1rem;font-size:.7rem;font-weight:600}td{border-bottom:1px solid var(--border);vertical-align:top;padding:1rem;font-size:.9rem}.badge{border-radius:6px;padding:.25rem .5rem;font-size:.7rem;font-weight:700;display:inline-block}.badge-masuk{color:#166534;background:#dcfce7}.badge-keluar{color:#854d0e;background:#fef9c3}.loading{text-align:center;color:var(--primary);padding:4rem 1rem;font-weight:600}.error{color:#991b1b;background:#fee2e2;border:1px solid #fecaca;border-radius:12px;margin-bottom:1.5rem;padding:1rem;font-size:.9rem}.print-only{display:none!important}@media print{.print-only{display:block!important}tr.print-only{display:table-row!important}td.print-only,th.print-only{display:table-cell!important}.print-title{text-align:center;text-transform:uppercase;border-bottom:1px solid #000;margin-bottom:2rem;padding-bottom:10px;font-size:18pt}.no-print,.table-header-controls{display:none!important}body{color:#000;background:#fff;font-size:10pt}.container{width:100%;max-width:100%;margin:0;padding:0}header{border-bottom:2px solid #333!important;margin-bottom:1.5rem!important;padding-bottom:.5rem!important;display:flex!important}.logo-section img{height:50px!important}.stats{flex-direction:row!important;gap:10px!important;margin-bottom:1rem!important;display:flex!important}.card{flex:1;color:#000!important;background:0 0!important;border:1px solid #ccc!important;border-radius:4px!important;padding:8px!important}.card h3{color:#000!important;font-size:8pt!important}.card .value{color:#000!important;font-size:12pt!important}table{border-collapse:collapse!important;border:1px solid #000!important;width:100%!important;display:table!important}thead{display:table-header-group!important}thead tr{display:table-row!important;position:static!important}tbody{display:table-row-group!important}tr{page-break-inside:avoid!important;display:table-row!important}th,td{text-align:left!important;vertical-align:middle!important;border:1px solid #000!important;padding:8px 6px!important;display:table-cell!important;position:static!important}th{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#f0f0f0!important;font-weight:700!important}td:before{content:none!important}.col-no{text-align:center!important;width:35px!important}.col-tanggal{width:85px!important}.col-nama{width:auto!important}.col-masuk,.col-keluar{text-align:right!important;width:100px!important}.col-saldo{text-align:right!important;width:110px!important}.row-saldo-awal{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#f5f5f5!important}.row-saldo-awal td{font-weight:700!important}.table-header{display:none!important}.table-section{border:none!important;border-radius:0!important;overflow:visible!important}.table-container{padding:0!important}.signature-section{page-break-inside:avoid;justify-content:space-between;margin-top:4rem;padding:0 3rem;display:flex!important}.signature-box{text-align:center;min-width:200px}.signature-space{height:80px}.signature-box p{margin:0}}.login-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.login-card{text-align:center;border:1px solid var(--border);background:#fff;border-radius:20px;width:100%;max-width:400px;padding:2.5rem;box-shadow:0 10px 25px #0000000d}.login-card img{height:80px;margin-bottom:1rem}.login-card h1{color:var(--text);margin-bottom:.25rem;font-size:1.5rem}.login-card h2{color:var(--primary);font-size:1rem;font-weight:600}.login-form{text-align:left}.error-text{color:var(--danger);margin-top:.5rem;margin-bottom:1rem;font-size:.8rem;font-weight:500}.login-form button{margin-top:20px}.table-header-controls{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.filter-group{align-items:center;gap:.5rem;display:flex}.input-with-label{flex-direction:column;align-items:flex-start;gap:.25rem;display:flex}.input-with-label span{color:var(--text-muted);white-space:nowrap;text-transform:uppercase;letter-spacing:.025em;font-size:.65rem;font-weight:700}.pagination-controls{border-top:1px solid var(--border);justify-content:center;align-items:center;margin-top:1rem;padding:1rem;display:flex}.btn-pagination{border:1px solid var(--border);color:var(--text);cursor:pointer;background:#fff;border-radius:4px;justify-content:center;align-items:center;min-width:36px;padding:.4rem .8rem;font-size:.875rem;font-weight:500;transition:all .2s;display:flex}.btn-pagination:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.btn-pagination.active{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-pagination:disabled{opacity:.5;cursor:not-allowed;background:#f1f5f9}@media screen and (width<=640px){.table-header-controls,.filter-group,.header-actions,.dashboard-actions,.input-with-label,.input-with-label>div{width:100%!important}.dashboard-actions,.input-with-label>div{flex-direction:column!important}.table-header-controls select,.filter-group select,.filter-group button,.header-actions button,.dashboard-actions button,.header-actions a,.header-actions a button{width:100%!important}}@media (width>=640px){.filter-group{border-left:1px solid var(--border);margin-left:1rem;padding-left:1rem}}@media screen and (width<=767px){.table-container{overflow-x:visible}table,thead,tbody,th,td,tr{display:block}thead tr{position:absolute;top:-9999px;left:-9999px}tr{border:1px solid var(--border);background:#fff;border-radius:12px;margin-bottom:1rem;padding:.5rem;box-shadow:0 1px 3px #0000000d}td{border:none;border-bottom:1px solid #f1f5f9;justify-content:flex-end;align-items:center;min-height:3rem;display:flex;position:relative;text-align:right!important;padding-left:45%!important}td:last-child{border-bottom:0}td:before{white-space:nowrap;text-align:left;width:40%;color:var(--text-muted);text-transform:uppercase;padding-right:10px;font-size:.7rem;font-weight:600;position:absolute;left:1rem}.dashboard-table td:first-of-type:before{content:"No"}.dashboard-table td:nth-of-type(2):before{content:"Tanggal"}.dashboard-table td:nth-of-type(3):before{content:"Transaksi"}.dashboard-table td:nth-of-type(4):before{content:"Pemasukan"}.dashboard-table td:nth-of-type(5):before{content:"Pengeluaran"}.dashboard-table td:nth-of-type(6):before{content:"Saldo"}.dashboard-table td:nth-of-type(7):before{content:"Aksi"}.rekap-table td:first-of-type:before{content:"No"}.rekap-table td:nth-of-type(2):before{content:"Bulan"}.rekap-table td:nth-of-type(3):before{content:"Pemasukan"}.rekap-table td:nth-of-type(4):before{content:"Pengeluaran"}.rekap-table td:nth-of-type(5):before{content:"Saldo"}tr.row-saldo-awal td{display:block;text-align:left!important;padding-left:1rem!important}tr.row-saldo-awal td:before{content:none!important}tr.row-saldo-awal td.no-print{display:none!important}tr.row-total td.col-total-label{background:#f8fafc;text-align:center!important;justify-content:center!important;padding-left:1rem!important}tr.row-total td.col-total-label:before{content:none!important}tr.row-total td.col-masuk:before{content:"Pemasukan"!important}tr.row-total td.col-keluar:before{content:"Pengeluaran"!important}tr.row-total td.col-saldo:before{content:"Saldo"!important}tr.row-total td.col-aksi{display:none!important}}
