.auth-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:#f5f6fa;padding:20px}.auth-box{background-color:#fff;padding:40px;border-radius:10px;box-shadow:0 4px 15px #0000001a;width:100%;max-width:400px;transition:transform .3s ease}.auth-box:hover{transform:translateY(-5px)}.auth-box h2{margin:0 0 30px;font-size:1.8rem;color:#2c3e50;text-align:center;font-weight:600}.auth-form{display:flex;flex-direction:column;gap:20px}.auth-form input,.auth-form select{width:100%;padding:12px 15px;border:1px solid #ddd;border-radius:5px;font-size:1rem;color:#333;background-color:#f9f9f9;transition:border-color .3s ease,box-shadow .3s ease}.auth-form input:focus,.auth-form select:focus{outline:none;border-color:#3498db;box-shadow:0 0 5px #3498db80}.auth-form input::placeholder{color:#999}.auth-form button[type=submit]{padding:12px;background-color:#3498db;color:#fff;border:none;border-radius:5px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .3s ease,transform .2s ease}.auth-form button[type=submit]:hover{background-color:#2980b9;transform:scale(1.02)}.auth-form button[type=submit]:active{transform:scale(.98)}.auth-message{margin-top:15px;text-align:center;font-size:.9rem;padding:10px;border-radius:5px}.auth-message.error{background-color:#fce4e4;color:#c0392b;border:1px solid #e74c3c}.auth-message.success{background-color:#e6f4ea;color:#27ae60;border:1px solid #2ecc71}.auth-form select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url('data:image/svg+xml;utf8,<svg fill="%23333" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M7 10l5 5 5-5z"/></svg>');background-repeat:no-repeat;background-position:right 10px center}.auth-switch{margin-top:20px;text-align:center;font-size:.9rem;color:#666}.auth-switch p{margin:0}.switch-link{background:none;border:none;color:#3498db;font-weight:500;cursor:pointer;padding:0;transition:color .3s ease}.switch-link:hover{color:#2980b9;text-decoration:underline}@media (max-width: 480px){.auth-box{padding:20px;max-width:100%;margin:0 10px}.auth-box h2{font-size:1.5rem}.auth-form input,.auth-form select,.auth-form button{font-size:.9rem;padding:10px}.auth-switch{font-size:.85rem}}.sidebar{display:flex;flex-direction:column;height:100vh;background-color:#fff;border-right:1px solid #e2e8f0;box-shadow:2px 0 5px #0000000d;transition:width .3s ease}.sidebar.expanded{width:260px}.sidebar.collapsed{width:80px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid #e2e8f0}.sidebar-title{font-size:1.25rem;font-weight:600;color:#1a202c;margin:0}.toggle-button{padding:6px;border:none;background:transparent;border-radius:8px;cursor:pointer;transition:background-color .2s}.toggle-button:hover{background-color:#f7fafc}.sidebar-nav{flex:1;padding:16px;overflow-y:auto}.nav-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.nav-item{display:flex;align-items:center;gap:8px;width:100%;padding:10px 16px;border:none;background:transparent;border-radius:8px;cursor:pointer;transition:all .2s;text-align:left;color:#4a5568}.nav-item:hover{background-color:#f7fafc}.nav-item.active{background-color:#ebf8ff;color:#3182ce}.nav-item span{white-space:nowrap}.sidebar-footer{border-top:1px solid #e2e8f0;padding:16px}.logout-button{display:flex;align-items:center;gap:8px;width:100%;padding:10px 16px;border:none;background:transparent;border-radius:8px;cursor:pointer;transition:all .2s;color:#e53e3e}.logout-button:hover{background-color:#fff5f5}.dashboard-layout{display:flex;flex-direction:row;height:100vh;width:100vw;overflow:hidden}.dashboard-content{flex:1;overflow-y:auto;padding:20px;background-color:#f8f9fa}@media (max-width: 768px){.dashboard-content{padding:16px}}.dashboard-main,.dashboard-main.expanded{display:flex;flex-direction:column;width:100%;height:100%;overflow-y:auto}.dashboard-container{padding:20px;height:100vh;overflow-y:auto;box-sizing:border-box}.dashboard-container.sidebar-expanded{margin-left:260px;max-width:940px}.dashboard-container.sidebar-collapsed{margin-left:80px;max-width:1120px}.dashboard-container h2{color:#2c3e50;margin-bottom:30px;font-size:1.8rem;font-weight:600}.dashboard-welcome{background-color:#fff;padding:20px;border-radius:5px;box-shadow:0 2px 4px #0000001a;margin-bottom:30px}.dashboard-welcome h3{margin:0 0 10px;color:#34495e;font-size:1.4rem}.role-badge{background-color:#3498db;color:#fff;padding:4px 10px;border-radius:12px;font-size:.9rem}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.dashboard-card{background-color:#fff;padding:20px;border-radius:5px;box-shadow:0 2px 4px #0000001a;transition:transform .3s ease}.dashboard-card:hover{transform:translateY(-5px)}.dashboard-card h4{margin:0 0 15px;color:#34495e;font-size:1.2rem}.dashboard-card p{margin:8px 0;color:#666;font-size:1rem}.highlight{color:#3498db;font-weight:500}.action-button{display:block;width:100%;padding:10px;margin:10px 0;background-color:#3498db;color:#fff;border:none;border-radius:5px;font-size:1rem;cursor:pointer;transition:background-color .3s ease,transform .2s ease}.action-button:hover{background-color:#2980b9;transform:scale(1.02)}.action-button:active{transform:scale(.98)}.dashboard-loading,.dashboard-error{display:flex;justify-content:center;align-items:center;height:50vh}.dashboard-loading p{font-size:1.2rem;color:#666}.dashboard-error p{font-size:1.2rem;color:#c0392b;background-color:#fce4e4;padding:15px 25px;border-radius:5px;border:1px solid #e74c3c}@media (max-width: 768px){.dashboard-container{padding:1rem}.dashboard-container.sidebar-expanded{margin-left:260px;max-width:calc(100% - 260px)}.dashboard-container.sidebar-collapsed{margin-left:80px;max-width:calc(100% - 80px)}.dashboard-grid{grid-template-columns:1fr}.dashboard-container h2{font-size:1.5rem}.dashboard-welcome h3{font-size:1.2rem}}.finance-container{padding:1.5rem;max-width:940px;margin-left:260px;height:100vh;overflow-y:auto;box-sizing:border-box}.finance-title{font-size:1.5rem;font-weight:600;margin-bottom:1.5rem;color:#333}.finance-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;gap:1rem}.year-filter label{color:#4b5563;font-weight:500;display:flex;align-items:center;gap:.5rem}.year-filter select{padding:.75rem 1rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;background-color:#f9fafb;color:#4b5563}.year-filter select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 5px #2563eb80}.export-button{padding:.75rem 1.5rem;background-color:#059669;color:#fff;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:background-color .2s ease}.export-button:disabled{background-color:#d1d5db;cursor:not-allowed}.reports-list{max-height:calc(60vh - 2rem);overflow-y:auto}.report-item{display:flex;justify-content:space-between;align-items:flex-start;padding:.75rem;margin-bottom:.5rem;border-radius:6px;background-color:#f9fafb;transition:background-color .2s ease}.report-item:hover{background-color:#e5e7eb}.report-info{display:flex;flex-direction:column;gap:.25rem;flex:1}.report-month{font-weight:500;color:#1f2937;font-size:.875rem}.report-totalIn,.report-totalOut,.report-balance,.report-previous,.report-final{color:#6b7280;font-size:.75rem}.report-totalIn{color:#059669}.report-totalOut{color:#dc2626}.no-reports{text-align:center;color:#6b7280;font-style:italic;padding:1.5rem 0}@media (max-width: 768px){.finance-container{padding:1rem;max-width:calc(100% - 150px);margin-left:150px}.finance-title{font-size:1.25rem}.finance-controls{flex-direction:column;align-items:flex-start}.report-item{flex-direction:column;align-items:flex-start;gap:.5rem}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background-color:#fff;padding:30px;border-radius:10px;box-shadow:0 4px 15px #0003;width:100%;max-width:450px;max-height:90vh;overflow-y:auto}.modal-content h2{margin:0 0 20px;font-size:1.5rem;color:#2c3e50;text-align:center}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:1rem;color:#34495e;margin-bottom:5px}.form-group input,.form-group select{width:100%;padding:10px;border:1px solid #ddd;border-radius:5px;font-size:1rem;color:#333;background-color:#f9f9f9;transition:border-color .3s ease}.form-group input:focus,.form-group select:focus{outline:none;border-color:#3498db;box-shadow:0 0 5px #3498db80}.form-group select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url('data:image/svg+xml;utf8,<svg fill="%23333" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M7 10l5 5 5-5z"/></svg>');background-repeat:no-repeat;background-position:right 10px center}.error-message{color:#c0392b;background-color:#fce4e4;padding:10px;border-radius:5px;margin-bottom:15px;text-align:center;font-size:.9rem}.modal-actions{display:flex;gap:10px;justify-content:flex-end}.button{padding:10px 20px;border:none;border-radius:5px;font-size:1rem;cursor:pointer;transition:background-color .3s ease,transform .2s ease}.button.primary{background-color:#3498db;color:#fff}.button.primary:hover{background-color:#2980b9;transform:scale(1.02)}.button.secondary{background-color:#7f8c8d;color:#fff}.button.secondary:hover{background-color:#636e72;transform:scale(1.02)}.button:active{transform:scale(.98)}@media (max-width: 480px){.modal-content{padding:20px;max-width:90%}.modal-content h2{font-size:1.3rem}.form-group input,.form-group select{font-size:.9rem}.modal-actions{flex-direction:column;gap:10px}.button{width:100%}}.history-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.history-modal-content{background-color:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 4px 15px #0003;width:100%;max-width:800px;max-height:80vh;overflow-y:auto}.history-modal-content h2{font-size:1.5rem;font-weight:600;color:#333;margin-bottom:1.25rem;text-align:center}.history-filters{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.25rem}.history-list{max-height:50vh;overflow-y:auto;margin-bottom:1rem}.history-item{display:flex;justify-content:space-between;align-items:flex-start;padding:.75rem;margin-bottom:.5rem;border-radius:6px;background-color:#f9fafb;transition:background-color .2s ease}.history-item.income{background-color:#ecfdf5}.history-item.expense{background-color:#fef2f2}.history-item:hover{background-color:#e5e7eb}.history-info{display:flex;flex-direction:column;gap:.25rem;flex:1}.history-type{font-weight:500;color:#1f2937;font-size:.875rem}.history-responsible,.history-company,.history-description,.history-source,.history-reference,.history-date{color:#6b7280;font-size:.75rem}.history-actions{display:flex;align-items:center;gap:.75rem}.history-amount{font-weight:600;font-size:.875rem;color:#1f2937}.no-history{text-align:center;color:#6b7280;font-style:italic;padding:1.5rem 0}.pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin-bottom:1.5rem}.pagination-button{padding:.5rem 1rem;background-color:#2563eb;color:#fff;border:none;border-radius:6px;font-size:.875rem;cursor:pointer;transition:all .2s ease}.pagination-button:disabled{background-color:#d1d5db;cursor:not-allowed}.pagination-button:hover:not(:disabled){background-color:#1d4ed8}.pagination-info{font-size:.875rem;color:#4b5563}.modal-actions{display:flex;justify-content:flex-end;gap:1rem}.export-button,.close-button{padding:.75rem 1.5rem;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s ease}.export-button{background-color:#059669;color:#fff}.export-button:hover{background-color:#047857}.close-button{background-color:#2563eb;color:#fff}.close-button:hover{background-color:#1d4ed8}@media (max-width: 768px){.history-modal-content{max-width:90%;padding:1rem}.history-modal-content h2{font-size:1.25rem}.history-filters{flex-direction:column}.filter-input{width:100%}.history-item{flex-direction:column;align-items:flex-start;gap:.5rem}.history-actions{width:100%;justify-content:space-between}.history-amount{text-align:left}.delete-button{padding:.25rem .5rem}.pagination{flex-direction:column;gap:.5rem}}.cash-container{padding:1.5rem;max-width:940px;margin-left:260px;height:100vh;box-sizing:border-box}.cash-container.sidebar-expanded{margin-left:260px;max-width:940px}.cash-container.sidebar-collapsed{margin-left:80px;max-width:1120px}.cash-title{font-size:1.5rem;font-weight:600;margin-bottom:1.5rem;color:#333}.month-selector{margin-bottom:1.5rem}.month-input{padding:.75rem 1rem;border:1px solid #d1d5db;border-radius:6px;font-size:1rem;background-color:#f9fafb;color:#4b5563;cursor:pointer;width:100%;max-width:200px}.month-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 5px #2563eb80}.cash-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}@media (min-width: 768px){.cash-grid{grid-template-columns:repeat(2,1fr)}.cash-card.transactions{grid-column:span 2}}.cash-card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:1.5rem}.card-title{font-size:1.25rem;font-weight:600;margin-bottom:1.25rem;color:#333}.cash-summary{display:flex;flex-direction:column;gap:1rem}.summary-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0}.summary-item.total{border-top:1px solid #e5e7eb;margin-top:.5rem;padding-top:1rem}.item-label{color:#4b5563;font-weight:500}.item-value{font-weight:600}.item-value.positive{color:#059669}.item-value.negative{color:#dc2626}.summary-item.update{font-size:.875rem;color:#6b7280}.button-container{display:flex;flex-direction:column;gap:1rem}.action-button{width:100%;padding:.75rem 1rem;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s ease}.action-button.primary{background-color:#2563eb;color:#fff;border:none}.action-button.primary:hover{background-color:#1d4ed8}.action-button.secondary{background-color:#fff;color:#2563eb;border:1px solid #2563eb}.action-button.secondary:hover{background-color:#f8fafc}.transaction-filters{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.25rem}.filter-input{padding:.75rem 1rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;background-color:#f9fafb;color:#4b5563;flex:1;min-width:150px}.filter-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 5px #2563eb80}.filter-input::placeholder{color:#9ca3af}.transactions-list{max-height:calc(60vh - 2rem);overflow-y:auto}.transaction-item{display:flex;justify-content:space-between;align-items:flex-start;padding:.75rem;margin-bottom:.5rem;border-radius:6px;background-color:#f9fafb;transition:background-color .2s ease}.transaction-item.income{background-color:#ecfdf5}.transaction-item.expense{background-color:#fef2f2}.transaction-item:hover{background-color:#e5e7eb}.transaction-info{display:flex;flex-direction:column;gap:.25rem;flex:1}.transaction-type{font-weight:500;color:#1f2937;font-size:.875rem}.transaction-responsible,.transaction-company,.transaction-description,.transaction-source,.transaction-reference,.transaction-date{color:#6b7280;font-size:.75rem}.transaction-actions{display:flex;align-items:center;gap:.75rem}.transaction-amount{font-weight:600;font-size:.875rem;color:#1f2937}.delete-button{padding:.375rem .75rem;background-color:#dc2626;color:#fff;border:none;border-radius:6px;font-size:.75rem;font-weight:500;cursor:pointer;transition:background-color .2s ease}.delete-button:hover{background-color:#b91c1c}.no-transactions{text-align:center;color:#6b7280;font-style:italic;padding:1.5rem 0}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;gap:1rem}.loading-spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #2563eb;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-container{padding:1rem;background-color:#fee2e2;border:1px solid #ef4444;border-radius:6px;margin:1rem;display:flex;flex-direction:column;align-items:center;gap:1rem}.error-message{color:#dc2626;font-weight:500}.retry-button{padding:.75rem 1.5rem;background-color:#2563eb;color:#fff;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s ease}.retry-button:hover{background-color:#1d4ed8}@media (max-width: 768px){.cash-container{padding:1rem;max-width:calc(100% - 150px);margin-left:150px;@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}}.cash-container .admin-container{padding:1.5rem;height:100vh;overflow-y:auto;box-sizing:border-box}.cash-container .admin-container.sidebar-expanded{margin-left:260px;max-width:940px}.cash-container .admin-container.sidebar-collapsed{margin-left:80px;max-width:1120px}.cash-container .admin-title{font-size:1.5rem;font-weight:600;margin-bottom:1.5rem;color:#333}.cash-container .admin-card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:1.5rem}.cash-container .card-title{font-size:1.25rem;font-weight:600;margin-bottom:1rem;color:#333}.cash-container .admin-card p{color:#4b5563;margin-bottom:1.5rem}.cash-container .register-form,.cash-container .edit-form{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem}.cash-container .form-group{display:flex;flex-direction:column;gap:.25rem}.cash-container .form-group label{color:#4b5563;font-weight:500}.cash-container .form-group input,.cash-container .form-group select{padding:.75rem 1rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;background-color:#f9fafb;color:#4b5563}.cash-container .form-group input:focus,.cash-container .form-group select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 5px #2563eb80}.cash-container .form-error{color:#dc2626;font-size:.875rem;margin-top:.5rem}.cash-container .register-button,.cash-container .save-button,.cash-container .cancel-button,.cash-container .edit-button{padding:.75rem 1.5rem;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s ease}.cash-container .register-button,.cash-container .save-button{background-color:#2563eb;color:#fff}.cash-container .register-button:hover,.cash-container .save-button:hover{background-color:#1d4ed8}.cash-container .cancel-button{background-color:#6b7280;color:#fff}.cash-container .cancel-button:hover{background-color:#4b5563}.cash-container .edit-button{background-color:#f59e0b;color:#fff;margin-right:.5rem}.cash-container .edit-button:hover{background-color:#d97706}.cash-container .users-list{max-height:calc(60vh - 2rem);overflow-y:auto}.cash-container .user-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;margin-bottom:.5rem;border-radius:6px;background-color:#f9fafb;transition:background-color .2s ease}.cash-container .user-item:hover{background-color:#e5e7eb}.cash-container .user-info{display:flex;flex-direction:column;gap:.25rem;flex:1}.cash-container .user-email{font-weight:500;color:#1f2937;font-size:.875rem}.cash-container .user-role,.cash-container .user-created{color:#6b7280;font-size:.75rem}.cash-container .user-actions{display:flex;gap:.5rem}.cash-container .delete-button{padding:.375rem .75rem;background-color:#dc2626;color:#fff;border:none;border-radius:6px;font-size:.75rem;font-weight:500;cursor:pointer;transition:background-color .2s ease}.cash-container .delete-button:hover{background-color:#b91c1c}.cash-container .edit-actions{display:flex;gap:.5rem;margin-top:.5rem}.cash-container .no-users{text-align:center;color:#6b7280;font-style:italic;padding:1.5rem 0}.cash-container .loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;gap:1rem}.cash-container .loading-spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #2563eb;border-radius:50%;animation:spin 1s linear infinite}.cash-container .error-container{padding:1rem;background-color:#fee2e2;border:1px solid #ef4444;border-radius:6px;margin:1rem;display:flex;flex-direction:column;align-items:center;gap:1rem}.cash-container .error-message{color:#dc2626;font-weight:500}.cash-container .retry-button{padding:.75rem 1.5rem;background-color:#2563eb;color:#fff;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s ease}.cash-container .retry-button:hover{background-color:#1d4ed8}.cash-container .admin-container{padding:1rem}.cash-container .admin-container.sidebar-expanded{margin-left:260px;max-width:calc(100% - 260px)}.cash-container .admin-container.sidebar-collapsed{margin-left:80px;max-width:calc(100% - 80px)}.cash-container .admin-title{font-size:1.25rem}.cash-container .register-form,.cash-container .edit-form{gap:.75rem}.cash-container .form-group input,.cash-container .form-group select{font-size:.75rem}.cash-container .user-item{flex-direction:column;align-items:flex-start;gap:.5rem}.cash-container .user-actions{width:100%;justify-content:flex-end}.cash-container .edit-button,.cash-container .delete-button{padding:.25rem .5rem}.cash-container .edit-actions{width:100%;justify-content:flex-end}.cash-container body{margin:0;font-family:Arial,sans-serif}.cash-container h2{color:#2c3e50;margin-bottom:20px}.cash-container .dashboard-card{background-color:#fff;padding:20px;border-radius:5px;box-shadow:0 2px 4px #0000001a;margin-bottom:20px}.cash-container .dashboard-card h3{margin-top:0;color:#34495e}}
