.login-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--bg-primary);padding:1rem;position:relative}.login-card{background-color:var(--bg-secondary);border-radius:1rem;padding:0;width:100%;max-width:500px;box-shadow:0 10px 40px var(--shadow);overflow:hidden}.login-header{text-align:center;margin-bottom:0}.login-header-image{width:100%;height:400px;object-fit:cover;display:block}.login-header h1{font-size:2rem;color:var(--text-primary);margin:1.5rem 2.5rem .5rem;padding:0}.login-divider{border:none;border-top:1px solid var(--border-color);margin:1rem 2.5rem}.login-header p{color:var(--text-secondary);font-size:1rem;margin:0 2.5rem 2rem;padding:0}.login-form{display:flex;flex-direction:column;gap:1.5rem;padding:0 2.5rem 2.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group.has-bootstrap-label{flex-direction:row;align-items:stretch;gap:0}.form-group.has-bootstrap-label .bootstrap-label{margin-bottom:0}.bootstrap-label{display:inline-flex;align-items:center;justify-content:center;gap:0;padding:.75rem;border:1px solid var(--border-color);border-right:none;border-top-left-radius:.5rem;border-bottom-left-radius:.5rem;background-color:var(--bg-tertiary);color:var(--text-primary);font-weight:500;font-size:.9rem;margin-bottom:0;cursor:default;white-space:nowrap;flex-shrink:0;min-width:48px}.label-icon{color:var(--text-secondary);display:flex;align-items:center;justify-content:center}.label-separator{width:1px;height:1.25rem;background-color:var(--border-color);margin-left:.75rem;flex-shrink:0}.label-text{color:var(--text-primary)}.form-group input{padding:.75rem;border:1px solid var(--border-color);border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:.5rem;border-bottom-right-radius:.5rem;background-color:var(--bg-primary);color:var(--text-primary);font-size:1rem;transition:border-color .2s ease;flex:1}.form-group:not(.has-bootstrap-label) input{width:100%;border-radius:.5rem}.form-group input:focus{outline:none;border-color:var(--accent-primary)}.form-group input::placeholder{color:var(--text-secondary)}.login-button{padding:.75rem;background-color:var(--accent-primary);color:#fff;border:none;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s ease}.login-button:hover:not(:disabled){background-color:var(--accent-hover)}.login-button:disabled{opacity:.6;cursor:not-allowed}.error-message{padding:.75rem;background-color:var(--danger);color:#fff;border-radius:.5rem;text-align:center;font-size:.9rem}.login-page-footer{position:absolute;bottom:0;left:0;right:0;text-align:center;padding:1.5rem;font-size:1rem;color:var(--text-secondary);background-color:var(--bg-primary);border-top:1px solid var(--border-color)}.login-page-footer p{margin:0}.login-page-footer a{color:var(--accent-primary);text-decoration:none;transition:color .2s ease}.login-page-footer a:hover{color:var(--accent-hover);text-decoration:underline}.calendario-vertical{width:100%;overflow-x:auto}.calendario-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.calendario-nav{display:flex;gap:.5rem;flex-wrap:wrap}.calendario-filters{display:flex;gap:1rem;align-items:center}.filter-group{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary)}.filter-select{padding:.5rem .75rem;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:.5rem;color:var(--text-primary);font-size:.9rem;cursor:pointer;transition:background-color .2s ease,border-color .2s ease}.filter-select-large{padding:.75rem 1rem;font-size:1rem;min-width:200px;font-weight:500}.nav-button{padding:.5rem 1rem;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:.5rem;color:var(--text-primary);cursor:pointer;transition:background-color .2s ease;font-size:.9rem}.nav-button:hover{background-color:var(--border-color)}.calendario-title{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}@media (max-width: 768px){.calendario-header{flex-direction:column;align-items:center;text-align:center;gap:1.25rem;margin-bottom:1.25rem}.calendario-nav{justify-content:center;width:100%;gap:.6rem}.calendario-nav .nav-button{padding:.65rem 1rem;font-size:1rem;min-height:44px}.calendario-filters{justify-content:center;width:100%;display:flex}.calendario-filters .filter-group{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:center;gap:.5rem;font-size:1rem;width:auto;max-width:100%;flex:0 0 auto}.calendario-filters .filter-group svg{width:24px!important;height:24px!important;min-width:24px;min-height:24px;flex-shrink:0;display:inline-block;vertical-align:middle}.calendario-filters .filter-select-large{min-width:180px;width:auto;max-width:240px;padding:.7rem .9rem;font-size:1rem;min-height:44px;flex:1 1 auto}.calendario-title{font-size:1.05rem;text-align:center;line-height:1.35}}.calendario-container{display:flex;border:1px solid var(--border-color);border-radius:.5rem;overflow:visible;background-color:var(--bg-primary)}.calendario-sidebar{min-width:80px;width:80px;border-right:1px solid var(--border-color);background-color:var(--bg-secondary);flex-shrink:0}.hora-header{height:80px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;font-weight:600;color:var(--text-primary);box-sizing:border-box;flex-shrink:0}.hora-cell{height:80px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;font-size:.85rem;color:var(--text-secondary);box-sizing:border-box;flex-shrink:0}.calendario-grid{display:flex;flex:1;overflow-x:auto;overflow-y:visible;min-width:0;will-change:contents}.dia-column{min-width:340px;border-right:1px solid var(--border-color);flex:1;position:relative;contain:layout style}.dia-header{height:60px;border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--bg-secondary);padding:.5rem}.dia-nombre{font-size:.85rem;color:var(--text-secondary);text-transform:uppercase;font-weight:600}.dia-numero{font-size:1.25rem;font-weight:700;color:var(--text-primary)}.dia-celdas{position:relative;height:100%;min-height:1120px;overflow:visible!important;padding:2px}.hora-celda{height:80px;border-bottom:1px solid var(--border-color);position:relative;box-sizing:border-box;flex-shrink:0}.hora-celda-clickable{cursor:pointer}.hora-celda-clickable:hover{background-color:#007bff14;border-radius:4px}.cita-item{padding:.5rem .65rem;border-radius:.25rem;font-size:.75rem;cursor:default;overflow:visible!important;z-index:10;min-height:75px;min-width:150px;display:flex;flex-direction:column;justify-content:flex-start;flex-shrink:0;transition:transform .2s ease,box-shadow .2s ease;line-height:1.3;word-wrap:break-word;overflow-wrap:anywhere;hyphens:none;-webkit-hyphens:none;box-sizing:border-box;margin:.5px}.cita-item.cita-clickable{cursor:pointer}.cita-item.cita-clickable:hover{transform:scale(1.05);box-shadow:0 4px 8px #0003;z-index:20}.cita-item.estado-agendada{background-color:#cfe2ff;border-left:3px solid #0d6efd;color:#084298}.cita-item.estado-en_proceso{background-color:#fff3cd;border-left:3px solid #ffc107;color:#856404}.cita-item.estado-finalizada{background-color:#d1e7dd;border-left:3px solid #198754;color:#0f5132}.cita-item.estado-cancelada{background-color:#f8d7da;border-left:3px solid #dc3545;color:#842029;opacity:.85}[data-theme=dark] .cita-item.estado-agendada{background-color:#1e3a5f;color:#cfe2ff}[data-theme=dark] .cita-item.estado-en_proceso{background-color:#5c4a00;color:#fff3cd}[data-theme=dark] .cita-item.estado-finalizada{background-color:#0f5132;color:#d1e7dd}[data-theme=dark] .cita-item.estado-cancelada{background-color:#842029;color:#f8d7da}.cita-cliente{font-weight:600;margin-bottom:.15rem;white-space:normal;word-break:break-word;line-height:1.2;overflow:visible;flex-shrink:0;hyphens:none;-webkit-hyphens:none;font-size:.8rem;max-width:100%;overflow-wrap:anywhere}.cita-servicio{font-size:.7rem;opacity:.9;white-space:normal;word-break:break-word;line-height:1.25;overflow:visible;margin-bottom:.1rem;flex-shrink:0}.cita-barbero{font-size:.65rem;opacity:.8;margin-top:.05rem;white-space:normal;word-break:break-word;line-height:1.2;overflow:visible;flex-shrink:0}.cita-hora{font-size:.6rem;opacity:.7;margin-top:.125rem;white-space:nowrap;line-height:1.2;overflow:hidden;text-overflow:ellipsis}@media (max-width: 768px){.calendario-grid{min-width:700px}.dia-column{min-width:150px}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background-color:var(--bg-primary);border-radius:.75rem;box-shadow:0 10px 40px var(--shadow);max-height:90vh;overflow-y:auto;display:flex;flex-direction:column}.modal-small{width:100%;max-width:400px}.modal-medium{width:100%;max-width:600px}.modal-large{width:100%;max-width:900px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--border-color)}.modal-header h2{margin:0;font-size:1.5rem;color:var(--text-primary)}.modal-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.5rem;border-radius:.25rem;transition:background-color .2s ease}.modal-close:hover{background-color:var(--bg-tertiary)}.modal-body{padding:1.5rem}@media (max-width: 768px){.modal-content{max-width:100%;margin:0;border-radius:.75rem .75rem 0 0}}.citas-page{width:100%}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem}.badge{padding:.25rem .75rem;border-radius:1rem;font-size:.85rem;font-weight:600;text-transform:capitalize}.badge.estado-agendada{background-color:#cfe2ff;color:#084298}.badge.estado-en_proceso{background-color:#fff3cd;color:#856404}.badge.estado-finalizada{background-color:#d1e7dd;color:#0f5132}.badge.estado-cancelada{background-color:#f8d7da;color:#842029}[data-theme=dark] .badge.estado-agendada{background-color:#1e3a5f;color:#cfe2ff}[data-theme=dark] .badge.estado-en_proceso{background-color:#5c4a00;color:#fff3cd}[data-theme=dark] .badge.estado-finalizada{background-color:#0f5132;color:#d1e7dd}[data-theme=dark] .badge.estado-cancelada{background-color:#842029;color:#f8d7da}.filters-section{margin-bottom:1.5rem;display:flex;flex-direction:column;gap:1rem}.search-bar{display:flex;align-items:center;gap:.75rem;padding:.75rem;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:.5rem}.filters-row{display:flex;gap:1rem;flex-wrap:wrap}.filter-group{display:flex;align-items:center;gap:.5rem;flex:1;min-width:200px}@media (max-width: 768px){.filters-row{flex-direction:column}.filter-group{width:100%;min-width:100%;flex-direction:column;align-items:flex-start;gap:.5rem}.filter-group label,.filter-select{width:100%}}.filter-group label{font-size:.9rem;color:var(--text-secondary);white-space:nowrap}.filter-select{flex:1;padding:.5rem .75rem;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:.5rem;color:var(--text-primary);font-size:.9rem;cursor:pointer;transition:background-color .2s ease,border-color .2s ease}.filter-select:hover{background-color:var(--bg-tertiary);border-color:var(--text-secondary)}.filter-select:focus{outline:none;border-color:var(--primary-color)}.btn-action:hover{background-color:var(--bg-tertiary);transform:translateY(-1px);box-shadow:0 2px 4px var(--shadow)}.btn-action-edit:hover{background-color:#007bff;color:#fff}.btn-action-cancel:hover{background-color:#ff9800;color:#fff}.btn-action-delete:hover{background-color:#dc3545;color:#fff}.dashboard{width:100%}.dashboard-title{font-size:2rem;margin-bottom:2rem;color:var(--text-primary)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card-enhanced{cursor:pointer}.stat-card-enhanced:hover{transform:translateY(-4px);box-shadow:0 6px 16px var(--shadow)}.stat-icon{width:50px;height:50px;border-radius:.5rem;display:flex;align-items:center;justify-content:center}.dashboard-calendar-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.dashboard-calendar-header h2{margin:0}.btn-generar-cita{display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap}.dashboard-calendar{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:.75rem;padding:1.5rem;margin-top:2rem}@media (max-width: 768px){.dashboard-calendar-header{flex-direction:column;align-items:center;text-align:center;gap:.75rem}.dashboard-calendar-header h2{font-size:1.25rem}.btn-generar-cita{justify-content:center;padding:.5rem .75rem;font-size:.875rem;gap:.35rem}.btn-generar-cita svg{width:16px;height:16px}.dashboard-calendar{padding:1rem}}.dashboard-calendar h2{font-size:1.5rem;margin-bottom:1.5rem;color:var(--text-primary)}.cita-details-modal{padding:1rem 0}.cita-info-section{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-color)}.cita-info-section h3{margin-bottom:1rem;color:var(--text-primary);font-size:1.1rem}.info-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;color:var(--text-primary)}.info-row strong{min-width:100px;color:var(--text-secondary)}.cita-actions-section h3{margin-bottom:1rem;color:var(--text-primary);font-size:1.1rem}.action-buttons-group{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.btn-action{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:1px solid var(--border-color);border-radius:.5rem;background-color:var(--bg-secondary);color:var(--text-primary);font-size:.9rem;cursor:pointer;transition:all .2s ease;white-space:nowrap}.btn-action:hover:not(:disabled){background-color:var(--bg-tertiary);transform:translateY(-1px);box-shadow:0 2px 4px var(--shadow)}.btn-action:disabled{opacity:.5;cursor:not-allowed}.btn-action-edit{color:#007bff;border-color:#007bff}.btn-action-edit:hover:not(:disabled){background-color:#007bff;color:#fff}.btn-action-cancel{color:#ff9800;border-color:#ff9800}.btn-action-cancel:hover:not(:disabled){background-color:#ff9800;color:#fff}.btn-action-delete{color:#dc3545;border-color:#dc3545}.btn-action-delete:hover:not(:disabled){background-color:#dc3545;color:#fff}.btn-action svg{flex-shrink:0}@media (max-width: 768px){.stats-grid{grid-template-columns:1fr}}.pagination{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin:1rem 1.25rem 0;padding:.75rem 0;border-top:1px solid var(--border-color)}.pagination-info{color:var(--text-secondary);font-size:.9rem}.pagination-controls{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.pagination-size{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--text-secondary)}.pagination-select{padding:.35rem .5rem;border:1px solid var(--border-color);border-radius:.35rem;background:var(--bg-secondary);color:var(--text-primary);font-size:.9rem;cursor:pointer}.pagination-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.5rem .75rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:.5rem;color:var(--text-primary);font-size:.9rem;cursor:pointer;transition:background .2s,border-color .2s}.pagination-btn:hover:not(:disabled){background:var(--border-color);border-color:var(--text-secondary)}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.pagination-page{font-size:.9rem;color:var(--text-secondary)}@media (max-width: 640px){.pagination{flex-direction:column;align-items:stretch;margin-left:.75rem;margin-right:.75rem}.pagination-controls{justify-content:center}}.clientes-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-primary);margin:0}.btn-primary{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background-color:var(--accent-primary);color:#fff;border:none;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s ease}.btn-primary:hover{background-color:var(--accent-hover)}.search-bar input{flex:1;border:none;background:none;color:var(--text-primary);font-size:1rem}.search-bar input:focus{outline:none}.table-container{overflow-x:auto;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:.5rem}.data-table{width:100%;border-collapse:collapse}.data-table thead{background-color:var(--bg-tertiary)}.data-table th{padding:1rem;text-align:left;font-weight:600;color:var(--text-primary);border-bottom:2px solid var(--border-color)}.data-table td{padding:1rem;border-bottom:1px solid var(--border-color);color:var(--text-primary)}.data-table tbody tr:hover{background-color:var(--bg-tertiary)}.btn-icon{background:none;border:none;color:var(--accent-primary);cursor:pointer;padding:.5rem;border-radius:.25rem;transition:background-color .2s ease}.btn-icon:hover{background-color:var(--bg-tertiary)}.btn-icon.btn-danger{color:var(--danger)}.loading{text-align:center;padding:2rem;color:var(--text-secondary)}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:var(--text-primary);font-weight:500}.form-group input[type=text],.form-group input[type=email],.form-group input[type=number],.form-group select,.form-group textarea{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:.5rem;background-color:var(--bg-primary);color:var(--text-primary);font-size:1rem}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent-primary)}.form-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem}.btn-secondary{padding:.75rem 1.5rem;background-color:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s ease}.btn-secondary:hover{background-color:var(--border-color)}@media (max-width: 768px){.page-header{flex-direction:column;align-items:flex-start;gap:1rem}.data-table{font-size:.9rem}.data-table th,.data-table td{padding:.75rem .5rem}}.barberos-page{width:100%}.productos-page,.pedidos-page{width:100%}.search-bar{display:flex;align-items:center;gap:.75rem;padding:.75rem;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:.5rem;margin-bottom:1.5rem}.search-bar svg{color:var(--text-secondary);flex-shrink:0}.search-bar input{flex:1;border:none;background:transparent;color:var(--text-primary);font-size:1rem;outline:none}.search-bar input::placeholder{color:var(--text-secondary)}.toggle-group{margin-bottom:1.5rem}.toggle-label{display:flex!important;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer;padding:.75rem 1rem;background-color:var(--bg-secondary);border:2px solid var(--border-color);border-radius:.5rem;transition:all .3s ease;width:100%}.toggle-label:hover{border-color:var(--accent-primary);background-color:#007bff0d}.toggle-text{font-weight:500;color:var(--text-primary);font-size:1rem;white-space:nowrap;flex-shrink:0}.toggle-switch{position:relative;width:52px;height:28px;flex-shrink:0;margin-left:auto}.toggle-switch input{opacity:0;width:0;height:0;position:absolute}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.3s;border-radius:28px}.toggle-slider:before{position:absolute;content:"";height:22px;width:22px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%;box-shadow:0 2px 4px #0003}.toggle-switch input:checked+.toggle-slider{background-color:var(--accent-primary)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(24px)}.toggle-switch input:focus+.toggle-slider{box-shadow:0 0 1px var(--accent-primary)}.servicios-page,.permisos-page{width:100%}.permisos-container{display:grid;grid-template-columns:250px 1fr;gap:2rem}.barberos-list{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:.5rem;padding:1rem}.barberos-list h2{font-size:1.25rem;margin-bottom:1rem;color:var(--text-primary)}.barbero-item{padding:.75rem;margin-bottom:.5rem;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:.5rem;cursor:pointer;transition:all .2s ease;color:var(--text-primary)}.barbero-item:hover{background-color:var(--bg-tertiary)}.barbero-item.active{background-color:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.permisos-list{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:.5rem;padding:1.5rem}.permisos-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.permisos-header h2{font-size:1.25rem;color:var(--text-primary);margin:0}.permisos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.permiso-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:.5rem;color:var(--text-primary)}@media (max-width: 768px){.permisos-container{grid-template-columns:1fr}}.proveedores-page,.reportes-page{width:100%}.reportes-container{display:flex;flex-direction:column;gap:2rem}.reportes-filters{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:.75rem;padding:1.5rem;display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end}.reportes-filters .form-group{flex:1;min-width:200px}.reportes-filters .form-group label{display:block;margin-bottom:.5rem;color:var(--text-secondary);font-size:.9rem}.reportes-filters .form-group select,.reportes-filters .form-group input{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:.5rem;background-color:var(--bg-primary);color:var(--text-primary);font-size:.9rem}.btn-generar-container{display:flex;align-items:flex-end;min-width:200px}.btn-generar-reporte{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background-color:var(--accent-primary);color:#fff;border:none;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #007bff4d;width:100%;justify-content:center}.btn-generar-reporte:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #007bff66;background-color:#0056b3}.btn-generar-reporte:active:not(:disabled){transform:translateY(0)}.btn-generar-reporte:disabled{opacity:.6;cursor:not-allowed}.spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.reporte-resultado{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:.75rem;padding:1.5rem}.reporte-resultado h2{margin-top:0;margin-bottom:1.5rem;color:var(--text-primary);display:flex;align-items:center}.stat-card{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:.75rem;padding:1.5rem;display:flex;align-items:center;gap:1rem;transition:transform .2s ease,box-shadow .2s ease}.desglose-card{grid-column:1 / -1}.desglose-value{font-size:1.1rem!important;font-weight:600!important;line-height:1.6;margin-top:.5rem!important;color:var(--text-primary)!important}.servicios-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:2rem}.servicio-group{display:flex;flex-direction:column;gap:1rem}@media (max-width: 768px){.servicios-grid{grid-template-columns:1fr}.btn-generar-container{width:100%;min-width:100%}}.empty-state{text-align:center;padding:3rem;color:var(--text-secondary)}.empty-state p{margin:0;font-size:1rem}.morosos-page{width:100%}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:.75rem;padding:1.5rem;display:flex;align-items:center;gap:1rem;transition:transform .2s ease,box-shadow .2s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow)}.stat-icon{width:60px;height:60px;border-radius:.5rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-content{flex:1}.stat-label{font-size:.9rem;color:var(--text-secondary);margin:0 0 .25rem}.stat-value{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0}.stat-description{font-size:.75rem;color:var(--text-secondary);margin:.25rem 0 0;opacity:.8}.sidebar{position:fixed;left:0;top:0;height:100vh;width:250px;background-color:var(--bg-secondary);border-right:1px solid var(--border-color);z-index:1000;transition:transform .3s ease;overflow-y:auto}.sidebar-nav{display:flex;flex-direction:column;padding:1rem 0}.nav-link{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;color:var(--text-secondary);text-decoration:none;transition:all .2s ease;border-left:3px solid transparent}.nav-link:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.nav-link.active{background-color:var(--bg-tertiary);color:var(--accent-primary);border-left-color:var(--accent-primary);font-weight:600}.nav-link span{font-size:.95rem}@media (max-width: 1024px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0);box-shadow:2px 0 10px #0000001a}}@media (max-width: 768px){.sidebar{width:100%;max-width:280px}}.header{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);padding:1rem 2rem;position:sticky;top:0;z-index:100;box-shadow:0 2px 4px var(--shadow)}.header-content{display:flex;justify-content:space-between;align-items:center}.header-left{display:flex;align-items:center;gap:1rem}.menu-button{background:none;border:none;color:var(--text-primary);cursor:pointer;padding:.5rem;border-radius:.5rem;display:none;align-items:center;justify-content:center;transition:background-color .2s ease}.menu-button:hover{background-color:var(--bg-tertiary)}.header-title{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin:0}.header-actions{display:flex;align-items:center;gap:1rem}.icon-button{background:none;border:none;color:var(--text-primary);cursor:pointer;padding:.5rem;border-radius:.5rem;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease}.icon-button:hover{background-color:var(--bg-tertiary)}.user-info{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-size:.9rem}@media (max-width: 1024px){.menu-button{display:flex}}@media (max-width: 768px){.header{padding:1rem}.header-title{font-size:1.2rem}.user-info span{display:none}.menu-button{display:flex}}.layout{display:flex;min-height:100vh;background-color:var(--bg-primary);position:relative}.layout-content{flex:1;display:flex;flex-direction:column;margin-left:250px;transition:margin-left .3s ease;width:calc(100% - 250px)}.sidebar-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;z-index:999;display:none}.main-content{flex:1;padding:2rem;overflow-y:auto}@media (max-width: 1024px){.layout-content{margin-left:0;width:100%}.sidebar-overlay{display:block}}@media (max-width: 768px){.layout-content{margin-left:0;width:100%}.main-content{padding:1rem}.sidebar-overlay{display:block}}*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--bg-tertiary: #e9ecef;--text-primary: #212529;--text-secondary: #6c757d;--border-color: #dee2e6;--accent-primary: #007bff;--accent-hover: #0056b3;--success: #28a745;--danger: #dc3545;--warning: #ffc107;--shadow: rgba(0, 0, 0, .1)}[data-theme=dark]{--bg-primary: #1a1a1a;--bg-secondary: #2d2d2d;--bg-tertiary: #3d3d3d;--text-primary: #ffffff;--text-secondary: #b0b0b0;--border-color: #404040;--accent-primary: #4dabf7;--accent-hover: #339af0;--success: #51cf66;--danger: #ff6b6b;--warning: #ffd43b;--shadow: rgba(0, 0, 0, .3)}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(--bg-primary);color:var(--text-primary);transition:background-color .3s ease,color .3s ease}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}
