:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.cp-container{background:#0d47a1;justify-content:center;align-items:center;height:100vh;display:flex}.cp-card{text-align:center;background:#fff;border-radius:15px;width:100%;max-width:350px;padding:25px;position:relative;box-shadow:0 4px 20px #0000001a}.cp-logo{width:70px;margin-bottom:10px}.cp-card h3{color:#0f40c7;margin-bottom:20px}.cp-card input{border:1px solid #ccc;border-radius:8px;outline:none;width:100%;margin-top:10px;padding:10px;font-size:14px}.cp-card input:focus{border-color:#0f40c7}.cp-card button{color:#fff;cursor:pointer;background:#0f40c7;border:none;border-radius:8px;width:100%;margin-top:20px;padding:10px;font-weight:700}.cp-card button:hover{background:#0c32a3}.cp-card button:disabled{cursor:not-allowed;background:#aaa}.cp-error{color:red;text-align:left;margin-top:4px;font-size:12px;display:block}.cp-error-general{color:red;margin-bottom:10px;font-size:14px}.cp-hint{color:#666;text-align:left;margin-top:5px;font-size:12px}.cp-strength{text-align:left;margin-top:5px;font-size:13px;font-weight:700}.cp-loader{background:linear-gradient(90deg,#0f40c7,#4facfe);height:3px;animation:1s infinite loading;position:absolute;top:0;left:0;right:0}@keyframes loading{0%{width:0%}to{width:100%}}.login-container{background:#0d47a1;flex-direction:column;justify-content:center;min-height:100vh;padding:24px;animation:.5s fadeIn;display:flex}.login-container .logo{width:250px;margin:0 auto 20px}.login-container input{border:none;border-radius:6px;outline:none;width:25%;margin:0 auto 16px;padding:12px}.login-container button{color:#fff;cursor:pointer;background:#1976d2;border:none;border-radius:6px;width:30%;margin:0 auto 20px;padding:12px;transition:transform .1s}.login-container button:active{transform:scale(.95)}.login-container .link{color:#fff;text-align:center;cursor:pointer;margin-top:10px;font-size:14px}.login-container .loader{border:6px solid #f3f3f3;border-top-color:#1976d2;border-radius:50%;width:50px;height:50px;margin:0 auto 20px;animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(100px)}to{opacity:1;transform:translateY(0)}}.dashboard-container{background:#e9f4ff;min-height:100vh;padding:10px;animation:.6s fadeIn}.welcome{justify-content:center;margin:10px 0 20px;display:flex}.welcome img{width:1000px;max-width:100%;height:auto}.grid{grid-template-columns:1fr 1fr 1fr;gap:20px;display:grid}.card{cursor:pointer;background:#fff;border-radius:18px;justify-content:center;align-items:center;height:140px;transition:all .2s;display:flex;box-shadow:0 4px 10px #0003}.card:hover{transform:scale(1.05);box-shadow:0 8px 20px #00000040}.card img{width:115px}.card:active{transform:scale(.92)}.home-container{background:#e9f4ff;min-height:100vh;padding:20px}.header-resumen{justify-content:space-between;align-items:center;margin-bottom:15px;display:flex}.header-resumen h2{color:#0f40c7;font-size:20px;font-weight:700}.btn-meses{cursor:pointer;color:#fff;background:#300eca;border:none;border-radius:10px;padding:10px 15px;font-weight:700}.resumen-top{gap:20px;margin-bottom:20px;display:flex}.grafica{flex:3;min-height:400px}.totales{flex-direction:column;flex:1;justify-content:flex-start;gap:10px;display:flex}.total-row{color:#fff;text-align:right;cursor:pointer;background:#34495e;border-radius:10px;padding:12px;font-weight:700}.ingreso{background:#03fff2f6}.gasto{background:#ae00ffee}.nod{background:#7f8c8d}.ganancia.positivo{background:#2ecc71}.ganancia.negativo{background:#e74c3c}.impuestos{margin-bottom:20px}.impuestos h3{margin-bottom:5px;font-weight:700}.filtros{margin-bottom:15px}.filtros button{cursor:pointer;margin-right:10px;padding:10px}.lista{margin-top:10px}.item-row{background:#fff;border-bottom:1px solid #eee;border-radius:10px;grid-template-columns:90px 1fr 100px;align-items:center;margin-bottom:8px;padding:12px;display:grid}.item-fecha{color:#444;font-size:12px;font-weight:700}.item-info{padding:0 10px}.item-nombre{font-size:14px;font-weight:700}.item-concepto{color:#666;font-size:12px}.item-monto{text-align:right;color:#2c3e50;font-weight:700}.mes-navegacion{align-items:center;gap:15px;display:flex}.mes-navegacion button{color:#fff;cursor:pointer;background:#0f40c7;border:none;border-radius:8px;padding:8px 12px}.mes-navegacion button:hover{background:#0c33a3}.layout{flex-direction:column;min-height:100vh;display:flex}.header{color:#fff;background:#0d47a1;flex-direction:column;display:flex}.header-row{align-items:center;display:flex}.header-row.top{justify-content:space-between;padding:10px 20px}.header-row.tabs{width:100%}.logo img{cursor:pointer;width:140px}.user-section{align-items:center;gap:10px;display:flex}.user-section button{color:#fff;cursor:pointer;background:#ff4d4d;border:none;border-radius:8px;padding:6px 10px}.tab{text-align:center;cursor:pointer;flex:1;padding:12px 0;transition:all .2s}.tab:hover{background:#fff3}.tab.active{color:#0d47a1;background:#e9f4ff;font-weight:700}.content{background:#e9f4ff;flex:1;padding:20px}.facturacion-container{background:#e9f4ff;min-height:100vh;padding:20px}.grid-facturacion{grid-template-columns:repeat(2,1fr);gap:15px;display:grid}.card-fact img{width:120px}.card-fact span{text-align:center;font-size:14px;font-weight:600}.card-fact:active{transform:scale(.92)}.card-fact{cursor:pointer;background:#fff;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:10px;height:180px;transition:all .2s;display:flex;box-shadow:0 4px 10px #0003}.card-fact:hover{transform:scale(1.05);box-shadow:0 8px 20px #00000040}.factura-container{box-sizing:border-box;background:#e9f4ff;width:100%;max-width:1200px;margin:0 auto;padding:20px}.factura-container .campo{margin-bottom:12px}.factura-container .campo label{margin-bottom:4px;font-size:13px;font-weight:700;display:block}.factura-container input,.factura-container select{border:1px solid #999;border-radius:4px;outline:none;width:100%;padding:10px}.factura-container .producto{gap:6px;margin-bottom:8px;display:flex}.factura-container input,.factura-container select{box-sizing:border-box;width:100%;min-width:0;max-width:100%}.factura-container .btn-eliminar{color:#fff;cursor:pointer;background:#d32f2f;border:none;border-radius:4px;padding:0 10px}.factura-container .btn-agregar{color:#fff;cursor:pointer;background:#1976d2;border:none;border-radius:4px;width:100%;margin-top:10px;padding:10px}.factura-container .totales-grid{grid-template-columns:1fr 1fr;gap:10px;margin-top:15px;display:grid}.factura-container .acciones{gap:10px;margin-top:15px;display:flex}.factura-container .btn-preview{color:#fff;cursor:pointer;background:#455a64;border:none;border-radius:4px;flex:1;padding:10px}.factura-container .btn-enviar{color:#fff;cursor:pointer;background:#2e7d32;border:none;border-radius:4px;flex:1;padding:10px}.factura-container .preview{background:#fff;border:1px solid #ccc;border-radius:6px;margin-top:20px;padding:15px}.factura-container .producto-header{border-bottom:2px solid #000;grid-template-columns:80px 150px 1fr 120px 90px;gap:8px;margin-bottom:5px;padding-bottom:5px;font-weight:700;display:grid}.factura-container .producto{grid-template-columns:80px 150px 1fr 120px 90px;gap:8px;margin-bottom:8px;display:grid}.factura-preview{background:#fff;border:2px solid #000;margin-top:20px;padding:20px}.factura-header{border-bottom:2px solid #000;justify-content:space-between;margin-bottom:10px;display:flex}.factura-section{margin-bottom:10px}.factura-tabla{border-collapse:collapse;width:100%;margin-top:10px}.factura-tabla th,.factura-tabla td{border:1px solid #000;padding:6px;font-size:13px}.factura-tabla th{background:#eee}.factura-totales-preview{text-align:right;margin-top:15px}.factura-layout{grid-template-columns:minmax(350px,1.5fr) minmax(500px,1fr);gap:20px;display:grid}.factura-col{flex-direction:column;gap:20px;display:flex}.factura-box{background:#fff;border:1px solid #ccc;border-radius:6px;padding:15px}.factura-container input,.factura-container select{color:#000;background:#fff!important}.factura-container input:-webkit-autofill{-webkit-text-fill-color:black!important;box-shadow:inset 0 0 0 1000px #fff!important}.factura-container input:focus,.factura-container select:focus{background:#fff;border:1px solid #1976d2;outline:none}.factura-productos{grid-column:1/-1}.contabilidad-container{background:#e9f4ff;min-height:100vh;padding:20px}.titulo{color:#0d47a1;text-align:center;margin-bottom:20px}.grid-contabilidad{grid-template-columns:1fr 1fr;gap:20px;display:grid}.card-conta{cursor:pointer;background:#fff;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:10px;height:180px;transition:transform .15s;display:flex;box-shadow:0 4px 10px #0003}.card-conta img{width:110px;margin-bottom:10px}.card-conta span{font-weight:700;display:block}.card-conta:hover{transform:translateY(-3px);box-shadow:0 4px 10px #00000026}.hist-container{background:#e9f4ff;min-height:100vh;padding:20px}.hist-titulo{text-align:center;color:#0f40c7;margin-bottom:20px}.hist-anios{justify-content:center;gap:12px;margin-bottom:25px;display:flex}.hist-anio{cursor:pointer;background:#fff;border-radius:20px;padding:10px 18px;font-weight:500;transition:all .2s;box-shadow:0 2px 6px #0000001a}.hist-anio:hover{transform:translateY(-2px)}.hist-anio.activo{color:#fff;background:#0f40c7}.hist-grid{grid-template-columns:repeat(4,1fr);gap:15px;display:grid}.hist-card{cursor:pointer;background:#fff;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:8px;height:120px;transition:all .2s;display:flex;box-shadow:0 4px 10px #00000014}.hist-icon{opacity:.8;width:35px}.hist-mes{font-size:14px;font-weight:600}.hist-status{opacity:.7;font-size:12px}.hist-card.disponible{border-bottom:4px solid #0f40c7}.hist-card.disponible:hover{transform:translateY(-5px);box-shadow:0 8px 18px #00000026}.hist-card.bloqueado{cursor:not-allowed;opacity:.6;background:#f2f2f2}.hist-card:active{transform:scale(.95)}.nomina-container{background:#e9f4ff;min-height:100vh;padding:20px}.grid-nomina{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.card-nomina{text-align:center;cursor:pointer;background:#fff;border-radius:12px;padding:20px;transition:all .2s;box-shadow:0 4px 10px #0000001a}.card-nomina:hover{transform:scale(1.05)}.card-nomina img{width:60px;margin-bottom:10px}.card-nomina span{font-weight:700;display:block}.nomina-proxima-container{padding:20px}.periodo{color:#0f40c7;margin-bottom:20px}.lista-empleados{flex-direction:column;gap:10px;display:flex}.empleado-card{background:#fff;border-radius:10px;padding:12px;box-shadow:0 3px 8px #0000001a}.emp-nombre{font-weight:700}.emp-detalle{color:gray}.resumen-nomina{background:#e9f4ff;border-radius:10px;margin-top:20px;padding:15px}.nomina-proxima-container{background:#e9f4ff;min-height:100vh;padding:20px}.periodo{text-align:center;color:#0f40c7;margin-bottom:20px}.tabla-nomina{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 4px 12px #0000001a}.tabla-header{color:#fff;background:#0f40c7;justify-content:space-between;padding:12px 15px;font-weight:600;display:flex}.tabla-row{justify-content:space-between;padding:12px 15px;transition:all .2s;display:flex}.tabla-row.par{background:#f7f9fc}.tabla-row.impar{background:#fff}.tabla-row:hover{background:#e3edff;transform:scale(1.01)}.monto{color:#0f40c7;font-weight:600}.histnom-container{background:#e9f4ff;min-height:100vh;padding:20px}.historial-nomina-container h2{text-align:center;color:#0f40c7;margin-bottom:20px}.histnom-anio{cursor:pointer;background:#fff;border-radius:20px;padding:10px 18px;transition:all .2s;box-shadow:0 2px 6px #0000001a}.histnom-grid{grid-template-columns:repeat(4,1fr);gap:15px;display:grid}.histnom-card{background:#fff;border-radius:16px;flex-direction:column;justify-content:space-between;height:130px;padding:15px;transition:all .2s;display:flex;box-shadow:0 4px 10px #00000014}.histnom-card:hover{transform:translateY(-4px)}.histnom-mes{text-align:center;font-size:14px;font-weight:600}.histnom-quincenas{gap:10px;display:flex}.histnom-q{text-align:center;border-radius:10px;flex:1;padding:8px;font-size:13px;font-weight:500;transition:all .2s}.histnom-q.activa{color:#fff;cursor:pointer;background:#0f40c7}.histnom-q.activa:hover{transform:scale(1.05)}.histnom-q.bloqueada{color:#666;cursor:not-allowed;background:#e0e0e0}.histnom-q:active{transform:scale(.95)}.histnom-anios{justify-content:center;gap:12px;margin-bottom:25px;display:flex}.histnom-anio{cursor:pointer;background:#fff;border-radius:20px;padding:10px 18px;font-weight:500;transition:all .2s;box-shadow:0 2px 6px #0000001a}.histnom-anio:hover{transform:translateY(-2px)}.histnom-anio.activo{color:#fff;background:#0f40c7}.documentos-container{background:#e9f4ff;min-height:100vh;padding:20px}.grid-documentos{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.card-doc{text-align:center;cursor:pointer;background:#fff;border-radius:12px;padding:20px;transition:all .2s;box-shadow:0 4px 10px #0000001a}.card-doc:hover{transform:scale(1.05)}.card-doc img{width:60px;margin-bottom:10px}.card-doc span{font-weight:700;display:block}.decl-container{background:#e9f4ff;min-height:100vh;padding:20px}.decl-titulo{text-align:center;color:#0f40c7;margin-bottom:20px}.decl-anios{justify-content:center;gap:12px;margin-bottom:25px;display:flex}.decl-anio{cursor:pointer;background:#fff;border-radius:20px;padding:10px 18px;transition:all .2s;box-shadow:0 2px 6px #0000001a}.decl-anio.activo{color:#fff;background:#0f40c7}.decl-grid{grid-template-columns:repeat(4,1fr);gap:15px;display:grid}.decl-card{cursor:pointer;background:#fff;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:8px;height:110px;transition:all .2s;display:flex;box-shadow:0 4px 10px #00000014}.decl-mes{font-size:14px;font-weight:600}.decl-estado{opacity:.7;font-size:12px}.decl-card.presentada{border-bottom:20px solid #4caf50}.decl-card.presentada:hover{transform:translateY(-5px)}.decl-card.pendiente{border-bottom:20px solid #ff9800}.decl-card.no_presentada{border-bottom:20px solid #f44336}.decl-card.proxima{color:#666;cursor:not-allowed;background:#f2f2f2}.decl-card:active{transform:scale(.95)}.perfil-container{background:#e9f4ff;min-height:100vh;padding:20px}.titulo{text-align:center;color:#0f40c7;margin-bottom:20px}.perfil-top{align-items:center;gap:15px;margin-bottom:20px;display:flex}.avatar{color:#fff;background:#0f40c7;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;font-size:24px;font-weight:700;display:flex}.perfil-nombre-row{align-items:center;gap:15px;display:flex}.perfil-nombre-row h3{margin:0}.rfc{color:gray;font-size:20px}.perfil-grid{grid-template-columns:2fr 1fr;gap:20px;display:grid}.perfil-right{flex-direction:column;gap:20px;display:flex}.card-perfil,.card-contador,.card-avisos{text-align:left;background:#fff;border-radius:15px;padding:20px;transition:all .2s;box-shadow:0 6px 15px #00000014}.card-perfil:hover,.card-contador:hover,.card-avisos:hover{transform:translateY(-4px);box-shadow:0 10px 25px #00000026}.card-perfil h4,.card-contador h4,.card-avisos h4{color:#0f40c7;margin-bottom:12px}.row{border-bottom:1px solid #f0f0f0;padding:8px 0}.row:last-child{border-bottom:none}.row span{color:gray;font-size:12px}.row p{margin:2px 0 0;font-weight:500}.plan p{color:#0f40c7;background:#e3edff;border-radius:8px;padding:4px 10px;font-weight:700;display:inline-block}.nombre-contador{margin-bottom:10px;font-weight:600}.acciones-contador{gap:10px;margin-top:10px;display:flex}.acciones-contador button{cursor:pointer;color:#fff;background:#0f40c7;border:none;border-radius:8px;flex:1;padding:10px;transition:all .2s}.acciones-contador button:hover{background:#0c33a3}.avisos-header{cursor:pointer;justify-content:space-between;display:flex}.badge{color:#fff;background:red;border-radius:10px;padding:3px 8px;font-size:12px}.avisos-lista{margin-top:10px}
