/*
 * PTDBP Fuentes Integrador
 * - Sticky: última columna (Fuentes) siempre visible
 * - Ajuste de anchos de columnas
 * - Estilo compacto (similar al sitio viejo de Protestas)
 */

/* === 1) Sticky column: “Fuentes” siempre visible === */
.ptdbp-tablewrap{
  overflow-x: auto;
  position: relative;
}

.ptdbp-table th:last-child,
.ptdbp-table td:last-child{
  position: sticky;
  right: 0;
  z-index: 2;
  background: #fff;
  box-shadow: -2px 0 6px rgba(0,0,0,0.08);
}

.ptdbp-table th:last-child{
  z-index: 3;
  background: #f5f5f5;
}

/* Columna “Fuentes” compacta */
.ptdbp-table th:last-child,
.ptdbp-table td:last-child,
.ptdbpfi-fuentes-col{
  min-width: 72px;
  width: 72px;
  max-width: 72px;
  text-align: center;
  white-space: nowrap;
}

/* === 2) Ajuste de anchos (para reducir scroll horizontal) === */
/* Nota: estas reglas asumen el orden típico del listado de PTDBP:
   Fecha | Lugar | Etiquetas | Tipo | Demanda | Actor | Entidad | Resumen | Fuentes */

.ptdbp-table th:nth-child(1), .ptdbp-table td:nth-child(1){
  min-width: 90px;
}

.ptdbp-table th:nth-child(2), .ptdbp-table td:nth-child(2){
  min-width: 150px;
  max-width: 190px;
  white-space: normal;
}

/* ✅ Encoger “Etiquetas” */
.ptdbp-table th:nth-child(3), .ptdbp-table td:nth-child(3){
  min-width: 120px;
  max-width: 140px;
  white-space: normal;
}

.ptdbp-table th:nth-child(4), .ptdbp-table td:nth-child(4){
  min-width: 125px;
}

.ptdbp-table th:nth-child(5), .ptdbp-table td:nth-child(5){
  min-width: 160px;
}

.ptdbp-table th:nth-child(6), .ptdbp-table td:nth-child(6){
  min-width: 160px;
}

.ptdbp-table th:nth-child(7), .ptdbp-table td:nth-child(7){
  min-width: 130px;
}

.ptdbp-table th:nth-child(8), .ptdbp-table td:nth-child(8){
  min-width: 300px;
  max-width: 360px;
  white-space: normal;
}

/* === 3) Estilo compacto (similar al sitio viejo) === */

/* Base tipográfica */
.ptdbp-wrap,
.ptdbp-tablewrap{
  font-size: 12px;
  line-height: 1.35;
}

/* Tabla */
.ptdbp-table{
  font-size: 11px;
  line-height: 1.25;
  border-collapse: collapse;
  width: 100%;
  background: #fff;
  border: 1px solid #ddd;
}

.ptdbp-table th,
.ptdbp-table td{
  border: 1px solid #ddd;
  padding: 4px 6px;
  vertical-align: top;
}

.ptdbp-table th{
  background: #f5f5f5;
  color: #337ab7; /* azul tipo bootstrap clásico */
  font-weight: 700;
}

.ptdbp-table tbody tr:hover{
  background: #f9f9f9;
}

/* Enlaces */
.ptdbp-wrap a{
  color: #337ab7;
  text-decoration: none;
}
.ptdbp-wrap a:hover{
  text-decoration: underline;
}

/* Chips/etiquetas dentro de celdas (si existen) */
.ptdbp-table td .ptdbp-tag,
.ptdbp-table td .tag,
.ptdbp-table td .badge{
  display: inline-block;
  font-size: 11px;
  line-height: 1.2;
  padding: 1px 5px;
  margin: 0 3px 3px 0;
  border: 1px solid #ccc;
  background: #fafafa;
  border-radius: 3px;
}

