@import url(https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700&family=JetBrains+Mono:wght@400;500&display=swap);:root{--primary:#0f5132;--primary-light:#198754;--primary-lighter:#d1e7dd;--primary-dark:#0a3622;--accent:#e8590c;--accent-light:#fd7e14;--bg:#f8f9fa;--bg-card:#fff;--bg-sidebar:#0f1923;--bg-sidebar-hover:#1a2d3d;--text:#212529;--text-secondary:#6c757d;--text-light:#adb5bd;--border:#dee2e6;--border-light:#e9ecef;--success:#198754;--warning:#ffc107;--danger:#dc3545;--info:#0dcaf0;--shadow:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001a;--radius:8px;--radius-lg:12px}*{box-sizing:border-box;margin:0;padding:0}body{background:#f8f9fa;background:var(--bg);color:#212529;color:var(--text);font-family:DM Sans,-apple-system,sans-serif;font-size:14px;line-height:1.5}.app-layout{display:flex;min-height:100vh}.sidebar{background:#0f1923;background:var(--bg-sidebar);bottom:0;color:#e9ecef;display:flex;flex-direction:column;left:0;position:fixed;top:0;transition:transform .3s;width:260px;z-index:50}.sidebar-logo{align-items:center;border-bottom:1px solid #ffffff14;display:flex;flex-shrink:0;gap:12px;padding:20px 24px}.sidebar-logo h1{color:#fff;font-size:18px;font-weight:700;line-height:1.2}.sidebar-logo span{color:#adb5bd;color:var(--text-light);display:block;font-size:11px}.sidebar-logo .logo-icon{align-items:center;background:linear-gradient(135deg,#198754,#e8590c);background:linear-gradient(135deg,var(--primary-light),var(--accent));border-radius:10px;color:#fff;display:flex;flex-shrink:0;font-size:20px;font-weight:700;height:42px;justify-content:center;width:42px}.sidebar-nav{flex:1 1;overflow-y:auto;padding:12px}.nav-section{margin-bottom:8px}.nav-section-title{color:#ffffff59;font-size:10px;font-weight:600;letter-spacing:1.5px;padding:8px 12px 4px;text-transform:uppercase}.nav-item{align-items:center;border-radius:8px;color:#ffffffa6;cursor:pointer;display:flex;font-size:13.5px;font-weight:450;gap:10px;margin-bottom:2px;padding:9px 12px;text-decoration:none;transition:all .15s}.nav-item:hover{background:#1a2d3d;background:var(--bg-sidebar-hover);color:#fff}.nav-item.active{background:#0f5132;background:var(--primary);color:#fff;font-weight:600}.nav-item .nav-icon,.nav-item svg{flex-shrink:0;height:18px;opacity:.8;width:18px}.sidebar-footer{border-top:1px solid #ffffff14;gap:10px;padding:16px}.sidebar-footer,.sidebar-footer .user-avatar{align-items:center;display:flex;flex-shrink:0}.sidebar-footer .user-avatar{background:#198754;background:var(--primary-light);border-radius:50%;color:#fff;font-size:14px;font-weight:600;height:36px;justify-content:center;width:36px}.sidebar-footer .user-info{flex:1 1;min-width:0}.sidebar-footer .user-name{color:#fff;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-footer .user-role{color:#adb5bd;color:var(--text-light);font-size:11px;text-transform:capitalize}.main-content{display:flex;flex:1 1;flex-direction:column;margin-left:260px;min-height:100vh}.topbar{align-items:center;background:#fff;background:var(--bg-card);border-bottom:1px solid #e9ecef;border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;padding:12px 28px;position:sticky;top:0;z-index:30}.page-content{flex:1 1;padding:24px 28px}.card{background:#fff;background:var(--bg-card);border:1px solid #e9ecef;border:1px solid var(--border-light);border-radius:12px;border-radius:var(--radius-lg);box-shadow:0 1px 3px #00000014;box-shadow:var(--shadow)}.card-header{align-items:center;border-bottom:1px solid #e9ecef;border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;padding:16px 20px}.card-header h2{font-size:16px;font-weight:600}.card-body{padding:20px}.stats-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:24px}.stat-card{align-items:flex-start;background:#fff;background:var(--bg-card);border:1px solid #e9ecef;border:1px solid var(--border-light);border-radius:12px;border-radius:var(--radius-lg);box-shadow:0 1px 3px #00000014;box-shadow:var(--shadow);display:flex;gap:16px;padding:20px}.stat-card .stat-icon{align-items:center;border-radius:12px;display:flex;flex-shrink:0;font-size:22px;height:48px;justify-content:center;width:48px}.stat-card .stat-icon.green{background:#d1e7dd;color:#0f5132;color:var(--primary)}.stat-card .stat-icon.blue{background:#cfe2ff;color:#0d6efd}.stat-card .stat-icon.orange{background:#fff3cd;color:#e8590c}.stat-card .stat-icon.red{background:#f8d7da;color:#dc3545;color:var(--danger)}.stat-card .stat-icon.purple{background:#e2d9f3;color:#6f42c1}.stat-card .stat-info h3{color:#6c757d;color:var(--text-secondary);font-size:12px;font-weight:500;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.stat-card .stat-info .stat-value{color:#212529;color:var(--text);font-size:24px;font-weight:700;line-height:1.2}.stat-card .stat-info .stat-sub{color:#6c757d;color:var(--text-secondary);font-size:12px;margin-top:4px}.table-container{overflow-x:auto}table{border-collapse:collapse;width:100%}thead{background:#f8f9fa}th{border-bottom:2px solid #e9ecef;border-bottom:2px solid var(--border-light);color:#6c757d;color:var(--text-secondary);font-size:11px;font-weight:600;letter-spacing:.7px;text-align:left;text-transform:uppercase;white-space:nowrap}td,th{padding:10px 14px}td{border-bottom:1px solid #e9ecef;border-bottom:1px solid var(--border-light);font-size:13.5px;vertical-align:middle}tr:hover td{background:#f8f9fa}tr:last-child td{border-bottom:none}.td-mono{font-size:12.5px}.td-amount,.td-mono{font-family:JetBrains Mono,monospace}.td-amount{font-weight:500;text-align:right}.badge{align-items:center;border-radius:20px;display:inline-flex;font-size:11.5px;font-weight:600;padding:3px 10px;white-space:nowrap}.badge-green{background:#d1e7dd;color:#0f5132}.badge-red{background:#f8d7da;color:#842029}.badge-yellow{background:#fff3cd;color:#664d03}.badge-blue{background:#cfe2ff;color:#084298}.badge-gray{background:#e9ecef;color:#495057}.badge-orange{background:#ffe5d0;color:#984c0c}.badge-purple{background:#e2d9f3;color:#432874}.form-group{margin-bottom:16px}.form-label{color:#6c757d;color:var(--text-secondary);display:block;font-size:12.5px;font-weight:600;letter-spacing:.3px;margin-bottom:5px;text-transform:uppercase}.form-input,.form-select,.form-textarea{background:#fff;border:1.5px solid #dee2e6;border:1.5px solid var(--border);border-radius:8px;border-radius:var(--radius);color:#212529;color:var(--text);font-family:inherit;font-size:14px;padding:9px 12px;transition:border-color .15s;width:100%}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:#198754;border-color:var(--primary-light);box-shadow:0 0 0 3px #1987541f;outline:none}.form-input::placeholder{color:#adb5bd;color:var(--text-light)}.form-textarea{min-height:80px;resize:vertical}.form-input.error{border-color:#dc3545;border-color:var(--danger)}.form-error{color:#dc3545;color:var(--danger);font-size:12px;margin-top:3px}.form-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.form-row-3{grid-template-columns:repeat(3,1fr)}.form-row-4{grid-template-columns:repeat(4,1fr)}.btn{align-items:center;border:none;border-radius:8px;border-radius:var(--radius);cursor:pointer;display:inline-flex;font-family:inherit;font-size:13.5px;font-weight:600;gap:7px;padding:9px 18px;text-decoration:none;transition:all .15s;white-space:nowrap}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-primary{background:#0f5132;background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:#0a3622;background:var(--primary-dark)}.btn-secondary{background:#e9ecef;color:#212529;color:var(--text)}.btn-secondary:hover:not(:disabled){background:#dee2e6}.btn-success{background:#198754;background:var(--success);color:#fff}.btn-success:hover:not(:disabled){background:#157347}.btn-danger{background:#dc3545;background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#bb2d3b}.btn-warning{background:#ffc107;background:var(--warning);color:#212529;color:var(--text)}.btn-accent{background:#e8590c;background:var(--accent);color:#fff}.btn-accent:hover:not(:disabled){background:#c94f0a}.btn-outline{background:#0000;border:1.5px solid #dee2e6;border:1.5px solid var(--border);color:#6c757d;color:var(--text-secondary)}.btn-outline:hover:not(:disabled){background:#d1e7dd;background:var(--primary-lighter);border-color:#198754;border-color:var(--primary-light);color:#0f5132;color:var(--primary)}.btn-sm{font-size:12.5px;padding:5px 12px}.btn-lg{font-size:15px;padding:12px 24px}.btn-icon{padding:8px}.page-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:24px}.page-header h1{font-size:22px;font-weight:700}.page-header .subtitle{color:#6c757d;color:var(--text-secondary);font-size:13px}.page-actions{gap:8px}.page-actions,.search-bar{align-items:center;display:flex}.search-bar{flex-wrap:wrap;gap:12px;margin-bottom:16px}.search-input-wrapper{flex:1 1;min-width:250px;position:relative}.search-input-wrapper input{border:1.5px solid #dee2e6;border:1.5px solid var(--border);border-radius:8px;border-radius:var(--radius);font-family:inherit;font-size:14px;padding:9px 12px 9px 38px;width:100%}.search-input-wrapper input:focus{border-color:#198754;border-color:var(--primary-light);outline:none}.search-input-wrapper svg{color:#adb5bd;color:var(--text-light);left:12px;position:absolute;top:50%;transform:translateY(-50%)}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:100}.modal{background:#fff;background:var(--bg-card);border-radius:12px;border-radius:var(--radius-lg);box-shadow:0 4px 12px #0000001a;box-shadow:var(--shadow-md);max-height:90vh;overflow-y:auto;width:100%}.modal-sm{max-width:480px}.modal-md{max-width:640px}.modal-lg{max-width:900px}.modal-xl{max-width:1200px}.modal-header{align-items:center;border-bottom:1px solid #e9ecef;border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;padding:16px 20px}.modal-header h2{font-size:17px;font-weight:700}.modal-body{padding:20px}.modal-footer{border-top:1px solid #e9ecef;border-top:1px solid var(--border-light);display:flex;gap:8px;justify-content:flex-end;padding:16px 20px}.login-page{align-items:center;background:linear-gradient(135deg,#0f1923,#0f5132 60%,#198754);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-card{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:420px;padding:40px;width:100%}.login-card h1{font-size:24px;font-weight:700;margin-bottom:4px}.login-card .subtitle{color:#6c757d;color:var(--text-secondary);font-size:14px;margin-bottom:28px}.login-card .brand{align-items:center;display:flex;gap:12px;margin-bottom:32px}.login-card .brand .logo-icon{align-items:center;background:linear-gradient(135deg,#0f5132,#e8590c);background:linear-gradient(135deg,var(--primary),var(--accent));border-radius:12px;color:#fff;display:flex;font-size:24px;font-weight:700;height:50px;justify-content:center;width:50px}.invoice-print{background:#fff;color:#000;font-size:12px;padding:24px}.invoice-print table{font-size:11px}.invoice-print th{background:#e9ecef!important;font-size:10px;padding:6px 8px}.invoice-print td{padding:5px 8px}.invoice-header{border-bottom:2px solid #000;display:flex;justify-content:space-between;margin-bottom:16px;padding-bottom:12px}.invoice-footer{border-top:1px solid #ccc;margin-top:16px;padding-top:12px}.spinner{animation:spin .7s linear infinite;border:3px solid #e9ecef;border-top-color:#0f5132;border:3px solid var(--border-light);border-radius:50%;border-top-color:var(--primary);height:36px;width:36px}@keyframes spin{to{transform:rotate(1turn)}}.loading-container{align-items:center;display:flex;justify-content:center;min-height:300px}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.text-right{text-align:right}.text-center{text-align:center}.text-sm{font-size:12.5px}.text-xs{font-size:11px}.text-secondary{color:#6c757d;color:var(--text-secondary)}.text-success{color:#198754;color:var(--success)}.text-danger{color:#dc3545;color:var(--danger)}.text-warning{color:#b45309}.font-mono{font-family:JetBrains Mono,monospace}.font-bold{font-weight:700}.font-semibold{font-weight:600}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mb-2{margin-bottom:8px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}.mr-2{margin-right:8px}.p-4{padding:16px}.w-full{width:100%}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hidden{display:none}.grid-2{grid-gap:16px;grid-template-columns:1fr 1fr}.grid-2,.grid-3{display:grid;gap:16px}.grid-3{grid-gap:16px;grid-template-columns:repeat(3,1fr)}.empty-state{color:#6c757d;color:var(--text-secondary);padding:48px 20px;text-align:center}.empty-state .empty-icon{font-size:48px;margin-bottom:12px;opacity:.4}.empty-state h3{color:#212529;color:var(--text);font-size:16px;font-weight:600;margin-bottom:4px}.empty-state p{font-size:13px}.tab-bar{border-bottom:2px solid #e9ecef;border-bottom:2px solid var(--border-light);display:flex;gap:0;margin-bottom:20px}.tab-item{border-bottom:2px solid #0000;color:#6c757d;color:var(--text-secondary);cursor:pointer;font-size:13.5px;font-weight:600;margin-bottom:-2px;padding:10px 20px;transition:all .15s}.tab-item:hover{color:#212529;color:var(--text)}.tab-item.active{border-bottom-color:#0f5132;border-bottom-color:var(--primary);color:#0f5132;color:var(--primary)}.mobile-menu-btn{display:none}@media (max-width:768px){.sidebar{transform:translateX(-100%)}.sidebar.open{transform:translateX(0)}.main-content{margin-left:0}.mobile-menu-btn{display:flex}.form-row-3,.form-row-4{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}.page-header{align-items:flex-start;flex-direction:column}.grid-2,.grid-3{grid-template-columns:1fr}}@media print{.no-print,.page-header,.sidebar,.topbar{display:none!important}.main-content{margin-left:0}.page-content{padding:0}.card{border:none;box-shadow:none}}
/*# sourceMappingURL=main.64f1d8c0.css.map*/