/* =====================================================================
   Plataforma Dexa · Estilos con identidad institucional
   Tipografía: Century Gothic (respaldo: Questrial, de Google Fonts,
   para celulares y equipos que no la tienen instalada).
   ===================================================================== */
:root{
  /* Paleta institucional Dexa */
  --dexa-petroleo:#0A2550;   /* azul petróleo / marino fuerte: barras y fondos oscuros */
  --dexa-marino:#030A8C;     /* azul marino institucional: botones principales */
  --dexa-medio:#4E7FBF;      /* azul medio: acentos y bordes activos */
  --dexa-celeste:#30A9D9;    /* celeste: detalles, foco, enlaces */
  --dexa-gris:#A6A6A6;       /* gris institucional */
  --dexa-negro:#0D0D0D;      /* negro institucional */

  --fondo:#EEF1F6; --tarjeta:#FFFFFF; --texto:#0D0D0D; --suave:#5F6673; --borde:#D3D9E3;
  --error:#B42318; --error-fondo:#FDECEA; --info:#0A2550; --info-fondo:#E6F4FA;
  --aviso:#7A5200; --aviso-fondo:#FFF4D6; --ok:#1F7A3F; --ok-fondo:#E7F6EC;
  --radio:12px;
  --fuente:"Century Gothic", CenturyGothic, "Questrial", "URW Gothic", AppleGothic, "Segoe UI", sans-serif;
}
*{box-sizing:border-box}
[hidden]{display:none !important}
html,body{margin:0}
body{font-family:var(--fuente);background:var(--fondo);color:var(--texto);
  min-height:100vh;display:flex;flex-direction:column;font-size:16px;line-height:1.45}
.contenido{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:20px 16px}
.pie{text-align:center;color:var(--suave);font-size:13px;padding:16px;letter-spacing:.3px}