/* Controles (filtros, inputs, selects) – compactos */
.ptdbp-controls input[type="text"],
.ptdbp-controls input[type="search"],
.ptdbp-controls input[type="number"],
.ptdbp-controls select{
  font-size: 12px;
  padding: 4px 6px;
  border: 1px solid #ccc;
  border-radius: 3px;
  height: auto;
}

/* Botones (buscar/exportar) */
.ptdbp-controls button,
.ptdbp-controls input[type="submit"],
.ptdbp-controls .button,
.ptdbp-controls a.button{
  font-size: 12px;
  padding: 4px 8px;
  border-radius: 3px;
  border: 1px solid #2e6da4;
  background: #337ab7;
  color: #fff;
  cursor: pointer;
  text-decoration: none;
}

.ptdbp-controls button:hover,
.ptdbp-controls input[type="submit"].hover,
.ptdbp-controls .button:hover,
.ptdbp-controls a.button:hover{
  filter: brightness(0.95);
}

/* Paginación (si el plugin usa clases comunes) */
.ptdbp-pagination a,
.ptdbp-pager a{
  display: inline-block;
  font-size: 12px;
  padding: 3px 8px;
  margin: 0 2px;
  border: 1px solid #ddd;
  background: #fff;
  color: #337ab7;
  text-decoration: none;
  border-radius: 3px;
}

.ptdbp-pagination a:hover,
.ptdbp-pager a:hover{
  background: #f5f5f5;
}

.ptdbp-pagination .current,
.ptdbp-pager .current{
  display: inline-block;
  font-size: 12px;
  padding: 3px 8px;
  margin: 0 2px;
  border: 1px solid #2e6da4;
  background: #337ab7;
  color: #fff;
  border-radius: 3px;
}

/* Ajuste extra para Etiquetas: permitir salto de línea sin “inflar” demasiado */
.ptdbp-table td:nth-child(3){
  word-break: break-word;
}

/* === 5) 10 columnas visibles (sin scroll horizontal): anchos uniformes ===
   Nota: usando table-layout: fixed, el navegador reparte el ancho entre todas las columnas.
   Esto prioriza que *todas* las columnas se vean a la vez, permitiendo que el texto haga wrap.
*/
.ptdbp-table{
  table-layout: fixed;
}

.ptdbp-table th,
.ptdbp-table td{
  min-width: 0 !important;
  max-width: none !important;
  width: auto !important;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.ptdbpfi-fuentes-col{
  width: auto !important;
}


/* =========================================================
   Compactación del filtro (Buscador Básico / Avanzado)
   Objetivo: ahorrar espacio vertical y alinear botones
   ========================================================= */

/* Tabs más compactos */
.ptdbp-wrapper .ptdbp-top{ padding:10px 12px; }
.ptdbp-wrapper .ptdbp-tabs{ margin:0 0 6px 0; gap:6px; }
.ptdbp-wrapper .ptdbp-tabs button{ padding:5px 10px; font-size:12px; }

/* Paneles: poner filtros + acciones en la misma fila cuando quepa */
#ptdbp-basic.ptdbp-panel,
#ptdbp-adv.ptdbp-panel{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:flex-end;
  padding:0;
  margin-top:0;
}
#ptdbp-basic .ptdbp-grid-basic,
#ptdbp-adv .ptdbp-grid-adv{
  flex:1 1 720px;
  margin-top:0;
}
#ptdbp-basic .ptdbp-row-actions,
#ptdbp-adv .ptdbp-row-actions{
  flex:0 0 auto;
  margin-top:0;
  padding-top:0;
  justify-content:flex-end;
  gap:6px;
}

/* En pantallas medianas/pequeñas, las acciones pasan abajo */
@media (max-width: 980px){
  #ptdbp-basic .ptdbp-row-actions,
  #ptdbp-adv .ptdbp-row-actions{ width:100%; justify-content:flex-start; }
}

