:root{--bg:#f5f7fb;--card:#ffffff;--text:#1f2937;--muted:#6b7280;--line:#e5e7eb;--primary:#6d28d9;--primary2:#8b5cf6;--success:#047857;--warning:#b45309;--danger:#b91c1c;--sidebar:#151226}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}a{text-decoration:none;color:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{width:250px;background:linear-gradient(180deg,#171329,#25174a);color:#fff;position:fixed;inset:0 auto 0 0;padding:24px 18px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;gap:12px;align-items:center;margin-bottom:32px}.brand-mark{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,#f97316,#7c3aed);display:grid;place-items:center;font-weight:800;font-size:22px}.brand strong,.brand small{display:block}.brand small{color:#c4b5fd;margin-top:3px}.sidebar nav{display:grid;gap:8px}.sidebar nav a{padding:12px 14px;border-radius:10px;color:#ddd6fe}.sidebar nav a:hover,.sidebar nav a.active{background:rgba(255,255,255,.13);color:#fff}.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.15);padding-top:18px;color:#ddd6fe}.sidebar-footer a{display:inline-block;margin-top:6px;color:#fbbf24}.main-content{margin-left:250px;width:calc(100% - 250px);padding:26px}.topbar{display:flex;align-items:center;gap:14px;margin-bottom:24px}.topbar h1{margin:0;font-size:28px}.topbar p{margin:4px 0 0;color:var(--muted)}.menu-button{display:none;border:0;background:#fff;border-radius:10px;padding:10px;font-size:20px}.grid{display:grid;gap:18px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.8);box-shadow:0 12px 32px rgba(31,41,55,.07);border-radius:18px;padding:20px}.stat-label{color:var(--muted);font-size:13px}.stat-value{font-size:28px;font-weight:800;margin-top:8px}.stat-note{font-size:12px;color:var(--muted);margin-top:8px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.section-head h2{margin:0;font-size:20px}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer;background:#e5e7eb;color:#111827}.btn.primary{background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff}.btn.success{background:#059669;color:#fff}.btn.warning{background:#d97706;color:#fff}.btn.danger{background:#dc2626;color:#fff}.btn.outline{background:#fff;border:1px solid var(--line)}.btn.small{padding:7px 10px;font-size:12px}.actions{display:flex;gap:8px;flex-wrap:wrap}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:12px;border-bottom:1px solid var(--line);white-space:nowrap}.table th{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.badge{display:inline-block;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700;background:#e5e7eb}.badge.success{background:#d1fae5;color:#065f46}.badge.warning{background:#fef3c7;color:#92400e}.badge.danger{background:#fee2e2;color:#991b1b}.badge.neutral{background:#e5e7eb;color:#374151}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label{font-weight:700;font-size:13px}.field input,.field select,.field textarea,.table input{width:100%;padding:11px 12px;border:1px solid #d1d5db;border-radius:10px;background:#fff;font:inherit}.field textarea{min-height:96px;resize:vertical}.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}.alert{padding:12px 14px;border-radius:10px;margin-bottom:16px}.alert.success{background:#d1fae5;color:#065f46}.alert.error,.alert.danger{background:#fee2e2;color:#991b1b}.alert.warning{background:#fef3c7;color:#92400e}.empty{padding:35px;text-align:center;color:var(--muted)}.footer{text-align:center;color:var(--muted);font-size:12px;padding:28px 0 4px}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top left,#7c3aed 0,#1e1638 38%,#0f1020 100%);padding:20px}.login-card{width:min(430px,100%);background:rgba(255,255,255,.96);border-radius:22px;padding:30px;box-shadow:0 24px 70px rgba(0,0,0,.28)}.login-card h1{margin:0 0 6px}.login-card p{color:var(--muted);margin:0 0 22px}.login-card .field{margin-bottom:14px}.invoice-paper{background:#fff;max-width:900px;margin:0 auto;padding:42px;box-shadow:0 10px 35px rgba(0,0,0,.09);border-radius:12px}.invoice-header{display:flex;justify-content:space-between;gap:30px;border-bottom:2px solid #111827;padding-bottom:20px;margin-bottom:24px}.invoice-title{font-size:40px;font-weight:900;letter-spacing:.04em}.invoice-meta{display:grid;grid-template-columns:auto auto;gap:7px 16px;font-size:14px}.invoice-total-box{margin-left:auto;width:min(360px,100%);display:grid;grid-template-columns:1fr auto;gap:10px;padding-top:20px}.invoice-total-box .grand{font-size:20px;font-weight:900;border-top:2px solid #111827;padding-top:10px}.print-only{display:none}.report-filter{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.report-filter .field{min-width:170px}.kpi-income{border-left:5px solid #10b981}.kpi-expense{border-left:5px solid #ef4444}.kpi-balance{border-left:5px solid #8b5cf6}.kpi-receivable{border-left:5px solid #f59e0b}
@media(max-width:1000px){.grid-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:translateX(0)}.main-content{margin-left:0;width:100%;padding:18px}.menu-button{display:block}.grid-4,.grid-2,.form-grid{grid-template-columns:1fr}.topbar h1{font-size:23px}.invoice-paper{padding:22px}.invoice-header{display:block}.invoice-title{margin-top:20px}.field.full{grid-column:auto}}
@media print{body{background:#fff}.sidebar,.topbar,.footer,.no-print,.alert{display:none!important}.main-content{margin:0;width:100%;padding:0}.invoice-paper{box-shadow:none;border-radius:0;max-width:none;padding:18mm}.print-only{display:block}}
.muted-text{margin:5px 0 0;color:var(--muted);font-size:13px}.loan-paper{background:#fff;max-width:900px;margin:0 auto;padding:42px;box-shadow:0 10px 35px rgba(0,0,0,.09);border-radius:12px}.statement-info{margin-bottom:20px}.statement-info h3{margin:0 0 8px}.statement-info p{line-height:1.6;margin:0}.loan-summary{margin:22px 0}.summary-box{border:1px solid var(--line);border-radius:14px;padding:16px;display:grid;gap:7px}.summary-box small{color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.summary-box strong{font-size:20px}.statement-notes{background:#f9fafb;border:1px solid var(--line);border-radius:12px;padding:15px;margin-bottom:22px}.statement-notes p{margin:7px 0}.signature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:60px;margin-top:60px}.signature-grid div{border-top:1px solid #111827;padding-top:8px;text-align:center}.signature-grid span,.signature-grid strong{display:block}.signature-grid span{font-size:12px;color:var(--muted)}.danger-zone{border:1px solid #fecaca}.report-heading{text-align:center;margin-bottom:18px}.report-heading h1,.report-heading h2{margin:4px}
@media(max-width:760px){.loan-paper{padding:22px}.signature-grid{grid-template-columns:1fr;gap:45px}.loan-summary{grid-template-columns:repeat(2,1fr)}}
@media print{.loan-paper{box-shadow:none;border-radius:0;max-width:none;padding:12mm}.loan-paper .table th,.loan-paper .table td{white-space:normal;padding:8px}.loan-summary{grid-template-columns:repeat(4,1fr)}.signature-grid{break-inside:avoid}.card{box-shadow:none}.report-heading{display:block}}
.account-mini{display:flex;gap:10px;align-items:center}.account-avatar{width:38px;height:38px;border-radius:12px;background:rgba(255,255,255,.14);display:grid;place-items:center;font-weight:800}.account-mini strong,.account-mini small{display:block}.account-mini small{color:#c4b5fd;margin-top:2px}.account-links{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px}.account-links a{margin-top:0}.temporary-password code{display:inline-block;background:#111827;color:#fff;padding:5px 9px;border-radius:7px;font-size:16px;letter-spacing:.04em;margin:0 4px}.role-guide{border-top:1px solid var(--line);margin-top:22px;padding-top:16px}.role-guide h3{margin:0 0 10px}.role-guide p{font-size:13px;line-height:1.45;margin:8px 0}.feature-list{line-height:1.8}.wrap-cell{white-space:normal!important;min-width:280px;line-height:1.45}.field small{color:var(--muted);font-size:12px}.user-management-grid{grid-template-columns:minmax(340px,.85fr) minmax(620px,1.6fr)}
@media(max-width:1180px){.user-management-grid{grid-template-columns:1fr}}
.danger-text{color:var(--danger)!important}.grid-1{grid-template-columns:1fr}.transaction-paper{max-width:900px;margin:0 auto}.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0}.detail-grid>div{border:1px solid var(--line);border-radius:12px;padding:14px;display:grid;gap:7px}.detail-grid small{color:var(--muted);text-transform:uppercase;font-size:11px;letter-spacing:.04em}.receipt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.receipt-card{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}.receipt-card>a{display:block;background:#f3f4f6;height:160px}.receipt-card img{width:100%;height:160px;object-fit:contain;background:#f3f4f6}.pdf-preview{height:160px;display:grid;place-items:center;font-size:38px;font-weight:900;color:#dc2626}.receipt-meta{display:grid;gap:5px;padding:13px}.receipt-meta strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.receipt-meta small{color:var(--muted)}.receipt-card>.actions{padding:0 13px 13px}.upload-box{margin-top:18px;padding:16px;border:1px dashed #a78bfa;border-radius:14px;background:#faf5ff;display:flex;gap:14px;align-items:end}.upload-box .field{flex:1}.print-receipt-note{margin:18px}.report-signature{display:none}.printable-table td,.printable-table th{white-space:normal}.app-version{font-size:11px;color:#a78bfa;margin-top:10px}
@media(max-width:760px){.detail-grid{grid-template-columns:1fr}.upload-box{display:grid}.receipt-grid{grid-template-columns:1fr}}
@media print{.transaction-paper{box-shadow:none;border:0;padding:10mm}.detail-grid{grid-template-columns:repeat(3,1fr)}.print-receipt-note{display:block}.printable-table{font-size:10px}.printable-table th,.printable-table td{padding:6px}.report-signature{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-top:55px}.report-signature div{border-top:1px solid #111;padding-top:8px;text-align:center}.card{border:0;padding:8px}.grid-4{grid-template-columns:repeat(4,1fr);gap:8px}.stat-value{font-size:18px}}
