*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;overflow-x:hidden}body{color:#0f172a;background:#f0f4f8;font-family:Inter,-apple-system,sans-serif;line-height:1.5}:root{--primary:#2563eb;--primary-dark:#1d4ed8;--slate:#1e3a8a;--slate-light:#eff6ff;--border:#dbeafe;--border-dark:#bfdbfe;--text-main:#0f172a;--text-muted:#64748b;--white:#fff;--danger:#dc2626;--success:#16a34a;--header-height:60px;--drawer-width:520px;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #2563eb1f}.lab-app{padding-top:var(--header-height)}.content{max-width:1400px;margin:0 auto;padding:1.5rem 1rem}.main-header{background:var(--slate);height:var(--header-height);z-index:2000;border-bottom:2px solid var(--primary);position:fixed;top:0;left:0;right:0;box-shadow:0 2px 8px #0003}.header-container{justify-content:space-between;align-items:center;max-width:1400px;height:100%;margin:0 auto;padding:0 1.5rem;display:flex}.brand-title{color:var(--white);text-transform:uppercase;letter-spacing:1px;font-size:13px;font-weight:800}.header-controls{align-items:center;gap:10px;display:flex}.user-greeting{color:#93c5fd;border-right:1px solid #1e40af;padding-right:12px;font-size:12px;font-weight:600}.btn-nav{color:#93c5fd;text-transform:uppercase;cursor:pointer;background:0 0;border:none;border-radius:4px;min-height:34px;padding:6px 12px;font-size:11px;font-weight:700;transition:all .15s}.btn-nav:hover{color:var(--white);background:#ffffff14}.btn-nav.active{background:var(--white);color:var(--slate)}.btn-primary{background:var(--primary);color:var(--white);cursor:pointer;text-transform:uppercase;border:none;border-radius:6px;justify-content:center;align-items:center;width:100%;min-height:40px;padding:10px 16px;font-size:12px;font-weight:700;transition:background .15s;display:inline-flex}.btn-primary:hover{background:var(--primary-dark)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:var(--white);color:var(--primary);border:1.5px solid var(--border-dark);cursor:pointer;text-transform:uppercase;border-radius:6px;align-items:center;gap:5px;min-height:36px;padding:7px 14px;font-size:11px;font-weight:700;transition:all .15s;display:inline-flex}.btn-secondary:hover{background:var(--slate-light);border-color:var(--primary)}.btn-danger{color:var(--white);cursor:pointer;text-transform:uppercase;background:#ef4444;border:none;border-radius:6px;align-items:center;min-height:36px;padding:7px 14px;font-size:11px;font-weight:700;transition:background .15s;display:inline-flex}.btn-danger:hover{background:var(--danger)}.btn-icon{color:var(--white);cursor:pointer;background:#ffffff1f;border:1px solid #fff3;border-radius:6px;align-items:center;gap:5px;min-height:34px;padding:6px 12px;font-size:12px;transition:background .15s;display:inline-flex;position:relative}.btn-icon:hover{background:#fff3}.btn-action{border:1px solid var(--border-dark);cursor:pointer;color:var(--slate);background:#f8fafc;border-radius:5px;justify-content:center;align-items:center;width:30px;height:30px;margin-right:3px;font-size:13px;transition:all .15s;display:inline-flex}.btn-action:hover{background:var(--slate-light);border-color:var(--primary)}.btn-clear{cursor:pointer;color:var(--primary);background:0 0;border:none;align-items:center;padding:4px 8px;font-size:12px;font-weight:700;display:inline-flex}.btn-clear:hover{text-decoration:underline}.card,.form-card{background:var(--white);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:8px;margin-bottom:1rem;padding:1.25rem}.kpi-card{background:var(--white);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:10px;flex:1;min-width:150px;padding:1.1rem 1.25rem;transition:box-shadow .2s;position:relative;overflow:hidden}.kpi-card:before{content:"";width:4px;height:100%;position:absolute;top:0;left:0}.kpi-card.blue:before{background:var(--primary)}.kpi-card.light:before{background:#60a5fa}.kpi-card.dark:before{background:#0f172a}.kpi-card.green:before{background:var(--success)}.kpi-card:hover{box-shadow:var(--shadow-md)}.kpi-icon{margin-bottom:6px;font-size:20px;display:block}.kpi-title{text-transform:uppercase;color:var(--text-muted);letter-spacing:.5px;font-size:10px;font-weight:700}.kpi-value{color:var(--slate);margin-top:2px;font-size:1.8rem;font-weight:800;line-height:1}.kpi-sub{color:var(--text-muted);margin-top:4px;font-size:10px}.section-title{text-transform:uppercase;color:var(--slate);border-left:3px solid var(--primary);margin-bottom:1rem;padding-left:8px;font-size:11px;font-weight:800}.input-field{border:1.5px solid var(--border-dark);color:var(--text-main);background:#f8fafc;border-radius:6px;outline:none;width:100%;min-height:40px;padding:.6rem .75rem;font-family:inherit;font-size:13px;transition:all .15s}.input-field:focus{border-color:var(--primary);background:var(--white);box-shadow:0 0 0 3px #2563eb14}.input-field:disabled{opacity:.65;cursor:not-allowed;background:#f1f5f9;font-weight:600}.form-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:end;gap:.75rem;margin-bottom:.75rem;display:grid}.span-2{grid-column:span 2}.input-group{flex-direction:column;gap:4px;display:flex}.input-label{text-transform:uppercase;color:var(--text-muted);letter-spacing:.3px;font-size:11px;font-weight:700}.date-input-wrapper{width:100%;position:relative}.native-date-overlay{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.calendar-icon{pointer-events:none;opacity:.4;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.toolbar{background:var(--white);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;padding:12px 16px;display:flex}.search-group{flex-wrap:wrap;flex-grow:1;align-items:center;gap:8px;display:flex}.action-group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.date-range-group{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.date-range-group .date-input-wrapper{width:140px}.operator-search{width:200px}.dept-badge{text-transform:uppercase;white-space:nowrap;letter-spacing:.3px;border-radius:20px;padding:3px 10px;font-size:10px;font-weight:700}.dept-media{color:var(--primary);background:#dbeafe}.dept-inoculation{color:#4338ca;background:#e0e7ff}.dept-growthroom{color:#166534;background:#dcfce7}.dept-contamination{color:#92400e;background:#fef3c7}.notif-wrapper{position:relative}.badge-alert{color:var(--white);border:2px solid var(--slate);background:#ef4444;border-radius:10px;padding:1px 5px;font-size:10px;font-weight:700;position:absolute;top:-6px;right:-6px}.notif-panel{background:var(--white);border:1px solid var(--border-dark);z-index:9999;border-radius:8px;width:320px;position:absolute;top:44px;right:0;overflow:hidden;box-shadow:0 10px 30px #00000026}.notif-header{background:var(--slate-light);border-bottom:1px solid var(--border);text-transform:uppercase;color:var(--slate);letter-spacing:.5px;justify-content:space-between;align-items:center;padding:12px 15px;font-size:11px;font-weight:800;display:flex}.notif-body{max-height:350px;overflow-y:auto}.notif-empty{text-align:center;color:var(--text-muted);padding:24px;font-size:12px}.notif-item{border-bottom:1px solid #f1f5f9;border-left:3px solid var(--primary);cursor:pointer;padding:12px 15px;transition:background .15s}.notif-item:hover{background:var(--slate-light)}.drawer-overlay{z-index:99999;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f172a99;justify-content:flex-end;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.drawer-content{width:var(--drawer-width);background:var(--white);flex-direction:column;height:100vh;animation:.3s cubic-bezier(.16,1,.3,1) forwards slideIn;display:flex;transform:translate(100%);box-shadow:-8px 0 30px #2563eb26}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{to{transform:translate(0)}}.drawer-header{background:var(--slate-light);border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;padding:20px;display:flex}.drawer-header h3{text-transform:uppercase;color:var(--slate);margin-bottom:4px;font-size:14px;font-weight:800}.btn-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.5rem;line-height:1;display:flex}.btn-close:hover{background:var(--border);color:var(--slate)}.drawer-body{flex-direction:column;flex-grow:1;gap:12px;padding:20px;display:flex;overflow-y:auto}.drawer-footer{border-top:1px solid var(--border);background:var(--slate-light);padding:16px 20px}.chat-bubble{border-radius:8px;max-width:85%;padding:12px 15px;font-size:12px;line-height:1.5}.chat-bubble.admin{background:var(--slate-light);border:1px solid var(--border-dark);color:var(--slate);border-bottom-right-radius:2px;align-self:flex-end}.chat-bubble.operator{background:var(--white);border:1px solid var(--border-dark);color:var(--text-main);border-bottom-left-radius:2px;align-self:flex-start}.chat-bubble.system{border:1px dashed var(--border-dark);color:var(--text-muted);text-align:center;background:#f8fafc;align-self:center;width:100%;max-width:100%;font-size:11px}.chat-header{text-transform:uppercase;color:var(--text-muted);justify-content:space-between;align-items:center;margin-bottom:6px;font-size:10px;font-weight:700;display:flex}.reply-form{flex-direction:column;gap:8px;display:flex}.reply-form textarea{border:1.5px solid var(--border-dark);resize:vertical;border-radius:6px;outline:none;min-height:70px;padding:10px;font-family:inherit;font-size:13px}.reply-form textarea:focus{border-color:var(--primary)}.startup-container{justify-content:center;align-items:center;min-height:calc(100vh - 80px);display:flex}.login-card{background:var(--white);border:1px solid var(--border);border-radius:10px;width:90%;max-width:360px;padding:2.5rem;box-shadow:0 8px 24px #2563eb1a}.login-card h2{text-align:center;color:var(--slate);text-transform:uppercase;letter-spacing:1px;margin-bottom:1.5rem;font-size:14px;font-weight:800}.login-form{flex-direction:column;gap:12px;display:flex}.top-nav{background:var(--white);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:8px;gap:4px;margin-bottom:1.5rem;padding:6px;display:flex}.top-nav button{cursor:pointer;text-transform:uppercase;min-height:36px;color:var(--text-muted);background:0 0;border:none;border-radius:6px;flex:1;font-size:11px;font-weight:800;transition:all .15s}.top-nav button:hover{background:var(--slate-light);color:var(--primary)}.top-nav button.active{background:var(--slate);color:var(--white)}.edit-banner{color:#854d0e;background:#fefce8;border:1px solid #fde047;border-radius:6px;justify-content:space-between;align-items:center;margin-bottom:15px;padding:12px 16px;font-size:12px;font-weight:600;display:flex}.combobox-container{width:100%;position:relative}.combobox-dropdown{background:var(--white);border:1.5px solid var(--border-dark);z-index:100;border-radius:8px;max-height:220px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 20px #0000001a}.combobox-item{cursor:pointer;border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;transition:background .1s;display:flex}.combobox-item:hover{background:var(--slate-light)}.combobox-item:last-child{border-bottom:none}.combobox-add{background:#f8fafc}.combobox-add:hover{background:#e0e7ff}.combobox-actions{gap:5px;display:none}.combobox-item:hover .combobox-actions{display:flex}.flow-container{flex-direction:column;gap:0;display:flex}.flow-section{border:1px solid var(--border);background:var(--white);border-radius:8px;padding:16px;display:flex}.flow-section.highlight{background:#f0f7ff;border-color:#2563eb66}.flow-connector{background:var(--border);width:2px;height:20px;margin-left:28px}.section-badge{background:var(--slate-light);width:32px;height:32px;color:var(--text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-right:16px;font-weight:700;display:flex}.section-badge.active{background:var(--primary);color:var(--white)}.flow-content{flex-grow:1}.record-count{background:var(--slate-light);color:var(--primary);border:1px solid var(--border-dark);border-radius:20px;padding:3px 10px;font-size:11px;font-weight:700}.truncate{white-space:nowrap;text-overflow:ellipsis;max-width:180px;overflow:hidden}.text-muted{color:var(--text-muted)}.text-micro{font-size:10px}.fw-bold{font-weight:700}.fw-500{font-weight:500}.text-center{text-align:center}.uppercase{text-transform:uppercase}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.gap-2{gap:8px}.d-flex{display:flex}.align-center{align-items:center}.indicator-dot{background:var(--primary);border-radius:50%;width:7px;height:7px;margin-right:4px;animation:2s infinite pulse;display:inline-block}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.dashboard-layout{flex-direction:column;gap:20px;width:100%;display:flex}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;width:100%;display:grid}.unified-grid-container{background:var(--white);border:1px solid var(--border);width:100%;box-shadow:var(--shadow-sm);border-radius:8px;overflow:hidden}.grid-header{border-bottom:2px solid var(--border-dark);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;background:#f8fafc;grid-template-columns:.8fr 1fr 1fr 1fr 1fr .8fr 1fr .8fr 1.2fr 1fr;padding:12px 16px;font-size:10px;font-weight:800;display:grid}.grid-row{color:var(--text-main);border-bottom:1px solid #f1f5f9;grid-template-columns:.8fr 1fr 1fr 1fr 1fr .8fr 1fr .8fr 1.2fr 1fr;align-items:center;padding:12px 16px;font-size:12px;transition:background .15s;display:grid}.grid-row:hover{background:#f8fafc}.grid-row:last-child{border-bottom:none}.row-today{background:#eff6ff!important}.row-edited{border-left:3px solid var(--primary)}.grid-cell{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;display:flex;overflow:hidden}.actions-cell{justify-content:center}.action-buttons{align-items:center;gap:4px;display:flex}.today-chip{background:var(--primary);color:#fff;border-radius:3px;padding:2px 6px;font-size:9px;font-weight:800}.cycle-chip{border:1px solid var(--border-dark);background:#f1f5f9;border-radius:4px;padding:2px 7px;font-size:11px;font-weight:700}.empty-state{text-align:center;color:var(--text-muted);padding:48px 20px;font-weight:600}.empty-icon{margin-bottom:8px;font-size:32px}.empty-sub{margin-top:6px;font-size:12px;font-weight:400}@media (width<=1100px){.header-container{flex-wrap:wrap;gap:8px;height:auto;padding:10px}.main-header{height:auto}.lab-app{padding-top:100px}.drawer-content{width:95vw}.notif-panel{width:300px;right:-50px}.toolbar{flex-direction:column;align-items:stretch}.search-group{flex-direction:column;width:100%}.action-group{justify-content:space-between;width:100%}.date-range-group{flex-direction:column;width:100%}.date-range-group .date-input-wrapper,.operator-search{width:100%}.grid-header{display:none}.unified-grid-container{box-shadow:none;background:0 0;border:none}.grid-row{border:1px solid var(--border);background:var(--white);box-shadow:var(--shadow-sm);border-radius:8px;flex-direction:column;gap:12px;margin-bottom:12px;padding:16px;display:flex}.grid-row:hover{background:var(--white)}.grid-cell{text-align:right;white-space:normal;justify-content:space-between;width:100%;display:flex}.actions-cell{border-top:1px solid #f1f5f9;justify-content:flex-end;padding-top:8px}.grid-cell:before{content:attr(data-label);text-transform:uppercase;color:var(--text-muted);text-align:left;flex-shrink:0;margin-right:12px;font-size:10px;font-weight:800}}@media (width<=480px){.input-field,input,select,textarea{font-size:16px!important}.kpi-value{font-size:1.4rem}}@media print{.no-print,.drawer-overlay,.notif-panel{display:none!important}.lab-app{background:var(--white)!important;padding:0!important}.content{max-width:100%!important;padding:0!important}.kpi-grid{display:none!important}.unified-grid-container{box-shadow:none!important;border:none!important}.grid-header,.grid-row{border-bottom:1px solid #000!important;grid-template-columns:.8fr 1fr 1fr 1fr 1fr .8fr 1fr .8fr 1.2fr!important;padding:4px!important;display:grid!important}.grid-header{color:#000!important;font-weight:700!important}.grid-cell{white-space:normal!important;font-size:10px!important}.actions-cell,.grid-cell:before{display:none!important}}