/* Grid más compacto */
.ptdbp-wrapper .ptdbp-grid-basic{ grid-template-columns: 2.1fr 1fr 1fr 1.4fr; gap:8px; }
.ptdbp-wrapper .ptdbp-grid-adv{ gap:8px; }

/* Menos altura: reduce espacios y tamaños de controles */
.ptdbp-wrapper .ptdbp-field{ gap:4px; }
#ptdbp-basic .ptdbp-label{ display:none; }

.ptdbp-wrapper .ptdbp-input{
  height:28px;
  padding:5px 8px;
  font-size:12px;
}

/* Caja de etiquetas del básico: que no “infle” la altura */
#ptdbp-basic .ptdbp-tagsbox{
  padding:0;
  border:0;
  background:transparent;
}
#ptdbp-basic .ptdbp-tags-head{ display:none; }
#ptdbp-basic .ptdbp-help{ display:none; }
#ptdbp-basic .ptdbp-tags-desktop{ gap:6px; }
#ptdbp-basic .ptdbp-tags-display{ height:28px; padding:5px 8px; font-size:12px; }
#ptdbp-basic .ptdbp-tags-open{ height:28px; padding:5px 8px; font-size:12px; }
#ptdbp-basic .ptdbp-tags-native{ max-height:160px; font-size:12px; }

/* Botones más pequeños */
.ptdbp-wrapper .ptdbp-btn{ padding:6px 10px; font-size:12px; }
.ptdbp-wrapper .ptdbp-row-actions .ptdbp-btn{ margin:0; }

/* Cuando la pantalla es angosta, apila filtros en una columna */
@media (max-width: 720px){
  .ptdbp-wrapper .ptdbp-grid-basic,
  .ptdbp-wrapper .ptdbp-grid-adv{ grid-template-columns: 1fr; }
}

/* =========================================================
   Compactación extra solicitada (tipografía + Etiquetas)
   - Letra más pequeña en todo
   - Interlineado más ajustado
   - Caja de Etiquetas tipo “compact/accordion”
   ========================================================= */

/* Tipografía base (solo dentro de PTDBP; se añade por JS) */
.ptdbp-wrapper.ptdbpfi-skin{
  font-size:12px;
  line-height:1.15;
}
.ptdbp-wrapper.ptdbpfi-skin h1,
.ptdbp-wrapper.ptdbpfi-skin h2,
.ptdbp-wrapper.ptdbpfi-skin h3{
  line-height:1.15;
}

/* Inputs/selects/botones más “bajitos” */
.ptdbp-wrapper.ptdbpfi-skin input,
.ptdbp-wrapper.ptdbpfi-skin select,
.ptdbp-wrapper.ptdbpfi-skin button{
  font-size:12px;
  line-height:1.1;
}

/* Etiquetas: compactar sin perder funcionalidad del modal (ver lista…) */
#ptdbp-basic .ptdbp-tagsbox{
  padding:8px;
  border:1px solid #dde3ea;
  border-radius:6px;
  background:#fbfcfd;
}

/* Cabecera de etiquetas: deja solo Operador + toggle; oculta el label grande */
#ptdbp-basic .ptdbp-tags-head{
  display:flex;
  align-items:center;
  gap:6px;
  margin:0 0 6px 0;
}
#ptdbp-basic .ptdbp-tags-head label{
  display:none;
}
#ptdbp-basic .ptdbp-tags-head select{
  height:26px;
  padding:3px 6px;
}

/* Toggle tipo acordeón (inyectado por JS) */
.ptdbpfi-tags-toggle{
  margin-left:auto;
  height:26px;
  padding:0 8px;
  border:1px solid #cfd7df;
  background:#fff;
  border-radius:4px;
  cursor:pointer;
}

/* Cuerpo del acordeón */
.ptdbpfi-tags-body{ margin-top:6px; }
.ptdbpfi-tags-collapsed .ptdbpfi-tags-body{ display:none; }