/* Pantallas sin sesión (login): fondo azul petróleo con degradé */
.sin-sesion{background:radial-gradient(circle at 15% 10%, #13407A 0%, var(--dexa-petroleo) 45%, #06173A 100%)}
.sin-sesion .contenido{display:grid;place-items:center}
.sin-sesion .pie{color:rgba(255,255,255,.55)}

/* Barra superior */
.barra{background:var(--dexa-petroleo);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:10px 16px;border-bottom:3px solid var(--dexa-celeste)}
.barra-marca{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.3px;color:#fff;text-decoration:none}
.barra-marca img{width:34px;height:34px}
.barra-usuario{display:flex;align-items:center;gap:14px}
.barra-usuario form{margin:0}
.barra-nombre{font-size:14px;opacity:.9;max-width:40vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.barra-enlace{color:#fff;font-size:14px;text-decoration:none;opacity:.85}
.barra-enlace:hover{opacity:1;color:var(--dexa-celeste)}

/* Tarjetas */
.tarjeta{background:var(--tarjeta);border:1px solid var(--borde);border-radius:var(--radio);padding:24px;
  box-shadow:0 4px 18px rgba(10,37,80,.08)}
.tarjeta-angosta{max-width:420px;margin:0 auto}
.tarjeta-login{width:100%;max-width:390px;border:0;border-top:4px solid var(--dexa-celeste);box-shadow:0 18px 40px rgba(0,0,0,.30)}
.login-marca{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:18px;text-align:center}
.login-logo{display:inline-flex;border-radius:8px;transition:transform .15s}
.login-logo:hover{transform:scale(1.04)}
.login-logo:focus-visible{outline:3px solid rgba(48,169,217,.45);outline-offset:4px}
.login-marca img{width:184px;max-width:100%;height:auto;display:block}
.login-marca span{font-size:13px;color:var(--suave);letter-spacing:.5px}
h1{font-size:22px;margin:0 0 16px;color:var(--dexa-petroleo);font-weight:700}
.tarjeta-login h1{font-size:18px;text-align:center}

/* Formularios */
label{display:block;font-weight:700;font-size:14px;margin:14px 0 6px;color:var(--dexa-petroleo)}
input[type=text],input[type=password]{width:100%;padding:11px 12px;border:1px solid var(--borde);border-radius:8px;
  font-size:16px;font-family:inherit;background:#fff;color:var(--texto)}
input:focus{outline:3px solid rgba(48,169,217,.30);border-color:var(--dexa-celeste)}
.casilla{display:flex;align-items:center;gap:8px;font-weight:400;margin-top:12px;color:var(--texto)}
.casilla input{width:auto;margin:0;accent-color:var(--dexa-marino)}

/* Botones */
.boton{border:0;border-radius:8px;padding:11px 16px;font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;letter-spacing:.3px}
.boton-principal{background:var(--dexa-marino);color:#fff;margin-top:20px}
.boton-principal:hover{background:var(--dexa-medio)}
.boton-claro{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.45);padding:6px 12px;font-size:14px}
.boton-claro:hover{border-color:var(--dexa-celeste);color:var(--dexa-celeste)}
.boton-ancho{width:100%}

/* Mensajes */
.mensaje{border-radius:8px;padding:10px 12px;font-size:14px;margin-bottom:10px}
.mensaje-error{background:var(--error-fondo);color:var(--error)}
.mensaje-error div+div{margin-top:4px}
.mensaje-info{background:var(--info-fondo);color:var(--info);border-left:4px solid var(--dexa-celeste)}
.mensaje-aviso{background:var(--aviso-fondo);color:var(--aviso);margin-top:12px}
.mensaje-ok{background:var(--ok-fondo);color:var(--ok);margin-bottom:12px}
.ayuda{color:var(--suave);font-size:13px;margin:16px 0 0}
/* Soporte por WhatsApp (login) */
.soporte{margin-top:22px;padding-top:18px;border-top:1px solid var(--borde);text-align:center}
.soporte p{color:var(--suave);font-size:13px;margin:0 0 12px}
.soporte small{display:block;color:var(--suave);font-size:12px;margin-top:8px;letter-spacing:.3px}
.boton-whatsapp{display:flex;align-items:center;justify-content:center;gap:8px;background:#25D366;color:#fff;text-decoration:none}
.boton-whatsapp:hover{background:#1EBE5A}
.boton-whatsapp:focus-visible{outline:3px solid rgba(37,211,102,.4);outline-offset:2px}
.ayuda a{color:var(--dexa-medio)}
.requisitos{color:var(--suave);font-size:13px;margin:12px 0 0;padding-left:18px}

/* Datos */
.datos{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:0}
.datos dt{color:var(--suave)}
.datos dd{margin:0;font-weight:700;color:var(--dexa-petroleo)}


/* =====================================================================
   Tablero (inicio) · estructura tipo panel con menú lateral
   ===================================================================== */
.barra-izq{display:flex;align-items:center;gap:6px}
.barra-menu{display:none;background:none;border:0;color:#fff;padding:6px;cursor:pointer;border-radius:6px}
.barra-menu:hover{background:rgba(255,255,255,.1)}
.barra-nombre{display:flex;align-items:center;gap:8px;letter-spacing:.3px}
.barra-nombre .icono{color:var(--dexa-celeste);flex:none}

.app{flex:1;display:grid;grid-template-columns:86px 1fr;min-height:0}
.app-sin-menu{grid-template-columns:1fr}
.app .contenido{max-width:1320px;min-width:0}

.lateral{background:#fff;border-right:1px solid var(--borde);display:flex;flex-direction:column;align-items:stretch;padding:12px 0;gap:4px}
.lateral a,.lateral button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 3px;color:var(--dexa-petroleo);
  text-decoration:none;font:inherit;font-size:11px;background:none;border:0;cursor:pointer;width:100%;border-left:3px solid transparent}
.lateral a:hover,.lateral button:hover{background:var(--info-fondo);color:var(--dexa-marino)}
.lateral a.activo{border-left-color:var(--dexa-celeste);background:var(--info-fondo);color:var(--dexa-marino)}
.lateral form{margin:auto 0 0}
.lateral a > span,.lateral button > span,.lateral-proximo > span{display:block;max-width:100%;text-align:center;line-height:1.2;
  letter-spacing:-.1px;overflow-wrap:anywhere;hyphens:auto}

.tablero{display:grid;grid-template-columns:minmax(260px,340px) 1fr;gap:20px;align-items:start}
.col-lateral{display:flex;flex-direction:column;gap:20px}
.col-principal{min-width:0}

/* Perfil */
.perfil{text-align:center;padding:24px 20px}
.perfil-avatar{width:96px;height:96px;margin:0 auto 12px;border-radius:50%;display:grid;place-items:center;font-size:34px;font-weight:700;
  color:#fff;background:linear-gradient(145deg,var(--dexa-medio),var(--dexa-marino));box-shadow:0 0 0 5px #fff,0 0 0 7px var(--dexa-celeste)}
.perfil-nombre{font-size:17px;margin:6px 0 2px;color:var(--dexa-petroleo);letter-spacing:.3px}
.perfil-empresa{color:var(--suave);font-size:14px;margin-bottom:6px}
.perfil-bloque{text-align:left;border-top:1px solid var(--borde);margin-top:14px;padding-top:12px}
.perfil-bloque h3{display:flex;align-items:center;gap:6px;font-size:14px;margin:0 0 8px;color:var(--dexa-petroleo)}
.perfil-bloque dl{display:grid;grid-template-columns:max-content 1fr;gap:4px 12px;margin:0;font-size:14px}
.perfil-bloque dt{color:var(--suave)}
.perfil-bloque dd{margin:0;word-break:break-word}
.no-cargado{color:#C27803}

/* Otros accesos */
.accesos{padding:0;overflow:hidden}
.accesos h2{font-size:16px;margin:0;padding:14px 18px;border-bottom:1px solid var(--borde)}
.acceso{display:flex;align-items:center;gap:12px;padding:12px 18px;text-decoration:none;color:var(--texto);border-bottom:1px solid var(--borde)}
.acceso:last-child{border-bottom:0}
.acceso:hover{background:var(--info-fondo)}
.acceso strong{display:block;color:var(--dexa-marino);font-size:14px}
.acceso small{color:var(--suave);font-size:12px}
.acceso-icono{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:var(--info-fondo);color:var(--dexa-medio);flex:none}

/* Sección principal */
.seccion{padding:20px 24px 24px}
.seccion-titulo{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.marca{display:flex;align-items:center;gap:10px;margin:0;font-size:34px;font-weight:700;letter-spacing:4px;line-height:1}
.marca img{width:40px;height:40px}
.marca-escudo{color:var(--dexa-marino)}
.marca-gestor{color:var(--dexa-celeste)}
.marca-edilicia{color:var(--dexa-medio)}
.marca-admin{color:var(--dexa-petroleo)}
.aviso-franja{margin:18px 0 22px;padding:14px 16px;background:#F5F8FC;border:1px solid var(--borde);border-left:5px solid var(--dexa-celeste);
  border-radius:6px;font-size:14px;color:var(--texto)}
.aviso-franja strong{color:var(--dexa-petroleo)}

.grupo{display:flex;align-items:center;gap:8px;font-size:15px;color:var(--dexa-petroleo);margin:8px 0 12px;padding-bottom:6px;border-bottom:2px solid var(--fondo)}
.grupo + .obras{margin-bottom:20px}

/* Tarjetas de obra */
.obras{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(250px,100%),1fr));gap:16px}
.obra{border:1px solid var(--borde);border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:12px;background:#fff;
  transition:box-shadow .15s,border-color .15s}
.obra:hover{border-color:var(--dexa-celeste);box-shadow:0 6px 18px rgba(10,37,80,.10)}
.obra-cabeza{display:flex;gap:12px;align-items:center}
.obra-icono{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--dexa-marino);color:#fff;flex:none}
.seccion-gestor .obra-icono{background:var(--dexa-celeste)}
.seccion-gestor .obra-abrir{background:var(--dexa-petroleo)}
.seccion-gestor .obra-abrir:hover{background:var(--dexa-medio)}
.seccion-edilicia .obra-icono{background:var(--dexa-medio)}
.obra h4{margin:0;font-size:15px;color:var(--dexa-petroleo);line-height:1.25}
.obra-datos{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--suave)}
.obra-datos li{display:flex;align-items:center;gap:8px}
.obra-datos .icono{color:var(--dexa-medio);flex:none}
.obra-abrir{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:auto;text-decoration:none}
.obra-sin-app{display:block;text-align:center;background:var(--fondo);color:var(--suave);margin-top:auto;cursor:default}

.nivel{display:inline-block;margin-top:4px;font-size:12px;font-weight:700;padding:2px 8px;border-radius:20px}
.nivel-a{background:var(--dexa-petroleo);color:#fff}
.nivel-b{background:var(--dexa-medio);color:#fff}
.nivel-c{background:var(--dexa-celeste);color:var(--dexa-petroleo)}

.vacio{text-align:center;color:var(--suave);padding:30px 10px}
.vacio .icono{color:var(--dexa-gris)}

/* Administración */
.resumen{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:22px}
.resumen div{background:#F5F8FC;border:1px solid var(--borde);border-radius:10px;padding:14px;display:flex;flex-direction:column}
.resumen strong{font-size:28px;color:var(--dexa-marino);line-height:1.1}
.resumen span{font-size:13px;color:var(--suave)}
.atajos{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}
.atajo{display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 10px;border:1px solid var(--borde);border-radius:10px;
  text-decoration:none;color:var(--dexa-marino);font-weight:700;font-size:14px;text-align:center}
.atajo:hover{border-color:var(--dexa-celeste);background:var(--info-fondo)}
.atajo small{font-weight:400;color:var(--suave);font-size:11px}
.atajo.deshabilitado{color:var(--dexa-gris);cursor:default}
.atajo.deshabilitado:hover{background:none;border-color:var(--borde)}

/* ---- Perfil con foto y logo de empresa ---- */
img.perfil-avatar.perfil-foto{object-fit:cover;background:#fff;display:block}
.perfil-empresa{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}
.perfil-logo{max-height:28px;max-width:110px;object-fit:contain}

/* ---- Menú lateral: ítems próximamente y separador (admin) ---- */
.lateral-proximo{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 3px;font-size:11px;
  color:var(--dexa-gris);cursor:default;border-left:3px solid transparent}
.lateral hr{border:0;border-top:1px solid var(--borde);margin:6px 10px;width:auto}

/* ---- Tablero del admin ---- */
.etiqueta-nivel{background:var(--dexa-petroleo);color:#fff;font-size:12px;font-weight:700;padding:4px 10px;border-radius:20px;letter-spacing:.4px}
.subtitulo{display:flex;align-items:center;gap:8px;font-size:16px;color:var(--dexa-petroleo);margin:6px 0 12px}
.subtitulo .icono{color:var(--dexa-celeste)}
.todo-ok{display:flex;align-items:center;gap:10px;background:var(--ok-fondo);color:var(--ok);border-radius:10px;padding:14px 16px;margin-bottom:22px;font-weight:700}
.alertas{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:14px;margin-bottom:24px}
.alerta{border:1px solid var(--borde);border-left:5px solid #E0A526;border-radius:10px;padding:14px 16px;background:#fff}
.alerta header{display:flex;justify-content:space-between;align-items:center;gap:10px}
.alerta h4{margin:0;font-size:15px;color:var(--dexa-petroleo)}
.contador{background:#E0A526;color:#fff;font-weight:700;font-size:13px;min-width:26px;text-align:center;padding:2px 8px;border-radius:20px}
.alerta-ayuda{margin:4px 0 10px;color:var(--suave);font-size:13px}
.alerta ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.alerta li{display:flex;flex-direction:column;font-size:14px;padding-left:10px;border-left:2px solid var(--borde)}
.alerta li small{color:var(--suave);font-size:12px}
.alerta li.urgente{border-left-color:var(--error)}
.alerta li.urgente small{color:var(--error);font-weight:700}
.alerta-mas{margin:8px 0 0;font-size:12px;color:var(--suave)}

/* =====================================================================
   Admin · listados, fichas y formularios
   ===================================================================== */
.titulo-pagina{display:flex;align-items:center;gap:10px;margin:0;font-size:24px;color:var(--dexa-petroleo)}
.titulo-pagina .icono{color:var(--dexa-celeste)}
.miga{margin:0 0 12px;font-size:13px;color:var(--suave)}
.miga a{color:var(--dexa-medio);text-decoration:none}
.boton-icono{display:inline-flex;align-items:center;gap:6px;text-decoration:none;margin-top:0}
.boton-secundario{background:#fff;color:var(--dexa-marino);border:1px solid var(--borde);text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.boton-secundario:hover{border-color:var(--dexa-celeste);background:var(--info-fondo)}
.boton-peligro{background:#fff;color:var(--error);border:1px solid #F1B5AF}
.boton-peligro:hover{background:var(--error-fondo)}
.boton-texto{background:none;border:0;padding:0;color:var(--dexa-medio);font:inherit;font-size:13px;cursor:pointer;text-decoration:underline}
.boton-texto:hover{color:var(--dexa-marino)}
.boton-archivo{position:relative;overflow:hidden;cursor:pointer;margin:0;font-weight:700}
.boton-archivo input{position:absolute;inset:0;opacity:0;cursor:pointer}

.filtros{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 6px}
.filtros input[type=search]{flex:1 1 220px;min-width:0;padding:10px 12px;border:1px solid var(--borde);border-radius:8px;font:inherit}
.filtros select,.formulario select{padding:10px 12px;border:1px solid var(--borde);border-radius:8px;font:inherit;background:#fff;color:var(--texto)}
.conteo{color:var(--suave);font-size:13px;margin:8px 0 12px}

.tabla-envoltura{overflow-x:auto;border:1px solid var(--borde);border-radius:10px}
.tabla{width:100%;border-collapse:collapse;font-size:14px}
.tabla th{background:#F5F8FC;color:var(--dexa-petroleo);text-align:left;font-weight:700;padding:10px 12px;border-bottom:1px solid var(--borde);white-space:nowrap}
.tabla td{padding:10px 12px;border-bottom:1px solid var(--borde);vertical-align:middle}
.tabla tr:last-child td{border-bottom:0}
.tabla tbody tr:hover{background:#FAFCFE}
.tabla .num{text-align:right}
.tabla small,.bloque{display:block;color:var(--suave);font-size:12px}
.nowrap{white-space:nowrap}
tr.inactiva td,li.inactiva{opacity:.55}
.celda-empresa{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit}
.celda-empresa strong{color:var(--dexa-marino)}
.mini-logo{width:44px;height:44px;border:1px solid var(--borde);border-radius:8px;display:grid;place-items:center;background:#fff;color:var(--dexa-gris);flex:none;overflow:hidden}
.mini-logo img{max-width:40px;max-height:40px;object-fit:contain}

.chip{display:inline-block;font-size:12px;font-weight:700;padding:2px 9px;border-radius:20px;margin:1px 2px 1px 0}
.chip-escudo{background:var(--dexa-marino);color:#fff}
.chip-gestor{background:var(--dexa-celeste);color:var(--dexa-petroleo)}
.chip-edilicia{background:var(--dexa-medio);color:#fff}
.chip-gris{background:var(--fondo);color:var(--suave);font-weight:400}
.estado{display:inline-block;font-size:12px;font-weight:700;padding:2px 9px;border-radius:20px;white-space:nowrap}
.estado-ok{background:var(--ok-fondo);color:var(--ok)}
.estado-off{background:var(--fondo);color:var(--suave)}
.estado-aviso{background:var(--aviso-fondo);color:var(--aviso)}
.estado-alerta{background:var(--error-fondo);color:var(--error)}
.estado-info{background:var(--info-fondo);color:var(--dexa-marino)}

.ficha-cabeza{display:flex;align-items:center;gap:14px}
.ficha-logo{width:72px;height:72px;border:1px solid var(--borde);border-radius:12px;display:grid;place-items:center;background:#fff;color:var(--dexa-gris);overflow:hidden;flex:none}
.ficha-logo img{max-width:66px;max-height:66px;object-fit:contain}
.ficha-sub{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;font-size:13px;color:var(--suave)}

.pestanas{display:flex;gap:4px;border-bottom:2px solid var(--borde);margin:20px 0 18px;overflow-x:auto}
.pestanas a{padding:10px 16px;text-decoration:none;color:var(--suave);font-weight:700;font-size:14px;border-bottom:3px solid transparent;margin-bottom:-2px;white-space:nowrap}
.pestanas a:hover{color:var(--dexa-marino)}
.pestanas a.activa{color:var(--dexa-marino);border-bottom-color:var(--dexa-celeste)}

.formulario fieldset{border:1px solid var(--borde);border-radius:10px;padding:14px 18px 18px;margin:0 0 16px}
.formulario legend{font-weight:700;color:var(--dexa-petroleo);padding:0 6px}
.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 16px}
.form-grid > label,.form-grid > .campo{grid-column:span 2}
.form-grid .col-2{grid-column:span 2}
.form-grid > *,.dos-columnas > *,.tablero > *{min-width:0}
.formulario input,.formulario select{max-width:100%;min-width:0}
@media (min-width:1100px){.form-grid > label,.form-grid > .campo{grid-column:span 1}.form-grid .col-2{grid-column:span 2}}
.formulario label{margin:10px 0 0}
.formulario label > input,.formulario label > select{display:block;margin-top:6px;width:100%}
.formulario input[type=checkbox],.formulario input[type=radio]{display:inline-block;width:auto;margin:0;flex:none;accent-color:var(--dexa-marino)}
.formulario input[type=email],.formulario input:not([type]),.formulario input[type=date],.formulario input[type=number],.formulario input[type=url]{width:100%;padding:10px 12px;border:1px solid var(--borde);border-radius:8px;font:inherit;font-size:15px}
.campo{margin-top:10px}
.campo-etiqueta{display:block;font-weight:700;font-size:14px;color:var(--dexa-petroleo);margin-bottom:6px}
.campo-ayuda{display:block;color:var(--suave);font-size:12px;margin-top:4px;font-weight:400}
.campo-error{display:block;color:var(--error);font-size:12px;font-weight:700;margin-top:4px}
.opciones{display:flex;gap:18px;flex-wrap:wrap}
.opciones .casilla{margin:0}
.acciones{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:8px}
.acciones .boton-principal{margin-top:0}
.form-linea{margin-top:10px}

.carga-logo{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.vista-logo{width:180px;height:90px;border:1px dashed var(--borde);border-radius:10px;display:grid;place-items:center;background:
  repeating-conic-gradient(#F3F5F8 0% 25%, #fff 0% 50%) 50% / 16px 16px;color:var(--suave);font-size:13px;overflow:hidden}
.vista-logo img{max-width:170px;max-height:80px;object-fit:contain}

.dos-columnas{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:20px;align-items:start}
.caja-form{border:1px solid var(--borde);border-radius:10px;padding:16px 18px;background:#FAFCFE}
.caja-form h3{margin:0 0 4px;font-size:16px;color:var(--dexa-petroleo)}
.lista-contactos{list-style:none;margin:0;padding:0;border:1px solid var(--borde);border-radius:10px}
.lista-contactos li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--borde)}
.lista-contactos li:last-child{border-bottom:0}
.lista-contactos small{display:block;color:var(--suave);font-size:13px;margin-top:3px}
.lista-contactos a{color:var(--dexa-medio)}
.lista-acciones{display:flex;gap:12px;align-items:center;flex:none}
.lista-acciones form{margin:0}

/* ---- Obras ---- */
.enlace-fila{color:var(--dexa-marino);text-decoration:none}
.enlace-fila:hover{text-decoration:underline}
.enlace-suave{color:var(--dexa-medio);text-decoration:none}
.enlace-suave:hover{text-decoration:underline}
.nivel-mini{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;font-size:11px;font-weight:700;margin-right:2px}
.nivel-vacio{background:var(--fondo);color:var(--dexa-gris);border:1px dashed var(--borde)}
.alta-rapida{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px;padding:10px;border:1px dashed var(--dexa-celeste);border-radius:8px;background:#F5FBFE}
.con-boton{display:flex;gap:8px;margin-top:6px}
.con-boton input{flex:1;min-width:0}
.con-boton .boton{margin:0;white-space:nowrap}
.niveles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:14px;margin-bottom:10px}
.nivel-caja{border:1px solid var(--borde);border-top:4px solid var(--dexa-gris);border-radius:10px;padding:14px 16px;background:#fff}
.nivel-caja-a{border-top-color:var(--dexa-petroleo)}
.nivel-caja-b{border-top-color:var(--dexa-medio)}
.nivel-caja-c{border-top-color:var(--dexa-celeste)}
.nivel-caja header{display:flex;align-items:center;gap:8px;color:var(--dexa-petroleo)}
.nivel-caja header .nivel{margin:0}
.nivel-empresa{font-size:17px;font-weight:700;margin:12px 0 2px}
.nivel-vacio-texto{color:var(--suave);font-style:italic;margin:12px 0 4px}
.en-linea{display:flex;align-items:center;gap:8px;font-weight:400;font-size:13px;margin:8px 0}
.en-linea input{width:auto;padding:6px 8px;border:1px solid var(--borde);border-radius:6px;font:inherit}
.nivel-caja .formulario label{margin-top:8px}
.nivel-caja .boton-ancho{margin-top:12px}

/* ---- Usuarios ---- */
.mini-avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,var(--dexa-medio),var(--dexa-marino));
  color:#fff;font-weight:700;font-size:14px;flex:none;overflow:hidden}
.mini-avatar img{width:100%;height:100%;object-fit:cover}
.ficha-avatar{border-radius:50%;background:linear-gradient(145deg,var(--dexa-medio),var(--dexa-marino));color:#fff;font-size:24px;font-weight:700;border:0}
.ficha-avatar img{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover}
.vista-foto{width:110px;height:110px;border-radius:50%}
.vista-foto img{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover}
.credenciales{border:2px solid #25D366;background:#F1FCF5;border-radius:12px;padding:16px 18px;margin:0 0 20px}
.credenciales h3{display:flex;align-items:center;gap:8px;margin:0 0 4px;color:var(--dexa-petroleo);font-size:16px}
.credenciales .datos{margin:12px 0}
.clave-temporal{font-family:ui-monospace,Consolas,monospace;font-size:20px;letter-spacing:2px;color:var(--dexa-marino)}
.mensaje-credenciales{width:100%;font:inherit;font-size:13px;border:1px solid var(--borde);border-radius:8px;padding:10px;background:#fff;resize:vertical;margin-bottom:6px}
.credenciales .boton-whatsapp{display:inline-flex;width:auto;padding:11px 16px}
.lista-asignacion{display:flex;flex-direction:column;border:1px solid var(--borde);border-radius:10px;overflow:hidden;margin-top:6px}
.fila-asignacion{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--borde);margin:0;font-weight:400;background:#fff}
.fila-asignacion:last-child{border-bottom:0}
.fila-asignacion small{display:block;color:var(--suave);font-size:12px}
label.fila-asignacion{justify-content:flex-start;cursor:pointer}
label.fila-asignacion:hover{background:#FAFCFE}
.fila-asignacion select{max-width:260px}
.datos-acceso{margin-bottom:16px}
.acciones-acceso form{margin:0 0 14px}
.acciones-acceso .boton-ancho{display:flex;justify-content:center;align-items:center;gap:6px;margin-top:0}
.texto-alerta{color:var(--error)}
.lista-registro{list-style:none;margin:0;padding:0;font-size:13px}
.lista-registro li{padding:6px 0;border-bottom:1px solid var(--borde)}
.lista-registro small{display:block;color:var(--suave)}
.alerta-enlace{display:inline-block;margin-top:10px;font-size:13px;font-weight:700;color:var(--dexa-medio);text-decoration:none}
.alerta-enlace:hover{text-decoration:underline}
.tarjeta-perfil{max-width:820px;margin:0 auto}
.perfil-edicion{display:grid;grid-template-columns:220px 1fr;gap:28px;margin-top:20px;align-items:start}
.perfil-foto-caja{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.perfil-foto-caja .perfil-avatar{width:150px;height:150px;font-size:48px;margin:0}
.perfil-datos .perfil-nombre{text-align:left;margin-top:0}

/* ---- Configuración ---- */
.en-fila{display:inline;margin:0 0 0 10px}
.filtros .boton{margin-top:0;text-decoration:none}

/* ---- Registro ---- */
.solo-impresion{display:none}
.filtros-registro label{display:flex;align-items:center;gap:6px;margin:0;font-size:13px;color:var(--suave);font-weight:700}
.filtros-registro input[type=date]{padding:9px 10px;border:1px solid var(--borde);border-radius:8px;font:inherit}
.filtros-registro input[type=search]{flex:1 1 160px}
.filtros-registro input.corto{flex:0 1 120px}
.filtros-registro .boton{margin-top:0}
.atajos-periodo{font-size:13px;color:var(--suave);margin:0 0 12px;display:flex;gap:12px;flex-wrap:wrap}
.atajos-periodo a{color:var(--dexa-medio)}
.resumen-registro div.kpi-aviso{border-color:#F3D27A;background:var(--aviso-fondo)}
.resumen-registro div.kpi-alerta{border-color:#F1B5AF;background:var(--error-fondo)}
.resumen-registro div.kpi-alerta strong{color:var(--error)}
.evento{display:inline-block;font-size:12px;font-weight:700;padding:2px 9px;border-radius:20px;white-space:nowrap}
.evento-ok{background:var(--ok-fondo);color:var(--ok)}
.evento-neutro{background:var(--info-fondo);color:var(--dexa-petroleo)}
.evento-aviso{background:var(--aviso-fondo);color:var(--aviso)}
.evento-alerta{background:var(--error-fondo);color:var(--error)}
.tabla-registro td{vertical-align:top}
.celda-cambios{font-size:13px;min-width:220px}
.celda-cambios div{margin-bottom:2px}
.valor-antes{color:var(--error);text-decoration:line-through;text-decoration-color:rgba(180,35,24,.4)}
.valor-despues{color:var(--ok);font-weight:700}
.tabla-cambios .valor-antes,.tabla-cambios .valor-despues{text-decoration:none}
.tabla-cambios td.valor-antes{background:#FFF7F6}
.tabla-cambios td.valor-despues{background:#F4FBF6}
.tabla-compacta td,.tabla-compacta th{padding:7px 10px}
.fila-alerta td{background:var(--error-fondo)}
.detalle-cambio h2{display:flex;align-items:center;gap:10px;font-size:20px;color:var(--dexa-petroleo);margin:6px 0}
.detalle-descripcion{font-size:16px;margin:0 0 16px}
code.sello{display:block;font-family:ui-monospace,Consolas,monospace;font-size:12px;word-break:break-all;background:#F5F8FC;border:1px solid var(--borde);border-radius:6px;padding:6px 8px;color:var(--dexa-petroleo)}
.grafico-barras{max-width:100%;min-width:0;display:flex;align-items:flex-end;gap:3px;height:180px;padding:10px 6px 0;border:1px solid var(--borde);border-radius:10px;overflow-x:auto;background:#FCFDFE}
.barra-col{flex:1 0 18px;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end;gap:4px;min-width:18px}
.barra-pila{width:70%;max-width:28px;display:flex;flex-direction:column;border-radius:4px 4px 0 0;overflow:hidden;min-height:0}
.barra-col small{font-size:10px;color:var(--suave);white-space:nowrap;padding-bottom:4px}
.b-ingresos{background:var(--dexa-marino)}
.b-aperturas{background:var(--dexa-celeste)}
.b-fallidos{background:#E0A526}
.leyenda{font-size:12px;color:var(--suave);display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:8px 0 20px}
.leyenda span{display:inline-block;width:12px;height:12px;border-radius:3px}
.dos-iguales{grid-template-columns:repeat(2,minmax(0,1fr))}
.dos-iguales > section{overflow-x:auto;min-width:0}
.integridad{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));gap:16px;margin-bottom:20px}
.integridad-caja{border:2px solid var(--borde);border-radius:12px;padding:16px 18px}
.integridad-caja h3{display:flex;align-items:center;gap:8px;margin:0 0 6px;color:var(--dexa-petroleo)}
.integridad-ok{border-color:#9ED5AE;background:#F4FBF6}
.integridad-ok h3 .icono{color:var(--ok)}
.integridad-alerta{border-color:#F1B5AF;background:#FFF7F6}
.integridad-alerta h3 .icono{color:var(--error)}
.integridad-estado{font-weight:700;margin:0 0 12px}
.integridad .datos{margin-bottom:10px}
.pasos-auditoria{margin:0;padding-left:20px;line-height:1.6}
.paginacion{display:flex;justify-content:center;align-items:center;gap:18px;margin-top:16px;font-size:14px}
.paginacion a{color:var(--dexa-medio);font-weight:700;text-decoration:none}

/* ---- Impresión / PDF (informes de trazabilidad) ---- */
@media print{
  @page{size:A4 landscape;margin:12mm}
  body{background:#fff;font-size:11px}
  .barra,.lateral,.pie,.no-imprimir,.mensaje{display:none !important}
  .app{display:block}
  .contenido{padding:0;max-width:none}
  .tarjeta{border:0;box-shadow:none;padding:0}
  .solo-impresion{display:block}
  .informe-cabeza{display:flex;gap:16px;align-items:flex-start;border-bottom:2px solid var(--dexa-petroleo);padding-bottom:10px;margin-bottom:12px}
  .informe-cabeza img{width:150px}
  .informe-cabeza h1{font-size:16px;margin:0 0 4px;color:var(--dexa-petroleo)}
  .informe-cabeza p{margin:2px 0}
  .informe-sello code{font-size:9px}
  .tabla-envoltura{overflow:visible;border:0}
  .tabla{font-size:10px}
  .tabla th,.tabla td{padding:4px 6px}
  tr{page-break-inside:avoid}
  .grafico-barras{height:130px}
  a{color:inherit;text-decoration:none}
}

/* ---- Accesos directos ---- */
.acceso-icono-wa{background:#E7F8EE;color:#1EBE5A}
.acceso-fila{display:flex;gap:12px;align-items:flex-start}
.lista-accesos small{display:block}
.acceso-visible{display:flex !important;align-items:center;gap:4px;color:var(--dexa-medio) !important}
.selector-iconos{display:grid;grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:6px}
.selector-iconos label{margin:0;cursor:pointer}
.selector-iconos input{position:absolute;opacity:0;width:1px;height:1px}
.selector-iconos span{display:grid;place-items:center;height:42px;border:1px solid var(--borde);border-radius:8px;background:#fff;color:var(--dexa-petroleo)}
.selector-iconos input:checked + span{border:2px solid var(--dexa-marino);background:var(--info-fondo);color:var(--dexa-marino)}
.selector-iconos input:focus-visible + span{outline:3px solid rgba(48,169,217,.35)}
.visibilidad{border:1px solid var(--borde);border-radius:8px;padding:10px 12px;margin-top:14px;background:#fff}
.visibilidad summary{cursor:pointer;font-weight:700;color:var(--dexa-petroleo)}
.visibilidad summary small{font-weight:400;color:var(--suave)}
.visibilidad legend{font-weight:700;color:var(--dexa-petroleo);padding:0 4px}
.opciones-modo{display:flex;flex-direction:column;gap:4px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px dashed var(--borde)}
.opciones-modo small{color:var(--suave)}
.visibilidad[data-modo="TODOS"] .modo-asignados,.visibilidad[data-modo="ASIGNADOS"] .modo-todos{display:none}
.modo-asignados .campo-etiqueta{display:block;margin-bottom:6px}

/* ---------- Módulos ---------- */
.grilla-modulos{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:14px}
.modulo-tarjeta{border:1px solid var(--borde);border-radius:10px;padding:14px;background:#fff;display:flex;flex-direction:column;gap:8px;min-width:0}
.modulo-tarjeta.contratado{border-color:var(--dexa-celeste);box-shadow:0 0 0 2px rgba(48,169,217,.15)}
.modulo-cabeza{display:flex;align-items:center;gap:10px}
.modulo-cabeza .acceso-icono{flex:none}
.modulo-cabeza strong{display:block;color:var(--dexa-petroleo)}
.modulo-tarjeta p{margin:0;font-size:13px;color:var(--suave)}
.modulo-tarjeta .form-grid{grid-template-columns:1fr 1fr}
.modulo-tarjeta .historial{font-size:12px;color:var(--suave)}

/* ---------- Accesos del usuario ---------- */
.tabla-accesos .acceso-fila{display:flex;align-items:center;gap:8px;min-width:160px}
.tabla-accesos .acceso-icono{width:30px;height:30px}
.opciones-grilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:4px 12px}
.opciones-grilla .casilla{font-size:13px}

/* =====================================================================
   Celular y tablet
   ===================================================================== */
@media (max-width:900px){
  .tablero{grid-template-columns:1fr}
  .dos-columnas,.dos-iguales{grid-template-columns:1fr}
  .col-principal{order:-1}
  .marca{font-size:28px;letter-spacing:3px}
}
@media (max-width:700px){
  .barra-menu{display:inline-flex}
  .app{grid-template-columns:1fr}
  .lateral{display:none;position:fixed;top:57px;left:0;bottom:0;width:200px;z-index:20;box-shadow:4px 0 20px rgba(0,0,0,.15)}
  .lateral.abierto{display:flex}
  .lateral a,.lateral button,.lateral-proximo{flex-direction:row;justify-content:flex-start;gap:12px;padding:12px 18px;font-size:15px}
  .barra-nombre span,.barra-nombre{font-size:13px}
  .barra-marca span{display:none}
  .seccion{padding:16px}
  .contenido{padding:14px 12px}
}
@media (max-width:600px){
  .filtros-registro label{flex:1 1 140px;min-width:0}
  .filtros-registro > *{max-width:100%}
  .barra-col{flex:1 0 14px;min-width:14px}
  .barra-col small{font-size:9px}
  .filtros-registro input[type=date]{flex:1;min-width:0;width:100%}
  .form-grid{grid-template-columns:1fr}
  .form-grid > label,.form-grid > .campo,.form-grid .col-2{grid-column:1 / -1}
  .formulario fieldset{padding:12px 12px 14px}
  .ficha-cabeza{gap:10px}
  .ficha-logo{width:56px;height:56px}
  .titulo-pagina{font-size:20px}
  .lista-contactos li{flex-direction:column;align-items:flex-start}
  .alta-rapida{grid-template-columns:1fr}
  .perfil-edicion{grid-template-columns:1fr}
  .fila-asignacion{flex-direction:column;align-items:flex-start}
  .fila-asignacion select{max-width:100%;width:100%}
  .con-boton{flex-direction:column}
}
@media (max-width:420px){
  .barra-nombre{display:none}
}

/* ---------- Google Drive (conexión por empresa) ---------- */
.tarjeta-drive{border:1px solid var(--borde);border-radius:10px;padding:16px;background:#fff;min-width:0}
.drive-cabeza{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.drive-cabeza strong{display:block;color:var(--dexa-petroleo);word-break:break-all}
.datos-lista{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:0 0 14px;font-size:14px}
.datos-lista dt{color:var(--suave)}
.datos-lista dd{margin:0;word-break:break-word}
.barra-espacio{height:8px;border-radius:4px;background:var(--fondo);overflow:hidden;margin:2px 0 4px;max-width:260px}
.barra-espacio span{display:block;height:100%;background:var(--dexa-celeste)}
.barra-espacio.alerta span{background:var(--error)}
.pasos-cortos{margin:6px 0 10px;padding-left:20px;font-size:13px;color:var(--suave)}
.pasos-cortos li{margin-bottom:4px}
.lista-simple{margin:0;padding-left:20px;font-size:14px}
.tarjeta-drive .acciones{display:flex;gap:8px;flex-wrap:wrap}
.codigo-copiar{display:flex;gap:6px;align-items:center;min-width:0}
.codigo-copiar code{flex:1;min-width:0;overflow-x:auto;white-space:nowrap;background:var(--fondo);padding:8px 10px;border-radius:6px;font-size:12px}
@media (max-width:560px){.datos-lista{grid-template-columns:1fr}.datos-lista dt{font-weight:700}}
.formulario + .subtitulo,.tabla-envoltura + .subtitulo,p.conteo + .subtitulo,.mensaje + .subtitulo{margin-top:28px}

/* ---------- Ingeniería ---------- */
.acceso-proximo{opacity:.55;cursor:default}
.acciones-cabeza{display:flex;gap:8px;flex-wrap:wrap}
.barra-resultados{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.barra-resultados .conteo{margin:0}
.filtros input.corto{max-width:120px}
.gris{color:var(--suave)}
.ing-resumen{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ing-resumen li{display:inline-flex}
.tabla-docs td{vertical-align:top}
.tabla-docs small.bloque{color:var(--suave)}
.fila-error td{background:var(--error-fondo)}
.ing-ficha{align-items:start}
.lista-revisiones{list-style:none;margin:0 0 14px;padding:0;border:1px solid var(--borde);border-radius:10px;background:#fff}
.lista-revisiones > li{padding:10px 12px;border-bottom:1px solid var(--borde)}
.lista-revisiones > li:last-child{border-bottom:0}
.rev-cabeza{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin-bottom:6px}
.rev-cabeza small{color:var(--suave)}
.rev-codigo{font-weight:700;color:var(--dexa-petroleo);font-size:15px}
.rev-archivo{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:3px 0;min-width:0}
.rev-archivo a{word-break:break-all}
.rev-archivo small{color:var(--suave)}
.rev-archivo.inactiva{opacity:.55}
.rev-reemplazar{margin-top:6px;font-size:13px}
.rev-reemplazar summary{cursor:pointer;color:var(--dexa-medio)}
.rev-reemplazar .form-linea{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:6px}
.cambio-estado{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;margin:14px 0}
.cambio-estado label{display:flex;flex-direction:column;font-weight:700;font-size:13px;color:var(--dexa-petroleo)}
.lista-historial{list-style:none;margin:0;padding:0;font-size:13px}
.lista-historial li{padding:6px 0;border-bottom:1px dashed var(--borde)}
.lista-historial small{display:block;color:var(--suave)}
.subiendo{color:var(--dexa-medio);font-weight:700}
.pasos-carga{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:14px;margin-bottom:20px}
.pasos-carga section{border:1px solid var(--borde);border-radius:10px;padding:16px;background:#fff;position:relative;min-width:0}
.pasos-carga h3{margin:4px 0 8px;color:var(--dexa-petroleo)}
.pasos-carga p{font-size:14px;color:var(--suave)}
.pasos-carga input[type=file]{max-width:100%;margin-bottom:10px}
.paso-num{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--dexa-marino);color:#fff;font-weight:700}
.confirmar-carga{margin-top:16px;max-width:640px}
.informe-cabeza small{display:block;color:#555;margin-top:2px}
.filtros select,.filtros input{max-width:100%;min-width:0}
.ing-ficha{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
.ing-ficha .caja-form .form-grid{grid-template-columns:1fr 1fr}
.ing-ficha .caja-form .col-2{grid-column:1/-1}
.ing-ficha .caja-form input[type=file]{max-width:100%}
@media (max-width:900px){.ing-ficha{grid-template-columns:1fr}}
.ing-ficha > form .form-grid{grid-template-columns:repeat(auto-fill,minmax(min(210px,100%),1fr))}
a.boton,a.boton:hover{text-decoration:none}
.obra-datos.ing-resumen{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-start;padding:0;margin:10px 0 14px}
.obra-datos.ing-resumen li{margin:0}

/* ---------- Tablero de Ingeniería (inicio) ---------- */
.titulo-seccion{display:flex;align-items:center;gap:8px;margin:0;font-size:18px;color:var(--dexa-petroleo)}
.filtro-obra select{max-width:100%}
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(140px,100%),1fr));gap:10px;margin:12px 0 16px}
.kpi{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:10px;border:1px solid var(--borde);background:#fff;text-decoration:none;color:var(--texto);border-left:4px solid var(--gris-claro, #ccc);min-width:0}
.kpi:hover{box-shadow:0 2px 8px rgba(10,37,80,.12)}
.kpi strong{font-size:26px;line-height:1.1;color:var(--dexa-petroleo)}
.kpi span{font-size:12px;color:var(--suave)}
.kpi-total{border-left-color:var(--dexa-petroleo)}
.kpi-off{border-left-color:#A6A6A6}
.kpi-info{border-left-color:var(--dexa-celeste)}
.kpi-aviso{border-left-color:#E0A100}
.kpi-alerta{border-left-color:var(--error)}
.kpi-alerta strong{color:var(--error)}
.kpi-ok{border-left-color:#1E8E4E}
.kpi-ok strong{color:#1E8E4E}
.avance{margin-bottom:14px}
.avance-texto{font-size:14px;color:var(--suave);margin-bottom:6px}
.avance-texto strong{color:var(--dexa-petroleo);font-size:16px}
.avance-barra,.mini-barra{height:10px;border-radius:5px;background:var(--fondo);overflow:hidden}
.avance-barra span,.mini-barra span{display:block;height:100%;background:linear-gradient(90deg,var(--dexa-medio),var(--dexa-celeste))}
.mini-barra{height:7px;display:inline-block;width:calc(100% - 46px);vertical-align:middle;margin-right:6px}
.tabla-esp{margin-bottom:14px}
.tabla-esp td small{color:var(--suave)}
.boton-pdf{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:6px;background:var(--dexa-marino);color:#fff;font-size:12px;font-weight:700;text-decoration:none;white-space:nowrap}
.boton-pdf:hover{background:var(--dexa-medio);color:#fff}
.tabla-roles select{min-width:150px;max-width:100%}
.tabla-roles select.con-rol{border-color:var(--dexa-celeste);background:#eef8fd;font-weight:700}
.tabla-roles th small{font-weight:400}
.tabla-roles select,.filtro-obra select{padding:7px 10px;border:1px solid var(--borde);border-radius:8px;font:inherit;font-size:14px;background:#fff;color:var(--texto)}

/* ---------- Ingeniería · emisión y firma del cliente ---------- */
.aviso-firma{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;margin-bottom:14px;border-radius:10px;background:#fff7e0;border:1px solid #f0d78a;color:var(--texto);text-decoration:none}
.aviso-firma span:nth-child(2){flex:1;min-width:200px}
.aviso-firma .icono{color:#b58100}
.devolucion{margin:8px 0 4px;padding:8px 10px;border-left:3px solid var(--dexa-celeste);background:var(--fondo);border-radius:0 8px 8px 0;font-size:13px}
.devolucion small{display:block;color:var(--suave);margin-top:3px}
.devolucion p{margin:6px 0}
.caja-firma{border:2px solid #f0d78a;background:#fffbef;margin-bottom:16px}
.caja-firma .casilla{display:flex;margin:4px 0}
.caja-firma textarea{width:100%}
.caja-emitir{margin-top:14px;padding:14px 16px;border:1px solid var(--borde);border-radius:10px;background:var(--fondo)}
.caja-emitir h3{margin:0 0 6px;color:var(--dexa-petroleo);display:flex;align-items:center;gap:6px}
.form-linea{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.form-linea label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:700;color:var(--dexa-petroleo)}
.form-linea label.crece{flex:1;min-width:200px}
.form-linea input,.form-linea select{padding:8px 10px;border:1px solid var(--borde);border-radius:8px;font:inherit;font-weight:400;max-width:100%}
.tr-cabeza{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:flex-start;margin-bottom:10px}
.tr-logo{max-height:56px;max-width:180px;display:block;margin-bottom:8px}
.tr-sub{margin:4px 0 0;color:var(--suave)}
.tr-datos{max-width:900px}
.tr-firmas{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin:40px 0 10px}
.tr-firmas div{border-top:1px solid #333;padding-top:6px;display:flex;flex-direction:column}
.tr-firmas span{font-size:12px;color:#555}
.tr-firmas.solo-impresion{display:none}
@media print{.tr-firmas.solo-impresion{display:grid}.caja-firma,.caja-emitir{display:none}}
/* Filtro rápido "Listos para emitir" (listado de documentos) */
.boton-emitir-rapido{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--ok);color:var(--ok);background:var(--ok-fondo);text-decoration:none;white-space:nowrap}
.boton-emitir-rapido:hover{background:var(--ok);color:#fff}
.boton-emitir-rapido .contador{display:inline-block;min-width:22px;padding:1px 7px;border-radius:999px;background:var(--ok);color:#fff;font-size:.82em;text-align:center}
.boton-emitir-rapido:hover .contador{background:#fff;color:var(--ok)}
.boton-emitir-rapido.activo{background:var(--ok);color:#fff}
.boton-emitir-rapido.activo .contador{background:#fff;color:var(--ok)}
/* Plazos de respuesta del cliente, firmas pendientes y tableros */
.formulario textarea{width:100%;padding:10px 12px;border:1px solid var(--borde);border-radius:8px;font:inherit;font-size:14px;resize:vertical}
.formulario textarea.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px;line-height:1.6}
.boton-chico{padding:6px 12px;font-size:13px;border-radius:6px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;text-decoration:none;margin:0}
.acciones-fila{display:flex;align-items:center;gap:8px;justify-content:flex-end;flex-wrap:nowrap}
.tabla-firmas .col-acciones{text-align:right;width:1%;white-space:nowrap}
.tabla-firmas tr.fila-vencida td{background:var(--error-fondo)}
.texto-suave{color:var(--suave)}
.pie-tarjeta{display:flex;justify-content:flex-end;margin-top:14px}
.pie-tarjeta .boton{margin:0;text-decoration:none;display:inline-flex;align-items:center}
.subtitulo-chico{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--dexa-petroleo);margin:18px 0 6px}
.lista-pendientes{list-style:none;margin:0;padding:0;font-size:13px}
.lista-pendientes li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px dashed var(--borde)}
.lista-pendientes li > div{min-width:0}
.lista-pendientes small.bloque{color:var(--suave);overflow-wrap:anywhere}
.lista-pendientes .estado{flex:none;white-space:nowrap}
.plazo-linea{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0 10px}
.tabla-plazos td{vertical-align:middle}
.tabla-plazos input[type=number]{width:110px}
.tabla-plazos select{min-width:240px}
.tabla-firmas td:nth-child(2){min-width:200px}
.tabla-firmas td:first-child strong{overflow-wrap:anywhere}
/* Revisión final con el PDF aprobado por el cliente */
.rev-final{margin-top:10px}
.rev-final > summary{list-style:none;cursor:pointer;display:inline-flex}
.rev-final > summary::-webkit-details-marker{display:none}
.rev-final[open] > summary{margin-bottom:8px}
.rev-final .formulario{background:#fff;border:1px solid var(--borde);border-radius:8px;padding:12px}
.rev-final .form-grid{grid-template-columns:1fr 1fr}
.rev-final .form-grid .col-2{grid-column:1/-1}
/* Transmittal: empresas involucradas con sus logos */
.tr-empresas{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 16px;padding-bottom:14px;border-bottom:2px solid var(--dexa-petroleo)}
.tr-empresa{flex:1 1 180px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:10px;border:1px solid var(--borde);border-radius:10px;min-width:0}
.tr-empresa img{max-height:52px;max-width:160px;object-fit:contain}
.tr-sin-logo{display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:10px;background:var(--fondo);color:var(--suave)}
.tr-empresa strong{font-size:14px;color:var(--dexa-petroleo);overflow-wrap:anywhere}
.tr-empresa small{font-size:12px;color:var(--suave)}
.tr-rol{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--dexa-medio)}
.tr-tipo{margin:0 0 2px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--dexa-medio)}
@media print{.tr-empresas{break-inside:avoid}.tr-empresa{border-color:#999}}
/* Ingeniería externa */
.boton-tercero{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--dexa-medio);color:var(--dexa-medio);background:#fff;text-decoration:none;white-space:nowrap}
.boton-tercero:hover,.boton-tercero.activo{background:var(--dexa-medio);color:#fff}
.caja-tercero{border-color:var(--dexa-medio)}
.caja-externa{margin:14px 0;padding:12px 14px;border:1px solid var(--dexa-medio);border-radius:10px;background:#F4F8FD}
.caja-externa h3{margin:0 0 8px;display:flex;align-items:center;gap:6px;color:var(--dexa-petroleo);font-size:15px}
.encargo-item{padding:10px 0;border-top:1px dashed var(--borde)}
.encargo-item:first-of-type{border-top:0}
.encargo-cabeza{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.encargo-nota{margin:6px 0;font-size:13px}
.auditoria-acciones{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.encargo-cerrar{margin-top:6px;gap:8px}
.encargo-cerrar input{flex:1;min-width:0;padding:6px 10px;border:1px solid var(--borde);border-radius:6px;font:inherit;font-size:13px}
/* Cajas de transmittal (devolución, envío y entrega): campos */
.caja-emitir .form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;margin-top:8px}
.caja-emitir .form-grid > label{grid-column:span 1;display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:700;color:var(--dexa-petroleo)}
.caja-emitir .form-grid > label.col-2{grid-column:1/-1}
.caja-emitir select,.caja-emitir input[type=date],.caja-emitir input:not([type]){width:100%;padding:9px 11px;border:1px solid var(--borde);border-radius:8px;font:inherit;font-size:14px;background:#fff;color:var(--texto)}
@media (max-width:700px){.caja-emitir .form-grid{grid-template-columns:1fr}}
