/* Documentos electrónicos (SRI) — estilos propios del módulo.
   Origen: netguard feature/citysecurity-sri-integration @ 4e46224.
   Parte 1: reglas SRI que la referencia añadió a su main.css (mismo orden).
   Parte 2: electronic-documents.css de la referencia, sin reglas de clases que el módulo no usa.
   Parte 3: ajustes propios de NetVisitor (al final del archivo).
   No se modifica el main.css general de NetVisitor. */

.sri-pagination-footer {
  flex-wrap: wrap;
  gap: 12px 20px;
}
.sri-page-size,
.sri-page-summary {
  color: #706F8E;
  font-size: 13px;
}
.sri-page-size select {
  min-width: 54px;
  margin: 0 4px;
  padding: 4px 20px 4px 7px;
  border: 1px solid #dfe1e8;
  border-radius: 4px;
  background: #fff;
  color: #26233a;
}
.electronic-documents .datatable_pagination .pagination_button:disabled {
  opacity: .45;
  cursor: not-allowed;
}
.app #render-electronic-documents span .label {
  flex: 1 1 auto;
  min-width: 0;
  line-height: 1.2;
  overflow-wrap: anywhere;
}
.app #render-electronic-documents .sidebar_item_label {
  padding-top: 12px;
  padding-bottom: 12px;
}
.app #render-electronic-documents .label {
  display: block;
  max-width: 112px;
  font-size: 0;
  line-height: 1.15;
  text-align: left;
}
.app #render-electronic-documents .label::before,
.app #render-electronic-documents .label::after {
  display: block;
  font-size: 12px;
  white-space: nowrap;
}
.app #render-electronic-documents .label::before {
  content: "Documentos";
}
.app #render-electronic-documents .label::after {
  content: "Electrónicos";
}

/* En la referencia este bloque quedó anidado por error en @media (max-width: 640px)
   (llave sin cerrar en su main.css). Sus propias media queries de 1024/800 px muestran
   que es para todos los tamaños; sin él, en escritorio la tabla se recorta y el
   detalle queda sin estilos. */
/* Electronic documents: keep controls and content inside the viewport. */
.electronic-documents {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}
.electronic-documents__header {
  flex-wrap: wrap;
  gap: 12px;
}
.electronic-documents__header .datatable_title,
.electronic-documents__header .datatable_tools {
  min-width: 0;
}
.electronic-documents__header .datatable_tools {
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}
.electronic-documents__header .search_input,
.electronic-documents__header .datatable_button {
  max-width: 100%;
}
.sri-filters {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  max-width: 100%;
}
.sri-filters .search_input {
  min-width: 0;
  max-width: 100%;
}
.electronic-documents__table-wrapper {
  max-width: 100%;
  overflow-x: auto;
}
.electronic-documents__table-wrapper .datatable_content {
  min-width: 980px;
  table-layout: fixed;
}
.electronic-documents__table-wrapper th,
.electronic-documents__table-wrapper td {
  overflow-wrap: anywhere;
  word-break: break-word;
}
.electronic-documents__table-wrapper th:first-child,
.electronic-documents__table-wrapper td:first-child {
  width: 210px;
  font-size: 12px;
}
.sri-invoice-card {
  display: flex;
  align-items: center;
  gap: 12px;
  max-width: 100%;
  padding: 14px;
  margin-bottom: 16px;
  border: 1px solid #e9eaef;
  border-radius: 10px;
  background: #f8f9fc;
  box-shadow: 0 2px 8px rgba(38, 35, 58, 0.06);
}
.sri-invoice-card__icon {
  display: grid;
  flex: 0 0 38px;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 8px;
  color: #4c4673;
  background: #e8eafa;
  font-size: 18px;
}
.sri-invoice-card__content {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  flex-direction: column;
  gap: 2px;
}
.sri-invoice-card__content span,
.sri-invoice-card__content small {
  overflow-wrap: anywhere;
}
.sri-invoice-card__content small {
  color: #706f8e;
}
.sri-invoice-card__status {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 4px;
}
.sri-detail-section--compact {
  max-width: 100%;
  overflow-wrap: anywhere;
}
.sri-document-preview {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
}
.sri-invoice-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  min-width: 32px;
  height: 32px;
  padding: 0;
  background-color: #4c4673;
  color: #ffffff;
}
.sri-invoice-button:disabled {
  cursor: wait;
  opacity: 0.65;
}
.sri-document-preview .datatable_button:disabled {
  cursor: wait;
  opacity: 0.65;
}
.sri-evidence-message {
  color: #706f8e;
  font-size: 12px;
}
.sri-detail-grid {
  display: grid;
  grid-template-columns: minmax(100px, 0.65fr) minmax(0, 1.35fr);
  gap: 8px 12px;
  margin: 0;
}
.sri-detail-grid dt {
  color: #706f8e;
  font-size: 12px;
  font-weight: 700;
}
.sri-detail-grid dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}