/* Fallback: si no se crea wrapper, al colapsar se esconden los bloques grandes */
.ptdbpfi-tags-collapsed .ptdbp-tags-desktop,
.ptdbpfi-tags-collapsed .ptdbp-tags-native,
.ptdbpfi-tags-collapsed .ptdbp-tags-help{
  display:none !important;
}

/* En escritorio: ocultar el select múltiple nativo para ahorrar espacio (se usa modal “ver lista…”) */
@media (min-width: 721px){
  #ptdbp-basic .ptdbp-tags-native{ display:none; }
  #ptdbp-basic .ptdbp-help{ display:none; }
}

/* En móvil: mantener el select nativo visible (no siempre es cómodo el modal) */
@media (max-width: 720px){
  #ptdbp-basic .ptdbp-tags-desktop{ display:none; }
  #ptdbp-basic .ptdbp-tags-native{ display:block; max-height:140px; }
}

/* Campos con menos altura / menos padding dentro de Etiquetas */
#ptdbp-basic .ptdbp-tags-display{ height:26px; padding:4px 8px; }
#ptdbp-basic .ptdbp-tags-open{ height:26px; padding:4px 8px; }


/* ==============================
   Layout A (A=1) + Accordion Tags (B=2)
   Scope: only when JS adds .ptdbpfi-layout-a to the PTDBP wrapper
   ============================== */

.ptdbp-wrapper.ptdbpfi-layout-a,
.ptdbp-wrapper.ptdbpfi-layout-a *{
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: 8px !important;
  line-height: 1.2 !important;
}

/* Make inputs/selects compact */
.ptdbp-wrapper.ptdbpfi-layout-a input[type="text"],
.ptdbp-wrapper.ptdbpfi-layout-a input[type="search"],
.ptdbp-wrapper.ptdbpfi-layout-a input[type="date"],
.ptdbp-wrapper.ptdbpfi-layout-a select{
  height: 24px !important;
  padding: 3px 6px !important;
}

/* Reduce headings */
.ptdbp-wrapper.ptdbpfi-layout-a .ptdbp-title{ margin: 0 0 6px 0 !important; }

/* Tabs compact */
.ptdbp-wrapper.ptdbpfi-layout-a #ptdbp-tabs{ margin: 0 0 6px 0 !important; }
.ptdbp-wrapper.ptdbpfi-layout-a .ptdbp-tab{ padding: 6px 10px !important; }

/* GRID: Basic */
.ptdbp-wrapper.ptdbpfi-layout-a #ptdbp-basic .ptdbp-grid-basic,
.ptdbp-wrapper.ptdbpfi-layout-a #ptdbp-basic .ptdbp-grid{
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  column-gap: 10px !important;
  row-gap: 6px !important;
  align-items: end !important;
}

.ptdbp-wrapper.ptdbpfi-layout-a #ptdbp-basic .ptdbpfi-field-q{ grid-column: 1 / span 2 !important; grid-row: 1 !important; }
.ptdbp-wrapper.ptdbpfi-layout-a #ptdbp-basic .ptdbpfi-field-d1{ grid-column: 3 !important; grid-row: 1 !important; }
.ptdbp-wrapper.ptdbpfi-layout-a #ptdbp-basic .ptdbpfi-field-d2{ grid-column: 4 !important; grid-row: 1 !important; }
.ptdbp-wrapper.ptdbpfi-layout-a #ptdbp-basic .ptdbpfi-field-tags-basic{ grid-column: 5 !important; grid-row: 1 !important; }

/* GRID: Advanced (includes cloned keyword/date fields) */
.ptdbp-wrapper.ptdbpfi-layout-a #ptdbp-adv .ptdbp-grid-adv,
.ptdbp-wrapper.ptdbpfi-layout-a #ptdbp-adv .ptdbp-grid{
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  column-gap: 10px !important;
  row-gap: 6px !important;
  align-items: end !important;
}

