*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem;--tw-shadow: 0 0 #0000}input:where([type=text]):focus,input:where(:not([type])):focus,input:where([type=email]):focus,input:where([type=url]):focus,input:where([type=password]):focus,input:where([type=number]):focus,input:where([type=date]):focus,input:where([type=datetime-local]):focus,input:where([type=month]):focus,input:where([type=search]):focus,input:where([type=tel]):focus,input:where([type=time]):focus,input:where([type=week]):focus,select:where([multiple]):focus,textarea:focus,select:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#2563eb}input::-moz-placeholder,textarea::-moz-placeholder{color:#6b7280;opacity:1}input::placeholder,textarea::placeholder{color:#6b7280;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{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 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}select:where([multiple]),select:where([size]:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}input:where([type=checkbox]),input:where([type=radio]){-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#2563eb;background-color:#fff;border-color:#6b7280;border-width:1px;--tw-shadow: 0 0 #0000}input:where([type=checkbox]){border-radius:0}input:where([type=radio]){border-radius:100%}input:where([type=checkbox]):focus,input:where([type=radio]):focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 2px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}input:where([type=checkbox]):checked,input:where([type=radio]):checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}input:where([type=checkbox]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media (forced-colors: active){input:where([type=checkbox]):checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=radio]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}@media (forced-colors: active){input:where([type=radio]):checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=checkbox]):checked:hover,input:where([type=checkbox]):checked:focus,input:where([type=radio]):checked:hover,input:where([type=radio]):checked:focus{border-color:transparent;background-color:currentColor}input:where([type=checkbox]):indeterminate{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}@media (forced-colors: active){input:where([type=checkbox]):indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=checkbox]):indeterminate:hover,input:where([type=checkbox]):indeterminate:focus{border-color:transparent;background-color:currentColor}input:where([type=file]){background:unset;border-color:inherit;border-width:0;border-radius:0;padding:0;font-size:unset;line-height:inherit}input:where([type=file]):focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.form-input,.form-textarea,.form-select,.form-multiselect{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem;--tw-shadow: 0 0 #0000}.form-input:focus,.form-textarea:focus,.form-select:focus,.form-multiselect:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#2563eb}.form-select{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 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}.form-select:where([size]:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}.visible{visibility:visible}.static{position:static}.top-0{top:0}.col-auto{grid-column:auto}.m-0{margin:0}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.me-1{margin-inline-end:.25rem}.me-2{margin-inline-end:.5rem}.ms-2{margin-inline-start:.5rem}.ms-auto{margin-inline-start:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.w-auto{width:auto}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.overflow-auto{overflow:auto}.text-nowrap{text-wrap:nowrap}.rounded{border-radius:.25rem}.border{border-width:1px}.border-0{border-width:0px}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-0{padding-top:0;padding-bottom:0}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pe-3{padding-inline-end:.75rem}.ps-3{padding-inline-start:.75rem}.pt-4{padding-top:1rem}.text-center{text-align:center}.text-start{text-align:start}.text-end{text-align:end}.align-middle{vertical-align:middle}.text-sm{font-size:.875rem;line-height:1.25rem}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.opacity-50{opacity:.5}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{--primary: #3B82F6;--primary-dark: #1D4ED8;--primary-light: #EFF6FF;--primary-soft: #DBEAFE;--success: #10B981;--success-dark: #059669;--success-light: #D1FAE5;--success-soft: #ECFDF5;--warning: #F59E0B;--warning-dark: #D97706;--warning-light: #FEF3C7;--warning-soft: #FFFBEB;--danger: #EF4444;--danger-dark: #DC2626;--danger-light: #FEE2E2;--danger-soft: #FEF2F2;--info: #06B6D4;--info-dark: #0891B2;--info-light: #CFFAFE;--info-soft: #ECFEFF;--bg-main: #F1F5F9;--bg-card: #FFFFFF;--bg-hover: #F8FAFC;--text-primary: #0F172A;--text-secondary: #334155;--text-muted: #64748B;--border-color: #CBD5E1;--border-light: #E2E8F0;--sidebar-bg: #0F172A;--sidebar-bg-gradient: linear-gradient(180deg, #1E293B 0%, #0F172A 100%);--sidebar-text: #94A3B8;--sidebar-hover: rgba(255, 255, 255, .06);--sidebar-active-bg: rgba(59, 130, 246, .15);--sidebar-active-border: #3B82F6;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .03);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .06), 0 1px 2px -1px rgba(0, 0, 0, .04);--shadow: 0 4px 6px -1px rgba(0, 0, 0, .07), 0 2px 4px -2px rgba(0, 0, 0, .06);--shadow-md: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -4px rgba(0, 0, 0, .06);--shadow-lg: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .04);--radius-xs: .25rem;--radius-sm: .375rem;--radius: .5rem;--radius-md: .625rem;--radius-lg: .75rem;--radius-xl: 1rem;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: .75rem;--spacing-lg: 1rem;--spacing-xl: 1.25rem}body{font-family:Noto Sans Lao,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.9rem;line-height:1.6;background-color:var(--bg-main);color:var(--text-primary);margin:0;padding:0;overflow-x:hidden;height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{font-family:Noto Sans Lao,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body,html,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video,button,input,select,textarea{font-family:Noto Sans Lao,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif!important}canvas{font-family:Noto Sans Lao,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif!important}svg text,.chartjs-render-monitor text{font-family:Noto Sans Lao,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif!important}.btn,.badge,.form-control,.form-select,.nav-link,.dropdown-item,.modal-title,.modal-header,.modal-body,.modal-footer,.alert,.tooltip,.popover,.card,.card-header,.card-body,.table,.table th,.table td,.pagination,.page-link,.list-group-item,.breadcrumb,.nav,.navbar,input,button,select,textarea,label{font-family:Noto Sans Lao,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif!important}.badge.bg-secondary,.badge.bg-primary,.badge.bg-info,.badge.bg-success,.badge.bg-warning,.badge.bg-danger{font-size:.65rem!important;letter-spacing:.05em!important;padding:.35rem .75rem!important}[class^=badge-category-],[class*=badge-category-]{background:linear-gradient(135deg,#06b6d4,#0891b2)!important;color:#fff!important;font-weight:600!important;display:inline-block;min-width:80px;text-align:center;padding:.35rem .75rem!important;font-size:.65rem!important;border-radius:9999px!important}.badge-category-biochemistry,span.badge.badge-category-biochemistry{background:linear-gradient(135deg,#2563eb,#1d4ed8)!important;color:#fff!important;font-weight:600!important}.badge-category-hematology,span.badge.badge-category-hematology{background:linear-gradient(135deg,#dc2626,#b91c1c)!important;color:#fff!important;font-weight:600!important}.badge-category-immunoserology,span.badge.badge-category-immunoserology{background:linear-gradient(135deg,#7c3aed,#6d28d9)!important;color:#fff!important;font-weight:600!important}.badge-category-stool\/urine,.badge-category-stool-urine,span.badge.badge-category-stool-urine{background:linear-gradient(135deg,#d97706,#b45309)!important;color:#fff!important;font-weight:600!important}.badge-category-cardiology,span.badge.badge-category-cardiology{background:linear-gradient(135deg,#0891b2,#0e7490)!important;color:#fff!important;font-weight:600!important}.badge-category-hormone,span.badge.badge-category-hormone{background:linear-gradient(135deg,#db2777,#be185d)!important;color:#fff!important;font-weight:600!important}.badge-category-other,.badge-category-default,span.badge.badge-category-other,span.badge.badge-category-default{background:linear-gradient(135deg,#06b6d4,#0891b2)!important;color:#fff!important;font-weight:600!important}#dashboardSummaryTable td,#dashboardSummaryTable th,#dashboardSummaryTable .badge,#dashboardSummaryTable a{font-family:Noto Sans Lao,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif!important}#topCatsBody .badge{font-size:.65rem!important;padding:.35rem .625rem!important;font-weight:600!important}h1,h2,h3,h4,h5,h6{font-family:Noto Sans Lao,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif!important;font-weight:600;line-height:1.3;margin:0}h4{font-size:1.063rem}h5{font-size:.938rem}.btn{border-radius:var(--radius);padding:.438rem .875rem;font-weight:500;font-size:.813rem;transition:all .2s cubic-bezier(.4,0,.2,1);border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:.375rem;letter-spacing:-.01em}.btn i{font-size:.875rem}.btn-sm{padding:.313rem .625rem;font-size:.75rem}.btn-primary{background:linear-gradient(135deg,#3b82f6,#2563eb);border-color:#2563eb;color:#fff;box-shadow:0 1px 2px #2563eb4d}.btn-primary:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);border-color:#1d4ed8;transform:translateY(-1px);box-shadow:0 4px 8px #2563eb59}.btn-success{background:linear-gradient(135deg,#10b981,#059669);border-color:#059669;color:#fff;box-shadow:0 1px 2px #0596694d}.btn-success:hover{background:linear-gradient(135deg,#059669,#047857);border-color:#047857;transform:translateY(-1px);box-shadow:0 4px 8px #05966959}.btn-warning{background:linear-gradient(135deg,#f59e0b,#d97706);border-color:#d97706;color:#fff;box-shadow:0 1px 2px #d977064d}.btn-warning:hover{background:linear-gradient(135deg,#d97706,#b45309);border-color:#b45309;transform:translateY(-1px);box-shadow:0 4px 8px #d9770659}.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);border-color:#dc2626;color:#fff;box-shadow:0 1px 2px #dc26264d}.btn-danger:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);border-color:#b91c1c;transform:translateY(-1px);box-shadow:0 4px 8px #dc262659}.btn-info{background:linear-gradient(135deg,#06b6d4,#0891b2);border-color:#0891b2;color:#fff;box-shadow:0 1px 2px #0891b24d}.btn-info:hover{background:linear-gradient(135deg,#0891b2,#0e7490);border-color:#0e7490;transform:translateY(-1px);box-shadow:0 4px 8px #0891b259}.btn-outline-secondary{background-color:#fff;border-color:var(--border-color);color:var(--text-secondary)}.btn-outline-secondary:hover{background-color:var(--bg-hover);border-color:var(--text-muted);color:var(--text-primary)}.btn-outline-primary{background-color:#fff;border-color:var(--primary);color:var(--primary)}.btn-outline-primary:hover{background-color:var(--primary-light);border-color:var(--primary-dark);color:var(--primary-dark)}.btn-outline-success{background-color:#fff;border-color:var(--success);color:var(--success)}.btn-outline-success:hover{background-color:var(--success-soft);border-color:var(--success-dark);color:var(--success-dark)}.btn-outline-warning{background-color:#fff;border-color:var(--warning);color:var(--warning)}.btn-outline-warning:hover{background-color:var(--warning-soft);border-color:var(--warning-dark);color:var(--warning-dark)}.btn-outline-danger{background-color:#fff;border-color:var(--danger);color:var(--danger)}.btn-outline-danger:hover{background-color:var(--danger-soft);border-color:var(--danger-dark);color:var(--danger-dark)}.btn-outline-info{background-color:#fff;border-color:var(--info);color:var(--info)}.btn-outline-info:hover{background-color:var(--info-soft);border-color:var(--info-dark);color:var(--info-dark)}.btn-outline-dark{background-color:#fff;border-color:var(--border-color);color:var(--text-primary)}.btn-outline-dark:hover{background-color:var(--bg-hover);border-color:var(--text-primary);color:var(--text-primary)}.btn-light{background-color:#fff;border-color:var(--border-color);color:var(--text-secondary)}.btn-light:hover{background-color:var(--bg-hover);border-color:var(--text-muted)}.btn-action{padding:.313rem .5rem;font-size:.75rem;border-radius:var(--radius-xs);display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease;min-width:28px;height:28px}.btn-action:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-action i{font-size:.813rem}.form-control,.form-select{border-radius:var(--radius);border:1px solid var(--border-color);padding:.438rem .75rem;color:var(--text-primary);transition:all .15s ease;font-weight:500;font-size:.813rem;background-color:#fff}.form-control:focus,.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none;background-color:#fff}.form-control::-moz-placeholder{color:var(--text-muted);opacity:.8}.form-control::placeholder{color:var(--text-muted);opacity:.8}.form-control-sm,.form-select-sm{padding:.313rem .625rem;font-size:.75rem}.form-label{color:var(--text-primary);margin-bottom:.35rem;font-weight:700;font-size:.75rem;letter-spacing:-.01em}.form-text{color:var(--text-muted);font-size:.75rem}.input-group-text{background-color:#f8fafc;border-color:var(--border-color);color:var(--text-primary);padding:.438rem .75rem;font-size:.813rem;font-weight:500}.input-group-sm .input-group-text{padding:.313rem .625rem;font-size:.75rem}.card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-light);transition:all .2s ease}.card:hover{box-shadow:var(--shadow)}.card-header{font-weight:700;border-radius:var(--radius-lg) var(--radius-lg) 0 0!important;background:linear-gradient(to bottom,#fff,#f8fafc);border-bottom:1px solid var(--border-color);color:var(--text-primary)!important;padding:.875rem 1rem;font-size:.875rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}.card-header i{color:var(--primary)}.card-body{padding:1rem}.table{font-size:.813rem;color:var(--text-primary);margin:0}.table thead th{color:var(--text-primary);font-weight:700;font-size:.75rem;letter-spacing:.02em;border-bottom:2px solid var(--border-color);background-color:#f8fafc;padding:.75rem 1rem;white-space:nowrap;text-transform:none;vertical-align:middle}.table-dark thead th{background-color:#f8fafc!important;color:var(--text-primary)!important;font-size:.75rem;font-weight:700;border-bottom:2px solid var(--border-color)}.table-hover tbody tr{transition:all .2s ease;border-bottom:1px solid #F1F5F9}.table-hover tbody tr:hover{background-color:#f8fafc}.table-hover tbody tr td{border-color:#f1f5f9}.table tbody td{padding:1rem;vertical-align:middle;border-bottom:1px solid #F1F5F9;color:var(--text-primary);font-size:.813rem;font-weight:400;line-height:1.5}.table .inventory-in{color:#10b981!important;font-weight:600!important}.table .inventory-out{color:#ef4444!important;font-weight:600!important}.table .inventory-qty{color:#0891b2!important;font-weight:700!important;font-size:.875rem!important}.table-sm th{padding:.625rem .875rem!important}.table-sm td{padding:.625rem .875rem!important;font-size:.813rem!important;color:var(--text-primary)!important}.table-bordered{border:1px solid var(--border-color);border-radius:var(--radius);overflow:hidden}.table-bordered th,.table-bordered td{border:1px solid var(--border-light)}.table thead th{background:#fff;border-bottom:2px solid var(--border-color)}.table-hover tbody tr:hover{background-color:#f1f5f9}.table-sm th,.table-sm td{padding:.625rem .875rem!important}.table .price-text{color:var(--danger);font-weight:700}.badge{padding:.35rem .85rem;border-radius:9999px;font-weight:700;font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;display:inline-flex;align-items:center;justify-content:center;line-height:1.4;border:none;transition:all .15s ease;color:#fff!important}.badge:hover{transform:translateY(-1px);box-shadow:0 2px 4px #00000026}.badge.bg-success{background:linear-gradient(135deg,#10b981,#059669)!important;color:#fff!important}.badge.bg-danger{background:linear-gradient(135deg,#ef4444,#dc2626)!important;color:#fff!important}.badge.bg-warning{background:linear-gradient(135deg,#f59e0b,#d97706)!important;color:#fff!important}.badge.bg-primary{background:linear-gradient(135deg,#3b82f6,#2563eb)!important;color:#fff!important}.badge.bg-info{background:linear-gradient(135deg,#06b6d4,#0891b2)!important;color:#fff!important}.badge.bg-secondary{background:linear-gradient(135deg,#64748b,#475569)!important;color:#fff!important;font-weight:700!important}.badge.badge-solid-success{background:linear-gradient(135deg,#10b981,#059669)!important;color:#fff!important}.badge.badge-solid-danger{background:linear-gradient(135deg,#ef4444,#dc2626)!important;color:#fff!important}.badge.badge-solid-primary{background:linear-gradient(135deg,#3b82f6,#2563eb)!important;color:#fff!important}.badge.badge-solid-secondary{background:linear-gradient(135deg,#64748b,#475569)!important;color:#fff!important}.badge.badge-solid-warning{background:linear-gradient(135deg,#f59e0b,#d97706)!important;color:#fff!important}.badge.badge-solid-info{background:linear-gradient(135deg,#06b6d4,#0891b2)!important;color:#fff!important}.badge i{font-size:.75rem;margin-right:.25rem}.table .badge{min-width:75px;font-size:.688rem;padding:.35rem .7rem;letter-spacing:.03em;box-shadow:0 1px 2px #0000001a}.kpi-card{padding:1rem .875rem;border-radius:var(--radius-lg);color:#fff;text-align:center;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;position:relative;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1);min-height:70px;border:none}.kpi-card:before{content:"";position:absolute;top:-30%;right:-20%;width:150%;height:150%;background:radial-gradient(circle,rgba(255,255,255,.12) 0%,transparent 70%);border-radius:50%;pointer-events:none}.kpi-card:hover{transform:translateY(-3px);box-shadow:0 8px 16px -4px #0000001f}.kpi-card h6{font-size:.65rem;opacity:.95;margin-bottom:.35rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:.35rem;line-height:1.2}.kpi-card h6 i{font-size:.875rem;opacity:.9}.kpi-card h4,.kpi-card h2{margin:0;font-size:1.5rem;font-weight:800;position:relative;z-index:1;text-shadow:0 2px 6px rgba(0,0,0,.12);line-height:1.2}.bg-kpi-1{background:linear-gradient(135deg,#10b981,#059669)}.bg-kpi-2{background:linear-gradient(135deg,#3b82f6,#2563eb)}.bg-kpi-3{background:linear-gradient(135deg,#06b6d4,#0891b2)}.bg-kpi-4{background:linear-gradient(135deg,#f59e0b,#d97706)}.bg-success{background:linear-gradient(135deg,#10b981,#059669)!important}.bg-warning{background:linear-gradient(135deg,#f59e0b,#d97706)!important}.bg-danger{background:linear-gradient(135deg,#ef4444,#dc2626)!important}.bg-info{background:linear-gradient(135deg,#06b6d4,#0891b2)!important}.bg-primary{background:linear-gradient(135deg,#3b82f6,#2563eb)!important}.bg-secondary{background:linear-gradient(135deg,#64748b,#475569)!important}.test-items-container{max-height:480px;overflow-y:auto;background-color:var(--bg-hover);padding:1rem;border-radius:0 0 var(--radius-lg) var(--radius-lg)}.test-item-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius);padding:.75rem;transition:all .2s ease;height:100%;display:flex;align-items:center;box-shadow:var(--shadow-xs)}.test-item-card:hover{border-color:var(--primary);box-shadow:0 4px 12px #3b82f626;transform:translateY(-2px);background-color:var(--primary-light)}.test-item-label{font-size:.813rem;cursor:pointer;width:100%;margin-left:8px;font-weight:600;color:var(--text-primary);line-height:1.3}.test-item-label:hover{color:var(--primary)}.test-price{font-size:.75rem;color:var(--danger);font-weight:700;margin-top:2px}.category-header{font-size:.813rem;color:var(--text-primary);margin-top:1rem;margin-bottom:.75rem;border-bottom:2px solid var(--border-color);padding-bottom:.5rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.test-search-box{min-width:220px}.required-field{border:1px solid var(--primary)!important;background-color:var(--primary-light)!important}.required-field:focus{background-color:#fff!important;border-color:var(--primary)!important;box-shadow:0 0 0 3px var(--primary-soft)!important}.required-label:after{content:" *";color:var(--danger);font-size:1em;font-weight:700}#loginScreen{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#1e293b,#0f172a,#1e293b);display:flex;justify-content:center;align-items:center;z-index:9999}.login-box{background:#fff;padding:2.5rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;max-width:380px;text-align:center;margin:1rem;border:1px solid var(--border-light)}.login-box h2{color:var(--primary-dark);font-weight:700;font-size:1.5rem;margin-bottom:.5rem}#mainApp{display:none;height:100%;flex-direction:row;position:relative}.sidebar{width:260px;background:linear-gradient(180deg,#1e293b,#0f172a);color:#fff;display:flex;flex-direction:column;box-shadow:var(--shadow-md);z-index:1050;transition:all .3s cubic-bezier(.4,0,.2,1);height:100%;flex-shrink:0}.sidebar.collapsed{width:72px}.sidebar .brand-header{padding:1.25rem 1rem;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.06);background-color:#0003}.sidebar .brand-title{font-size:1rem;font-weight:700;letter-spacing:-.02em;white-space:nowrap;color:#fff;display:flex;align-items:center;gap:.5rem}.sidebar.collapsed .brand-title{display:none}.toggle-btn{background:transparent;border:none;color:var(--sidebar-text);font-size:1.25rem;cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-xs);transition:all .15s ease}.toggle-btn:hover{background-color:var(--sidebar-hover);color:#fff}.sidebar.collapsed .toggle-btn{margin:0 auto}.sidebar .user-info{padding:1rem;text-align:center;font-size:.75rem;border-bottom:1px solid rgba(255,255,255,.06);color:var(--sidebar-text);white-space:nowrap;overflow:hidden;background-color:#0000001a}.sidebar .user-info .mb-1{font-size:.688rem;color:var(--sidebar-text);opacity:.7}.sidebar.collapsed .user-info{display:none}.sidebar a{color:#cbd5e1;padding:.875rem 1rem;text-decoration:none;display:flex;align-items:center;transition:all .2s ease;cursor:pointer;border-left:3px solid transparent;white-space:nowrap;font-weight:600;font-size:.875rem;gap:.75rem}.sidebar a i{font-size:1.2rem;min-width:24px;text-align:center;color:#94a3b8;transition:color .15s ease}.sidebar a .nav-text{margin-left:.5rem;transition:opacity .2s;color:#cbd5e1}.sidebar.collapsed a{padding:.875rem 0;justify-content:center}.sidebar.collapsed a .nav-text{display:none}.sidebar a:hover{background-color:#ffffff1a;color:#fff;border-left-color:#60a5fa}.sidebar a:hover i,.sidebar a:hover .nav-text{color:#fff}.sidebar a.active{background:#3b82f633;color:#fff;border-left:3px solid #60A5FA}.sidebar a.active i{color:#93c5fd}.sidebar a.active .nav-text{color:#fff}.sidebar-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;z-index:1040;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}@media (max-width: 768px){.sidebar{position:fixed;left:-260px}.sidebar.mobile-open{left:0;width:260px}.sidebar.collapsed{left:-260px;width:260px}.sidebar-overlay.active{display:block}}.content{flex-grow:1;padding:1.5rem;overflow-y:auto;height:100vh;position:relative;background-color:var(--bg-main)}.mobile-header{display:none;padding:.75rem 1rem;background:var(--bg-card);box-shadow:var(--shadow-sm);align-items:center;justify-content:space-between;margin-bottom:1rem;border-radius:var(--radius-lg);border-bottom:1px solid var(--border-light)}@media (max-width: 768px){.mobile-header{display:flex}.content{padding:1rem}}.page{display:none}.page.active{display:block;animation:fadeIn .25s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.action-divider{width:1px;height:20px;background-color:var(--border-color);margin:0 4px}div.dataTables_wrapper div.dataTables_filter input{border-radius:var(--radius);border:1px solid var(--border-color);padding:6px 12px;margin-left:8px}div.dataTables_wrapper div.dataTables_length select{width:70px!important;padding-right:25px!important;background-position:right .5rem center!important;display:inline-block;border-radius:var(--radius);border:1px solid var(--border-color)}div.dataTables_wrapper div.dataTables_info{font-size:.75rem;color:var(--text-muted)}div.dataTables_wrapper div.dataTables_paginate{padding-top:.75rem}.page-item.active .page-link{background-color:var(--primary);border-color:var(--primary)}.custom-table-scroll{max-height:400px;overflow-y:auto}.alert-box-animated{animation:fadeInDown .3s ease-out}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-15px)}to{opacity:1;transform:translateY(0)}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-main);border-radius:4px}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px;-webkit-transition:background .2s ease;transition:background .2s ease}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.modal-content{border-radius:var(--radius-xl);border:none;box-shadow:var(--shadow-lg)}.modal-header{background:linear-gradient(to bottom,#fff,#f8fafc);border-radius:var(--radius-xl) var(--radius-xl) 0 0;border-bottom:1px solid var(--border-light);padding:1.25rem 1.5rem}.modal-title{font-weight:700;font-size:1rem;color:var(--text-primary)}.modal-body{padding:1.25rem 1.5rem}.modal-footer{border-top:1px solid var(--border-light);padding:1rem 1.5rem;background-color:var(--bg-hover);border-radius:0 0 var(--radius-xl) var(--radius-xl)}.alert{border-radius:var(--radius);padding:.875rem 1rem;border:1px solid;font-size:.813rem}.alert-success{background-color:var(--success-soft);border-color:var(--success-light);color:var(--success-dark)}.alert-warning{background-color:var(--warning-soft);border-color:var(--warning-light);color:var(--warning-dark)}.alert-danger{background-color:var(--danger-soft);border-color:var(--danger-light);color:var(--danger-dark)}.alert-info{background-color:var(--info-soft);border-color:var(--info-light);color:var(--info-dark)}#resultEntryModal .modal-body{max-height:70vh;overflow-y:auto}#uploadedFilesList .alert{transition:all .2s ease}#uploadedFilesList .alert:hover{transform:translate(5px);box-shadow:0 2px 8px #0000001a}#resultsSummaryTable{font-size:.813rem}#resultsSummaryTable thead{background-color:var(--bg-hover);position:sticky;top:0;z-index:10}#resultsSummaryTable tbody tr{transition:background-color .15s ease}#resultsSummaryTable tbody tr:hover{background-color:var(--primary-light)}#resultsSummaryTable input.form-control{background-color:#fff;border:1px solid var(--border-color)}#resultsSummaryTable input.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}#noFilesMessage{transition:opacity .3s ease}#resultFileInput{cursor:pointer}#resultFileInput::-webkit-file-upload-button{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;border:none;padding:.5rem 1rem;border-radius:var(--radius);cursor:pointer;-webkit-transition:all .2s ease;transition:all .2s ease}#resultFileInput::-webkit-file-upload-button:hover{background:linear-gradient(135deg,var(--primary-dark) 0%,#1E40AF 100%);transform:translateY(-1px);box-shadow:var(--shadow-sm)}#uploadedFilesList img{transition:transform .2s ease;cursor:pointer;border-radius:var(--radius)}#uploadedFilesList img:hover{transform:scale(1.05)}#uploadedFilesList .bi-file-earmark-excel,#uploadedFilesList .bi-file-earmark-pdf,#uploadedFilesList .bi-file-earmark-image{font-size:1.25rem;margin-right:.5rem}.spinner-border{color:var(--primary)}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}.list-group-item{border-color:var(--border-light);padding:.625rem .875rem;font-size:.813rem;transition:background-color .15s ease}.list-group-item:hover{background-color:var(--bg-hover)}.list-group-sm .list-group-item{padding:.5rem .75rem;font-size:.75rem}.dropdown-menu{border-radius:var(--radius);border:1px solid var(--border-color);box-shadow:var(--shadow-md);padding:.5rem}.dropdown-item{padding:.5rem .75rem;font-size:.813rem;border-radius:var(--radius-xs);transition:all .15s ease}.dropdown-item:hover{background-color:var(--bg-hover);color:var(--text-primary)}.dropdown-item.active,.dropdown-item:active{background-color:var(--primary);color:#fff}.nav-link{transition:all .15s ease}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-responsive::-webkit-scrollbar{height:8px}.table-responsive::-webkit-scrollbar-track{background:var(--bg-main);border-radius:4px}.table-responsive::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.table-responsive::-webkit-scrollbar-thumb:hover{background:#94a3b8}.dashboard-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.dashboard-title{font-size:1.25rem;font-weight:700;color:var(--primary-dark);display:flex;align-items:center;gap:.5rem}.dashboard-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.date-filter-group{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:#fff;border-radius:var(--radius);border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}.date-filter-group input[type=date]{border:1px solid var(--border-color);border-radius:var(--radius-xs);padding:.375rem .5rem;font-size:.75rem;background:#fff;color:var(--text-primary)}.date-filter-group input[type=date]:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px var(--primary-soft)}.date-filter-group .form-label{font-size:.688rem;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.btn-group .btn{font-size:.75rem;padding:.375rem .75rem;font-weight:500}#btnInventoryAlert{position:relative}#alertCountBadge{font-size:.625rem!important;min-width:18px!important;height:18px!important;padding:.125rem .375rem!important}.btn-outline-danger{font-weight:600}.card.border-0.shadow-sm.bg-light{background:#fff!important;border:1px solid var(--border-light)!important}.row.g-3.mb-4 .kpi-card{min-height:100px}.chart-container{position:relative;width:100%;height:100%;min-height:250px}#dashboard .page-header{background:#fff;border-radius:var(--radius-lg);padding:1.25rem 1.5rem;margin-bottom:1.5rem;box-shadow:var(--shadow-sm);border:1px solid var(--border-light)}@media (max-width: 768px){.dashboard-header{flex-direction:column;align-items:flex-start}.dashboard-actions{width:100%;justify-content:flex-start}.date-filter-group{width:100%;flex-wrap:wrap}}
