:root{--primary-50:#f0fdf4;--primary-100:#dcfce7;--primary-light:#ecfdf5;--primary-border:#a7f3d0;--primary:#059669;--primary-hover:#047857;--primary-dark:#065f46;--secondary:#475569;--secondary-hover:#334155;--secondary-light:#f1f5f9;--secondary-border:#e2e8f0;--success:#059669;--success-hover:#047857;--success-light:#ecfdf5;--success-border:#a7f3d0;--warning:#d97706;--warning-hover:#b45309;--warning-light:#fffbeb;--warning-border:#fde68a;--danger:#dc2626;--danger-hover:#b91c1c;--danger-light:#fef2f2;--danger-border:#fecaca;--info:#0284c7;--info-light:#f0f9ff;--info-border:#bae6fd;--dark:#0f172a;--dark-surface:#1e293b;--light:#fff;--bg-main:#f8fafc;--border-color:#e2e8f0;--border-subtle:#f1f5f9;--text-main:#0f172a;--text-muted:#64748b;--text-light:#94a3b8;--font-family:"Plus Jakarta Sans", "Be Vietnam Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-heading:"Plus Jakarta Sans", "Be Vietnam Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--fs-xs:.75rem;--fs-sm:.8125rem;--fs-base:.875rem;--fs-md:.9375rem;--fs-lg:1.0625rem;--fs-xl:1.25rem;--fs-2xl:1.5rem;--fs-3xl:1.875rem;--space-page:20px;--space-card:18px;--space-section:20px;--shadow-xs:0 1px 2px 0 #0f172a0a;--shadow-sm:0 1px 3px 0 #0f172a0f, 0 1px 2px -1px #0f172a0a;--shadow-md:0 4px 6px -1px #0f172a0f, 0 2px 4px -2px #0f172a08;--shadow-lg:0 10px 15px -3px #0f172a12, 0 4px 6px -4px #0f172a08;--shadow-premium:0 12px 32px -4px #05966914;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-full:9999px;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-normal:.25s cubic-bezier(.4, 0, .2, 1)}@media (width<=480px){:root{--fs-xs:.7rem;--fs-sm:.75rem;--fs-base:.8125rem;--fs-md:.875rem;--fs-lg:1rem;--fs-xl:1.125rem;--fs-2xl:1.25rem;--fs-3xl:1.5rem;--space-page:14px;--space-card:14px}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--bg-main);color:var(--text-main);font-size:var(--fs-base);letter-spacing:-.011em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;line-height:1.55;overflow-x:hidden}#root{background-color:var(--bg-main);flex-direction:column;width:100%;min-height:100vh;display:flex}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--dark);letter-spacing:-.025em;font-weight:700;line-height:1.3}h1{font-size:var(--fs-2xl)}h2{font-size:var(--fs-xl)}h3{font-size:var(--fs-lg)}h4{font-size:var(--fs-md)}h5{font-size:var(--fs-base)}h6{font-size:var(--fs-sm)}a{color:var(--primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--primary-hover)}input,button,select,textarea{font-family:inherit;font-size:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:#cbd5e1}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.hide-mobile{display:none!important}@media (width>=769px){.hide-desktop{display:none!important}}.app-container{background-color:var(--bg-main);grid-template-columns:260px 1fr;min-height:100vh;display:grid}.sidebar{color:#f1f5f9;z-index:100;background-color:#0f172a;border-right:1px solid #ffffff12;flex-direction:column;height:100vh;display:flex;position:sticky;top:0;box-shadow:2px 0 8px #0000000d}.sidebar-logo{border-bottom:1px solid #ffffff12;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.sidebar-logo-text{font-family:var(--font-heading);color:#fff;letter-spacing:-.02em;font-size:1.125rem;font-weight:800}.sidebar-menu{flex-direction:column;flex:1;gap:3px;padding:16px 12px;list-style:none;display:flex;overflow-y:auto}.sidebar-item{margin:0}.sidebar-link{color:#94a3b8;border-radius:var(--radius-md);transition:all var(--transition-fast);border-left:3px solid #0000;align-items:center;gap:12px;padding:10px 14px;font-size:.875rem;font-weight:500;display:flex}.sidebar-link:hover{color:#f8fafc;background-color:#ffffff0d}.sidebar-link.active{color:#fff;background:#10b9811f;border-left:3px solid #10b981;font-weight:600}.sidebar-link.active svg{color:#34d399}.sidebar-footer{background:#0f172a80;border-top:1px solid #ffffff12;padding:16px 20px}.sidebar-close-btn,.sidebar-overlay{display:none}.main-wrapper{background-color:var(--bg-main);flex-direction:column;min-height:100vh;display:flex;overflow-x:hidden}.main-header{border-bottom:1px solid var(--border-color);z-index:90;background-color:#fff;justify-content:space-between;align-items:center;min-height:64px;padding:12px 28px;display:flex;position:sticky;top:0;box-shadow:0 1px 2px #0f172a08}.header-title-section{flex-direction:column;min-width:0;display:flex}.header-title{letter-spacing:-.02em;color:var(--dark);margin:0;font-size:1.125rem;font-weight:700}.header-subtitle{color:var(--text-muted);margin-top:2px;font-size:.8125rem}.header-actions{flex-shrink:0;align-items:center;gap:12px;display:flex}.hamburger-btn{border:1px solid var(--border-color);background:var(--light);cursor:pointer;border-radius:var(--radius-md);width:38px;height:38px;color:var(--text-main);transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:none}.hamburger-btn:hover{background-color:var(--secondary-light)}.content-pane{flex:1;width:100%;max-width:1440px;margin:0 auto;padding:24px 28px}@media (width<=1024px){.app-container{grid-template-columns:230px 1fr}.content-pane{padding:20px}}@media (width<=768px){.app-container{grid-template-columns:1fr}.sidebar{z-index:1001;width:280px;height:100vh;transition:transform .28s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.sidebar--open{transform:translate(0)}.sidebar-close-btn{color:#f1f5f9;border-radius:var(--radius-sm);cursor:pointer;z-index:10;width:32px;height:32px;transition:background var(--transition-fast);background:#ffffff14;border:none;justify-content:center;align-items:center;display:flex;position:absolute;top:16px;right:16px}.sidebar-close-btn:hover{background:#ffffff29}.sidebar-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:1000;background:#0f172a99;display:none;position:fixed;inset:0}.sidebar-overlay.sidebar-overlay--visible{animation:fadeIn var(--transition-fast);display:block}.hamburger-btn{display:flex}.main-header{min-height:56px;padding:10px 16px}.header-subtitle{display:none}.header-title{font-size:var(--fs-md)}.content-pane{padding:16px}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.responsive-grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.responsive-grid-3{grid-template-columns:1fr 1fr 1fr;gap:16px;display:grid}.responsive-grid-2-1{grid-template-columns:2fr 1fr;gap:16px;display:grid}.btn{font-family:var(--font-family);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;box-sizing:border-box;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;height:38px;min-height:38px;padding:0 16px;font-size:.875rem;font-weight:600;display:inline-flex;box-shadow:0 1px 2px #0000000a}.btn:active{transform:scale(.985)}.btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.btn-primary{background-color:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover:not(:disabled){background-color:var(--primary-hover);border-color:var(--primary-hover);box-shadow:0 2px 6px -1px #05966959}.btn-secondary{color:#334155;background-color:#fff;border-color:#cbd5e1}.btn-secondary:hover:not(:disabled){color:#0f172a;background-color:#f8fafc;border-color:#94a3b8}.btn-danger{color:#dc2626;background-color:#fff;border-color:#fecaca}.btn-danger:hover:not(:disabled){background-color:#fef2f2;border-color:#f87171}.btn-warning{color:#d97706;background-color:#fff;border-color:#fde68a}.btn-warning:hover:not(:disabled){background-color:#fffbeb;border-color:#fbbf24}.btn-success{color:#059669;background-color:#fff;border-color:#a7f3d0}.btn-success:hover:not(:disabled){background-color:#ecfdf5;border-color:#6ee7b7}.btn-sm{border-radius:var(--radius-xs);box-sizing:border-box;height:30px;min-height:30px;padding:0 10px;font-size:.8125rem}.form-group{margin-bottom:16px}.form-label{color:#334155;letter-spacing:-.01em;margin-bottom:6px;font-size:.8125rem;font-weight:600;display:block}.form-control{border-radius:var(--radius-sm);width:100%;color:var(--text-main);transition:all var(--transition-fast);background-color:#fff;border:1px solid #cbd5e1;outline:none;min-height:40px;padding:8px 12px;font-size:.875rem}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px #05966924}.form-error-msg{color:var(--danger);margin-top:4px;font-size:.75rem}.password-toggle-btn{cursor:pointer;color:var(--text-muted);transition:color var(--transition-fast);background:0 0;border:none;outline:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;right:12px}.password-toggle-btn:hover:not(:disabled),.password-toggle-btn:focus-visible{color:var(--primary)}.password-toggle-btn:disabled{cursor:not-allowed;opacity:.4}.card{border-radius:var(--radius-md);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);padding:var(--space-card);transition:all var(--transition-normal);background-color:#fff;margin-bottom:16px}.card:hover{box-shadow:var(--shadow-md);border-color:#cbd5e1}.card-title{color:var(--dark);margin-bottom:14px;font-size:1.0625rem;font-weight:700}.table-responsive{border-radius:var(--radius-md);border:1px solid var(--border-color);width:100%;box-shadow:var(--shadow-sm);-webkit-overflow-scrolling:touch;background-color:#fff;overflow-x:auto}.data-table{border-collapse:collapse;text-align:left;width:100%}.data-table th{color:#64748b;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-color);white-space:nowrap;background-color:#f8fafc;padding:12px 16px;font-size:.75rem;font-weight:600}.data-table td{color:var(--text-main);vertical-align:middle;border-bottom:1px solid #f1f5f9;padding:13px 16px;font-size:.875rem}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr{transition:background-color var(--transition-fast)}.data-table tbody tr:hover{background-color:#f8fafc}.table-actions{flex-wrap:nowrap;align-items:center;gap:6px;display:inline-flex}.table-actions .btn,.table-actions .btn-sm{white-space:nowrap;justify-content:center;align-items:center;height:28px;min-height:28px;padding:0 10px;font-size:.8125rem;font-weight:600;display:inline-flex}.page-actions-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.page-actions-bar .filter-group{align-items:center;gap:8px;display:flex}.page-actions-bar .filter-group .form-group,.page-actions-bar .form-group{margin-bottom:0!important}.page-actions-bar .form-control{box-sizing:border-box;height:38px;min-height:38px;padding:0 12px;font-size:.875rem}.table-empty{text-align:center;color:var(--text-muted);font-size:var(--fs-base);padding:40px 16px}.badge{border-radius:var(--radius-full);letter-spacing:-.01em;white-space:nowrap;align-items:center;padding:3px 9px;font-size:.75rem;font-weight:600;display:inline-flex}.badge-primary{background-color:var(--primary-light);color:var(--primary-dark);border:1px solid var(--primary-border)}.badge-secondary{color:#475569;background-color:#f1f5f9;border:1px solid #cbd5e1}.badge-success{color:#065f46;background-color:#ecfdf5;border:1px solid #a7f3d0}.badge-warning{color:#92400e;background-color:#fffbeb;border:1px solid #fde68a}.badge-danger{color:#991b1b;background-color:#fef2f2;border:1px solid #fecaca}.badge-info{color:#075985;background-color:#f0f9ff;border:1px solid #bae6fd}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2500;animation:fadeIn var(--transition-fast);background-color:#0f172a73;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-content{border-radius:var(--radius-lg);border:1px solid var(--border-color);width:100%;max-width:580px;max-height:90vh;animation:slideUp var(--transition-normal);background-color:#fff;padding:24px;position:relative;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a}.modal-content.modal-sm{max-width:420px}.modal-content.modal-md{max-width:580px}.modal-content.modal-lg{max-width:860px}.modal-content.modal-xl{max-width:1040px}.modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;padding-bottom:14px;display:flex}.modal-header h3{color:var(--dark);margin:0;font-size:1.125rem;font-weight:700}.modal-close{cursor:pointer;color:var(--text-muted);transition:all var(--transition-fast);border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.25rem;display:flex}.modal-close:hover{color:var(--dark);background-color:var(--secondary-light)}.modal-footer{border-top:1px solid var(--border-color);flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:24px;padding-top:16px;display:flex}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideFromBottom{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.dialog-content{max-width:440px}.toast-container{z-index:2000;flex-direction:column;gap:10px;max-width:calc(100vw - 32px);display:flex;position:fixed;bottom:24px;right:24px}.toast{color:#fff;border-radius:var(--radius-sm);border-left:4px solid var(--primary);background-color:#0f172a;align-items:center;gap:12px;min-width:280px;padding:12px 18px;font-size:.875rem;font-weight:500;animation:.25s slideInLeft;display:flex;box-shadow:0 10px 15px -3px #00000026}.toast-success{border-left-color:#10b981}.toast-error{border-left-color:#ef4444}.toast-warning{border-left-color:#f59e0b}.toast-info{border-left-color:#3b82f6}@keyframes slideInLeft{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.loading-wrapper{justify-content:center;align-items:center;width:100%;padding:40px;display:flex}.spinner{border:3px solid #e2e8f0;border-top-color:var(--primary);border-radius:var(--radius-full);width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=768px){.responsive-grid-2,.responsive-grid-3,.responsive-grid-2-1{grid-template-columns:1fr!important;gap:12px!important}.btn{min-height:42px;padding:9px 14px}.btn-sm{min-height:34px;padding:6px 10px}.form-control{min-height:44px;padding:10px 12px;font-size:1rem}.data-table{min-width:700px}.modal-overlay{align-items:flex-end;padding:8px}.modal-content{border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-width:100%;max-height:92vh;padding:20px 16px calc(24px + env(safe-area-inset-bottom)) 16px;animation:.28s slideFromBottom}.toast-container{inset:12px 12px auto}}.province-dropdown{border:1px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);z-index:999;background-color:#fff;max-height:220px;margin-top:4px;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.province-dropdown-item{cursor:pointer;color:var(--text-main);transition:all var(--transition-fast);padding:9px 12px;font-size:.875rem}.province-dropdown-item:hover,.province-dropdown-item.focused{background-color:var(--primary-light);color:var(--primary-dark)}.dashboard-grid{gap:var(--space-section);margin-bottom:var(--space-page);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.metric-card{background-color:var(--light);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-card);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast), box-shadow var(--transition-fast);align-items:center;gap:16px;display:flex}.metric-card:hover{box-shadow:var(--shadow-premium);transform:translateY(-4px)}.metric-icon-wrapper{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:1.4rem;display:flex}.metric-info{flex-direction:column;min-width:0;display:flex}.metric-label{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;font-weight:600}.metric-value{font-family:var(--font-heading);font-size:var(--fs-3xl);color:var(--dark);font-weight:800;line-height:1}.page-actions-bar{margin-bottom:var(--space-section);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.filter-group{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.search-input-wrapper{min-width:240px;position:relative}.detail-grid{gap:var(--space-section);grid-template-columns:2fr 1fr;display:grid}.detail-section{margin-bottom:var(--space-section)}.detail-row{border-bottom:1px solid var(--border-color);font-size:var(--fs-base);justify-content:space-between;gap:12px;padding:10px 0;display:flex}.detail-row:last-child{border-bottom:none}.detail-label{color:var(--text-muted);flex-shrink:0;font-weight:500}.detail-value{color:var(--text-main);text-align:right;word-break:break-word;font-weight:600}.invoice-landscape-wrapper{flex-direction:column;gap:16px;display:flex}.invoice-top-actions{border-radius:var(--radius-md);background-color:#f8fafc;border:1px solid #e2e8f0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.invoice-receipt-paper{border-radius:var(--radius-md);color:#0f172a;font-family:var(--font-family);background-color:#fff;border:1px solid #cbd5e1;max-width:100%;padding:24px 28px;box-shadow:0 4px 12px -2px #0000000d}.receipt-header{text-align:center;border-bottom:2px solid #0f172a;margin-bottom:16px;padding-bottom:12px}.receipt-title{font-family:var(--font-heading);text-transform:uppercase;color:#0f172a;letter-spacing:.04em;margin:0;font-size:1.35rem;font-weight:800}.receipt-subtitle{color:#475569;margin-top:4px;font-size:.875rem;font-weight:600}.receipt-meta-grid{border-radius:var(--radius-sm);background-color:#f8fafc;border:1px solid #e2e8f0;grid-template-columns:1fr 1fr;gap:6px 24px;margin-bottom:16px;padding:10px 14px;font-size:.875rem;line-height:1.5;display:grid}.receipt-table{border-collapse:collapse;width:100%;margin-bottom:14px;font-size:.875rem}.receipt-table th{color:#0f172a;text-transform:uppercase;letter-spacing:.02em;background-color:#f1f5f9;border:1px solid #cbd5e1;padding:9px 12px;font-size:.775rem;font-weight:700}.receipt-table td{vertical-align:middle;border:1px solid #e2e8f0;padding:9px 12px}.receipt-total-section{border-top:2px solid #0f172a;margin-top:6px;padding-top:12px}.receipt-total-row{color:#0f172a;justify-content:space-between;align-items:baseline;font-size:1.15rem;font-weight:800;display:flex}.receipt-total-amount{color:#047857;font-size:1.4rem;font-family:var(--font-heading)}.receipt-words-row{color:#475569;margin-top:4px;font-size:.825rem;font-style:italic}.receipt-signatures{text-align:center;justify-content:space-between;margin-top:24px;padding-top:12px;font-size:.8125rem;display:flex}.receipt-sign-box{min-width:140px}.receipt-sign-title{color:#1e293b;font-weight:700}.receipt-sign-hint{color:#64748b;margin-top:4px;font-size:.725rem;font-style:italic}@media (width<=768px){.receipt-meta-grid{grid-template-columns:1fr;gap:6px}.invoice-receipt-paper{padding:16px 14px}.dashboard-grid{grid-template-columns:repeat(2,1fr);gap:12px}.metric-card{flex-direction:column;align-items:flex-start;gap:12px;padding:14px}.metric-card:hover{transform:none}.metric-icon-wrapper{width:40px;height:40px;font-size:1.1rem}.metric-value{font-size:var(--fs-2xl)}.metric-label{font-size:.7rem}.page-actions-bar{flex-direction:column;align-items:stretch;gap:10px}.filter-group{width:100%}.search-input-wrapper{width:100%;min-width:0}.filter-group .form-control,.filter-group select{width:100%}.detail-grid{grid-template-columns:1fr;gap:16px}.detail-row{flex-direction:column;gap:4px;padding:8px 0}.detail-value{text-align:left}.invoice-title{font-size:var(--fs-xl)}.invoice-total-row{font-size:var(--fs-lg)}}@media (width<=480px){.dashboard-grid{grid-template-columns:1fr 1fr;gap:8px}.metric-card{padding:12px}.metric-icon-wrapper{width:36px;height:36px;font-size:1rem}}