/* Desired positions (approx. old site) */
.ptdbp-wrapper.ptdbpfi-layout-a #ptdbp-adv .ptdbpfi-field-q{ grid-column: 1 / span 2 !important; grid-row: 1 !important; }
.ptdbp-wrapper.ptdbpfi-layout-a #ptdbp-adv .ptdbpfi-field-prov{ grid-column: 3 !important; grid-row: 1 !important; }
.ptdbp-wrapper.ptdbpfi-layout-a #ptdbp-adv .ptdbpfi-field-tipo{ grid-column: 4 !important; grid-row: 1 !important; }
.ptdbp-wrapper.ptdbpfi-layout-a #ptdbp-adv .ptdbpfi-field-entidad{ grid-column: 5 !important; grid-row: 1 !important; }

.ptdbp-wrapper.ptdbpfi-layout-a #ptdbp-adv .ptdbpfi-field-d1{ grid-column: 1 !important; grid-row: 2 !important; }
.ptdbp-wrapper.ptdbpfi-layout-a #ptdbp-adv .ptdbpfi-field-canton{ grid-column: 2 !important; grid-row: 2 !important; }
.ptdbp-wrapper.ptdbpfi-layout-a #ptdbp-adv .ptdbpfi-field-actor{ grid-column: 3 !important; grid-row: 2 !important; }
.ptdbp-wrapper.ptdbpfi-layout-a #ptdbp-adv .ptdbpfi-field-demanda{ grid-column: 4 !important; grid-row: 2 !important; }
.ptdbp-wrapper.ptdbpfi-layout-a #ptdbp-adv .ptdbpfi-field-tags-adv{ grid-column: 5 !important; grid-row: 2 !important; }

.ptdbp-wrapper.ptdbpfi-layout-a #ptdbp-adv .ptdbpfi-field-d2{ grid-column: 1 !important; grid-row: 3 !important; }
.ptdbp-wrapper.ptdbpfi-layout-a #ptdbp-adv .ptdbpfi-field-distrito{ grid-column: 2 !important; grid-row: 3 !important; }

/* Make each field label tighter */
.ptdbp-wrapper.ptdbpfi-layout-a .ptdbp-field label,
.ptdbp-wrapper.ptdbpfi-layout-a .ptdbp-field-tags label{ margin-bottom: 2px !important; font-weight: 600 !important; }

/* Actions row: inline, right aligned */
.ptdbp-wrapper.ptdbpfi-layout-a .ptdbp-actions{
  margin-top: 6px !important;
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: flex-end !important;
  gap: 6px !important;
}

.ptdbp-wrapper.ptdbpfi-layout-a .ptdbp-actions button{
  padding: 4px 8px !important;
  border-radius: 4px !important;
}

/* Accordion tags */
.ptdbp-wrapper.ptdbpfi-layout-a .ptdbpfi-accordion-toggle{
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 2px 6px !important;
  border: 1px solid #d0d7de !important;
  border-radius: 4px !important;
  background: #f6f8fa !important;
  cursor: pointer !important;
  margin-left: 6px !important;
}

.ptdbp-wrapper.ptdbpfi-layout-a .ptdbpfi-accordion-body{
  margin-top: 4px !important;
  padding: 6px !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 6px !important;
  background: #fff !important;
}

/* Table: force 10 equal columns */
.ptdbp-wrapper.ptdbpfi-layout-a table.ptdbp-table{
  table-layout: fixed !important;
  width: 100% !important;
}

.ptdbp-wrapper.ptdbpfi-layout-a table.ptdbp-table th,
.ptdbp-wrapper.ptdbpfi-layout-a table.ptdbp-table td{
  width: 10% !important;
  max-width: 10% !important;
  padding: 4px 6px !important;
  vertical-align: top !important;
  word-break: break-word !important;
  overflow-wrap: anywhere !important;
}

/* Keep chips compact */
.ptdbp-wrapper.ptdbpfi-layout-a .ptdbp-tag{
  padding: 1px 4px !important;
  margin: 1px 2px 0 0 !important;
}

