:root{--primary: #1565C0;--primary-light: #1E88E5;--primary-dark: #0D47A1;--secondary: #FF9800;--accent: #4CAF50;--tehui-red: #E53935;--tehui-yellow: #FDD835;--tehui-green: #43A047;--tehui-blue: #42A5F5;--tehui-orange: #FB8C00;--bg-main: #f5f7fa;--bg-card: #ffffff;--text-primary: #1a1f24;--text-secondary: #5c6975;--text-muted: #8b95a1;--border: #e0e4e8;--border-light: #f0f2f5;--success: #43A047;--warning: #FDD835;--danger: #E53935;--shadow: 0 2px 8px rgba(21, 101, 192, .08);--shadow-md: 0 4px 16px rgba(21, 101, 192, .12);--radius: 8px;--radius-lg: 12px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-main);color:var(--text-primary);font-size:14px;line-height:1.5}.app{display:flex;min-height:100vh}.sidebar{width:250px;background:linear-gradient(180deg,#1565c0,#0d47a1);position:fixed;height:100vh;overflow-y:auto;z-index:100;display:flex;flex-direction:column}.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:2px}.sidebar-header{padding:20px;border-bottom:1px solid rgba(255,255,255,.15);background:#ffffff0d}.logo{display:flex;align-items:center;gap:12px;color:#fff}.logo-icon{width:50px;height:50px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:#fff;padding:4px;box-shadow:0 2px 8px #0003}.logo-text h1{font-size:16px;font-weight:700;line-height:1.3;color:#fff}.logo-text span{font-size:11px;color:#ffffffb3;display:block;margin-top:2px}.nav{padding:15px 10px;flex:1}.nav-group{margin-bottom:20px}.nav-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#ffffff80;padding:0 12px;margin-bottom:8px}.nav-item{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:8px;color:#ffffffbf;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;margin-bottom:4px}.nav-item:hover{background:#ffffff1f;color:#fff}.nav-item.active{background:#fff3;color:#fff;box-shadow:inset 0 0 0 1px #ffffff1a}.nav-item svg{width:20px;height:20px;flex-shrink:0}.nav-badge{background:var(--tehui-red);color:#fff;font-size:11px;padding:2px 8px;border-radius:10px;margin-left:auto;font-weight:600}.sidebar-footer{padding:15px;border-top:1px solid rgba(255,255,255,.15);background:#0000001a}.user-info{display:flex;align-items:center;gap:10px}.user-avatar{width:40px;height:40px;border-radius:10px;background:#fff3;display:flex;align-items:center;justify-content:center;color:#fff}.user-avatar svg{width:20px;height:20px}.user-details{display:flex;flex-direction:column}.user-name{color:#fff;font-weight:600;font-size:13px}.user-role{color:#fff9;font-size:11px}.main{flex:1;margin-left:250px;min-height:100vh;display:flex;flex-direction:column}.topbar{background:var(--bg-card);padding:15px 25px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:50}.topbar-left h2{font-size:20px;font-weight:700;color:var(--text-primary)}.topbar-left p{font-size:13px;color:var(--text-secondary);margin-top:2px;text-transform:capitalize}.topbar-right{display:flex;gap:10px;align-items:center}.version-badge{background:linear-gradient(135deg,var(--primary-light),var(--primary));color:#fff;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600}.page{padding:25px;flex:1;overflow-x:auto}.card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow);border:1px solid var(--border-light);margin-bottom:20px;overflow:hidden}.card-header{padding:15px 20px;border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;align-items:center}.card-title{font-size:16px;font-weight:700;display:flex;align-items:center;gap:8px;color:var(--text-primary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 18px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;border:none;font-family:inherit;transition:all .2s;white-space:nowrap}.btn-primary{background:linear-gradient(135deg,var(--primary-light),var(--primary));color:#fff;box-shadow:0 2px 8px #1e88e54d}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #1e88e566}.btn-secondary{background:#fff;color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg-main);border-color:var(--primary-light)}.btn-success{background:linear-gradient(135deg,var(--tehui-green),#388E3C);color:#fff}.btn-danger{background:linear-gradient(135deg,var(--tehui-red),#C62828);color:#fff}.alert{padding:12px 16px;border-radius:8px;margin-bottom:15px;display:flex;align-items:flex-start;gap:10px;font-size:14px}.alert-info{background:#42a5f51a;border:1px solid rgba(66,165,245,.2);color:#1565c0}.alert-success{background:#43a0471a;border:1px solid rgba(67,160,71,.2);color:var(--success)}.alert-warning{background:#ffc1071a;border:1px solid rgba(255,193,7,.2);color:#856404}.alert-danger{background:#e539351a;border:1px solid rgba(229,57,53,.2);color:var(--danger)}@media(max-width:1024px){.sidebar{width:220px}.main{margin-left:220px}}@media(max-width:768px){.sidebar{transform:translate(-100%);transition:transform .3s}.sidebar.open{transform:translate(0)}.main{margin-left:0}}.nav-item{text-decoration:none}a.nav-item{text-decoration:none;display:flex}.connection-status{display:flex;align-items:center;gap:8px;color:#ffffffb3;font-size:12px;padding:8px 12px;background:#ffffff1a;border-radius:8px;margin-bottom:12px}.connection-status svg{width:16px;height:16px}.user-avatar{width:40px;height:40px;border-radius:10px;background:#fff3;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:16px}.topbar-right .fecha{font-size:13px;color:var(--text-secondary);text-transform:capitalize}.stat-card{background:#fff;border-radius:12px;padding:20px;display:flex;align-items:center;gap:16px;box-shadow:0 2px 8px #00000014;cursor:pointer;transition:transform .2s,box-shadow .2s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000001f}.stat-card.purple{border-left:4px solid #8b5cf6}.stat-icon{font-size:32px;width:50px;height:50px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#f8fafc}.stat-info h3{font-size:28px;font-weight:700;margin:0;color:#1e293b}.barra-acciones{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:16px}.vista-toggle{display:flex;gap:8px}.btn-vista{padding:8px 16px;border:1px solid #e2e8f0;background:#fff;border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s}.btn-vista.activo{background:#1565c0;color:#fff;border-color:#1565c0}.btn-nueva,.btn-nuevo,.btn-primary{background:linear-gradient(135deg,#1e88e5,#1565c0);color:#fff;border:none;padding:10px 20px;border-radius:8px;cursor:pointer;font-weight:600;font-size:14px}.tabla-vacaciones,.tabla-licencias,.tabla-nominas,.tabla-prestamos,.tabla-empleados{width:100%;border-collapse:collapse}.tabla-vacaciones th,.tabla-licencias th,.tabla-nominas th,.tabla-prestamos th,.tabla-empleados th{background:#f8fafc;padding:12px;text-align:left;font-weight:600;color:#475569;border-bottom:2px solid #e2e8f0}.tabla-vacaciones td,.tabla-licencias td,.tabla-nominas td,.tabla-prestamos td,.tabla-empleados td{padding:12px;border-bottom:1px solid #e2e8f0}.tabla-vacaciones tbody tr:hover,.tabla-licencias tbody tr:hover,.tabla-nominas tbody tr:hover,.tabla-prestamos tbody tr:hover,.tabla-empleados tbody tr:hover{background:#f8fafc}.estado-badge{padding:4px 12px;border-radius:20px;font-size:12px;font-weight:500;display:inline-flex;align-items:center;gap:4px}.estado-badge.completada{background:#dbeafe;color:#1e40af}.estado-badge.pagada,.estado-badge.activo{background:#d1fae5;color:#065f46}.estado-badge.pagado{background:#e0e7ff;color:#3730a3}.estado-badge.borrador{background:#fef3c7;color:#92400e}.btn-sm{padding:6px 10px;border:none;border-radius:6px;cursor:pointer;font-size:14px;transition:opacity .2s}.btn-sm:hover{opacity:.8}.btn-sm.btn-info{background:#3b82f6;color:#fff}.btn-sm.btn-primary{background:#3b82f6;color:#fff;padding:6px 12px}.alerta-info{background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;padding:16px 20px;display:flex;gap:12px;margin-bottom:24px;color:#1e40af}.alerta-info span:first-child{font-size:20px}.modal-content{background:#fff;border-radius:16px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 40px #0003}.modal-content.modal-lg{max-width:700px}.modal-header{padding:20px;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center}.modal-header h3{margin:0;font-size:18px}.btn-close{background:none;border:none;font-size:24px;cursor:pointer;color:#64748b;line-height:1}.modal-footer{padding:16px 20px;border-top:1px solid #e2e8f0;display:flex;justify-content:flex-end;gap:12px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;font-family:inherit;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.form-grid .full-width{grid-column:span 2}.params-grid{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end}.param-group{display:flex;flex-direction:column;gap:6px}.param-group label{font-size:13px;font-weight:500;color:#475569}.param-group select,.param-group input{padding:10px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;min-width:150px}.resumen-periodo{display:flex;flex-wrap:wrap;gap:24px;padding:16px;background:#f8fafc;border-radius:12px;margin-bottom:20px}.resumen-item{display:flex;flex-direction:column;gap:4px}.resumen-item span:first-child{font-size:12px;color:#64748b}.resumen-item strong{font-size:18px;color:#1e293b}.resumen-item.destacado{padding:12px 20px;background:#1565c0;border-radius:8px}.resumen-item.destacado span,.resumen-item.destacado strong{color:#fff}.text-success{color:#10b981!important}.text-danger{color:#ef4444!important}.acciones-nomina{display:flex;justify-content:flex-end;gap:12px;margin-top:20px;padding-top:20px;border-top:1px solid #e2e8f0}.input-busqueda{padding:10px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;min-width:200px}.select-filtro{padding:10px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;background:#fff}.header-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.badge{padding:4px 12px;border-radius:20px;font-size:12px;font-weight:500;background:#e0e7ff;color:#3730a3}.empty-message{text-align:center;color:#64748b;padding:40px}tr.inactivo{opacity:.6;background:#f8fafc}.card-body{max-height:calc(100vh - 300px);overflow-y:auto}.tabla-empleados thead,.tabla-nominas thead,.tabla-prestamos thead,.tabla-vacaciones thead,.tabla-licencias thead,table thead{position:sticky;top:0;z-index:10}.tabla-empleados thead th,.tabla-nominas thead th,.tabla-prestamos thead th,.tabla-vacaciones thead th,.tabla-licencias thead th,table thead th{background:#1e293b;color:#fff;font-weight:600;padding:14px 12px;text-align:left;border-bottom:none;white-space:nowrap}.tabla-empleados thead th:first-child,.tabla-nominas thead th:first-child,.tabla-prestamos thead th:first-child,.tabla-vacaciones thead th:first-child,.tabla-licencias thead th:first-child,table thead th:first-child{border-radius:8px 0 0}.tabla-empleados thead th:last-child,.tabla-nominas thead th:last-child,.tabla-prestamos thead th:last-child,.tabla-vacaciones thead th:last-child,.tabla-licencias thead th:last-child,table thead th:last-child{border-radius:0 8px 0 0}.tabla-empleados thead:after,.tabla-nominas thead:after,.tabla-prestamos thead:after,.tabla-vacaciones thead:after,.tabla-licencias thead:after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:4px;background:linear-gradient(to bottom,rgba(0,0,0,.1),transparent);pointer-events:none}.tabla-empleados,.tabla-nominas,.tabla-prestamos,.tabla-vacaciones,.tabla-licencias{width:100%;border-collapse:separate;border-spacing:0}.tabla-empleados tbody td,.tabla-nominas tbody td,.tabla-prestamos tbody td,.tabla-vacaciones tbody td,.tabla-licencias tbody td{padding:14px 12px;border-bottom:1px solid #e2e8f0;vertical-align:middle}.tabla-empleados tbody tr:hover,.tabla-nominas tbody tr:hover,.tabla-prestamos tbody tr:hover,.tabla-vacaciones tbody tr:hover,.tabla-licencias tbody tr:hover{background:#f1f5f9}.tabla-nominas tfoot,.tabla-empleados tfoot{position:sticky;bottom:0;z-index:10}.tabla-nominas tfoot td,.tabla-empleados tfoot td{background:#f8fafc;font-weight:600;border-top:2px solid #e2e8f0}.tabla-container,.table-container{max-height:calc(100vh - 350px);overflow-y:auto;border-radius:8px;border:1px solid #e2e8f0}.card-body::-webkit-scrollbar,.tabla-container::-webkit-scrollbar,.table-container::-webkit-scrollbar{width:8px;height:8px}.card-body::-webkit-scrollbar-track,.tabla-container::-webkit-scrollbar-track,.table-container::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.card-body::-webkit-scrollbar-thumb,.tabla-container::-webkit-scrollbar-thumb,.table-container::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.card-body::-webkit-scrollbar-thumb:hover,.tabla-container::-webkit-scrollbar-thumb:hover,.table-container::-webkit-scrollbar-thumb:hover{background:#94a3b8}.inicio{padding:0;max-width:1400px;margin:0 auto}.inicio-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:16px}.spinner{width:40px;height:40px;border:4px solid #e2e8f0;border-top-color:#3182ce;border-radius:50%;animation:spin 1s linear infinite}.inicio-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #e2e8f0}.inicio-header h1{font-size:28px;font-weight:700;color:#1a365d;margin:0 0 4px}.inicio-header p{color:#718096;margin:0;font-size:14px}.header-date{color:#718096;font-size:14px;text-transform:capitalize}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-bottom:24px}.stat-card{background:#fff;border-radius:16px;padding:24px;display:flex;align-items:center;gap:16px;box-shadow:0 2px 8px #0000000f;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.stat-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001f}.stat-card.blue{border-left:4px solid #3182ce}.stat-card.green{border-left:4px solid #38a169}.stat-card.orange{border-left:4px solid #dd6b20}.stat-card.purple{border-left:4px solid #805ad5}.stat-icon{width:56px;height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-card.blue .stat-icon{background:#ebf8ff;color:#3182ce}.stat-card.green .stat-icon{background:#f0fff4;color:#38a169}.stat-card.orange .stat-icon{background:#fffaf0;color:#dd6b20}.stat-card.purple .stat-icon{background:#faf5ff;color:#805ad5}.stat-icon svg{width:28px;height:28px}.stat-info h3{font-size:32px;font-weight:700;color:#1a202c;margin:0;line-height:1}.stat-info p{color:#718096;margin:4px 0 0;font-size:14px}.stat-badge{position:absolute;top:12px;right:12px;background:#e2e8f0;color:#4a5568;font-size:11px;font-weight:600;padding:4px 10px;border-radius:20px}.stat-badge.online{background:#c6f6d5;color:#22543d}.stat-badge.warning{background:#feebc8;color:#c05621}.stat-badge.alert{background:#fed7d7;color:#c53030}.card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;margin-bottom:20px;overflow:hidden}.card-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e2e8f0;background:#f8fafc}.card-title{font-size:16px;font-weight:600;color:#1a365d;margin:0;display:flex;align-items:center;gap:8px}.card-title svg{width:20px;height:20px;opacity:.7}.badge{background:#e2e8f0;color:#4a5568;font-size:12px;font-weight:500;padding:4px 12px;border-radius:20px}.quick-actions{display:flex;flex-wrap:wrap;gap:12px}.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;border:none;transition:all .2s}.btn svg{width:18px;height:18px}.btn-primary{background:#3182ce;color:#fff}.btn-primary:hover{background:#2c5282}.btn-success{background:#38a169;color:#fff}.btn-success:hover{background:#2f855a}.btn-warning{background:#dd6b20;color:#fff}.btn-warning:hover{background:#c05621}.btn-secondary{background:#718096;color:#fff}.btn-secondary:hover{background:#4a5568}.btn-sm{padding:6px 12px;font-size:12px}.btn-ghost{background:transparent;color:#3182ce;padding:6px 12px}.btn-ghost:hover{background:#ebf8ff}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:20px;margin-bottom:20px}.table-mini{width:100%;border-collapse:collapse}.table-mini th,.table-mini td{padding:10px 12px;text-align:left;border-bottom:1px solid #e2e8f0}.table-mini th{font-size:12px;font-weight:600;color:#718096;text-transform:uppercase;background:#f8fafc}.table-mini td{font-size:14px;color:#2d3748}.table-mini tr:last-child td{border-bottom:none}.table-mini tr:hover td{background:#f7fafc}.empty-message{text-align:center;color:#a0aec0;padding:24px;font-size:14px}.nomina-resumen{display:flex;flex-direction:column;gap:12px}.resumen-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #edf2f7}.resumen-row:last-child{border-bottom:none}.resumen-row span:first-child{color:#4a5568;font-size:14px}.resumen-row .valor{font-weight:600;color:#1a202c}.resumen-row .valor.deduccion{color:#e53e3e}.resumen-row .valor.neto{color:#38a169;font-size:18px}.resumen-row.destacado{background:#f0fff4;margin:12px -20px -20px;padding:16px 20px;border-radius:0 0 12px 12px}.resumen-row.destacado span:first-child{font-weight:700;color:#22543d}.aportes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.aporte-item{background:#f8fafc;padding:16px;border-radius:8px;display:flex;flex-direction:column;gap:4px}.aporte-label{font-size:13px;color:#718096}.aporte-valor{font-size:18px;font-weight:600;color:#2d3748}.aporte-item.total{background:linear-gradient(135deg,#1a365d,#2d3748);color:#fff}.aporte-item.total .aporte-label{color:#fffc}.aporte-item.total .aporte-valor{color:#fff;font-size:22px}@media(max-width:768px){.inicio-header{flex-direction:column;gap:12px}.stats-grid{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}.quick-actions{flex-direction:column}.btn{width:100%;justify-content:center}.aportes-grid{grid-template-columns:1fr 1fr}}@media(max-width:480px){.stats-grid,.aportes-grid{grid-template-columns:1fr}}.empleados-container{padding:20px;max-width:1400px;margin:0 auto}.resumen-empleados{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.tarjeta-resumen{background:#fff;border-radius:12px;padding:20px;display:flex;align-items:center;gap:16px;box-shadow:0 2px 8px #00000014;transition:transform .2s}.tarjeta-resumen:hover{transform:translateY(-2px)}.tarjeta-icono{font-size:2rem}.tarjeta-contenido{display:flex;flex-direction:column}.tarjeta-valor{font-size:1.5rem;font-weight:700;color:#1a1a2e}.tarjeta-label{font-size:.85rem;color:#666}.tarjeta-resumen.activos{border-left:4px solid #40916c}.tarjeta-resumen.inactivos{border-left:4px solid #e63946}.tarjeta-resumen.salarios{border-left:4px solid #4361ee}.barra-acciones{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;margin-bottom:24px;background:#fff;padding:16px;border-radius:12px;box-shadow:0 2px 8px #00000014}.filtros{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.campo-busqueda{position:relative;display:flex;align-items:center}.campo-busqueda .icono-busqueda{position:absolute;left:12px;font-size:1rem}.campo-busqueda input{padding:10px 36px;border:1px solid #ddd;border-radius:8px;width:280px;font-size:.95rem}.campo-busqueda input:focus{outline:none;border-color:#4361ee}.btn-limpiar{position:absolute;right:8px;background:#ddd;border:none;border-radius:50%;width:20px;height:20px;cursor:pointer;font-size:.9rem}.filtro-select{padding:10px 12px;border:1px solid #ddd;border-radius:8px;font-size:.95rem;background:#fff}.filtro-select:focus{outline:none;border-color:#4361ee}.toggle-inactivos{display:flex;align-items:center;gap:6px;font-size:.9rem;color:#555;cursor:pointer}.toggle-inactivos input{cursor:pointer}.btn-nuevo{padding:12px 24px;background:linear-gradient(135deg,#4361ee,#3a0ca3);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.btn-nuevo:hover{transform:translateY(-2px);box-shadow:0 4px 12px #4361ee66}.seccion-tabla{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #00000014}.tabla-header{margin-bottom:16px}.tabla-header h3{margin:0;color:#1a1a2e}.tabla-empleados{width:100%;border-collapse:collapse}.tabla-empleados th{background:#f8f9fa;padding:12px;text-align:left;font-weight:600;color:#333;border-bottom:2px solid #ddd;white-space:nowrap}.tabla-empleados td{padding:12px;border-bottom:1px solid #eee;vertical-align:middle}.tabla-empleados tbody tr:hover{background:#f8f9fa}.tabla-empleados tr.inactivo{opacity:.6;background:#f5f5f5}.empleado-info{display:flex;flex-direction:column}.empleado-info strong{color:#1a1a2e}.empleado-info small{color:#666;font-size:.85rem}.badge-depto{display:inline-block;padding:4px 10px;background:#e3f2fd;color:#1565c0;border-radius:20px;font-size:.8rem;font-weight:500}.salario{font-weight:600;color:#2d6a4f}.estado-badge{display:inline-block;padding:4px 10px;border-radius:20px;font-size:.8rem}.estado-badge.activo{background:#d8f3dc;color:#2d6a4f}.estado-badge.inactivo{background:#ffe5e5;color:#e63946}.btn-accion{background:none;border:1px solid #ddd;border-radius:6px;padding:6px 10px;cursor:pointer;transition:all .2s}.btn-accion.editar:hover{border-color:#4361ee;background:#e8ecff}.btn-accion.eliminar:hover{border-color:#e63946;background:#ffe5e5}.btn-accion.toggle:hover{border-color:#ffc107;background:#fff8e1}.sin-empleados{text-align:center;padding:40px;color:#666}.modal-empleado{background:#fff;border-radius:16px;width:100%;max-width:700px;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #eee;position:sticky;top:0;background:#fff;z-index:10}.modal-header h3{margin:0;color:#1a1a2e}.btn-cerrar{background:none;border:none;font-size:1.8rem;color:#666;cursor:pointer;line-height:1}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #eee;background:#f8f9fa;border-radius:0 0 16px 16px;position:sticky;bottom:0}fieldset{border:1px solid #ddd;border-radius:8px;padding:16px;margin-bottom:20px}legend{padding:0 8px;font-weight:600;color:#1a1a2e}.campo label{display:block;margin-bottom:6px;font-weight:500;color:#555;font-size:.9rem}.campo input,.campo select,.campo textarea{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:8px;font-size:1rem;transition:border-color .2s}.campo input:focus,.campo select:focus,.campo textarea:focus{outline:none;border-color:#4361ee}.campos-row.tres{grid-template-columns:1fr 1fr 1fr}.campo-checkbox{padding:12px}.campo-checkbox label{display:flex;align-items:center;gap:8px;cursor:pointer}.errores-validacion{background:#ffe5e5;border:1px solid #e63946;border-radius:8px;padding:12px 16px;margin-bottom:16px}.errores-validacion p{margin:4px 0;color:#d62839;font-size:.9rem}.btn-cancelar{padding:10px 20px;background:#f1f3f5;color:#495057;border:none;border-radius:8px;cursor:pointer;font-size:1rem}.btn-cancelar:hover{background:#e9ecef}.btn-guardar{padding:10px 20px;background:linear-gradient(135deg,#2d6a4f,#40916c);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s}.btn-guardar:hover{transform:translateY(-2px)}@media(max-width:768px){.empleados-container{padding:12px}.barra-acciones{flex-direction:column;align-items:stretch}.filtros{flex-direction:column;width:100%}.campo-busqueda input,.filtro-select,.btn-nuevo{width:100%}.campos-row,.campos-row.tres{grid-template-columns:1fr}.tabla-empleados{font-size:.85rem}}.acciones-btns{display:flex;gap:10px}.btn-evaluacion{background:linear-gradient(135deg,#9c27b0,#7b1fa2);color:#fff;border:none;padding:10px 16px;border-radius:8px;cursor:pointer;font-weight:500;font-size:14px}.btn-ajuste{background:linear-gradient(135deg,#ff9800,#f57c00);color:#fff;border:none;padding:10px 16px;border-radius:8px;cursor:pointer;font-weight:500;font-size:14px}.btn-evaluacion:hover,.btn-ajuste:hover{opacity:.9;transform:translateY(-1px)}.evaluacion-section{background:#fff;border-radius:12px;margin-bottom:20px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.evaluacion-header-bar{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:linear-gradient(135deg,#9c27b0,#7b1fa2);color:#fff}.evaluacion-header-bar h3{margin:0}.btn-cerrar-eval{background:#fff3;border:none;color:#fff;padding:6px 12px;border-radius:6px;cursor:pointer}.btn-cerrar-eval:hover{background:#ffffff4d}.modal-empleado.modal-grande{max-width:800px;width:95%;max-height:90vh}.modal-empleado.modal-grande .modal-body{max-height:calc(90vh - 140px);overflow-y:auto}.modal-tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:2px solid #e2e8f0;padding-bottom:0}.modal-tab{padding:10px 16px;background:transparent;border:none;border-bottom:3px solid transparent;color:#64748b;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s;margin-bottom:-2px}.modal-tab:hover{color:#3b82f6;background:#f1f5f9}.modal-tab.active{color:#3b82f6;border-bottom-color:#3b82f6;background:transparent}.campos-row.tres{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}@media(max-width:768px){.campos-row.tres{grid-template-columns:1fr}}.fieldset-disabled{opacity:.6}.fieldset-disabled input,.fieldset-disabled select{background-color:#f1f5f9;cursor:not-allowed}.nota-desvinculacion{margin:12px 0 0;padding:10px;background:#fef3c7;border-radius:6px;color:#92400e;font-size:.85rem}.campo-checkbox-inline{display:flex;align-items:center;height:42px}.campo-checkbox-inline label{display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:500}.campo-checkbox-inline input[type=checkbox]{width:18px;height:18px;cursor:pointer}.campo-hint{display:block;font-size:.75rem;color:#94a3b8;margin-top:4px}.info-bancario{background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;padding:12px 16px;margin-top:16px}.info-bancario p{margin:0;color:#0369a1;font-size:.9rem}@media(max-width:600px){.modal-tabs{flex-wrap:wrap}.modal-tab{flex:1;min-width:45%;text-align:center;font-size:.8rem;padding:8px 12px}.campos-row{grid-template-columns:1fr!important}}.modal-ajuste-salarios{background:#fff;border-radius:16px;width:95%;max-width:800px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.modal-ajuste-salarios .modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #eee;background:linear-gradient(135deg,#1a73e8,#0d47a1);border-radius:16px 16px 0 0}.modal-ajuste-salarios .modal-header h3{margin:0;color:#fff;font-size:18px}.modal-ajuste-salarios .btn-cerrar{background:#fff3;border:none;color:#fff;width:32px;height:32px;border-radius:50%;font-size:20px;cursor:pointer;transition:background .2s}.modal-ajuste-salarios .btn-cerrar:hover{background:#ffffff4d}.modal-ajuste-salarios .modal-body{padding:24px;overflow-y:auto;flex:1}.ajuste-config{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.campo-porcentaje label,.campo-motivo label{display:block;font-weight:600;color:#333;margin-bottom:8px}.input-porcentaje{display:flex;align-items:center;gap:8px}.input-porcentaje input{width:100px;padding:12px;border:2px solid #ddd;border-radius:8px;font-size:18px;font-weight:600;text-align:center;background:#fff;color:#333}.input-porcentaje input:focus{outline:none;border-color:#1a73e8}.input-porcentaje span{font-size:18px;font-weight:600;color:#333}.campo-motivo select{width:100%;padding:12px;border:2px solid #ddd;border-radius:8px;font-size:14px;background:#fff;color:#333;cursor:pointer}.campo-motivo select:focus{outline:none;border-color:#1a73e8}.seleccion-rapida{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;padding:12px;background:#f5f5f5;border-radius:10px}.btn-seleccion{padding:8px 14px;border:1px solid #ddd;border-radius:20px;background:#fff;color:#555;font-size:13px;cursor:pointer;transition:all .2s}.btn-seleccion:hover{border-color:#1a73e8;color:#1a73e8}.btn-seleccion.activo{background:#1a73e8;color:#fff;border-color:#1a73e8}.lista-empleados{border:1px solid #e0e0e0;border-radius:10px;max-height:300px;overflow-y:auto}.lista-header{display:grid;grid-template-columns:2fr 1fr 1fr;padding:12px 16px;background:#f5f5f5;font-weight:600;font-size:13px;color:#555;position:sticky;top:0;border-bottom:1px solid #ddd}.empleado-item{display:grid;grid-template-columns:2fr 1fr 1fr;padding:12px 16px;border-bottom:1px solid #eee;cursor:pointer;transition:background .2s;align-items:center}.empleado-item:last-child{border-bottom:none}.empleado-item:hover{background:#f8f9fa}.empleado-info{display:flex;align-items:center;gap:12px}.empleado-info input[type=checkbox]{width:18px;height:18px;cursor:pointer}.empleado-nombre{display:block;font-weight:500;color:#333;font-size:14px}.empleado-depto{display:block;font-size:12px;color:#666}.salario-actual{color:#555;font-size:14px}.salario-nuevo{text-align:right}.salario-nuevo .nuevo{display:block;font-weight:600;color:#2e7d32;font-size:14px}.salario-nuevo .diferencia{display:block;font-size:12px;color:#43a047}.salario-nuevo .sin-cambio{color:#999}.resumen-ajuste{margin-top:20px;padding:16px;background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border-radius:10px;border:1px solid #a5d6a7}.resumen-item{display:flex;justify-content:space-between;padding:8px 0;font-size:14px}.resumen-item.total{border-top:2px solid #81c784;margin-top:8px;padding-top:12px;font-size:16px}.resumen-item .positivo{color:#2e7d32}.confirmacion-ajuste{text-align:center}.icono-confirmacion{font-size:48px;margin-bottom:16px}.confirmacion-ajuste h4{margin:0 0 20px;color:#333;font-size:20px}.detalles-confirmacion{background:#f5f5f5;padding:16px;border-radius:10px;margin-bottom:16px;text-align:left}.detalles-confirmacion p{margin:8px 0;font-size:14px}.detalles-confirmacion .positivo{color:#2e7d32;font-weight:600}.advertencia-legal{background:#fff8e1;border:1px solid #ffcc02;border-left:4px solid #ff8f00;padding:12px 16px;border-radius:8px;margin-bottom:16px;text-align:left}.advertencia-legal p{margin:0;font-size:13px;color:#5d4037}.lista-confirmacion{text-align:left;max-height:200px;overflow-y:auto;border:1px solid #e0e0e0;border-radius:8px;padding:12px}.lista-confirmacion h5{margin:0 0 12px;color:#333;font-size:14px}.confirmacion-item{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #eee;font-size:13px}.confirmacion-item:last-child{border-bottom:none}.modal-ajuste-salarios .modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #eee}.btn-cancelar,.btn-volver{padding:12px 24px;background:#f5f5f5;color:#666;border:1px solid #ddd;border-radius:8px;font-size:14px;cursor:pointer;transition:all .2s}.btn-cancelar:hover,.btn-volver:hover{background:#eee}.btn-continuar{padding:12px 24px;background:linear-gradient(135deg,#1a73e8,#0d47a1);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-continuar:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #1a73e84d}.btn-continuar:disabled{opacity:.5;cursor:not-allowed}.btn-aplicar{padding:12px 24px;background:linear-gradient(135deg,#2e7d32,#1b5e20);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-aplicar:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #2e7d324d}.btn-aplicar:disabled{opacity:.6;cursor:not-allowed}@media(max-width:600px){.ajuste-config{grid-template-columns:1fr}.lista-header,.empleado-item{grid-template-columns:1fr;gap:8px}.lista-header span:not(:first-child){display:none}.salario-actual,.salario-nuevo{text-align:left}}.evaluacion-financiera{background:#fff;border-radius:12px;padding:24px;margin-bottom:24px;box-shadow:0 2px 8px #00000014}.evaluacion-header{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #eee}.evaluacion-header h3{margin:0 0 8px;color:#1a1a2e;font-size:18px}.evaluacion-header p{margin:0;color:#666;font-size:14px}.ingresos-input-section{margin-bottom:24px}.ingresos-input-section label{display:block;font-weight:600;color:#333;margin-bottom:10px}.ingresos-input-group{display:flex;align-items:center;gap:8px}.ingresos-input-group .moneda{font-weight:600;color:#333;font-size:16px}.ingresos-input-group input{flex:1;max-width:300px;padding:14px 16px;border:2px solid #ddd;border-radius:10px;font-size:18px;font-weight:600;background:#fff;color:#333}.ingresos-input-group input:focus{outline:none;border-color:#1a73e8}.ingresos-input-group .guardando{animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.indicador-principal{display:flex;justify-content:space-between;align-items:center;padding:20px;border-radius:12px;margin-bottom:20px;background:#f8f9fa}.indicador-principal.óptimo{background:linear-gradient(135deg,#e8f5e9,#c8e6c9)}.indicador-principal.aceptable{background:linear-gradient(135deg,#fff8e1,#ffecb3)}.indicador-principal.alto{background:linear-gradient(135deg,#fff3e0,#ffe0b2)}.indicador-principal.crítico{background:linear-gradient(135deg,#ffebee,#ffcdd2)}.indicador-porcentaje{text-align:left}.porcentaje-valor{display:block;font-size:36px;font-weight:700;color:#1a1a2e}.porcentaje-label{font-size:14px;color:#666}.indicador-estado{padding:10px 20px;border-radius:20px;color:#fff;font-weight:600;font-size:14px}.barra-progreso-container{margin-bottom:24px}.barra-progreso{display:flex;height:40px;border-radius:8px;overflow:hidden;background:#e0e0e0}.barra-nomina{display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:600;transition:width .5s ease;min-width:fit-content;padding:0 10px}.barra-otros{display:flex;align-items:center;justify-content:center;background:#81c784;color:#fff;font-size:12px;font-weight:600;min-width:fit-content;padding:0 10px}.barra-leyenda{display:flex;justify-content:space-between;margin-top:8px;font-size:12px;color:#666}.marca-optimo{color:#2e7d32;font-weight:600}.resumen-costos{background:#f8f9fa;border-radius:10px;padding:16px;margin-bottom:20px}.costo-item{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #eee}.costo-item:last-child{border-bottom:none}.costo-item.sub{padding-left:20px;font-size:13px;color:#666}.costo-item.total{border-top:2px solid #ddd;margin-top:8px;padding-top:12px;font-weight:600}.costo-item.margen{background:#e3f2fd;margin:8px -16px -16px;padding:12px 16px;border-radius:0 0 10px 10px}.costo-label{color:#555}.costo-valor{font-weight:600;color:#333}.costo-valor.ingresos{color:#1a73e8}.costo-valor.positivo{color:#2e7d32}.costo-valor.negativo{color:#d32f2f}.recomendaciones{padding:16px;border-radius:10px;margin-bottom:20px}.recomendaciones.óptimo{background:#e8f5e9;border-left:4px solid #2e7d32}.recomendaciones.aceptable{background:#fff8e1;border-left:4px solid #ff9800}.recomendaciones.alto{background:#fff3e0;border-left:4px solid #f57c00}.recomendaciones.crítico{background:#ffebee;border-left:4px solid #d32f2f}.recomendaciones h4{margin:0 0 12px;font-size:15px;color:#333}.recomendaciones p{margin:0;font-size:14px;line-height:1.6;color:#555}.btn-toggle-detalle{width:100%;padding:12px;background:#f5f5f5;border:1px solid #ddd;border-radius:8px;font-size:14px;color:#555;cursor:pointer;transition:all .2s;margin-bottom:16px}.btn-toggle-detalle:hover{background:#eee}.desglose-departamentos{background:#f8f9fa;border-radius:10px;padding:16px;margin-bottom:20px}.desglose-departamentos h4{margin:0 0 16px;font-size:15px;color:#333}.depto-item{padding:12px 0;border-bottom:1px solid #eee}.depto-item:last-child{border-bottom:none}.depto-info{display:flex;justify-content:space-between;margin-bottom:6px}.depto-nombre{font-weight:500;color:#333}.depto-cantidad{font-size:12px;color:#666}.depto-valores{display:flex;justify-content:space-between;margin-bottom:8px;font-size:14px}.depto-salario{font-weight:600;color:#1a73e8}.depto-porcentaje{color:#666}.depto-barra{height:6px;background:#e0e0e0;border-radius:3px;overflow:hidden}.depto-barra-fill{height:100%;background:linear-gradient(90deg,#1a73e8,#0d47a1);border-radius:3px;transition:width .3s ease}.referencia-teorica{background:#f5f5f5;border-radius:10px;padding:16px}.referencia-teorica h4{margin:0 0 12px;font-size:14px;color:#333}.referencia-teorica p{margin:0 0 12px;font-size:13px;color:#555}.referencia-teorica ul{margin:0;padding:0;list-style:none}.referencia-teorica li{padding:6px 0;font-size:13px;color:#555}.rango{display:inline-block;padding:2px 8px;border-radius:4px;font-weight:600;font-size:12px;margin-right:8px}.rango.optimo{background:#e8f5e9;color:#2e7d32}.rango.aceptable{background:#fff8e1;color:#f57c00}.rango.alto{background:#fff3e0;color:#e65100}.rango.critico{background:#ffebee;color:#c62828}.badge-cerrada{display:inline-flex;align-items:center;gap:4px;background:#dc3545;color:#fff;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600}.badge-abierta{display:inline-flex;align-items:center;gap:4px;background:#28a745;color:#fff;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600}.btn-warning{background:#ffc107;color:#000;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;font-weight:500;font-size:13px;transition:all .2s}.btn-warning:hover{background:#e0a800;transform:translateY(-1px)}.btn-danger{background:#dc3545;color:#fff;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;font-weight:500;font-size:13px;transition:all .2s}.btn-danger:hover{background:#c82333;transform:translateY(-1px)}.nomina-detalle-card{display:flex;flex-direction:column;max-height:calc(100vh - 150px);overflow:hidden;border-radius:12px}.nomina-detalle-header{flex-shrink:0;background:#fff;z-index:10}.nomina-detalle-header .card-header{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;border-bottom:none;flex-wrap:wrap;gap:10px}.nomina-detalle-header .card-header h3{margin:0;font-size:18px;color:#1e293b;display:flex;align-items:center;gap:10px}.nomina-detalle-header .resumen-periodo{display:flex;gap:20px;padding:15px 20px;margin:0;background:#f8fafc;border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0}.nomina-detalle-tabla-container{flex:1;overflow-y:auto;overflow-x:auto;min-height:0;background:#fff}.tabla-sticky{width:100%;border-collapse:separate;border-spacing:0}.tabla-sticky thead th{position:-webkit-sticky;position:sticky;top:0;z-index:5;background:#1565c0!important;color:#fff!important;font-weight:600;padding:12px 15px;text-align:left;box-shadow:0 2px 4px #00000026;border-bottom:2px solid #0D47A1}.tabla-sticky tbody td{padding:12px 15px;border-bottom:1px solid #e2e8f0}.tabla-sticky tbody tr:hover{background:#f8fafc}.nomina-detalle-tabla-container::-webkit-scrollbar{width:10px;height:10px}.nomina-detalle-tabla-container::-webkit-scrollbar-track{background:#f1f5f9;border-radius:5px}.nomina-detalle-tabla-container::-webkit-scrollbar-thumb{background:#1565c0;border-radius:5px}.nomina-detalle-tabla-container::-webkit-scrollbar-thumb:hover{background:#0d47a1}.nomina-detalle-header .badge{background:#e3f2fd;color:#1565c0;padding:6px 12px;border-radius:20px;font-size:13px;font-weight:500}.tabla-scroll{max-height:calc(100vh - 350px);overflow-y:auto;overflow-x:auto;margin:0 -10px;padding:0 10px;position:relative}.tabla-editable{width:100%;border-collapse:separate;border-spacing:0}.tabla-editable thead th{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:#1565c0!important;color:#fff!important;font-weight:600;padding:10px 8px;text-align:center;font-size:11px;white-space:nowrap;box-shadow:0 2px 4px #00000026}.tabla-editable thead th:first-child{text-align:left}.tabla-scroll::-webkit-scrollbar{width:8px;height:8px}.tabla-scroll::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.tabla-scroll::-webkit-scrollbar-thumb{background:#1565c0;border-radius:4px}.tabla-editable{width:100%;border-collapse:separate;border-spacing:0;font-size:12px}.tabla-editable thead th{position:-webkit-sticky!important;position:sticky!important;top:0;z-index:10;background:#1565c0!important;color:#fff!important;font-weight:600;padding:10px 6px;text-align:center;font-size:11px;white-space:nowrap;box-shadow:0 2px 4px #00000026;min-width:70px}.tabla-editable thead th:first-child{text-align:left;min-width:180px;position:-webkit-sticky!important;position:sticky!important;left:0;z-index:15}.tabla-editable td{padding:6px;border-bottom:1px solid #e2e8f0;vertical-align:middle;white-space:nowrap}.tabla-editable tbody tr:hover{background:#f8fafc}.tabla-editable td.col-emp{position:-webkit-sticky;position:sticky;left:0;background:#fff;z-index:5;min-width:160px;max-width:180px;white-space:normal;word-wrap:break-word}.tabla-editable tbody tr:hover td.col-emp{background:#f8fafc}.tabla-editable .col-num{text-align:right;padding:6px;min-width:70px;font-size:11px}.tabla-editable .col-num.ded{color:#dc3545}.tabla-editable .col-num.neto{color:#28a745;background:#f0fdf4;min-width:100px}.tabla-editable .col-input{padding:3px;min-width:55px}.tabla-editable .col-input input{width:55px;padding:5px 3px;border:1px solid #e2e8f0;border-radius:4px;text-align:right;font-size:12px}.tabla-editable .col-input input:focus{outline:none;border-color:#1565c0;background:#e3f2fd}.tabla-editable .col-input input.has-value{background:#fff3cd;border-color:#ffc107;font-weight:500}.emp-info{display:flex;flex-direction:column}.emp-nombre{font-weight:500;color:#1e293b;font-size:12px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.emp-cargo{font-size:9px;color:#64748b;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}.tabla-scroll::-webkit-scrollbar-thumb:hover{background:#0d47a1}.tabla-editable .col-input{text-align:center!important}.btn-aus{display:inline-flex!important;align-items:center;justify-content:center;min-width:40px;padding:6px 12px;border:1px solid #e2e8f0;border-radius:4px;background:#f8fafc;cursor:pointer;font-size:12px;font-weight:500;transition:all .2s}.btn-aus:hover{border-color:#1565c0;background:#e3f2fd}.btn-aus.has-value{background:#dc3545;color:#fff;border-color:#dc3545;font-weight:600}.modal-overlay{position:fixed!important;inset:0;background:#00000080!important;z-index:1000!important;display:flex;align-items:center;justify-content:center}.modal-ausencias{z-index:1001!important;position:relative}.modal-ausencias{z-index:9999!important;position:relative!important;background:#fff}.tabla-editable thead th{z-index:10!important}.tabla-editable thead th:first-child{z-index:11!important}.modal-overlay{position:fixed!important;inset:0;background:#0009!important;z-index:9998!important;display:flex;align-items:center;justify-content:center}.modal-ausencias{background:#fff;border-radius:12px;width:95%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;z-index:9999!important;position:relative}.modal-ausencias .modal-header{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;border-bottom:1px solid #e2e8f0;background:#f8fafc}.modal-ausencias .modal-header h3{margin:0;font-size:16px;color:#1e293b}.modal-ausencias .btn-cerrar{background:none;border:none;font-size:24px;cursor:pointer;color:#64748b;line-height:1}.modal-ausencias .modal-body{padding:20px}.modal-ausencias .aus-info{background:#e3f2fd;padding:12px;border-radius:8px;margin-bottom:15px;border-left:4px solid #1565C0}.modal-ausencias .aus-info strong{display:block;color:#1565c0;margin-bottom:4px;font-size:14px}.modal-ausencias .aus-info span{font-size:12px;color:#555}.modal-ausencias .aus-periodo{background:#f1f5f9;padding:10px 12px;border-radius:6px;margin-bottom:15px;font-size:13px}.modal-ausencias .aus-calendario{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:15px}.modal-ausencias .dia-btn{padding:12px 8px;border:2px solid #e2e8f0;border-radius:8px;background:#f8fafc;cursor:pointer;display:flex;flex-direction:column;align-items:center;transition:all .2s}.modal-ausencias .dia-btn:hover{border-color:#1565c0;background:#e3f2fd}.modal-ausencias .dia-btn.seleccionado{background:#dc3545;border-color:#dc3545;color:#fff}.modal-ausencias .dia-btn .dia-nombre{font-weight:600;font-size:12px}.modal-ausencias .dia-btn .dia-num{font-size:11px;margin-top:2px}.modal-ausencias .aus-resumen{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:12px;margin-top:15px}.modal-ausencias .aus-seleccionados strong{color:#dc3545;font-size:13px;display:block;margin-bottom:8px}.modal-ausencias .aus-tags{display:flex;flex-wrap:wrap;gap:6px}.modal-ausencias .aus-tag{background:#dc3545;color:#fff;padding:4px 10px;border-radius:4px;font-size:11px}.modal-ausencias .aus-descuento{margin-top:12px;font-size:13px;color:#555;padding-top:10px;border-top:1px solid #fecaca}.modal-ausencias .aus-descuento strong{color:#dc3545;font-size:15px}.modal-ausencias .modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:15px 20px;border-top:1px solid #e2e8f0;background:#f8fafc}.modal-ausencias .btn-cancel{padding:8px 16px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;font-size:13px}.modal-ausencias .btn-save{padding:8px 16px;background:#1565c0;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:13px}.modal-ausencias .btn-save:hover{background:#0d47a1}.modal-volantes{background:#fff;width:95%;max-width:900px;max-height:90vh;border-radius:16px;overflow:hidden;display:flex;flex-direction:column}.modal-volantes-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;background:linear-gradient(135deg,#1e88e5,#1565c0);color:#fff}.modal-volantes-header h2{margin:0;font-size:1.4rem}.modal-volantes-header p{margin:4px 0 0;opacity:.9;font-size:.9rem}.btn-cerrar{background:#fff3;border:none;color:#fff;width:36px;height:36px;border-radius:50%;font-size:18px;cursor:pointer;transition:background .2s}.btn-cerrar:hover{background:#ffffff4d}.volantes-control{padding:20px 24px;overflow-y:auto;flex:1}.volantes-resumen{display:flex;gap:15px;margin-bottom:20px;flex-wrap:wrap}.resumen-item{background:#f8fafc;padding:12px 20px;border-radius:10px;text-align:center;flex:1;min-width:100px}.resumen-item .numero{display:block;font-size:1.5rem;font-weight:700;color:#1e293b}.resumen-item .etiqueta{font-size:.75rem;color:#64748b;text-transform:uppercase}.resumen-item.destacado{background:linear-gradient(135deg,#1e88e5,#1565c0);color:#fff}.resumen-item.destacado .numero,.resumen-item.destacado .etiqueta{color:#fff}.resumen-item.enviados{background:#e8f5e9;border:1px solid #4CAF50}.resumen-item.enviados .numero{color:#2e7d32}.volantes-filtros{display:flex;gap:15px;margin-bottom:20px}.campo-busqueda .icono-busqueda{position:absolute;left:12px;top:50%;transform:translateY(-50%)}.campo-busqueda input{width:100%;padding:10px 12px 10px 40px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px}.campo-busqueda .btn-limpiar{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:#e2e8f0;border:none;width:24px;height:24px;border-radius:50%;cursor:pointer}.filtro-depto{padding:10px 15px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;min-width:180px}.volantes-lista{background:#f8fafc;border-radius:12px;overflow:hidden;margin-bottom:20px}.lista-header{padding:12px 16px;background:#e2e8f0;display:flex;justify-content:space-between;align-items:center}.checkbox-todos{display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:500}.lista-empleados{max-height:250px;overflow-y:auto}.empleado-item{display:flex;align-items:center;padding:10px 16px;border-bottom:1px solid #e2e8f0;gap:12px;transition:background .2s}.empleado-item:hover{background:#f1f5f9}.empleado-item.seleccionado{background:#e3f2fd}.empleado-item.enviado{background:#e8f5e9}.empleado-check{display:flex;align-items:center;gap:8px;flex:1;cursor:pointer}.empleado-check .nombre{font-weight:500;color:#1e293b}.empleado-item .depto{font-size:.8rem;color:#64748b;min-width:100px}.empleado-item .email-status{font-size:1rem;width:24px;text-align:center}.empleado-item .neto{font-family:Consolas,monospace;font-weight:600;color:#1565c0;min-width:110px;text-align:right}.btn-enviar-uno{background:#e3f2fd;border:1px solid #1E88E5;color:#1565c0;width:32px;height:32px;border-radius:6px;cursor:pointer;font-size:14px;transition:all .2s}.btn-enviar-uno:hover:not(:disabled){background:#1e88e5;color:#fff}.btn-enviar-uno:disabled{opacity:.5;cursor:not-allowed}.sin-resultados{padding:30px;text-align:center;color:#64748b}.progreso-envio{background:#e3f2fd;padding:15px;border-radius:10px;margin-bottom:20px;text-align:center}.progreso-barra{height:8px;background:#bbdefb;border-radius:4px;overflow:hidden;margin-bottom:8px}.progreso-fill{height:100%;background:linear-gradient(90deg,#1e88e5,#1565c0);transition:width .3s}.progreso-envio span{font-size:.85rem;color:#1565c0;font-weight:500}.volantes-acciones{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap}.btn-secundario{padding:12px 24px;border:1px solid #e2e8f0;background:#fff;border-radius:8px;font-size:14px;cursor:pointer;transition:all .2s}.btn-enviar-todos{padding:12px 24px;background:linear-gradient(135deg,#43a047,#2e7d32);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-enviar-todos:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #2e7d324d}.btn-enviar-todos:disabled{opacity:.6;cursor:not-allowed}.btn-imprimir{padding:12px 24px;background:linear-gradient(135deg,#1e88e5,#1565c0);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-imprimir:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #1565c04d}.btn-imprimir:disabled{opacity:.6;cursor:not-allowed}.nota-impresion{margin-top:15px;padding:12px;background:#fffbeb;border:1px solid #fbbf24;border-radius:8px;font-size:.85rem;color:#92400e}.volantes-container{display:none}@media print{.no-print{display:none!important}.volantes-container{display:flex;flex-wrap:wrap;gap:5mm}}.microsoft-login{background:#fff3cd;border:1px solid #ffc107;padding:15px;border-radius:10px;text-align:center;margin-bottom:15px}.microsoft-login p{margin:0 0 10px;color:#856404}.btn-microsoft{background:linear-gradient(135deg,#0078d4,#106ebe);color:#fff;border:none;padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-microsoft:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0078d44d}.microsoft-conectado{background:#d4edda;border:1px solid #28a745;padding:10px 15px;border-radius:8px;text-align:center;margin-bottom:15px;color:#155724}.prestamos-container{padding:20px;max-width:1400px;margin:0 auto}.prestamos-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.stat-icon{width:50px;height:50px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.5rem}.stat-info h4{margin:0;font-size:1.3rem;color:#1a1a2e}.stat-info p{margin:4px 0 0;color:#666;font-size:.9rem}.prestamos-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #00000014}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:12px}.filtro-select{padding:10px 12px;border:1px solid #ddd;border-radius:8px;font-size:.95rem}.btn-nuevo{padding:10px 20px;background:linear-gradient(135deg,#4361ee,#3a0ca3);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500}.tabla-prestamos{width:100%;border-collapse:collapse}.tabla-prestamos th{background:#f8f9fa;padding:12px;text-align:left;font-weight:600;border-bottom:2px solid #ddd}.tabla-prestamos td{padding:12px;border-bottom:1px solid #eee;vertical-align:middle}.tabla-prestamos td strong{display:block}.tabla-prestamos td small.motivo{color:#666;font-size:.85rem}.cuota{font-weight:600;color:#e63946}.saldo{font-weight:600;color:#2d6a4f}.progreso{font-size:.9rem;color:#666}.barra-progreso{height:6px;background:#e9ecef;border-radius:3px;margin-top:4px;overflow:hidden}.barra-fill{height:100%;background:linear-gradient(90deg,#40916c,#2d6a4f);border-radius:3px;transition:width .3s}.estado{padding:4px 12px;border-radius:20px;font-size:.85rem;font-weight:500}.estado.activo{background:#d4edda;color:#155724}.estado.pagado{background:#e2e3e5;color:#383d41}.btn-accion{background:none;border:1px solid #ddd;border-radius:6px;padding:6px 10px;cursor:pointer}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-prestamo{background:#fff;border-radius:16px;width:100%;max-width:550px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #eee}.modal-header h3{margin:0}.btn-cerrar{background:none;border:none;font-size:1.8rem;color:#666;cursor:pointer}.campo label{display:block;margin-bottom:6px;font-weight:500;color:#555}.campo input,.campo select{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:8px;font-size:1rem}.preview-cuota{background:#f8f9fa;padding:16px;border-radius:8px;margin-top:16px}.preview-cuota h4{margin:0 0 12px}.preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.preview-grid div{display:flex;justify-content:space-between}.preview-grid span{color:#666}.cuota-mensual{color:#e63946;font-size:1.1rem}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #eee;background:#f8f9fa}.btn-cancelar{padding:10px 20px;background:#f1f3f5;color:#495057;border:none;border-radius:8px;cursor:pointer}.btn-guardar{padding:10px 20px;background:linear-gradient(135deg,#2d6a4f,#40916c);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer}@media(max-width:768px){.campos-row,.preview-grid{grid-template-columns:1fr}}.licencias-container{padding:0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:24px}.stat-card.orange{border-left:4px solid #f59e0b}.stat-card.green{border-left:4px solid #10b981}.stat-card.blue{border-left:4px solid #3b82f6}.stat-icon{font-size:32px}.stat-info h3{font-size:28px;margin:0;color:#1e293b}.stat-info p{margin:0;color:#64748b;font-size:14px}.barra-acciones{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.barra-acciones h3{margin:0;color:#1e293b}.card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;margin-bottom:20px}.card-header{padding:16px 20px;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center}.card-header h3,.card-title{margin:0;color:#1e293b}.card-body{padding:20px}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:16px}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-weight:500;color:#374151}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;font-family:inherit}.form-actions{display:flex;gap:12px;margin-top:20px}.tabla-licencias th{background:#1e293b;color:#fff;padding:14px 12px;text-align:left;font-weight:600;position:sticky;top:0}.tabla-licencias td{padding:14px 12px;border-bottom:1px solid #e2e8f0}.estado-badge{padding:4px 12px;border-radius:20px;font-size:12px;font-weight:500}.estado-badge.pendiente{background:#fef3c7;color:#92400e}.estado-badge.aprobada{background:#d1fae5;color:#065f46}.estado-badge.rechazada{background:#fee2e2;color:#991b1b}.btn-group{display:flex;gap:8px}.btn-sm{padding:6px 10px;border:none;border-radius:6px;cursor:pointer;font-size:14px}.btn-sm.btn-success{background:#10b981;color:#fff}.btn-sm.btn-danger{background:#ef4444;color:#fff}.btn-primary{background:linear-gradient(135deg,#1e88e5,#1565c0);color:#fff;border:none;padding:10px 20px;border-radius:8px;cursor:pointer;font-weight:600}.btn-secondary{background:#6b7280;color:#fff;border:none;padding:10px 20px;border-radius:8px;cursor:pointer}.spinner{width:40px;height:40px;border:4px solid #e2e8f0;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 16px}.licencias-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:24px}.stat-card{background:#fff;border-radius:12px;padding:20px;display:flex;align-items:center;gap:16px;box-shadow:0 2px 8px #00000014}.stat-info h4{margin:0;font-size:28px;color:#1e293b}.stat-info p{margin:4px 0 0;color:#64748b;font-size:14px}.licencias-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;margin-bottom:20px;padding:20px}.licencias-card h3{margin:0 0 16px;color:#1e293b}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}.header-actions{display:flex;gap:12px;align-items:center}.filtro-select{padding:8px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;background:#fff}.btn-nuevo{background:linear-gradient(135deg,#1e88e5,#1565c0);color:#fff;border:none;padding:10px 20px;border-radius:8px;cursor:pointer;font-weight:600;white-space:nowrap}.btn-nuevo:hover{opacity:.9}.tabla-licencias{width:100%;border-collapse:collapse}.tabla-licencias th{background:#1e293b;color:#fff;padding:14px 12px;text-align:left;font-weight:600}.tabla-licencias td{padding:14px 12px;border-bottom:1px solid #e2e8f0;vertical-align:top}.tabla-licencias tbody tr:hover{background:#f8fafc}.motivo{display:block;color:#64748b;font-size:12px;margin-top:4px}.tipo-badge,.estado-badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:500;color:#fff}.acciones{display:flex;gap:6px}.btn-accion{width:32px;height:32px;border:none;border-radius:6px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;background:#f1f5f9;transition:all .2s}.btn-accion:hover{transform:scale(1.1)}.btn-accion.aprobar:hover{background:#d1fae5}.btn-accion.rechazar:hover{background:#fee2e2}.btn-accion.completar:hover{background:#dbeafe}.btn-accion.editar:hover{background:#fef3c7}.btn-accion.eliminar:hover{background:#fee2e2}.sin-datos{text-align:center;padding:40px;color:#64748b}.tipos-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.tipo-card{display:flex;align-items:center;gap:12px;padding:12px;background:#f8fafc;border-radius:8px;border-left:4px solid}.tipo-icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:14px}.tipo-info strong{display:block;font-size:14px;color:#1e293b}.tipo-info span{font-size:12px;color:#64748b}.modal-licencia{background:#fff;border-radius:16px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #e2e8f0}.btn-cerrar{width:32px;height:32px;border:none;background:#f1f5f9;border-radius:8px;cursor:pointer;font-size:20px;color:#64748b}.btn-cerrar:hover{background:#e2e8f0}.modal-body{padding:20px}.campo{margin-bottom:16px}.campo label{display:block;margin-bottom:6px;font-weight:500;color:#374151;font-size:14px}.campo input,.campo select,.campo textarea{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;font-family:inherit;background:#fff;box-sizing:border-box}.campo input:focus,.campo select:focus,.campo textarea:focus{outline:none;border-color:#1e88e5;box-shadow:0 0 0 3px #1e88e51a}.campos-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.dias-calculados{background:#e3f2fd;padding:12px;border-radius:8px;text-align:center;margin-bottom:16px;color:#1565c0}.campo-checkbox{display:flex;align-items:center;gap:8px;margin-bottom:16px}.campo-checkbox input[type=checkbox]{width:18px;height:18px}.campo-checkbox label{margin:0;font-weight:400;color:#374151}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:20px;border-top:1px solid #e2e8f0}.btn-cancelar{padding:10px 20px;border:1px solid #d1d5db;background:#fff;border-radius:8px;cursor:pointer;font-weight:500;color:#374151}.btn-cancelar:hover{background:#f9fafb}.btn-guardar{padding:10px 20px;border:none;background:linear-gradient(135deg,#1e88e5,#1565c0);color:#fff;border-radius:8px;cursor:pointer;font-weight:600}.btn-guardar:hover{opacity:.9}.loading-state{text-align:center;padding:60px 20px;color:#64748b}.tabs-container{display:flex;gap:8px;margin-bottom:20px;background:#fff;padding:8px;border-radius:12px;box-shadow:0 2px 8px #00000014}.tab-btn{flex:1;padding:12px 20px;border:none;background:transparent;border-radius:8px;cursor:pointer;font-weight:500;font-size:14px;color:#64748b;transition:all .2s}.tab-btn:hover{background:#f1f5f9}.tab-btn.active{background:linear-gradient(135deg,#1e88e5,#1565c0);color:#fff}.color-preview{width:32px;height:32px;border-radius:8px;border:2px solid white;box-shadow:0 2px 4px #0003}.colores-grid{display:grid;grid-template-columns:repeat(9,1fr);gap:8px;margin-top:8px}.color-btn{width:32px;height:32px;border-radius:8px;border:3px solid transparent;cursor:pointer;transition:all .2s}.color-btn:hover{transform:scale(1.1)}.color-btn.selected{border-color:#1e293b;box-shadow:0 0 0 2px #fff,0 0 0 4px #1e293b}.fila-inactiva{opacity:.5;background:#f8fafc}.estado-badge.activo{background:#d1fae5;color:#065f46}.estado-badge.inactivo{background:#f1f5f9;color:#64748b}.asistencia-container{padding:20px;max-width:1400px;margin:0 auto}.asistencia-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:25px;padding:25px;background:linear-gradient(135deg,#1e3a5f,#2d4a6f);border-radius:12px;color:#fff}.header-title h1{margin:0 0 8px;font-size:24px;font-weight:700}.header-title p{margin:0;opacity:.85;font-size:14px}.header-stats{display:flex;gap:15px}.stat-card{background:#ffffff26;padding:15px 25px;border-radius:10px;text-align:center;min-width:120px}.stat-value{display:block;font-size:28px;font-weight:700}.stat-label{display:block;font-size:11px;opacity:.85;margin-top:4px;text-transform:uppercase;letter-spacing:.5px}.asistencia-mensaje{padding:12px 20px;border-radius:8px;margin-bottom:20px;font-weight:500}.asistencia-mensaje.success{background:#d1fae5;color:#065f46;border:1px solid #6ee7b7}.asistencia-mensaje.error{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.asistencia-tabs{display:flex;gap:8px;margin-bottom:25px;border-bottom:2px solid #e5e7eb;padding-bottom:0}.tab-btn{display:flex;align-items:center;gap:8px;padding:14px 24px;border:none;background:#f3f4f6;color:#4b5563;border-radius:10px 10px 0 0;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s ease;margin-bottom:-2px;border-bottom:2px solid transparent}.tab-btn:hover{background:#e5e7eb;color:#1f2937}.tab-btn.active{background:#1e3a5f;color:#fff;border-bottom-color:#1e3a5f}.tab-icon{font-size:18px}.asistencia-content{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;min-height:500px}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px;color:#6b7280}.spinner{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#1e3a5f;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:15px}@keyframes spin{to{transform:rotate(360deg)}}.calendario-container{padding:25px}.calendario-header{margin-bottom:25px}.calendario-header h3{margin:0 0 8px;font-size:18px;color:#1e3a5f}.calendario-header p{margin:0;color:#6b7280;font-size:14px}.calendario-grid-wrapper{display:grid;grid-template-columns:1fr 320px;gap:25px}.calendario-main{background:#f8fafc;border-radius:12px;padding:20px}.calendario-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.calendario-nav button{padding:8px 16px;border:1px solid #d1d5db;background:#fff;border-radius:6px;cursor:pointer;font-weight:500;transition:all .2s}.calendario-nav button:hover{background:#f3f4f6;border-color:#9ca3af}.calendario-nav select{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background:#fff}.calendario-leyenda{display:flex;gap:20px;margin-bottom:15px;padding:12px;background:#fff;border-radius:8px;font-size:13px}.leyenda-item{display:flex;align-items:center;gap:6px}.leyenda-color{width:14px;height:14px;border-radius:3px;border:1px solid rgba(0,0,0,.1)}.calendario-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;background:#e5e7eb;border-radius:8px;overflow:hidden}.calendario-dia-header{padding:10px;text-align:center;font-weight:600;font-size:12px;background:#1e3a5f;color:#fff}.calendario-dia{padding:12px 8px;text-align:center;background:#fff;min-height:45px;cursor:pointer;transition:all .15s;position:relative;font-size:14px}.calendario-dia:hover:not(.vacio):not(.finde){background:#eff6ff}.calendario-dia.vacio{background:#f9fafb;cursor:default}.calendario-dia.finde{background:#f3f4f6;color:#9ca3af;cursor:default}.calendario-dia.feriado{background:#fee2e2;color:#991b1b;font-weight:600}.calendario-dia.no-laborable{background:#fef3c7;color:#92400e;font-weight:600}.calendario-dia.hoy{border:2px solid #3b82f6}.dia-indicador{position:absolute;bottom:3px;right:3px;font-size:10px}.calendario-sidebar{display:flex;flex-direction:column;gap:15px}.sidebar-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:18px}.sidebar-card h4{margin:0 0 15px;font-size:14px;color:#374151;display:flex;align-items:center;gap:8px}.feriados-lista{max-height:200px;overflow-y:auto}.feriado-item{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:12px;border-bottom:1px solid #f3f4f6}.feriado-item:last-child{border-bottom:none}.feriado-item input[type=checkbox]{width:16px;height:16px;cursor:pointer}.feriado-item.inactivo{opacity:.5;text-decoration:line-through}.nolaborables-lista{max-height:180px;overflow-y:auto}.nolaborable-item{display:flex;justify-content:space-between;align-items:center;padding:10px;background:#fef3c7;border-radius:6px;margin-bottom:8px;font-size:12px}.nolaborable-info strong{display:block;color:#92400e}.nolaborable-info span{color:#a16207}.btn-eliminar-nolaborable{padding:4px 10px;background:#ef4444;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:12px}.btn-agregar-nolaborable{width:100%;padding:10px;background:#3b82f6;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:600;font-size:13px;margin-top:10px}.btn-guardar-calendario{width:100%;padding:14px;background:#059669;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center;gap:8px}.btn-guardar-calendario:hover{background:#047857}.importar-container{padding:25px}.importar-header{margin-bottom:25px}.importar-opciones{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:25px}.opcion-card{border:2px solid #e5e7eb;border-radius:12px;padding:25px;cursor:pointer;transition:all .2s;text-align:center}.opcion-card:hover{border-color:#3b82f6;background:#eff6ff}.opcion-card.seleccionada{border-color:#1e3a5f;background:#1e3a5f;color:#fff}.opcion-icon{font-size:48px;margin-bottom:15px}.opcion-card h4{margin:0 0 8px;font-size:16px}.opcion-card p{margin:0;font-size:13px;opacity:.8}.importar-form{background:#f8fafc;border-radius:12px;padding:25px;margin-bottom:25px}.form-row{display:grid;grid-template-columns:repeat(4,1fr) auto;gap:15px;align-items:end}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:13px;font-weight:600;color:#374151}.form-group select,.form-group input{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px}.btn-procesar{padding:10px 24px;background:#3b82f6;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:600;white-space:nowrap}.btn-procesar:disabled{background:#9ca3af;cursor:not-allowed}.resultados-tabla{overflow-x:auto}.tabla-asistencia{width:100%;border-collapse:collapse;font-size:13px}.tabla-asistencia th{background:#1e3a5f;color:#fff;padding:12px 10px;text-align:left;font-weight:600;white-space:nowrap}.tabla-asistencia td{padding:10px;border-bottom:1px solid #e5e7eb}.tabla-asistencia tbody tr:hover{background:#f8fafc}.tabla-asistencia tbody tr:nth-child(2n){background:#f9fafb}.badge-vinculado{display:inline-block;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:600}.badge-vinculado.si{background:#d1fae5;color:#065f46}.badge-vinculado.no{background:#fee2e2;color:#991b1b}.horarios-container{padding:25px}.horarios-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.horarios-filtros{display:flex;gap:15px}.horarios-filtros input,.horarios-filtros select{padding:10px 14px;border:1px solid #d1d5db;border-radius:6px;font-size:14px}.horarios-filtros input{width:280px}.tabla-horarios{width:100%;border-collapse:collapse;font-size:13px}.tabla-horarios th{background:#1e3a5f;color:#fff;padding:14px 12px;text-align:left;font-weight:600}.tabla-horarios td{padding:12px;border-bottom:1px solid #e5e7eb;vertical-align:middle}.tabla-horarios tbody tr:hover{background:#f0f9ff}.tabla-horarios input[type=number],.tabla-horarios input[type=time]{padding:8px 10px;border:1px solid #d1d5db;border-radius:5px;font-size:13px;width:100%;max-width:100px}.tabla-horarios input[type=time]{max-width:120px}.btn-guardar-horario{padding:6px 14px;background:#059669;color:#fff;border:none;border-radius:5px;cursor:pointer;font-size:12px;font-weight:600}.btn-guardar-horario:hover{background:#047857}.sin-biometrico{color:#9ca3af;font-style:italic}.reportes-container{padding:25px}.reportes-header{margin-bottom:25px}.reportes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:30px}.reporte-card{background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;padding:25px;text-align:center;cursor:pointer;transition:all .2s}.reporte-card:hover{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f626;transform:translateY(-2px)}.reporte-icon{font-size:42px;margin-bottom:15px}.reporte-card h4{margin:0 0 8px;color:#1e3a5f}.reporte-card p{margin:0;font-size:13px;color:#6b7280}.reporte-preview{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:25px}.preview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid #e5e7eb}.preview-header h4{margin:0;color:#1e3a5f}.btn-exportar{padding:8px 16px;background:#059669;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:600;font-size:13px}.modal-content{background:#fff;border-radius:12px;width:90%;max-width:450px;padding:25px}.modal-content h3{margin:0 0 20px;color:#1e3a5f}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:25px}.btn-cancelar{padding:10px 20px;background:#e5e7eb;color:#374151;border:none;border-radius:6px;cursor:pointer;font-weight:600}.btn-confirmar{padding:10px 20px;background:#3b82f6;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:600}@media(max-width:1200px){.calendario-grid-wrapper{grid-template-columns:1fr}.calendario-sidebar{flex-direction:row;flex-wrap:wrap}.sidebar-card{flex:1;min-width:280px}}@media(max-width:768px){.asistencia-header{flex-direction:column;gap:20px}.header-stats{width:100%;justify-content:space-between}.asistencia-tabs{flex-wrap:wrap}.tab-btn{flex:1;min-width:140px;justify-content:center}.form-row{grid-template-columns:1fr 1fr}.importar-opciones,.reportes-grid{grid-template-columns:1fr}}.vacaciones-container{padding:20px;max-width:1400px;margin:0 auto}.alerta-info{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-left:4px solid #1976d2;padding:15px 20px;border-radius:8px;margin-bottom:20px;display:flex;align-items:center;gap:15px;flex-wrap:wrap}.alerta-info strong{color:#1565c0;white-space:nowrap}.alerta-info span{color:#424242;flex:1}.vacaciones-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;margin-bottom:25px}.stat-card{background:#fff;border-radius:12px;padding:20px;display:flex;align-items:center;gap:15px;box-shadow:0 2px 8px #00000014;transition:transform .2s,box-shadow .2s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.stat-icon{width:50px;height:50px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px}.stat-icon.blue{background:#e3f2fd}.stat-icon.orange{background:#fff3e0}.stat-icon.green{background:#e8f5e9}.stat-icon.purple{background:#f3e5f5}.stat-info h4{font-size:28px;font-weight:700;color:#1a237e;margin:0}.stat-info p{font-size:13px;color:#666;margin:0}.vacaciones-card{background:#fff;border-radius:12px;padding:25px;margin-bottom:20px;box-shadow:0 2px 8px #00000014}.vacaciones-card h3{margin:0 0 5px;color:#1a237e;font-size:18px}.vacaciones-card .subtitulo{color:#666;font-size:13px;margin:0 0 20px}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:15px}.card-header h3{margin:0}.header-actions{display:flex;gap:10px;align-items:center}.balance-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:15px}.balance-card{background:#f8f9fa;border-radius:10px;padding:15px;border:2px solid #e0e0e0;transition:all .2s}.balance-card:hover{border-color:#1976d2;box-shadow:0 4px 12px #1976d226}.balance-card.sin-dias{background:#fafafa;border-color:#e0e0e0;opacity:.7}.balance-card.con-vencidos{border-color:#ff9800;background:#fff8e1}.balance-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid #e0e0e0}.balance-header strong{color:#1a237e;font-size:14px}.antiguedad{background:#e3f2fd;color:#1565c0;padding:3px 8px;border-radius:12px;font-size:11px;font-weight:600}.balance-body{display:flex;flex-direction:column;gap:8px}.balance-item{display:flex;justify-content:space-between;align-items:center;font-size:13px}.balance-item span{color:#666}.balance-item strong{color:#333}.balance-item.disponibles{padding-top:8px;border-top:1px dashed #ddd;margin-top:5px}.balance-item.vencidos strong.negativo{color:#d32f2f}.balance-item strong.positivo{color:#2e7d32;font-size:16px}.balance-item strong.cero{color:#9e9e9e}.balance-item strong.disfrutados{color:#1976d2}.balance-footer{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:10px;border-top:1px solid #e0e0e0}.balance-footer small{font-size:11px;color:#666}.balance-footer .ver-detalle{color:#1976d2;font-weight:500}.balance-barra{height:6px;background:#e0e0e0;border-radius:3px;margin-top:10px;overflow:hidden}.balance-fill{height:100%;background:linear-gradient(90deg,#4caf50,#8bc34a);border-radius:3px;transition:width .3s}.filtro-select{padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;background:#fff;cursor:pointer}.btn-nuevo{background:linear-gradient(135deg,#1976d2,#1565c0);color:#fff;border:none;padding:10px 20px;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.btn-nuevo:hover{background:linear-gradient(135deg,#1565c0,#0d47a1);transform:translateY(-1px)}.tabla-container{overflow-x:auto}.tabla-vacaciones{width:100%;border-collapse:collapse;font-size:14px}.tabla-vacaciones th,.tabla-vacaciones td{padding:12px 15px;text-align:left;border-bottom:1px solid #eee}.tabla-vacaciones th{background:#f5f5f5;font-weight:600;color:#333;white-space:nowrap}.tabla-vacaciones tbody tr:hover{background:#f8f9fa}.tabla-vacaciones td small.obs{display:block;color:#666;font-size:11px;margin-top:3px}.periodo-badge{background:#e8eaf6;color:#3949ab;padding:3px 8px;border-radius:4px;font-size:12px;font-weight:600}.estado-badge{padding:5px 10px;border-radius:20px;font-size:12px;font-weight:500;white-space:nowrap}.estado-badge.pendiente{background:#fff3e0;color:#e65100}.estado-badge.aprobada{background:#e8f5e9;color:#2e7d32}.estado-badge.rechazada{background:#ffebee;color:#c62828}.estado-badge.completada{background:#e3f2fd;color:#1565c0}.acciones{white-space:nowrap}.btn-accion{background:none;border:none;padding:5px 8px;cursor:pointer;font-size:16px;border-radius:4px;transition:background .2s}.btn-accion:hover{background:#f0f0f0}.btn-accion.aprobar:hover{background:#e8f5e9}.btn-accion.rechazar:hover{background:#ffebee}.btn-accion.completar:hover{background:#e3f2fd}.btn-accion.eliminar:hover{background:#ffebee}.sin-datos{text-align:center;padding:40px;color:#666}.info-legal{background:linear-gradient(135deg,#f5f5f5,#eee)}.info-legal h4{color:#1a237e;margin:0 0 20px;font-size:16px}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-bottom:20px}.info-item{background:#fff;padding:15px;border-radius:8px;border-left:3px solid #1976d2}.info-item strong{display:block;color:#1565c0;margin-bottom:8px;font-size:13px}.info-item p{margin:0;font-size:13px;color:#424242;line-height:1.5}.info-item ul{margin:10px 0 0;padding-left:20px}.info-item li{font-size:13px;color:#424242;margin-bottom:5px}.info-importante{background:#fff3e0;border:1px solid #ffb74d;padding:15px;border-radius:8px;font-size:13px;color:#e65100}.info-importante strong{color:#d84315}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-vacacion,.modal-detalle-empleado{background:#fff;border-radius:16px;width:100%;max-width:550px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.modal-detalle-empleado{max-width:800px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 25px;border-bottom:1px solid #eee;position:sticky;top:0;background:#fff;z-index:1}.modal-header h3{margin:0;color:#1a237e;font-size:18px}.btn-cerrar{background:none;border:none;font-size:28px;color:#666;cursor:pointer;line-height:1;padding:0}.btn-cerrar:hover{color:#333}.modal-body{padding:25px}.campo{margin-bottom:20px}.campo label{display:block;font-weight:600;color:#333;margin-bottom:8px;font-size:14px}.campo label small{font-weight:400;color:#666}.campo input,.campo select,.campo textarea{width:100%;padding:12px;border:1px solid #ddd;border-radius:8px;font-size:14px;transition:border-color .2s;box-sizing:border-box}.campo input:focus,.campo select:focus,.campo textarea:focus{outline:none;border-color:#1976d2}.campo small.alerta{display:block;color:#d32f2f;margin-top:5px;font-size:12px}.campos-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.info-empleado-detalle{background:#f5f5f5;border-radius:8px;padding:15px;margin-bottom:20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.info-row{display:flex;justify-content:space-between;align-items:center;font-size:13px}.info-row span{color:#666}.info-row strong{color:#333}.info-row.pago{grid-column:1 / -1;background:#e8f5e9;padding:10px;border-radius:6px;margin-top:5px}.info-row.pago strong{color:#2e7d32;font-size:16px}.dias-calculados{background:#e3f2fd;border-radius:8px;padding:15px;margin-bottom:20px;display:flex;gap:20px;flex-wrap:wrap}.dias-item{display:flex;align-items:center;gap:8px;font-size:14px}.dias-item span{color:#1565c0}.dias-item strong{color:#0d47a1}.dias-item.principal{background:#1976d2;color:#fff;padding:8px 15px;border-radius:6px}.dias-item.principal span,.dias-item.principal strong{color:#fff}.alerta-dias{width:100%;background:#ffebee;color:#c62828;padding:10px;border-radius:6px;font-size:13px;margin-top:10px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:20px 25px;border-top:1px solid #eee;background:#fafafa}.btn-cancelar{padding:10px 20px;border:1px solid #ddd;background:#fff;border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s}.btn-cancelar:hover{background:#f5f5f5}.btn-guardar{padding:10px 25px;background:linear-gradient(135deg,#1976d2,#1565c0);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:14px;transition:all .2s}.btn-guardar:hover{background:linear-gradient(135deg,#1565c0,#0d47a1)}.resumen-empleado{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:15px;margin-bottom:25px;background:#f5f5f5;padding:20px;border-radius:10px}.resumen-item{text-align:center}.resumen-item label{display:block;font-size:12px;color:#666;margin-bottom:5px}.resumen-item span{font-size:16px;font-weight:600;color:#333}.resumen-item.destacado{background:#e8f5e9;padding:15px;border-radius:8px}.resumen-item.destacado span{color:#2e7d32;font-size:20px}.modal-body h4{color:#1a237e;margin:0 0 15px;font-size:15px}.tabla-periodos{width:100%;border-collapse:collapse;font-size:13px}.tabla-periodos th,.tabla-periodos td{padding:10px 12px;text-align:center;border:1px solid #e0e0e0}.tabla-periodos th{background:#f5f5f5;font-weight:600;color:#333}.tabla-periodos tbody tr:hover{background:#f8f9fa}.tabla-periodos tbody tr.completado{background:#f1f8e9}.tabla-periodos tbody tr.vencido{background:#fff8e1}.tabla-periodos tfoot td{background:#e8eaf6;font-weight:600}.estado-periodo{font-size:11px;padding:3px 8px;border-radius:4px;white-space:nowrap}.estado-periodo.completado{background:#c8e6c9;color:#2e7d32}.estado-periodo.vigente{background:#e3f2fd;color:#1565c0}.estado-periodo.vencido{background:#fff3e0;color:#e65100}.alerta-vencidos{background:#fff3e0;border:1px solid #ffb74d;padding:15px;border-radius:8px;margin-top:20px;font-size:13px;color:#e65100}@media(max-width:768px){.vacaciones-container{padding:10px}.vacaciones-stats{grid-template-columns:repeat(2,1fr)}.card-header{flex-direction:column;align-items:stretch}.header-actions{justify-content:space-between}.campos-row{grid-template-columns:1fr}.modal-vacacion,.modal-detalle-empleado{margin:10px;max-height:95vh}.info-grid{grid-template-columns:1fr}.alerta-info{flex-direction:column;text-align:center}}.reportes-page.vista-reporte{display:block;height:auto;overflow:visible}.reporte-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:linear-gradient(135deg,#1565c0,#0d47a1);border-radius:10px;margin-bottom:15px;box-shadow:0 4px 15px #1565c04d;min-height:56px}.toolbar-left,.toolbar-right{flex:0 0 auto}.toolbar-center{flex:1;display:flex;align-items:center;justify-content:center;gap:10px}.toolbar-icon{font-size:24px}.toolbar-titulo{font-size:18px;font-weight:600;color:#fff}.toolbar-periodo{font-size:14px;color:#fffc;background:#ffffff26;padding:4px 12px;border-radius:20px}.btn-volver,.btn-imprimir{display:flex;align-items:center;gap:8px;padding:10px 18px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-volver{background:#ffffff26;color:#fff}.btn-volver:hover{background:#ffffff40}.btn-imprimir{background:#fff;color:#1565c0}.btn-imprimir:hover{background:#e3f2fd;transform:translateY(-1px)}.btn-volver svg,.btn-imprimir svg{width:18px;height:18px}.reporte-documento{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;overflow:hidden}.reporte-body{padding:0 30px 30px}.tabla-scroll-container{max-height:calc(100vh - 420px);overflow-y:auto;overflow-x:auto;border:1px solid #ddd;border-radius:8px}.tabla-scroll-container::-webkit-scrollbar{width:8px;height:8px}.tabla-scroll-container::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.tabla-scroll-container::-webkit-scrollbar-thumb{background:#1565c0;border-radius:4px}.tabla-scroll-container::-webkit-scrollbar-thumb:hover{background:#0d47a1}.reporte-header-container{text-align:center;padding:20px 30px 15px;background:#fff;border-bottom:3px solid #1565C0;margin-bottom:20px}.reporte-empresa{display:flex;align-items:center;justify-content:center;gap:15px;margin-bottom:15px}.reporte-logo{width:60px;height:60px;object-fit:contain}.reporte-empresa-info h1{margin:0;font-size:18px;color:#1565c0;font-weight:700}.reporte-empresa-info p{margin:2px 0;font-size:11px;color:#666}.reporte-titulo-container{margin:20px 0 10px;padding:15px;background:linear-gradient(135deg,#1565c0,#1976d2);border-radius:8px}.reporte-titulo{margin:0;font-size:16px;color:#fff;font-weight:600;letter-spacing:1px}.reporte-periodo{display:inline-block;margin-top:8px;padding:4px 15px;background:#fff3;border-radius:15px;font-size:12px;color:#fff}.reporte-fecha{margin:10px 0 0;font-size:10px;color:#999}.reporte-firmas{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:50px;padding-top:20px}.firma-item{text-align:center}.firma-linea{border-top:1px solid #333;margin-top:50px;margin-bottom:8px}.firma-item span{font-size:11px;color:#666}.reporte-selector{display:flex;flex-direction:column;gap:20px}.nomina-selector{display:flex;align-items:center;gap:15px;padding:15px 20px;background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-radius:10px;border:1px solid #90caf9}.nomina-selector label{font-weight:600;color:#1565c0}.nomina-selector select{padding:10px 15px;border:1px solid #90caf9;border-radius:8px;min-width:220px;font-size:14px;background:#fff}.nomina-selector .nomina-info{color:#2e7d32;font-size:13px;font-weight:600;background:#e8f5e9;padding:6px 12px;border-radius:20px}.categorias-grid{display:grid;grid-template-columns:220px 1fr;gap:20px;min-height:450px}.categorias-lista{display:flex;flex-direction:column;gap:8px}.categorias-lista h4{margin:0 0 10px;font-size:13px;color:#666;text-transform:uppercase;letter-spacing:1px}.categoria-btn{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border:1px solid #e0e0e0;border-radius:10px;background:#fff;cursor:pointer;text-align:left;transition:all .2s;font-size:14px}.categoria-btn:hover{background:#f5f5f5;border-color:#1565c0;transform:translate(3px)}.categoria-btn.active{background:linear-gradient(135deg,#1565c0,#1976d2);color:#fff;border-color:#1565c0;box-shadow:0 4px 12px #1565c04d}.categoria-btn .count{background:#00000014;padding:3px 10px;border-radius:12px;font-size:12px;font-weight:600}.categoria-btn.active .count{background:#ffffff40}.reportes-lista{padding:20px;background:#f8f9fa;border-radius:10px;border:1px solid #e0e0e0}.reportes-lista h4{margin:0 0 15px;padding-bottom:12px;border-bottom:2px solid #1565C0;color:#1565c0}.reportes-lista .placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#999}.reportes-lista .placeholder span{font-size:60px;margin-bottom:15px;opacity:.5}.reportes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:15px}.reporte-btn{display:flex;flex-direction:column;gap:6px;padding:18px;border:1px solid #e0e0e0;border-radius:10px;background:#fff;cursor:pointer;text-align:left;transition:all .2s}.reporte-btn:hover:not(.disabled){border-color:#1565c0;box-shadow:0 4px 15px #1565c026;transform:translateY(-2px)}.reporte-btn.disabled{opacity:.5;cursor:not-allowed;background:#fafafa}.reporte-btn .icon{font-size:28px}.reporte-btn .nombre{font-weight:600;font-size:14px;color:#333}.reporte-btn .desc{font-size:12px;color:#777}.reporte-btn .lock{font-size:11px;color:#f57c00;margin-top:5px}.reporte-tabla{width:100%;border-collapse:separate;border-spacing:0;font-size:11px}.tabla-scroll-container .reporte-tabla thead th{background:#1565c0!important;color:#fff!important;font-weight:600!important;text-align:left;position:-webkit-sticky!important;position:sticky!important;top:0!important;z-index:100!important;box-shadow:0 2px 5px #0000004d!important}.reporte-tabla th,.reporte-tabla td{border:1px solid #ddd;padding:8px 10px}.reporte-tabla thead th{border-bottom:2px solid #0D47A1}.reporte-tabla th.right,.reporte-tabla td.right{text-align:right}.reporte-tabla th.center,.reporte-tabla td.center{text-align:center}.reporte-tabla tr.odd{background:#f5f5f5}.reporte-tabla tr:hover{background:#e3f2fd}.reporte-tabla .bold{font-weight:600}.reporte-tabla .small{font-size:10px}.reporte-tabla .highlight{background:#e3f2fd}.reporte-tabla tr.depto-header td{background:#e0e0e0;font-weight:600;font-size:12px}.reporte-tabla tr.subtotal td{background:#eceff1;font-weight:600}.reporte-tabla tr.total td{background:#1565c0;color:#fff;font-weight:600;font-size:12px}.reporte-tabla tfoot tr.total td{border-top:2px solid #0D47A1}.reporte-seccion{margin-bottom:25px}.reporte-seccion h4{margin:0 0 12px;font-size:14px;color:#1565c0;padding-bottom:8px;border-bottom:2px solid #e0e0e0}.depto-group{margin-bottom:25px}.depto-titulo{margin:0 0 10px;font-size:13px;color:#1565c0;font-weight:600}.total-general{display:flex;justify-content:space-between;padding:15px 20px;background:#1565c0;color:#fff;font-weight:600;font-size:14px;border-radius:8px;margin-top:15px}.resumen-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}.resumen-box{border:1px solid #e0e0e0;padding:20px;border-radius:10px;background:#fafafa}.resumen-box h4{margin:0 0 15px;font-size:13px;padding-bottom:10px;border-bottom:2px solid #1565C0;color:#1565c0}.resumen-tabla{width:100%;font-size:12px}.resumen-tabla td{padding:6px 0}.resumen-tabla tr.subtotal td{border-top:1px solid #ccc;font-weight:600;padding-top:10px}.resumen-item{display:flex;justify-content:space-between;padding:8px 0;font-size:13px;border-bottom:1px solid #eee}.resumen-neto{display:flex;justify-content:space-between;padding:15px;background:#1565c0;color:#fff;margin-top:15px;font-weight:600;font-size:15px;border-radius:8px}.info-box{margin-top:15px;padding:12px 15px;background:#fff3cd;border:1px solid #ffc107;border-radius:8px;font-size:12px}.info-box p{margin:0}.badge{display:inline-block;padding:4px 10px;border-radius:15px;font-size:11px;font-weight:600}.badge.activo{background:#d4edda;color:#155724}.badge.pagado{background:#cce5ff;color:#004085}.badge.cancelado{background:#f8d7da;color:#721c24}.empty{text-align:center;padding:50px;color:#999;font-style:italic;font-size:14px}@media print{.no-print{display:none!important}.reportes-page.vista-reporte{height:auto;overflow:visible}.reporte-documento{box-shadow:none;border:none;padding:0;overflow:visible;height:auto}.reporte-tabla{font-size:9px}.reporte-tabla th,.reporte-tabla tr.total td,.reporte-titulo-container{background:#333!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.reporte-firmas{page-break-inside:avoid}}.reportes-page .tabla-scroll-container .reporte-tabla thead th{position:-webkit-sticky!important;position:sticky!important;top:0!important;z-index:100!important;background:#1565c0!important;color:#fff!important;box-shadow:0 2px 5px #0000004d!important}.configuracion-container{padding:20px;max-width:1200px;margin:0 auto}.config-mensaje{padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px}.config-mensaje.success{background:#e8f5e9;color:#2e7d32;border:1px solid #a5d6a7}.config-mensaje.error{background:#ffebee;color:#c62828;border:1px solid #ef9a9a}.config-card{background:#fff;border-radius:12px;padding:24px;margin-bottom:24px;box-shadow:0 2px 8px #00000014}.config-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid #eee}.config-header h3{margin:0;color:#1a1a2e;font-size:18px}.config-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}@media(max-width:768px){.config-grid{grid-template-columns:1fr}}.config-field{display:flex;flex-direction:column;gap:6px}.config-field label{font-weight:500;color:#333;font-size:14px}.config-field input,.config-field select,.config-field textarea{padding:10px 12px;border:1px solid #ddd;border-radius:8px;font-size:14px;background:#fff;color:#333}.config-field input:focus,.config-field select:focus{outline:none;border-color:#1a73e8}.config-field input:disabled,.config-field select:disabled{background:#f5f5f5;color:#666;cursor:not-allowed}.tss-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}@media(max-width:768px){.tss-grid{grid-template-columns:1fr}}.tss-seccion{background:#f8f9fa;padding:16px;border-radius:10px}.tss-seccion h4{margin:0 0 12px;color:#333;font-size:15px}.tss-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #eee}.tss-row:last-child{border-bottom:none}.tss-row span{color:#555;font-size:14px}.tss-input-group{display:flex;align-items:center;gap:6px}.tss-input-group input{width:80px;padding:8px;border:1px solid #ddd;border-radius:6px;text-align:right;font-size:14px;background:#fff;color:#333}.tss-input-group input:disabled{background:#f0f0f0;color:#666}.tss-input-group span{color:#666;font-size:14px}.config-acciones{display:flex;gap:12px;justify-content:flex-end;margin-top:20px;padding-top:20px;border-top:1px solid #eee}.btn-editar{padding:10px 20px;background:#fff3e0;color:#e65100;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-editar:hover{background:#ffe0b2}.btn-cancelar{padding:10px 20px;background:#f5f5f5;color:#666;border:1px solid #ddd;border-radius:8px;font-size:14px;cursor:pointer;transition:all .2s}.btn-cancelar:hover{background:#eee}.btn-guardar{padding:10px 20px;background:linear-gradient(135deg,#2e7d32,#1b5e20);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-guardar:hover{transform:translateY(-1px);box-shadow:0 4px 12px #2e7d324d}.backup-info{display:flex;gap:20px;margin-bottom:16px;flex-wrap:wrap}.backup-stat{display:flex;align-items:center;gap:8px;font-size:14px;color:#555}.backup-actions{display:flex;gap:12px;flex-wrap:wrap}.btn-importar{padding:10px 20px;background:#e3f2fd;color:#1565c0;border:1px solid #90caf9;border-radius:8px;font-size:14px;cursor:pointer;transition:all .2s}.btn-importar:hover{background:#bbdefb}.btn-exportar{padding:10px 20px;background:linear-gradient(135deg,#2e7d32,#1b5e20);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-exportar:hover{transform:translateY(-1px);box-shadow:0 4px 12px #2e7d324d}.salarios-mensaje{padding:10px 15px;border-radius:8px;margin-bottom:15px;font-size:14px}.salarios-mensaje.success{background:#e8f5e9;color:#2e7d32;border:1px solid #a5d6a7}.salarios-mensaje.error{background:#ffebee;color:#c62828;border:1px solid #ef9a9a}.salarios-mensaje.info{background:#e3f2fd;color:#1565c0;border:1px solid #90caf9}.salarios-categoria-selector{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;padding:15px;background:#f8f9fa;border-radius:10px}.salarios-categoria-selector label{font-weight:600;color:#333}.salarios-categoria-selector select{padding:12px;border:2px solid #ddd;border-radius:8px;font-size:15px;background:#fff;color:#333;cursor:pointer;transition:border-color .2s}.salarios-categoria-selector select:focus{outline:none;border-color:#1a73e8}.salario-minimo-destacado{background:linear-gradient(135deg,#1a73e8,#0d47a1);color:#fff;padding:25px;border-radius:12px;text-align:center;margin-bottom:25px;box-shadow:0 4px 15px #1a73e84d}.salario-minimo-valor{font-size:32px;font-weight:700;margin-bottom:8px}.salario-minimo-nota{font-size:12px;opacity:.8}.salarios-tabla h4{margin-bottom:15px;color:#333;font-size:15px}.salarios-tabla table{width:100%;border-collapse:collapse;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 2px 8px #00000014}.salarios-tabla th{background:#f1f3f4;padding:12px 15px;text-align:left;font-weight:600;color:#333;font-size:13px}.salarios-tabla td{padding:12px 15px;border-bottom:1px solid #eee}.salarios-tabla tr:last-child td{border-bottom:none}.salarios-tabla tr:hover{background:#f8f9fa}.salarios-tabla tr.fila-seleccionada td{font-weight:600}.cat-desc{display:block;font-size:12px;color:#666;margin-top:2px}.salario-valor{font-weight:600;color:#2e7d32}.salario-input{width:130px;padding:8px;border:1px solid #ddd;border-radius:6px;font-size:14px;text-align:right;background:#fff;color:#333}.salario-input:focus{outline:none;border-color:#1a73e8}.salarios-acciones{display:flex;gap:12px;justify-content:flex-end;margin-bottom:15px}.btn-restaurar{padding:10px 20px;background:#f1f3f4;border:1px solid #ddd;border-radius:8px;font-size:14px;cursor:pointer;transition:all .2s;color:#333}.btn-restaurar:hover{background:#e8eaeb}.btn-guardar-salarios{padding:10px 25px;background:linear-gradient(135deg,#1a73e8,#0d47a1);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-guardar-salarios:hover{transform:translateY(-1px);box-shadow:0 4px 12px #1a73e84d}.btn-guardar-salarios:disabled{opacity:.6;cursor:not-allowed;transform:none}.salarios-nota-legal{background:#fff8e1;border:1px solid #ffcc02;border-left:4px solid #ff8f00;border-radius:8px;padding:12px 15px;font-size:13px;color:#5d4037}.salarios-nota-legal p{margin:0;line-height:1.5}.config-badge{background:#e8f5e9;color:#2e7d32;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.loading-spinner{text-align:center;padding:40px;color:#666}.tss-resumen{display:flex;gap:20px;margin-bottom:20px;padding:16px;background:#f0f9ff;border-radius:8px}.tss-resumen-item{display:flex;gap:8px;align-items:center}.tss-resumen-item strong{color:#1565c0;font-size:18px}.btn-restaurar-tss{background:#f5f5f5;border:1px solid #ddd;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:13px}.btn-restaurar-tss:hover{background:#e8e8e8}.tss-tope-info{font-size:12px;color:#666;margin-top:4px;padding:4px 8px;background:#f5f5f5;border-radius:4px}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:12px}.info-grid ul{margin:8px 0 0 20px;padding:0}.info-grid li{margin:4px 0;font-size:13px}.salarios-categoria-selector{margin-bottom:20px;padding:16px;background:#f8f9fa;border-radius:8px}.salarios-categoria-selector label{display:block;margin-bottom:8px;font-weight:600}.salarios-categoria-selector select{width:100%;padding:12px;border:1px solid #ddd;border-radius:8px;font-size:14px;background:#fff}.salario-minimo-destacado{background:linear-gradient(135deg,#1e88e5,#1565c0);color:#fff;padding:24px;border-radius:12px;text-align:center;margin-bottom:20px}.salario-minimo-label{font-size:14px;opacity:.9;margin-bottom:8px}.salario-minimo-valor{font-size:36px;font-weight:700}.salario-minimo-nota{font-size:12px;opacity:.8;margin-top:8px}.salarios-tabla{margin-bottom:20px}.salarios-tabla h4{margin-bottom:12px;color:#333}.salarios-tabla table{width:100%;border-collapse:collapse}.salarios-tabla th{background:#1e293b;color:#fff;padding:12px;text-align:left}.salarios-tabla td{padding:12px;border-bottom:1px solid #e2e8f0}.salarios-tabla tr.fila-seleccionada{background:#e3f2fd}.cat-icon{margin-right:8px}.cat-label{font-weight:500}.cat-desc{display:block;font-size:12px;color:#666}.salario-valor{font-weight:600;color:#1565c0}.salarios-acciones{display:flex;gap:12px;justify-content:flex-end;margin-bottom:16px}.btn-restaurar{background:#f5f5f5;border:1px solid #ddd;padding:10px 20px;border-radius:8px;cursor:pointer}.btn-restaurar:hover{background:#e8e8e8}.btn-guardar-salarios{background:linear-gradient(135deg,#1e88e5,#1565c0);color:#fff;border:none;padding:10px 20px;border-radius:8px;cursor:pointer;font-weight:600}.btn-guardar-salarios:hover{opacity:.9}.salarios-nota-legal{background:#fff3e0;border-left:4px solid #ff9800;padding:12px 16px;border-radius:0 8px 8px 0;font-size:13px}.salarios-mensaje{padding:12px;border-radius:8px;margin-bottom:16px;text-align:center}.salarios-mensaje.success{background:#d4edda;color:#155724}.salarios-mensaje.error{background:#f8d7da;color:#721c24}.salarios-mensaje.info{background:#d1ecf1;color:#0c5460}.config-campo{display:flex;flex-direction:column;gap:8px}.config-campo label{font-size:13px;font-weight:500;color:#64748b}.config-campo input{padding:10px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;background:#fff}.config-campo input:disabled{background:#f8fafc;color:#1e293b;cursor:default}.config-campo input:focus{outline:none;border-color:#1e88e5;box-shadow:0 0 0 3px #1e88e51a}.migracion-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:24px;margin-top:20px}.migracion-section h3{margin:0 0 16px;color:#1a365d;font-size:1.25rem;border-bottom:2px solid #e2e8f0;padding-bottom:12px}.migracion-info{background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;padding:12px 16px;margin-bottom:16px}.migracion-info p{margin:0;color:#0369a1;font-size:.9rem;line-height:1.5}.migracion-estado{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-weight:500;font-size:.95rem}.estado-idle{background:#f1f5f9;color:#475569}.estado-reading{background:#fef3c7;color:#92400e}.estado-ready{background:#d1fae5;color:#065f46}.estado-importing{background:#dbeafe;color:#1e40af}.estado-done{background:#d1fae5;color:#065f46}.estado-error{background:#fee2e2;color:#991b1b}.migracion-upload{text-align:center;padding:20px}.btn-upload{display:inline-block;padding:16px 32px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 4px 12px #3b82f64d}.btn-upload:hover{transform:translateY(-2px);box-shadow:0 6px 16px #3b82f666}.migracion-preview{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:16px;margin-bottom:16px}.migracion-preview h4{margin:0 0 12px;font-size:1rem;color:#334155}.migracion-preview ul{margin:0;padding:0;list-style:none}.migracion-preview li{padding:8px 0;border-bottom:1px solid #e2e8f0;color:#475569;font-size:.95rem}.migracion-preview li:last-child{border-bottom:none}.migracion-preview strong{color:#1e40af}.backup-fecha{margin:12px 0 0;font-size:.85rem;color:#64748b;font-style:italic}.migracion-progreso-container{margin-bottom:16px}.migracion-progreso-container .etapa{margin:0 0 8px;font-weight:500;color:#1e40af}.migracion-progreso{background:#e2e8f0;border-radius:8px;height:24px;position:relative;overflow:hidden}.progreso-barra{background:linear-gradient(90deg,#3b82f6,#1d4ed8);height:100%;transition:width .3s ease;border-radius:8px}.progreso-texto{display:block;text-align:center;margin-top:6px;font-size:.85rem;color:#64748b}.migracion-resultados{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;padding:16px;margin-bottom:16px}.migracion-resultados h4{margin:0 0 12px;color:#166534}.migracion-resultados ul{margin:0;padding:0;list-style:none}.migracion-resultados li{padding:6px 0;color:#166534}.migracion-resultados .errores{color:#dc2626;font-size:.85rem}.migracion-acciones{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:16px}.migracion-acciones button{padding:12px 24px;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-importar{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 4px 12px #10b9814d}.btn-importar:hover{transform:translateY(-2px);box-shadow:0 6px 16px #10b98166}.btn-cancelar{background:#6b7280;color:#fff}.btn-cancelar:hover{background:#4b5563}.btn-recargar{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff;box-shadow:0 4px 12px #8b5cf64d}.btn-recargar:hover{transform:translateY(-2px)}.btn-otro{background:#3b82f6;color:#fff}.btn-otro:hover{background:#2563eb}.btn-reintentar{background:#f59e0b;color:#fff}.btn-reintentar:hover{background:#d97706}.usuarios-container{padding:20px}.usuarios-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.usuarios-header h2{margin:0;color:#1e293b}.usuarios-header p{margin:4px 0 0;color:#64748b;font-size:14px}.btn-primary{background:linear-gradient(135deg,#1565c0,#0d47a1);color:#fff;border:none;padding:10px 20px;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #1565c04d}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.usuarios-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:#fff;padding:20px;border-radius:12px;text-align:center;box-shadow:0 2px 8px #00000014}.stat-card .stat-numero{display:block;font-size:32px;font-weight:700;color:#1565c0}.stat-card .stat-label{font-size:13px;color:#64748b;margin-top:4px}.stat-card.activos .stat-numero{color:#16a34a}.stat-card.admins .stat-numero{color:#9333ea}.usuarios-filtros{display:flex;gap:12px;margin-bottom:20px}.campo-busqueda{flex:1;position:relative}.campo-busqueda input{width:100%;padding:10px 36px 10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px}.campo-busqueda input:focus{outline:none;border-color:#1565c0;box-shadow:0 0 0 3px #1565c01a}.btn-limpiar{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:#e2e8f0;border:none;width:20px;height:20px;border-radius:50%;cursor:pointer;font-size:12px;color:#64748b}.usuarios-filtros select{padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;min-width:160px}.loading,.sin-resultados{text-align:center;padding:40px;color:#64748b;background:#fff;border-radius:12px}.usuarios-tabla{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #00000014}.usuarios-tabla table{width:100%;border-collapse:collapse}.usuarios-tabla th{background:#f8fafc;padding:14px 16px;text-align:left;font-weight:600;color:#475569;font-size:13px;border-bottom:1px solid #e2e8f0}.usuarios-tabla td{padding:14px 16px;border-bottom:1px solid #f1f5f9;vertical-align:middle}.usuarios-tabla tr:hover{background:#f8fafc}.usuarios-tabla tr.inactivo{opacity:.6}.usuario-info{display:flex;align-items:center;gap:12px}.usuario-info .avatar{width:40px;height:40px;background:linear-gradient(135deg,#1565c0,#0d47a1);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16px}.usuario-info .datos{display:flex;flex-direction:column}.usuario-info .nombre{font-weight:500;color:#1e293b}.usuario-info .email{font-size:13px;color:#64748b}.badge{padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500}.rol-admin{background:#f3e8ff;color:#9333ea}.rol-nomina{background:#dbeafe;color:#1d4ed8}.rol-consulta{background:#f1f5f9;color:#64748b}.estado-activo{background:#dcfce7;color:#16a34a}.estado-inactivo{background:#fee2e2;color:#dc2626}.fecha{font-size:13px;color:#64748b}.acciones{display:flex;gap:8px}.btn-icon{background:#f1f5f9;border:none;width:32px;height:32px;border-radius:6px;cursor:pointer;font-size:14px;transition:all .2s}.btn-icon:hover{background:#e2e8f0}.btn-icon.danger:hover{background:#fee2e2}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-usuarios{background:#fff;border-radius:16px;width:100%;max-width:480px;max-height:90vh;overflow:hidden;box-shadow:0 20px 60px #0003}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e2e8f0}.modal-header h3{margin:0;color:#1e293b}.btn-cerrar{background:none;border:none;font-size:24px;color:#64748b;cursor:pointer}.modal-body{padding:24px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:6px;font-weight:500;color:#374151;font-size:14px}.form-group input,.form-group select{width:100%;padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px}.form-group input:focus,.form-group select:focus{outline:none;border-color:#1565c0;box-shadow:0 0 0 3px #1565c01a}.form-group input:disabled{background:#f8fafc;cursor:not-allowed}.form-group small{display:block;margin-top:4px;color:#94a3b8;font-size:12px}.form-group.checkbox label{display:flex;align-items:center;gap:8px;cursor:pointer}.form-group.checkbox input{width:auto}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #e2e8f0;background:#f8fafc}.btn-secundario{background:#fff;border:1px solid #e2e8f0;padding:10px 20px;border-radius:8px;font-weight:500;cursor:pointer;color:#64748b}.btn-secundario:hover{background:#f8fafc}.auditoria-container{padding:0}.auditoria-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.auditoria-header h2{margin:0 0 4px;color:#1e293b;font-size:22px}.auditoria-header p{margin:0;color:#64748b;font-size:14px}.audit-stats{display:flex;gap:16px}.audit-stat{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:12px 20px;text-align:center}.audit-stat-num{display:block;font-size:24px;font-weight:700;color:#1e293b}.audit-stat-label{font-size:12px;color:#64748b}.auditoria-filtros{margin-bottom:20px}.filtros-row{display:flex;gap:10px;flex-wrap:wrap}.filtros-row input[type=text],.filtros-row .filtro-busqueda{flex:1;min-width:200px;padding:9px 14px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;outline:none}.filtros-row input[type=text]:focus,.filtros-row .filtro-busqueda:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.filtros-row select{padding:9px 14px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;background:#fff;outline:none;cursor:pointer}.filtros-row input[type=date]{padding:9px 14px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;outline:none}.auditoria-lista{display:flex;flex-direction:column;gap:2px}.audit-item{background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;transition:all .15s}.audit-item:hover{border-color:#cbd5e1;background:#f8fafc}.audit-item.expandido{border-color:#93c5fd;box-shadow:0 2px 8px #3b82f61a}.audit-item-main{display:flex;align-items:center;gap:14px;padding:12px 16px}.audit-icono{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;flex-shrink:0}.audit-contenido{flex:1;min-width:0}.audit-desc{display:block;font-size:14px;font-weight:500;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.audit-meta{display:flex;gap:12px;margin-top:3px;font-size:12px;color:#94a3b8}.audit-usuario{font-weight:500;color:#64748b}.audit-modulo{background:#f1f5f9;padding:1px 8px;border-radius:10px;font-size:11px}.audit-fecha{margin-left:auto}.audit-expand{color:#94a3b8;font-size:14px;flex-shrink:0}.audit-detalle{display:flex;gap:16px;padding:12px 16px 16px;border-top:1px solid #f1f5f9;margin-top:4px}.detalle-col{flex:1;min-width:0}.detalle-col h5{margin:0 0 6px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.detalle-col.anterior h5{color:#dc2626}.detalle-col.nuevo h5{color:#16a34a}.detalle-col pre{margin:0;padding:10px;background:#f8fafc;border-radius:6px;font-size:12px;overflow-x:auto;white-space:pre-wrap;word-break:break-all;line-height:1.5;color:#475569;border:1px solid #e2e8f0}.detalle-col.anterior pre{border-left:3px solid #fca5a5}.detalle-col.nuevo pre{border-left:3px solid #86efac}.auditoria-paginacion{display:flex;justify-content:center;align-items:center;gap:16px;padding:20px 0 0}.auditoria-paginacion button{padding:8px 16px;border:1px solid #d1d5db;border-radius:8px;background:#fff;cursor:pointer;font-size:13px;transition:all .15s}.auditoria-paginacion button:hover:not(:disabled){background:#f1f5f9;border-color:#3b82f6;color:#3b82f6}.auditoria-paginacion button:disabled{opacity:.4;cursor:not-allowed}.auditoria-paginacion span{font-size:13px;color:#64748b}.loading,.sin-resultados{text-align:center;padding:60px 20px;color:#64748b;font-size:15px}@media(max-width:768px){.auditoria-header{flex-direction:column;gap:16px}.filtros-row,.audit-detalle{flex-direction:column}.audit-meta{flex-wrap:wrap}.audit-fecha{margin-left:0}}