@media screen and (max-width: 1024px) {
  .electronic-documents__table-wrapper th:first-child,
  .electronic-documents__table-wrapper td:first-child {
    width: 170px;
    font-size: 11px;
  }
  .electronic-documents__header .datatable_title h1 {
    font-size: 26px;
  }
}

@media screen and (max-width: 800px) {
  .electronic-documents__header .datatable_title,
  .electronic-documents__header .datatable_tools {
    width: 100%;
  }
  .electronic-documents__header .datatable_tools {
    justify-content: flex-start;
  }
  .sri-invoice-card {
    align-items: flex-start;
  }
  .sri-invoice-card__status {
    flex-direction: column;
    align-items: flex-end;
  }
}

.electronic-documents { margin: 0 32px 32px; background: #fff; border: 1px solid #e5e7eb; border-radius: 16px; box-shadow: 0 2px 8px rgba(38,35,58,.08); overflow: hidden; }
.electronic-documents__header { border-bottom: 1px solid #e5e7eb; }
.sri-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 14px 16px; background: #f8fafc; border-bottom: 1px solid #e5e7eb; }
.sri-checkbox { display: inline-flex; align-items: center; gap: 6px; padding: 6px 8px; font-size: 13px; color: #475569; }
.sri-context { padding: 0 16px 12px; color: #64748b; font-size: 13px; }
.sri-notice { margin: 12px 16px 0; padding: 10px 12px; border-radius: 6px; background: #fff7ed; color: #9a3412; font-size: 13px; }
.sri-filter-help { margin: 0 16px 12px; color: #64748b; font-size: 12px; }
.electronic-documents__table-wrapper { overflow-x: auto; }
.sri-filters .search_input { transition: border-color .15s ease, box-shadow .15s ease; }
.sri-filters .search_input:focus { border-color: #a8cfa3; box-shadow: 0 0 0 2px rgba(93,189,81,.12); outline: none; }
.sri-filters select.search_input:hover { border-color: #c4d4c1; }
.sri-error { color: #b91c1c; }
.sri-active-client { display: flex; flex-direction: column; justify-content: center; min-width: 190px; min-height: 32px; padding: 3px 10px; border-left: 3px solid #5dbd51; background: #fff; }
.sri-active-client span { color: #64748b; font-size: 10px; }
.sri-active-client strong { overflow: hidden; color: #26233a; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.app .sidebar_item#render-electronic-documents span .label { display: inline-block; color: #ffffff; font-weight: 600; white-space: nowrap; }
.electronic-documents .datatable_button, .electronic-documents .sri-detail-button { min-height: 32px; cursor: pointer; font-weight: 600; opacity: 1; visibility: visible; }
.electronic-documents .sri-detail-button { padding: 5px 10px; border: 0; border-radius: 4px; background: #5dbd51; color: #ffffff; }
.electronic-documents .datatable_button:hover, .electronic-documents .sri-detail-button:hover { filter: brightness(.92); }
.sri-dashboard { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; padding: 16px; }
.sri-summary-card { min-height: 68px; padding: 12px; border: 1px solid #e2e8f0; border-radius: 8px; background: #f8fafc; color: #475569; font-size: 12px; }
.sri-summary-card strong, .sri-summary-card span { display: block; }
.sri-summary-card strong { color: #26233a; margin-bottom: 8px; }
.sri-badge { display: inline-block; padding: 3px 7px; border-radius: 10px; font-size: 11px; font-weight: 600; white-space: nowrap; }
.sri-badge--verde { background: #dcfce7; color: #166534; }.sri-badge--ambar { background: #fef3c7; color: #92400e; }.sri-badge--rojo { background: #fee2e2; color: #991b1b; }.sri-badge--gris { background: #e5e7eb; color: #374151; }
.sri-badge--state { background: #eef2ff; color: #3730a3; }
.sri-thumb-icon { color: #2563eb; }
.sri-detail-section { margin-bottom: 22px; }.sri-detail-section h3, .sri-plate-alert h3 { margin: 0 0 10px; color: #475569; font-size: 15px; }.sri-detail-section p, .sri-plate-alert p { margin: 6px 0; font-size: 13px; color: #475569; white-space: normal; }
.sri-config-rule { display: flex; flex-direction: column; gap: 5px; color: #475569; font-size: 12px; margin-bottom: 10px; }.sri-config-rule select { width: 100%; }.sri-config-rule { margin-bottom: 12px; }
.sri-plate-alert { margin: 18px 0; padding: 14px; border-left: 4px solid #f59e0b; background: #fffbeb; border-radius: 6px; }
.sri-evidence { display: block; width: 100%; max-height: 340px; object-fit: contain; border-radius: 8px; background: #f1f5f9; }
@media (max-width: 1024px) { .sri-dashboard { grid-template-columns: repeat(2, 1fr); } .electronic-documents { margin: 0 16px 16px; overflow-x: auto; } }

/* One readable validation cell; the two business values remain independent. */
.electronic-documents .sri-validation-cell { width: 215px; text-align: left; }
.electronic-documents th.sri-validation-cell { padding: 8px 10px; vertical-align: middle; font-size: 12px; font-weight: 700; line-height: 1.25; }
.electronic-documents th.sri-validation-cell small { display: block; margin-top: 4px; color: #475569; font-size: 10px; font-weight: 500; letter-spacing: .02em; line-height: 1.2; }
.electronic-documents td.sri-validation-cell { padding: 6px 8px; vertical-align: middle; white-space: normal; overflow-wrap: anywhere; text-overflow: clip; }
.sri-validation-legend { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px 12px; margin: 0 16px 12px; padding: 10px 12px; border: 1px solid #e2e8f0; border-radius: 8px; background: #f8fafc; color: #1f2937; font-size: 12px; }
.sri-validation-legend__item { display: flex; align-items: flex-start; gap: 8px; min-width: 0; padding: 2px 4px; }
.sri-validation-legend__item > span:last-child { min-width: 0; }
.sri-validation-legend__item strong { display: block; color: #111827; font-size: 12.5px; line-height: 1.25; }
.sri-validation-legend__swatch { width: 10px; height: 10px; flex: 0 0 10px; margin-top: 2px; border-radius: 50%; }
.sri-validation-legend__item--verde .sri-validation-legend__swatch { background: #166534; }.sri-validation-legend__item--ambar .sri-validation-legend__swatch { background: #92400e; }.sri-validation-legend__item--rojo .sri-validation-legend__swatch { background: #991b1b; }.sri-validation-legend__item--gris .sri-validation-legend__swatch { background: #374151; }
.sri-validation-legend__description { display: block; margin-top: 2px; color: #374151; font-size: 11.5px; line-height: 1.3; }
.electronic-documents td.sri-validation-cell--verde { --sri-validation-bg: #eef8f0; --sri-validation-hover: #e6f4e9; --sri-validation-selected: #dff0e3; --sri-validation-accent: #2f855a; }
.electronic-documents td.sri-validation-cell--ambar { --sri-validation-bg: #fff8e7; --sri-validation-hover: #fff3d5; --sri-validation-selected: #ffedc2; --sri-validation-accent: #b7791f; }
.electronic-documents td.sri-validation-cell--rojo { --sri-validation-bg: #fff1f1; --sri-validation-hover: #fde7e7; --sri-validation-selected: #fbdcdc; --sri-validation-accent: #c24141; }
.electronic-documents td.sri-validation-cell--gris { --sri-validation-bg: #f3f4f6; --sri-validation-hover: #eceff3; --sri-validation-selected: #e4e7ec; --sri-validation-accent: #667085; }
.electronic-documents td.sri-validation-cell {
  box-sizing: border-box;
  background-color: var(--sri-validation-bg);
  box-shadow: inset 3px 0 0 var(--sri-validation-accent);
  color: #111827;
  transition: background-color 160ms ease, box-shadow 160ms ease;
}
.electronic-documents .datatable_content tbody tr:hover td.sri-validation-cell,
.electronic-documents .datatable_content tbody tr:focus-within td.sri-validation-cell {
  background-color: var(--sri-validation-hover);
  box-shadow: inset 3px 0 0 var(--sri-validation-accent), inset 0 0 0 1px rgba(17, 24, 39, .06);
  color: #111827;
}
.electronic-documents .datatable_content tbody tr[aria-selected="true"] td.sri-validation-cell,
.electronic-documents .datatable_content tbody tr.selected td.sri-validation-cell,
.electronic-documents .datatable_content tbody tr.is-selected td.sri-validation-cell {
  background-color: var(--sri-validation-selected);
  box-shadow: inset 3px 0 0 var(--sri-validation-accent), inset 0 0 0 1px rgba(17, 24, 39, .1);
  color: #111827;
}
@media (prefers-reduced-motion: reduce) {
  .electronic-documents td.sri-validation-cell { transition: none; }
}
.electronic-documents td.sri-validation-cell .sri-validation-status__sri { color: #111827; font-weight: 600; }
.electronic-documents td.sri-validation-cell .sri-validation-status__reason { color: #374151; opacity: 1; }
.sri-validation-status { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; line-height: 1.25; text-align: left; }
.sri-validation-status .sri-badge { max-width: 100%; box-sizing: border-box; border-radius: 5px; white-space: normal; overflow-wrap: anywhere; }
.sri-validation-status__sri { color: #334155; font-size: 11px; font-weight: 500; }
.sri-validation-status__reason { color: #64748b; font-size: 10.5px; line-height: 1.25; opacity: .82; }

@media (max-width: 800px) { .sri-validation-legend { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .sri-validation-legend { grid-template-columns: minmax(0, 1fr); } }
#sri-detail-panel .sri-invoice-card { flex-wrap: wrap; }
#sri-detail-panel .sri-invoice-card__status { flex-basis: 100%; align-items: flex-start; justify-content: flex-start; padding-top: 10px; border-top: 1px solid #e2e8f0; }

/* Administrative settings, scoped to SRI so legacy editors are unaffected. */
.sri-config-panel .entity_editor_body { overflow-wrap: anywhere; }
.sri-config-panel p { margin: 6px 0 14px; color: #64748b; font-size: 12px; line-height: 1.5; }
.sri-config-panel .sri-config-intro { margin-top: 0; color: #475569; }
.sri-config-panel .sri-config-section { min-width: 0; margin: 0 0 20px; padding: 0 0 12px; border: 0; border-bottom: 1px solid #e2e8f0; }
.sri-config-panel legend { margin-bottom: 12px; padding: 0; color: #26233a; font-size: 14px; font-weight: 600; }
.sri-config-panel label { display: block; margin-bottom: 6px; color: #334155; font-size: 12px; }
.sri-config-panel .input_filled { display: block; width: 100%; min-width: 0; box-sizing: border-box; padding: 8px 10px; border: 1px solid #cbd5e1; border-radius: 5px; background: #fff; font: inherit; font-size: 13px; }
.sri-config-panel textarea.input_filled { min-height: 72px; resize: vertical; }
.sri-config-panel .input_filled:focus { outline: 2px solid #a8cfa3; outline-offset: 1px; }
.sri-config-panel .sri-config-caution { padding-left: 9px; border-left: 2px solid #d6a34e; color: #75511c; }
.sri-config-panel .sri-config-capacity { margin-bottom: 0; padding: 10px; border-radius: 5px; background: #f1f5f9; color: #334155; }
.sri-config-panel .sri-config-footnote { font-size: 11px; }
.sri-config-panel .datatable_button:disabled { opacity: .65; cursor: wait; }

/* Parte 3 — ajuste propio de NetVisitor: su main.css aplica elipsis a todas las celdas
   (.datatable_content tbody tr td) y a 1366 px ocultaba el botón PDF de la columna Detalle. */
.electronic-documents__table-wrapper th:last-child,
.electronic-documents__table-wrapper td:last-child {
  width: 132px;
  text-overflow: clip;
}

/* NetVisitor colapsa el sidebar a solo iconos en <=1024 px (.app .sidebar_item span .label
   { display: none }); las reglas con id de arriba volvían a mostrar esta etiqueta. */
@media screen and (max-width: 1024px) {
  .app .sidebar_item#render-electronic-documents span .label { display: none; }
}

/* El atributo hidden debe ocultar de verdad: las reglas de botones (display:flex) lo anulaban
   y el botón Configuración se veía aunque el backend devolviera configure=false. */
.electronic-documents [hidden] { display: none !important; }
