/* SG-SST: marco del módulo (cabecera, menú de secciones, panel, responsable, Mesa SST).
   Los estilos de cada etapa van en sst-evaluacion.css, sst-salud.css y sst-sistema.css. */

.sst { display: grid; gap: 14px; }
.sst-suave { color: var(--tinta-suave); font-size: 12.5px; }
.sst-cabeza .cuerpo { display: grid; gap: 10px; }
.sst-cabeza-fila { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.sst-cabeza-datos { flex: 1 1 260px; min-width: 0; }
.sst-cabeza-datos h3 { margin: 0 0 2px; font-size: 16px; }
.sst-grupo, .sst-puntaje { display: grid; place-items: center; text-align: center; border-radius: var(--radio-sm); padding: 8px 14px; min-width: 96px; }
.sst-grupo { background: var(--marca-50); color: var(--marca-700); }
.sst-grupo b, .sst-puntaje b { font-family: Poppins, Inter, sans-serif; font-size: 20px; line-height: 1.1; }
.sst-grupo span, .sst-puntaje span { font-size: 11.5px; }
.sst-puntaje { background: var(--fondo); color: var(--tinta-suave); }
.sst-puntaje.verde { background: var(--exito-50); color: var(--exito); }
.sst-puntaje.ambar { background: var(--aviso-50); color: var(--aviso); }
.sst-puntaje.rojo { background: var(--peligro-50); color: var(--peligro); }

.sst-menu { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; }
.sst-menu a { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; border: 1px solid var(--linea); background: var(--tarjeta); color: var(--tinta);
  border-radius: 999px; padding: 6px 12px; font-size: 12.5px; font-weight: 600; text-decoration: none; transition: background var(--duracion-corta, .15s), border-color var(--duracion-corta, .15s); }
.sst-menu a:hover { border-color: var(--marca-300); }
.sst-menu a.activa { background: var(--marca-600); border-color: var(--marca-600); color: #fff; }

.sst-panel { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; align-items: start; }
.sst-panel ul, .sst-responsable ul { margin: 4px 0 0; padding-left: 18px; }
.sst-pendientes { list-style: none; padding: 0 !important; margin: 0; display: grid; gap: 6px; }
.sst-pendientes li { display: flex; justify-content: space-between; gap: 10px; border-left: 3px solid var(--linea); padding: 4px 0 4px 10px; }
.sst-pendientes li.rojo { border-left-color: var(--peligro); }
.sst-pendientes li.ambar { border-left-color: var(--aviso); }
.sst-pendientes li small { color: var(--tinta-suave); white-space: nowrap; }

.sst-responsable { display: grid; gap: 14px; }
.sst-modalidades { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; margin-bottom: 10px; }
.sst-modalidad { display: grid; gap: 4px; border: 1.5px solid var(--linea); border-radius: var(--radio-sm); padding: 12px; cursor: pointer; }
.sst-modalidad.activa { border-color: var(--marca-600); background: var(--marca-50); }
.sst-modalidad input { justify-self: start; }
.sst-modalidad span { color: var(--tinta-suave); font-size: 12.5px; }
.sst-ficha { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.sst-ficha > div { flex: 1 1 260px; }
.sst-buscar { min-width: 220px; }

:root[data-tema="oscuro"] .sst-grupo { background: #17352a; color: var(--marca-300); }
:root[data-tema="oscuro"] .sst-modalidad.activa { background: #17352a; }
:root[data-tema="oscuro"] .sst-puntaje.verde { background: #163326; }
:root[data-tema="oscuro"] .sst-puntaje.ambar { background: #3a2c14; }
:root[data-tema="oscuro"] .sst-puntaje.rojo { background: #3a1a1a; }

@media (max-width: 640px) {
  .sst-cabeza-fila { gap: 10px; }
  .sst-buscar { min-width: 0; width: 100%; }
}
.sst > [data-seccion] { min-width: 0; }
