:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.login-container{min-height:100vh;width:100vw;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);background-attachment:fixed;padding:20px;position:relative;overflow:hidden}.login-container:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 25% 25%,rgba(255,255,255,.1) 2px,transparent 2px),radial-gradient(circle at 75% 75%,rgba(255,255,255,.05) 1px,transparent 1px);background-size:50px 50px,30px 30px;z-index:0}.login-card{background:#fff;padding:3rem;border-radius:15px;box-shadow:0 20px 40px #00000026;width:100%;max-width:450px;text-align:center;transition:transform .3s ease;position:relative;z-index:1}.login-card:hover{transform:translateY(-5px)}@media (min-width: 1024px){.login-container{padding:60px}.login-card{max-width:550px;padding:4rem}}@media (min-width: 1440px){.login-container{padding:80px}.login-card{max-width:650px;padding:5rem}}@media (min-width: 1920px){.login-card{max-width:750px;padding:6rem}}.login-header h1{color:#333;margin-bottom:.5rem;font-size:2rem}.login-header h2{color:#666;margin-bottom:2rem;font-weight:300;font-size:1.3rem}@media (min-width: 1024px){.login-header h1{font-size:2.5rem;margin-bottom:.8rem}.login-header h2{font-size:1.5rem;margin-bottom:3rem}}.login-form{text-align:left}.form-group{margin-bottom:2rem}.form-group label{display:block;margin-bottom:.8rem;color:#333;font-weight:500;font-size:1rem}.form-group input{width:100%;padding:1rem;border:2px solid #e1e1e1;border-radius:8px;font-size:1.1rem;transition:all .3s ease;box-sizing:border-box}.login-button,.demo-button,.test-button{width:100%;padding:1rem;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;margin-bottom:.8rem}@media (min-width: 1024px){.form-group{margin-bottom:2.5rem}.form-group label{font-size:1.1rem;margin-bottom:1rem}.form-group input{padding:1.2rem;font-size:1.2rem;border-radius:10px}.login-button,.demo-button,.test-button{padding:1.2rem;font-size:1.2rem;border-radius:10px;margin-bottom:1rem}}.login-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.login-button:hover{background:linear-gradient(135deg,#5a6fd8,#6a4190)}.login-button:disabled{background:#ccc;cursor:not-allowed}.demo-button{background:#f8f9fa;color:#666;border:1px solid #ddd}.demo-button:hover{background:#e9ecef}.test-button{background:#e3f2fd;color:#1976d2;border:1px solid #90caf9}.test-button:hover{background:#bbdefb}.error-message{background:#f8d7da;color:#721c24;padding:.75rem;border-radius:5px;margin-bottom:1rem;border:1px solid #f5c6cb}.success-message{background:#d4edda;color:#155724;padding:.75rem;border-radius:5px;margin-bottom:1rem;border:1px solid #c3e6cb}.login-footer{margin-top:1.5rem;padding-top:1rem;border-top:1px solid #eee}.login-footer p{color:#999;font-size:.9rem;margin:0}.settings-dropdown{position:relative;display:inline-block}.settings-button{background:#fff3;border:2px solid rgba(255,255,255,.3);color:#fff;width:48px;height:48px;border-radius:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.settings-button:hover{background:#ffffff4d;border-color:#ffffff80;transform:translateY(-2px);box-shadow:0 4px 20px #0003}.settings-icon{font-size:1.4rem;animation:rotate .3s ease}.settings-button:hover .settings-icon{animation:spin .5s ease}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(90deg)}}.settings-menu{position:absolute;top:100%;right:0;margin-top:.5rem;background:#fff;border-radius:16px;box-shadow:0 10px 40px #0003;border:1px solid #e2e8f0;min-width:320px;z-index:1000;overflow:hidden;animation:dropdownAppear .3s ease}@keyframes dropdownAppear{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.settings-header{padding:1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;justify-content:space-between;align-items:center}.settings-title{display:flex;align-items:center;gap:.75rem}.settings-title-icon{font-size:1.3rem}.settings-title h3{margin:0;font-size:1.1rem;font-weight:600}.admin-badge{background:#fff3;padding:.4rem .8rem;border-radius:20px;font-size:.8rem;font-weight:600;display:flex;align-items:center;gap:.4rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.crown-icon{font-size:.9rem}.settings-divider{height:1px;background:linear-gradient(90deg,transparent,#e2e8f0,transparent)}.settings-items{padding:.5rem 0}.settings-item{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;text-decoration:none;color:#333;transition:all .3s ease;border-left:3px solid transparent}.settings-item:hover{background:linear-gradient(90deg,#f8f9ff,#fff);border-left-color:#6f42c1;transform:translate(2px)}.settings-item-icon{font-size:1.5rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8f9ff,#e2e8f0);border-radius:10px;flex-shrink:0}.settings-item:hover .settings-item-icon{background:linear-gradient(135deg,#6f42c1,#553c9a);color:#fff;transform:scale(1.1)}.settings-item-content{flex:1}.settings-item-title{font-weight:600;color:#333;margin-bottom:.2rem;font-size:.95rem}.settings-item-description{color:#666;font-size:.8rem;line-height:1.3}.settings-item-arrow{color:#ccc;font-size:1.2rem;transition:all .3s ease}.settings-item:hover .settings-item-arrow{color:#6f42c1;transform:translate(3px)}.settings-footer{padding:1rem 1.5rem;background:#f8f9fa;border-top:1px solid #e2e8f0}.settings-footer-text{display:flex;align-items:center;gap:.5rem;color:#666;font-size:.8rem;justify-content:center}.shield-icon{font-size:1rem}.admin-section-header{padding:.8rem 1.25rem;background:#667eea1a;color:#667eea;font-weight:600;font-size:.85rem;display:flex;align-items:center;gap:.5rem;margin:.5rem 0;border-radius:6px;text-transform:uppercase;letter-spacing:.5px}.admin-section-header .crown-icon{font-size:1rem}.admin-item{background:#667eea0d;border-left:3px solid #667eea}.admin-item:hover{background:#667eea1a;border-left-color:#5a6fd8}.superadmin-section{background:linear-gradient(135deg,#8a2be226,#daa52026);color:#8a2be2;border:1px solid rgba(138,43,226,.2)}.superadmin-glow{animation:superadminGlow 2s ease-in-out infinite;font-weight:700;text-shadow:0 0 10px rgba(138,43,226,.3)}@keyframes superadminGlow{0%,to{color:#8a2be2;text-shadow:0 0 10px rgba(138,43,226,.3)}50%{color:#9d4edd;text-shadow:0 0 15px rgba(138,43,226,.5)}}.superadmin-item{background:linear-gradient(90deg,#8a2be214,#daa52014);border-left:3px solid #8a2be2;position:relative;overflow:hidden}.superadmin-item:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#8a2be21a,#daa5201a);opacity:0;transition:opacity .3s ease}.superadmin-item:hover:before{opacity:1}.superadmin-item:hover{background:linear-gradient(90deg,#8a2be226,#daa52026);border-left-color:#9d4edd;box-shadow:0 4px 12px #8a2be233}.superadmin-item .settings-item-icon{background:linear-gradient(135deg,#8a2be233,#daa52033);border:1px solid rgba(138,43,226,.3)}.superadmin-item:hover .settings-item-icon{background:linear-gradient(135deg,#8a2be2,#daa520);color:#fff;transform:scale(1.15) rotate(5deg);box-shadow:0 0 15px #8a2be266}.superadmin-item .settings-item-title{color:#6a1b9a;font-weight:700}.superadmin-item:hover .settings-item-arrow{color:#8a2be2;transform:translate(5px)}@media (max-width: 768px){.settings-menu{min-width:280px;right:-1rem}.settings-item{padding:.8rem 1rem}.settings-item-icon{width:35px;height:35px;font-size:1.3rem}.settings-header{padding:1rem}.settings-title h3{font-size:1rem}}.dashboard{min-height:100vh;background:#f5f5f5}.dashboard-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1.5rem 0;box-shadow:0 2px 10px #0000001a}.header-content{max-width:1600px;margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;align-items:center}.header-content h1{margin:0;font-size:2rem}@media (min-width: 1024px){.dashboard-header{padding:2rem 0}.header-content{padding:0 3rem}.header-content h1{font-size:2.5rem}}.user-info{display:flex;align-items:center;gap:1rem}.logout-btn{background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3);padding:.5rem 1rem;border-radius:5px;cursor:pointer;transition:background .3s ease}.logout-btn:hover{background:#ffffff4d}.dashboard-main{max-width:1600px;margin:0 auto;padding:2rem}@media (min-width: 1024px){.dashboard-main{padding:3rem}}@media (min-width: 1440px){.dashboard-main{padding:4rem}}.dashboard-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;color:#666}.spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.error-banner{background:#f8d7da;color:#721c24;padding:1rem;border-radius:5px;margin-bottom:2rem;border:1px solid #f5c6cb}.stats-section,.navigation-section{margin-bottom:3rem}.navigation-section h2{color:#333;margin-bottom:1.5rem;font-size:1.5rem}.navigation-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;margin-bottom:2rem}.nav-card{background:#fff;padding:2rem;border-radius:15px;box-shadow:0 4px 15px #0000001a;display:flex;align-items:center;gap:1.5rem;transition:all .3s ease;text-decoration:none;color:inherit;cursor:pointer}.nav-card:hover{transform:translateY(-5px);box-shadow:0 8px 25px #00000026}.nav-card.coming-soon{opacity:.6;cursor:not-allowed}.nav-card.coming-soon:hover{transform:none;box-shadow:0 4px 15px #0000001a}.nav-card.admin-card{border:2px solid #4CAF50;background:linear-gradient(135deg,#f8fff8,#e8f5e8)}.nav-card.admin-card:hover{transform:translateY(-5px);box-shadow:0 8px 25px #4caf5033;border-color:#45a049}.nav-card.admin-card .nav-icon{background:linear-gradient(135deg,#4caf50,#45a049)}.nav-card.admin-card .nav-content h3{color:#2e7d32;font-weight:600}.nav-card.admin-card .nav-content p{color:#4a4a4a}.nav-card.reports-card{border:2px solid #17a2b8;background:linear-gradient(135deg,#f0fbff,#e6f7ff)}.nav-card.reports-card:hover{transform:translateY(-5px);box-shadow:0 8px 25px #17a2b833;border-color:#138496}.nav-card.reports-card .nav-icon{background:linear-gradient(135deg,#17a2b8,#138496)}.nav-card.reports-card .nav-content h3{color:#0c5460;font-weight:600}.nav-card.reports-card .nav-content p{color:#4a4a4a}.nav-card.tests-card{border:2px solid #9c27b0;background:linear-gradient(135deg,#faf5fb,#f3e5f5)}.nav-card.tests-card:hover{transform:translateY(-5px);box-shadow:0 8px 25px #9c27b033;border-color:#7b1fa2}.nav-card.tests-card .nav-icon{background:linear-gradient(135deg,#9c27b0,#7b1fa2)}.nav-card.tests-card .nav-content h3{color:#6a1b9a;font-weight:600}.nav-card.tests-card .nav-content p{color:#4a4a4a}.nav-icon{font-size:3rem;width:80px;height:80px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;color:#fff;flex-shrink:0}.nav-content h3{margin:0 0 .5rem;color:#333;font-size:1.3rem}.nav-content p{margin:0;color:#666;font-size:.95rem;line-height:1.4}.role-badge{margin-top:.5rem;padding:.25rem .75rem;border-radius:20px;font-size:.8rem;font-weight:600;text-align:center;display:inline-block}.role-badge.admin{background:linear-gradient(135deg,#ff6b6b,#ee5a52);color:#fff;box-shadow:0 2px 8px #ff6b6b4d}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;margin-bottom:3rem}@media (min-width: 1024px){.stats-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2.5rem}}@media (min-width: 1440px){.stats-grid{grid-template-columns:repeat(4,1fr);gap:3rem}}.stat-card{background:#fff;padding:1.5rem;border-radius:10px;box-shadow:0 2px 10px #0000001a;display:flex;align-items:center;gap:1rem;transition:transform .2s ease}.stat-icon{font-size:2rem;width:60px;height:60px;display:flex;align-items:center;justify-content:center;background:#f8f9fa;border-radius:50%}.stat-content h3{margin:0 0 .5rem;color:#666;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.stat-number{font-size:2rem;font-weight:700;color:#333}.dashboard-content{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem}@media (min-width: 1024px){.dashboard-content{gap:3rem}}@media (min-width: 1440px){.dashboard-content{grid-template-columns:2fr 1fr;gap:4rem}}.activities-section,.distribution-section{background:#fff;padding:2rem;border-radius:15px;box-shadow:0 4px 15px #0000001a;transition:transform .2s ease}.activities-section:hover,.distribution-section:hover{transform:translateY(-2px)}@media (min-width: 1024px){.activities-section,.distribution-section{padding:2.5rem}}.activities-section h2,.distribution-section h2{margin:0 0 1.5rem;color:#333;font-size:1.3rem}.activities-list{max-height:400px;overflow-y:auto}.activity-item{padding:1rem;border-bottom:1px solid #eee;margin-bottom:1rem}.activity-item:last-child{border-bottom:none;margin-bottom:0}.activity-type{font-weight:700;color:#667eea;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.activity-description{margin:.5rem 0;color:#333}.activity-time{font-size:.8rem;color:#999}.blood-types-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem}.blood-type-card{background:#f8f9fa;padding:1rem;border-radius:8px;text-align:center;border:2px solid transparent;transition:border-color .3s ease}.blood-type-card:hover{border-color:#667eea}.blood-type{font-size:1.2rem;font-weight:700;color:#dc3545;margin-bottom:.5rem}.blood-count{color:#666;font-size:.9rem}@media (max-width: 1023px) and (min-width: 769px){.dashboard-content{grid-template-columns:1fr;gap:2rem}.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.header-content{flex-direction:column;gap:1rem;text-align:center;padding:0 1rem}.header-content h1{font-size:1.8rem}.dashboard-main{padding:1rem}.dashboard-content{grid-template-columns:1fr;gap:1.5rem}.stats-grid{grid-template-columns:1fr;gap:1rem}.blood-types-grid{grid-template-columns:repeat(2,1fr)}.activities-section,.distribution-section{padding:1.5rem}}.import-receipt-modal-overlay{position:fixed;inset:0;background:#0009;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.import-receipt-modal{background:#fff;border-radius:12px;box-shadow:0 20px 40px #0003;width:90%;max-width:600px;max-height:90vh;overflow:hidden;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.import-receipt-modal-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1.5rem;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e0e0e0}.import-receipt-modal-header h2{margin:0;font-size:1.4rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.close-button{background:#fff3;border:none;color:#fff;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.2rem;transition:all .3s ease}.close-button:hover:not(:disabled){background:#ffffff4d;transform:scale(1.1)}.close-button:disabled{opacity:.6;cursor:not-allowed}.import-receipt-modal-content{padding:2rem;max-height:calc(90vh - 100px);overflow-y:auto}.loading-indicator{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem;background:#007bff1a;border-radius:8px;margin-bottom:1rem;color:#007bff;font-size:.9rem}.loading-indicator .spinner{width:16px;height:16px;border:2px solid #e3f2fd;border-top:2px solid #007bff;border-radius:50%;animation:spin 1s linear infinite}.import-receipt-form{display:flex;flex-direction:column;gap:1.5rem}.form-row{display:flex;gap:1rem}.form-group{flex:1;display:flex;flex-direction:column}.form-group label{margin-bottom:.5rem;font-weight:500;color:#000;font-size:.9rem;display:flex;align-items:center;gap:.25rem}.required{color:#e53935;font-weight:700}.form-group input,.form-group select{padding:.75rem;border:2px solid #e9ecef;border-radius:8px;font-size:1rem;transition:all .3s ease;background:#fff;color:#000}.form-group input:focus,.form-group select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled,.form-group select:disabled{background:#f8f9fa;opacity:.7;cursor:not-allowed;color:#000}.form-group select{cursor:pointer;color:#000}.form-group select:disabled{cursor:not-allowed}.form-info{background:#f8f9fa;padding:1rem;border-radius:8px;border:1px solid #e9ecef}.info-item{display:flex;align-items:center;gap:.5rem}.info-label{font-weight:500;color:#000;font-size:.9rem}.info-value{color:#000;font-size:.9rem}.form-actions{display:flex;gap:1rem;justify-content:flex-end;padding-top:1rem;border-top:1px solid #e9ecef}.btn{padding:.875rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;text-align:center;display:flex;align-items:center;justify-content:center;gap:.5rem;min-width:120px}.btn-cancel{background:#6c757d;color:#fff}.btn-cancel:hover:not(:disabled){background:#5a6268;transform:translateY(-2px);box-shadow:0 4px 12px #6c757d4d}.btn-save{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-save:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.btn-save:disabled{background:#e9ecef;color:#6c757d}@media (max-width: 768px){.import-receipt-modal{width:95%;margin:1rem}.import-receipt-modal-content{padding:1.5rem}.import-receipt-modal-header{padding:1rem}.import-receipt-modal-header h2{font-size:1.2rem}.form-row{flex-direction:column;gap:0}.form-actions{flex-direction:column}.btn{width:100%;justify-content:center}}@media (max-width: 480px){.import-receipt-modal{width:98%;margin:.5rem}.import-receipt-modal-content{padding:1rem}}.blood-products{padding:1rem;background:#f8f9fa;min-height:100vh}.blood-products-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;background:#6fc448;padding:.75rem 1rem;border-radius:10px;box-shadow:0 2px 10px #0000001a;flex-wrap:wrap;gap:.5rem}.header-title{display:flex;flex-direction:column;gap:.5rem}.blood-products-header h1{margin:0;color:#333;font-size:1.5rem}.header-stats{display:flex;gap:1rem;font-size:.85rem}.stat-item{color:#666;font-weight:500}.header-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;justify-content:flex-end;flex:1}.global-receipt-selector{display:flex;align-items:center;gap:.5rem;background:#f8f9fa;padding:.5rem 1rem;border-radius:8px;border:1px solid #dee2e6}.global-receipt-selector label{font-size:.9rem;font-weight:500;margin:0;white-space:nowrap;color:#495057}.global-receipt-select{background:#fff;border:1px solid #ced4da;border-radius:6px;padding:.4rem .8rem;font-size:.9rem;color:#333;min-width:200px;transition:all .2s ease}.global-receipt-select:disabled{background:#f5f5f5;cursor:not-allowed;opacity:.7;color:#6c757d}.global-receipt-select:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.selected-receipt-display{background:#28a7451a;color:#28a745;padding:.3rem .6rem;border-radius:4px;font-size:.8rem;font-weight:500;border:1px solid rgba(40,167,69,.2)}.remember-global-checkbox{display:flex;align-items:center;gap:.3rem;font-size:.85rem;cursor:pointer;color:#495057}.remember-global-checkbox input[type=checkbox]{margin:0}.remember-global-checkbox span{white-space:nowrap}.current-receipt-info{background:#007bff1a;padding:.4rem .8rem;border-radius:6px;font-size:.85rem;font-weight:500;border:1px solid rgba(0,123,255,.2);color:#007bff}.btn{padding:.5rem 1rem;border:none;border-radius:5px;font-weight:500;cursor:pointer;transition:all .3s ease;font-size:.8rem;white-space:nowrap;flex-shrink:0;min-width:fit-content}.btn-export{background:#28a745;color:#fff}.btn-export:hover{background:#218838}.btn-refresh{background:#007bff;color:#fff}.btn-refresh:hover{background:#0056b3}.btn-back{background:#6c757d;color:#fff;font-size:.9rem;padding:.6rem 1rem;display:flex;align-items:center;gap:.5rem}.btn-back:hover{background:#5a6268;transform:translateY(-1px);box-shadow:0 2px 8px #6c757d4d}.btn-import-receipt{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-import-receipt:hover{background:linear-gradient(135deg,#5a6fd8,#6a4190);transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.btn-qr{background:#6f42c1;color:#fff}.btn-qr:hover{background:#5a2d91}.btn-import-receipt{background:linear-gradient(135deg,#28a745,#20c997);color:#fff}.btn-import-receipt:hover{background:linear-gradient(135deg,#218838,#1ea080);transform:translateY(-2px);box-shadow:0 4px 12px #28a7454d}.qr-scanner-section{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;margin-bottom:2rem;border:2px solid #6f42c1}.qr-scanner-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:linear-gradient(135deg,#6f42c1,#5a2d91);color:#fff;border-radius:8px 8px 0 0}.qr-scanner-header h3{margin:0;font-size:1.1rem}.close-btn{background:#fff3;border:none;color:#fff;font-size:1.2rem;width:30px;height:30px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .3s ease}.close-btn:hover{background:#ffffff4d}.qr-input-container{padding:1.5rem}.qr-instructions{background:#f8f9fa;padding:1rem;border-radius:8px;margin-bottom:1.5rem;border-left:4px solid #6f42c1}.qr-instructions p{margin:0 0 .5rem;color:#6f42c1;font-weight:600}.qr-instructions ul{margin:0;padding-left:1.5rem;color:#666}.qr-instructions li{margin-bottom:.25rem}.qr-input-group{display:flex;gap:1rem;align-items:center;margin-bottom:1rem}.qr-input{flex:1;padding:1rem;border:2px solid #ddd;border-radius:8px;font-size:1rem;font-family:Courier New,monospace;transition:border-color .3s ease}.qr-input:focus{outline:none;border-color:#6f42c1;box-shadow:0 0 0 3px #6f42c11a}.qr-input:disabled{background:#f8f9fa;color:#666}.btn-process-qr{background:#28a745;color:#fff;padding:1rem 1.5rem;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease;white-space:nowrap}.btn-process-qr:hover:not(:disabled){background:#218838;transform:translateY(-1px)}.btn-process-qr:disabled{background:#6c757d;cursor:not-allowed;transform:none}.processing-indicator{display:flex;align-items:center;gap:1rem;padding:1rem;background:#e3f2fd;border-radius:8px;color:#1976d2;border:1px solid #90caf9}.processing-indicator .spinner{width:20px;height:20px;border:2px solid #e3f2fd;border-top:2px solid #1976d2;border-radius:50%;animation:spin 1s linear infinite}.manual-entry-section{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;margin-bottom:2rem;border:2px solid #28a745}.manual-entry-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:linear-gradient(135deg,#28a745,#218838);color:#fff;border-radius:8px 8px 0 0}.manual-entry-header h3{margin:0;font-size:1.1rem}.manual-entry-container{padding:1.5rem}.manual-entry-grid{display:flex;flex-direction:column;gap:1.5rem}.manual-entry-group{background:#f8f9fa;padding:1.5rem;border-radius:8px;border:1px solid #dee2e6}.manual-entry-group h4{margin:0 0 1rem;color:#28a745;font-size:1rem;font-weight:600;border-bottom:2px solid #28a745;padding-bottom:.5rem}.manual-entry-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.manual-entry-row:last-child{margin-bottom:0}.manual-entry-field{display:flex;flex-direction:column;gap:.5rem}.manual-entry-field label{font-weight:600;color:#333;font-size:.9rem}.manual-input,.manual-select{padding:.75rem;border:1px solid #ced4da;border-radius:6px;font-size:.9rem;transition:border-color .3s ease,box-shadow .3s ease}.manual-input:focus,.manual-select:focus{outline:none;border-color:#28a745;box-shadow:0 0 0 3px #28a7451a}.manual-input:disabled,.manual-select:disabled{background:#f8f9fa;color:#666;cursor:not-allowed}.input-with-button{display:flex;gap:.5rem}.input-with-button .manual-input{flex:1}.btn-generate{background:#6f42c1;color:#fff;border:none;padding:.75rem 1rem;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .3s ease;white-space:nowrap}.btn-generate:hover:not(:disabled){background:#5a2d91;transform:translateY(-1px)}.btn-generate:disabled{background:#6c757d;cursor:not-allowed;transform:none}.manual-entry-actions{display:flex;gap:1rem;padding-top:1rem;border-top:1px solid #dee2e6;justify-content:flex-end}.btn-submit-manual{background:#28a745;color:#fff;border:none;padding:1rem 2rem;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-submit-manual:hover:not(:disabled){background:#218838;transform:translateY(-1px);box-shadow:0 4px 12px #28a7454d}.btn-submit-manual:disabled{background:#6c757d;cursor:not-allowed;transform:none}.btn-reset-manual{background:#6c757d;color:#fff;border:none;padding:1rem 1.5rem;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-reset-manual:hover:not(:disabled){background:#5a6268;transform:translateY(-1px)}.btn-reset-manual:disabled{background:#adb5bd;cursor:not-allowed;transform:none}.current-receipt-info{background:#fff3;padding:.5rem 1rem;border-radius:6px;font-size:.85rem;font-weight:500;border:1px solid rgba(255,255,255,.3)}@media (max-width: 768px){.manual-entry-row{grid-template-columns:1fr}.manual-entry-actions{flex-direction:column}.btn-submit-manual,.btn-reset-manual{width:100%}}.blood-products-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:400px;color:#666;background:#fff;border-radius:10px;margin:2rem;box-shadow:0 2px 10px #0000001a}.blood-products-loading .loading-tip{font-size:.85rem;color:#888;margin-top:.5rem;text-align:center}.spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #dc3545;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.error-with-retry{text-align:center;margin-top:1rem;padding:1rem;background:#f8d7da;border:1px solid #f5c6cb;border-radius:8px;color:#721c24}.btn-retry{background:#dc3545;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;margin-top:.5rem;transition:background-color .2s}.btn-retry:hover{background:#c82333}.error-message{background:#f8d7da;color:#721c24;padding:1rem;border-radius:5px;margin-bottom:1rem;border:1px solid #f5c6cb}.filters-section{background:#fff;padding:1rem;border-radius:10px;box-shadow:0 2px 10px #0000001a;margin-bottom:2rem}.filters-row{display:flex;gap:1rem;margin-bottom:1.5rem;align-items:flex-start;flex-wrap:wrap;width:100%}.filters-row:last-child{margin-bottom:0}.filter-section-group{display:flex;gap:1rem;flex-wrap:nowrap;align-items:flex-start;min-width:0;flex:1}.filter-section-group.date-section{flex:0 1 auto;min-width:250px}.filter-section-group.status-section{flex:0 1 auto;min-width:300px}.filter-section-group.blood-type-section{flex:0 1 auto;min-width:250px}.filter-group{flex:1;min-width:auto;width:100%}.filter-group label{display:block;font-weight:600;color:#333;margin-bottom:.5rem}.date-range{display:flex;align-items:center;gap:.5rem}.date-range input{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.checkbox-group{display:flex;gap:1rem}.checkbox-label{display:flex!important;align-items:center;gap:.5rem;font-weight:400!important;cursor:pointer;margin-bottom:.5rem}.checkbox-label input[type=checkbox]{margin:0}.count-badge{background-color:#6c757d;color:#fff;font-size:11px;padding:2px 6px;border-radius:10px;margin-left:auto;font-weight:500;min-width:20px;text-align:center}.blood-type-filters{display:flex;gap:1rem;flex-wrap:wrap}.checkbox-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;max-height:120px;overflow-y:auto;border:1px solid #eee;padding:.75rem;border-radius:4px;background:#fafafa}.products-summary{display:flex;gap:2rem;margin-bottom:2rem;flex-wrap:wrap}.summary-item{background:#fff;padding:1rem 1.5rem;border-radius:8px;box-shadow:0 2px 5px #0000001a;display:flex;flex-direction:column;min-width:150px}.summary-label{font-size:.9rem;color:#666;margin-bottom:.5rem}.summary-value{font-size:1.5rem;font-weight:700;color:#333}.summary-value.expired{color:#dc3545}.summary-value.unused{color:#28a745}.products-table-container{position:relative;background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;overflow:hidden;overflow-x:auto}.table-loading-overlay{position:absolute;inset:0;background:#ffffffe6;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:10;font-size:.9rem;color:#6f42c1;gap:.5rem}.table-loading-overlay .spinner{width:24px;height:24px;border:2px solid #f3f3f3;border-top:2px solid #6f42c1;border-radius:50%;animation:spin 1s linear infinite}.products-table{width:100%;border-collapse:collapse;font-size:.9rem}.products-table th{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.75rem .5rem;text-align:left;font-weight:600;white-space:nowrap;font-size:.85rem}.products-table td{padding:.5rem;border-bottom:1px solid #eee;vertical-align:middle;color:#333;background:#fff;font-size:.85rem}.products-table tbody tr{background:#fff;color:#333}.products-table tbody tr:hover{background:#f8f9fa!important;color:#333!important}.expired-row{background:#fff5f5!important;color:#333!important}.expired-row:hover{background:#fed7d7!important;color:#333!important}.used-row{background:#f0f0f0!important;color:#333!important;opacity:.8}.used-row:hover{background:#e6e6e6!important;color:#333!important}.product-code{font-family:Courier New,monospace;font-weight:700;color:#06c!important}.blood-type{font-weight:700;color:#dc3545!important;text-align:center}.expired-date{color:#dc3545!important;font-weight:700}.status-badge{padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:600;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.1)}.status-unused{background:#28a745!important;color:#fff!important}.status-reserved{background:#007bff!important;color:#fff!important;font-weight:600}.status-used{background:#17a2b8!important;color:#fff!important}.status-returned{background:#ffc107!important;color:#000!important;font-weight:600}.status-returned-late{background:#fd7e14!important;color:#fff!important}.status-destroyed{background:#dc3545!important;color:#fff!important}.status-expired{background:#6c757d!important;color:#fff!important;font-weight:600}.no-data{text-align:center;padding:3rem;color:#666;background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a}.no-data p{font-size:1.1rem;margin:0}.pagination-container{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:1rem 1.5rem;border-radius:10px;box-shadow:0 2px 10px #0000001a;margin-top:1rem}.pagination-info{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:#666}.items-per-page-select{padding:.25rem .5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.pagination-controls{display:flex;align-items:center;gap:.5rem}.pagination-btn{padding:.5rem .75rem;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;transition:all .2s ease;font-size:.9rem}.pagination-btn:hover:not(:disabled){background:#f8f9fa;border-color:#007bff}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.page-numbers{display:flex;gap:.25rem}.page-btn{padding:.5rem .75rem;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;transition:all .2s ease;font-size:.9rem;min-width:40px}.page-btn:hover{background:#f8f9fa;border-color:#007bff}.page-btn.active{background:#007bff;color:#fff;border-color:#007bff}@media (max-width: 768px){.blood-products{padding:1rem}.blood-products-header{flex-direction:column;gap:1rem;text-align:center;padding:1rem}.header-left{flex-direction:column;align-items:center;gap:1rem;width:100%}.header-title{align-items:center}.header-stats{justify-content:center}.header-actions{justify-content:center;flex-wrap:wrap;width:100%}.global-receipt-selector{width:100%;flex-wrap:wrap;justify-content:center}.global-receipt-select{min-width:150px;flex:1}.filters-row{flex-direction:column;gap:1rem}.blood-type-filters{grid-template-columns:repeat(2,1fr)}.checkbox-grid{grid-template-columns:1fr}.products-table{font-size:.8rem}.products-table th,.products-table td{padding:.5rem .25rem}.pagination-container{flex-direction:column;gap:1rem;align-items:center}.pagination-controls{order:2}.page-numbers{flex-wrap:wrap}}@media (max-width: 480px){.header-actions{gap:.5rem}.global-receipt-selector{flex-direction:column;width:100%;text-align:center}.global-receipt-select{width:100%;min-width:unset}.btn{padding:.4rem .6rem;font-size:.7rem;min-width:80px}.btn-back{width:100%;justify-content:center;margin-bottom:.5rem}}@media (max-width: 1024px) and (min-width: 769px){.header-actions{gap:.75rem}.global-receipt-selector{flex-wrap:wrap}.global-receipt-select{min-width:180px}.btn{padding:.4rem .8rem;font-size:.75rem}}@media (min-width: 1024px){.blood-products{padding:3rem}.filters-section{padding:2rem}.checkbox-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}}@media (min-width: 1440px){.filters-row,.products-summary{gap:3rem}}.manual-entry-modal{position:fixed;inset:0;z-index:1000;display:flex;justify-content:center;align-items:center;padding:1rem}.modal-overlay{position:absolute;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{position:relative;background:#fff;border-radius:12px;box-shadow:0 20px 40px #00000026;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.manual-entry-content{width:100%;max-width:800px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e9ecef;background:linear-gradient(135deg,#007bff,#0056b3);color:#fff}.modal-header h3{margin:0;font-size:1.25rem;font-weight:600}.remembered-receipt-indicator{background:#ffffff26;padding:.4rem .8rem;border-radius:20px;font-size:.8rem;font-weight:500;border:1px solid rgba(255,255,255,.2);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.close-btn{background:#ffffff1a;border:none;color:#fff;width:32px;height:32px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;font-size:1.1rem}.close-btn:hover{background:#fff3;transform:scale(1.1)}.modal-body{padding:1.5rem;overflow-y:auto;flex:1}.manual-entry-info{margin-bottom:1.5rem}.info-box{background:linear-gradient(135deg,#e3f2fd,#f3e5f5);border:1px solid #bbdefb;border-radius:8px;padding:1rem}.info-box h5{margin:0 0 .75rem;color:#1976d2;font-size:.95rem;font-weight:600}.info-box ul{margin:0;padding-left:1.2rem;list-style-type:none}.info-box li{margin-bottom:.5rem;color:#424242;font-size:.85rem;line-height:1.4;position:relative}.info-box li:before{content:"→";position:absolute;left:-1rem;color:#1976d2;font-weight:700}.form-grid{display:flex;flex-direction:column;gap:1.5rem}.form-section{background:#f8f9fa;padding:1.25rem;border-radius:8px;border:1px solid #e9ecef}.form-section h4{margin:0 0 1rem;color:#495057;font-size:1rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.form-row:last-child{margin-bottom:0}.form-group label{font-weight:500;color:#495057;font-size:.9rem}.input-with-button{display:flex;gap:.5rem;align-items:stretch}.input-with-button .form-input{flex:1}.import-receipt-container{display:flex;flex-direction:column;gap:.5rem}.remember-checkbox{display:flex;align-items:center}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.85rem;color:#6c757d;margin:0}.checkbox-label input[type=checkbox]{margin:0;transform:scale(.9)}.checkbox-text{-webkit-user-select:none;user-select:none}.btn-generate{background:#17a2b8;color:#fff;border:none;padding:.75rem 1rem;border-radius:6px;font-size:.8rem;white-space:nowrap;transition:all .3s ease}.btn-generate:hover{background:#138496;transform:translateY(-1px)}.form-input,.form-select,.form-textarea{padding:.75rem;border:2px solid #e9ecef;border-radius:6px;font-size:.9rem;transition:all .3s ease;background:#fff}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.form-textarea{resize:vertical;min-height:80px}.modal-footer{display:flex;justify-content:flex-end;gap:1rem;padding:1.5rem;border-top:1px solid #e9ecef;background:#f8f9fa}.btn-manual-entry{background:#28a745;color:#fff}.btn-manual-entry:hover{background:#218838;transform:translateY(-1px);box-shadow:0 2px 8px #28a7454d}.btn-primary{background:#007bff;color:#fff}.btn-primary:hover:not(:disabled){background:#0056b3;transform:translateY(-1px);box-shadow:0 2px 8px #007bff4d}.btn-secondary:hover:not(:disabled){background:#5a6268}.btn-reset{background:#ffc107;color:#212529}.btn-reset:hover:not(:disabled){background:#e0a800}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}@media (max-width: 768px){.manual-entry-content{max-width:95vw;margin:.5rem}.form-row{grid-template-columns:1fr}.modal-header,.modal-body,.modal-footer{padding:1rem}.modal-footer{flex-direction:column}.modal-footer .btn{width:100%}}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.9) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.manual-entry-modal .modal-content{animation:modalSlideIn .3s ease-out}.status-badge{padding:4px 8px;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-unused{background-color:#e3f2fd;color:#1976d2}.status-used{background-color:#f3e5f5;color:#7b1fa2}.status-returned{background-color:#fff3e0;color:#f57c00}.status-returned-late{background-color:#fce4ec;color:#c2185b}.status-destroyed{background-color:#ffebee;color:#d32f2f}.status-tested{background:#6f42c1!important;color:#fff!important}.status-con-dao{background:#00695c!important;color:#fff!important;border:1px solid #4db6ac;font-weight:600}.con-dao-row{background-color:#e0f2f1!important;border-left:4px solid #00695c}.con-dao-row:hover{background-color:#b2dfdb!important}.btn-con-dao{background-color:#00695c;color:#fff;border:none;padding:4px 8px;border-radius:4px;font-size:.75rem;cursor:pointer;transition:background-color .2s ease;white-space:nowrap}.btn-con-dao:hover{background-color:#004d40}.btn-delete{background-color:#dc3545;color:#fff;border:none;padding:4px 8px;border-radius:4px;font-size:.75rem;cursor:pointer;transition:background-color .2s ease;white-space:nowrap;margin-left:4px}.btn-delete:hover{background-color:#c82333}.con-dao-label{color:#00695c;font-size:.75rem;font-weight:600;white-space:nowrap}.products-table th:last-child,.products-table td:last-child{text-align:center;min-width:120px;white-space:nowrap}.scanner-mode-toggle{display:flex;gap:1rem;padding:1rem 1.5rem;background:#f8f9fa;border-bottom:2px solid #e9ecef}.mode-btn{flex:1;padding:.75rem 1.5rem;border:2px solid #ddd;background:#fff;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:.5rem}.mode-btn:hover{border-color:#6f42c1;background:#f8f9fa}.mode-btn.active{background:#6f42c1;color:#fff;border-color:#6f42c1}.camera-scanner-container{padding:1.5rem}.camera-video-container{position:relative;width:100%;max-width:640px;margin:1.5rem auto;border-radius:12px;overflow:hidden;box-shadow:0 4px 20px #00000026;background:#000}.qr-video{width:100%;height:auto;display:block;max-height:480px;object-fit:cover}.camera-processing-overlay{position:absolute;inset:0;background:#000000b3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:#fff;font-weight:600}.camera-processing-overlay .spinner{width:40px;height:40px;border:4px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}.camera-controls{display:flex;justify-content:center;gap:1rem;margin-top:1.5rem}.btn-stop-camera{background:#dc3545;color:#fff;padding:.75rem 2rem;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-stop-camera:hover{background:#c82333;transform:translateY(-1px)}.qr-preselection{background:#fff3cd;border:2px solid #ffc107;border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}.qr-preselection-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1rem}.qr-preselection-field{display:flex;flex-direction:column;gap:.5rem}.qr-preselection-field label{font-weight:600;color:#333;font-size:.95rem}.qr-select{padding:.75rem;border:2px solid #ffc107;border-radius:6px;font-size:1rem;background:#fff;cursor:pointer;transition:all .3s ease}.qr-select:hover{border-color:#ffb300}.qr-select:focus{outline:none;border-color:#ff9800;box-shadow:0 0 0 3px #ff980033}.qr-select:disabled{background:#f5f5f5;cursor:not-allowed;opacity:.6}.qr-warning{background:#fff;border:2px solid #ff9800;border-radius:6px;padding:1rem;color:#d84315;font-size:.95rem;text-align:center}.qr-warning strong{color:#bf360c}@media (max-width: 768px){.qr-scanner-section{padding:1rem;max-height:none}.qr-scanner-header{flex-direction:column;align-items:flex-start;gap:.75rem}.qr-scanner-header h3{font-size:1.1rem}.qr-scanner-header .close-btn{position:absolute;top:1rem;right:1rem}.qr-preselection{padding:1rem}.qr-preselection-row{grid-template-columns:1fr;gap:1rem}.qr-select{font-size:16px;padding:.875rem}.scanner-mode-toggle{flex-direction:column;gap:.75rem}.mode-btn{width:100%;padding:1rem;font-size:1rem}.qr-input-container{padding:1rem}.qr-instructions{padding:.75rem;font-size:.9rem}.qr-instructions p{margin:0}.qr-input-group{flex-direction:column;gap:.75rem}.qr-input{width:100%;font-size:16px;padding:1rem}.btn-process-qr{width:100%;padding:1rem;font-size:1.1rem}.camera-scanner-container{padding:1rem}.camera-video-container{height:300px;margin:1rem 0}.qr-video{border-radius:8px}.camera-controls{flex-direction:column;gap:.75rem}.btn-stop-camera{width:100%;padding:1rem;font-size:1.1rem}.global-receipt-selector{flex-direction:column;gap:.5rem;width:100%}.global-receipt-select{width:100%;font-size:16px}.blood-products-header{flex-direction:column;gap:1rem}.header-actions{width:100%;flex-wrap:wrap;justify-content:space-between}.header-actions .btn{flex:1 1 calc(50% - .5rem);min-width:120px;padding:.75rem 1rem;font-size:.95rem}.camera-processing-overlay{padding:2rem}.camera-processing-overlay .spinner{width:50px;height:50px;border-width:4px}.qr-warning{padding:.875rem;font-size:.9rem}.manual-entry-section{padding:1rem}.manual-entry-container{padding:0}.manual-entry-row{grid-template-columns:1fr;gap:1rem}.manual-entry-actions{flex-direction:column;gap:.75rem}.manual-entry-actions .btn{width:100%;padding:1rem}}@media (max-width: 480px){.qr-scanner-header h3{font-size:1rem}.qr-preselection,.qr-select{padding:.75rem}.camera-video-container{height:250px}.mode-btn{padding:.875rem;font-size:.95rem}.qr-instructions{font-size:.85rem;padding:.5rem}.header-actions .btn{font-size:.875rem;padding:.625rem .75rem}}@media (max-width: 768px) and (orientation: landscape){.camera-video-container{height:200px}.qr-scanner-section{max-height:90vh;overflow-y:auto}}@media (hover: none) and (pointer: coarse){.mode-btn,.btn-process-qr,.btn-stop-camera,.qr-select{min-height:48px}.mode-btn:hover,.qr-select:hover,.btn-stop-camera:hover{transform:none}.mode-btn:active,.btn-process-qr:active,.btn-stop-camera:active{transform:scale(.98);opacity:.9}}body{background-color:#fff!important;color:#333!important}.blood-product-management{padding:20px;max-width:1400px;margin:0 auto;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:#fff;color:#333;min-height:100vh}.header{margin-bottom:30px;padding:20px;background:#7638bd;border-radius:8px;border:1px solid #e9ecef}.header-left{display:flex;align-items:center;gap:20px;margin-bottom:20px}.btn-back{display:flex;align-items:center;gap:8px;padding:12px 20px;background:#fff!important;color:#000!important;border:2px solid #333333;border-radius:8px;cursor:pointer;font-size:14px;font-weight:700;text-decoration:none;transition:all .3s ease;white-space:nowrap;box-shadow:0 2px 6px #0003}.btn-back:hover{background:#f8f9fa;border-color:#000;color:#000;transform:translateY(-2px);box-shadow:0 4px 12px #00000040}.btn-back:active{transform:translateY(0);box-shadow:0 1px 3px #0000001a}.header h1{color:#d32f2f;font-size:2.5rem;font-weight:600;margin:0}.header p{color:#555;font-size:1.1rem;margin:5px 0 0}.filters{background:#f8f9fa;padding:20px;border-radius:8px;margin-bottom:20px;box-shadow:0 2px 4px #0000001a;color:#333}.search-form{display:flex;gap:10px;margin-bottom:15px;align-items:center}.search-input{flex:1;padding:12px 16px;border:2px solid #ddd;border-radius:6px;font-size:16px;transition:border-color .3s;background:#fff;color:#333}.page-size-select{padding:12px 16px;border:2px solid #ddd;border-radius:6px;font-size:16px;background:#fff;color:#333;cursor:pointer;min-width:120px}.page-size-select:focus{outline:none;border-color:#d32f2f}.search-input:focus{outline:none;border-color:#d32f2f}.search-btn{padding:12px 24px;background:#d32f2f;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:16px;font-weight:500;transition:background-color .3s}.search-btn:hover{background:#b71c1c}.status-filters{display:flex;gap:10px;flex-wrap:wrap}.filter-btn{padding:8px 16px;border:2px solid #ddd;background:#fff;border-radius:20px;cursor:pointer;font-size:14px;transition:all .3s;color:#333}.filter-btn:hover{border-color:#d32f2f;background:#ffeaea}.filter-btn.active{background:#d32f2f;color:#fff;border-color:#d32f2f}.loading{text-align:center;padding:40px;font-size:18px;color:#555}.error-message{background:#ffebee;color:#c62828;padding:15px;border-radius:6px;margin-bottom:20px;border-left:4px solid #f44336}.results-info{margin-bottom:15px;color:#555;font-size:14px}.blood-products-table{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000001a;margin-bottom:20px}.blood-products-table table{width:100%;border-collapse:collapse}.blood-products-table th{background:#d32f2f;color:#fff;padding:15px 12px;text-align:left;font-weight:600;font-size:14px}.blood-products-table td{padding:12px;border-bottom:1px solid #eee;font-size:14px;color:#333;background:#fff}.blood-products-table tr:hover{background:#f8f9fa!important}.blood-products-table tr:hover td{color:#333!important}.blood-products-table tr:last-child td{border-bottom:none}.status{padding:4px 8px;border-radius:12px;font-size:12px;font-weight:500;text-transform:uppercase}.status-available{background:#e8f5e8;color:#2e7d32}.status-used{background:#fff3e0;color:#f57c00}.status-returned{background:#e3f2fd;color:#1976d2}.status-returned-late{background:#fce4ec;color:#c2185b}.status-destroyed{background:#ffebee;color:#d32f2f}.status-expired{background:#f3e5f5;color:#7b1fa2}.return-btn,.destroy-btn{padding:6px 12px;border:none;border-radius:4px;cursor:pointer;font-size:12px;font-weight:500;transition:all .3s}.return-btn{background:#4caf50;color:#fff}.return-btn:hover{background:#45a049}.destroy-btn{background:#f44336;color:#fff}.destroy-btn:hover{background:#da190b}.pagination-container{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:20px}.pagination-info{color:#333!important;font-weight:500;font-size:14px;background:#f8f9fa;padding:8px 16px;border-radius:4px;border:1px solid #dee2e6}.pagination{display:flex;justify-content:center;align-items:center;gap:8px}.page-btn{padding:8px 12px;border:1px solid #ddd;background:#fff;color:#333!important;border-radius:4px;cursor:pointer;font-size:14px;transition:all .3s}.page-btn:hover{background:#f5f5f5;border-color:#d32f2f;color:#d32f2f!important}.page-btn.active{background:#d32f2f!important;color:#fff!important;border-color:#d32f2f}.page-btn:disabled{background:#f5f5f5!important;color:#ccc!important;cursor:not-allowed}.ellipsis{padding:8px 4px;color:#666!important}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:#fff;border-radius:8px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 10px 25px #0000004d}.modal-header{padding:20px 24px;border-bottom:1px solid #eee;display:flex;justify-content:space-between;align-items:center;background:#f8f9fa}.close-btn{background:none;border:none;font-size:24px;cursor:pointer;color:#666;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .3s}.close-btn:hover{background:#e0e0e0}.modal-body{padding:24px}.product-info{background:#f8f9fa;padding:16px;border-radius:6px;margin-bottom:20px}.product-info h3{margin:0 0 12px;color:#d32f2f;font-size:1.1rem}.product-info p{margin:8px 0;color:#333}.action-form{display:flex;flex-direction:column;gap:16px}.form-group label{margin-bottom:6px;font-weight:500;color:#333}.form-group input,.form-group textarea,.form-group select{padding:12px;border:2px solid #ddd;border-radius:6px;font-size:14px;transition:border-color .3s;background:#fff;color:#333}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#d32f2f}.form-group select{cursor:pointer}.user-select{width:100%;padding:12px;font-size:14px}.user-search-input{width:100%;padding:12px 35px 12px 12px;border:2px solid #ddd;border-radius:6px;font-size:14px;background:#fff;color:#333;box-sizing:border-box}.user-search-input:focus{outline:none;border-color:#d32f2f}.clear-selection-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:#999;color:#fff;border:none;border-radius:50%;width:20px;height:20px;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.clear-selection-btn:hover{background:#666}.user-dropdown{position:absolute;top:100%;left:0;right:0;max-height:250px;overflow-y:auto;background:#fff;border:2px solid #ddd;border-top:none;border-radius:0 0 6px 6px;z-index:1000;box-shadow:0 4px 6px #0000001a}.user-dropdown-item{padding:10px 12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #f0f0f0}.user-dropdown-item:last-child{border-bottom:none}.user-dropdown-item:hover{background:#f5f5f5}.user-dropdown-item.no-results,.user-dropdown-item.more-results{color:#999;font-style:italic;cursor:default}.user-dropdown-item.no-results:hover,.user-dropdown-item.more-results:hover{background:#fff}.user-dropdown-item .user-name{font-weight:500;color:#333}.user-dropdown-item .user-code{font-size:12px;color:#666;margin-left:8px}.form-group textarea{resize:vertical;min-height:100px}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:20px;padding-top:20px;border-top:1px solid #eee}.cancel-btn{padding:12px 24px;border:2px solid #ddd;background:#fff;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .3s}.cancel-btn:hover{border-color:#999;background:#f5f5f5}.submit-return-btn{padding:12px 24px;background:#4caf50;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:background-color .3s}.submit-return-btn:hover{background:#45a049}.submit-return-btn:disabled{background:#ccc;cursor:not-allowed}.submit-destroy-btn{padding:12px 24px;background:#f44336;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:background-color .3s}.submit-destroy-btn:hover{background:#da190b}.submit-destroy-btn:disabled{background:#ccc;cursor:not-allowed}.time-info{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;padding:20px;margin:20px 0}.time-info h4{color:#495057;margin:0 0 15px;font-size:1.2rem;font-weight:600}.time-info h5{color:#495057;margin:15px 0 10px;font-size:1rem;font-weight:600}.time-info p{margin:8px 0;color:#6c757d}.time-indicator{font-weight:700;padding:2px 8px;border-radius:4px;margin-left:8px}.time-indicator.safe{background:#d4edda;color:#155724}.time-indicator.warning{background:#fff3cd;color:#856404}.time-indicator.danger{background:#f8d7da;color:#721c24}.time-warning{padding:12px;border-radius:6px;margin:15px 0;font-weight:500;display:flex;align-items:center;gap:8px}.time-warning.warning{background:#fff3cd;color:#856404;border:1px solid #ffeaa7}.time-warning.danger{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.return-type-selection{margin:20px 0;padding:15px;background:#fff;border:1px solid #dee2e6;border-radius:6px}.radio-group{display:flex;flex-direction:column;gap:10px;margin-top:10px}.radio-group label{display:flex;align-items:center;gap:8px;cursor:pointer;padding:8px;border-radius:4px;transition:background-color .2s}.radio-group label:hover{background:#f8f9fa}.radio-group input[type=radio]{margin:0;transform:scale(1.2)}.radio-group input[type=radio]:disabled+span{color:#6c757d;text-decoration:line-through}.exception-form{background:#fff8e1;border:1px solid #ffcc02;border-radius:6px;padding:20px;margin:20px 0}.exception-form h5{color:#f57f17;margin:0 0 15px;font-size:1.1rem;font-weight:600}.exception-form .form-group{margin-bottom:15px}.exception-form label{display:block;font-weight:600;margin-bottom:5px;color:#f57f17}.exception-form textarea{width:100%;padding:12px;border:2px solid #ffcc02;border-radius:6px;font-size:14px;font-family:inherit;resize:vertical;min-height:80px;box-sizing:border-box}.exception-form textarea:focus{outline:none;border-color:#f57f17;box-shadow:0 0 0 3px #ffcc0233}.exception-note{background:#fff3e0;border-left:4px solid #ff9800;padding:10px 15px;margin:15px 0 0;font-size:13px;color:#e65100;border-radius:0 4px 4px 0}.exception-note strong{color:#bf360c}@media (max-width: 768px){.blood-product-management{padding:10px}.header h1{font-size:2rem}.search-form{flex-direction:column}.search-input,.search-btn{width:100%}.status-filters{justify-content:center}.blood-products-table{overflow-x:auto}.blood-products-table table{min-width:800px}.blood-products-table th,.blood-products-table td{padding:8px;font-size:12px}.action-buttons{flex-direction:column}.modal-content{width:95%;margin:10px}.modal-body{padding:16px}.form-actions{flex-direction:column}.cancel-btn,.submit-return-btn,.submit-destroy-btn{width:100%}}.blood-distribution-new-container{background-color:#f8fafc;min-height:100vh;display:flex;flex-direction:column}.distribution-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 6px #0000001a;color:#fff}.distribution-header h1{margin:0;font-size:28px;font-weight:700;display:flex;align-items:center;gap:12px}.distribution-header h1 i{font-size:32px}.btn-back{padding:10px 20px;background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:8px;cursor:pointer;font-size:14px;transition:all .3s ease;display:flex;align-items:center;gap:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.btn-back:hover{background:#ffffff4d;transform:translateY(-2px);box-shadow:0 4px 8px #0003}.distribution-layout{display:flex;flex:1;gap:0;overflow:hidden}.content-area{flex:1;padding:2rem;overflow-y:auto;background:#f8fafc}.step-content{animation:fadeInUp .4s ease}.step-content>h2{margin:0 0 2rem;color:#1e293b;font-size:28px;font-weight:700;display:flex;align-items:center;gap:12px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.entry-mode-toggle{display:flex;gap:1rem;margin-bottom:2rem;background:#fff;padding:.5rem;border-radius:10px;box-shadow:0 2px 8px #00000014}.toggle-btn{flex:1;padding:12px 20px;border:2px solid transparent;background:transparent;border-radius:8px;font-size:15px;font-weight:600;color:#64748b;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:8px}.toggle-btn:hover{background:#f8fafc;color:#475569}.toggle-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:#667eea;box-shadow:0 4px 12px #667eea4d}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-bottom:1.5rem}@media (max-width: 768px){.form-grid{grid-template-columns:1fr}}.card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #00000014;margin-bottom:1.5rem;border:1px solid #e2e8f0;transition:all .3s ease}.card:hover{box-shadow:0 4px 16px #0000001f;transform:translateY(-2px)}.card.success-card{background:linear-gradient(135deg,#d1fae5,#a7f3d0);border:2px solid #10b981;text-align:center}.card.success-card h2{color:#065f46}.form-group label{display:block;margin-bottom:.5rem;color:#334155;font-weight:600;font-size:14px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px 16px;border:2px solid #e2e8f0;border-radius:8px;font-size:14px;transition:all .3s ease;background:#fff;font-family:inherit}.form-group textarea{resize:vertical;min-height:80px}.form-group small{display:block;margin-top:6px;font-size:13px;color:#64748b}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled,.form-group select:disabled{background:#f1f5f9;color:#94a3b8;cursor:not-allowed}.patient-info{padding:1rem;background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:8px;border:2px solid #f59e0b;margin-bottom:1rem}.patient-info h3{margin:0 0 .75rem;color:#92400e;font-size:16px;font-weight:600;display:flex;align-items:center;gap:8px}.patient-info .info-item{display:inline-flex;align-items:center;padding:.35rem .75rem;margin-right:1rem;margin-bottom:.5rem;background:#fff9;border-radius:6px;font-size:13px}.patient-info .info-item label{font-weight:600;color:#92400e;margin-right:.5rem;white-space:nowrap}.patient-info .info-item span{color:#451a03}.selection-section{margin-top:2rem;padding:1.5rem;background:#fff;border-radius:10px;border:2px solid #3b82f6}.selection-section h4{margin:0 0 1rem;color:#1e40af;font-size:18px;display:flex;align-items:center;gap:8px}.searchable-select{position:relative;width:100%}.searchable-select input{width:100%;padding:.75rem;border:2px solid #d1d5db;border-radius:8px;font-size:14px;transition:all .3s ease}.searchable-select input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.dropdown-list{position:absolute;top:100%;left:0;right:0;max-height:250px;overflow-y:auto;background:#fff;border:2px solid #3b82f6;border-top:none;border-radius:0 0 8px 8px;box-shadow:0 4px 12px #00000026;z-index:1000;margin-top:-6px}.dropdown-item{padding:.75rem 1rem;cursor:pointer;transition:all .2s ease;border-bottom:1px solid #f3f4f6;font-size:14px}.dropdown-item:hover{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af;font-weight:500}.dropdown-item:last-child{border-bottom:none}.dropdown-item-empty{padding:1rem;text-align:center;color:#9ca3af;font-style:italic;font-size:14px}.employee-code{color:#6b7280;font-size:12px;font-weight:400}.info-item{display:flex;flex-direction:column}.info-item label{font-size:12px;color:#92400e;font-weight:600;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.info-item span{font-size:16px;color:#78350f;font-weight:700}.order-info{padding:1.5rem;background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-radius:12px;border:2px solid #3b82f6;margin-bottom:1.5rem}.order-info h3{margin:0 0 1rem;color:#1e40af;font-size:18px;display:flex;align-items:center;gap:8px}.order-number{font-size:24px;font-weight:800;color:#1e3a8a;letter-spacing:1px}.qr-scanner-section{text-align:center;padding:2rem;background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-radius:12px;border:2px dashed #22c55e;margin-bottom:1.5rem}.qr-scanner-section h3{margin:0 0 1rem;color:#166534;font-size:20px}.qr-scanner-section p{color:#15803d;margin-bottom:1.5rem;line-height:1.6}.btn-qr{padding:14px 28px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:10px;transition:all .3s ease;box-shadow:0 4px 6px #10b9814d}.btn-qr:hover{transform:translateY(-2px);box-shadow:0 6px 12px #10b98166}.btn-qr:disabled{background:#cbd5e1;cursor:not-allowed;transform:none;box-shadow:none}.product-list{margin-top:1.5rem}.product-list h3{margin:0 0 1rem;color:#1e293b;font-size:18px;display:flex;align-items:center;gap:8px}.product-list table{width:100%;border-collapse:separate;border-spacing:0}.product-list thead th{background:#f1f5f9;padding:12px;text-align:left;font-size:13px;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid #e2e8f0}.product-list tbody td{padding:14px 12px;border-bottom:1px solid #f1f5f9;color:#334155;font-size:14px}.product-list tbody tr{transition:all .2s ease}.product-list tbody tr:hover{background:#f8fafc}.product-code{font-weight:700;color:#667eea;font-family:Courier New,monospace}.blood-type-badge{display:inline-flex;align-items:center;padding:4px 12px;background:#fee2e2;color:#991b1b;border-radius:20px;font-size:13px;font-weight:700}.expiry-date{color:#64748b;font-size:13px}.button-group{display:flex;gap:12px;margin-top:2rem;justify-content:flex-end}.btn{padding:12px 24px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease;display:inline-flex;align-items:center;gap:8px;box-shadow:0 2px 4px #0000001a}.btn:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.btn-secondary{background:#64748b;color:#fff}.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.btn-small{padding:8px 16px;font-size:13px}.btn-large{padding:16px 32px;font-size:16px}.empty-state{text-align:center;padding:3rem;color:#94a3b8}.empty-state i{font-size:64px;margin-bottom:1rem;opacity:.5}.empty-state p{font-size:16px;margin:0}.success-message{padding:2rem;text-align:center}.success-message p{font-size:16px;color:#065f46;margin:.5rem 0;line-height:1.8}.success-message strong{color:#047857;font-size:18px}.loading{text-align:center;padding:3rem;color:#667eea;font-size:18px;font-weight:600}.loading:after{content:"...";animation:dots 1.5s infinite}@keyframes dots{0%,20%{content:"."}40%{content:".."}60%,to{content:"..."}}@media (max-width: 1024px){.distribution-layout{flex-direction:column}.progress-sidebar{width:100%;height:auto;border-right:none;border-bottom:1px solid #e2e8f0;padding:1.5rem}.progress-steps{flex-direction:row;gap:1rem;overflow-x:auto}.step{flex-direction:column;text-align:center;min-width:120px}.step:after{display:none}.content-area{padding:1.5rem}}@media (max-width: 768px){.distribution-header{flex-direction:column;gap:1rem;padding:1rem}.distribution-header h1{font-size:22px}.content-area{padding:1rem}.entry-mode-toggle{flex-direction:column}.patient-info{grid-template-columns:1fr}.button-group{flex-direction:column}.button-group .btn{width:100%;justify-content:center}}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.animate-pulse{animation:pulse 2s ease-in-out infinite}.Toaster__toast{border-radius:10px;box-shadow:0 4px 12px #00000026;font-weight:600}.highlight{background:linear-gradient(120deg,#fef08a,#fde047);padding:2px 8px;border-radius:4px;font-weight:700;color:#854d0e}.btn-remove{background:#fee2e2;color:#dc2626;border:1px solid #fecaca;padding:6px 10px;border-radius:6px;cursor:pointer;transition:all .2s ease;font-size:14px}.btn-remove:hover{background:#dc2626;color:#fff;border-color:#dc2626;transform:scale(1.05)}.btn-remove i{font-size:12px}.products-table{width:100%;border-collapse:separate;border-spacing:0;margin-top:1rem}.products-table thead th{background:#1e293b;padding:12px;text-align:left;font-size:13px;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.5px}.products-table thead th:first-child{border-radius:8px 0 0}.products-table thead th:last-child{border-radius:0 8px 0 0}.products-table tbody td{padding:12px;border-bottom:1px solid #e2e8f0;color:#334155;font-size:14px;background:#fff}.products-table tbody tr:hover td{background:#f8fafc}.products-table tbody tr:last-child td:first-child{border-radius:0 0 0 8px}.products-table tbody tr:last-child td:last-child{border-radius:0 0 8px}.status-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600}.status-badge.pending{background:#fef3c7;color:#92400e}.status-badge.compatible{background:#d1fae5;color:#065f46}.status-badge.incompatible{background:#fee2e2;color:#991b1b}.status-badge.completed{background:#dbeafe;color:#1e40af}.crossmatch-records-container{padding:12px;max-width:1400px;margin:0 auto;background-color:#f8fafc;min-height:100vh}.page-header,.crossmatch-records-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding:10px 15px;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a}.crossmatch-records-header .header-left{display:flex;align-items:center;gap:15px}.page-header h1,.crossmatch-records-header h1{margin:0;font-size:20px;color:#1f2937;display:flex;align-items:center;gap:8px}.crossmatch-records-header h1 i{color:#dc2626}.btn-back,.btn-secondary{display:flex;align-items:center;gap:6px;padding:8px 12px;background:#6b7280;color:#fff;border:none;border-radius:5px;cursor:pointer;text-decoration:none;font-size:13px;transition:all .2s}.btn-refresh{display:flex;align-items:center;gap:8px;padding:10px 15px;background:#3b82f6;color:#fff;border:none;border-radius:6px;cursor:pointer;transition:all .2s}.btn-refresh:hover{background:#2563eb}.btn-refresh:disabled{background:#9ca3af;cursor:not-allowed}.patient-info-banner{background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff;padding:10px 15px;border-radius:8px;margin-bottom:12px;box-shadow:0 2px 8px #dc262626}.patient-details{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.patient-details span{font-weight:500;padding:4px 8px;background:#ffffff26;border-radius:5px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:12px}.patient-id{font-family:Courier New,monospace;font-weight:700!important}.patient-blood{font-weight:700!important;font-size:16px}.crossmatch-records-content{background:#fff;border-radius:8px;padding:12px;box-shadow:0 1px 3px #0000000d}.filters-section{display:flex;gap:15px;margin-bottom:20px;padding:15px;background:#f8fafc;border-radius:8px;flex-wrap:wrap}.search-filter{flex:1;min-width:250px}.search-input{width:100%;padding:10px 15px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;transition:border-color .2s}.search-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.status-filter select,.date-filter .date-input{padding:10px 15px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background:#fff;min-width:150px;transition:border-color .2s}.status-filter select:focus,.date-filter .date-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.records-and-edit-container{display:grid;grid-template-columns:1fr 400px;gap:20px;align-items:start}@media (max-width: 1200px){.records-and-edit-container{grid-template-columns:1fr}}.records-section h3{margin:0 0 15px;color:#1f2937;font-size:18px}.loading-state{text-align:center;padding:40px;color:#6b7280}.loading-state i{font-size:24px;margin-bottom:10px;display:block}.empty-state{text-align:center;padding:40px;color:#6b7280}.empty-state i{font-size:48px;color:#d1d5db;margin-bottom:15px;display:block}.empty-state p{margin-bottom:20px;font-size:16px}.records-list{display:flex;flex-direction:column;gap:12px;max-height:70vh;overflow-y:auto;padding-right:5px}.record-item{border:2px solid #e5e7eb;border-radius:10px;padding:15px;cursor:pointer;transition:all .2s ease;background:#fff;position:relative}.record-item:hover{border-color:#3b82f6;box-shadow:0 4px 15px #3b82f61a;transform:translateY(-1px)}.record-item.selected{border-color:#dc2626;box-shadow:0 6px 20px #dc262626;background:linear-gradient(135deg,#fef2f2,#fff)}.record-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;flex-wrap:wrap;gap:10px}.record-id{font-family:Courier New,monospace;font-weight:700;font-size:16px;color:#1f2937}.record-date{color:#6b7280;font-size:14px}.status-badge{padding:4px 8px;border-radius:12px;color:#fff;font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.record-details{display:flex;gap:15px;margin-bottom:10px;flex-wrap:wrap}.record-details span{font-size:14px;color:#4b5563}.record-results{display:flex;gap:15px;flex-wrap:wrap}.result-item{display:flex;flex-direction:column;gap:2px}.result-label{font-size:12px;color:#6b7280;font-weight:500}.result-value{font-size:14px;font-weight:700;padding:2px 6px;border-radius:4px}.result-value.has-result{background:#dcfce7;color:#166534}.result-value.no-result{background:#fef3c7;color:#92400e}.selected-indicator{position:absolute;top:10px;right:15px;display:flex;align-items:center;gap:5px;color:#dc2626;font-size:12px;font-weight:700}.selected-indicator i{font-size:16px}.edit-panel{background:#f8fafc;border-radius:10px;padding:20px;border:1px solid #e5e7eb;position:sticky;top:20px}.edit-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid #e5e7eb}.edit-header h3{margin:0;color:#1f2937;font-size:18px}.edit-header .record-id{font-family:Courier New,monospace;font-weight:700;color:#dc2626;background:#fff;padding:5px 10px;border-radius:6px;border:1px solid #dc2626}.crossmatch-edit-form{margin-bottom:20px}.crossmatch-group{margin-bottom:20px;padding:15px;background:#fff;border-radius:8px;border:1px solid #e5e7eb}.crossmatch-group h4{margin:0 0 15px;color:#374151;font-size:16px;font-weight:600}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-group{display:flex;flex-direction:column;gap:5px}.form-group label{font-size:14px;font-weight:500;color:#374151}.form-group select,.form-group input{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;transition:border-color .2s}.form-group select:focus,.form-group input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.edit-actions{display:flex;flex-direction:column;gap:10px}.btn-primary,.btn-secondary,.btn-cancel{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary{background:#dc2626;color:#fff}.btn-primary:hover{background:#b91c1c;transform:translateY(-1px);box-shadow:0 4px 12px #dc26264d}.btn-secondary{background:#3b82f6;color:#fff}.btn-secondary:hover{background:#2563eb;transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.error-message{text-align:center;padding:60px 20px;background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000000d}.error-message h2{color:#dc2626;margin-bottom:15px}.error-message p{color:#6b7280;margin-bottom:25px}@media (max-width: 768px){.crossmatch-records-container{padding:15px}.crossmatch-records-header{flex-direction:column;gap:15px;align-items:stretch}.crossmatch-records-header .header-left{justify-content:space-between}.patient-details{flex-direction:column;align-items:stretch;gap:10px}.filters-section{flex-direction:column;gap:10px}.form-row{grid-template-columns:1fr;gap:10px}.edit-actions{gap:8px}.btn-primary,.btn-secondary,.btn-cancel{padding:10px 14px;font-size:13px}}.progress-sidebar{width:280px;background:#fff;border-right:1px solid #e2e8f0;padding:2rem 1.5rem;position:sticky;top:0;height:calc(100vh - 80px);overflow-y:auto}.progress-steps{display:flex;flex-direction:column;gap:1.5rem}.step{display:flex;align-items:center;gap:1rem;padding:1rem;border-radius:8px;transition:all .3s ease;position:relative}.step:after{content:"";position:absolute;left:30px;top:70px;width:3px;height:calc(100% + 24px);background:#e2e8f0;z-index:0}.step:last-child:after{display:none}.step.active{background:#f0f4ff}.step.active .step-number{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;transform:scale(1.1);box-shadow:0 4px 12px #667eea66}.step.completed .step-number{background:#10b981;color:#fff}.step.completed:after{background:#10b981}.step-number{width:50px;height:50px;min-width:50px;border-radius:50%;background:#e2e8f0;color:#94a3b8;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;transition:all .3s ease;position:relative;z-index:1;border:3px solid white;box-shadow:0 2px 8px #0000001a}.step-label{font-size:15px;font-weight:600;color:#64748b;line-height:1.4}.step.active .step-label{color:#667eea}.step.completed .step-label{color:#10b981}.records-list::-webkit-scrollbar{width:6px}.records-list::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.records-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.records-list::-webkit-scrollbar-thumb:hover{background:#94a3b8}.complete-section{display:flex;justify-content:center;align-items:center;gap:10px;padding:10px;margin-top:12px;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;flex-wrap:wrap}.btn-success,.btn-warning,.btn-info{padding:8px 14px;font-size:12px;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:5px}.btn-success:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);transform:translateY(-2px);box-shadow:0 4px 15px #10b9814d}.btn-warning{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.btn-warning:hover:not(:disabled){background:linear-gradient(135deg,#d97706,#b45309);transform:translateY(-2px);box-shadow:0 4px 15px #f59e0b4d}.btn-info{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.btn-info:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-2px);box-shadow:0 4px 15px #3b82f64d}.btn-success:disabled,.btn-warning:disabled,.btn-info:disabled{background:#9ca3af;cursor:not-allowed;transform:none}.btn-large{min-width:180px}.test-timestamp{display:inline-block;margin-left:10px;font-size:11px;color:#6b7280;font-weight:400;background:#f3f4f6;padding:2px 8px;border-radius:4px;font-family:Courier New,monospace}.form-group label{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:5px}.products-section{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.products-section h2{margin:0 0 6px;font-size:18px;color:#1f2937;font-weight:600}.product-card{background:#fff;border-radius:6px;border:1px solid #e5e7eb;padding:10px;transition:all .2s ease}.product-card:hover{border-color:#3b82f6;box-shadow:0 2px 8px #3b82f614}.product-header{margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid #f3f4f6}.header-content{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px}.product-number{font-weight:700;color:#6b7280;min-width:30px}.product-code{font-family:Courier New,monospace;font-weight:500;color:#6b7280;background:#f3f4f6;padding:2px 6px;border-radius:4px;font-size:12px}.product-type{font-size:12px;font-weight:600;color:#7c3aed;background:#f3e8ff;padding:2px 6px;border-radius:4px}.product-name{flex:1;color:#374151;font-weight:500}.blood-type{font-weight:600;color:#dc2626;background:#fee2e2;padding:2px 6px;border-radius:4px}.compatibility-badge{font-size:18px;cursor:help}.crossmatch-form{display:flex;flex-direction:column;gap:12px}.tests-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}.test-item{display:flex;flex-direction:column;gap:3px;padding:6px;background:#f9fafb;border-radius:5px;border:1px solid #f3f4f6}.test-item label{font-size:12px;font-weight:600;color:#374151;margin:0}.test-input-wrapper{display:flex;flex-direction:column;gap:4px}.test-item input,.test-item select{padding:5px 6px;font-size:12px;border:1px solid #d1d5db;border-radius:4px;background:#fff;min-height:30px}.test-item input:focus,.test-item select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.test-timestamp{font-size:11px;color:#9ca3af;margin-top:2px}.test-timestamp-display{font-size:11px;color:#6b7280;background:#f3f4f6;border-radius:3px;margin-top:2px;font-family:Courier New,monospace;border-left:2px solid #d1d5db;padding:3px 6px}.form-actions{display:flex;flex-direction:column;gap:6px;margin-top:8px}.completion-checkbox-group{display:flex;align-items:center;gap:6px;padding:6px;background-color:#f0fdf4;border:1px solid #86efac;border-radius:6px;margin-bottom:6px;font-size:12px}.completion-checkbox-group label{display:flex;align-items:center;gap:6px;margin:0;font-weight:500;color:#15803d;cursor:pointer;-webkit-user-select:none;user-select:none}.completion-status-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background-color:#fef3c7;color:#92400e;border:1px solid #fcd34d;border-radius:4px;font-size:13px;font-weight:600;white-space:nowrap}.completion-checkbox{width:18px;height:18px;cursor:pointer;accent-color:#22c55e}.completion-checkbox:checked+label:before{content:"✓";color:#22c55e}.completion-checkbox:disabled{cursor:not-allowed;opacity:.6}.completion-checkbox:disabled+label{cursor:not-allowed;opacity:.6}.btn-small{padding:6px 10px;font-size:12px;border:none;border-radius:5px;cursor:pointer;transition:all .2s ease}.btn-small.btn-primary{background:#3b82f6;color:#fff}.btn-small.btn-primary:hover:not(:disabled){background:#2563eb;transform:translateY(-1px);box-shadow:0 2px 8px #3b82f633}.btn-small:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 1024px){.tests-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}@media (max-width: 768px){.header-content{font-size:13px;gap:8px}.tests-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.product-card{padding:10px}}.distribution-history-container{padding:16px;background-color:#f8fafc;min-height:100vh}.distribution-history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding:12px 16px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #00000014}.header-left{display:flex;align-items:center;gap:16px}.header-title{display:flex;align-items:center;gap:8px;margin:0;color:#1e40af;font-size:20px;font-weight:600}.header-title i{color:#dc2626;font-size:18px}.btn-back{padding:6px 12px;background:#6b7280;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease}.btn-back:hover{background:#4b5563;transform:translateY(-1px)}.filter-section{margin-bottom:16px}.filter-card{background:#fff;padding:8px 12px;border-radius:8px;box-shadow:0 2px 8px #00000014}.filter-horizontal{width:100%}.filter-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.filter-group-horizontal{display:flex;align-items:center;gap:4px;min-width:100px}.filter-group-horizontal label{font-size:11px;font-weight:600;color:#374151;white-space:nowrap;min-width:fit-content}.filter-group-horizontal input,.filter-group-horizontal select{padding:4px 6px;border:1px solid #d1d5db;border-radius:4px;font-size:11px;height:24px;min-width:80px;max-width:120px}.filter-group-horizontal input:focus,.filter-group-horizontal select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.filter-actions-horizontal{display:flex;gap:4px;margin-left:8px}.btn-primary-small,.btn-secondary-small{padding:4px 8px;border:none;border-radius:4px;cursor:pointer;font-weight:500;font-size:11px;height:24px;transition:all .2s ease}.btn-primary-small{background:#3b82f6;color:#fff}.btn-primary-small:hover:not(:disabled){background:#2563eb}.btn-primary-small:disabled{background:#9ca3af;cursor:not-allowed}.btn-secondary-small{background:#6b7280;color:#fff}.btn-secondary-small:hover{background:#4b5563}.tab-navigation{display:flex;gap:2px;margin-bottom:16px;background:#fff;padding:4px;border-radius:8px;box-shadow:0 2px 8px #00000014}.tab-button{flex:1;padding:8px 16px;background:transparent;border:none;border-radius:6px;cursor:pointer;font-weight:500;font-size:13px;color:#6b7280;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:6px;height:36px}.tab-button.active{background:#3b82f6;color:#fff;box-shadow:0 2px 6px #3b82f64d}.tab-button:hover:not(.active){background:#f3f4f6;color:#374151}.tab-button i{font-size:12px}.results-section{background:#fff;border-radius:8px;box-shadow:0 2px 8px #00000014;overflow:hidden}.results-header{padding:12px 16px;border-bottom:1px solid #e5e7eb;background:#f9fafb}.results-info{color:#6b7280;font-size:13px;font-weight:500}.loading-container{display:flex;flex-direction:column;align-items:center;padding:60px 20px;color:#6b7280}.loading-spinner{width:40px;height:40px;border:4px solid #e5e7eb;border-top:4px solid #3b82f6;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.history-table-container{overflow-x:auto}.history-table{width:100%;border-collapse:collapse;font-size:12px}.history-table th{background:#f9fafb;padding:8px 6px;text-align:left;font-weight:600;color:#374151;border-bottom:2px solid #e5e7eb;white-space:nowrap;font-size:11px}.history-table td{padding:8px 6px;border-bottom:1px solid #e5e7eb;vertical-align:top;font-size:12px}.history-table tbody tr:hover{background:#f9fafb}.crossmatch-results{display:flex;flex-direction:column;gap:1px;font-size:10px}.crossmatch-results span{background:#f3f4f6;padding:1px 4px;border-radius:3px;white-space:nowrap;font-size:10px}.priority{padding:2px 6px;border-radius:4px;font-size:10px;font-weight:600;white-space:nowrap}.priority-0{background:#fef2f2;color:#dc2626}.priority-1,.priority-2{background:#fef3c7;color:#d97706}.priority-3{background:#f0f9ff;color:#0284c7}.status{padding:2px 6px;border-radius:4px;font-size:10px;font-weight:600;white-space:nowrap}.status.issued{background:#d1fae5;color:#065f46}.status.returned{background:#fee2e2;color:#991b1b}.status.xetnghiem-status-0{background:#f3f4f6;color:#6b7280}.status.xetnghiem-status-1{background:#dbeafe;color:#1d4ed8}.status.xetnghiem-status-3{background:#d1fae5;color:#065f46}.status.xetnghiem-status-4{background:#fef3c7;color:#d97706}.status.xetnghiem-status-5{background:#fee2e2;color:#991b1b}.status.status-in_progress{background:#dbeafe;color:#1d4ed8}.status.status-reserve{background:#fef3c7;color:#d97706}.status.status-crossmatched{background:#d1fae5;color:#065f46}.status.status-distributed{background:#c7d2fe;color:#4338ca}.completion-badge{display:flex;gap:8px;align-items:center;font-size:12px;font-weight:600}.completion-badge .completed{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:#d1fae5;color:#065f46;border-radius:4px;font-size:11px;font-weight:600}.completion-badge .partial{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:#fef3c7;color:#d97706;border-radius:4px;font-size:11px;font-weight:600}.completion-badge .no-status{display:inline-block;padding:4px 8px;background:#f3f4f6;color:#6b7280;border-radius:4px;font-size:11px;font-weight:600}.action-buttons{display:flex;gap:4px}.btn-action{min-width:24px;height:28px;padding:4px 10px;border:none;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .2s ease;font-size:12px;font-weight:500;white-space:nowrap}.btn-action i,.btn-action span{font-size:12px}.btn-print{background:#3b82f6!important;color:#fff!important;font-weight:500}.btn-print:hover{background:#2563eb!important;color:#fff!important;transform:translateY(-1px)}.btn-return{background:#f59e0b!important;color:#fff!important;font-weight:500}.btn-return:hover{background:#d97706!important;color:#fff!important;transform:translateY(-1px)}.btn-distribute{background:#10b981!important;color:#fff!important;font-weight:500}.btn-distribute:hover{background:#059669!important;color:#fff!important;transform:translateY(-1px)}.btn-delete{background:#ef4444!important;color:#fff!important;font-weight:500}.btn-delete:hover:not(:disabled){background:#dc2626!important;color:#fff!important;transform:translateY(-1px)}.btn-delete:disabled{background:#d1d5db!important;color:#6b7280!important;cursor:not-allowed!important;opacity:.6}.no-results{display:flex;flex-direction:column;align-items:center;padding:60px 20px;color:#6b7280;text-align:center}.no-results i{font-size:48px;margin-bottom:16px;color:#d1d5db}.no-results h3{margin:0 0 8px;color:#374151}.no-results p{margin:0}.pagination-container{padding:20px;display:flex;justify-content:center;border-top:1px solid #e5e7eb;background:#f9fafb}.pagination{display:flex;gap:4px}.pagination-btn{padding:8px 12px;border:1px solid #d1d5db;background:#fff;color:#374151;border-radius:6px;cursor:pointer;font-size:14px;transition:all .2s ease}.pagination-btn:hover:not(:disabled){background:#f3f4f6;border-color:#9ca3af}.pagination-btn:disabled{background:#f9fafb;color:#d1d5db;cursor:not-allowed}.pagination-btn.active{background:#3b82f6;color:#fff;border-color:#3b82f6}@media (max-width: 1200px){.filter-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}@media (max-width: 768px){.distribution-history-container{padding:8px}.distribution-history-header{flex-direction:column;gap:12px;align-items:flex-start;padding:8px 12px}.header-title{font-size:18px}.filter-row{flex-direction:column;align-items:stretch;gap:6px}.filter-group-horizontal{justify-content:space-between;min-width:auto}.filter-group-horizontal input,.filter-group-horizontal select{max-width:none;flex:1;margin-left:8px}.filter-actions-horizontal{justify-content:center;margin-left:0;margin-top:4px}.tab-navigation{flex-direction:row;padding:2px}.tab-button{padding:6px 8px;font-size:11px;height:28px}.history-table{font-size:10px}.history-table th,.history-table td{padding:4px 3px}.pagination{flex-wrap:wrap;justify-content:center}}@media (max-width: 480px){.filter-group-horizontal{flex-direction:column;align-items:stretch}.filter-group-horizontal label{text-align:left;margin-bottom:2px}.filter-group-horizontal input,.filter-group-horizontal select{margin-left:0;width:100%}.tab-button{font-size:10px;height:24px}.btn-action{width:20px;height:20px;font-size:8px}}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-in}.detail-modal{background:#fff;border-radius:12px;max-width:900px;width:90%;max-height:85vh;overflow:hidden;display:flex;flex-direction:column;animation:slideUp .3s ease-out}.modal-header{padding:20px 24px;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#1e40af,#3b82f6);color:#fff}.modal-header h2{margin:0;font-size:20px;font-weight:600}.modal-close{background:transparent;border:none;font-size:24px;color:#fff;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.modal-close:hover{background:#fff3}.modal-body{padding:24px;overflow-y:auto;flex:1}.detail-section{margin-bottom:24px;padding:16px;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.detail-section h3{margin:0 0 16px;font-size:16px;font-weight:600;color:#1f2937;display:flex;align-items:center;gap:8px}.detail-section h3 i{color:#3b82f6}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.detail-item{display:flex;flex-direction:column;gap:4px}.detail-item label{font-size:12px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.detail-item span{font-size:14px;color:#1f2937;font-weight:500}.blood-type-badge{display:inline-block;padding:4px 12px;background:#dc2626;color:#fff;border-radius:16px;font-size:13px!important;font-weight:600!important}.test-results-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden}.test-results-table thead{background:#f3f4f6}.test-results-table th{padding:12px;text-align:left;font-size:12px;font-weight:600;color:#374151;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid #e5e7eb}.test-results-table td{padding:12px;font-size:13px;color:#4b5563;border-bottom:1px solid #f3f4f6}.test-results-table tbody tr:hover{background:#fafafa}.test-result-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:13px;font-weight:600;text-align:center;min-width:50px}.test-result-badge.result--{background:#dbeafe;color:#1e40af}.test-result-badge.result-\+{background:#fee2e2;color:#dc2626}.test-result-badge.result-2\+{background:#fecaca;color:#b91c1c}.test-result-badge.result-3\+{background:#fca5a5;color:#991b1b}.test-result-badge.result-4\+{background:#f87171;color:#7f1d1d}.loading-spinner-small{text-align:center;padding:20px;color:#6b7280;font-size:14px}.no-test-results{text-align:center;padding:40px 20px;color:#9ca3af}.no-test-results i{font-size:48px;margin-bottom:16px;opacity:.5}.no-test-results p{margin:0;font-size:14px}.modal-footer{padding:16px 24px;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:12px;background:#f9fafb}.btn-view{background:#3b82f6;color:#fff;box-shadow:0 2px 4px #3b82f64d}.btn-view:hover{background:#2563eb;box-shadow:0 4px 8px #2563eb66;transform:translateY(-1px)}.btn-edit{background:#10b981;color:#fff;box-shadow:0 2px 4px #10b9814d}.btn-edit:hover{background:#059669;box-shadow:0 4px 8px #05966966;transform:translateY(-1px) scale(1.05)}@keyframes slideUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.products-modal{max-width:1200px!important}.products-list{display:grid;gap:16px;margin-top:16px}.product-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:16px;transition:all .2s ease}.product-card:hover{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f626}.product-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:12px;border-bottom:2px solid #e2e8f0}.product-header h4{margin:0;color:#1e40af;font-size:16px;display:flex;align-items:center;gap:8px}.product-header h4 i{color:#dc2626}.product-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;margin-bottom:12px}.detail-row{display:flex;flex-direction:column;gap:4px}.detail-row label{font-size:12px;color:#64748b;font-weight:500}.detail-row span{font-size:14px;color:#1e293b}.test-results-inline{grid-column:1 / -1;margin-top:8px;padding-top:12px;border-top:1px solid #e2e8f0}.test-results-inline label{font-size:13px;color:#64748b;font-weight:600;margin-bottom:8px;display:block}.test-badges{display:flex;flex-wrap:wrap;gap:8px}.test-badge{background:#fff;border:1px solid #e2e8f0;padding:6px 12px;border-radius:6px;font-size:13px;color:#475569}.test-badge strong{color:#1e40af;margin-left:4px}.product-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid #e2e8f0}.btn-sm{padding:6px 12px;font-size:13px;border-radius:6px;border:none;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:6px}.btn-sm.btn-print{background:#3b82f6;color:#fff}.btn-sm.btn-print:hover{background:#2563eb}.no-products{text-align:center;padding:40px 20px;color:#94a3b8}.no-products i{font-size:48px;margin-bottom:16px;opacity:.5}.no-products p{margin:0;font-size:14px}.badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:13px;font-weight:600}.badge-info{background:#dbeafe;color:#1e40af}.history-table tbody tr[style*="cursor: pointer"]:hover{background-color:#f0f9ff!important}.role-protection-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;gap:1rem}.role-protection-loading .spinner{width:40px;height:40px;border:3px solid #f3f3f3;border-top:3px solid #6f42c1;border-radius:50%;animation:spin 1s linear infinite}.access-denied{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:2rem}.access-denied-content{text-align:center;max-width:500px;padding:3rem;background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;border:1px solid #e2e8f0}.access-denied-icon{font-size:4rem;margin-bottom:1rem;opacity:.7}.access-denied h2{color:#e53e3e;margin-bottom:1rem;font-size:1.8rem;font-weight:600}.access-denied p{color:#4a5568;margin-bottom:1rem;line-height:1.6}.access-denied p strong{color:#2d3748;font-weight:600}.btn-back{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:.75rem 2rem;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .3s ease;margin-top:1rem}.btn-back:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.product-type-management{padding:2rem;background:#f8f9fa;min-height:100vh}.product-type-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;gap:1rem}.product-type-loading .spinner{width:40px;height:40px;border:3px solid #f3f3f3;border-top:3px solid #6f42c1;border-radius:50%;animation:spin 1s linear infinite}.product-type-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;padding:2rem;background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a}.btn-save{background:linear-gradient(135deg,#007bff,#0056b3);color:#fff}.btn-save:hover{transform:translateY(-2px);box-shadow:0 4px 12px #007bff66}.btn-cancel{background:linear-gradient(135deg,#6c757d,#5a6268);color:#fff}.btn-cancel:hover{transform:translateY(-2px);box-shadow:0 4px 12px #6c757d66}.btn-add{background:linear-gradient(135deg,#28a745,#20c997);color:#fff}.btn-add:hover{transform:translateY(-2px);box-shadow:0 4px 12px #28a74566}.btn-edit{background:linear-gradient(135deg,#ffc107,#e0a800);color:#fff;padding:.5rem;font-size:.8rem}.btn-edit:hover{transform:translateY(-1px);box-shadow:0 2px 8px #ffc10766}.btn-delete{background:linear-gradient(135deg,#dc3545,#c82333);color:#fff;padding:.5rem;font-size:.8rem}.form-section{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 2px 10px #0000001a;margin-bottom:2rem}.form-section h3{margin:0 0 1.5rem;color:#333;font-size:1.3rem}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin-bottom:2rem}.form-group label{margin-bottom:.5rem;font-weight:600;color:#333}.form-group input,.form-group select{padding:.75rem;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;transition:border-color .3s ease}.form-group input:disabled{background:#f8f9fa;color:#6c757d;cursor:not-allowed}.form-actions{display:flex;gap:1rem;justify-content:flex-start}.product-type-table{width:100%;border-collapse:collapse;font-size:.9rem}.product-type-table th{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1rem .75rem;text-align:left;font-weight:600;white-space:nowrap}.product-type-table td{padding:1rem .75rem;border-bottom:1px solid #eee;vertical-align:middle;color:#333;background:#fff}.product-type-table tbody tr:hover{background:#f8f9fa!important}.inactive-row{background:#f0f0f0!important;opacity:.7}.inactive-row:hover{background:#e6e6e6!important}.volume-cell{text-align:right;font-weight:600}.type-badge{padding:.4rem .8rem;border-radius:20px;font-size:.8rem;font-weight:600;text-align:center;display:inline-block;color:#fff}.type-badge.type-red_blood_cell{background:linear-gradient(135deg,#dc3545,#c82333)}.type-badge.type-whole_blood{background:linear-gradient(135deg,#fd7e14,#e8590c)}.type-badge.type-fresh_frozen_plasma{background:linear-gradient(135deg,#ffc107,#e0a800);color:#333}.type-badge.type-platelets{background:linear-gradient(135deg,#007bff,#0056b3)}.type-badge.type-cryoprecipitates{background:linear-gradient(135deg,#17a2b8,#138496)}.status-badge{padding:.4rem .8rem;border-radius:20px;font-size:.8rem;font-weight:600;text-align:center;display:inline-block}.status-badge.active{background:linear-gradient(135deg,#28a745,#20c997);color:#fff}.status-badge.inactive{background:linear-gradient(135deg,#6c757d,#5a6268);color:#fff}.action-buttons{display:flex;gap:.5rem}@media (max-width: 768px){.product-type-management{padding:1rem}.product-type-header{flex-direction:column;gap:1rem;align-items:stretch}.form-grid{grid-template-columns:1fr}.form-actions{flex-wrap:wrap}.product-type-table{font-size:.8rem}.product-type-table th,.product-type-table td{padding:.5rem}}.supplier-management{padding:20px;max-width:1400px;margin:0 auto}.supplier-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px;gap:20px}.error-message{background:#f8d7da;color:#721c24;padding:15px;border-radius:5px;margin-bottom:20px;border:1px solid #f5c6cb}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-bottom:20px}.form-group input,.form-group select,.form-group textarea{padding:10px 12px;border:1px solid #ddd;border-radius:5px;font-size:14px;transition:border-color .3s}.supplier-table{width:100%;border-collapse:collapse;font-size:14px}.supplier-table thead{background:#f8f9fa}.supplier-table th{padding:12px;text-align:left;font-weight:600;color:#2c3e50;border-bottom:2px solid #dee2e6;white-space:nowrap}.supplier-table td{padding:12px;border-bottom:1px solid #dee2e6}.supplier-table tbody tr:hover{background:#f8f9fa}.supplier-table tbody tr.inactive-row{opacity:.6;background:#f5f5f5}.status-badge.status-inactive{background:#fff3cd;color:#856404}.supplier-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px}@media (max-width: 768px){.supplier-header{flex-direction:column;align-items:flex-start}.form-grid{grid-template-columns:1fr}.table-container{overflow-x:scroll}}.cabinet-management{padding:20px;max-width:1600px;margin:0 auto}.cabinet-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px;gap:20px}.header-title h1{margin:0 0 5px;color:#2c3e50;font-size:28px}.header-title p{margin:0;color:#7f8c8d;font-size:14px}.header-actions{display:flex;gap:10px}.btn-refresh{padding:10px 20px;background:#17a2b8;color:#fff;border:none;border-radius:5px;cursor:pointer;font-size:14px;transition:background .3s}.btn-refresh:hover{background:#138496}.error-message{background:#f8d7da;color:#721c24;padding:15px;border-radius:5px;margin-bottom:20px;border:1px solid #f5c6cb;animation:slideIn .3s ease-in-out}.success-message{background:#d4edda;color:#155724;padding:15px;border-radius:5px;margin-bottom:20px;border:1px solid #c3e6cb;animation:slideIn .3s ease-in-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.form-section{background:#fff;padding:25px;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:30px}.form-section h3{margin:0 0 20px;color:#2c3e50;font-size:20px;border-bottom:2px solid #3498db;padding-bottom:10px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:20px}.form-group label{margin-bottom:8px;color:#34495e;font-weight:500;font-size:14px}.form-group input,.form-group select{padding:10px 12px;border:1px solid #ddd;border-radius:5px;font-size:14px;transition:border-color .3s}.form-group input:focus,.form-group select:focus{outline:none;border-color:#3498db}.form-group input:disabled{background:#e9ecef;cursor:not-allowed}.form-actions{display:flex;gap:10px;justify-content:flex-start}.btn-save,.btn-add{padding:12px 30px;background:#28a745;color:#fff;border:none;border-radius:5px;cursor:pointer;font-size:14px;font-weight:500;transition:background .3s}.btn-save:hover,.btn-add:hover{background:#218838}.btn-cancel{padding:12px 30px;background:#6c757d;color:#fff;border:none;border-radius:5px;cursor:pointer;font-size:14px;font-weight:500;transition:background .3s}.btn-cancel:hover{background:#5a6268}.table-section{background:#fff;padding:25px;border-radius:8px;box-shadow:0 2px 4px #0000001a}.cabinet-table{width:100%;border-collapse:collapse;font-size:14px}.cabinet-table thead{background:#f8f9fa}.cabinet-table th{padding:12px;text-align:left;font-weight:600;color:#2c3e50;border-bottom:2px solid #dee2e6;white-space:nowrap}.cabinet-table td{padding:12px;border-bottom:1px solid #dee2e6}.cabinet-table tbody tr:hover{background:#f8f9fa}.cabinet-table tbody tr.inactive-row{opacity:.6;background:#f5f5f5}.code-cell{font-weight:600;color:#3498db}.name-cell{font-weight:500}.status-badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:500}.status-badge.status-active{background:#d4edda;color:#155724}.status-badge.status-maintenance{background:#fff3cd;color:#856404}.status-badge.status-inactive{background:#e2e3e5;color:#383d41}.status-badge.status-discontinued{background:#f8d7da;color:#721c24}.action-buttons{display:flex;gap:8px}.btn-edit,.btn-delete{padding:6px 12px;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:all .3s}.btn-edit{background:#ffc107;color:#000}.btn-edit:hover:not(:disabled){background:#e0a800}.btn-delete{background:#dc3545;color:#fff}.btn-delete:hover:not(:disabled){background:#c82333}.btn-edit:disabled,.btn-delete:disabled{opacity:.5;cursor:not-allowed}.no-data{text-align:center;padding:40px;color:#7f8c8d;font-size:16px}.cabinet-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px}.spinner{border:4px solid #f3f3f3;border-top:4px solid #3498db;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin-bottom:20px}@media (max-width: 768px){.cabinet-header{flex-direction:column;align-items:flex-start}.form-grid{grid-template-columns:1fr}.table-container{overflow-x:scroll}}.department-management{padding:2rem;max-width:1400px;margin:0 auto}.page-header{display:flex;align-items:center;gap:1.5rem;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:3px solid #e5e7eb}.btn-back{padding:.75rem 1.5rem;background:#6b7280;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:14px;display:flex;align-items:center;gap:.5rem;transition:all .3s ease}.btn-back:hover{background:#4b5563;transform:translate(-2px)}.header-title h1{margin:0;color:#1f2937;font-size:28px}.header-title p{margin:.5rem 0 0;color:#6b7280;font-size:14px}.action-bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.search-filter-group{display:flex;gap:1rem;flex:1;flex-wrap:wrap}.search-box{position:relative;flex:1;min-width:300px;max-width:500px}.search-box i.fa-search{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:#6b7280;font-size:14px}.search-box input{width:100%;padding:.75rem 3rem .75rem 2.5rem;border:2px solid #d1d5db;border-radius:8px;font-size:14px;transition:all .3s ease}.search-box input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.search-box .clear-search{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:#ef4444;color:#fff;border:none;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;transition:all .3s ease}.search-box .clear-search:hover{background:#dc2626;transform:translateY(-50%) scale(1.1)}.status-filter{min-width:200px}.status-filter select{width:100%;padding:.75rem 1rem;border:2px solid #d1d5db;border-radius:8px;font-size:14px;background:#fff;cursor:pointer;transition:all .3s ease}.status-filter select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.button-group-actions{display:flex;gap:.5rem}.btn-add,.btn-refresh{padding:.75rem 1.5rem;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;display:flex;align-items:center;gap:.5rem;transition:all .3s ease;white-space:nowrap}.btn-add{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.btn-add:hover{background:linear-gradient(135deg,#059669,#047857);transform:translateY(-2px);box-shadow:0 4px 12px #10b9814d}.btn-refresh{background:#f3f4f6;color:#374151}.btn-refresh:hover{background:#e5e7eb}.add-form-card{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border:2px solid #10b981;border-radius:12px;padding:1.5rem;margin-bottom:2rem}.add-form-card h3{margin:0 0 1.5rem;color:#047857;font-size:20px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1.5rem}.form-group label{margin-bottom:.5rem;color:#374151;font-weight:600;font-size:14px}.form-group input,.form-group textarea,.form-group select{padding:.75rem;border:1px solid #d1d5db;border-radius:6px;font-size:14px;transition:all .3s ease}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#10b981;box-shadow:0 0 0 3px #10b9811a}.form-group textarea{resize:vertical;font-family:inherit}.button-group{display:flex;gap:1rem;justify-content:flex-end}.btn-success,.btn-secondary{padding:.75rem 2rem;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;display:flex;align-items:center;gap:.5rem;transition:all .3s ease}.btn-success{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.btn-success:hover{background:linear-gradient(135deg,#059669,#047857);transform:translateY(-2px);box-shadow:0 4px 12px #10b9814d}.btn-secondary{background:#6b7280;color:#fff}.btn-secondary:hover{background:#4b5563}.table-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.data-table{width:100%;border-collapse:collapse}.data-table thead{background:linear-gradient(135deg,#1e40af,#1e3a8a);color:#fff}.data-table th{padding:1rem;text-align:left;font-weight:600;font-size:14px;text-transform:uppercase;letter-spacing:.5px}.data-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background-color .2s ease}.data-table tbody tr:hover{background:#f9fafb}.data-table td{padding:1rem;font-size:14px;color:#374151}.data-table td input,.data-table td textarea,.data-table td select{width:100%;padding:.5rem;border:1px solid #d1d5db;border-radius:4px;font-size:14px}.data-table td input:focus,.data-table td textarea:focus,.data-table td select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.status-badge{display:inline-block;padding:.375rem .75rem;border-radius:20px;font-size:13px;font-weight:600}.status-badge.active{background:#d1fae5;color:#065f46}.status-badge.inactive{background:#fee2e2;color:#991b1b}.action-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.btn-edit,.btn-delete,.btn-save,.btn-cancel,.btn-deactivate,.btn-activate{padding:.5rem 1rem;border:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;display:flex;align-items:center;gap:.375rem;transition:all .3s ease;white-space:nowrap}.btn-edit{background:#3b82f6;color:#fff}.btn-edit:hover{background:#2563eb;transform:translateY(-1px);box-shadow:0 2px 8px #3b82f64d}.btn-deactivate{background:#f59e0b;color:#fff}.btn-deactivate:hover{background:#d97706;transform:translateY(-1px);box-shadow:0 2px 8px #f59e0b4d}.btn-activate{background:#10b981;color:#fff}.btn-activate:hover{background:#059669;transform:translateY(-1px);box-shadow:0 2px 8px #10b9814d}.btn-delete{background:#ef4444;color:#fff}.btn-delete:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 2px 8px #ef44444d}.btn-save{background:#10b981;color:#fff}.btn-save:hover{background:#059669}.btn-cancel{background:#6b7280;color:#fff}.btn-cancel:hover{background:#4b5563}.table-footer{margin-top:1.5rem;padding:1rem;background:#f9fafb;border-radius:8px;text-align:center}.table-footer p{margin:0;color:#6b7280;font-size:14px}.table-footer strong{color:#1f2937;font-weight:700}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem}.spinner{width:50px;height:50px;border:4px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}@media (max-width: 768px){.department-management{padding:1rem}.page-header{flex-direction:column;align-items:flex-start}.form-grid{grid-template-columns:1fr}.action-bar{flex-direction:column;align-items:stretch}.search-filter-group{flex-direction:column;width:100%}.search-box{max-width:100%;min-width:100%}.status-filter,.button-group-actions{width:100%}.btn-add,.btn-refresh{flex:1;justify-content:center}.table-container{overflow-x:auto}.data-table{min-width:800px}.button-group{flex-direction:column}.btn-success,.btn-secondary{width:100%;justify-content:center}}.user-permissions{padding:2rem;background:#f8f9fa;min-height:100vh}.user-permissions-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;gap:1rem}.user-permissions-loading .spinner{width:40px;height:40px;border:3px solid #f3f3f3;border-top:3px solid #6f42c1;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.user-permissions-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;padding:2rem;background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a}.header-title h1{margin:0 0 .5rem;color:#333;font-size:2rem}.header-title p{margin:0;color:#666;font-size:1rem}.header-actions{display:flex;gap:1rem}.btn{padding:.75rem 1.5rem;border:none;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:600;transition:all .3s ease;display:inline-flex;align-items:center;gap:.5rem}.btn-refresh{background:linear-gradient(135deg,#28a745,#20c997);color:#fff}.btn-refresh:hover{transform:translateY(-2px);box-shadow:0 4px 12px #28a74566}.error-message{background:#f8d7da;color:#721c24;padding:1rem;border-radius:8px;margin-bottom:1.5rem;border:1px solid #f5c6cb}.filter-section{background:#fff;padding:1.5rem 2rem;border-radius:12px;box-shadow:0 2px 10px #0000001a;margin-bottom:2rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.filter-group{display:flex;align-items:center;gap:1rem}.filter-group label{font-weight:600;color:#333;white-space:nowrap}.filter-input{padding:.5rem 1rem;border:2px solid #e2e8f0;border-radius:8px;font-size:.9rem;min-width:300px;transition:border-color .3s ease}.filter-input:focus{outline:none;border-color:#6f42c1;box-shadow:0 0 0 3px #6f42c11a}.filter-select{padding:.5rem 1rem;border:2px solid #e2e8f0;border-radius:8px;font-size:.9rem;min-width:200px;transition:border-color .3s ease}.filter-select:focus{outline:none;border-color:#6f42c1;box-shadow:0 0 0 3px #6f42c11a}.filter-info{display:flex;align-items:center;gap:1rem;color:#666;font-size:.9rem;margin-left:auto}.btn-clear-filters{padding:.5rem 1rem;background:linear-gradient(135deg,#ff6b6b,#ee5a6f);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:600;transition:all .3s ease}.btn-clear-filters:hover{transform:translateY(-2px);box-shadow:0 4px 12px #ff6b6b66}.stats-section{margin-bottom:2rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}.stat-card{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 10px #0000001a;display:flex;align-items:center;gap:1rem;transition:transform .3s ease}.stat-card:hover{transform:translateY(-2px)}.stat-card.alert{border-left:4px solid #dc3545}.stat-card.alert .stat-icon{background:linear-gradient(135deg,#dc3545,#c82333)}.stat-icon{font-size:2rem;width:60px;height:60px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;color:#fff;flex-shrink:0}.stat-content h3{margin:0 0 .3rem;color:#333;font-size:1rem}.stat-number{font-size:1.8rem;font-weight:700;color:#6f42c1}.table-section{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a;overflow:hidden}.table-container{overflow-x:auto}.permissions-table{width:100%;border-collapse:collapse;font-size:.9rem}.permissions-table th{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1rem .75rem;text-align:left;font-weight:600;white-space:nowrap}.permissions-table td{padding:1rem .75rem;border-bottom:1px solid #eee;vertical-align:middle;color:#333;background:#fff}.permissions-table tbody tr:hover{background:#f8f9fa!important}.inactive-user{background:#f8f9fa!important;opacity:.7}.inactive-user:hover{background:#e9ecef!important}.inactive-user .role-select{background:#f8f9fa;color:#6c757d;cursor:not-allowed}.code-cell{font-family:Courier New,monospace;font-weight:600;color:#6f42c1}.name-cell{font-weight:600;color:#333}.username-cell{font-family:Courier New,monospace;color:#666}.department-cell{color:#555}.role-badge{padding:.4rem .8rem;border-radius:20px;font-size:.8rem;font-weight:600;text-align:center;display:inline-block;color:#fff}.role-badge.role-superadmin{background:linear-gradient(135deg,#6f42c1,#5a32a3);box-shadow:0 2px 8px #6f42c166;font-weight:700;border:2px solid #ffd700;animation:superadmin-glow 2s ease-in-out infinite}@keyframes superadmin-glow{0%,to{box-shadow:0 2px 8px #6f42c166}50%{box-shadow:0 2px 12px #ffd70099}}.role-badge.role-admin{background:linear-gradient(135deg,#dc3545,#c82333);box-shadow:0 2px 8px #dc35454d}.role-badge.role-mod{background:linear-gradient(135deg,#ffc107,#e0a800);color:#333;box-shadow:0 2px 8px #ffc1074d}.role-badge.role-user{background:linear-gradient(135deg,#28a745,#20c997);box-shadow:0 2px 8px #28a7454d}.role-badge.role-doctor{background:linear-gradient(135deg,#1565c0,#0d47a1);box-shadow:0 2px 8px #1565c04d}.role-badge.role-nurse{background:linear-gradient(135deg,#ad1457,#880e4f);box-shadow:0 2px 8px #ad14574d}.role-badge.role-lab-manager{background:linear-gradient(135deg,#0277bd,#01579b);box-shadow:0 2px 8px #0277bd4d}.role-badge.role-lab-technician{background:linear-gradient(135deg,#00838f,#006064);box-shadow:0 2px 8px #00838f4d}.role-badge.role-lab-staff{background:linear-gradient(135deg,#00897b,#00695c);box-shadow:0 2px 8px #00897b4d}.role-badge.role-warehouse-manager{background:linear-gradient(135deg,#e65100,#bf360c);box-shadow:0 2px 8px #e651004d}.role-badge.role-warehouse-staff{background:linear-gradient(135deg,#6d4c41,#4e342e);box-shadow:0 2px 8px #6d4c414d}.role-badge.role-distribution-staff{background:linear-gradient(135deg,#7b1fa2,#6a1b9a);box-shadow:0 2px 8px #7b1fa24d}.status-badge{padding:.4rem .8rem;border-radius:20px;font-size:.8rem;font-weight:600;text-align:center;display:inline-block;color:#fff}.status-badge.status-active{background:linear-gradient(135deg,#28a745,#20c997);box-shadow:0 2px 8px #28a7454d}.status-badge.status-inactive{background:linear-gradient(135deg,#6c757d,#5a6268);box-shadow:0 2px 8px #6c757d4d}.role-select{padding:.5rem;border:2px solid #e2e8f0;border-radius:6px;font-size:.9rem;min-width:140px;transition:border-color .3s ease}.role-select:focus{outline:none;border-color:#6f42c1;box-shadow:0 0 0 3px #6f42c11a}.action-buttons{display:flex;gap:.5rem;justify-content:center}.btn-toggle-status{padding:.5rem;border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:all .3s ease;min-width:35px;height:35px;display:flex;align-items:center;justify-content:center}.btn-edit{background:linear-gradient(135deg,#6f42c1,#563d7c);color:#fff;padding:.5rem;border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:all .3s ease;min-width:35px;height:35px;display:flex;align-items:center;justify-content:center}.btn-edit:hover{transform:translateY(-1px);box-shadow:0 2px 8px #6f42c166}.input-disabled{background:#f0f0f0;color:#666;cursor:not-allowed}.btn-reset-password{background:linear-gradient(135deg,#17a2b8,#138496);color:#fff;padding:.5rem;border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:all .3s ease;min-width:35px;height:35px;display:flex;align-items:center;justify-content:center}.btn-reset-password:hover{transform:translateY(-1px);box-shadow:0 2px 8px #17a2b866}.btn-deactivate{background:linear-gradient(135deg,#ffc107,#e0a800);color:#333}.btn-deactivate:hover{transform:translateY(-1px);box-shadow:0 2px 8px #ffc10766}.btn-activate{background:linear-gradient(135deg,#28a745,#20c997)}.btn-activate:hover{transform:translateY(-1px);box-shadow:0 2px 8px #28a74566}.btn-delete{background:linear-gradient(135deg,#dc3545,#c82333);color:#fff;padding:.5rem;border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:all .3s ease;min-width:35px;height:35px;display:flex;align-items:center;justify-content:center}.btn-delete:hover{transform:translateY(-1px);box-shadow:0 2px 8px #dc354566}.no-data{text-align:center;padding:3rem;color:#666;font-size:1.1rem}@media (max-width: 768px){.user-permissions{padding:1rem}.user-permissions-header{flex-direction:column;gap:1rem;align-items:stretch}.filter-section{flex-direction:column;align-items:stretch}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.permissions-table{font-size:.8rem}.permissions-table th,.permissions-table td{padding:.5rem}.stat-card{padding:1rem}.stat-icon{width:50px;height:50px;font-size:1.5rem}.stat-number{font-size:1.5rem}}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-in}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;border-radius:12px;padding:2rem;max-width:600px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0000004d;animation:slideDown .3s ease-out}@keyframes slideDown{0%{transform:translateY(-50px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #f0f0f0}.modal-header h2{margin:0;color:#333;font-size:1.5rem}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#999;padding:.5rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.modal-close:hover{background:#f0f0f0;color:#333}.add-user-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:600;color:#333;font-size:.95rem}.form-group .required{color:#dc3545}.form-group input,.form-group select{padding:.75rem;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;transition:all .2s ease}.form-group input:focus,.form-group select:focus{outline:none;border-color:#6f42c1;box-shadow:0 0 0 3px #6f42c11a}.form-actions{display:flex;gap:1rem;margin-top:1rem;justify-content:flex-end}.btn-add-user{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600}.btn-add-user:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.btn-secondary{background:#6c757d;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-secondary:hover{background:#5a6268;transform:translateY(-2px);box-shadow:0 6px 20px #6c757d4d}.user-info-display{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);padding:1rem;border-radius:8px;margin-bottom:1.5rem;border-left:4px solid #667eea}.user-info-display p{margin:.5rem 0;color:#333;font-size:.95rem}.user-info-display strong{color:#667eea;font-weight:600;margin-right:.5rem}.form-hint{display:block;margin-top:.5rem;color:#6c757d;font-size:.85rem;font-style:italic}.user-profile-container{padding:2rem;max-width:1200px;margin:0 auto;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}.user-profile-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding:1.5rem;background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a}.header-left{display:flex;align-items:center;gap:1rem}.btn-back{padding:.75rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:500;transition:all .3s ease;box-shadow:0 2px 4px #0000001a}.btn-back:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0003}.header-title{font-size:2rem;font-weight:700;color:#333;margin:0;display:flex;align-items:center;gap:.75rem}.header-title i{color:#667eea}.user-profile-content{display:grid;grid-template-columns:1fr 1fr;gap:2rem}@media (max-width: 968px){.user-profile-content{grid-template-columns:1fr}}.profile-card{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;overflow:hidden;transition:transform .3s ease,box-shadow .3s ease}.profile-card:hover{transform:translateY(-5px);box-shadow:0 8px 12px #00000026}.profile-card-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1.5rem;border-bottom:3px solid rgba(255,255,255,.2)}.profile-card-header h2{margin:0;font-size:1.5rem;font-weight:600}.profile-info{padding:2rem}.info-row{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;border-bottom:1px solid #f0f0f0}.info-row:last-child{border-bottom:none}.info-label{font-weight:600;color:#555;font-size:1rem}.info-value{color:#333;font-size:1rem;font-weight:500}.role-badge{padding:.5rem 1rem;border-radius:20px;font-size:.9rem;font-weight:600;text-transform:capitalize}.role-badge.role-admin{background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff}.role-badge.role-mod{background:linear-gradient(135deg,#4facfe,#00f2fe);color:#fff}.role-badge.role-user{background:linear-gradient(135deg,#43e97b,#38f9d7);color:#fff}.status-badge{padding:.5rem 1rem;border-radius:20px;font-size:.9rem;font-weight:600}.status-badge.active{background:linear-gradient(135deg,#43e97b,#38f9d7);color:#fff}.status-badge.inactive{background:linear-gradient(135deg,#fc466b,#3f5efb);color:#fff}.change-password-form{padding:2rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:#333;font-size:1rem}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper input{width:100%;padding:.75rem 3rem .75rem 1rem;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;transition:all .3s ease}.password-input-wrapper input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.toggle-password-btn{position:absolute;right:10px;background:none;border:none;cursor:pointer;font-size:1.5rem;padding:.5rem;transition:transform .2s ease}.toggle-password-btn:hover{transform:scale(1.1)}.form-hint{display:block;margin-top:.5rem;color:#666;font-size:.875rem;font-style:italic}.password-requirements{background:#f8f9fa;border-left:4px solid #667eea;padding:1rem;margin:1.5rem 0;border-radius:4px}.password-requirements p{margin:0 0 .5rem;font-weight:600;color:#333}.password-requirements ul{list-style:none;padding:0;margin:0}.password-requirements li{padding:.5rem 0;color:#666;transition:color .3s ease}.password-requirements li.valid{color:#4caf50;font-weight:600}.security-note{background:#fff3cd;border-left:4px solid #ffc107;padding:1rem;margin:1.5rem 0;border-radius:4px}.security-note p{margin:0 0 .5rem;font-weight:600;color:#856404}.security-note ul{margin:.5rem 0 0 1.5rem;padding:0}.security-note li{padding:.25rem 0;color:#856404;font-size:.9rem}.form-actions{display:flex;gap:1rem;margin-top:2rem}.btn{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 4px #0000001a}.btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 8px #0003}.error-message{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 6px #0000001a;text-align:center}.error-message p{color:#dc3545;font-size:1.2rem;margin-bottom:1.5rem}@media (max-width: 768px){.user-profile-container{padding:1rem}.header-title{font-size:1.5rem}.form-actions{flex-direction:column}.btn{width:100%}}.change-password{padding:2rem;max-width:1200px;margin:0 auto;min-height:calc(100vh - 100px)}.change-password-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:2px solid #e0e0e0}.header-title h1{color:#2c3e50;margin:0 0 .5rem;font-size:2rem;font-weight:600}.header-title p{color:#7f8c8d;margin:0;font-size:1rem}.user-info-display{background:linear-gradient(135deg,#667eea,#764ba2);padding:1rem 1.5rem;border-radius:12px;box-shadow:0 4px 12px #0000001a}.current-user{display:flex;align-items:center;gap:.75rem;color:#fff}.user-icon{font-size:2rem;background:#fff3;padding:.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;width:50px;height:50px}.user-details .username{font-weight:600;font-size:1.1rem}.user-details .fullname{font-size:.9rem;opacity:.9}.error-message{background:#ffebee;color:#c62828;padding:1rem;border-radius:8px;margin-bottom:1.5rem;border-left:4px solid #e53935;font-weight:500}.success-message{background:#e8f5e8;color:#2e7d32;padding:1rem;border-radius:8px;margin-bottom:1.5rem;border-left:4px solid #4caf50;font-weight:500}.forms-container{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:3rem}.form-section{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 4px 12px #0000001a;border:1px solid #f0f0f0}.form-header{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #e9ecef}.form-header h2{color:#2c3e50;margin:0 0 .5rem;font-size:1.4rem;font-weight:600}.form-header p{color:#6c757d;margin:0;font-size:.9rem}.change-form{display:flex;flex-direction:column;gap:1.5rem}.form-group label{margin-bottom:.5rem;font-weight:500;color:#495057;font-size:.9rem}.form-group input{padding:.75rem;border:2px solid #e9ecef;border-radius:8px;font-size:1rem;transition:all .3s ease;background:#fff}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input:invalid{border-color:#dc3545}.current-name-display{margin-bottom:1rem}.current-name-display label{display:block;margin-bottom:.5rem;font-weight:500;color:#495057;font-size:.9rem}.current-name-value{padding:.75rem;background:#f8f9fa;border:2px solid #e9ecef;border-radius:8px;color:#495057;font-weight:500}.btn{padding:.875rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;text-align:center;display:flex;align-items:center;justify-content:center;gap:.5rem}.btn-update-password{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-update-password:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.btn-update-name{background:linear-gradient(135deg,#11998e,#38ef7d);color:#fff}.btn-update-name:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #11998e66}.security-tips{background:#f8f9fa;padding:2rem;border-radius:12px;border:1px solid #e9ecef}.security-tips h3{color:#2c3e50;margin:0 0 1.5rem;font-size:1.3rem;font-weight:600}.tips-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.tip-item{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000000d}.tip-icon{font-size:1.2rem;flex-shrink:0;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center}.tip-content{flex:1}.tip-content strong{color:#2c3e50;display:block;margin-bottom:.25rem;font-size:.9rem}.tip-content{color:#6c757d;font-size:.85rem;line-height:1.4}@media (max-width: 768px){.change-password{padding:1rem}.change-password-header{flex-direction:column;gap:1rem;align-items:stretch}.forms-container{grid-template-columns:1fr;gap:1.5rem}.form-section{padding:1.5rem}.tips-grid{grid-template-columns:1fr}.header-title h1{font-size:1.6rem}}@media (max-width: 480px){.change-password{padding:.5rem}.form-section,.security-tips{padding:1rem}}.admin-panel{padding:20px;max-width:1200px;margin:0 auto}.admin-header{display:flex;align-items:center;gap:20px;margin-bottom:30px}.btn-back{padding:10px 20px;background:#6c757d;color:#fff;border:none;border-radius:5px;cursor:pointer;font-size:14px;transition:background .3s}.btn-back:hover{background:#5a6268}.header-title h1{margin:0 0 5px;color:#2c3e50;font-size:32px}.header-title p{margin:0;color:#7f8c8d;font-size:16px}.role-indicator{display:flex;align-items:center;gap:15px;padding:15px 20px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:10px;margin-bottom:30px;box-shadow:0 4px 6px #0000001a}.role-badge{padding:8px 16px;background:#fff3;border-radius:20px;font-weight:600;color:#fff;font-size:14px}.user-name{color:#fff;font-size:16px;font-weight:500}.admin-modules-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;margin-bottom:30px}.admin-module-card{display:flex;align-items:center;gap:15px;padding:25px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;cursor:pointer;transition:all .3s ease;border:2px solid transparent}.admin-module-card:hover{transform:translateY(-4px);box-shadow:0 6px 20px #00000026;border-color:#3498db}.module-icon{font-size:48px;flex-shrink:0}.module-content{flex:1}.module-content h3{margin:0 0 8px;color:#2c3e50;font-size:18px;font-weight:600}.module-content p{margin:0;color:#7f8c8d;font-size:14px;line-height:1.5}.module-arrow{font-size:24px;color:#3498db;flex-shrink:0;transition:transform .3s ease}.admin-module-card:hover .module-arrow{transform:translate(5px)}.no-modules{text-align:center;padding:60px 20px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014}.no-modules p{color:#7f8c8d;font-size:16px;margin:0}@media (max-width: 768px){.admin-header{flex-direction:column;align-items:flex-start}.admin-modules-grid{grid-template-columns:1fr}.role-indicator{flex-direction:column;align-items:flex-start}}.database-backup-container{max-width:1200px;margin:0 auto;padding:20px;background:#f5f7fa;min-height:100vh}.backup-header{display:flex;align-items:center;gap:20px;margin-bottom:30px;background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 4px #0000001a}.backup-header .btn-back{padding:8px 16px;background:#f0f0f0;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:14px;transition:all .3s ease}.backup-header .btn-back:hover{background:#e0e0e0}.header-title h1{font-size:28px;margin:0;color:#333}.header-title p{margin:5px 0 0;color:#666;font-size:14px}.backup-section{background:#fff;border-radius:8px;padding:24px;margin-bottom:20px;box-shadow:0 2px 8px #0000001a}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;border-bottom:2px solid #f0f0f0;padding-bottom:15px}.section-header h2{margin:0;font-size:20px;color:#333}.backup-count{background:#e8f5e9;color:#2e7d32;padding:4px 12px;border-radius:20px;font-size:13px;font-weight:600}.config-section .config-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.folder-picker-group{display:flex;gap:8px;align-items:center}.folder-picker-group .form-control{flex:1;min-width:0}.folder-picker-group .btn{white-space:nowrap;flex-shrink:0}.form-group label{font-weight:600;margin-bottom:8px;color:#333;font-size:14px}.form-control{padding:10px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;font-family:inherit;transition:border-color .3s ease}.form-control:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 3px #2196f31a}.form-actions{grid-column:1 / -1;display:flex;gap:10px;margin-top:10px}.config-display{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.config-item{padding:15px;background:#f9f9f9;border-radius:6px;border-left:4px solid #2196f3}.config-item .label{display:block;font-weight:600;color:#666;font-size:13px;margin-bottom:5px;text-transform:uppercase}.config-item .value{display:block;font-size:16px;color:#333;font-weight:500}.manual-backup-section{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.manual-backup-section h2{color:#fff}.manual-backup-content{text-align:center}.manual-backup-content p{margin-bottom:20px;font-size:15px;opacity:.95}.btn-large{padding:14px 32px!important;font-size:16px!important;font-weight:600;display:inline-flex;align-items:center;gap:8px;transition:transform .2s ease,box-shadow .2s ease}.btn-large:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #0003}.btn-large:disabled{opacity:.6;cursor:not-allowed}.spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top:2px solid white;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:all .3s ease;display:inline-flex;align-items:center;gap:6px}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:#2196f3;color:#fff}.btn-primary:hover:not(:disabled){background:#1976d2}.btn-success{background:#4caf50;color:#fff}.btn-success:hover:not(:disabled){background:#388e3c}.btn-warning{background:#ff9800;color:#fff}.btn-warning:hover:not(:disabled){background:#f57c00}.btn-danger{background:#f44336;color:#fff}.btn-danger:hover:not(:disabled){background:#d32f2f}.btn-info{background:#00bcd4;color:#fff}.btn-info:hover:not(:disabled){background:#0097a7}.btn-secondary{background:#757575;color:#fff}.btn-secondary:hover:not(:disabled){background:#616161}.btn-sm{padding:6px 12px;font-size:12px}.backups-list{display:grid;gap:12px}.backup-item{display:flex;justify-content:space-between;align-items:center;padding:16px;background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;transition:all .3s ease}.backup-item:hover{background:#f5f5f5;box-shadow:0 2px 8px #00000014}.backup-info{flex:1}.backup-filename{display:flex;align-items:center;gap:10px;margin-bottom:8px}.backup-filename .icon{font-size:20px}.backup-filename .name{font-weight:600;color:#333;word-break:break-all}.backup-details{display:flex;gap:20px;flex-wrap:wrap}.detail-item{font-size:13px;color:#666}.detail-item strong{color:#333}.backup-actions{display:flex;gap:8px;margin-left:20px}.no-backups{text-align:center;padding:40px 20px;color:#999}.no-backups p{margin:0;font-size:15px}.loading-spinner{text-align:center;padding:40px 20px;color:#666;font-size:15px}.loading-spinner:before{content:"";display:inline-block;width:16px;height:16px;margin-right:10px;border:2px solid #f0f0f0;border-top:2px solid #2196f3;border-radius:50%;animation:spin .8s linear infinite}.info-section{background:#e3f2fd;border-left:4px solid #2196f3}.info-section h3{margin-top:0;color:#1565c0}.info-list{margin:0;padding-left:20px;list-style:none}.info-list li{margin-bottom:10px;color:#333;font-size:14px;position:relative;padding-left:20px}.info-list li:before{content:"✓";position:absolute;left:0;color:#4caf50;font-weight:700}@media (max-width: 768px){.database-backup-container{padding:12px}.backup-header{flex-direction:column;align-items:flex-start}.header-title h1{font-size:22px}.backup-item{flex-direction:column;align-items:flex-start}.backup-actions{margin-left:0;margin-top:12px;width:100%;flex-wrap:wrap}.backup-actions .btn{flex:1;min-width:90px}.config-section .config-form,.config-display{grid-template-columns:1fr}}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:8px;box-shadow:0 4px 20px #0000004d;max-width:600px;width:90%;max-height:80vh;display:flex;flex-direction:column}.folder-browser-modal{overflow:hidden}.modal-header{padding:20px;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;align-items:center}.modal-header h3{margin:0;font-size:18px;color:#333}.btn-close{background:none;border:none;font-size:24px;cursor:pointer;color:#666;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.btn-close:hover{background:#f0f0f0;color:#333}.folder-path-display{padding:15px 20px;background:#f9f9f9;border-bottom:1px solid #e0e0e0;font-size:13px}.folder-path-display code{display:block;margin-top:8px;padding:8px;background:#fff;border:1px solid #ddd;border-radius:4px;word-break:break-all;font-family:Courier New,monospace;font-size:12px}.folder-list{flex:1;overflow-y:auto;padding:10px}.folder-item{display:flex;align-items:center;padding:12px;margin-bottom:8px;background:#f5f5f5;border-radius:6px;border:1px solid #e0e0e0;transition:all .2s}.folder-item:hover{background:#efefef;border-color:#2196f3}.folder-icon{font-size:20px;margin-right:12px;flex-shrink:0}.folder-name{flex:1;font-weight:500;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-actions{display:flex;gap:8px;flex-shrink:0}.btn-small{padding:6px 12px;font-size:12px;border-radius:4px;border:none;cursor:pointer;transition:all .2s}.btn-small.btn-secondary{background:#e0e0e0;color:#333}.btn-small.btn-secondary:hover{background:#d0d0d0}.btn-small.btn-success{background:#4caf50;color:#fff}.btn-small.btn-success:hover{background:#45a049}.empty-message{text-align:center;padding:20px;color:#999;font-size:14px}.modal-footer{padding:20px;border-top:1px solid #e0e0e0;background:#f9f9f9}.manual-path-input{margin-bottom:15px}.manual-path-input label{display:block;margin-bottom:8px;font-weight:500;font-size:13px;color:#333}.manual-path-input input{width:100%}.button-group{display:flex;gap:10px;justify-content:flex-end}.button-group .btn{flex:0 1 auto}.scheduler-status-section{background:linear-gradient(135deg,#f5f7fa,#e8eef5);border-left:4px solid #2196F3}.scheduler-status-content{display:flex;flex-direction:column;gap:20px}.status-indicator{display:flex;align-items:center;gap:10px}.status-badge{padding:8px 16px;border-radius:20px;font-weight:600;font-size:14px;display:inline-block}.status-badge.active{background:#c8e6c9;color:#1b5e20}.status-badge.inactive{background:#eceff1;color:#546e7a}.status-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;padding:15px;background:#fff;border-radius:6px}.detail-item{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #f0f0f0}.detail-item .label{font-weight:600;color:#555}.detail-item .value{color:#2196f3;font-weight:500}.scheduled-jobs{padding:15px;background:#fff;border-radius:6px;border-left:3px solid #FFC107}.scheduled-jobs h4{margin:0 0 12px;color:#333;font-size:14px}.job-item{padding:10px;margin-bottom:8px;background:#fffacd;border-radius:4px;font-size:13px}.job-name{font-weight:600;color:#333;margin-bottom:3px}.job-trigger{color:#666;font-family:monospace;margin-bottom:3px}.job-next-run{color:#2196f3;font-size:12px}.scheduler-actions{display:flex;gap:10px;justify-content:flex-start}.scheduler-actions .btn{padding:8px 16px;font-size:13px}.reports-container{min-height:100vh;background:#f5f5f5;color:#1f2937;padding:2rem}.reports-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:2rem;border-radius:15px;margin-bottom:2rem}.header-left{display:flex;align-items:center;gap:1.5rem;text-align:left}.btn-back{background:#fff3;color:#fff;border:2px solid rgba(255,255,255,.3);padding:.75rem 1.5rem;border-radius:10px;cursor:pointer;transition:all .3s ease;font-weight:500;font-size:1rem;white-space:nowrap}.btn-back:hover{background:#ffffff4d;border-color:#ffffff80;transform:translateY(-2px)}.header-title{flex:1}.reports-header h1{margin:0 0 .5rem;font-size:2.5rem}.reports-header p{margin:0;opacity:.9;font-size:1.1rem}.reports-tabs{display:flex;gap:1rem;margin-bottom:2rem;flex-wrap:wrap}.tab{background:#fff;border:2px solid #ddd;color:#333;padding:1rem 2rem;border-radius:10px;cursor:pointer;transition:all .3s ease;font-weight:500;font-size:1rem;min-width:200px}.tab:hover{border-color:#667eea;background:#f8f9ff}.tab.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:#667eea}.reports-content{background:#fff;color:#1f2937;border-radius:15px;box-shadow:0 4px 15px #0000001a;overflow:hidden}.report-section{display:flex;flex-direction:column;min-height:600px;color:#1f2937}.report-filters{background:#f8f9fa;color:#333;padding:1.5rem 2rem;border-bottom:1px solid #ddd;overflow-x:auto}.report-filters h3{margin:0 0 1rem;color:#333;font-size:1.3rem}.filter-container{display:flex;flex-wrap:wrap;align-items:flex-end;gap:2rem}.filter-row{display:flex;align-items:center;gap:1rem;margin-bottom:0}.filter-row label{display:flex;align-items:center;gap:.5rem;font-weight:500;color:#333;cursor:pointer}.date-filters{display:flex;flex-direction:column;gap:1rem}.date-filters>div{display:flex;flex-direction:column;gap:.5rem}.date-filters label{font-weight:500;color:#555}.date-filters input{padding:.5rem;border:1px solid #ddd;border-radius:5px;font-size:.95rem}.filter-section{display:inline-flex;flex-direction:column;gap:.5rem;margin-right:2.5rem;margin-bottom:1rem;vertical-align:top}.filter-section h4{margin:0;color:#555;font-size:.95rem;font-weight:600}.checkbox-list{display:flex;flex-direction:column;gap:.25rem;border:1px solid #ddd;border-radius:6px;padding:.5rem;background:#fff;color:#333;min-width:200px;max-height:150px;overflow-y:auto}.checkbox-list label{display:flex;align-items:center;gap:.6rem;padding:.5rem .75rem;cursor:pointer;font-size:.9rem;color:#333;border-radius:5px;transition:all .2s ease;-webkit-user-select:none;user-select:none;white-space:nowrap}.checkbox-list label:hover{background:#e7f0ff;transform:translate(3px)}.checkbox-list label:active{background:#d0e0ff}.checkbox-list input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#667eea;flex-shrink:0}.filter-actions{display:flex;flex-direction:row;gap:1rem;align-items:flex-end;flex-wrap:wrap;margin-top:2rem}.btn{padding:.75rem 1.5rem;border:none;border-radius:8px;cursor:pointer;font-weight:500;transition:all .3s ease;text-align:center;text-decoration:none;display:inline-block}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 15px #667eea4d}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover{background:#5a6268;transform:translateY(-2px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.report-content{flex:1;padding:2rem;overflow-y:auto;color:#1f2937}.loading{text-align:center;padding:3rem;font-size:1.1rem;color:#666}.error{background:#ffe6e6;color:#d63384;padding:1rem;border-radius:8px;margin-bottom:1rem;border:1px solid #f5c6cb}.report-table-container{margin-top:2rem}.report-table-container h3{margin:0 0 1rem;color:#333}.report-table,.stats-table,.expiry-table{width:100%;border-collapse:collapse;margin-top:1rem;background:#fff;color:#1f2937;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000001a}.report-table th,.stats-table th,.expiry-table th{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1rem;text-align:left;font-weight:600}.report-table td,.stats-table td,.expiry-table td{padding:.75rem 1rem;border-bottom:1px solid #eee;color:#1f2937}.report-table tr:hover,.stats-table tr:hover,.expiry-table tr:hover{background:#f8f9ff}.report-table tr:nth-child(2n),.stats-table tr:nth-child(2n),.expiry-table tr:nth-child(2n){background:#fafafa}.statistics-content{padding:1rem 0}.statistics-summary{margin-bottom:3rem}.statistics-summary h3{margin:0 0 1.5rem;color:#333;font-size:1.5rem}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem}.summary-card{background:#fff;color:#1f2937;padding:2rem;border-radius:12px;text-align:center;box-shadow:0 4px 15px #0000001a;transition:transform .3s ease}.summary-card:hover{transform:translateY(-5px)}.summary-card.expired{border-left:4px solid #dc3545}.summary-card.expiring-today{border-left:4px solid #fd7e14}.summary-card.expiring-week{border-left:4px solid #ffc107}.summary-card.expiring-month{border-left:4px solid #17a2b8}.summary-card.safe{border-left:4px solid #28a745}.card-value{font-size:2.5rem;font-weight:700;color:#333;margin-bottom:.5rem}.card-label{color:#666;font-size:.95rem;text-transform:uppercase;letter-spacing:.5px}.statistics-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.chart-section{background:#fff;color:#1f2937;padding:1.5rem;border-radius:12px;box-shadow:0 2px 8px #0000001a}.chart-section h4{margin:0 0 1rem;color:#333;font-size:1.2rem;padding-bottom:.5rem;border-bottom:2px solid #667eea}.expiry-content{padding:1rem 0}.expiry-summary,.expiry-section{margin-bottom:3rem}.section-title{margin:0 0 1rem;font-size:1.3rem;padding:1rem;border-radius:8px;font-weight:600}.section-title.urgent{background:#ffe6e6;color:#d63384;border:1px solid #f5c6cb}.section-title.warning{background:#fff3cd;color:#856404;border:1px solid #ffeaa7}.access-denied{text-align:center;padding:4rem 2rem;background:#fff;border-radius:15px;margin:2rem;box-shadow:0 4px 15px #0000001a}.access-denied h2{color:#d63384;margin-bottom:1rem}.access-denied p{color:#666;font-size:1.1rem}@media (max-width: 1024px){.report-section{flex-direction:column}.report-filters{flex:none;border-right:none;border-bottom:1px solid #ddd}.reports-tabs{flex-direction:column}.tab{min-width:auto}.statistics-charts{grid-template-columns:1fr}.summary-cards{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}@media (max-width: 768px){.reports-container{padding:1rem}.reports-header{padding:1.5rem}.reports-header h1{font-size:2rem}.report-content,.report-filters{padding:1rem}.summary-cards{grid-template-columns:1fr}.date-filters{flex-direction:column}}@media print{.reports-container{background:#fff;padding:0}.reports-header{background:none;color:#000;border:1px solid #ddd}.reports-tabs,.report-filters{display:none}.report-section{flex-direction:column}.report-content{padding:1rem 0}.btn{display:none}}.tests-management-container{padding:20px;max-width:1400px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:20px;border-bottom:2px solid #e0e0e0}.header-left h1{margin:0 0 5px;font-size:28px;color:#2c3e50}.header-left .subtitle{margin:0;color:#7f8c8d;font-size:14px}.header-right{display:flex;gap:10px}.btn-primary{background:#3498db;color:#fff;border:none;padding:10px 20px;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:background .3s}.btn-primary:hover{background:#2980b9}.btn-secondary{background:#95a5a6;color:#fff;border:none;padding:10px 20px;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:background .3s}.btn-secondary:hover{background:#7f8c8d}.btn-icon{background:transparent;border:1px solid #ddd;padding:5px 8px;border-radius:4px;cursor:pointer;font-size:14px;transition:all .3s}.btn-icon:hover{background:#f8f9fa;border-color:#999}.btn-icon:disabled{opacity:.3;cursor:not-allowed}.btn-edit:hover{background:#fff3cd;border-color:#ffc107}.btn-toggle:hover{background:#e3f2fd;border-color:#2196f3}.btn-delete:hover{background:#f8d7da;border-color:#dc3545}.btn-close{background:transparent;border:none;font-size:24px;cursor:pointer;color:#999;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.btn-close:hover{color:#333}.filters-section{display:flex;gap:20px;align-items:center;margin-bottom:20px;padding:15px;background:#f8f9fa;border-radius:8px}.filter-group{display:flex;align-items:center;gap:10px}.filter-group label{font-weight:500;color:#555;font-size:14px}.filter-select{padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;min-width:200px}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:#555}.checkbox-label input[type=checkbox]{cursor:pointer}.filter-stats{margin-left:auto}.stat-badge{background:#e3f2fd;color:#1976d2;padding:6px 12px;border-radius:20px;font-size:13px;font-weight:500}.tests-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.tests-table{width:100%;border-collapse:collapse}.tests-table thead{background:#34495e;color:#fff}.tests-table th{padding:15px;text-align:left;font-weight:600;font-size:14px}.tests-table tbody tr{border-bottom:1px solid #ecf0f1;transition:background .2s}.tests-table tbody tr:hover{background:#f8f9fa}.tests-table tbody tr.inactive{opacity:.6;background:#f5f5f5}.tests-table td{padding:15px;font-size:14px;color:#2c3e50}.tests-table td code{background:#f8f9fa;padding:4px 8px;border-radius:4px;font-family:Courier New,monospace;font-size:13px;color:#e74c3c}.test-name{font-weight:500}.order-controls{display:flex;align-items:center;gap:10px}.order-number{font-weight:600;color:#3498db;min-width:25px}.order-buttons{display:flex;flex-direction:column;gap:2px}.order-buttons .btn-icon{padding:2px 6px;font-size:12px;line-height:1}.badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500}.badge-crossmatch{background:#e3f2fd;color:#1976d2}.badge-blood_typing{background:#f3e5f5;color:#7b1fa2}.badge-screening{background:#fff3e0;color:#f57c00}.badge-other{background:#e0e0e0;color:#616161}.status-badge{padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.status-active{background:#d4edda;color:#155724}.status-inactive{background:#f8d7da;color:#721c24}.action-buttons{display:flex;gap:5px}.loading{text-align:center;padding:60px 20px;color:#7f8c8d;font-size:16px}.empty-state{text-align:center;padding:60px 20px}.empty-state p{font-size:18px;color:#7f8c8d;margin-bottom:20px}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:#fff;border-radius:12px;max-width:700px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 25px;border-bottom:2px solid #e0e0e0}.modal-header h2{margin:0;font-size:22px;color:#2c3e50}.modal-content form{padding:25px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-group{display:flex;flex-direction:column}.form-group.full-width{grid-column:1 / -1}.form-group label{font-weight:500;margin-bottom:8px;color:#2c3e50;font-size:14px}.form-group .required{color:#e74c3c}.form-group input,.form-group select,.form-group textarea{padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;font-family:inherit;transition:border-color .3s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#3498db}.form-group input:disabled{background:#f5f5f5;cursor:not-allowed}.form-group small{margin-top:5px;font-size:12px;color:#7f8c8d}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:20px 25px;border-top:1px solid #e0e0e0;background:#f8f9fa}@media (max-width: 768px){.tests-management-container{padding:10px}.page-header{flex-direction:column;align-items:flex-start;gap:15px}.filters-section{flex-direction:column;align-items:flex-start}.filter-stats{margin-left:0;width:100%}.tests-table{font-size:12px}.tests-table th,.tests-table td{padding:10px 8px}.form-grid{grid-template-columns:1fr}.order-controls{flex-direction:column;align-items:flex-start;gap:5px}.order-buttons{flex-direction:row}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}.App{min-height:100vh;width:100%;overflow-x:hidden;position:relative}html,body{margin:0;padding:0;width:100%;height:100%}#root{width:100%;height:100%}html{scroll-behavior:smooth}*:focus{outline:2px solid #667eea;outline-offset:2px}
