body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.login-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-card{animation:slideUp .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 15px 35px #0000001a;max-width:400px;padding:40px;width:100%}.login-header{margin-bottom:30px;text-align:center}.login-header h1{color:#333;font-size:2rem;font-weight:600;margin:0 0 10px}.login-header p{color:#666;font-size:1rem;margin:0}.login-form{display:flex;flex-direction:column;gap:20px}.form-group input{border:2px solid #e1e5e9;border-radius:8px;font-size:1rem;padding:12px 16px;transition:border-color .2s ease,box-shadow .2s ease}.form-group input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-group input:disabled{background-color:#f8f9fa;cursor:not-allowed}.error-message{background-color:#fee;border:1px solid #fecaca;color:#c53030}.login-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;margin-top:10px;padding:14px 24px;transition:transform .2s ease,box-shadow .2s ease}.login-button:hover:not(:disabled){box-shadow:0 8px 25px #667eea4d;transform:translateY(-2px)}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{cursor:not-allowed;opacity:.6;transform:none}.login-footer{border-top:1px solid #e1e5e9;margin-top:30px;padding-top:20px;text-align:center}.login-footer p{color:#888;font-size:.8rem;margin:0}@media (max-width:480px){.login-container{padding:10px}.login-card{padding:30px 20px}.login-header h1{font-size:1.8rem}}.modal-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content{animation:modalSlideIn .3s ease-out;box-shadow:0 10px 40px #00000026;max-width:600px;width:90%}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:1px solid #e1e5e9;padding:20px 30px}.modal-header h3{font-size:1.3rem}.close-button{background:#fff3;border-radius:50%;color:#fff;height:32px;transition:all .2s ease;width:32px}.close-button:hover{background:#ffffff4d;transform:scale(1.1)}.modal-body{padding:30px}.user-info-grid{display:flex;flex-direction:column;gap:25px}.user-info-row{display:flex;flex-wrap:wrap;gap:20px}.info-field{background:#f8f9fa;border-left:4px solid #667eea;border-radius:8px;display:flex;flex:1 1;flex-direction:column;gap:8px;min-width:150px;padding:15px}.info-field label{color:#555;font-size:.9rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.info-field span{color:#333;font-size:1rem;font-weight:500}.status.active{color:#22c55e;font-weight:600}.status.inactive{color:#ef4444;font-weight:600}.modal-footer{border-top:1px solid #e1e5e9;justify-content:center;padding:20px 30px}.change-password-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;box-shadow:0 2px 8px #667eea4d;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:12px 24px;transition:all .2s ease}.change-password-btn:hover{box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}@media (max-width:768px){.modal-content{margin:20px;width:95%}.modal-header{padding:15px 20px}.modal-body{padding:20px}.user-info-row{flex-direction:column;gap:15px}.info-field{min-width:0;min-width:auto}}@media (max-width:480px){.modal-header h3{font-size:1.1rem}.user-info-grid{gap:20px}}.statistics-panel{background:#fff;border:1px solid #e1e5e9;border-radius:12px;box-shadow:0 2px 15px #00000014;font-size:.8em;overflow:hidden}.panel-header{padding:15px 20px 0}.header-content{margin-bottom:10px}.panel-header h3{color:#333;font-size:1.3rem}.panel-controls{gap:20px}.comparison-toggle,.mock-data-toggle,.panel-controls,.toggle-label{align-items:center;display:flex}.toggle-label{cursor:pointer;gap:8px;-webkit-user-select:none;user-select:none}.toggle-checkbox{display:none}.toggle-slider{background:#ccc;border-radius:24px;height:24px;position:relative;transition:background .3s ease;width:44px}.toggle-slider:before{background:#fff;border-radius:50%;content:"";height:20px;left:2px;position:absolute;top:2px;transition:transform .3s ease;width:20px}.toggle-checkbox:checked+.toggle-slider{background:#667eea}.toggle-checkbox:checked+.toggle-slider:before{transform:translateX(20px)}.toggle-text{color:#555;font-size:.9rem;font-weight:500}.panel-tabs{background:#f8f9fa;border-bottom:1px solid #e1e5e9;display:flex}.tab-button{background:#0000;border:none;border-bottom:3px solid #0000;color:#666;cursor:pointer;font-size:.95rem;font-weight:500;padding:15px 25px;transition:all .2s ease}.tab-button:hover{background:#667eea0d;color:#333}.tab-button.active{background:#fff;border-bottom-color:#667eea;color:#667eea;font-weight:600}.panel-content{overflow-x:auto;padding:20px 20px 25px}.statistics-table{border-collapse:initial;border-spacing:0;min-width:630px;width:100%}.table-header{margin-bottom:2px}.table-header,.table-row{grid-gap:0;display:grid;gap:0;grid-template-columns:140px repeat(7,minmax(70px,1fr))}.table-row{border-bottom:1px solid #f0f0f0}.table-row:last-child{border-bottom:none}.table-cell{font-size:.9rem;padding:10px 6px;text-align:center}.header-cell{background:#f8f9fa;border-right:1px solid #e1e5e9;color:#555;font-size:.8rem;font-weight:600;letter-spacing:.3px;line-height:1.2;text-transform:uppercase}.header-cell:first-child,.label-header,.row-label{padding-left:12px;text-align:left}.row-label{background:#fafbfc;border-right:1px solid #e1e5e9;color:#333;font-weight:500}.table-cell:not(.header-cell):not(.row-label){color:#555;font-weight:500;position:relative}.table-cell:not(.header-cell):not(.row-label):hover{background:#f0f4ff;color:#667eea}.split-cell{padding:5px 6px!important}.current-value{color:#333;font-size:1rem;font-weight:600;margin-bottom:2px}.prev-year-value{align-items:center;color:#888;display:flex;font-size:.75rem;font-weight:400;gap:4px;justify-content:center}.trend{font-size:.7rem}.trend.positive{color:#28a745}.trend.negative{color:#dc3545}.coming-soon-message{color:#888;padding:40px 20px;text-align:center}.coming-soon-message p{font-size:1.1rem;font-style:italic;margin:0}.error-container,.loading-container{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:40px 20px;text-align:center}.error-container p,.loading-container p{color:#666;font-size:.9rem;margin:15px 0 0}@media (max-width:768px){.header-content{gap:15px}.header-content,.panel-controls{align-items:flex-start;flex-direction:column}.panel-controls{gap:10px}.panel-content{overflow-x:auto;padding:20px 15px}.statistics-table{min-width:600px}.table-header,.table-row{grid-template-columns:120px repeat(7,80px)}.table-cell{font-size:.85rem;padding:10px 6px}.split-cell{padding:4px 6px!important}.current-value{font-size:.9rem}.prev-year-value{font-size:.7rem}.header-cell:first-child,.row-label{padding-left:10px}.toggle-text{font-size:.8rem}}@media (max-width:480px){.panel-tabs{flex-direction:column}.tab-button{border-bottom:none;border-right:3px solid #0000}.tab-button.active{border-bottom:none;border-right-color:#667eea}}.chart-container{background:#fff;border:1px solid #e1e5e9;border-radius:8px;height:300px;margin-bottom:20px;padding:15px}.chart-container canvas{max-height:100%}.chart-container p{align-items:center;color:#666;display:flex;font-style:italic;height:100%;justify-content:center;margin:0}.metric-toggle-container{background:#f8f9fa;border:1px solid #e1e5e9;border-radius:8px;margin-top:15px;padding:15px}.metric-toggle-container h4{color:#333;font-size:.9rem;font-weight:600;margin:0 0 12px}.metric-toggles{display:flex;flex-wrap:wrap;gap:8px}.metric-toggle{align-items:center;background:#fff;border:2px solid #e1e5e9;border-radius:20px;cursor:pointer;display:flex;font-size:.8rem;gap:6px;padding:6px 10px;transition:all .2s ease;-webkit-user-select:none;user-select:none}.metric-toggle:hover{background:#f0f4ff;transform:translateY(-1px)}.metric-toggle.selected{background:#fff;box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.metric-toggle input[type=checkbox]{display:none}.metric-indicator{border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #0000001a;height:12px;width:12px}.metric-label{color:#333;font-weight:500}.metric-toggle.selected .metric-label{font-weight:600}@media (max-width:768px){.metric-toggles{gap:6px}.metric-toggle{font-size:.75rem;padding:5px 8px}.metric-indicator{height:10px;width:10px}}.chart-panel{background:#fff;border:1px solid #e1e5e9;border-radius:12px;box-shadow:0 2px 15px #00000014;font-size:.9em;height:-webkit-fit-content;height:fit-content;overflow:hidden}.chart-panel .panel-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e1e5e9;display:flex;justify-content:space-between;padding:15px 20px}.chart-panel .panel-header h3{color:#333;font-size:1.2rem;font-weight:600;margin:0}.chart-info{align-items:center;display:flex;gap:10px}.chart-tab-indicator{background:#667eea}.chart-tab-indicator,.comparison-indicator{border-radius:20px;color:#fff;font-size:.8rem;font-weight:500;padding:4px 12px}.comparison-indicator{background:#28a745}.chart-panel .panel-content{padding:20px}.chart-error,.chart-loading{align-items:center;color:#666;display:flex;font-style:italic;justify-content:center;padding:60px 20px}.chart-error{color:#dc3545}.chart-error p,.chart-loading p{margin:0}@media (max-width:768px){.chart-panel .panel-header{align-items:flex-start;flex-direction:column;gap:10px}.chart-panel .panel-content{padding:15px}}.licenze-panel{background:#fff;border-radius:12px;box-shadow:0 4px 6px #00000012;height:-webkit-fit-content;height:fit-content;overflow:hidden}.panel-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;justify-content:space-between;padding:20px}.panel-header h3{font-size:1.2rem;font-weight:600;margin:0}.view-all-btn{background:#fff;border:none;border-radius:16px;box-shadow:0 1px 3px #0003;color:#667eea;cursor:pointer;font-size:.7rem;font-weight:600;min-width:auto;padding:4px 8px;transition:all .2s ease;white-space:nowrap}.view-all-btn:hover{background:#f8f9fa;box-shadow:0 2px 6px #00000040;color:#5a6fd8;transform:translateY(-1px)}.view-all-btn:focus{box-shadow:0 0 0 3px #667eea4d;outline:none}.view-all-btn:active{box-shadow:0 1px 2px #0003;transform:translateY(0)}.panel-content{padding:20px}.tab-navigation{border-bottom:2px solid #e1e5e9;display:flex;margin-bottom:20px}.tab-btn{background:none;border:none;border-bottom:2px solid #0000;color:#666;cursor:pointer;font-size:.9rem;font-weight:500;padding:12px 20px;position:relative;transition:all .2s ease}.tab-btn.active,.tab-btn:hover{background:#667eea0d;color:#667eea}.tab-btn.active{border-bottom-color:#667eea}.licenze-table-container{border:1px solid #e1e5e9;border-radius:8px;margin-bottom:20px;max-height:400px;overflow:hidden;overflow-y:auto;scrollbar-color:#c1c1c1 #f1f1f1;scrollbar-width:thin}.licenze-table-container::-webkit-scrollbar{width:8px}.licenze-table-container::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.licenze-table-container::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px;-webkit-transition:background .2s ease;transition:background .2s ease}.licenze-table-container::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.licenze-table{border-collapse:collapse;font-size:.85rem;width:100%}.licenze-table thead{background:#f8f9fa;position:-webkit-sticky;position:sticky;top:0;z-index:1}.licenze-table th{border-bottom:1px solid #e1e5e9;color:#333;font-weight:600;padding:12px 15px;text-align:left}.licenze-table th.col-date{width:80px}.licenze-table th.col-license{width:40%}.licenze-table th.col-username{width:auto}.licenze-table tbody tr{transition:background-color .2s ease}.licenze-table tbody tr:hover{background:#667eea08}.licenze-table tbody tr.scaduta-row{background:#dc354508}.licenze-table tbody tr.scaduta-row:hover{background:#dc354514}.licenze-table td{border-bottom:1px solid #f1f3f4;padding:12px 15px;vertical-align:middle}.date-cell{color:#333;font-weight:500}.date-icon{margin-right:8px;opacity:.7}.license-cell{color:#667eea}.license-name,.username-cell{font-weight:500}.username-cell{color:#333}.no-data{background:#f8f9fa;color:#666;font-style:italic;padding:30px 15px;text-align:center}.stats-footer{border-top:1px solid #e1e5e9;margin-top:15px;padding-top:15px}.stat-summary{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-around}.stat-summary .stat-item{color:#666;flex:1 1;font-size:.8rem;min-width:80px;text-align:center}.stat-summary .stat-item strong{color:#333;display:block;font-size:1.1rem;margin-bottom:2px}.stat-summary .stat-item.active strong{color:#28a745}.stat-summary .stat-item.warning strong{color:#ffc107}.stat-summary .stat-item.danger strong{color:#dc3545}.scadenze-section{margin-bottom:25px}.scadenze-section h4{color:#333;font-size:1rem;font-weight:600;margin:0 0 15px}.no-scadenze{background:#d4edda;border-radius:8px;color:#155724;padding:20px;text-align:center}.scadenze-list{display:flex;flex-direction:column;gap:10px}.scadenza-item{align-items:center;background:#f8f9fa;border-left:4px solid #ffc107;border-radius:8px;display:flex;justify-content:space-between;padding:12px 15px;transition:all .2s ease}.scadenza-item:hover{background:#e9ecef;transform:translateX(2px)}.licenza-info{flex:1 1;gap:5px}.licenza-info,.licenza-user{display:flex;flex-direction:column}.licenza-user{gap:2px}.licenza-user strong{color:#333;font-size:.9rem}.licenza-email{color:#666;font-size:.8rem}.licenza-details{align-items:center;display:flex;gap:10px}.licenza-tipo{background:#e9ecef;color:#495057}.licenza-stato,.licenza-tipo{border-radius:12px;font-size:.75rem;font-weight:500;padding:2px 8px}.stato-attiva{background:#d4edda;color:#155724}.stato-scaduta{background:#f8d7da;color:#721c24}.stato-in-attesa{background:#d1ecf1;color:#0c5460}.scadenza-info{display:flex;flex-direction:column;gap:5px;text-align:right}.data-scadenza{color:#333;font-size:.85rem;font-weight:500}.giorni-rimanenti{border-radius:12px;font-size:.8rem;font-weight:600;padding:2px 8px}.giorni-normale{background:#d4edda;color:#155724}.giorni-attenzione{background:#fff3cd;color:#856404}.giorni-critico{background:#f8d7da;color:#721c24}.giorni-scaduta{background:#dc3545;color:#fff}.more-items{padding:10px;text-align:center}.btn-link{background:none;border:none;color:#667eea;cursor:pointer;font-size:.9rem;text-decoration:underline}.btn-link:hover{color:#764ba2}.distribuzione-section h4{color:#333;font-size:1rem;font-weight:600;margin:0 0 15px}.distribuzione-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.distribuzione-item{align-items:center;background:#f8f9fa;border-radius:6px;display:flex;justify-content:space-between;padding:10px 12px;transition:all .2s ease}.distribuzione-item:hover{background:#e9ecef}.tipo-nome{color:#333;font-size:.85rem;font-weight:500}.tipo-count{background:#fff;border-radius:12px;color:#667eea;font-size:.9rem;font-weight:700;padding:4px 8px}.loading{color:#666;padding:40px 20px}.error-message{flex-direction:column;gap:10px}.retry-button{background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;padding:8px 16px}.retry-button:hover{background:#c82333}@media (max-width:768px){.tab-navigation{justify-content:center}.tab-btn{flex:1 1;text-align:center}.licenze-table{font-size:.8rem}.licenze-table td,.licenze-table th{padding:8px 10px}.licenze-table th.col-date{width:70px}.panel-header{align-items:stretch;flex-direction:column;gap:10px}.view-all-btn{align-self:flex-end;font-size:.65rem;padding:3px 6px}.stat-summary{gap:5px}.stat-summary .stat-item{font-size:.75rem;min-width:70px}.licenze-table-container{max-height:300px}}@media (max-width:480px){.panel-content{padding:15px}.licenze-table{font-size:.75rem}.licenze-table td,.licenze-table th{padding:6px 8px}.tab-btn{font-size:.85rem;padding:10px 15px}.date-icon{margin-right:4px}.stat-summary .stat-item strong{font-size:1rem}}.dashboard-container{background-color:#f8f9fa;min-height:100vh}.dashboard-header{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 10px #0000001a;color:#fff;padding:0}.header-content{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px;padding:20px 40px}.dashboard-header h1{font-size:1.8rem;font-weight:600;margin:0}.user-info{align-items:center;display:flex;gap:20px}.user-name-button{background:#ffffff1a;border:1px solid #fff3;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:8px 16px;transition:all .2s ease}.user-name-button:hover{background:#fff3;border-color:#fff6;transform:translateY(-1px)}.logout-button{background:#fff3;border:1px solid #ffffff4d;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;padding:8px 16px;transition:all .2s ease}.logout-button:hover{background:#ffffff4d;border-color:#ffffff80}.admin-button{background:#ffffff26;border:1px solid #ffffff4d;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;padding:8px 16px;transition:all .2s ease}.admin-button:hover{background:#ffffff40;border-color:#ffffff80;transform:translateY(-1px)}.dashboard-main{margin:0 auto;max-width:1200px;padding:40px}.dashboard-content{display:flex;flex-direction:column;gap:30px}.welcome-card{background:#fff;border:1px solid #e1e5e9;border-radius:12px;box-shadow:0 2px 15px #00000014;padding:30px}.welcome-card h2{color:#333;font-size:1.6rem;font-weight:600;margin:0 0 10px}.welcome-card>p{color:#666;font-size:1.1rem;margin:0 0 30px}.dashboard-panels{grid-gap:30px;display:grid;gap:30px;grid-template-columns:repeat(2,1fr);margin-bottom:30px}.placeholder-panel{align-items:center;background:#fff;border:1px solid #e1e5e9;border-radius:12px;box-shadow:0 2px 15px #00000014;display:flex;flex-direction:column;justify-content:center;min-height:400px;padding:30px}.placeholder-panel h3{color:#333;font-size:1.3rem;font-weight:600;margin:0 0 15px}.placeholder-panel p{color:#888;font-style:italic;margin:0}.quick-actions h3{border-bottom:2px solid #667eea;color:#333;font-size:1.3rem;font-weight:600;margin:0 0 20px;padding-bottom:10px}.actions-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:20px}.action-button{align-items:center;background:#fff;border:2px solid #e1e5e9;border-radius:10px;cursor:pointer;display:flex;font-size:1rem;font-weight:500;gap:8px;justify-content:center;padding:20px;transition:all .2s ease}.action-button:not(:disabled):hover{background:#f8f9ff;border-color:#667eea;box-shadow:0 4px 15px #667eea26;transform:translateY(-2px)}.action-button:disabled{background:#f8f9fa;color:#999;cursor:not-allowed;opacity:.5}.action-button.admin-only{background:linear-gradient(135deg,#dc3545,#c82333);border-color:#dc3545;color:#fff}.action-button.admin-only:hover{background:linear-gradient(135deg,#c82333,#a71e2a);border-color:#bd2130;box-shadow:0 4px 15px #dc35454d;transform:translateY(-2px)}.coming-soon{color:#888;font-style:italic;margin:0;text-align:center}@media (max-width:768px){.header-content{flex-direction:column;gap:15px;padding:15px 20px;text-align:center}.dashboard-main,.welcome-card{padding:20px}.dashboard-panels{gap:20px;grid-template-columns:1fr}.placeholder-panel{min-height:300px;padding:20px}.actions-grid{grid-template-columns:repeat(2,1fr)}}.alimenti-personali-container{background-color:#f8f9fa;margin:0 auto;max-width:1200px;min-height:100vh;padding:20px}.page-header{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 4px 15px #0000001a;color:#fff;margin-bottom:30px;padding:30px;position:relative}.header-top{margin-bottom:20px}.btn-back{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:1px solid #ffffff4d;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;padding:8px 16px;transition:all .3s ease}.btn-back:hover{background:#ffffff4d;transform:translateX(-2px)}.page-header h1{font-size:2.5rem;font-weight:600;margin:0 0 10px}.page-description{font-size:1.1rem;margin:0;opacity:.9}.filtri-section{background:#fff;border-left:4px solid #667eea;border-radius:12px;box-shadow:0 2px 10px #0000000d;margin-bottom:30px;padding:25px}.filtro-item{display:flex;flex-direction:column}.filtro-item label{color:#555;font-size:.95rem;font-weight:500;margin-bottom:8px}.filtro-item input,.filtro-item select{background-color:#fff;border:2px solid #e1e5e9;border-radius:8px;font-size:1rem;padding:12px;transition:all .3s ease}.filtro-item input:focus,.filtro-item select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.filtri-actions{justify-content:center}.btn-primary{border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:500;min-width:150px;padding:12px 30px;transition:all .3s ease}.btn-primary:hover:not(:disabled){box-shadow:0 5px 15px #667eea4d}.btn-primary:disabled{cursor:not-allowed;opacity:.6;transform:none}.btn-export{background:linear-gradient(135deg,#28a745,#20c997);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;min-width:150px;padding:12px 30px;transition:all .3s ease}.btn-export:hover:not(:disabled){box-shadow:0 5px 15px #28a7454d;transform:translateY(-2px)}.btn-export:disabled{cursor:not-allowed;opacity:.6;transform:none}.btn-secondary{background:linear-gradient(135deg,#6c757d,#495057);border-radius:8px;min-width:150px;padding:12px 30px;transition:all .3s ease}.btn-secondary:hover{box-shadow:0 5px 15px #6c757d4d;transform:translateY(-2px)}.statistiche-section{background:#fff;border-left:4px solid #28a745;border-radius:12px;box-shadow:0 2px 10px #0000000d;margin-bottom:30px;padding:25px}.statistiche-section h2{color:#333;font-size:1.4rem;margin:0 0 20px}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stat-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 4px 15px #0000001a;color:#fff;padding:25px;text-align:center;transition:transform .3s ease}.stat-card:hover{transform:translateY(-3px)}.stat-value{font-size:2.2rem;font-weight:700;margin-bottom:8px}.stat-label{font-size:.9rem;letter-spacing:.5px;opacity:.9;text-transform:uppercase}.risultati-section{background:#fff;border-left:4px solid #ffc107;border-radius:12px;box-shadow:0 2px 10px #0000000d;padding:25px}.risultati-section h2{color:#333;font-size:1.4rem;margin:0 0 20px}.table-container{border:1px solid #e1e5e9;border-radius:8px}.risultati-table{background:#fff;border-collapse:collapse;width:100%}.risultati-table th{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:.95rem;font-weight:600;letter-spacing:.5px;padding:15px 12px;position:relative;text-align:left;text-transform:uppercase}.risultati-table th.sortable{cursor:pointer;position:relative;transition:background-color .2s ease;-webkit-user-select:none;user-select:none}.risultati-table th.sortable:hover{background:linear-gradient(135deg,#5a6fd8,#6a4190)}.sort-icon{float:right;font-size:.8rem;margin-left:8px;opacity:.7;transition:opacity .2s ease}.sort-icon.active{font-weight:700;opacity:1}.risultati-table td{border-bottom:1px solid #e1e5e9;padding:15px 12px;vertical-align:middle}.risultati-table tbody tr:hover{background-color:#f8f9fa}.nome-completo{color:#333;font-weight:500}.username{font-family:Courier New,monospace}.email,.username{color:#666;font-size:.9rem}.numero-alimenti{text-align:center}.badge-numero{background:linear-gradient(135deg,#28a745,#20c997);border-radius:20px;color:#fff;display:inline-block;font-size:.9rem;font-weight:600;min-width:40px;padding:6px 12px}.loading-container{padding:40px}.loading-spinner{border:4px solid #e1e5e9;border-top-color:#667eea;margin:0 auto 15px}.error-message{background:linear-gradient(135deg,#dc3545,#c82333);color:#fff;margin:20px 0;padding:15px 20px;text-align:center}.no-results{padding:40px}.no-results p{margin:10px 0}.pagination-controls{align-items:center;border-top:1px solid #e1e5e9;justify-content:space-between;margin-top:20px;padding:15px 0}.pagination-controls.top{border-bottom:1px solid #e1e5e9;border-top:none;margin-bottom:20px;margin-top:0}.items-per-page{align-items:center;display:flex;gap:10px}.items-per-page label{color:#555;font-size:.9rem;font-weight:500}.items-per-page select{background-color:#fff;border:2px solid #e1e5e9;border-radius:6px;cursor:pointer;font-size:.9rem;padding:8px 12px;transition:border-color .3s ease}.items-per-page select:focus{border-color:#667eea;outline:none}.pagination-info{color:#666;font-weight:500}.pagination-buttons{align-items:center;display:flex;gap:5px}.btn-pagination{align-items:center;background:#fff;border:1px solid #e1e5e9;border-radius:6px;cursor:pointer;display:flex;font-size:.9rem;font-weight:500;justify-content:center;min-width:40px;padding:8px 12px;transition:all .2s ease}.btn-pagination:hover:not(:disabled){background:#f8f9fa;border-color:#667eea;color:#667eea}.btn-pagination:disabled{background:#f8f9fa;cursor:not-allowed;opacity:.5}.btn-pagination.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea;color:#fff}.btn-pagination.active:hover{background:linear-gradient(135deg,#5a6fd8,#6a4190)}@media (max-width:768px){.alimenti-personali-container{padding:15px}.page-header{padding:20px}.page-header h1{font-size:2rem}.filtri-section .filtri-content .filtri-grid{display:flex!important;flex-direction:column!important;gap:15px}.filtri-section .filtri-content .filtro-item{flex:none;max-width:none;min-width:0;min-width:auto}.filtri-header{margin:-10px;padding:10px}.filtri-section h2{font-size:1.2rem}.accordion-icon{font-size:1rem}.stats-grid{gap:15px;grid-template-columns:1fr}.risultati-table td,.risultati-table th{font-size:.9rem;padding:12px 8px}.stat-value{font-size:1.8rem}.pagination-controls{flex-direction:column;gap:15px;text-align:center}.pagination-buttons{flex-wrap:wrap}.items-per-page,.pagination-buttons{justify-content:center}.risultati-table th.sortable{font-size:.8rem;padding:10px 8px}.sort-icon{font-size:.7rem;margin-left:4px}.header-content-main{align-items:stretch;flex-direction:column;gap:15px}.header-actions{justify-content:center;order:-1}.btn-header-action{font-size:.8rem;padding:8px 16px}}@media (max-width:480px){.actions-grid{grid-template-columns:1fr}}.filtri-header{align-items:center;border-radius:8px;cursor:pointer;display:flex;justify-content:space-between;padding:5px 0;transition:background-color .2s ease}.filtri-header:hover{background-color:#667eea0d}.filtri-section h2{color:#333;font-size:1.4rem;margin:0}.accordion-icon,.filtri-section h2{-webkit-user-select:none;user-select:none}.accordion-icon{color:#667eea;font-size:1.2rem;transition:transform .3s ease}.accordion-icon.open{transform:rotate(180deg)}.filtri-content{max-height:0;opacity:0;overflow:hidden;transition:all .3s ease}.filtri-content.open{max-height:500px;opacity:1;padding-top:20px}.filtri-grid{display:flex;flex-direction:column;gap:20px;margin-bottom:25px}@media (min-width:769px){.filtri-section .filtri-content .filtri-grid{align-items:end;display:flex!important;flex-direction:row!important;flex-wrap:nowrap;gap:20px}.filtri-section .filtri-content .filtro-item{flex:1 1;max-width:300px;min-width:200px}}.header-top{display:flex;gap:10px;margin-bottom:15px}.btn-back.secondary{background-color:#6c757d;border-color:#6c757d}.btn-back.secondary:hover{background-color:#5a6268;border-color:#545b62}.risultati-table.dettaglio{min-width:1200px!important;table-layout:fixed!important;width:100%!important}.risultati-table.dettaglio td,.risultati-table.dettaglio th{border:1px solid #dee2e6!important;padding:8px!important;vertical-align:middle!important}.risultati-table.dettaglio .username{max-width:150px;min-width:120px;overflow:hidden;text-overflow:ellipsis}.risultati-table.dettaglio .immagine{text-align:center;width:60px}.risultati-table.dettaglio .alimento{max-width:250px;min-width:200px}.risultati-table.dettaglio .categoria{max-width:150px;min-width:120px}.risultati-table.dettaglio .produttore{max-width:120px;min-width:100px;overflow:hidden;text-overflow:ellipsis}.risultati-table.dettaglio .kcal,.risultati-table.dettaglio .nutriente{display:table-cell!important;font-weight:500!important;max-width:80px!important;min-width:80px!important;padding:8px 4px!important;text-align:center!important;white-space:nowrap!important;width:80px!important}.risultati-table.dettaglio .data{min-width:80px;white-space:nowrap}.alimento-immagine{align-items:center;display:flex;height:60px;justify-content:center;position:relative;width:60px}.alimento-immagine.no-image{background-color:#f8f9fa;border:1px dashed #dee2e6;border-radius:4px}.no-image-text{color:#6c757d;font-size:20px}.image-container{border-radius:6px;cursor:pointer;height:55px;overflow:hidden;position:relative;transition:all .2s ease;width:55px}.image-container:hover{box-shadow:0 4px 12px #00000026;transform:scale(1.05)}.img-alimento-small{border:2px solid #e9ecef;border-radius:4px;height:100%;object-fit:cover;transition:border-color .2s ease;width:100%}.img-alimento-small.clickable:hover{border-color:#007bff}.image-count-badge{background:#007bff;border-radius:50%;font-size:11px;height:20px;right:-5px;top:-5px;width:20px;z-index:2}.image-count-badge,.image-overlay{align-items:center;display:flex;justify-content:center}.image-overlay{background:#007bffcc;border-radius:4px;bottom:0;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .2s ease}.image-container:hover .image-overlay{opacity:1}.zoom-icon{color:#fff;font-size:16px}.alimento-info{display:flex;flex-direction:column;gap:4px}.alimento-info strong{color:#333;font-weight:600;line-height:1.2}.tipo-badge{background-color:#e9ecef;border-radius:3px;color:#495057;display:inline-block;font-size:11px;font-weight:500;padding:2px 6px;text-transform:uppercase}.tipo-badge:empty{display:none}.alimento-info .tipo-badge{background-color:#d1ecf1;color:#0c5460}@media (max-width:1400px){.dettaglio-table{font-size:13px}.dettaglio-table td,.dettaglio-table th{padding:10px 6px}}@media (max-width:1200px){.dettaglio-table{font-size:12px}.dettaglio-table td,.dettaglio-table th{padding:8px 4px}.dettaglio-table .alimento{max-width:180px;min-width:150px}.dettaglio-table .categoria,.dettaglio-table .username{max-width:120px;min-width:100px}}.dettaglio-table tbody tr:hover{background-color:#f8f9fa}.dettaglio-table tbody tr:nth-child(2n){background-color:#fff}.dettaglio-table tbody tr:nth-child(odd){background-color:#fdfdfd}.nutriente{color:#28a745}.kcal,.nutriente{font-family:Courier New,monospace;font-weight:600}.kcal{color:#dc3545}.alimenti-dettaglio-container .page-header h1{border-bottom:3px solid #007bff;color:#007bff;padding-bottom:10px}.alimenti-dettaglio-container .page-description{color:#6c757d;font-style:italic;margin-bottom:30px}.filtri-actions{align-items:center;display:flex;gap:15px;margin-top:20px}.btn-secondary{background-color:#6c757d;border-radius:5px;font-size:14px;font-weight:500;transition:all .2s ease}.btn-secondary:hover{background-color:#5a6268;transform:translateY(-1px)}.alimenti-dettaglio-container .loading-container,.alimenti-dettaglio-container .no-results{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:60px 20px;text-align:center}.alimenti-dettaglio-container .no-results{color:#6c757d}.alimenti-dettaglio-container .pagination-info{color:#495057;font-weight:500}.alimenti-dettaglio-container .pagination-controls.top{margin-bottom:20px}.alimenti-dettaglio-container .pagination-controls.bottom{border-top:1px solid #dee2e6;margin-top:20px;padding-top:20px}.image-modal-overlay{animation:fadeIn .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000c}.image-modal-content{animation:slideIn .3s ease;border-radius:12px;box-shadow:0 20px 40px #0000004d}@keyframes slideIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.modal-close{background:#0009;font-size:18px;height:35px;width:35px;z-index:10}.modal-close:hover{background:#000c}.modal-image-container{background:#f8f9fa;justify-content:center;max-height:70vh;min-height:400px}.modal-image{border-radius:8px;max-height:100%}.modal-nav{align-items:center;background:#0009;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:24px;height:45px;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);transition:all .2s ease;width:45px}.modal-nav:hover{background:#000c;transform:translateY(-50%) scale(1.1)}.modal-prev{left:15px}.modal-next{right:15px}.modal-image-counter{background:#000000b3;border-radius:20px;bottom:15px;color:#fff;font-size:14px;font-weight:500;left:50%;padding:8px 16px;position:absolute;transform:translateX(-50%)}.modal-image-info{background:#fff;border-top:1px solid #e9ecef;padding:20px}.modal-image-info h3{color:#333;font-size:18px;font-weight:600;margin:0 0 8px}.modal-image-info p{color:#6c757d;font-size:14px;margin:0}@media (max-width:768px){.image-modal-content{margin:10px;max-height:95vh;max-width:95vw}.modal-nav{font-size:20px;height:40px;width:40px}.modal-prev{left:10px}.modal-next{right:10px}.modal-image-info{padding:15px}.modal-image-info h3{font-size:16px}.filtri-section .filtri-content .filtri-grid{display:flex!important;flex-direction:column!important;gap:15px}.filtri-section .filtri-content .filtro-item{flex:none;max-width:none;min-width:0;min-width:auto}.filtri-header{margin:-10px;padding:10px}.filtri-section h2{font-size:1.2rem}.accordion-icon{font-size:1rem}.header-content-main{align-items:stretch;flex-direction:column;gap:15px}.header-actions{justify-content:center;order:-1}.btn-header-action{font-size:.8rem;padding:8px 16px}}.header-content-main{align-items:flex-end;display:flex;gap:20px;justify-content:space-between}.header-text{flex:1 1}.header-actions{display:flex;flex-shrink:0;gap:10px}.btn-header-action{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:1px solid #ffffff4d;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;padding:10px 20px;transition:all .3s ease;white-space:nowrap}.btn-header-action:hover:not(:disabled){background:#ffffff4d;border-color:#ffffff80;transform:translateY(-2px)}.btn-header-action:disabled{background:#ffffff1a;border-color:#fff3;cursor:not-allowed;opacity:.6}.risultati-table.dettaglio{border-collapse:collapse;font-size:14px;min-width:1400px;width:100%}.risultati-table.dettaglio thead{background-color:#007bff;color:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:10}.risultati-table.dettaglio td,.risultati-table.dettaglio th{border-bottom:1px solid #dee2e6;padding:12px 8px;text-align:left;vertical-align:top}.risultati-table.dettaglio th{font-weight:600;min-width:120px;white-space:nowrap}.alimento-info{max-width:250px;min-width:200px}.alimento-main{color:#2c3e50;font-weight:700;margin-bottom:4px}.alimento-details{color:#6c757d;font-size:12px;line-height:1.3}.alimento-details span{display:block;margin-bottom:2px}.utente-info{max-width:180px;min-width:150px}.utente-main{color:#495057;font-weight:700;margin-bottom:4px}.utente-details{color:#6c757d;font-size:12px;line-height:1.3}.data-utilizzo{min-width:100px;text-align:center}.data{color:#495057;font-weight:500}.tipo-utilizzo{min-width:90px;text-align:center}.badge{font-size:11px;font-weight:600;padding:4px 8px}.badge.tipo-dieta{background-color:#e3f2fd;color:#1976d2}.badge.tipo-piatto{background-color:#fff3e0;color:#f57c00}.informazioni{min-width:120px}.info-grid{display:flex;flex-direction:column;gap:4px}.info-grid span{background-color:#f8f9fa;border-left:3px solid #007bff;border-radius:4px;font-size:12px;padding:2px 6px}.valori-nutrizionali{min-width:200px}.nutrienti-grid{grid-gap:4px;display:grid;font-size:12px;gap:4px;grid-template-columns:1fr 1fr}.nutriente{align-items:center;background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:4px;display:flex;justify-content:space-between;padding:3px 6px}.nutriente .label{color:#495057;font-weight:700}.nutriente .value{color:#007bff;font-weight:500}.immagini-cell{max-width:100px;min-width:80px;text-align:center}.immagini-container{align-items:center;display:flex;justify-content:center;position:relative}.image-wrapper{display:inline-block;position:relative}.thumbnail{border:2px solid #e9ecef;border-radius:6px;height:50px;object-fit:cover;transition:all .2s ease;width:50px}.thumbnail.clickable{cursor:pointer}.thumbnail.clickable:hover{border-color:#007bff;box-shadow:0 4px 8px #007bff4d;transform:scale(1.1)}.image-count-badge{background-color:#007bff;border:2px solid #fff;border-radius:12px;box-shadow:0 2px 4px #0003;color:#fff;font-size:10px;font-weight:700;min-width:20px;padding:2px 6px;position:absolute;right:-8px;text-align:center;top:-8px}.no-image-placeholder{background-color:#f8f9fa;border:2px dashed #dee2e6;border-radius:6px;color:#adb5bd;font-size:20px;height:50px;width:50px}.image-modal-overlay,.no-image-placeholder{align-items:center;display:flex;justify-content:center}.image-modal-overlay{background-color:#000000e6;bottom:0;cursor:pointer;left:0;position:fixed;right:0;top:0;z-index:1000}.image-modal-content{background:#fff;border-radius:8px;box-shadow:0 20px 60px #00000080;cursor:default;max-height:90vh;max-width:90vw;overflow:hidden;position:relative}.modal-close{background:#000000b3;font-size:20px;height:40px;position:absolute;right:15px;top:15px;transition:background-color .2s ease;width:40px;z-index:1001}.modal-close:hover{background:#000000e6}.modal-image-container{align-items:center;display:flex;flex-direction:column;position:relative}.modal-image{display:block;max-height:70vh;max-width:100%;object-fit:contain}.modal-extra-images{border-top:1px solid #e9ecef;padding:20px}.modal-extra-images h4{color:#495057;font-size:16px;margin:0 0 15px}.extra-images-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}.extra-image{border:2px solid #e9ecef;border-radius:6px;cursor:pointer;height:100px;object-fit:cover;transition:all .2s ease;width:100px}.extra-image:hover{border-color:#007bff;transform:scale(1.05)}.modal-info{background-color:#f8f9fa;border-top:1px solid #e9ecef;padding:20px;text-align:center}.modal-info h3{color:#495057;font-size:18px;margin:0 0 10px}.modal-info p{color:#6c757d;font-size:14px;margin:0}@media (max-width:1200px){.risultati-table.dettaglio{font-size:12px}.risultati-table.dettaglio td,.risultati-table.dettaglio th{padding:8px 6px}.alimento-info,.utente-info{min-width:150px}.valori-nutrizionali{min-width:180px}}@media (max-width:768px){.image-modal-content{max-height:95vh;max-width:95vw}.modal-image{max-height:60vh}.extra-images-grid{grid-template-columns:repeat(auto-fit,minmax(80px,1fr))}.extra-image{height:80px;width:80px}}.modal-overlay{padding:20px}.modal-content{animation:modalAppear .3s ease-out;border-radius:12px;display:flex;flex-direction:column;max-height:80vh;max-width:800px;width:100%}@keyframes modalAppear{0%{opacity:0;transform:scale(.9) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header{background:linear-gradient(135deg,#28a745,#20c997);border-bottom:1px solid #e9ecef;border-radius:12px 12px 0 0;color:#fff;padding:20px 25px}.modal-header h3{font-size:1.5rem;font-weight:600;margin:0}.modal-close{align-items:center;background:none;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:2rem;height:32px;justify-content:center;line-height:1;padding:0;transition:background-color .3s ease;width:32px}.modal-close:hover{background:#fff3}.modal-info{background:#f8f9fa;border-bottom:1px solid #e9ecef;display:flex;flex-wrap:wrap;gap:30px;padding:20px 25px}.info-item{align-items:center;display:flex;gap:8px}.info-item .label{color:#666;font-weight:500}.info-item .value{color:#333;font-weight:600}.badge-count{background:linear-gradient(135deg,#28a745,#20c997);border-radius:20px;color:#fff;font-size:.9rem;min-width:30px;padding:4px 12px;text-align:center}.modal-body{flex:1 1;overflow-y:auto;padding:0}.loading-container{padding:60px 20px;text-align:center}.loading-spinner{border:4px solid #f3f3f3;border-top-color:#28a745;height:40px;margin:0 auto 20px;width:40px}.error-message{border-left:4px solid #dc3545;margin:20px;padding:20px}.error-message p{font-weight:500;margin:0}.no-results{color:#666;padding:60px 20px;text-align:center}.no-results p{font-size:1.1rem;margin:0}.diete-list{padding:20px 25px}.dieta-card{background:#fff;border:1px solid #e9ecef;border-radius:8px;margin-bottom:15px;transition:box-shadow .3s ease}.dieta-card:hover{box-shadow:0 4px 12px #0000001a}.dieta-card:last-child{margin-bottom:0}.dieta-header{align-items:flex-start;background:#f8f9fa;border-bottom:1px solid #e9ecef;border-radius:8px 8px 0 0;display:flex;justify-content:space-between;padding:15px 20px}.dieta-title h4{color:#333;font-size:1.2rem;margin:0 0 8px}.dieta-badges{display:flex;flex-wrap:wrap;gap:8px}.badge{border-radius:12px;font-size:.8rem;font-weight:500;letter-spacing:.5px;padding:3px 10px;text-transform:uppercase}.badge-sostituzioni{background:#d1ecf1;border:1px solid #bee5eb;color:#0c5460}.badge-modello{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.dieta-id{color:#6c757d;font-family:monospace;font-size:.9rem}.dieta-content{padding:20px}.dieta-section{margin-bottom:15px}.dieta-section:last-child{margin-bottom:0}.dieta-section strong{color:#495057;display:block;font-size:.95rem;margin-bottom:5px}.dieta-section p{background:#f8f9fa;border-left:3px solid #28a745;border-radius:6px;color:#666;line-height:1.5;margin:0;padding:10px}.dieta-dates{display:flex;flex-wrap:wrap;gap:25px;margin-bottom:15px}.date-item{font-size:.9rem}.date-item strong{color:#495057;margin-right:5px}.dieta-flags{display:flex;flex-wrap:wrap;gap:25px;margin-bottom:15px}.flag-item{align-items:center;display:flex;font-size:.9rem;gap:8px}.flag-item strong{color:#495057}.flag-value{border-radius:4px;font-size:.8rem;font-weight:500;letter-spacing:.3px;padding:2px 8px;text-transform:uppercase}.flag-value.active{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.flag-value.inactive{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.modal-footer{background:#f8f9fa;border-radius:0 0 12px 12px;border-top:1px solid #e9ecef;padding:20px 25px;text-align:right}.btn-secondary{border:none;border-radius:6px;cursor:pointer;font-size:1rem;padding:10px 20px;transition:background-color .3s ease}.btn-secondary:hover{background:#5a6268}@media (max-width:768px){.modal-overlay{padding:10px}.modal-content{max-height:90vh}.modal-header{padding:15px 20px}.modal-header h3{font-size:1.3rem}.modal-info{flex-direction:column;gap:15px}.diete-list,.modal-info{padding:15px 20px}.dieta-header{align-items:stretch;flex-direction:column;gap:10px}.dieta-content{padding:15px}.dieta-dates{flex-direction:column;gap:10px}.modal-footer{padding:15px 20px}}@media (max-width:480px){.dieta-title h4,.modal-header h3{font-size:1.1rem}.dieta-badges{justify-content:flex-start}}.user-management{margin:0 auto;max-width:1400px;padding:20px}.user-management-header{align-items:center;border-bottom:2px solid #e1e5e9;display:flex;justify-content:center;margin-bottom:30px;padding-bottom:20px;position:relative}.back-to-dashboard{font-size:.9rem;left:0;padding:8px 16px;position:absolute}.user-management-header h1{color:#333;font-size:2rem;margin:0}.filters-section{background:#f8f9fa;border-radius:8px;margin-bottom:20px;padding:20px}.filters-row{align-items:end;display:flex;flex-wrap:wrap;gap:20px}.filter-group{display:flex;flex-direction:column;gap:5px;min-width:150px}.filter-group label{color:#555;font-size:.9rem;font-weight:500}.filter-group input,.filter-group select{border:1px solid #ddd;border-radius:4px;font-size:.9rem;padding:8px 12px}.filter-actions{display:flex;gap:10px}.new-user-action{margin-left:auto}.user-list{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.table-container{overflow-x:auto}.users-table{border-collapse:collapse;font-size:.9rem;width:100%}.users-table th{background:#f8f9fa;border-bottom:2px solid #dee2e6;color:#555;font-weight:600;padding:12px 8px;text-align:left;white-space:nowrap}.users-table td{border-bottom:1px solid #dee2e6;padding:12px 8px;vertical-align:middle}.users-table tr:hover{background-color:#f8f9fa}.users-table tr.inactive-user{background-color:#fff3cd;opacity:.6}.user-email{align-items:center;display:flex;gap:5px}.email-not-confirmed{font-size:.8rem}.user-name{align-items:center;display:flex;gap:8px}.user-avatar-small{border-radius:50%;height:24px;object-fit:cover;width:24px}.user-roles{display:flex;flex-wrap:wrap;gap:4px}.role-badge{border-radius:12px;font-size:.8rem;font-weight:500;padding:2px 8px;white-space:nowrap}.role-badge.role-admin{background:#dc3545;color:#fff}.role-badge.role-manager{background:#fd7e14;color:#fff}.role-badge.role-operatore{background:#198754;color:#fff}.role-badge.role-readonly{background:#6c757d;color:#fff}.user-status{display:flex;flex-direction:column;gap:4px}.status-badge{border-radius:4px;font-size:.8rem;font-weight:500;padding:4px 8px;text-align:center;white-space:nowrap}.status-badge.active{background:#d1edff;color:#0c63e4}.status-badge.inactive{background:#f8d7da;color:#721c24}.status-badge.locked{background:#fff3cd;color:#856404}.action-buttons{display:flex;flex-wrap:wrap;gap:4px}.btn{align-items:center;border-radius:4px;display:inline-flex;font-size:.9rem;justify-content:center;padding:6px 12px;text-decoration:none;transition:all .2s}.btn-sm{font-size:.8rem;padding:4px 8px}.btn-primary{background:#0d6efd}.btn-primary:hover:not(:disabled){background:#0b5ed7}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover:not(:disabled){background:#5c636a}.btn-success{background:#198754;color:#fff}.btn-success:hover:not(:disabled){background:#157347}.btn-warning{background:#ffc107;color:#212529}.btn-warning:hover:not(:disabled){background:#ffca2c}.btn-danger{background:#dc3545;color:#fff}.btn-danger:hover:not(:disabled){background:#bb2d3b}.btn-info{background:#0dcaf0;color:#212529}.btn-info:hover:not(:disabled){background:#31d2f2}.btn-outline{background:#0000;border:1px solid #6c757d;color:#6c757d}.btn-outline:hover:not(:disabled){background:#6c757d;color:#fff}.pagination{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-top:20px}.pagination-info{color:#6c757d;font-size:.9rem}.pagination-controls{display:flex;gap:5px}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:8px;box-shadow:0 10px 30px #0000004d;max-height:90vh;max-width:90vw;overflow-y:auto}.user-modal{width:600px}.modal-header{align-items:center;border-bottom:1px solid #dee2e6;display:flex;justify-content:space-between;padding:20px}.modal-header h2{color:#333;margin:0}.close-button{align-items:center;background:none;border:none;color:#6c757d;cursor:pointer;display:flex;font-size:1.5rem;height:30px;justify-content:center;padding:0;width:30px}.close-button:hover{color:#dc3545}.modal-body{padding:20px}.modal-footer{border-top:1px solid #dee2e6;display:flex;gap:10px;justify-content:flex-end;padding:20px}.form-row{display:flex;gap:15px;margin-bottom:15px}.form-group{flex:1 1;gap:5px}.form-group.full-width{flex:1 1 100%}.form-group input,.form-group select,.form-group textarea{border:1px solid #ddd;border-radius:4px;font-size:.9rem;padding:8px 12px}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#0d6efd;box-shadow:0 0 0 2px #0d6efd40;outline:none}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background-color:#f8f9fa;cursor:not-allowed}.roles-grid{grid-gap:10px;background:#f8f9fa;border:1px solid #ddd;border-radius:4px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));padding:10px}.role-checkbox{align-items:center;cursor:pointer;display:flex;font-size:.9rem;gap:8px}.role-checkbox input[type=checkbox]{margin:0}.user-details{background:#f8f9fa;border-radius:4px;margin-top:20px;padding:15px}.detail-row{font-size:.9rem;margin-bottom:8px}.detail-row strong{color:#333;display:inline-block;width:150px}.password-reset-section{background:#fff3cd;border:1px solid #ffeaa7;border-radius:4px;margin-top:20px;padding:15px}.password-reset-section h4{color:#856404;margin:0 0 15px}.reset-actions{display:flex;gap:10px;margin-top:15px}.loading{color:#6c757d;font-style:italic;padding:40px;text-align:center}.error-message{background:#f8d7da;border-radius:4px;margin-bottom:15px}.no-users{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;color:#6c757d;padding:40px;text-align:center}@media (max-width:768px){.user-management{padding:10px}.user-management-header{align-items:flex-start;flex-direction:column;gap:15px}.filters-row{align-items:stretch;flex-direction:column}.filter-group{min-width:auto}.filter-actions{align-self:stretch}.users-table{font-size:.8rem}.users-table td,.users-table th{padding:8px 4px}.action-buttons,.pagination{flex-direction:column}.pagination{text-align:center}.user-modal{margin:20px;width:95vw}.form-row{flex-direction:column}.roles-grid{grid-template-columns:1fr}}.change-password{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.change-password-container{animation:slideUp .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 15px 35px #0000001a;max-width:500px;padding:40px;width:100%}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.change-password-header{margin-bottom:30px;text-align:center}.change-password-header h1{color:#333;font-size:2rem;font-weight:600;margin:0 0 10px}.change-password-header p{color:#666;font-size:1rem;line-height:1.5;margin:0}.change-password-form{gap:20px}.change-password-form,.form-group{display:flex;flex-direction:column}.form-group{gap:8px}.form-group label{color:#555;font-size:.9rem;font-weight:500}.password-input-wrapper{align-items:center;display:flex;position:relative}.password-input-wrapper input{border:2px solid #e1e5e9;border-radius:8px;flex:1 1;font-size:1rem;padding:12px 50px 12px 16px;transition:border-color .2s ease,box-shadow .2s ease}.password-input-wrapper input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.password-input-wrapper input:disabled{background-color:#f8f9fa;cursor:not-allowed}.password-toggle{background:none;border:none;border-radius:4px;color:#6c757d;cursor:pointer;font-size:1.2rem;padding:4px;position:absolute;right:12px;transition:color .2s ease}.password-toggle:hover{background-color:#f8f9fa;color:#495057}.password-toggle:focus{outline:2px solid #667eea;outline-offset:2px}.password-strength{margin-top:8px}.strength-bar{background-color:#e9ecef;border-radius:2px;height:4px;margin-bottom:5px;overflow:hidden;width:100%}.strength-fill{border-radius:2px;height:100%;transition:width .3s ease,background-color .3s ease}.strength-label{font-size:.8rem;font-weight:500}.password-match{font-size:.85rem;font-weight:500;margin-top:8px}.password-match.match .match-text{color:#198754}.password-match.no-match .no-match-text{color:#dc3545}.security-tips{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;margin-top:10px;padding:16px}.security-tips h4{color:#495057;font-size:.9rem;margin:0 0 12px}.security-tips ul{color:#6c757d;margin:0;padding-left:20px}.security-tips li{font-size:.85rem;line-height:1.4;margin-bottom:4px}.error-message{align-items:center;background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:8px;color:#721c24;display:flex;font-size:.9rem;gap:8px;padding:12px 16px}.error-message:before{content:"⚠️";font-size:1rem}.success-message{align-items:center;animation:fadeIn .3s ease;background-color:#d1edff;border:1px solid #b8daff;border-radius:8px;color:#0c63e4;display:flex;font-size:.9rem;gap:8px;padding:12px 16px}.success-message:before{content:"✅";font-size:1rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.form-actions{display:flex;gap:12px;margin-top:20px}.btn{border:none;border-radius:8px;cursor:pointer;flex:1 1;font-size:1rem;font-weight:500;padding:14px 24px;text-align:center;transition:all .2s ease}.btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover:not(:disabled){box-shadow:0 8px 25px #667eea4d;transform:translateY(-2px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:#f8f9fa;border:2px solid #e9ecef;color:#6c757d}.btn-secondary:hover:not(:disabled){background:#e9ecef;color:#495057}.btn:disabled.loading{position:relative}.btn:disabled.loading:after{animation:spin 1s linear infinite;border:2px solid #0000;border-radius:50%;border-top-color:currentcolor;content:"";height:16px;position:absolute;right:10px;top:50%;transform:translateY(-50%);width:16px}@media (max-width:480px){.change-password{padding:10px}.change-password-container{padding:30px 20px}.change-password-header h1{font-size:1.8rem}.form-actions{flex-direction:column}.password-input-wrapper input{font-size:.9rem;padding:10px 45px 10px 14px}.password-toggle{font-size:1.1rem;right:10px}}@media (prefers-reduced-motion:reduce){.btn,.change-password-container,.strength-fill,.success-message{animation:none;transition:none}}@media (prefers-contrast:high){.password-input-wrapper input{border-width:3px}.password-input-wrapper input:focus{border-color:#000;box-shadow:0 0 0 3px #fff,0 0 0 6px #000}.strength-bar{border:1px solid #000}}.form-group:focus-within label{color:#667eea}*{transition:color .2s ease,background-color .2s ease,border-color .2s ease}.App{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;min-height:100vh}.loading-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;flex-direction:column;gap:20px;justify-content:center;min-height:100vh}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:50px;width:50px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-container p{font-size:1.1rem;font-weight:500;margin:0}.access-denied{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:20px;text-align:center}.access-denied h2{font-size:2.5rem;margin-bottom:20px;text-shadow:0 2px 4px #0000004d}.access-denied p{font-size:1.1rem;line-height:1.6;margin-bottom:10px;max-width:600px}.access-denied button{background:#fff;border:none;border-radius:8px;color:#667eea;cursor:pointer;font-size:1rem;font-weight:500;margin-top:30px;padding:12px 24px;transition:all .2s ease}.access-denied button:hover{box-shadow:0 4px 15px #0003;transform:translateY(-2px)}
/*# sourceMappingURL=main.b1416f4e.css.map*/