*{box-sizing:border-box;margin:0;padding:0}:root{--primary-blue: #2563eb;--primary-blue-dark: #1d4ed8;--primary-blue-light: #3b82f6;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--success-green: #10b981;--warning-yellow: #f59e0b;--error-red: #ef4444;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--spacing-1: .25rem;--spacing-2: .5rem;--spacing-3: .75rem;--spacing-4: 1rem;--spacing-5: 1.25rem;--spacing-6: 1.5rem;--spacing-8: 2rem;--spacing-12: 3rem;--border-radius: .375rem;--border-radius-lg: .5rem;--border-width: 1px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05)}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.6;color:var(--gray-900);background-color:var(--gray-50);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.container{max-width:1440px;margin:0 auto;padding:0 var(--spacing-6)}.header{background:#fff;border-bottom:var(--border-width) solid var(--gray-200);padding:var(--spacing-6) 0;margin-bottom:var(--spacing-8)}.header-title{font-size:var(--font-size-2xl);font-weight:700;color:var(--gray-900);margin-bottom:var(--spacing-2)}.header-subtitle{font-size:var(--font-size-base);color:var(--gray-600)}.main-layout{display:grid;grid-template-columns:300px 1fr;gap:var(--spacing-8);min-height:calc(100vh - 200px)}@media(max-width:1024px){.main-layout{grid-template-columns:1fr;gap:var(--spacing-6)}}.card{background:#fff;border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);border:var(--border-width) solid var(--gray-200)}.card-header{padding:var(--spacing-6);border-bottom:var(--border-width) solid var(--gray-200)}.card-title{font-size:var(--font-size-lg);font-weight:600;color:var(--gray-900);margin-bottom:var(--spacing-1)}.card-description{font-size:var(--font-size-sm);color:var(--gray-600)}.card-content{padding:var(--spacing-6)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-2) var(--spacing-4);border-radius:var(--border-radius);font-size:var(--font-size-sm);font-weight:500;border:var(--border-width) solid transparent;cursor:pointer;transition:all .2s ease-in-out;text-decoration:none;gap:var(--spacing-2)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--primary-blue);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--primary-blue-dark)}.btn-secondary{background-color:#fff;color:var(--gray-700);border-color:var(--gray-300)}.btn-secondary:hover:not(:disabled){background-color:var(--gray-50);border-color:var(--gray-400)}.btn-ghost{background-color:transparent;color:var(--gray-600)}.btn-ghost:hover:not(:disabled){background-color:var(--gray-100);color:var(--gray-700)}.btn-sm{padding:var(--spacing-1) var(--spacing-3);font-size:var(--font-size-xs)}.btn-lg{padding:var(--spacing-3) var(--spacing-6);font-size:var(--font-size-base)}.form-group{margin-bottom:var(--spacing-4)}.form-label{display:block;font-size:var(--font-size-sm);font-weight:500;color:var(--gray-700);margin-bottom:var(--spacing-2)}.form-input{width:100%;padding:var(--spacing-3);border:var(--border-width) solid var(--gray-300);border-radius:var(--border-radius);font-size:var(--font-size-base);color:var(--gray-900);background-color:#fff;transition:border-color .2s ease-in-out}.form-input:focus{outline:none;border-color:var(--primary-blue);box-shadow:0 0 0 3px #2563eb1a}.form-input:disabled{background-color:var(--gray-100);color:var(--gray-500);cursor:not-allowed}.form-select{width:100%;padding:var(--spacing-3);border:var(--border-width) solid var(--gray-300);border-radius:var(--border-radius);font-size:var(--font-size-base);color:var(--gray-900);background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");background-position:right var(--spacing-3) center;background-repeat:no-repeat;background-size:16px 16px;padding-right:var(--spacing-8);appearance:none;cursor:pointer}.form-select:focus{outline:none;border-color:var(--primary-blue);box-shadow:0 0 0 3px #2563eb1a}.form-error{margin-top:var(--spacing-1);font-size:var(--font-size-sm);color:var(--error-red)}.form-input.error{border-color:var(--error-red)}.form-input.error:focus{border-color:var(--error-red);box-shadow:0 0 0 3px #ef44441a}.loading{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-2);color:var(--gray-600)}.spinner{width:16px;height:16px;border:2px solid var(--gray-300);border-top:2px solid var(--primary-blue);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:var(--spacing-12) var(--spacing-6);color:var(--gray-500)}.empty-state-title{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-2)}.empty-state-description{font-size:var(--font-size-sm);line-height:1.5}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-gray-500{color:var(--gray-500)}.text-gray-600{color:var(--gray-600)}.text-gray-700{color:var(--gray-700)}.text-gray-900{color:var(--gray-900)}.text-primary{color:var(--primary-blue)}.text-success{color:var(--success-green)}.text-warning{color:var(--warning-yellow)}.text-error{color:var(--error-red)}.mb-1{margin-bottom:var(--spacing-1)}.mb-2{margin-bottom:var(--spacing-2)}.mb-4{margin-bottom:var(--spacing-4)}.mb-6{margin-bottom:var(--spacing-6)}.mt-1{margin-top:var(--spacing-1)}.mt-2{margin-top:var(--spacing-2)}.mt-4{margin-top:var(--spacing-4)}.mt-6{margin-top:var(--spacing-6)}.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:var(--spacing-2)}.gap-4{gap:var(--spacing-4)}.search-bar{margin-bottom:var(--spacing-6)}.search-form{width:100%}.search-input-container{position:relative;width:100%}.search-input-wrapper{position:relative;display:flex;align-items:center}.search-input{padding-left:var(--spacing-12);padding-right:var(--spacing-12);font-size:var(--font-size-base);height:48px}.search-icon{position:absolute;left:var(--spacing-4);color:var(--gray-400);pointer-events:none;z-index:1}.clear-search-btn{position:absolute;right:var(--spacing-4);background:none;border:none;padding:var(--spacing-2);cursor:pointer;color:var(--gray-400);border-radius:var(--border-radius);transition:all .2s ease-in-out;display:flex;align-items:center;justify-content:center}.clear-search-btn:hover:not(:disabled){color:var(--gray-600);background-color:var(--gray-100)}.clear-search-btn:disabled{opacity:.5;cursor:not-allowed}.search-loading{position:absolute;right:var(--spacing-4);display:flex;align-items:center;justify-content:center;padding:var(--spacing-2)}.search-loading .spinner{width:16px;height:16px}.search-input:focus{box-shadow:0 0 0 3px #2563eb1a}@media(max-width:640px){.search-input{font-size:var(--font-size-sm);height:44px;padding-left:var(--spacing-10);padding-right:var(--spacing-10)}.search-icon{left:var(--spacing-3)}.clear-search-btn,.search-loading{right:var(--spacing-3)}}.filter-panel{height:fit-content;position:sticky;top:var(--spacing-6)}.filter-header{display:flex;align-items:center;justify-content:space-between}.filter-section{border-bottom:var(--border-width) solid var(--gray-200);margin-bottom:var(--spacing-4);padding-bottom:var(--spacing-4)}.filter-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.filter-section-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--spacing-2) 0;background:none;border:none;cursor:pointer;text-align:left;margin-bottom:var(--spacing-3)}.filter-section-header:hover{background-color:var(--gray-50);border-radius:var(--border-radius);padding:var(--spacing-2);margin:0 calc(-1 * var(--spacing-2)) var(--spacing-3)}.filter-section-title{font-size:var(--font-size-base);font-weight:600;color:var(--gray-900);margin:0}.filter-section-icon{color:var(--gray-400);transform:rotate(0);transition:transform .2s ease-in-out}.filter-section-icon.expanded{transform:rotate(180deg)}.filter-section-content{animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:500px}}.checkbox-group{display:flex;flex-direction:column;gap:var(--spacing-2)}.checkbox-item{display:flex;align-items:center;gap:var(--spacing-3);cursor:pointer;padding:var(--spacing-2);border-radius:var(--border-radius);transition:background-color .2s ease-in-out}.checkbox-item:hover{background-color:var(--gray-50)}.checkbox-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary-blue);cursor:pointer}.checkbox-text{font-size:var(--font-size-sm);color:var(--gray-700);cursor:pointer;-webkit-user-select:none;user-select:none}.range-inputs{display:flex;align-items:center;gap:var(--spacing-3)}.range-inputs .form-input{flex:1}.range-separator{font-size:var(--font-size-sm);color:var(--gray-500);font-weight:500}@media(max-width:1024px){.filter-panel{position:static;margin-bottom:var(--spacing-6)}.filter-section-content{max-height:none}}@media(max-width:640px){.range-inputs{flex-direction:column;align-items:stretch}.range-separator{text-align:center;font-size:var(--font-size-xs)}.checkbox-item{padding:var(--spacing-3)}.checkbox-text{font-size:var(--font-size-base)}}.sorting-dropdown{margin-bottom:var(--spacing-6)}.sorting-controls{display:flex;align-items:center;gap:var(--spacing-4);margin-bottom:var(--spacing-2)}.sort-select-wrapper{display:flex;align-items:center;gap:var(--spacing-3)}.sort-label{font-size:var(--font-size-sm);font-weight:500;color:var(--gray-700);white-space:nowrap;margin-bottom:0}.sort-select{min-width:200px}.sort-order-btn{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);white-space:nowrap}.sort-order-btn:disabled{opacity:.6;cursor:not-allowed}.sort-order-text{font-size:var(--font-size-sm);font-weight:500}.sort-description{padding:var(--spacing-2) var(--spacing-3);background-color:var(--gray-50);border-radius:var(--border-radius);border:var(--border-width) solid var(--gray-200)}.sort-description .text-sm{font-size:var(--font-size-sm)}.sort-description .text-gray-600{color:var(--gray-600)}@media(max-width:768px){.sorting-controls{flex-direction:column;align-items:stretch;gap:var(--spacing-3)}.sort-select-wrapper{flex-direction:column;align-items:stretch;gap:var(--spacing-2)}.sort-label{font-size:var(--font-size-sm)}.sort-select{min-width:auto;width:100%}.sort-order-btn{justify-content:center}}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-4);margin-bottom:var(--spacing-6)}.summary-card{background:#fff;border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);border:var(--border-width) solid var(--gray-200);transition:box-shadow .2s ease-in-out}.summary-card:hover{box-shadow:var(--shadow-md)}.summary-card-content{padding:var(--spacing-6)}.summary-card-content.loading{display:flex;align-items:center;justify-content:center;min-height:120px}.summary-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-4)}.summary-card-title{font-size:var(--font-size-sm);font-weight:500;color:var(--gray-600);margin:0;text-transform:uppercase;letter-spacing:.5px}.summary-card-icon{color:var(--gray-400);background-color:var(--gray-50);padding:var(--spacing-2);border-radius:var(--border-radius)}.summary-card-value{font-size:var(--font-size-2xl);font-weight:700;color:var(--gray-900);margin-bottom:var(--spacing-2);line-height:1.2}.summary-card-subtitle{font-size:var(--font-size-sm);color:var(--gray-500);margin:0}@media(max-width:768px){.summary-cards{grid-template-columns:1fr;gap:var(--spacing-3);margin-bottom:var(--spacing-4)}.summary-card-content{padding:var(--spacing-4)}.summary-card-value{font-size:var(--font-size-xl)}}@media(max-width:480px){.summary-cards{gap:var(--spacing-2)}.summary-card-header{margin-bottom:var(--spacing-3)}.summary-card-title{font-size:var(--font-size-xs)}.summary-card-value{font-size:var(--font-size-lg)}.summary-card-subtitle{font-size:var(--font-size-xs)}}.table-container{overflow-x:auto;border-radius:var(--border-radius);border:var(--border-width) solid var(--gray-200)}.transaction-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm);background-color:#fff}.transaction-table th{background-color:var(--gray-50);border-bottom:var(--border-width) solid var(--gray-200);padding:var(--spacing-3) var(--spacing-4);text-align:left;font-weight:600;color:var(--gray-900);white-space:nowrap;position:relative}.transaction-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s ease-in-out}.transaction-table th.sortable:hover{background-color:var(--gray-100)}.th-content{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-2)}.th-label{font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.sort-icon{display:flex;align-items:center;color:var(--gray-400);transition:color .2s ease-in-out}.sort-icon.sort-asc,.sort-icon.sort-desc{color:var(--primary-blue)}.transaction-table tbody tr{border-bottom:var(--border-width) solid var(--gray-100);transition:background-color .2s ease-in-out}.transaction-table tbody tr:hover{background-color:var(--gray-50)}.transaction-table tbody tr:last-child{border-bottom:none}.transaction-table td{padding:var(--spacing-4);vertical-align:middle;border-right:var(--border-width) solid var(--gray-100)}.transaction-table td:last-child{border-right:none}.col-date{min-width:100px}.col-customer-id{min-width:100px;font-family:monospace;font-size:var(--font-size-xs);color:var(--gray-600)}.col-customer-name{min-width:150px;font-weight:500}.col-phone{min-width:130px;font-family:monospace;font-size:var(--font-size-xs)}.col-product{min-width:200px;max-width:250px}.col-category{min-width:100px}.col-quantity{min-width:60px;text-align:right;font-weight:500}.col-price{min-width:100px;text-align:right;font-family:monospace;font-weight:500}.col-final-amount{min-width:120px;text-align:right;font-family:monospace;font-weight:600;color:var(--gray-900)}.col-payment{min-width:100px;font-size:var(--font-size-xs)}.col-status{min-width:100px}.status-badge{display:inline-flex;align-items:center;padding:var(--spacing-1) var(--spacing-2);border-radius:var(--border-radius);font-size:var(--font-size-xs);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.status-completed{background-color:#d1fae5;color:#065f46}.status-processing{background-color:#fef3c7;color:#92400e}.status-shipped{background-color:#dbeafe;color:#1e40af}.status-delivered{background-color:#d1fae5;color:#065f46}.status-cancelled{background-color:#fee2e2;color:#991b1b}.table-loading{display:flex;align-items:center;justify-content:center;gap:var(--spacing-3);padding:var(--spacing-12) var(--spacing-6);color:var(--gray-600)}.table-loading .spinner{width:20px;height:20px}.empty-state{text-align:center;padding:var(--spacing-12) var(--spacing-6)}.empty-state-icon{margin:0 auto var(--spacing-4);color:var(--gray-400)}.empty-state-title{font-size:var(--font-size-lg);font-weight:600;color:var(--gray-900);margin-bottom:var(--spacing-2)}.empty-state-description{font-size:var(--font-size-sm);color:var(--gray-600);max-width:400px;margin:0 auto;line-height:1.5}@media(max-width:768px){.transaction-table{font-size:var(--font-size-xs)}.transaction-table th,.transaction-table td{padding:var(--spacing-2) var(--spacing-3)}.th-label{font-size:10px}.col-customer-id,.col-phone,.col-category,.col-payment{display:none}.col-product{min-width:120px;max-width:150px}.status-badge{padding:2px var(--spacing-1);font-size:10px}}@media(max-width:480px){.col-price{display:none}.col-product{min-width:100px;max-width:120px}}.pagination-container{display:flex;flex-direction:column;gap:var(--spacing-4);margin-top:var(--spacing-6)}.pagination-info{text-align:center}.pagination-info .text-sm{font-size:var(--font-size-sm)}.pagination-info .text-gray-600{color:var(--gray-600)}.pagination-info .font-medium{font-weight:500;color:var(--gray-900)}.pagination-controls{display:flex;align-items:center;justify-content:center;gap:var(--spacing-2)}.pagination-btn{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-sm)}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.pagination-btn-text{font-weight:500}.pagination-prev .pagination-btn-text,.pagination-next .pagination-btn-text{display:block}.pagination-numbers{display:flex;align-items:center;gap:var(--spacing-1);margin:0 var(--spacing-2)}.pagination-number{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:var(--border-width) solid var(--gray-300);border-radius:var(--border-radius);background-color:#fff;color:var(--gray-700);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .2s ease-in-out}.pagination-number:hover:not(:disabled){background-color:var(--gray-50);border-color:var(--gray-400);color:var(--gray-900)}.pagination-number:disabled{opacity:.5;cursor:not-allowed}.pagination-number.active{background-color:var(--primary-blue);border-color:var(--primary-blue);color:#fff}.pagination-number.active:hover{background-color:var(--primary-blue-dark);border-color:var(--primary-blue-dark)}.pagination-ellipsis{display:flex;align-items:center;justify-content:center;width:36px;height:36px;color:var(--gray-500);font-size:var(--font-size-sm);-webkit-user-select:none;user-select:none}.pagination-quick-jump{display:flex;align-items:center;justify-content:center;gap:var(--spacing-3);padding-top:var(--spacing-4);border-top:var(--border-width) solid var(--gray-200)}.quick-jump-label{font-size:var(--font-size-sm);font-weight:500;color:var(--gray-700);margin-bottom:0}.quick-jump-input{width:80px;padding:var(--spacing-2);font-size:var(--font-size-sm);text-align:center}.quick-jump-max{font-size:var(--font-size-sm);color:var(--gray-500)}@media(max-width:768px){.pagination-container{gap:var(--spacing-3)}.pagination-controls{flex-wrap:wrap;gap:var(--spacing-2)}.pagination-btn-text{display:none}.pagination-btn{padding:var(--spacing-2);min-width:36px;justify-content:center}.pagination-numbers{order:-1;flex-basis:100%;justify-content:center;margin:0}.pagination-number{width:32px;height:32px;font-size:var(--font-size-xs)}.pagination-ellipsis{width:32px;height:32px}.pagination-quick-jump{flex-direction:column;gap:var(--spacing-2);text-align:center}}@media(max-width:480px){.pagination-info{font-size:var(--font-size-xs)}.pagination-number{width:28px;height:28px;font-size:var(--font-size-xs)}.pagination-ellipsis{width:28px;height:28px}.pagination-numbers{max-width:280px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.pagination-numbers::-webkit-scrollbar{display:none}}.app{min-height:100vh;display:flex;flex-direction:column;background-color:var(--gray-50)}.sidebar{min-height:fit-content}.content{flex:1;min-height:0}.error-container{min-height:60vh;display:flex;align-items:center;justify-content:center}.footer{margin-top:auto;padding:var(--spacing-6) 0;border-top:var(--border-width) solid var(--gray-200);background-color:#fff}.footer-content{text-align:center}.loading-overlay{position:fixed;inset:0;background-color:#fffc;display:flex;align-items:center;justify-content:center;z-index:1000}.app:focus-within{outline:none}@media(prefers-contrast:high){.card,.btn{border:2px solid}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
