:root{color:#1a202c;background:#f7fafc;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{min-height:100vh;margin:0}.centered,.login{place-items:center;min-height:100vh;display:grid}.login-card{background:#fff;border-radius:.75rem;flex-direction:column;gap:.9rem;width:min(90vw,22rem);padding:2rem;display:flex;box-shadow:0 10px 30px #00000014}.login-card h1{text-align:center;margin:0 0 .5rem;font-size:1.3rem}.login-card label{flex-direction:column;gap:.3rem;font-size:.9rem;display:flex}.login-card input{border:1px solid #cbd5e0;border-radius:.4rem;padding:.55rem .7rem;font-size:1rem}.login-card button{color:#fff;cursor:pointer;background:#2b6cb0;border:none;border-radius:.4rem;padding:.6rem;font-size:1rem}.login-card button:disabled{opacity:.6}.error{color:#c53030;margin:0;font-size:.85rem}.app{grid-template-columns:15rem 1fr;min-height:100vh;display:grid}.sidebar{color:#fff;background:#1a365d;flex-direction:column;padding:1.25rem 1rem;display:flex}.sidebar h2{margin:0 0 1.25rem;font-size:1.05rem}.sidebar nav{flex-direction:column;flex:1;gap:1rem;display:flex;overflow-y:auto}.sidebar-seccion{flex-direction:column;gap:.3rem;display:flex}.sidebar-seccion h3{color:#90cdf4;letter-spacing:.09em;text-transform:uppercase;margin:0 .65rem;font-size:.7rem;font-weight:700}.sidebar-opciones{border-left:1px solid #90cdf459;flex-direction:column;gap:.2rem;padding-left:.4rem;display:flex}.sidebar nav a{color:#cbd5e0;border-radius:.4rem;padding:.5rem .65rem;text-decoration:none}.sidebar nav a:hover{color:#fff;background:#2c5282}.sidebar nav a.active{color:#fff;background:#2b6cb0}.sidebar footer{flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.sidebar footer button{color:#e2e8f0;cursor:pointer;background:0 0;border:1px solid #4a5568;border-radius:.4rem;margin-top:.5rem;padding:.4rem}.content{min-width:0;padding:2rem}.app-topbar{color:#fff;background:#1a365d;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;display:none}.app-topbar h2{margin:0;font-size:1rem}.app-menu-boton{color:#fff;cursor:pointer;background:0 0;border:1px solid #4a5568;border-radius:.4rem;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:1.2rem;line-height:1;display:inline-flex}.btn{cursor:pointer;border:1px solid #0000;border-radius:.4rem;padding:.55rem .9rem;font-size:.95rem}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-chico{padding:.3rem .6rem;font-size:.85rem}.btn-primario{color:#fff;background:#2b6cb0}.btn-primario:hover:not(:disabled){background:#2c5282}.btn-secundario{color:#2d3748;background:#fff;border-color:#cbd5e0}.btn-secundario:hover:not(:disabled){background:#edf2f7}.btn-peligro{color:#c53030;background:#fff;border-color:#feb2b2}.btn-peligro:hover:not(:disabled){background:#fff5f5}.pagina-encabezado{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.pagina-encabezado h1{margin:0;font-size:1.4rem}.barra-filtros{flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;display:flex}.barra-filtros input,.barra-filtros select{background:#fff;border:1px solid #cbd5e0;border-radius:.4rem;padding:.55rem .7rem;font-size:.95rem}.barra-filtros input{flex:1;max-width:24rem}.data-table{background:#fff;border-radius:.75rem;overflow:hidden;box-shadow:0 10px 30px #00000014}.data-table-scroll{overflow-x:auto}.data-table table{border-collapse:collapse;width:100%;font-size:.92rem}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:#4a5568;background:#f7fafc;border-bottom:1px solid #e2e8f0;padding:.7rem .9rem;font-size:.78rem}.data-table td{vertical-align:middle;border-bottom:1px solid #edf2f7;padding:.65rem .9rem}.data-table tbody tr:last-child td{border-bottom:none}.data-table-estado{text-align:center;color:#718096;padding:1.5rem}.data-table-paginacion{color:#4a5568;border-top:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem .9rem;font-size:.85rem;display:flex}.data-table-paginacion-botones{gap:.5rem;display:flex}.tabla-acciones{gap:.4rem;display:inline-flex}.select-tabla{background:#fff;border:1px solid #cbd5e0;border-radius:.4rem;min-width:0;max-width:14rem;padding:.35rem .5rem;font-size:.88rem}.badge{white-space:nowrap;border-radius:999px;padding:.15rem .55rem;font-size:.75rem;font-weight:600;display:inline-block}.badge-exito{color:#22543d;background:#c6f6d5}.badge-neutro{color:#4a5568;background:#e2e8f0}.badge-advertencia{color:#744210;background:#fefcbf}.badge-peligro{color:#822727;background:#fed7d7}.badges{flex-wrap:wrap;gap:.35rem;display:inline-flex}.modal-overlay{z-index:50;background:#00000073;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:.75rem;outline:none;width:min(96vw,52rem);max-height:90vh;padding:1.5rem;overflow:hidden auto;box-shadow:0 10px 30px #0003}.modal-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.modal-header h2{margin:0;font-size:1.15rem}.modal-cerrar{color:#718096;cursor:pointer;background:0 0;border:none;font-size:1.4rem;line-height:1}.modal-pie{justify-content:flex-end;gap:.6rem;margin-top:1.25rem;display:flex}.form-modal{flex-direction:column;gap:.9rem;display:flex}.form-cuadricula{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.9rem;display:grid}.form-field{flex-direction:column;gap:.3rem;min-width:0;font-size:.9rem;display:flex}.form-field-label{color:#2d3748;font-weight:500}.form-field input,.form-field textarea,.form-field select{border:1px solid #cbd5e0;border-radius:.4rem;width:100%;min-width:0;padding:.55rem .7rem;font-family:inherit;font-size:.95rem}.form-field-error{color:#c53030;font-size:.8rem}.form-seccion{border:1px solid #e2e8f0;border-radius:.5rem;flex-direction:column;gap:.75rem;padding:.9rem;display:flex}.form-seccion legend{color:#2d3748;padding:0 .35rem;font-size:.9rem;font-weight:600}.form-seccion>.btn{align-self:flex-start}.form-nota{color:#718096;margin:0;font-size:.85rem}.contacto-fila{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1.2fr) auto;align-items:start;gap:.6rem;display:grid}.contacto-eliminar{margin-top:1.65rem}@media (width<=40rem){.contacto-fila{grid-template-columns:1fr}.contacto-eliminar{justify-self:start;margin-top:0}}.campo-checkbox{align-items:center;gap:.5rem;font-size:.9rem;display:flex}a.btn{text-align:center;text-decoration:none;display:inline-block}.content-barra{justify-content:flex-end;margin-bottom:.75rem;display:flex}.campana{position:relative}.campana-boton{cursor:pointer;background:#fff;border:1px solid #cbd5e0;border-radius:999px;justify-content:center;align-items:center;width:2.4rem;height:2.4rem;font-size:1.1rem;display:inline-flex;position:relative}.campana-boton:hover{background:#edf2f7}.campana-conteo{color:#fff;text-align:center;background:#c53030;border-radius:999px;min-width:1.2rem;padding:0 .25rem;font-size:.7rem;font-weight:700;line-height:1.2rem;position:absolute;top:-.3rem;right:-.3rem}.campana-panel{z-index:40;background:#fff;border-radius:.75rem;width:min(92vw,24rem);max-height:26rem;position:absolute;top:calc(100% + .5rem);right:0;overflow-y:auto;box-shadow:0 10px 30px #00000026}.campana-panel-encabezado{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem .9rem;display:flex}.campana-vacio{text-align:center;color:#718096;margin:0;padding:1.25rem;font-size:.9rem}.campana-lista{margin:0;padding:0;list-style:none}.notificacion{border-bottom:1px solid #edf2f7;justify-content:space-between;align-items:flex-start;gap:.6rem;padding:.7rem .9rem;display:flex}.notificacion:last-child{border-bottom:none}.notificacion.no-leida{background:#ebf8ff}.notificacion-texto{flex-direction:column;gap:.15rem;min-width:0;font-size:.88rem;display:flex}.notificacion-texto small{color:#718096}.migas{margin:0 0 .75rem;font-size:.88rem}.detalle-encabezado{align-items:flex-start}.detalle-encabezado .badges{margin-top:.4rem}.acciones-barra{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.detalle-meta{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.9rem;margin:0 0 1.25rem;display:grid}.detalle-meta dt{text-transform:uppercase;letter-spacing:.04em;color:#718096;font-size:.78rem}.detalle-meta dd{overflow-wrap:anywhere;margin:.15rem 0 0;font-size:.95rem}.detalle-seccion{margin-bottom:1.5rem}.detalle-seccion>h2{margin:0 0 .75rem;font-size:1.1rem}.monto{font-variant-numeric:tabular-nums;white-space:nowrap}.aviso-exito{color:#22543d;background:#c6f6d5;border-radius:.5rem;margin:0 0 1rem;padding:.6rem .9rem;font-size:.9rem}.lista-archivos{flex-direction:column;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.lista-archivos li{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.lista-archivos small{color:#718096}.advertencias{color:#744210;background:#fefcbf;border-radius:.5rem;margin:.5rem 0;padding:.6rem .9rem .6rem 2rem;font-size:.88rem}.linea-tiempo{counter-reset:paso;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.75rem;margin:0 0 1.5rem;padding:0;list-style:none;display:grid}.linea-tiempo li{background:#fff;border-left:4px solid #cbd5e0;border-radius:.4rem;flex-direction:column;gap:.2rem;padding:.7rem .9rem;display:flex;box-shadow:0 4px 12px #0000000f}.linea-tiempo li.hecho{border-left-color:#2f855a}.linea-tiempo-titulo{font-size:.85rem;font-weight:600}.linea-tiempo-detalle{color:#718096;font-size:.8rem}.alta-al-vuelo{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.alta-al-vuelo input{border:1px solid #cbd5e0;border-radius:.4rem;flex:1;min-width:9rem;padding:.45rem .6rem;font-size:.9rem}.tarjetas-resumen{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.9rem;margin-bottom:1.5rem;display:grid}.tarjeta-resumen{background:#fff;border-radius:.75rem;flex-direction:column;gap:.3rem;padding:.9rem 1.1rem;display:flex;box-shadow:0 10px 30px #00000014}.tarjeta-resumen.destacada{color:#fff;background:#1a365d}.tarjeta-resumen.alerta{background:#fefcbf;box-shadow:inset 0 0 0 1px #d69e2e}.tarjeta-resumen.alerta .tarjeta-resumen-titulo,.tarjeta-resumen.alerta .tarjeta-resumen-valor{color:#744210}.tarjeta-resumen-titulo{text-transform:uppercase;letter-spacing:.04em;color:#718096;font-size:.78rem}.tarjeta-resumen.destacada .tarjeta-resumen-titulo{color:#cbd5e0}.tarjeta-resumen-valor{font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:700}.tabs{border-bottom:1px solid #e2e8f0;gap:.35rem;margin-bottom:1.25rem;display:flex}.tab{color:#4a5568;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:.55rem .9rem;font-size:.95rem}.tab.activa{color:#2b6cb0;border-bottom-color:#2b6cb0;font-weight:600}.cuadricula-scroll{background:#fff;border-radius:.75rem;overflow-x:auto;box-shadow:0 10px 30px #00000014}.cuadricula{border-collapse:collapse;width:100%;font-size:.9rem}.cuadricula th,.cuadricula td{text-align:center;white-space:nowrap;border-bottom:1px solid #edf2f7;padding:.45rem .55rem}.cuadricula thead th{text-transform:uppercase;letter-spacing:.04em;color:#4a5568;background:#f7fafc;font-size:.75rem}.cuadricula tbody tr:last-child th,.cuadricula tbody tr:last-child td{border-bottom:none}.cuadricula th[scope=row]{text-align:left;text-overflow:ellipsis;background:#fff;max-width:16rem;font-weight:500;position:sticky;left:0;overflow:hidden}.celda-asistencia{color:#a0aec0;cursor:pointer;background:#fff;border:1px solid #cbd5e0;border-radius:.4rem;width:2.3rem;height:2.3rem;font-size:.95rem;line-height:1}.celda-asistencia:disabled{cursor:not-allowed;opacity:.65}.celda-asistencia.asistio{color:#22543d;background:#c6f6d5;border-color:#9ae6b4;font-weight:700}.celda-asistencia.falta{color:#822727;background:#fed7d7;border-color:#feb2b2;font-weight:700}.celda-asistencia.editada{box-shadow:0 0 0 2px #2b6cb0}.celda-asistencia.con-error{box-shadow:0 0 0 2px #c53030}.obra-seccion{margin-bottom:1.75rem}.obra-seccion-encabezado{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.6rem;display:flex}.obra-seccion-encabezado h3{margin:0;font-size:1rem}.fotos-lista{flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.75rem;font-size:.88rem;display:flex}.subir-foto{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.subir-foto input[type=file]{max-width:16rem;font-size:.85rem}@media (width<=48rem){.app{grid-template-columns:1fr}.app-topbar{z-index:30;display:flex;position:sticky;top:0}.sidebar{display:none}.app.menu-abierto .sidebar{display:flex}.content{padding:1.25rem}.pagina-encabezado{flex-wrap:wrap}.acciones-barra{justify-content:flex-start}.modal{width:96vw;padding:1.1rem}}
