.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#243b83,#51be9d);padding:2rem}.login-card{background:var(--surface);border-radius:16px;padding:3rem;width:100%;max-width:800px;box-shadow:0 20px 60px #0000004d}.login-header{text-align:center;margin-bottom:2rem}.login-logo{max-width:300px;height:auto;margin:0 auto 1rem;display:block}.login-header p{color:var(--text-light);font-size:1.1rem}.user-selector{margin-bottom:2rem;padding-bottom:2rem;border-bottom:2px solid var(--border)}.user-selector h3{margin-bottom:1rem;color:var(--text);font-size:1.1rem}.user-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.user-card{background:var(--background);border:2px solid var(--border);border-radius:8px;padding:1rem;text-align:center;cursor:pointer;transition:all .2s}.user-card:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow)}.user-card.selected{border-color:var(--primary);background:#243b831a}.user-name{font-weight:600;color:var(--text);margin-bottom:.25rem}.user-role{font-size:.875rem;color:var(--primary);text-transform:capitalize;margin-bottom:.25rem}.user-email{font-size:.75rem;color:var(--text-light)}.login-form{display:flex;flex-direction:column;gap:1.5rem}.form-group input{padding:.75rem;border:1px solid var(--border);border-radius:6px;font-size:1rem;transition:border-color .2s}.form-group input:focus{outline:none;border-color:var(--primary)}.error-message{background:#fee2e2;color:var(--danger);padding:.75rem;border-radius:6px;text-align:center}.login-button{background:var(--primary);color:#fff;border:none;padding:1rem;border-radius:6px;font-size:1.1rem;font-weight:600;transition:background .2s}.login-button:hover{background:var(--primary-dark)}.login-info{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border);text-align:center}.login-info p{color:var(--text-light);font-size:.875rem}@media (max-width: 768px){.login-card{padding:2rem}.user-grid{grid-template-columns:1fr}}.dashboard{width:100%}.dashboard-content h2{font-size:2rem;color:var(--text);margin-bottom:.5rem}.subtitle{color:var(--text-light);font-size:1.1rem;margin-bottom:2rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-top:2rem}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem;display:flex;align-items:center;gap:1.5rem;box-shadow:0 2px 4px var(--shadow);transition:transform .2s,box-shadow .2s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow)}.stat-icon{width:48px;height:48px;color:var(--primary);flex-shrink:0}.stat-value{font-size:2rem;font-weight:700;color:var(--text);margin-bottom:.25rem}.products-page{width:100%}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.page-header h1{font-size:2rem;color:var(--text)}.filters-container{display:flex;gap:1rem;margin-bottom:2rem;flex-wrap:wrap}.search-filter{flex:1;min-width:250px;position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:.75rem;color:var(--text-light);pointer-events:none}.search-input{width:100%;padding:.75rem .75rem .75rem 2.5rem;border:1px solid var(--border);border-radius:6px;font-size:1rem;background:var(--surface);color:var(--text)}.search-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #3b82f61a}.expiration-filter,.type-filter{display:flex;align-items:center;gap:.5rem;min-width:250px}.type-filter{min-width:auto}.checkbox-group{display:flex;gap:1rem;align-items:center}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.95rem;color:var(--text);-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--primary)}.checkbox-label:hover{color:var(--primary)}.filter-icon{color:var(--text-light)}.filter-select{flex:1;padding:.75rem;border:1px solid var(--border);border-radius:6px;font-size:1rem;background:var(--surface);color:var(--text);cursor:pointer}.filter-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #3b82f61a}.no-products{text-align:center;padding:3rem;color:var(--text-light);font-size:1.1rem}.btn-primary{background:var(--primary);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;display:flex;align-items:center;gap:.5rem;font-weight:500;transition:background .2s}.btn-primary:hover{background:var(--primary-dark)}.btn-secondary{background:var(--text-light);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;font-weight:500;transition:background .2s}.btn-secondary:hover:not(:disabled){background:var(--primary-dark);color:#fff}.btn-secondary:disabled{background:#d1d5db;color:#9ca3af;cursor:not-allowed;opacity:.6}.products-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.product-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem;transition:transform .2s,box-shadow .2s;position:relative}.expiration-badge{display:inline-block;padding:.25rem .75rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-top:.25rem}.expired-badge{background:#fee2e2;color:#dc2626}.expiring-badge{background:#fef3c7;color:#d97706}.product-actions{display:flex;gap:.5rem}.icon-btn{background:none;border:none;padding:.5rem;border-radius:4px;color:var(--text-light);transition:all .2s}.icon-btn.danger:hover{background:#fee2e2;color:var(--danger)}.product-title-section h3{font-size:1.25rem;color:var(--text);margin-bottom:.5rem}.product-description{color:var(--text-light);margin-bottom:1rem;font-size:.9rem}.product-details{display:flex;flex-direction:column;gap:.5rem}.detail-item .price{color:var(--secondary);font-weight:600}.low-stock{color:var(--danger);font-weight:600}.kit-badge{display:inline-block;padding:.25rem .75rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;background:#e0e7ff;color:#4338ca;margin-left:.5rem}.kit-items{margin-top:.5rem}.kit-items-list{list-style:none;margin-top:.5rem;padding-left:0}.kit-items-list li{padding:.25rem 0;font-size:.85rem;color:var(--text)}.kit-section{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.kit-section h3{margin-bottom:1rem;color:var(--text);font-size:1rem}.add-kit-item-form{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.kit-item-name-input{flex:2;min-width:200px;padding:.75rem;border:1px solid var(--border);border-radius:6px;font-size:1rem}.kit-item-date-input{flex:1;min-width:150px;padding:.75rem;border:1px solid var(--border);border-radius:6px;font-size:1rem}.kit-items-list-form{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.kit-item-row{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--background);border:1px solid var(--border);border-radius:6px}.kit-item-name{flex:1;font-weight:500;color:var(--text)}.kit-tooltip{position:absolute;top:100%;left:0;right:0;margin-top:.5rem;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1rem;box-shadow:0 4px 12px #00000026;z-index:100;max-height:300px;overflow-y:auto}.kit-tooltip-header{margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.kit-tooltip-header strong{color:var(--text);font-size:.9rem}.kit-tooltip-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.kit-tooltip-list li{font-size:.85rem;color:var(--text);padding:.25rem 0}.btn-view-kit-items{background:var(--primary);color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:500;cursor:pointer;transition:background .2s;width:100%;justify-content:center;margin-top:.5rem}.btn-view-kit-items:hover{background:var(--primary-dark)}.kit-details-content{margin:1.5rem 0;max-height:400px;overflow-y:auto}.kit-details-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1rem}.kit-details-item{padding:1rem;background:var(--background);border:1px solid var(--border);border-radius:8px;border-left:4px solid var(--border)}.kit-details-item.expired{border-left-color:#dc2626;background:#fee2e2}.kit-details-item.expiring-soon{border-left-color:#d97706;background:#fef3c7}.kit-details-item-name{margin-bottom:.5rem;font-size:1rem}.kit-details-item-name strong{color:var(--text)}.kit-details-item-date{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.9rem}.kit-details-item-date .label{color:var(--text-light);font-weight:500}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--surface);border-radius:12px;padding:2rem;width:90%;max-width:600px;max-height:90vh;overflow-y:auto}.modal-content h2{margin-bottom:1.5rem;color:var(--text)}.form-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.form-group label{font-weight:500;color:var(--text)}.form-group input,.form-group textarea,.form-group select{padding:.75rem;border:1px solid var(--border);border-radius:6px;font-size:1rem}.form-group textarea{min-height:80px;resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-row-batch{grid-template-columns:2fr 1fr 2fr}.form-group-quantity{max-width:110px}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem}.batches-list{margin-top:1rem;margin-bottom:1rem}.batches-list h4{font-size:1rem;margin-bottom:.75rem;color:var(--text)}.batch-card{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:1rem;margin-bottom:.75rem}.batch-header{display:flex;align-items:center;gap:1rem;margin-bottom:.5rem}.batch-items{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border)}.batch-items ul{list-style:none;padding:0;margin:.5rem 0 0}.batch-items li{padding:.25rem 0;color:var(--text-light);font-size:.9rem}.batch-edit-form{padding:1rem;background:var(--background);border-radius:6px}.batch-edit-header{margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.batch-edit-header h5{margin:0;color:var(--text);font-size:1rem}.batch-edit-actions{display:flex;gap:.75rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.batch-header{display:flex;align-items:center;gap:1rem;margin-bottom:.5rem;flex-wrap:wrap}.batch-header strong{color:var(--text)}.batch-header span{color:var(--text-light);font-size:.9rem}.icon-btn{background:transparent;border:1px solid var(--border);border-radius:4px;padding:.25rem .5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text);transition:all .2s}.icon-btn:hover{background:var(--surface);border-color:var(--primary);color:var(--primary)}.icon-btn.danger{color:var(--danger);border-color:var(--danger)}.icon-btn.danger:hover{background:var(--danger);color:#fff}.kit-item-edit-form{width:100%;padding:.75rem;background:var(--background);border:1px solid var(--border);border-radius:6px;margin-top:.5rem}.kit-item-row{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--surface);border:1px solid var(--border);border-radius:6px;margin-bottom:.5rem}.kit-item-name{font-weight:500;color:var(--text)}.kit-item-date{color:var(--text-light);font-size:.9rem}.kit-batch-details{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:1rem;margin-bottom:1rem}.batch-details-header{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.batch-details-header strong{color:var(--text);font-size:1rem}.batch-details-header span{color:var(--text-light);font-size:.9rem}.batch-items-details{margin-top:.5rem}.batch-items-details strong{display:block;margin-bottom:.5rem;color:var(--text);font-size:.9rem}.new-batch-form{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:1rem;margin-top:1rem}.new-batch-form h4{font-size:1rem;margin-bottom:1rem;color:var(--text)}.product-batches-section,.kit-section{margin-top:1rem}.help-text{color:var(--text-light);font-size:.9rem;margin-bottom:1rem}@media (max-width: 768px){.form-row,.form-row-batch{grid-template-columns:1fr}.form-group-quantity{max-width:100%}.filters-container{flex-direction:column}.search-filter,.expiration-filter{min-width:100%}.batch-header{flex-direction:column;align-items:flex-start;gap:.5rem}.modal-content{width:98%;max-width:100%;padding:1.5rem}}.patients-page{width:100%}.patients-filters{margin-bottom:1.5rem;padding:1rem;background:var(--surface);border:1px solid var(--border);border-radius:8px;display:flex;align-items:center;gap:1rem}.filter-group{display:flex;align-items:center;gap:.5rem}.filter-group label{color:var(--text);font-weight:500;white-space:nowrap}.filter-select{padding:.5rem 1rem;border:1px solid var(--border);border-radius:6px;background:var(--background);color:var(--text);font-size:.9rem;min-width:250px}.filter-select:focus{outline:none;border-color:var(--primary)}.patients-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.patient-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem;transition:transform .2s,box-shadow .2s}.patient-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow)}.patient-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.patient-icon{color:var(--primary);width:32px;height:32px}.patient-actions{display:flex;gap:.5rem}.patient-card h3{font-size:1.25rem;color:var(--text);margin-bottom:1rem}.patient-details{display:flex;flex-direction:column;gap:.5rem}.detail-item{display:flex;justify-content:space-between;font-size:.9rem}.detail-item .label{color:var(--text-light);font-weight:500}.protocols-page{width:100%}.protocols-filters{display:flex;gap:1rem;margin-bottom:1.5rem;align-items:center}.search-bar{flex:1;display:flex;align-items:center;gap:.75rem;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.75rem 1rem}.search-bar svg{color:var(--text-light);flex-shrink:0}.search-bar input{flex:1;border:none;outline:none;font-size:1rem;background:transparent;color:var(--text)}.search-bar input::placeholder{color:var(--text-light)}.filter-toggle{white-space:nowrap;display:flex;align-items:center;gap:.5rem}.filters-panel{display:flex;gap:1rem;margin-bottom:1.5rem;padding:1rem;background:var(--surface);border:1px solid var(--border);border-radius:8px}.filter-group{flex:1;display:flex;flex-direction:column;gap:.5rem}.filter-group label{font-weight:500;color:var(--text);font-size:.9rem}.filter-group select{padding:.75rem;border:1px solid var(--border);border-radius:6px;font-size:1rem;background:var(--surface);color:var(--text)}.drafts-section{margin-bottom:2rem}.drafts-section h3{margin-bottom:1rem;color:var(--text);font-size:1.1rem}.drafts-list{display:flex;flex-direction:column;gap:.75rem}.draft-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--surface);border:2px dashed var(--border);border-radius:8px;cursor:pointer;transition:all .2s}.draft-card:hover{border-color:var(--primary);background:#243b830d}.draft-card svg:first-child{color:var(--primary);flex-shrink:0}.draft-card>div{flex:1;display:flex;flex-direction:column;gap:.25rem}.draft-card strong{color:var(--text);font-size:.95rem}.draft-card span{color:var(--text-light);font-size:.85rem}.draft-card .icon-btn{margin-left:auto;padding:.5rem}.protocols-list{display:flex;flex-direction:column;gap:1.5rem}.empty-state{text-align:center;padding:3rem;color:var(--text-light);background:var(--surface);border-radius:12px}.protocol-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem;transition:transform .2s,box-shadow .2s}.protocol-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow)}.protocol-header-actions,.protocol-actions{display:flex;align-items:center;gap:.5rem}.protocol-patient{color:var(--text-light);font-size:.9rem}.status-badge{padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase}.protocol-description{color:var(--text-light);margin-bottom:1rem;line-height:1.6}.protocol-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem;margin-bottom:1rem}.detail-row{display:flex;justify-content:space-between;font-size:.9rem}.detail-row span:first-child{color:var(--text-light);font-weight:500}.protocol-value{color:var(--secondary);font-weight:600}.protocol-items{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.protocol-items li{padding:.5rem;background:var(--background);border-radius:6px;margin-bottom:.5rem;font-size:.9rem}.protocol-item-name{display:inline-flex;align-items:center;gap:.5rem;flex-wrap:wrap}.modal-content.large{max-width:1200px;width:95%;max-height:95vh;display:flex;flex-direction:column}.protocol-modal{padding:0;overflow:hidden}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;border-bottom:1px solid var(--border);background:var(--surface)}.modal-header h2{margin:0;color:var(--text);font-size:1.5rem}.modal-header .icon-btn{padding:.5rem;color:var(--text-light)}.modal-header .icon-btn:hover{color:var(--text);background:var(--background)}.modal-body{flex:1;overflow-y:auto;padding:2.5rem}.modal-body form{display:flex;flex-direction:column;gap:1.5rem}.modal-footer{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;border-top:1px solid var(--border);background:var(--surface);box-shadow:0 -2px 8px #0000000d;position:sticky;bottom:0;z-index:10}.footer-actions{display:flex;gap:1rem}.items-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border)}.items-section h3{margin-bottom:1rem;color:var(--text);font-size:1.1rem}.add-item-form{display:flex;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.add-item-form .product-select{flex:2;min-width:200px;padding:.75rem;border:1px solid var(--border);border-radius:6px;font-size:1rem}.add-item-form .quantity-input{flex:1;min-width:120px;padding:.75rem;border:1px solid var(--border);border-radius:6px;font-size:1rem}.add-item-form .add-item-btn{padding:.75rem 1.5rem;white-space:nowrap}.items-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem;min-height:60px}.empty-items{text-align:center;padding:2rem;color:var(--text-light);font-style:italic;background:var(--background);border-radius:6px;border:1px dashed var(--border)}.item-row{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--background);border-radius:8px;border:1px solid var(--border);transition:all .2s}.item-row:hover{border-color:var(--primary);background:#243b830d}.item-info{display:flex;flex-direction:column;gap:.25rem;flex:1}.item-name{font-weight:600;color:var(--text);font-size:.95rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.item-details{color:var(--text-light);font-size:.85rem}.remove-item-btn{padding:.5rem;color:var(--danger);flex-shrink:0}.remove-item-btn:hover{background:#ef44441a}.total-info{background:linear-gradient(135deg,#243b831a,#51be9d1a);padding:1.5rem;border-radius:8px;margin-top:1rem;border:1px solid var(--border)}.total-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;font-size:.95rem}.total-row:last-child{margin-bottom:0}.total-row.highlight{padding-top:.75rem;border-top:2px solid var(--primary);margin-top:.75rem;font-size:1.1rem}.total-row span{color:var(--text);font-weight:500}.total-row strong{color:var(--secondary);font-weight:700}.total-row.highlight strong{color:var(--primary);font-size:1.2rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:500;color:var(--text);font-size:.95rem}.form-group input,.form-group textarea,.form-group select{padding:.75rem;border:1px solid var(--border);border-radius:6px;font-size:1rem;transition:border-color .2s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #243b831a}.form-group textarea{resize:vertical;min-height:80px}.form-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.btn-primary,.btn-secondary{padding:.75rem 1.5rem;border-radius:6px;font-weight:500;font-size:1rem;border:none;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:.5rem}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-1px);box-shadow:0 4px 8px #243b834d}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--background);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--surface);border-color:var(--primary);color:var(--primary)}.icon-btn{background:transparent;border:none;cursor:pointer;padding:.5rem;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;transition:all .2s;color:var(--text-light)}.icon-btn:hover{background:var(--background);color:var(--text)}.icon-btn.danger{color:var(--danger)}.icon-btn.danger:hover{background:#ef44441a}.confirmation-modal,.success-modal{max-width:500px;text-align:center;padding:2.5rem 2rem}.confirmation-icon{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem}.confirmation-icon.success{background:#51be9d1a;color:var(--secondary)}.confirmation-icon.danger{background:#ef44441a;color:var(--danger)}.confirmation-modal h2,.success-modal h2{margin-bottom:1rem;color:var(--text);font-size:1.5rem}.confirmation-modal p,.success-modal p{color:var(--text-light);margin-bottom:1.5rem;line-height:1.6;font-size:1rem}.confirmation-details{background:var(--background);border:1px solid var(--border);border-radius:8px;padding:1rem;margin-bottom:1.5rem;display:flex;flex-direction:column;gap:.5rem}.confirmation-details strong{color:var(--text);font-size:1rem}.confirmation-details span{color:var(--text-light);font-size:.9rem}.confirmation-modal .modal-actions,.success-modal .modal-actions{justify-content:center;margin-top:0}.btn-danger{background:var(--danger);color:#fff;padding:.75rem 1.5rem;border-radius:6px;font-weight:500;font-size:1rem;border:none;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:.5rem}.btn-danger:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 4px 8px #ef44444d}.autocomplete-wrapper{position:relative}.autocomplete-container{position:relative;width:100%}.autocomplete-container input{width:100%;padding:.75rem;border:1px solid var(--border);border-radius:6px;font-size:1rem;transition:border-color .2s}.autocomplete-container input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #243b831a}.autocomplete-container input.has-value{border-color:var(--secondary)}.autocomplete-container input.invalid{border-color:var(--danger)}.autocomplete-error{color:var(--danger);font-size:.85rem;margin-top:.5rem;display:flex;align-items:center;gap:.25rem}.autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 12px #00000026;max-height:300px;overflow-y:auto;z-index:1000;margin-top:4px}.autocomplete-item{padding:.75rem 1rem;cursor:pointer;transition:background-color .15s;border-bottom:1px solid var(--border)}.autocomplete-item:last-child{border-bottom:none}.autocomplete-item:hover,.autocomplete-item.highlighted{background:#243b831a}.autocomplete-item.selected{background:#51be9d1a;border-left:3px solid var(--secondary)}.autocomplete-item-name{font-weight:600;color:var(--text);margin-bottom:.25rem;font-size:.95rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.autocomplete-item-details{font-size:.85rem;color:var(--text-light);display:flex;align-items:center;gap:.5rem}.stock-info{color:var(--secondary);font-weight:500}.expiring-badge-small,.expired-badge-small{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}.expiring-badge-small{background:#fef3c7;color:#d97706}.expired-badge-small{background:#fee2e2;color:#dc2626}.kit-badge-small{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;background:#e0e7ff;color:#4338ca;white-space:nowrap}.kit-items-sublist{list-style:none;margin-top:.5rem;margin-left:1rem;padding-left:0}.kit-item-subitem{padding:.5rem;background:var(--background);border-radius:4px;margin-bottom:.25rem;font-size:.85rem;color:var(--text);display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.autocomplete-empty{padding:1.5rem;text-align:center;color:var(--text-light);font-style:italic}.autocomplete-product{flex:2;min-width:200px}.autocomplete-product .autocomplete-container{width:100%}.autocomplete-dropdown::-webkit-scrollbar{width:6px}.autocomplete-dropdown::-webkit-scrollbar-track{background:var(--background);border-radius:3px}.autocomplete-dropdown::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.autocomplete-dropdown::-webkit-scrollbar-thumb:hover{background:var(--text-light)}@media (max-width: 768px){.protocols-filters{flex-direction:column}.search-bar{width:100%}.filters-panel{flex-direction:column}.form-row{grid-template-columns:1fr}.add-item-form{flex-direction:column}.add-item-form .product-select,.add-item-form .quantity-input,.add-item-form .add-item-btn{width:100%}.modal-footer{flex-direction:column;gap:1rem}.footer-actions{width:100%;flex-direction:column}.footer-actions button{width:100%}.protocol-details{grid-template-columns:1fr}.modal-content.large{width:98%;max-width:100%;max-height:98vh}.modal-header,.modal-body,.modal-footer{padding:1.5rem}.confirmation-modal,.success-modal{width:90%;padding:2rem 1.5rem}.confirmation-icon{width:60px;height:60px}.confirmation-icon svg{width:36px;height:36px}.autocomplete-dropdown{max-height:200px}.autocomplete-item{padding:.625rem .875rem}.autocomplete-item-name{font-size:.9rem}.autocomplete-item-details{font-size:.8rem}}.batch-select-wrapper{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}.batch-select-wrapper label{font-weight:500;color:var(--text);font-size:.9rem}.batch-select{padding:.75rem;border:1px solid var(--border);border-radius:6px;font-size:.9rem;background:var(--surface);color:var(--text);width:100%}.batch-select:focus{outline:none;border-color:var(--primary)}.batch-badge-small{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.65rem;font-weight:600;background:#e0e7ff;color:#4338ca;margin-left:.5rem}.batches-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem;margin-top:1rem;margin-bottom:1rem}.batch-card-select{background:var(--surface);border:2px solid var(--border);border-radius:8px;padding:1.25rem;cursor:pointer;transition:all .2s;min-height:180px}.batch-card-select:hover{border-color:var(--primary);box-shadow:0 2px 8px #0000001a}.batch-card-select.selected{border-color:var(--primary);background:#3b82f60d;box-shadow:0 2px 8px #3b82f633}.batch-card-select.expired{border-color:var(--danger);background:#ef44440d}.batch-card-select.expiring-soon{border-color:var(--warning);background:#f59e0b0d}.batch-card-header-select{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.batch-radio{display:flex;align-items:center;gap:.5rem}.batch-radio input[type=radio]{cursor:pointer}.batch-radio strong{color:var(--text);font-size:1rem}.btn-view-batch{background:var(--primary);color:#fff;border:none;border-radius:4px;padding:.375rem .75rem;cursor:pointer;display:flex;align-items:center;gap:.25rem;transition:all .2s}.btn-view-batch:hover{background:var(--primary-dark);transform:scale(1.05)}.batch-card-info{display:flex;flex-direction:column;gap:.5rem}.batch-info-row{display:flex;justify-content:space-between;align-items:center}.batch-label{color:var(--text-light);font-size:.9rem}.batch-value{color:var(--text);font-weight:500;font-size:.9rem}.batch-value.low-stock{color:var(--warning);font-weight:600}.batch-value.expired{color:var(--danger);font-weight:600}.batch-value.expiring-soon{color:var(--warning);font-weight:600}.batch-status-badge{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;margin-top:.5rem;text-align:center}.batch-status-badge.expired{background:#ef44441a;color:var(--danger)}.batch-status-badge.expiring{background:#f59e0b1a;color:var(--warning)}.batch-details-modal-content{max-height:60vh;overflow-y:auto;margin:1.5rem 0}.batch-details-info{background:var(--background);border-radius:6px;padding:1rem;margin-bottom:1.5rem}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border)}.detail-row:last-child{border-bottom:none}.detail-label{color:var(--text-light);font-weight:500}.detail-value{color:var(--text);font-weight:600}.detail-value.expired{color:var(--danger)}.detail-value.expiring-soon{color:var(--warning)}.batch-items-details{margin-top:1.5rem}.batch-items-details h3{margin-bottom:1rem;color:var(--text);font-size:1.1rem}.batch-items-list{list-style:none;padding:0;margin:0}.batch-item-detail{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:1rem;margin-bottom:.75rem}.batch-item-detail.expired{border-color:var(--danger);background:#ef44440d}.batch-item-detail.expiring-soon{border-color:var(--warning);background:#f59e0b0d}.batch-item-name{margin-bottom:.5rem}.batch-item-name strong{color:var(--text);font-size:1rem}.batch-item-date{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.batch-item-date .label{color:var(--text-light);font-size:.9rem}.batch-item-date .expired-date{color:var(--danger);font-weight:600}.batch-item-date .expiring-date{color:var(--warning);font-weight:600}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.modal-header h2{margin:0;color:var(--text)}.selected-batch-info{background:var(--surface);border:2px solid var(--primary);border-radius:8px;padding:1rem;margin-top:1rem;margin-bottom:1rem}.selected-batch-badge{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.selected-batch-badge strong{color:var(--primary);font-size:1rem}.btn-change-batch{background:var(--primary);color:#fff;border:none;border-radius:4px;padding:.5rem 1rem;cursor:pointer;font-size:.875rem;transition:all .2s}.btn-change-batch:hover{background:var(--primary-dark);transform:scale(1.05)}.selected-batch-details{color:var(--text-light);font-size:.9rem}.batch-select-modal{max-width:1000px;width:90%;max-height:90vh}@media (max-width: 768px){.batches-grid{grid-template-columns:1fr}.batch-select-modal{width:95%;max-height:95vh}.selected-batch-badge{flex-direction:column;align-items:flex-start;gap:.5rem}}.next-appointments-modal{max-width:900px}.next-appointments-list{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:1rem}.next-appointment-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1.5rem}.appointment-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.appointment-card-header h3{margin:0;font-size:1.1rem;color:var(--text)}.help-text{font-size:.9rem;line-height:1.5;margin-bottom:1rem}.reception-page{width:100%}.reception-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}.filter-tabs{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:2px solid var(--border)}.filter-tab{background:none;border:none;padding:1rem 1.5rem;color:var(--text-light);font-weight:500;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s}.filter-tab:hover{color:var(--primary)}.filter-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.payment-status{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.status-icon{width:32px;height:32px}.status-icon.paid{color:var(--secondary)}.status-icon.partial{color:var(--warning)}.status-icon.pending{color:var(--danger)}.status-text{font-weight:600;text-transform:uppercase;font-size:.75rem}.status-text.pago{color:var(--secondary)}.status-text.parcial{color:var(--warning)}.status-text.pendente{color:var(--danger)}.protocol-items-summary{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.protocol-items-summary ul{list-style:none;margin-top:.5rem}.protocol-items-summary li{padding:.5rem;background:var(--background);border-radius:6px;margin-bottom:.5rem;display:flex;justify-content:space-between;font-size:.9rem}.item-price{color:var(--text-light);font-size:.85rem}.payment-info{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.payment-details{display:flex;flex-direction:column;gap:.75rem}.payment-row{display:flex;justify-content:space-between;font-size:.9rem}.payment-row span:first-child{color:var(--text-light);font-weight:500}.total-value{color:var(--text);font-weight:600;font-size:1.1rem}.paid-value{color:var(--secondary);font-weight:600}.remaining-value{color:var(--danger);font-weight:600}.payment-action{display:flex;flex-direction:column;gap:.75rem}.payment-action input{padding:.75rem;border:1px solid var(--border);border-radius:6px;font-size:1rem}@media (max-width: 768px){.payment-info{grid-template-columns:1fr}}.nursing-page{width:100%}.view-toggle{display:flex;gap:.5rem;background:var(--background);padding:.25rem;border-radius:8px}.toggle-btn{background:none;border:none;padding:.5rem 1rem;border-radius:6px;color:var(--text-light);font-weight:500;cursor:pointer;transition:all .2s}.toggle-btn:hover{color:var(--text)}.toggle-btn.active{background:var(--primary);color:#fff}.protocol-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.protocol-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.protocol-header h3{font-size:1.25rem;color:var(--text);margin-bottom:.25rem}.protocol-patient,.protocol-doctor{color:var(--text-light);font-size:.9rem}.status-badge.orange{background:#fed7aa;color:#9a3412}.protocol-progress{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.progress-info{display:flex;flex-direction:column;gap:.5rem}.progress-bar{width:100%;height:8px;background:var(--background);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:var(--primary);transition:width .3s}.protocol-items{margin-bottom:1rem}.protocol-items ul{list-style:none;margin-top:.5rem}.protocol-items li{display:flex;justify-content:space-between;padding:.75rem;background:var(--background);border-radius:6px;margin-bottom:.5rem;font-size:.9rem}.item-name{font-weight:500}.item-quantity{color:var(--text-light)}.protocol-frequency{margin-bottom:1rem;padding:1rem;background:var(--background);border-radius:6px;font-size:.9rem}.complete-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem}.complete-btn:disabled{opacity:.5;cursor:not-allowed}.schedule-view{display:flex;flex-direction:column;gap:2rem}.schedule-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem}.schedule-header{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid var(--border)}.schedule-header h3{font-size:1.5rem;color:var(--text);margin-bottom:.5rem}.schedule-header p{color:var(--text-light)}.schedule-weeks{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.week-card{background:var(--background);border:1px solid var(--border);border-radius:8px;padding:1rem;position:relative}.week-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.week-number{font-weight:600;color:var(--primary)}.week-date{color:var(--text-light);font-size:.875rem}.week-items{font-size:.9rem}.week-items ul{list-style:none;margin-top:.5rem}.week-items li{padding:.5rem;background:var(--surface);border-radius:4px;margin-bottom:.25rem;font-size:.85rem}.week-completed{position:absolute;top:.5rem;right:.5rem;display:flex;align-items:center;gap:.25rem;color:var(--secondary);font-size:.75rem;font-weight:600}@media (max-width: 768px){.schedule-weeks{grid-template-columns:1fr}}.stock-page{width:100%}.stock-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem;display:flex;align-items:center;gap:1.5rem}.stat-card.warning{border-color:var(--warning);background:#f59e0b1a}.stat-icon{width:48px;height:48px;color:var(--primary)}.stat-card.warning .stat-icon{color:var(--warning)}.stat-info{flex:1}.stat-value{font-size:1.5rem;font-weight:700;color:var(--text);margin-bottom:.25rem}.stat-label{color:var(--text-light);font-size:.9rem}.stock-content{display:grid;grid-template-columns:2fr 1fr;gap:2rem}.products-section h2,.movements-section h2{font-size:1.5rem;color:var(--text);margin-bottom:1rem}.products-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.product-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem;transition:transform .2s,box-shadow .2s}.product-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow)}.product-card.low-stock{border-color:var(--warning);background:#f59e0b0d}.product-card.expired{border-color:#ef4444;border-width:2px}.product-card.expiring-soon{border-color:#f59e0b;border-width:2px}.product-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.product-icon{color:var(--primary);width:32px;height:32px}.alert-icon{color:var(--warning);width:24px;height:24px}.product-card h3{font-size:1.1rem;color:var(--text);margin-bottom:.25rem}.product-category{color:var(--text-light);font-size:.85rem;margin-bottom:1rem}.stock-info{display:flex;flex-direction:column;gap:.5rem}.stock-row{display:flex;justify-content:space-between;font-size:.9rem}.stock-row span:first-child{color:var(--text-light);font-weight:500}.low-stock-value{color:var(--danger);font-weight:600}.available-stock{color:var(--secondary);font-weight:600}.movements-list{display:flex;flex-direction:column;gap:1rem;max-height:800px;overflow-y:auto}.movement-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1rem}.movement-header{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem}.movement-icon{width:32px;height:32px;flex-shrink:0}.movement-icon.entry{color:var(--secondary)}.movement-icon.exit{color:var(--danger)}.movement-info{flex:1}.movement-product{font-weight:600;color:var(--text);margin-bottom:.25rem}.movement-type{font-size:.85rem;color:var(--text-light);text-transform:capitalize}.movement-quantity{font-weight:600;font-size:1.1rem}.movement-details{padding-top:.75rem;border-top:1px solid var(--border);font-size:.85rem;color:var(--text-light)}.movement-reason{margin-bottom:.5rem}.movement-patient{margin-bottom:.25rem}.movement-date{font-size:.75rem}.kit-items-section{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.kit-items-label{font-weight:600;color:var(--text);font-size:.85rem;margin-bottom:.5rem;display:block}.kit-items-list{list-style:none;padding:0;margin:.5rem 0 0;display:flex;flex-direction:column;gap:.25rem}.kit-item{font-size:.8rem;color:var(--text);padding:.25rem 0}.kit-item.expired{color:#dc2626}.kit-item.expiring-soon{color:#d97706}.expired-date{color:#dc2626;font-weight:600}.expiring-date{color:#d97706;font-weight:600}.movement-kit-items{margin-top:.5rem;padding:.5rem;background:var(--background);border-radius:4px;font-size:.85rem}.movement-kit-items strong{display:block;margin-bottom:.25rem;color:var(--text)}.movement-kit-items ul{list-style:none;padding-left:0;margin:.25rem 0 0}.movement-kit-items li{padding:.125rem 0;color:var(--text-light);font-size:.8rem}.empty-state{text-align:center;padding:2rem;color:var(--text-light)}.batches-section{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.batches-label{display:block;font-weight:600;margin-bottom:.5rem;color:var(--text);font-size:.9rem}.batches-list{list-style:none;padding:0;margin:0}.batch-item{background:var(--background);border:1px solid var(--border);border-radius:6px;padding:.75rem;margin-bottom:.5rem}.batch-item.expired{border-color:var(--danger);background:#ef44440d}.batch-item.expiring-soon{border-color:var(--warning);background:#f59e0b0d}.batch-info{display:flex;flex-direction:column;gap:.25rem}.batch-number{font-weight:600;color:var(--text);font-size:.9rem}.batch-quantity{color:var(--text-light);font-size:.85rem}.batch-kit-items{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border)}.batch-kit-items strong{display:block;margin-bottom:.25rem;color:var(--text);font-size:.85rem}.batch-kit-items ul{list-style:none;padding-left:0;margin:.25rem 0 0}.batch-kit-items li{padding:.125rem 0;color:var(--text-light);font-size:.8rem}.batch-kit-items li.expired{color:var(--danger)}.batch-kit-items li.expiring-soon{color:var(--warning)}@media (max-width: 1024px){.stock-content{grid-template-columns:1fr}}.appointments-page{width:100%}.date-filter{display:flex;align-items:center;gap:1rem;margin-bottom:2rem;padding:1rem;background:var(--surface);border-radius:8px;border:1px solid var(--border)}.date-filter label{font-weight:500;color:var(--text)}.date-filter input{padding:.5rem;border:1px solid var(--border);border-radius:6px;font-size:1rem}.appointments-list{display:flex;flex-direction:column;gap:1rem}.appointment-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem;transition:transform .2s,box-shadow .2s}.appointment-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow)}.appointment-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.appointment-time{display:flex;align-items:center;gap:.5rem;color:var(--primary);font-weight:600;font-size:1.1rem;margin-bottom:.5rem}.appointment-card h3{font-size:1.25rem;color:var(--text);margin-bottom:.25rem}.appointment-doctor{color:var(--text-light);font-size:.9rem}.status-badge{display:flex;align-items:center;gap:.5rem;padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase}.status-badge.blue{background:#dbeafe;color:var(--primary-dark)}.status-badge.green{background:#d1fae5;color:#065f46}.status-badge.purple{background:#e9d5ff;color:#6b21a8}.status-badge.red{background:#fee2e2;color:#991b1b}.appointment-protocol{margin-bottom:.75rem;padding:.75rem;background:var(--background);border-radius:6px;font-size:.9rem}.appointment-notes{margin-bottom:1rem;padding:.75rem;background:var(--background);border-radius:6px;font-size:.9rem;color:var(--text-light)}.appointment-actions{display:flex;gap:.5rem;flex-wrap:wrap}.btn-danger{background:var(--danger);color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;font-weight:500;transition:background .2s}.btn-danger:hover{background:#dc2626}.empty-state{text-align:center;padding:4rem 2rem;color:var(--text-light)}.history-page{padding:2rem;max-width:1400px;margin:0 auto}.history-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.history-page .page-header h1{display:flex;align-items:center;gap:.75rem;font-size:1.75rem;color:#1a1a1a}.view-toggle{display:flex;gap:.5rem;background:#f5f5f5;padding:.25rem;border-radius:8px}.toggle-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:none;background:transparent;border-radius:6px;cursor:pointer;font-size:.9rem;color:#666;transition:all .2s}.toggle-btn:hover{background:#e8e8e8}.toggle-btn.active{background:#2563eb;color:#fff}.history-filters{display:flex;gap:1rem;align-items:center;margin-bottom:2rem;padding:1rem;background:#f9fafb;border-radius:8px;flex-wrap:wrap}.filter-group{display:flex;align-items:center;gap:.5rem;font-weight:500;color:#374151}.filter-select{padding:.5rem 1rem;border:1px solid #d1d5db;border-radius:6px;background:#fff;font-size:.9rem;cursor:pointer;min-width:180px}.filter-select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.history-content{display:flex;flex-direction:column;gap:1.5rem}.history-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.history-card-header{padding:1.5rem;background:var(--primary, #243B83);color:#fff;display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:1rem}.history-card-header .patient-info,.history-card-header .protocol-info{display:flex;align-items:flex-start;gap:1rem;flex:1}.history-card-header .patient-icon,.history-card-header .protocol-icon{width:48px;height:48px;padding:12px;background:#fff3;border-radius:8px}.history-card-header .patient-info h3,.history-card-header .protocol-info h3{margin:0 0 .5rem;font-size:1.25rem;font-weight:600;color:#fff}.history-card-header .patient-details,.history-card-header .protocol-details{margin:.25rem 0;font-size:.9rem;color:#ffffffe6;opacity:.9}.history-card-header .protocol-status{margin:.5rem 0 0;font-size:.85rem;color:#ffffffd9;opacity:.85}.history-stats{display:flex;gap:2rem;flex-wrap:wrap}.history-card-header .stat-item{display:flex;flex-direction:column;gap:.25rem}.history-card-header .stat-label{font-size:.85rem;color:#ffffffe6;opacity:.9}.history-card-header .stat-value{font-size:1.1rem;font-weight:600;color:#fff}.movements-timeline{padding:1.5rem}.movements-timeline h4{margin:0 0 1.5rem;color:#374151;font-size:1.1rem;font-weight:600}.timeline-item{display:flex;gap:1rem;border-left:2px solid #e5e7eb;padding:1rem 0 1rem 1.5rem;position:relative;margin-left:1rem}.timeline-item:last-child{border-left:none}.timeline-item:before{content:"";position:absolute;left:-6px;top:1.5rem;width:12px;height:12px;border-radius:50%;background:#2563eb;border:2px solid white;box-shadow:0 0 0 2px #2563eb}.timeline-marker{margin-top:.25rem}.movement-icon{width:24px;height:24px;color:#6b7280}.movement-icon.entry{color:#10b981}.movement-icon.exit{color:#ef4444}.movement-icon.reserve{color:#f59e0b}.movement-icon.release{color:#3b82f6}.timeline-content{flex:1;background:#f9fafb;padding:1rem;border-radius:8px}.timeline-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;flex-wrap:wrap;gap:.5rem}.movement-type-badge{padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:500;background:#e5e7eb;color:#374151}.timeline-date{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#6b7280}.timeline-details{display:flex;flex-direction:column;gap:.5rem}.timeline-product{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem}.timeline-product strong{color:#1a1a1a;font-size:1rem}.timeline-quantity{padding:.25rem .75rem;background:#fff;border-radius:6px;font-weight:500;color:#374151}.timeline-protocol{display:flex;align-items:center;gap:.5rem;color:#6b7280;font-size:.9rem}.timeline-reason{color:#4b5563;font-size:.9rem;font-style:italic}.timeline-user{font-size:.85rem;color:#9ca3af}.kit-badge-small{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;background:#e0e7ff;color:#4338ca;white-space:nowrap;margin-left:.5rem}.timeline-kit-items{margin-top:.5rem;padding:.75rem;background:#f3f4f6;border-radius:6px;border-left:3px solid #4338ca}.timeline-kit-items strong{display:block;margin-bottom:.5rem;color:#1a1a1a;font-size:.9rem}.timeline-kit-items ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem}.timeline-kit-items li{font-size:.85rem;color:#4b5563;padding:.25rem 0}.empty-state{text-align:center;padding:4rem 2rem;color:#9ca3af}.empty-state svg{margin-bottom:1rem;opacity:.5}.empty-state p{font-size:1.1rem}.timeline-batch{margin-top:.5rem;padding:.5rem;background:var(--surface);border:1px solid var(--border);border-radius:4px;font-size:.9rem}.timeline-batch strong{color:var(--text)}.timeline-batch span{color:var(--text-light);margin-left:.5rem}@media (max-width: 768px){.history-page{padding:1rem}.history-card-header{flex-direction:column}.history-stats{width:100%;justify-content:space-between}.timeline-item{margin-left:.5rem;padding-left:1rem}.history-filters{flex-direction:column;align-items:stretch}.filter-select{width:100%}}.layout{min-height:100vh;display:flex;flex-direction:column}.header{background:var(--surface);border-bottom:1px solid var(--border);padding:1rem 2rem;box-shadow:0 2px 4px var(--shadow);position:sticky;top:0;z-index:100}.header-content{display:flex;align-items:center;gap:1rem;max-width:1400px;margin:0 auto}.menu-toggle{display:none;background:var(--background);border:1px solid var(--border);color:var(--text);padding:.625rem;border-radius:8px;transition:all .2s;cursor:pointer}.menu-toggle:hover{background:var(--primary);color:#fff;border-color:var(--primary);transform:scale(1.05)}.logo{height:40px;margin-right:auto;object-fit:contain}.user-info{display:flex;align-items:center;gap:1rem}.role-badge{background:var(--primary);color:#fff;padding:.25rem .75rem;border-radius:12px;font-size:.75rem;text-transform:capitalize}.logout-btn{background:var(--danger);color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;display:flex;align-items:center;gap:.5rem;transition:background .2s}.logout-btn:hover{background:#dc2626}.layout-body{display:flex;flex:1}.sidebar{width:280px;background:linear-gradient(180deg,#fff,#f8fafc);border-right:1px solid var(--border);padding:0;min-height:calc(100vh - 73px);box-shadow:2px 0 8px #0000000a;display:flex;flex-direction:column;transition:width .3s cubic-bezier(.4,0,.2,1);overflow:hidden}.sidebar.collapsed{width:80px}.sidebar-header{padding:2rem 1.5rem;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;display:flex;align-items:center;gap:1rem;border-bottom:1px solid rgba(255,255,255,.1);position:relative;transition:padding .3s cubic-bezier(.4,0,.2,1);min-width:0;overflow:hidden}.sidebar.collapsed .sidebar-header{padding:1.25rem .5rem;justify-content:center;flex-direction:column;gap:.75rem}.user-avatar{width:48px;height:48px;border-radius:12px;background:#fff3;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.3);flex-shrink:0;color:#fff}.user-avatar svg{color:#fff}.user-details{flex:1;min-width:0}.user-name{font-weight:600;font-size:.95rem;margin-bottom:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff}.user-role{font-size:.75rem;opacity:.9;text-transform:capitalize;font-weight:500;color:#fff}.collapse-toggle{position:absolute;top:1rem;right:1rem;background:#fff3;border:1px solid rgba(255,255,255,.3);color:#fff;width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-shrink:0}.collapse-toggle:hover{background:#ffffff4d;transform:scale(1.1)}.sidebar.collapsed .collapse-toggle{position:static;margin:0;width:32px;height:32px;order:2}.sidebar.collapsed .user-details{display:none}.sidebar.collapsed .user-avatar{margin:0 auto;width:36px;height:36px;order:1}.nav{display:flex;flex-direction:column;padding:1.5rem .75rem;gap:.5rem;flex:1;overflow-x:hidden;overflow-y:auto}.nav-link{padding:.875rem 1.25rem;color:var(--text);text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);border-radius:12px;display:flex;align-items:center;gap:.875rem;position:relative;font-weight:500;font-size:.95rem;margin:0 .5rem}.nav-link:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:0;background:var(--primary);border-radius:0 4px 4px 0;transition:height .3s cubic-bezier(.4,0,.2,1)}.nav-link:hover{background:linear-gradient(90deg,#243b8314,#243b830a);color:var(--primary);transform:translate(4px)}.nav-link:hover:before{height:60%}.nav-link.active{background:linear-gradient(90deg,#243b8326,#243b8314);color:var(--primary);font-weight:600;box-shadow:0 2px 8px #243b8326}.nav-link.active:before{height:70%}.nav-link.active .nav-icon{color:var(--primary);transform:scale(1.1)}.nav-icon{flex-shrink:0;transition:all .3s cubic-bezier(.4,0,.2,1);color:var(--text-light)}.nav-link:hover .nav-icon{color:var(--primary);transform:scale(1.05)}.nav-label{flex:1;transition:opacity .3s cubic-bezier(.4,0,.2,1);white-space:nowrap}.sidebar.collapsed .nav-label{opacity:0;width:0;overflow:hidden}.sidebar.collapsed .nav-link{justify-content:center;padding:.875rem;margin:0 .5rem;position:relative;min-width:0}.sidebar.collapsed .nav-link:hover{transform:translate(0)}.sidebar.collapsed .nav-link:hover:after{content:attr(data-label);position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%);background:var(--text);color:#fff;padding:.5rem .75rem;border-radius:8px;font-size:.875rem;white-space:nowrap;z-index:1000;box-shadow:0 4px 12px #00000026;pointer-events:none;animation:fadeIn .2s ease-out}.sidebar.collapsed .nav-link:hover:before{content:"";position:absolute;left:calc(100% + 6px);top:50%;transform:translateY(-50%);border:6px solid transparent;border-right-color:var(--text);z-index:1001;pointer-events:none}@keyframes fadeIn{0%{opacity:0;transform:translateY(-50%) translate(-4px)}to{opacity:1;transform:translateY(-50%) translate(0)}}.sidebar.collapsed .nav{padding:1.5rem .25rem}.sidebar.collapsed .nav-icon{margin:0;flex-shrink:0}.main-content{flex:1;padding:2rem;max-width:1400px;width:100%;margin:0 auto}@media (max-width: 768px){.menu-toggle{display:block}.sidebar{position:fixed;left:-280px;top:73px;height:calc(100vh - 73px);z-index:99;transition:left .3s cubic-bezier(.4,0,.2,1);box-shadow:4px 0 20px #00000026}.sidebar.collapsed{width:80px}.sidebar.open{left:0}.main-content{padding:1rem}.sidebar-header{padding:1.5rem 1.25rem}.sidebar.collapsed .sidebar-header{padding:1.5rem .75rem}.user-avatar{width:44px;height:44px}}.footer{background:var(--surface);border-top:1px solid var(--border);padding:1rem 2rem;margin-top:auto;box-shadow:0 -2px 4px var(--shadow)}.footer-content{max-width:1400px;margin:0 auto;text-align:center}.footer-content p{margin:0;color:var(--text-light);font-size:.875rem}*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #243B83;--primary-dark: #1a2f66;--secondary: #51BE9D;--danger: #ef4444;--warning: #f59e0b;--background: #f9fafb;--surface: #ffffff;--text: #1f2937;--text-light: #6b7280;--border: #e5e7eb;--shadow: rgba(0, 0, 0, .1)}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;background-color:var(--background);color:var(--text)}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}
