/* ============================================================
   Zona de clientes y panel de gestión · complementa a styles.css
   ============================================================ */
.portal-cargando { text-align: center; color: var(--texto-3); padding: 80px 0; font-size: .95rem; }
.portal-cargando::before { content: ''; display: block; width: 34px; height: 34px; margin: 0 auto 14px; border-radius: 50%; border: 3px solid var(--linea); border-top-color: var(--marino); animation: girar 0.8s linear infinite; }
@keyframes girar { to { transform: rotate(360deg); } }

.aviso { border-radius: 10px; padding: 12px 15px; font-size: .9rem; margin-bottom: 18px; line-height: 1.5; }
.aviso:empty { display: none; }
.aviso.error { background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; }
.aviso.ok { background: #f0fdf4; border: 1px solid #bbf7d0; color: #166534; }
.aviso.info { background: #eff6ff; border: 1px solid #bfdbfe; color: #1e3a8a; }

.campo-clave { position: relative; }
.campo-clave input { padding-right: 92px; }
.ver-clave { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); background: none; border: 0; font: inherit; font-size: .8rem; font-weight: 700; color: var(--marino-2); cursor: pointer; padding: 6px 8px; }
.enlace-boton { background: none; border: 0; padding: 0; font: inherit; color: var(--acento); font-weight: 600; cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.requisitos { display: grid; gap: 4px; margin: -8px 0 18px; font-size: .82rem; color: var(--texto-3); }
.requisitos li { padding-left: 22px; position: relative; }
.requisitos li::before { content: '○'; position: absolute; left: 4px; }
.requisitos li.ok { color: #166534; }
.requisitos li.ok::before { content: '✓'; font-weight: 800; }
.usuario-fijo { background: var(--fondo-2); border: 1px solid var(--linea); border-radius: 10px; padding: 11px 14px; font-size: .92rem; margin-bottom: 20px; color: var(--texto-2); }
.usuario-fijo b { color: var(--tinta); }

/* ---------- Panel del cliente ---------- */
.portal-cabecera h1 span { color: var(--marino-2); }
.planta-grupo + .planta-grupo { margin-top: 14px; }
.planta-grupo > h4 { font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; color: var(--texto-3); margin: 0 0 8px; font-weight: 800; }
.informe-item .acciones-informe { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.informe-item .valorar { font-size: .8rem; }
.informes-vacio { padding: 18px; border: 1px dashed var(--linea-2); border-radius: 10px; color: var(--texto-3); font-size: .9rem; background: var(--fondo-2); margin-top: 14px; }
.btn[aria-disabled="true"] { opacity: .55; pointer-events: none; }

/* ---------- Ventanas (encuesta, cambiar contraseña, nuevo cliente) ---------- */
.modal { position: fixed; inset: 0; z-index: 200; background: rgba(11, 31, 51, .55); display: grid; place-items: center; padding: 18px; overflow-y: auto; }
.modal[hidden] { display: none !important; }
.modal-caja { position: relative; background: #fff; border-radius: var(--radio-lg); box-shadow: var(--sombra-l); width: 100%; max-width: 560px; padding: 30px 30px 26px; max-height: calc(100vh - 36px); overflow-y: auto; }
.modal-caja h2 { font-size: 1.35rem; margin-bottom: 6px; padding-right: 30px; }
.modal-caja .sub { font-size: .92rem; margin-bottom: 20px; color: var(--texto-2); }
.modal-cerrar { position: absolute; top: 14px; right: 14px; width: 36px; height: 36px; border-radius: 50%; border: 0; background: var(--fondo-2); font-size: 1.3rem; line-height: 1; cursor: pointer; color: var(--texto-2); }
.modal-cerrar:hover { background: var(--fondo-3); }
.modal-botones { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 6px; }
@media (max-width: 560px) { .modal-caja { padding: 24px 20px 20px; } .modal-botones .btn { width: 100%; } }

.enc-bloque { border: 1px solid var(--linea); border-radius: 12px; padding: 16px 18px 4px; margin-bottom: 14px; }
.enc-bloque.privado { background: var(--fondo-2); }
.enc-tag { display: inline-block; font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; padding: 3px 8px; border-radius: 4px; margin-bottom: 12px; background: #eef3f9; color: var(--marino-2); }
.enc-bloque.privado .enc-tag { background: #fff; border: 1px solid var(--linea-2); color: var(--texto-2); }
.estrellas { display: inline-flex; flex-direction: row-reverse; gap: 4px; margin-bottom: 16px; }
.estrellas input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.estrellas label { font-size: 2.1rem; line-height: 1; color: #d6dde6; cursor: pointer; transition: color .1s, transform .1s; }
.estrellas label:hover, .estrellas label:hover ~ label, .estrellas input:checked ~ label { color: #f59e0b; }
.estrellas input:focus-visible + label { outline: 2px solid var(--marino-2); outline-offset: 2px; border-radius: 4px; }
.opciones { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }
.opciones input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.opciones label { border: 1px solid var(--linea-2); background: #fff; border-radius: 99px; padding: 7px 16px; font-size: .88rem; cursor: pointer; font-weight: 600; color: var(--texto-2); }
.opciones input:checked + label { background: var(--marino); border-color: var(--marino); color: #fff; }
.opciones input:focus-visible + label { outline: 2px solid var(--marino-2); outline-offset: 2px; }
.pregunta { display: block; font-size: .88rem; font-weight: 650; color: var(--texto); margin-bottom: 8px; }
.enc-bloque .campo textarea { min-height: 80px; }
.resena-caja { border: 1px solid var(--acento-borde); background: var(--acento-suave); border-radius: 12px; padding: 18px; margin: 16px 0 6px; }
.resena-caja strong { display: block; color: var(--tinta); margin-bottom: 4px; }
.resena-caja p { font-size: .88rem; margin-bottom: 14px; }
.resena-caja .nota { font-size: .8rem; color: var(--texto-3); margin: 10px 0 0; }

/* ---------- Panel de gestión ---------- */
.gestion .contenedor { max-width: 1320px; }
.gestion-top { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-bottom: 22px; }
@media (max-width: 1000px) { .gestion-top { grid-template-columns: 1fr; } }
.gestion-top .caja h2 { font-size: 1rem; margin-bottom: 10px; }
.alm-cifra { font-size: 1.5rem; font-weight: 800; color: var(--tinta); line-height: 1.2; }
.alm-cifra small { font-size: .85rem; font-weight: 600; color: var(--texto-3); }
.barra-progreso.alto i { background: #dc2626; }
.barra-progreso.medio i { background: #f59e0b; }
.barra-progreso.ok i { background: #16a34a; }
.caja .nota { font-size: .82rem; color: var(--texto-3); margin: 6px 0 0; }
.caja .campo { margin-bottom: 12px; }
.caja .campo input, .caja .campo select { padding: 10px 12px; font-size: .92rem; }
.fila-botones { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }

.gestion-cuerpo { display: grid; grid-template-columns: 330px 1fr; gap: 22px; align-items: start; }
@media (max-width: 1000px) { .gestion-cuerpo { grid-template-columns: 1fr; } }
.lista-clientes { display: grid; gap: 6px; max-height: 70vh; overflow-y: auto; margin: 0 -6px; padding: 0 6px; }
.cliente-item { display: grid; gap: 2px; text-align: left; width: 100%; background: #fff; border: 1px solid var(--linea); border-radius: 10px; padding: 11px 13px; cursor: pointer; font: inherit; }
.cliente-item:hover { border-color: var(--linea-2); }
.cliente-item.activo { border-color: var(--marino); box-shadow: 0 0 0 2px rgba(11, 37, 69, .12); }
.cliente-item strong { color: var(--tinta); font-size: .94rem; display: flex; justify-content: space-between; gap: 8px; align-items: center; }
.cliente-item span { font-size: .8rem; color: var(--texto-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.buscador { width: 100%; padding: 10px 12px; border: 1px solid var(--linea-2); border-radius: 10px; font: inherit; font-size: .92rem; margin-bottom: 12px; }
.chip { flex-shrink: 0; font-size: .66rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; padding: 3px 7px; border-radius: 4px; white-space: nowrap; }
.chip.invitado { background: #fff5e6; color: #9a3412; }
.chip.activo { background: #e7f6ec; color: #166534; }
.chip.bloqueado { background: #fef2f2; color: #991b1b; }
.chip.preparando { background: #fff5e6; color: #9a3412; }
.chip.disponible { background: #e7f6ec; color: #166534; }

.ficha-cab { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; align-items: flex-start; margin-bottom: 6px; }
.ficha-cab h2 { font-size: 1.35rem; margin: 0 0 4px; display: block; }
.ficha-cab p { font-size: .88rem; margin: 0; color: var(--texto-3); }
.ficha-datos { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: .84rem; color: var(--texto-2); margin: 10px 0 0; }
.ficha-datos b { color: var(--tinta); }
.ficha-seccion { border-top: 1px solid var(--linea); margin-top: 20px; padding-top: 18px; }
.ficha-seccion > h3 { font-size: 1.02rem; margin-bottom: 12px; }
.ficha-vacia { text-align: center; color: var(--texto-3); padding: 50px 20px; }
.form-subida .campo-fila { grid-template-columns: 1.4fr 1fr; gap: 12px; }
.form-subida .campo-fila.tres { grid-template-columns: 1fr 1fr 1fr; }
@media (max-width: 620px) { .form-subida .campo-fila, .form-subida .campo-fila.tres { grid-template-columns: 1fr; } }
.zona-archivo { display: block; border: 2px dashed var(--linea-2); border-radius: 12px; padding: 18px; text-align: center; color: var(--texto-3); font-size: .9rem; background: var(--fondo-2); margin-bottom: 12px; cursor: pointer; }
.zona-archivo.encima { border-color: var(--marino); background: #eef3f9; }
.zona-archivo strong { color: var(--tinta); display: block; margin-bottom: 2px; }
.zona-archivo input { display: none; }
.progreso-info { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; font-size: .82rem; color: var(--texto-2); font-family: var(--mono); }
.tabla-admin td .sub { display: block; font-size: .8rem; color: var(--texto-3); }
.tabla-admin .acciones { white-space: nowrap; text-align: right; }
.tabla-admin .acciones .btn + .btn { margin-left: 6px; }
.tabla-admin tr.grupo td { background: var(--fondo-2); font-size: .74rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--texto-3); padding: 7px 10px; }
.encuesta-mini { font-size: .82rem; }
.encuesta-mini .est { color: #f59e0b; letter-spacing: .05em; }
details.encuesta-detalle summary { cursor: pointer; color: var(--marino-2); font-size: .8rem; font-weight: 600; }
details.encuesta-detalle div { font-size: .82rem; color: var(--texto-2); margin-top: 6px; display: grid; gap: 3px; max-width: 320px; white-space: normal; }
.peligro { color: #b91c1c !important; border-color: #fecaca !important; }
.peligro:hover { background: #fef2f2 !important; }
.actividad li time { color: var(--texto-3); font-size: .8rem; white-space: nowrap; }
.gestion-pie { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-top: 22px; }
@media (max-width: 1000px) { .gestion-pie { grid-template-columns: 1fr; } }

/* El globo de ayuda cerrado no debe ocupar sitio (en movil provocaba desplazamiento lateral) */
.ayuda:not(.abierta) .ayuda-globo { display: none; }
@media (max-width: 600px) {
  .ayuda { display: block; }
  .ayuda-globo { position: static; width: auto; max-width: none; margin-top: 12px; transform: none; }
  .ayuda-globo::before { display: none; }
  .guia-paso { grid-template-columns: 1fr; gap: 12px; padding: 20px 18px; }
  .guia-num { width: 36px; height: 36px; font-size: 1rem; }
  .guia-paso > .btn { width: 100%; }
  .informe-item { padding: 14px; }
  .informe-item .acciones-informe { justify-content: stretch; }
  .informe-item .acciones-informe .btn { width: 100%; }
  .portal-acciones .btn { flex: 1; }
  .portal { padding-top: 92px; }
}
.autorrelleno { background: #f0fdf4 !important; border-color: #86efac !important; }
.zona-rapida { padding: 22px; margin-bottom: 10px; border-color: var(--marino-2); background: #f4f7fb; }
.zona-rapida strong { font-size: 1.05rem; }
#aviso-rapida { margin-bottom: 18px; }

/* =================================================================== v2 · dashboards por columnas */
.titulo-panel { font-size: clamp(1.5rem, 3vw, 2rem); margin: 0; }
.opcional { font-weight: 400; color: var(--texto-3); }
.campo-trampa { position: absolute; left: -5000px; width: 1px; height: 1px; overflow: hidden; }
.input-codigo { font-size: 1.4rem !important; letter-spacing: .3em; text-align: center; }
#toast { position: fixed; right: 18px; bottom: 18px; z-index: 300; max-width: 420px; box-shadow: var(--sombra-l); }
.caja-cab { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.caja-cab h2 { margin: 0; font-size: 1.1rem; }

/* Cifras */
.kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 14px; }
@media (max-width: 900px) { .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.kpi { background: #fff; border: 1px solid var(--linea); border-radius: 12px; padding: 14px 16px; display: grid; gap: 2px; box-shadow: var(--sombra-s); }
.kpi-et { font-size: .78rem; color: var(--texto-3); font-weight: 600; }
.kpi-v { font-size: 1.6rem; font-weight: 800; color: var(--tinta); line-height: 1.15; }
.kpi-v small { font-size: .85rem; font-weight: 600; color: var(--texto-3); }
.kpi-det { font-size: .8rem; color: var(--texto-2); }
.kpi-alerta { border-color: #fcd34d; background: #fffbeb; }
.kpi-bien .kpi-v { color: #15803d; }
.kpi-mal .kpi-v { color: #b91c1c; }

/* Avisos que piden accion */
.atencion { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.chip-atencion { border: 1px solid transparent; border-radius: 99px; padding: 6px 12px; font: inherit; font-size: .82rem; font-weight: 600; cursor: pointer; }
.chip-atencion.aviso { background: #fff7ed; color: #9a3412; border-color: #fed7aa; }
.chip-atencion.info { background: #eff6ff; color: #1e3a8a; border-color: #bfdbfe; }
.chip-atencion.ok { background: #f0fdf4; color: #166534; border-color: #bbf7d0; }
.chip-atencion.ok-suave { background: transparent; color: var(--texto-3); cursor: default; padding-left: 0; }
.chip-atencion:hover:not(.ok-suave) { filter: brightness(.97); }
.caja-solicitudes { margin-bottom: 18px; border-color: #fed7aa; }
.aviso-texto { color: #9a3412 !important; }

/* Pestañas */
.pestanas { display: flex; gap: 4px; border-bottom: 1px solid var(--linea); margin-bottom: 16px; overflow-x: auto; }
.pestana { background: none; border: 0; border-bottom: 2px solid transparent; padding: 10px 14px; font: inherit; font-size: .95rem; font-weight: 600; color: var(--texto-3); cursor: pointer; white-space: nowrap; }
.pestana.activa { color: var(--tinta); border-bottom-color: var(--acento); }
.pestana:hover { color: var(--tinta); }

/* Barra de herramientas de la tabla */
.barra-herr { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-bottom: 12px; }
.barra-herr .buscador { margin: 0; flex: 1; min-width: 200px; max-width: 340px; }
.barra-herr select { padding: 9px 10px; border: 1px solid var(--linea-2); border-radius: 10px; font: inherit; font-size: .88rem; background: #fff; }
.filtros { display: flex; gap: 4px; background: var(--fondo-3); padding: 3px; border-radius: 10px; }
.filtro { background: none; border: 0; padding: 6px 12px; border-radius: 8px; font: inherit; font-size: .84rem; font-weight: 600; color: var(--texto-2); cursor: pointer; }
.filtro.activo { background: #fff; color: var(--tinta); box-shadow: var(--sombra-s); }
#btn-rapida { cursor: pointer; }
#btn-rapida.encima { border-color: var(--acento); background: var(--acento-suave); }

/* Tabla de clientes */
.tabla-clientes { background: #fff; border: 1px solid var(--linea); border-radius: 12px; overflow: hidden; table-layout: fixed; }
.tabla-clientes .c-cli { width: 32%; } .tabla-clientes .c-est { width: 14%; } .tabla-clientes .c-pla { width: 13%; }
.tabla-clientes .c-ult { width: 15%; } .tabla-clientes .c-acc { width: 14%; } .tabla-clientes .c-enc { width: 12%; }
.tabla-clientes th { background: var(--fondo-2); }
.tabla-clientes td { overflow: hidden; text-overflow: ellipsis; }
.fila-cliente { cursor: pointer; }
.fila-cliente:hover td { background: #f8fafc; }
.fila-cliente.abierta td { background: #f4f7fb; border-bottom-color: transparent; }
.fila-cliente .flecha, .fila-planta .flecha { display: inline-block; width: 14px; color: var(--texto-3); }
.fila-cliente td .sub { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fila-detalle > td { background: #f4f7fb; padding: 4px 14px 18px !important; }
.detalle-cab { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin: 4px 0 12px; }
.sub-inline { font-size: .82rem; color: var(--texto-3); font-weight: 400; }
.vacio { color: var(--texto-3); font-size: .9rem; padding: 18px 10px !important; text-align: center; }
.est { color: #f59e0b; letter-spacing: .04em; }

/* Tabla de inspecciones dentro del cliente */
.tabla-insp { background: #fff; border: 1px solid var(--linea); border-radius: 10px; table-layout: fixed; }
.tabla-insp .i-fec { width: 15%; } .tabla-insp .i-ser { width: 17%; } .tabla-insp .i-pot { width: 10%; } .tabla-insp .i-ano { width: 11%; }
.tabla-insp .i-sev { width: 15%; } .tabla-insp .i-des { width: 11%; } .tabla-insp .i-enc { width: 10%; } .tabla-insp .i-acc { width: 11%; }
.tabla-insp td, .tabla-insp th { padding: 9px 8px; }
.fila-planta td { background: var(--fondo-2); cursor: pointer; font-size: .86rem; }
.fila-insp td:first-child { padding-left: 26px; }
.txt-crit { color: #b91c1c; font-weight: 700; }
.barra-sev { display: flex; height: 8px; border-radius: 99px; overflow: hidden; background: var(--fondo-3); min-width: 60px; }
.barra-sev i { display: block; height: 100%; }
.sev-c { background: #c0392b; } .sev-m { background: #c77d18; } .sev-l { background: #d4a90a; }   /* colores del informe */
.leyenda-sev { font-size: .8rem; color: var(--texto-3); display: inline-flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.leyenda-sev i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; }
.icono { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 8px; border: 1px solid var(--linea-2); background: #fff; color: var(--tinta); cursor: pointer; margin-left: 2px; }
.icono:hover { border-color: var(--marino); }
.icono.peligro { color: #b91c1c; }
.celda-larga { white-space: normal !important; font-size: .84rem; }
tr.nueva td { background: #f0fdf4; }

/* Ventanas */
.modal-ancha { max-width: 720px; }
.peligro-fuerte { background: #b91c1c !important; }
.peligro-fuerte:hover { background: #991b1b !important; }
.zona-mini { padding: 12px !important; margin-bottom: 10px !important; }
#s-analisis .aviso { margin: 0 0 8px; }

/* Zona del cliente v2 */
.primeros-pasos { background: #fff; border: 1px solid var(--acento-borde); border-left: 4px solid var(--acento); border-radius: 0; padding: 14px 18px; margin-bottom: 16px; }
.pp-cab { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 6px; }
.primeros-pasos ol { padding-left: 20px; display: grid; gap: 6px; margin: 0; }
.primeros-pasos li { list-style: decimal; font-size: .9rem; color: var(--texto-2); }
.primeros-pasos li b { color: var(--tinta); }
.tabla-mis { width: 100%; border-collapse: collapse; font-size: .9rem; table-layout: fixed; }
.tabla-mis th { text-align: left; font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--texto-3); padding: 8px 10px; border-bottom: 1px solid var(--linea); }
.tabla-mis td { padding: 11px 10px; border-bottom: 1px solid var(--linea); vertical-align: middle; }
.tabla-mis .fila-planta td { background: var(--fondo-2); cursor: default; }
.tabla-mis .m-fec { width: 22%; } .tabla-mis .m-cri { width: 12%; } .tabla-mis .m-per { width: 17%; } .tabla-mis .m-sev { width: 19%; } .tabla-mis .m-acc { width: 30%; }
.tabla-mis .acciones { text-align: right; white-space: nowrap; }
.tabla-mis .btn { padding: 8px 12px; font-size: .84rem; }
.enlace-comparar { font-size: .84rem; margin-left: 8px; }
.tabla-comparar td, .tabla-comparar th { text-align: center; }
.tabla-comparar td:first-child, .tabla-comparar th:first-child { text-align: left; }
.delta-bien { color: #15803d; font-weight: 700; } .delta-mal { color: #b91c1c; font-weight: 700; }
@media (max-width: 760px) {
  .tabla-mis .m-sev { width: 0; } .tabla-mis:not(.tabla-comparar) td:nth-child(4):not([colspan]), .tabla-mis:not(.tabla-comparar) thead th:nth-child(4) { display: none; }
  .tabla-clientes .c-pla, .tabla-clientes .c-acc, .tabla-clientes th:nth-child(3), .tabla-clientes th:nth-child(5), .tabla-clientes .fila-cliente td:nth-child(3), .tabla-clientes .fila-cliente td:nth-child(5) { display: none; }
}
.tabla-insp { min-width: 760px; }
@media (max-width: 600px) {
  .barra-herr .buscador { max-width: none; flex-basis: 100%; }
  .filtros { flex-wrap: wrap; }
  .barra-herr select { flex: 1; }
  .kpi-v { font-size: 1.3rem; }
  .portal-acciones { width: 100%; }
}
/* ajustes de maquetación v2 */
.tabla-clientes .fila-cliente td strong, .fila-planta td strong { display: inline; }
.tabla-clientes .fila-cliente td .sub { display: block; padding-left: 18px; }
.tabla-mis .sub, .tabla-insp .sub { display: block; font-size: .78rem; color: var(--texto-3); }
.tabla-mis td b + .sub { display: inline; margin-left: 4px; }
.tabla-insp .fila-insp td:first-child .sub { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ---------- Comparador de inspecciones (zona del cliente y panel) */
#modal-comparar .modal-caja { max-width: 900px; }
.cmp-elegir { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0 0 16px; font-size: .92rem; color: var(--texto-2); }
.cmp-elegir label { display: flex; align-items: center; gap: 8px; font-weight: 700; color: var(--texto); }
.cmp-elegir select { font: inherit; padding: 7px 10px; border: 1px solid var(--linea-2); border-radius: 8px; background: #fff; min-width: 190px; }
.cmp-elegir > span { color: var(--texto-3); }
.cmp-aviso { background: #fff7ed; border: 1px solid #fed7aa; color: #9a3412; border-radius: 8px; padding: 9px 12px; font-size: .86rem; margin: 0 0 14px; }
.cmp-tarjetas { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 18px; }
.cmp-tarjeta { border: 1px solid var(--linea); border-radius: 10px; padding: 12px 14px; display: flex; flex-direction: column; gap: 2px; background: var(--fondo-2); }
.cmp-tarjeta .kpi-v { font-size: 1.6rem; font-weight: 800; line-height: 1.15; }
.cmp-tarjeta .kpi-det { font-size: .8rem; color: var(--texto-3); }
.cmp-igual { color: var(--texto-3); font-weight: 600; }
.cmp-grafico { border: 1px solid var(--linea); border-radius: 10px; padding: 14px 16px 10px; margin-bottom: 18px; }
.cmp-leyenda { display: flex; gap: 18px; font-size: .8rem; color: var(--texto-3); margin-bottom: 10px; }
.cmp-leyenda i { display: inline-block; width: 12px; height: 10px; border-radius: 2px; vertical-align: -1px; margin-right: 4px; }
.cmp-fila { display: grid; grid-template-columns: 96px 1fr; gap: 12px; align-items: center; padding: 6px 0; border-top: 1px solid var(--linea); }
.cmp-fila:first-of-type { border-top: 0; }
.cmp-cat { font-size: .84rem; font-weight: 700; color: var(--texto-2); }
.cmp-barras { display: grid; grid-template-columns: 1fr 44px; row-gap: 4px; align-items: center; }
.cmp-barra { height: 12px; border-radius: 3px; min-width: 0; }
.cmp-num { font-size: .8rem; text-align: right; font-variant-numeric: tabular-nums; }
.cmp-antes { background: #cbd5e1; }
.cmp-ahora, .cmp-t { background: #0b1f33; }
.cmp-barra.sev-c { background: #dc2626; } .cmp-barra.sev-m { background: #f59e0b; } .cmp-barra.sev-l { background: #84cc16; }
.cmp-sub { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: var(--texto-3); font-weight: 800; margin: 4px 0 8px; }
.cmp-evo { display: flex; align-items: flex-end; gap: 10px; height: 150px; border-bottom: 1px solid var(--linea-2); padding: 0 4px; margin-bottom: 18px; overflow-x: auto; }
.cmp-col { flex: 1 0 64px; max-width: 110px; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 4px; font-size: .78rem; }
.cmp-col i { display: block; width: 60%; background: #fca5a5; border-radius: 4px 4px 0 0; }
.cmp-col.cmp-col-sel i { background: #dc2626; }
.cmp-col span { color: var(--texto-3); white-space: nowrap; margin-bottom: -22px; }
.cmp-evo { margin-bottom: 34px; }
@media (max-width: 700px) {
  .cmp-tarjetas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cmp-fila { grid-template-columns: 74px 1fr; }
  .cmp-elegir select { min-width: 0; max-width: 100%; }
}

/* ---------- Zona del cliente en el móvil: cada inspección como tarjeta (sin columnas apretadas) */
.tabla-comparar { min-width: 560px; }
@media (max-width: 600px) {
  .tabla-mis:not(.tabla-comparar) { table-layout: auto; }
  .tabla-mis:not(.tabla-comparar) colgroup, .tabla-mis:not(.tabla-comparar) thead { display: none; }
  .tabla-mis:not(.tabla-comparar), .tabla-mis:not(.tabla-comparar) tbody { display: block; width: 100%; }
  .tabla-mis:not(.tabla-comparar) tr { display: grid; grid-template-columns: 1fr auto; grid-template-areas: "fec acc" "cri acc" "per per" "sev sev"; column-gap: 12px; row-gap: 4px; padding: 12px 2px; border-bottom: 1px solid var(--linea); }
  .tabla-mis:not(.tabla-comparar) tr.fila-planta { display: block; padding: 0; margin-top: 10px; }
  .tabla-mis:not(.tabla-comparar) tr.fila-planta td { display: block; padding: 10px 12px; border-radius: 8px; border: 0; }
  .tabla-mis:not(.tabla-comparar) tr.fila-planta .enlace-comparar { display: inline-block; margin: 6px 0 0; }
  .tabla-mis:not(.tabla-comparar) td { display: block; padding: 0; border: 0; }
  .tabla-mis:not(.tabla-comparar) tr > td:nth-child(1) { grid-area: fec; }
  .tabla-mis:not(.tabla-comparar) tr > td:nth-child(2) { grid-area: cri; }
  .tabla-mis:not(.tabla-comparar) tr > td:nth-child(2):not(:empty)::before { content: 'Críticas: '; color: var(--texto-3); font-size: .82rem; }
  .tabla-mis:not(.tabla-comparar) tr > td:nth-child(3) { grid-area: per; }
  .tabla-mis:not(.tabla-comparar) tr > td:nth-child(3):not(:empty)::before { content: 'Pérdida estimada: '; color: var(--texto-3); font-size: .82rem; }
  .tabla-mis:not(.tabla-comparar) tr > td:nth-child(4) { grid-area: sev; padding-top: 4px; display: block !important; }
  .tabla-mis:not(.tabla-comparar) tr.fila-det { display: block; padding: 0 0 12px; }
  .tabla-mis:not(.tabla-comparar) tr.fila-det > td { display: block; }
  .tabla-mis:not(.tabla-comparar) tr > td:nth-child(5) { grid-area: acc; align-self: center; white-space: normal; }
  .tabla-mis:not(.tabla-comparar) td .sub { display: inline; margin-left: 6px; }
  .tabla-mis .barra-sev { max-width: none; }
}

/* =================================================================== v3 · seguimiento, impacto y O&M */
/* Próximo vuelo */
.proximo { display: flex; align-items: center; gap: 18px; background: #ecfeff; border: 1px solid #a5f3fc; border-radius: var(--radio-lg); padding: 16px 20px; margin-bottom: 16px; }
.prox-icono { width: 62px; height: 66px; border-radius: 12px; background: #fff; border: 1px solid #a5f3fc; display: flex; flex-direction: column; align-items: center; justify-content: center; flex-shrink: 0; box-shadow: 0 2px 6px rgba(14,116,144,.12); }
.prox-icono b { font-size: 1.6rem; line-height: 1; color: #0e7490; }
.prox-icono small { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: #0e7490; font-weight: 700; margin-top: 3px; }
.prox-txt { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.prox-et { font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 800; color: #0e7490; }
.prox-txt strong { font-size: 1.08rem; color: var(--tinta); }
.prox-txt span { color: var(--texto-2); font-size: .92rem; }
.prox-txt .prox-nota { font-size: .85rem; color: var(--texto-3); }
@media (max-width: 600px) { .proximo { flex-wrap: wrap; } .proximo .btn { width: 100%; } }

/* Seguimiento: pasos del trabajo */
.trabajo { border: 1px solid var(--linea); border-radius: 12px; padding: 16px 18px; margin-top: 12px; background: #fff; }
.trabajo + .trabajo { margin-top: 12px; }
.trabajo-cab { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.trabajo-cab strong { font-size: 1.02rem; color: var(--tinta); margin-right: 8px; }
.trabajo-info { font-size: .86rem; color: var(--texto-3); margin: 10px 0 0; }
.trabajo-nota { font-size: .88rem; background: var(--fondo-2); border-radius: 8px; padding: 8px 12px; margin: 10px 0 0; }
.trabajo-aviso { font-size: .86rem; color: #9a3412; margin: 10px 0 0; }
.pasos-trabajo { list-style: none; margin: 16px 0 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); position: relative; }
.pasos-trabajo li { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px; padding: 0 4px; }
.pasos-trabajo li::before { content: ''; position: absolute; top: 14px; left: -50%; right: 50%; height: 3px; background: var(--linea-2); z-index: 0; }
.pasos-trabajo li:first-child::before { display: none; }
.pasos-trabajo li.hecho::before, .pasos-trabajo li.actual::before { background: #0e7490; }
.pt-punto { position: relative; z-index: 1; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font-size: .8rem; font-weight: 800; background: #fff; border: 2px solid var(--linea-2); color: var(--texto-3); }
.pasos-trabajo li.hecho .pt-punto { background: #0e7490; border-color: #0e7490; color: #fff; }
.pasos-trabajo li.actual .pt-punto { border-color: #0e7490; color: #0e7490; box-shadow: 0 0 0 5px rgba(14,116,144,.14); }
.pt-txt { display: flex; flex-direction: column; gap: 2px; }
.pt-txt b { font-size: .82rem; color: var(--texto-3); font-weight: 700; }
.pasos-trabajo li.hecho .pt-txt b, .pasos-trabajo li.actual .pt-txt b { color: var(--tinta); }
.pt-txt small { font-size: .76rem; color: var(--texto-3); }
.pasos-trabajo li.actual .pt-txt small { color: #0e7490; font-weight: 700; }
@media (max-width: 640px) {
  .pasos-trabajo { grid-template-columns: 1fr; gap: 0; }
  .pasos-trabajo li { flex-direction: row; text-align: left; align-items: flex-start; gap: 12px; padding: 0 0 14px; }
  .pasos-trabajo li::before { left: 14px; right: auto; top: -14px; width: 3px; height: 28px; }
}

/* Detalle de una inspección para O&M */
.tabla-mis tr.fila-inf.abierta td { border-bottom-color: transparent; }
.tabla-mis tr.fila-det td { background: var(--fondo-2); padding: 0; }
.det { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; padding: 16px; }
.det-bloque { background: #fff; border: 1px solid var(--linea); border-radius: 10px; padding: 14px 16px; }
.det-bloque h4 { font-size: .74rem; text-transform: uppercase; letter-spacing: .08em; color: var(--texto-3); margin: 0 0 10px; font-weight: 800; }
.det-prio { display: grid; gap: 8px; }
.dp { display: flex; align-items: center; gap: 12px; border-radius: 8px; padding: 8px 12px; }
.dp b { font-size: 1.35rem; min-width: 2.4ch; text-align: right; }
.dp span { display: flex; flex-direction: column; font-size: .88rem; font-weight: 600; color: var(--tinta); }
.dp small { font-size: .74rem; color: var(--texto-3); font-weight: 600; }
.dp-1 { background: #fef2f2; } .dp-1 b { color: #b91c1c; }
.dp-3 { background: #fff7ed; } .dp-3 b { color: #c2410c; }
.dp-4 { background: #fefce8; } .dp-4 b { color: #a16207; }
.det-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: .88rem; }
.det-lista li { display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px dashed var(--linea); padding-bottom: 5px; }
.det-lista li:last-child { border-bottom: 0; }
.det-lista span { color: var(--texto-2); } .det-lista b { color: var(--tinta); text-align: right; }
.det-barras { list-style: none; margin: 0; padding: 0; display: grid; gap: 7px; font-size: .84rem; }
.det-barras li { display: grid; grid-template-columns: minmax(0, 9em) 1fr 3ch; align-items: center; gap: 8px; }
.det-barras span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--texto-2); }
.det-barras i { display: block; height: 8px; border-radius: 4px; background: #c2410c; }
.det-barras b { text-align: right; }
.det-nota, .det-pie { font-size: .78rem; color: var(--texto-3); margin: 10px 0 0; line-height: 1.5; }
.det-pie { grid-column: 1 / -1; margin: 0; }
.prox-recom { display: block; font-size: .8rem; color: var(--texto-3); margin-top: 4px; font-weight: 400; }
.prox-recom a { font-weight: 700; }

/* Comparador: impacto en euros y módulo a módulo */
.cmp-eco { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 12px; }
.cmp-eco .cmp-eur { border-color: #fed7aa; background: #fff7ed; }
.cmp-eco .kpi-v small { font-size: .8rem; font-weight: 600; color: var(--texto-3); }
.cmp-eco-txt { grid-column: 1 / -1; margin: 0; font-size: .9rem; color: var(--texto-2); }
.cmp-rep { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 18px; }
.cr { border-radius: 10px; padding: 12px 14px; display: flex; align-items: center; gap: 12px; border: 1px solid var(--linea); }
.cr b { font-size: 1.6rem; line-height: 1; }
.cr span { display: flex; flex-direction: column; font-size: .88rem; font-weight: 700; color: var(--tinta); }
.cr small { font-weight: 500; color: var(--texto-3); font-size: .78rem; }
.cr-ok { background: #f0fdf4; border-color: #bbf7d0; } .cr-ok b { color: #15803d; }
.cr-sigue { background: #fff7ed; border-color: #fed7aa; } .cr-sigue b { color: #c2410c; }
.cr-nueva { background: #fef2f2; border-color: #fecaca; } .cr-nueva b { color: #b91c1c; }
@media (max-width: 700px) { .cmp-eco, .cmp-rep { grid-template-columns: 1fr; } }

/* Panel: fases y botones de paso */
.chip.pendiente { background: #f1f5f9; color: #475569; }
.chip.fase { text-transform: none; letter-spacing: 0; font-size: .74rem; font-weight: 700; white-space: normal; }
.chip.fase-encargo { background: #f1f5f9; color: #334155; }
.chip.fase-programado { background: #ecfeff; color: #0e7490; }
.chip.fase-volado { background: #fff7ed; color: #9a3412; }
.tabla-insp td.celda-pasos { white-space: normal; }
.pasos-fila { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.pasos-fila .chip { margin-right: 4px; }
.tabla-insp td.celda-pasos .btn { width: auto; flex: 0 0 auto; white-space: nowrap; overflow: visible; }
.det-lista b { white-space: nowrap; }
.cmp-sub { margin-top: 18px; }

/* Rosco de severidad (como en el informe) y ficha comparativa */
.rosco { display: flex; flex-direction: column; gap: 8px; }
.rosco-tit { font-size: .8rem; font-weight: 800; color: var(--texto-2); text-transform: uppercase; letter-spacing: .06em; }
.rosco-cuerpo { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.rosco-cuerpo svg { flex-shrink: 0; }
.rosco-ley { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; min-width: 170px; flex: 1; }
.rosco-ley li { display: flex; align-items: center; gap: 8px; font-size: .86rem; color: var(--texto-2); font-weight: 600; }
.rosco-ley li i { width: 11px; height: 11px; border-radius: 3px; flex-shrink: 0; }
.rosco-ley small { color: var(--texto-3); font-weight: 600; }
.rosco-ley b { margin-left: auto; color: var(--tinta); font-variant-numeric: tabular-nums; white-space: nowrap; }
.cmp-roscos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 4px 0 6px; }
.cmp-roscos .rosco { border: 1px solid var(--linea); border-radius: 12px; padding: 14px 16px; background: var(--fondo-2); }
.tabla-ficha td:first-child { color: var(--texto-2); font-weight: 600; }
.tabla-ficha td:nth-child(3) b { color: var(--tinta); }
@media (max-width: 700px) { .cmp-roscos { grid-template-columns: 1fr; } }
/* Comprobación de las cifras del .dcair antes de subir */
.comprobacion { border-radius: 10px; padding: 12px 14px; margin: 10px 0; font-size: .86rem; border: 1px solid; }
.comprobacion.todo-ok { background: #f0fdf4; border-color: #bbf7d0; color: #14532d; }
.comprobacion.con-avisos { background: #fff7ed; border-color: #fdba74; color: #7c2d12; }
.comprobacion ul { margin: 6px 0 0; padding-left: 0; list-style: none; display: grid; gap: 3px; }
.comprobacion li::before { content: '✓ '; font-weight: 800; color: #15803d; }
.comprobacion li.mal::before { content: '✗ '; color: #b91c1c; }
.comprobacion li.mal { font-weight: 700; }
.ok-txt { color: #15803d !important; font-weight: 700; }

/* Filtros de «Mis inspecciones» (zona del cliente) */
.filtros-cli { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 12px; }
.filtros-cli input, .filtros-cli select { font: inherit; font-size: .9rem; padding: 8px 10px; border: 1px solid var(--linea-2); border-radius: 8px; background: #fff; color: var(--texto); }
.filtros-cli input { flex: 1 1 240px; min-width: 0; }
.filtros-cli select { flex: 0 1 auto; }
@media (max-width: 600px) { .filtros-cli select { flex: 1 1 45%; } }

/* =================================================================== v4 · modo aplicación (lateral + barra superior), como DC Aerial Inspector Pro
   Solo se activa con <body class="modo-app"> una vez dentro (zona del cliente y panel). La entrada sigue con el aspecto de la web. */
body.modo-app { background: #f1f4f8; }
body.modo-app .cabecera, body.modo-app .pie, body.modo-app .wa-flotante { display: none !important; }
body.modo-app .portal { padding: 0; background: transparent; min-height: 100vh; }
body.modo-app .portal > .contenedor { max-width: none; padding: 0; }
.ap { display: grid; grid-template-columns: 248px minmax(0, 1fr); min-height: 100vh; --ap-linea: #e3e8ef; --ap-linea2: #cfd8e3; --ap-crit: #c0392b; --ap-mod: #c77d18; --ap-leve: #d4a90a; --ap-bien: #15803d; --ap-info: #0e7490; }
.ap-lat { background: #fff; border-right: 1px solid var(--ap-linea); display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh; overflow-y: auto; z-index: 20; }
.ap-logo { height: 64px; display: flex; align-items: center; justify-content: center; border-bottom: 1px solid var(--ap-linea); flex-shrink: 0; }
.ap-logo img { height: 34px; width: auto; }
.ap-grupo { padding: 18px 12px 4px; }
.ap-et { font-size: 11px; font-weight: 700; letter-spacing: .1em; color: var(--texto-3); text-transform: uppercase; padding: 0 10px 8px; }
.ap-item { display: flex; align-items: center; gap: 12px; width: 100%; padding: 9px 10px; border-radius: 9px; color: var(--texto-2); font: inherit; font-size: .9rem; font-weight: 500; margin-bottom: 2px; border: 1px solid transparent; background: none; cursor: pointer; text-align: left; text-decoration: none; }
.ap-item svg { width: 18px; height: 18px; flex: none; }
.ap-item:hover { background: #f5f7fa; color: var(--tinta); }
.ap-item.activo { background: #eef2f7; border-color: var(--ap-linea2); color: var(--tinta); font-weight: 700; }
.ap-cuenta { margin-left: auto; font-size: 11px; font-weight: 700; background: #e8edf3; color: var(--texto-2); border-radius: 20px; padding: 1px 8px; }
.ap-cuenta.nar { background: var(--acento-suave); color: var(--acento); }
.ap-cuenta:empty { display: none; }
.ap-pie { margin-top: auto; padding: 14px; border-top: 1px solid var(--ap-linea); }
.ap-caja-pie { background: #f7f9fb; border: 1px solid var(--ap-linea); border-radius: 10px; padding: 12px 14px; font-size: .8rem; color: var(--texto-2); line-height: 1.55; }
.ap-caja-pie b { display: block; color: var(--tinta); font-size: .84rem; margin-bottom: 2px; }
.ap-caja-pie a { color: var(--acento); font-weight: 600; }
.ap-main { min-width: 0; display: flex; flex-direction: column; }
.ap-barra { height: 64px; background: #fff; border-bottom: 1px solid var(--ap-linea); display: flex; align-items: center; gap: 14px; padding: 0 28px; position: sticky; top: 0; z-index: 15; }
.ap-titulo { font-family: var(--mono); font-size: .78rem; font-weight: 700; letter-spacing: .06em; color: var(--tinta); text-transform: uppercase; white-space: nowrap; }
.ap-pastilla { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--ap-linea2); border-radius: 8px; padding: 6px 12px; font-weight: 700; font-size: .82rem; color: var(--tinta); max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ap-pastilla i { width: 8px; height: 8px; border-radius: 50%; background: var(--ap-bien); flex: none; }
.ap-buscar { margin-left: auto; position: relative; width: 300px; }
.ap-buscar input { width: 100%; border: 1px solid var(--ap-linea2); border-radius: 9px; padding: 9px 12px 9px 36px; font: inherit; font-size: .84rem; background: #fff; color: var(--texto); margin: 0; }
.ap-buscar svg { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); width: 16px; height: 16px; color: var(--texto-3); pointer-events: none; }
.ap-der { display: flex; gap: 8px; align-items: center; }
.ap-icono { width: 38px; height: 38px; border: 1px solid var(--ap-linea2); border-radius: 9px; background: #fff; display: inline-flex; align-items: center; justify-content: center; color: var(--texto-2); cursor: pointer; flex: none; padding: 0; }
.ap-icono svg { width: 18px; height: 18px; }
.ap-icono:hover { border-color: #b4c0ce; color: var(--tinta); }
.ap-avatar { width: 38px; height: 38px; border-radius: 50%; background: var(--marino); color: #fff; font-weight: 800; font-size: .8rem; display: inline-flex; align-items: center; justify-content: center; border: 0; cursor: pointer; flex: none; }
.ap-menu-caja { position: relative; }
.ap-menu { position: absolute; right: 0; top: 46px; background: #fff; border: 1px solid var(--ap-linea); border-radius: 12px; box-shadow: 0 12px 32px rgba(15, 23, 42, .14); padding: 8px; min-width: 230px; z-index: 30; }
.ap-menu[hidden] { display: none; }
.ap-menu .quien { padding: 8px 10px 10px; border-bottom: 1px solid var(--ap-linea); margin-bottom: 6px; font-size: .8rem; color: var(--texto-3); }
.ap-menu .quien b { display: block; color: var(--tinta); font-size: .88rem; }
.ap-menu button, .ap-menu a { display: block; width: 100%; text-align: left; background: none; border: 0; padding: 9px 10px; border-radius: 8px; font: inherit; font-size: .88rem; color: var(--texto); cursor: pointer; text-decoration: none; }
.ap-menu button:hover, .ap-menu a:hover { background: #f5f7fa; }
.ap-hamb { display: none; }
.ap-cont { padding: 28px 32px 56px; max-width: 1240px; width: 100%; }
.ap-cab { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 22px; flex-wrap: wrap; }
.ap-cab h1, .ap-cab h2.titulo-panel { font-size: 1.65rem; letter-spacing: -.01em; margin: 0; }
.ap-cab h1 span, .ap-cab h2 span { color: var(--marino-2); }
.ap-cab .sub, .ap-cab p { color: var(--texto-3); font-size: .84rem; margin: 2px 0 0; }
.ap-cab .ap-acc { display: flex; gap: 8px; flex-wrap: wrap; }
.ap-miga { font-size: .84rem; color: var(--texto-3); margin-bottom: 6px; }
.ap-miga a { color: var(--texto-2); font-weight: 700; text-decoration: none; }
.ap-miga a:hover { color: var(--acento); }
.ap-vista[hidden] { display: none !important; }
/* tarjetas */
.ap-tarjeta { background: #fff; border: 1px solid var(--ap-linea); border-radius: 12px; box-shadow: 0 1px 2px rgba(15, 23, 42, .05); margin-bottom: 18px; }
.ap-tarjeta-cab { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 22px; border-bottom: 1px solid var(--ap-linea); flex-wrap: wrap; }
.ap-tarjeta-cab h2, .ap-tarjeta-cab h3 { font-size: 1rem; margin: 0; }
.ap-tarjeta-cuerpo { padding: 18px 22px; }
.ap-dos { display: grid; grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr); gap: 18px; align-items: start; }
.ap-dos > .ap-tarjeta { margin-bottom: 0; }
.ap-rejilla2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
/* botones compactos */
.ap .btn { padding: 9px 16px; font-size: .84rem; border-radius: 9px; }
.ap .btn-mini, .ap .btn-peq { padding: 6px 12px; font-size: .8rem; border-radius: 8px; }
.ap .btn svg { width: 16px; height: 16px; }
.ap-btn-texto { background: none; border: 0; color: var(--acento); font: inherit; font-weight: 700; font-size: .84rem; padding: 4px; cursor: pointer; text-decoration: none; }
.ap-btn-texto:hover { text-decoration: underline; }
/* control segmentado y selectores */
.ap-herr { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }
.ap-herr .ap-der { margin-left: auto; }
.ap-seg { display: inline-flex; background: #f3f5f8; border: 1px solid var(--ap-linea); border-radius: 10px; padding: 3px; gap: 2px; max-width: 100%; overflow-x: auto; }
.ap-seg button { border: 0; background: none; padding: 6px 13px; border-radius: 7px; font: inherit; font-size: .84rem; font-weight: 500; color: var(--texto-2); cursor: pointer; white-space: nowrap; }
.ap-seg button.activo { background: #fff; color: var(--tinta); font-weight: 700; box-shadow: 0 1px 2px rgba(15, 23, 42, .08); }
.ap-seg button small { color: var(--texto-3); font-weight: 500; margin-left: 3px; }
.ap select, .ap .ap-campo { border: 1px solid var(--ap-linea2); border-radius: 9px; padding: 8px 12px; font: inherit; font-size: .84rem; background: #fff; color: var(--texto); }
/* etiquetas */
.ap-chip { display: inline-flex; align-items: center; gap: 6px; font-size: .72rem; font-weight: 700; border-radius: 20px; padding: 3px 10px; border: 1px solid var(--ap-linea2); color: var(--texto-2); background: #f7f9fb; white-space: nowrap; line-height: 1.4; }
.ap-chip i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; flex: none; }
.ap-chip.info { color: var(--ap-info); background: #ecfeff; border-color: #a5e3ee; }
.ap-chip.ok { color: var(--ap-bien); background: #ecfdf3; border-color: #b7e4c7; }
.ap-chip.aviso { color: #b45309; background: #fffbeb; border-color: #fcd9a6; }
.ap-chip.mal { color: #b91c1c; background: #fef2f2; border-color: #fecaca; }
.ap-chip.nar { color: var(--acento); background: var(--acento-suave); border-color: var(--acento-borde); }
.ap-chip.tipo { font-family: var(--mono); font-size: .64rem; letter-spacing: .04em; text-transform: uppercase; color: #5b6b7d; background: #eef2f6; border-color: #dbe2ea; }
/* cifras grandes */
body.modo-app .kpis { gap: 16px; margin-bottom: 18px; }
body.modo-app .kpi { padding: 18px 20px; border-radius: 12px; border-color: var(--ap-linea); box-shadow: 0 1px 2px rgba(15, 23, 42, .05); }
body.modo-app .kpi-v { font-size: 1.75rem; letter-spacing: -.02em; }
/* tablas limpias */
.ap-tabla { width: 100%; border-collapse: collapse; font-size: .88rem; }
.ap-tabla th { text-align: left; font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; color: var(--texto-3); font-weight: 700; padding: 10px 16px; border-bottom: 1px solid var(--ap-linea); background: #fafbfd; }
.ap-tabla td { padding: 13px 16px; border-bottom: 1px solid var(--ap-linea); vertical-align: middle; }
.ap-tabla tr:last-child td { border-bottom: 0; }
.ap-tabla tr.clic { cursor: pointer; }
.ap-tabla tr.clic:hover td { background: #fafbfd; }
.ap-tabla .der { text-align: right; }
.ap-tabla .sub { display: block; font-size: .78rem; color: var(--texto-3); }
.ap-num { font-variant-numeric: tabular-nums; white-space: nowrap; }
.ap-crit { color: var(--ap-crit); }
.ap-tend { font-size: .76rem; font-weight: 700; white-space: nowrap; }
.ap-tend.baja { color: var(--ap-bien); } .ap-tend.sube { color: var(--ap-crit); }
.ap-leyenda { display: flex; gap: 14px; font-size: .78rem; color: var(--texto-3); flex-wrap: wrap; }
.ap-leyenda span::before { content: ''; display: inline-block; width: 9px; height: 9px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; background: var(--c); }
.ap-vacio { color: var(--texto-3); font-size: .88rem; padding: 26px 22px; text-align: center; }
/* listas de avisos / agenda / actividad */
.ap-lista { list-style: none; margin: 0; padding: 0; }
.ap-lista > li { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 14px 22px; border-bottom: 1px solid var(--ap-linea); }
.ap-lista > li:last-child { border-bottom: 0; }
.ap-lista .ico { width: 34px; height: 34px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; background: #eef2f7; color: var(--marino); }
.ap-lista .ico svg { width: 17px; height: 17px; }
.ap-lista .ico.aviso { background: #fffbeb; color: #b45309; } .ap-lista .ico.mal { background: #fef2f2; color: #b91c1c; }
.ap-lista .ico.info { background: #ecfeff; color: var(--ap-info); } .ap-lista .ico.ok { background: #ecfdf3; color: var(--ap-bien); } .ap-lista .ico.nar { background: var(--acento-suave); color: var(--acento); }
.ap-lista b.t { color: var(--tinta); display: block; font-size: .88rem; }
.ap-lista .sub { color: var(--texto-3); font-size: .8rem; display: block; line-height: 1.45; }
.ap-dia { width: 50px; text-align: center; border: 1px solid var(--ap-linea2); border-radius: 10px; padding: 4px 0; background: #fff; }
.ap-dia b { display: block; font-size: 1.15rem; line-height: 1.15; color: var(--tinta); }
.ap-dia small { font-size: .62rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--texto-3); }
.ap-dia.prox { border-color: #a5e3ee; background: #ecfeff; } .ap-dia.prox b, .ap-dia.prox small { color: var(--ap-info); }
.ap-lista.agenda > li { grid-template-columns: 50px minmax(0, 1fr) auto; }
/* barra de severidad (colores del informe) */
body.modo-app .barra-sev { height: 8px; min-width: 110px; }

/* ---------- Zona del cliente v4 */
.ap .proximo { border-left: 4px solid var(--ap-info); border-radius: 12px; background: #fff; border-color: var(--ap-linea); border-left-color: var(--ap-info); padding: 18px 22px; }
.ap .prox-icono { background: #ecfeff; border-color: #a5e3ee; box-shadow: none; }
.ap .primeros-pasos { border-radius: 12px; border-left-width: 4px; margin-bottom: 18px; }
/* tarjetas de planta plegables (como la «Cartera» del Inspector Pro) */
.ap-planta { margin-bottom: 12px; overflow: hidden; }
.ap-pl-cab { display: grid; grid-template-columns: 22px 44px minmax(0, 1.35fr) minmax(0, 1.6fr) 230px; gap: 16px; align-items: center; padding: 16px 20px; cursor: pointer; }
.ap-pl-cab:hover { background: #fbfcfd; }
.ap-chev { color: var(--texto-3); transition: transform .2s; width: 18px; height: 18px; }
.abierta > .ap-pl-cab .ap-chev, .abierta > .ap-cli-cab .ap-chev, .abierta > .ap-fila-planta .ap-chev { transform: rotate(90deg); }
.ap-pl-ico { width: 44px; height: 44px; border-radius: 11px; background: #eef2f7; border: 1px solid var(--ap-linea); display: inline-flex; align-items: center; justify-content: center; color: var(--marino); flex: none; }
.ap-pl-ico svg { width: 22px; height: 22px; }
.ap-pl-nom { font-size: .95rem; font-weight: 800; color: var(--tinta); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ap-pl-meta { font-size: .8rem; color: var(--texto-3); margin-top: 3px; }
.ap-pl-cifras { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.ap-pl-cifras .et { font-size: .66rem; color: var(--texto-3); font-weight: 700; text-transform: uppercase; letter-spacing: .07em; }
.ap-pl-cifras .v { font-size: .95rem; font-weight: 800; color: var(--tinta); white-space: nowrap; }
.ap-pl-cifras .v.ap-crit { color: var(--ap-crit); }
.ap-pl-cifras .v small { font-weight: 500; color: var(--texto-3); font-size: .76rem; }
.ap-pl-acc { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }
.ap-pl-insp { border-top: 1px solid var(--ap-linea); background: #fbfcfd; }
.ap-pl-insp .ap-tabla th { background: transparent; }
.ap-pl-insp .ap-tabla td:first-child, .ap-pl-insp .ap-tabla th:first-child { padding-left: 102px; }
.ap-pl-insp .prox-recom { padding: 10px 20px 12px 102px; margin: 0; border-top: 1px solid var(--ap-linea); }
/* ficha de planta */
.ap-ficha-cab { display: flex; gap: 16px; align-items: center; padding: 20px 22px; flex-wrap: wrap; }
.ap-ficha-cab .ap-pl-ico { width: 54px; height: 54px; }
.ap-ficha-cab h1 { font-size: 1.4rem; margin: 0; }
.ap-ficha-cab .ap-acc { margin-left: auto; display: flex; gap: 8px; flex-wrap: wrap; }
.ap-pestanas { display: flex; gap: 4px; border-top: 1px solid var(--ap-linea); padding: 0 22px; overflow-x: auto; }
.ap-pestanas button { background: none; border: 0; border-bottom: 2px solid transparent; padding: 12px 14px; font: inherit; font-weight: 700; font-size: .86rem; color: var(--texto-3); cursor: pointer; white-space: nowrap; margin-bottom: -1px; }
.ap-pestanas button.activo { color: var(--tinta); border-bottom-color: var(--acento); }
.ap-pestanas small { font-weight: 600; color: var(--texto-3); margin-left: 4px; }
.ap-ficha-cuerpo { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 20px; align-items: start; }
.ap-lista-insp { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.ap-item-insp { padding: 14px 16px; cursor: pointer; border: 1px solid var(--ap-linea); border-radius: 11px; background: #fff; text-align: left; font: inherit; width: 100%; }
.ap-item-insp:hover { border-color: var(--ap-linea2); }
.ap-item-insp.activo { border-color: var(--marino); box-shadow: 0 0 0 3px rgba(11, 37, 69, .08); }
.ap-item-insp .f { font-weight: 800; color: var(--tinta); display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.ap-item-insp .c { display: flex; gap: 14px; font-size: .8rem; color: var(--texto-2); margin: 6px 0 8px; flex-wrap: wrap; }
.ap-descarga { display: flex; align-items: center; gap: 14px; padding: 16px 20px; flex-wrap: wrap; }
.ap-descarga .ico-arch { width: 42px; height: 42px; border-radius: 10px; background: var(--acento-suave); color: var(--acento); display: inline-flex; align-items: center; justify-content: center; flex: none; }
.ap-descarga .ico-arch svg { width: 20px; height: 20px; }
.ap-descarga .ap-acc { margin-left: auto; display: flex; gap: 8px; flex-wrap: wrap; }
/* el detalle O&M (mismas cifras de siempre) en tarjetas de 2 columnas */
.ap .det { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 0; gap: 18px; }
.ap .det-bloque { border-radius: 12px; padding: 18px 20px; border-color: var(--ap-linea); box-shadow: 0 1px 2px rgba(15, 23, 42, .05); }
.ap .det-bloque h4 { font-size: .95rem; text-transform: none; letter-spacing: 0; color: var(--tinta); margin-bottom: 14px; }
.ap .det-pie { grid-column: 1 / -1; }
/* comparador dentro de su tarjeta */
.ap #comparar-cuerpo { padding: 18px 22px; }
.ap-cmp-sel { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
/* menú inferior del móvil */
.ap-nav-movil { display: none; }
.ap-velo { display: none; }

/* ---------- Panel de gestión v4 */
.ap-cliente { margin-bottom: 12px; overflow: hidden; }
.ap-cli-cab { display: grid; grid-template-columns: 22px 42px minmax(0, 1fr) 170px 150px 330px; gap: 16px; align-items: center; padding: 16px 20px; cursor: pointer; }
.ap-cli-cab:hover { background: #fbfcfd; }
.ap-ini { width: 42px; height: 42px; border-radius: 50%; background: #e8eef6; color: var(--marino); font-weight: 800; font-size: .8rem; display: inline-flex; align-items: center; justify-content: center; }
.ap-cli-nom { font-size: .95rem; font-weight: 800; color: var(--tinta); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ap-cli-meta { font-size: .8rem; color: var(--texto-3); margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ap-dato .et { font-size: .66rem; color: var(--texto-3); font-weight: 700; text-transform: uppercase; letter-spacing: .07em; }
.ap-dato .v { font-weight: 700; color: var(--tinta); font-size: .88rem; }
.ap-cli-acc { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }
.ap-cli-cuerpo { border-top: 1px solid var(--ap-linea); background: #fbfcfd; }
.ap-cli-estado { padding: 10px 20px 10px 100px; font-size: .8rem; color: var(--texto-3); border-bottom: 1px solid var(--ap-linea); }
.ap-fila-planta { display: grid; grid-template-columns: 22px 40px minmax(0, 1fr) 230px auto; gap: 14px; align-items: center; padding: 13px 20px 13px 58px; border-bottom: 1px solid var(--ap-linea); cursor: pointer; }
.ap-fila-planta:hover { background: #f7f9fc; }
.ap-fila-planta .ap-pl-ico { width: 40px; height: 40px; background: #fff; }
.ap-fila-planta .ap-pl-ico svg { width: 20px; height: 20px; }
.ap-fila-planta .der { display: flex; gap: 8px; justify-content: flex-end; align-items: center; flex-wrap: wrap; }
.ap-insp-planta { background: #fff; border-bottom: 1px solid var(--ap-linea); padding: 4px 20px 12px 130px; overflow-x: auto; }
.ap-insp-planta .ap-tabla { min-width: 640px; }
.ap-insp-planta .ap-tabla td, .ap-insp-planta .ap-tabla th { padding: 10px 10px; }
.ap-insp-planta .ap-tabla th { background: transparent; }
.ap-insp-planta .pasos-fila { display: flex; flex-wrap: wrap; gap: 6px 8px; align-items: center; }
.ap-cli-pie { display: flex; gap: 8px; padding: 12px 20px 14px 100px; background: #fff; flex-wrap: wrap; align-items: center; }
.ap-cli-pie .sub { margin-left: auto; font-size: .78rem; color: var(--texto-3); }
.ap .icono { width: 30px; height: 30px; }
/* tablero de trabajos por fases */
.ap-tablero { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: start; }
.ap-columna { background: #e9eef4; border-radius: 14px; padding: 12px; }
.ap-columna h3 { font-size: .74rem; display: flex; align-items: center; gap: 8px; padding: 4px 6px 12px; color: var(--texto-2); text-transform: uppercase; letter-spacing: .07em; margin: 0; }
.ap-columna h3 .ap-cuenta { background: #fff; color: var(--tinta); }
.ap-tarea { background: #fff; border: 1px solid var(--ap-linea); border-radius: 11px; padding: 14px; margin-bottom: 10px; box-shadow: 0 1px 2px rgba(15, 23, 42, .05); }
.ap-tarea:last-child { margin-bottom: 0; }
.ap-tarea .t { font-weight: 800; color: var(--tinta); font-size: .9rem; }
.ap-tarea .c { font-size: .8rem; color: var(--texto-3); margin: 2px 0 10px; }
.ap-tarea .fila { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.ap-tarea .cuando { font-size: .8rem; color: var(--texto-2); margin-top: 8px; }
.ap-tarea .botones { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
.ap-tarea .botones .btn { flex: 1; justify-content: center; }
.ap-columna .ap-vacio { padding: 18px 6px; font-size: .8rem; }
/* ajustes en rejilla */
.ap .gestion-top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ap .gestion-top .caja { border-radius: 12px; border-color: var(--ap-linea); }
.ap .caja { border-radius: 12px; border-color: var(--ap-linea); }

/* ---------- móvil */
@media (max-width: 1100px) {
  .ap-pl-cab { grid-template-columns: 22px 44px minmax(0, 1fr) 200px; }
  .ap-pl-cab .ap-pl-cifras { grid-column: 3 / -1; grid-row: 2; }
  .ap-cli-cab { grid-template-columns: 22px 42px minmax(0, 1fr) auto; }
  .ap-cli-cab .ap-dato { display: none; }
}
@media (max-width: 900px) {
  .ap { grid-template-columns: 1fr; }
  .ap-lat { position: fixed; left: 0; top: 0; bottom: 0; width: 270px; transform: translateX(-102%); transition: transform .22s ease; box-shadow: 0 0 40px rgba(15, 23, 42, .25); }
  .ap.menu-abierto .ap-lat { transform: none; }
  .ap.menu-abierto .ap-velo { display: block; position: fixed; inset: 0; background: rgba(11, 31, 51, .35); z-index: 19; }
  .ap-hamb { display: inline-flex; }
  .ap-barra { padding: 0 14px; gap: 10px; height: 58px; }
  .ap-pastilla, .ap-buscar, .ap-solo-esc { display: none !important; }
  .ap-barra .ap-der { margin-left: auto; }
  .ap-titulo { font-size: .7rem; overflow: hidden; text-overflow: ellipsis; }
  .ap-cont { padding: 18px 14px 96px; }
  .ap-cab h1, .ap-cab h2.titulo-panel { font-size: 1.35rem; }
  .ap-dos, .ap-rejilla2, .ap-ficha-cuerpo, .ap .det, .ap .gestion-top, .ap-tablero { grid-template-columns: minmax(0, 1fr); }
  .ap-tarjeta-cab, .ap-tarjeta-cuerpo { padding-left: 16px; padding-right: 16px; }
  .ap-lista > li { padding: 12px 16px; grid-template-columns: 34px minmax(0, 1fr); }
  .ap-lista > li > :nth-child(3) { grid-column: 2; justify-self: start; }
  .ap-lista.agenda > li { grid-template-columns: 50px minmax(0, 1fr); }
  .ap-nav-movil { display: grid; grid-template-columns: repeat(4, 1fr); position: fixed; left: 0; right: 0; bottom: 0; background: #fff; border-top: 1px solid var(--ap-linea); padding: 6px 4px calc(6px + env(safe-area-inset-bottom)); z-index: 18; }
  .ap-nav-movil button { display: flex; flex-direction: column; align-items: center; gap: 2px; font: inherit; font-size: .68rem; color: var(--texto-3); font-weight: 700; padding: 4px; background: none; border: 0; cursor: pointer; }
  .ap-nav-movil svg { width: 20px; height: 20px; }
  .ap-nav-movil button.activo { color: var(--acento); }
  .ap-herr .ap-der { margin-left: 0; width: 100%; } .ap-herr .ap-der select { flex: 1; min-width: 0; }
  /* tarjetas de planta */
  .ap-pl-cab { grid-template-columns: 40px minmax(0, 1fr); padding: 14px 16px; gap: 12px; }
  .ap-pl-cab .ap-chev { display: none; }
  .ap-pl-ico { width: 40px; height: 40px; }
  .ap-pl-cab .ap-pl-cifras, .ap-pl-cab .ap-pl-acc { grid-column: 1 / -1; grid-row: auto; }
  .ap-pl-acc .btn { flex: 1; justify-content: center; }
  .ap-pl-insp .ap-tabla td:first-child, .ap-pl-insp .ap-tabla th:first-child { padding-left: 16px; }
  .ap-pl-insp .prox-recom { padding-left: 16px; }
  .ap-ocultar-movil { display: none !important; }
  .ap-tabla td, .ap-tabla th { padding: 11px 10px; }
  .ap-ficha-cab .ap-acc { margin-left: 0; width: 100%; } .ap-ficha-cab .ap-acc .btn { flex: 1; justify-content: center; }
  .ap-lista-insp { flex-direction: row; overflow-x: auto; padding-bottom: 4px; }
  .ap-item-insp { min-width: 200px; }
  .ap-descarga .ap-acc { margin-left: 0; width: 100%; } .ap-descarga .ap-acc .btn { flex: 1; justify-content: center; }
  .ap #comparar-cuerpo { padding: 14px 12px; }
  .ap .proximo { flex-wrap: wrap; }
  /* panel */
  .ap-cli-cab { grid-template-columns: 42px minmax(0, 1fr); padding: 14px 16px; }
  .ap-cli-cab .ap-chev { display: none; }
  .ap-cli-acc { grid-column: 1 / -1; justify-content: flex-start; }
  .ap-cli-estado, .ap-cli-pie { padding-left: 16px; }
  .ap-cli-pie .sub { margin-left: 0; width: 100%; }
  .ap-fila-planta { grid-template-columns: 40px minmax(0, 1fr); padding: 13px 16px; }
  .ap-fila-planta .ap-chev { display: none; }
  .ap-fila-planta > div:nth-child(4), .ap-fila-planta > div:nth-child(5) { grid-column: 1 / -1; justify-content: flex-start; }
  .ap-insp-planta { padding: 4px 12px 12px; }
  #toast { left: 12px; right: 12px; bottom: 78px; max-width: none; }
  .ap .rosco-ley { min-width: 0; }
  .ap-ficha-cab .ap-acc { flex-direction: column; }
  .ap .proximo .btn { width: 100%; }
  .ap-tabla-tus thead { display: none; }
  .ap-tabla-tus tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; padding: 12px 16px; border-bottom: 1px solid var(--ap-linea); }
  .ap-tabla-tus tr:last-child { border-bottom: 0; }
  .ap-tabla-tus td { border: 0; padding: 2px 0; }
  .ap-tabla-tus td:nth-child(1) { grid-column: 1 / -1; }
  .ap-tabla-tus td:nth-child(3) { text-align: right; }
  .ap-tabla-tus td:nth-child(5) { display: none; }
  .pp-cab { flex-wrap: wrap; }
}
/* v4 · listas de actividad */
.ap-act { list-style: none; margin: 0; padding: 0; }
.ap-act li { padding: 11px 22px; border-bottom: 1px solid var(--linea); font-size: .86rem; color: var(--texto-2); }
.ap-act li:last-child { border-bottom: 0; }
.ap-act time, .ap #actividad time { margin-left: 8px; }
.ap #actividad { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 0; }
.ap #actividad li { padding: 9px 0; border-bottom: 1px dashed var(--linea); font-size: .86rem; color: var(--texto-2); }
.ap #tabla-encuestas { margin: 0; }
.ap .caja-solicitudes { border-radius: 12px; margin-bottom: 18px; }
.ap-insp-planta .chip.fase { font-size: .72rem; }
@media (max-width: 900px) { .ap-act li { padding: 10px 16px; } }
/* v4 · que ningún texto largo (referencias, nombres) ensanche la pantalla en el móvil */
.ap-cont { overflow-wrap: break-word; }
.ap-cont > .ap-vista { min-width: 0; }
@media (max-width: 900px) { .ap .cmp-elegir label { flex-wrap: wrap; } .ap .cmp-elegir select { width: 100%; } }
@media (max-width: 900px) { .ap .rosco-cuerpo { flex-direction: column; align-items: stretch; } .ap .rosco-cuerpo svg { align-self: center; } .ap .rosco-ley { width: 100%; } }
/* v4 · ajustes tras la revisión visual */
.ap .ap-act { display: block; } .ap .ap-act li { padding-left: 22px; } .ap .ap-act li::before { display: none; }
.ap #actividad li::before { top: 17px; }
.ap-fila-planta.abierta .ap-chev { transform: rotate(90deg); }
.ap-fila-planta { grid-template-columns: 22px 40px minmax(0, 1fr) minmax(0, 260px) auto; }
.ap-fila-planta .ap-chip { white-space: normal; }
@media (max-width: 900px) { .ap .ap-act li { padding-left: 16px; } .ap-fila-planta { grid-template-columns: 40px minmax(0, 1fr); } }
