/* Subastas — estilos del dashboard */

:root {
  --bg:        #f7f8fa;
  --surface:   #ffffff;
  --border:    #e3e6eb;
  --text:      #1c2128;
  --text-mut:  #5e6772;
  --primary:   #1f6feb;
  --primary-d: #1c5fd0;
  --red:       #dc3545;
  --amber:     #b87900;
  --green:     #1a7f37;
  --bg-red:    #fbe9eb;
  --bg-amber:  #fff4d6;
  --bg-green:  #dff5e3;
  --bg-blue:   #e2efff;
  --radius:    8px;
  --radius-sm: 4px;
  --shadow:    0 1px 2px rgba(0,0,0,.04);
  --shadow-md: 0 4px 12px rgba(0,0,0,.06);
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Inter', Roboto, sans-serif;
  font-size: 14px;
  color: var(--text);
  background: var(--bg);
  line-height: 1.45;
}

a { color: var(--primary); text-decoration: none; }
a:hover { text-decoration: underline; }

.mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 13px;
}

.muted, .link-muted { color: var(--text-mut); }
.text-red    { color: var(--red); }
.text-amber  { color: var(--amber); }
.text-green  { color: var(--green); }
.bold        { font-weight: 600; }

/* ============================================================
   LOGIN
   ============================================================ */
.login-body {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  background: linear-gradient(180deg, #eef1f6 0%, #f7f8fa 50%);
  padding: 20px;
}
.login-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: var(--shadow-md);
  padding: 40px 36px;
  width: 100%;
  max-width: 380px;
}
.login-brand { text-align: center; margin-bottom: 28px; }
.brand-mark {
  width: 56px; height: 56px;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--primary), #6c4ee3);
  color: white;
  font-size: 28px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 16px;
}
.login-brand h1 { font-size: 22px; font-weight: 600; margin: 0 0 4px; }
.login-brand h1 span { color: var(--text-mut); font-weight: 500; }
.brand-sub { margin: 0; color: var(--text-mut); font-size: 13px; }

.login-form label {
  display: block;
  margin-bottom: 14px;
}
.login-form label span {
  display: block;
  font-size: 12px;
  font-weight: 500;
  color: var(--text-mut);
  margin-bottom: 4px;
  text-transform: uppercase;
  letter-spacing: 0.4px;
}
.login-form input {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  font-size: 14px;
  background: var(--surface);
  transition: border-color .15s, box-shadow .15s;
}
.login-form input:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(31,111,235,.12);
}
.login-footer {
  margin-top: 24px;
  text-align: center;
  color: var(--text-mut);
  font-size: 12px;
}

/* ============================================================
   ALERT
   ============================================================ */
.alert {
  padding: 10px 14px;
  border-radius: var(--radius);
  margin-bottom: 16px;
  font-size: 13px;
}
.alert-error {
  background: var(--bg-red);
  color: var(--red);
  border: 1px solid #f5b8be;
}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn-primary {
  display: inline-block;
  width: 100%;
  padding: 10px 16px;
  background: var(--primary);
  color: white;
  border: none;
  border-radius: var(--radius);
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: background .15s;
}
.btn-primary:hover { background: var(--primary-d); }

.btn-secondary {
  display: inline-block;
  padding: 7px 14px;
  background: var(--surface);
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  font-size: 13px;
  cursor: pointer;
  text-decoration: none;
  transition: background .15s, border-color .15s;
}
.btn-secondary:hover {
  background: #f0f2f5;
  border-color: #d0d4da;
  text-decoration: none;
}

.btn-tiny {
  display: inline-block;
  padding: 4px 10px;
  background: var(--bg-blue);
  color: var(--primary);
  border-radius: var(--radius-sm);
  font-size: 12px;
  font-weight: 500;
}
.btn-tiny:hover { text-decoration: none; background: #d1e4ff; }

/* ============================================================
   TOPBAR
   ============================================================ */
.topbar {
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  position: sticky; top: 0; z-index: 50;
}
.topbar-inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 12px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.brand-link {
  display: flex; align-items: center;
  gap: 8px;
  color: var(--text);
  font-size: 15px;
  font-weight: 500;
}
.brand-link:hover { text-decoration: none; }
.brand-mark-sm {
  width: 28px; height: 28px;
  background: linear-gradient(135deg, var(--primary), #6c4ee3);
  color: white;
  border-radius: 6px;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700;
  font-size: 14px;
}
.brand-sep { color: var(--text-mut); }
.topbar-right {
  display: flex; align-items: center;
  gap: 16px;
  font-size: 13px;
}
.user-tag {
  padding: 4px 10px;
  background: var(--bg-blue);
  color: var(--primary);
  border-radius: 999px;
  font-weight: 500;
  font-size: 12px;
}

/* ============================================================
   CONTAINER
   ============================================================ */
.container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 24px;
}

/* ============================================================
   KPIs
   ============================================================ */
.kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}
.kpi {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px 18px;
  box-shadow: var(--shadow);
}
.kpi-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: var(--text-mut);
  font-weight: 500;
  margin-bottom: 6px;
}
.kpi-value {
  font-size: 28px;
  font-weight: 600;
  line-height: 1;
}

/* ============================================================
   RUN BANNER
   ============================================================ */
.run-banner {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 10px 16px;
  margin-bottom: 16px;
  font-size: 12px;
  color: var(--text-mut);
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.run-banner strong { color: var(--text); font-weight: 500; }
.run-banner .sep { color: #c4c9d0; }
.run-dot {
  width: 8px; height: 8px;
  background: var(--green);
  border-radius: 50%;
  box-shadow: 0 0 0 3px rgba(26,127,55,.18);
}

/* ============================================================
   FILTERS
   ============================================================ */
.filters {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px 18px;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}
.filters form {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.filters select, .filters input[type="search"] {
  padding: 7px 10px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 13px;
  background: var(--surface);
  min-width: 140px;
}
.filters input[type="search"] { min-width: 200px; }
.results-count {
  color: var(--text-mut);
  font-size: 13px;
}
.results-count strong { color: var(--text); font-weight: 600; }

/* ============================================================
   TABLA
   ============================================================ */
.table-wrap {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow-x: auto;
  box-shadow: var(--shadow);
}
.subastas-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12.5px;
  table-layout: auto;
}
.subastas-table th {
  text-align: left;
  padding: 8px 8px;
  background: #f6f8fa;
  border-bottom: 1px solid var(--border);
  font-weight: 500;
  color: var(--text-mut);
  font-size: 10.5px;
  text-transform: uppercase;
  letter-spacing: 0.2px;
  white-space: nowrap;
}
.subastas-table td {
  padding: 8px 8px;
  border-bottom: 1px solid #eef0f3;
  white-space: nowrap;
  vertical-align: top;
}
/* permitir multilinea solo donde tiene sentido */
.subastas-table td .deudor-nombre,
.subastas-table .badge-cat { white-space: normal; }
.subastas-table tr:last-child td { border-bottom: none; }
.subastas-table tr:hover { background: #f9fafc; }
.subastas-table .mono { white-space: nowrap; font-size: 11.5px; }

.row-urgent { background: #fff8f7 !important; }
.row-urgent:hover { background: #fff0ee !important; }

.juz {
  max-width: 380px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ============================================================
   BADGES
   ============================================================ */
.badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 500;
  text-transform: capitalize;
}
.badge-en_curso       { background: var(--bg-red);   color: var(--red); }
.badge-proxima        { background: var(--bg-amber); color: var(--amber); }
.badge-finalizada     { background: #ececec;        color: var(--text-mut); }
.badge-suspendida     { background: #ececec;        color: var(--text-mut); }
.badge-cancelada      { background: #ececec;        color: var(--text-mut); }
.badge-desconocido    { background: #ececec;        color: var(--text-mut); }
.badge-fase           { background: var(--bg-blue);  color: var(--primary); }

/* ============================================================
   EMPTY STATE
   ============================================================ */
.empty {
  background: var(--surface);
  border: 1px dashed var(--border);
  border-radius: var(--radius);
  padding: 40px;
  text-align: center;
  color: var(--text-mut);
}

/* ============================================================
   DETAIL PAGE
   ============================================================ */
.detail-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 20px;
  gap: 16px;
  flex-wrap: wrap;
}
.detail-header h1 { margin: 0 0 8px; font-size: 22px; font-weight: 600; }
.detail-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--text-mut);
  font-size: 13px;
}
.detail-actions { display: flex; gap: 8px; }

.detail-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
@media (max-width: 800px) {
  .detail-grid { grid-template-columns: 1fr; }
}

.card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 18px 22px;
  box-shadow: var(--shadow);
}
.card-full { grid-column: 1 / -1; }
.card h2 {
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: var(--text-mut);
  margin: 0 0 12px;
}

.kv {
  margin: 0;
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 8px 16px;
  font-size: 13px;
}
.kv dt {
  color: var(--text-mut);
  font-weight: 500;
}
.kv dd {
  margin: 0;
  word-break: break-word;
}
.kv dd small { color: var(--text-mut); margin-left: 4px; }

.inline-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.inline-table th, .inline-table td {
  padding: 6px 10px;
  border-bottom: 1px solid #eef0f3;
  text-align: left;
}
.inline-table th {
  font-size: 11px;
  text-transform: uppercase;
  color: var(--text-mut);
  font-weight: 500;
}

.hint {
  margin: 12px 0 0;
  padding: 10px 12px;
  background: var(--bg-blue);
  color: var(--primary);
  border-radius: var(--radius-sm);
  font-size: 12px;
}

.scoring-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-bottom: 14px;
}

/* ============================================================
   FOOTER
   ============================================================ */
.footer {
  max-width: 1400px;
  margin: 24px auto 0;
  padding: 16px 24px;
  display: flex;
  justify-content: space-between;
  color: var(--text-mut);
  font-size: 12px;
  border-top: 1px solid var(--border);
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 720px) {
  .topbar-inner, .container { padding-left: 16px; padding-right: 16px; }
  .filters form { width: 100%; }
  .filters select, .filters input[type="search"] {
    flex: 1 1 calc(50% - 4px); min-width: 0;
  }
  .juz { max-width: 200px; }
  .subastas-table th, .subastas-table td { padding: 8px; }
}

/* ============================================================
   v2 ADDITIONS
   ============================================================ */
.alert-info {
  background: var(--bg-blue);
  color: var(--primary);
  border: 1px solid #b6d3ff;
  padding: 10px 14px;
  border-radius: var(--radius);
  margin-bottom: 16px;
  font-size: 13px;
}
.big { font-size: 18px; font-weight: 600; }
.num { text-align: right; font-variant-numeric: tabular-nums; }
.badge-boe { background: #e8e3f5; color: #5b3aa0; }
.badge-amber { background: var(--bg-amber); color: var(--amber); }
.badge-green { background: var(--bg-green); color: var(--green); }
.badge-red   { background: var(--bg-red);   color: var(--red); }

.dot-extracted {
  display: inline-block;
  width: 6px; height: 6px;
  background: var(--green);
  border-radius: 50%;
  margin-left: 6px;
  vertical-align: middle;
  box-shadow: 0 0 0 2px rgba(26,127,55,.18);
}

.kv-2col {
  grid-template-columns: max-content 1fr max-content 1fr;
  gap: 8px 16px;
}
.kv-3col {
  grid-template-columns: repeat(3, max-content 1fr);
  gap: 8px 12px;
}
@media (max-width: 720px) {
  .kv-2col, .kv-3col { grid-template-columns: max-content 1fr; }
}

.lote-block {
  background: #fafbfc;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px 18px;
  margin-bottom: 14px;
}
.lote-block h3 {
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: var(--primary);
  margin: 0 0 10px;
}

.bien-block {
  background: white;
  border: 1px solid #e3e6eb;
  border-radius: var(--radius-sm);
  padding: 10px 14px;
  margin-top: 10px;
}
.bien-header {
  display: flex; align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  font-size: 13px;
}
.bien-desc {
  font-size: 12px;
  color: var(--text-mut);
  background: #f9fafc;
  padding: 8px 10px;
  border-radius: var(--radius-sm);
  margin-top: 8px;
  line-height: 1.5;
}

/* ============================================================
   v3 ADDITIONS — Scoring UI
   ============================================================ */

/* KPIs especiales de scoring */
.kpi-ir { border-left: 3px solid var(--green); }
.kpi-investigar { border-left: 3px solid var(--amber); }
.kpi-descartar { border-left: 3px solid #94a3b8; }

/* Badges de veredicto */
.badge-ir         { background: #d1fadf; color: #065f46; font-weight: 700; }
.badge-investigar { background: #fef3c7; color: #92400e; font-weight: 700; }
.badge-descartar  { background: #e2e8f0; color: #475569; }
.badge-muted      { background: #f1f5f9; color: #94a3b8; }
.badge-catastro   { background: #ede9fe; color: #5b21b6; font-size: 11px; }
.badge-xl {
  display: inline-block;
  padding: 8px 20px;
  border-radius: 8px;
  font-size: 18px;
  letter-spacing: 1px;
}

/* Score visual */
.score-cell {
  display: inline-block;
  min-width: 36px;
  text-align: center;
  padding: 4px 8px;
  border-radius: 6px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.score-high { background: #d1fadf; color: #065f46; }
.score-mid  { background: #fef3c7; color: #92400e; }
.score-low  { background: #fee2e2; color: #991b1b; }

.score-big {
  font-size: 48px;
  font-weight: 700;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.score-big.score-high { color: var(--green); }
.score-big.score-mid  { color: var(--amber); }
.score-big.score-low  { color: var(--red); }
.score-total {
  font-size: 18px;
  color: var(--text-mut);
  font-weight: 400;
}

/* Card de scoring */
.card-scoring {
  background: linear-gradient(135deg, #fafbff 0%, #f0f4ff 100%);
  border: 1px solid #d6e1ff;
  margin-bottom: 18px;
}
.card-scoring h2 { display: none; }

.scoring-header {
  display: grid;
  grid-template-columns: auto auto 1fr auto;
  gap: 24px;
  align-items: center;
  padding-bottom: 16px;
  border-bottom: 1px dashed #d6e1ff;
  margin-bottom: 14px;
}
.scoring-header > div .kpi-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--text-mut);
  margin-bottom: 4px;
}
.scoring-meta { text-align: right; }

.scoring-reasoning {
  background: white;
  border: 1px solid #e5edff;
  border-radius: var(--radius);
  padding: 12px 16px;
  font-size: 14px;
  line-height: 1.6;
  margin-bottom: 14px;
  color: #1e293b;
}

.scoring-factors {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
@media (max-width: 720px) {
  .scoring-factors { grid-template-columns: 1fr; }
  .scoring-header { grid-template-columns: 1fr 1fr; }
}
.factor-block {
  background: white;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 12px 16px;
}
.factor-block h4 {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin: 0 0 8px;
}
.factor-pos { border-left: 3px solid var(--green); }
.factor-pos h4 { color: var(--green); }
.factor-neg { border-left: 3px solid var(--red); }
.factor-neg h4 { color: var(--red); }
.factor-block ul { margin: 0; padding-left: 18px; }
.factor-block li { font-size: 13px; margin-bottom: 4px; line-height: 1.5; }

/* ============================================================
   v4 ADDITIONS — Categoría/deudor/m²
   ============================================================ */

.filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 8px;
}
.filter-row select, .filter-row input {
  min-width: 130px;
}
.filter-label {
  font-size: 12px;
  color: var(--text-mut);
  font-weight: 500;
  margin-right: 4px;
}
.filter-sep { color: var(--text-mut); }

.badge-cat {
  background: #f0f4ff;
  color: #4338ca;
  font-size: 11px;
  font-weight: 500;
  padding: 2px 8px;
  border-radius: 4px;
  white-space: nowrap;
}


/* ============================================================
   v5 — Bloques de documentos adjuntos (info auth + IA)
   ============================================================ */

.doc-block {
  border: 1px solid var(--border-light, #e4e7eb);
  border-radius: 6px;
  padding: 12px 14px;
  margin-bottom: 10px;
  background: #fbfcfd;
}
.doc-block-pending {
  background: #fafafa;
  border-style: dashed;
  opacity: 0.8;
}
.doc-block-head {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 6px;
}
.doc-block-name {
  font-weight: 500;
  color: var(--text, #111);
}
.doc-block-body {
  margin-top: 8px;
}
.doc-block-body summary,
.doc-block-ia summary {
  cursor: pointer;
  font-size: 13px;
  color: var(--text-mut, #555);
  user-select: none;
  padding: 4px 0;
}
.doc-block-body[open] summary,
.doc-block-ia[open] summary {
  margin-bottom: 8px;
}
.doc-texto {
  background: #fff;
  border: 1px solid #eaecef;
  border-radius: 4px;
  padding: 12px 14px;
  white-space: pre-wrap;
  word-wrap: break-word;
  font-family: ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 12.5px;
  line-height: 1.55;
  max-height: 500px;
  overflow-y: auto;
  color: #1a202c;
  margin: 0;
}
.doc-ia {
  background: #f0f9ff;
  border: 1px solid #bae6fd;
  border-radius: 4px;
  padding: 10px 12px;
  font-family: ui-monospace, monospace;
  font-size: 12px;
  line-height: 1.5;
  white-space: pre-wrap;
  word-wrap: break-word;
  color: #075985;
  margin: 0;
}
.doc-block-ia {
  margin-top: 10px;
}

/* Badges por tipo de documento */
.badge-doc-edicto              { background: #fef3c7; color: #92400e; }
.badge-doc-edicto_publicacion  { background: #fef9c3; color: #854d0e; }
.badge-doc-certificacion_cargas{ background: #fee2e2; color: #991b1b; }
.badge-doc-tasacion            { background: #ddd6fe; color: #5b21b6; }
.badge-doc-nota_registro       { background: #dbeafe; color: #1e40af; }
.badge-doc-anexo               { background: #e5e7eb; color: #374151; }
.badge-doc-acta                { background: #fce7f3; color: #9d174d; }
.badge-doc-otro                { background: #f3f4f6; color: #4b5563; }

.badge[class*="badge-doc-"] {
  font-size: 11px;
  font-weight: 500;
  padding: 3px 10px;
  border-radius: 4px;
  white-space: nowrap;
  text-transform: lowercase;
  letter-spacing: 0.02em;
}

/* Información del juzgado: grid de KV + texto */
.kv-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px 18px;
  margin-bottom: 14px;
}
.kv-grid > div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.kv-grid > div span.muted {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.kv-grid > div strong {
  font-size: 15px;
  color: var(--text, #111);
}
.info-complementaria {
  margin-top: 6px;
}
.info-complementaria summary {
  cursor: pointer;
  font-size: 13px;
  color: var(--text-mut, #555);
}
.texto-juzgado {
  background: #fffbeb;
  border-left: 3px solid #f59e0b;
  padding: 12px 14px;
  margin-top: 8px;
  font-size: 13.5px;
  line-height: 1.6;
  color: #1f2937;
  border-radius: 0 4px 4px 0;
}


/* ============================================================
   v6 — Pipeline IA stats + botones acción + flash messages
   ============================================================ */

.pipeline-stats {
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 14px 18px;
  margin-bottom: 20px;
}
.pipeline-title {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #6b7280;
  font-weight: 600;
  margin: 0 0 10px 0;
}
.pipeline-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 10px;
}
.pip-cell {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 10px 12px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  text-decoration: none;
  color: inherit;
  transition: all 0.15s;
}
a.pip-cell:hover {
  background: #f3f4f6;
  border-color: #6366f1;
}
.pip-active {
  background: #eef2ff !important;
  border-color: #6366f1 !important;
  box-shadow: 0 0 0 1px #6366f1;
}
.pip-label {
  font-size: 11px;
  color: #6b7280;
  font-weight: 500;
  line-height: 1.3;
}
.pip-value {
  font-size: 22px;
  font-weight: 600;
  color: #111827;
  line-height: 1;
}

/* Botón pequeño para acciones inline (re-analizar IA, etc.) */
.btn-tiny {
  background: #fff;
  border: 1px solid #d1d5db;
  color: #374151;
  padding: 4px 10px;
  font-size: 12px;
  border-radius: 4px;
  cursor: pointer;
  font-weight: 500;
  transition: all 0.15s;
}
.btn-tiny:hover {
  background: #6366f1;
  color: #fff;
  border-color: #6366f1;
}

.doc-action-form {
  margin-top: 10px;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding-top: 10px;
  border-top: 1px dashed #e5e7eb;
}

.error-msg {
  font-size: 11px;
  color: #b91c1c;
  background: #fef2f2;
  padding: 2px 8px;
  border-radius: 3px;
}

/* Flash messages */
.alert {
  padding: 10px 14px;
  border-radius: 6px;
  margin-bottom: 14px;
  font-size: 13.5px;
  line-height: 1.5;
}
.alert-success {
  background: #f0fdf4;
  border: 1px solid #86efac;
  color: #166534;
}


/* ============================================================
   v7 — Valor de mercado / Comparables Claude+web
   ============================================================ */

.comp-list {
  list-style: none;
  padding: 0;
  margin: 8px 0 0;
}
.comp-list li {
  padding: 6px 10px;
  margin-bottom: 4px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 4px;
  font-size: 13px;
  line-height: 1.5;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.comp-list li strong {
  color: #1f2937;
}
.comp-list li .muted {
  flex: 1;
  font-size: 12px;
}
.comp-list li a {
  color: #6366f1;
  text-decoration: none;
  font-weight: 600;
  font-size: 14px;
}
.comp-list li a:hover { text-decoration: underline; }

.comp-meta {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid #e5e7eb;
  display: flex;
  gap: 6px;
  font-size: 11px;
  align-items: center;
}

.card-full .kv-grid + details { margin-top: 12px; }


/* ============================================================
   v8 — Delta mercado en listado
   ============================================================ */

.badge-delta {
  display: inline-block;
  padding: 3px 8px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}
.delta-ganga {
  background: #d1fae5;
  color: #065f46;
  border: 1px solid #34d399;
}
.delta-caro {
  background: #fee2e2;
  color: #991b1b;
  border: 1px solid #fca5a5;
}
.delta-normal {
  background: #fef3c7;
  color: #78350f;
  border: 1px solid #fde68a;
}
.num-sub {
  font-size: 10px;
  font-weight: 400;
  margin-top: 1px;
}


/* ============================================================
   v9 — Batch búsqueda comparables: checkbox + barra sticky
   ============================================================ */

.col-check {
  width: 32px;
  text-align: center;
  padding: 4px !important;
}
.col-check input[type="checkbox"] {
  cursor: pointer;
  width: 16px;
  height: 16px;
}
.row-check[data-already-done="1"] {
  accent-color: #94a3b8;
}

.batch-bar {
  position: sticky;
  bottom: 0;
  background: #1f2937;
  color: #f9fafb;
  padding: 14px 22px;
  margin: 20px -22px 0;
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  border-top: 2px solid #6366f1;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.12);
  z-index: 50;
}
.batch-bar .batch-info {
  flex: 1;
  font-size: 14px;
}
.batch-bar .batch-info strong {
  font-size: 16px;
  color: #fbbf24;
}
.batch-bar .batch-info .muted {
  color: #9ca3af;
  font-size: 12.5px;
}
.batch-force-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  color: #d1d5db;
  cursor: pointer;
  user-select: none;
}
.batch-force-label input { cursor: pointer; }
.batch-bar .btn-secondary {
  background: #6366f1;
  color: #fff;
  border: 1px solid #6366f1;
  padding: 8px 18px;
  font-weight: 600;
  font-size: 14px;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s;
}
.batch-bar .btn-secondary:hover:not(:disabled) {
  background: #4f46e5;
  border-color: #4f46e5;
}
.batch-bar .btn-secondary:disabled {
  background: #374151;
  border-color: #374151;
  color: #6b7280;
  cursor: not-allowed;
}


/* ============================================================
   v11 — Deudor nombre, cargas, docs, botón comparables fila
   ============================================================ */
.deudor-nombre {
  font-size: 11px;
  color: #475569;
  margin-top: 2px;
  line-height: 1.2;
  max-width: 150px;
}
.cargas-n {
  display: inline-block;
  background: #fef2f2;
  color: #991b1b;
  font-weight: 600;
  padding: 1px 7px;
  border-radius: 4px;
  font-size: 12px;
}
.docs-n {
  font-size: 12px;
  color: #475569;
  white-space: nowrap;
}
.acciones-cell {
  white-space: nowrap;
  display: flex;
  gap: 5px;
  align-items: center;
}
.btn-comp {
  background: #fff;
  border: 1px solid #d1d5db;
  cursor: pointer;
  padding: 3px 8px;
  border-radius: 4px;
  font-size: 13px;
  line-height: 1;
}
.btn-comp:hover {
  background: #ecfdf5;
  border-color: #10b981;
}
.btn-tiny-done {
  font-size: 12px;
  color: #059669;
  white-space: nowrap;
}


/* ============================================================
   v12 — OCR aviso, IA resumen legible, cargas agrupadas
   ============================================================ */
.badge-ocr-warn {
  background: #fef3c7; color: #92400e;
  font-size: 10px; padding: 1px 6px; border-radius: 3px;
  margin-left: 6px; font-weight: 600;
}
.ocr-warn-text {
  background: #fffbeb; border-left: 3px solid #f59e0b;
  padding: 8px 12px; margin: 6px 0; font-size: 12.5px; border-radius: 3px;
}
.doc-ia-resumen {
  background: #f0fdf4; border: 1px solid #bbf7d0;
  border-radius: 5px; padding: 8px 12px; margin-top: 8px; font-size: 13px;
}
.doc-ia-label { font-weight: 600; color: #166534; margin-right: 4px; }
.doc-ia-raw { margin-top: 6px; }
.doc-ia-raw summary { font-size: 11px; cursor: pointer; }
.deuda-resumen {
  background: #fef2f2; border-left: 3px solid #dc2626;
  padding: 8px 14px; margin: 0 0 12px; border-radius: 4px; font-size: 14px;
}
.deuda-resumen strong { color: #991b1b; font-size: 16px; }
.finca-mult {
  background: #eff6ff; color: #1e40af;
  font-size: 11px; padding: 1px 7px; border-radius: 4px; font-weight: 600;
}


/* ============================================================
   v13 — Mapa global dashboard
   ============================================================ */
.mapa-global-wrap {
  margin: 16px 0;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  overflow: hidden;
}
.mapa-global-wrap > summary {
  padding: 12px 16px;
  cursor: pointer;
  font-weight: 600;
  font-size: 14px;
  user-select: none;
}
.mapa-global-wrap > summary:hover { background: #f9fafb; }
#mapa-global {
  height: 460px;
  width: 100%;
}
.mapa-leyenda {
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
  padding: 10px 16px;
  font-size: 12px;
  color: #475569;
  border-top: 1px solid #e5e7eb;
}
.mapa-leyenda span { display: flex; align-items: center; gap: 5px; }
.mapa-leyenda .lg {
  width: 12px; height: 12px; border-radius: 50%;
  display: inline-block; border: 1.5px solid #fff;
  box-shadow: 0 0 0 1px #cbd5e1;
}
.lg-verde { background: #16a34a; }
.lg-ambar { background: #f59e0b; }
.lg-rojo  { background: #dc2626; }
.lg-gris  { background: #9ca3af; }




/* ============================================================
   v15 — Login con tabs (Subastas / Licitaciones)
   ============================================================ */
.login-tabs {
  display: flex;
  gap: 4px;
  background: #f1f5f9;
  border-radius: 8px;
  padding: 4px;
  margin-bottom: 24px;
}
.login-tab {
  flex: 1;
  padding: 9px 14px;
  border: none;
  background: transparent;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 500;
  color: #64748b;
  cursor: pointer;
  transition: all 0.15s;
  font-family: inherit;
}
.login-tab:hover { color: #334155; }
.login-tab.active {
  background: #fff;
  color: #1e293b;
  box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}


/* ============================================================
   v16 — Tabla licitaciones (PLACSP)
   ============================================================ */
.lic-wrap { overflow-x: auto; }
.lic-table { min-width: 1200px; font-size: 12.5px; table-layout: fixed; }
.lic-table th, .lic-table td { vertical-align: top; padding: 8px 10px; }
.lic-table .td-exp { width: 130px; white-space: nowrap; }
.lic-table .td-obj { width: 440px; white-space: normal; line-height: 1.35; }
.lic-table .td-org { width: 230px; white-space: normal; line-height: 1.35; font-size: 12px; }
.lic-table .td-ubi { width: 130px; white-space: nowrap; }
.lic-table .td-cpv { width: 100px; white-space: normal; line-height: 1.25; }
.lic-table .td-cpv .cpv-sub { font-size: 10.5px; margin-top: 2px; max-width: 95px; }
.lic-table .td-imp { width: 110px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.lic-table .td-fin { width: 110px; white-space: nowrap; }
.lic-table .td-acc { width: 92px; white-space: nowrap; }
.lic-table .td-obj, .lic-table .td-org { word-wrap: break-word; word-break: break-word; }


/* ============================================================
   v17 — Filtros licitaciones (segunda fila: "caballo ganador")
   ============================================================ */
.filtros-row2 {
  width: 100%;
  display: flex;
  gap: 14px;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed var(--border);
  flex-wrap: wrap;
}
.filtro-inline { display: flex; align-items: center; gap: 6px; font-size: 12.5px; }
.filtro-inline span { color: var(--text-mut); font-weight: 500; }
.filtro-inline select { font-size: 12.5px; }


/* ============================================================
   v18 — Bloque análisis IA pliegos
   ============================================================ */
.ia-resumen {
  background: linear-gradient(135deg, #f3e8ff 0%, #ede9fe 100%);
  border-left: 4px solid #7c3aed;
  padding: 14px 18px;
  border-radius: 8px;
  margin-bottom: 20px;
  font-size: 14px;
  line-height: 1.55;
  color: #1f2937;
}
.ia-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 14px;
}
.ia-card {
  background: var(--bg-soft, #f9fafb);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 8px;
  padding: 12px 14px;
}
.ia-card h4 {
  margin: 0 0 6px 0;
  font-size: 11.5px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--text-mut, #6b7280);
  font-weight: 600;
}
.ia-card p { margin: 4px 0; font-size: 13.5px; }
.ia-card .muted { font-size: 12px; }
.ia-card .mono { font-family: monospace; font-size: 12.5px; }
.ia-list { margin: 6px 0 0 18px; padding: 0; font-size: 12.5px; }
.ia-list li { margin-bottom: 3px; }

.ia-bar {
  display: flex;
  height: 26px;
  border-radius: 6px;
  overflow: hidden;
  margin-top: 6px;
  font-size: 11.5px;
  font-weight: 600;
}
.ia-bar-precio { background: #3b82f6; color: white; display: flex; align-items: center; justify-content: center; min-width: 24px; }
.ia-bar-calidad { background: #10b981; color: white; display: flex; align-items: center; justify-content: center; min-width: 24px; }

.badge-yes { background: #d1fae5; color: #065f46; padding: 2px 8px; border-radius: 4px; font-size: 12px; font-weight: 600; }
.badge-no  { background: #fee2e2; color: #991b1b; padding: 2px 8px; border-radius: 4px; font-size: 12px; font-weight: 600; }

.ia-barreras {
  background: #fef3c7;
  border: 1px solid #fde68a;
  border-radius: 8px;
  padding: 12px 16px;
  margin-top: 18px;
}
.ia-barreras h4 { margin: 0 0 8px 0; color: #92400e; font-size: 13px; }
.ia-barreras ul { margin: 0; padding-left: 22px; }
.ia-barreras li { color: #78350f; font-size: 13px; margin-bottom: 4px; }


/* === Tabla subvenciones / TED: layout flexible === */
.sub-wrap { overflow-x: auto; }
.sub-table { width: 100%; min-width: 1100px; font-size: 12.5px; border-collapse: collapse; }
.sub-table th, .sub-table td {
  vertical-align: top; padding: 8px 10px;
  border-bottom: 1px solid var(--border, #e5e7eb);
  line-height: 1.4;
}
.sub-table th { text-align: left; font-weight: 600; background: #f8fafc; color: var(--text-mut, #64748b); font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.3px; }
.sub-table tbody tr:hover { background: #f9fafc; }
.sub-table .cell-id { white-space: nowrap; width: 80px; font-family: ui-monospace, monospace; font-size: 11.5px; }
.sub-table .cell-desc { min-width: 280px; max-width: 460px; word-wrap: break-word; }
.sub-table .cell-org { min-width: 160px; max-width: 240px; word-wrap: break-word; }
.sub-table .cell-fin { white-space: nowrap; }
.sub-table .cell-tipo { white-space: nowrap; font-size: 11px; max-width: 140px; overflow: hidden; text-overflow: ellipsis; }
.sub-table .cell-imp { white-space: nowrap; text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.sub-table .cell-plazo { white-space: nowrap; }
.sub-table .cell-ia { white-space: nowrap; text-align: center; }
.sub-table .cell-acc { white-space: nowrap; text-align: right; }
.sub-table .cell-acc .btn-tiny { margin-left: 4px; }
.dif-badge { display: inline-block; padding: 2px 7px; border-radius: 6px; font-size: 11px; font-weight: 600; }
.dif-baja { background: #d1fae5; color: #065f46; }
.dif-media { background: #fef3c7; color: #92400e; }
.dif-alta { background: #fee2e2; color: #991b1b; }
.exito-alta { color: #065f46; font-weight: 600; }
.exito-media { color: #92400e; }
.exito-baja { color: #991b1b; }



/* === Login con grupos === */
.login-tabs-grouped { display: flex; flex-direction: column; gap: 10px; background: #f1f5f9; padding: 12px; border-radius: 12px; margin-bottom: 24px; }
.login-tab-group { display: flex; flex-direction: column; gap: 4px; }
.login-group-label { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: #64748b; padding: 0 4px; }
.login-group-tabs { display: flex; gap: 4px; flex-wrap: wrap; }
.login-tabs-grouped .login-tab { flex: 1 1 auto; padding: 8px 12px; border: none; background: transparent; border-radius: 8px; cursor: pointer; font-size: 13px; font-weight: 500; color: #475569; transition: all 0.15s; }
.login-tabs-grouped .login-tab:hover { background: rgba(0,0,0,0.04); }
.login-tabs-grouped .login-tab.active { background: white; color: #1e293b; font-weight: 600; box-shadow: 0 1px 3px rgba(0,0,0,0.08); }
@media (max-width: 600px) {
  .login-tabs-grouped .login-tab { font-size: 12px; padding: 7px 8px; }
}


/* === App switcher en topbar === */
.app-switcher {
  background: white;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 6px 30px 6px 12px;
  font-size: 13px;
  font-weight: 500;
  color: #1e293b;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%2364748b' d='M5 6L0 0h10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 8px;
  margin-right: 12px;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.app-switcher:hover { border-color: #cbd5e1; }
.app-switcher:focus { outline: none; border-color: #7c3aed; box-shadow: 0 0 0 2px rgba(124,58,237,0.15); }


/* === Filtros redesign v2 === */
.filtros-card {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 16px 18px;
  margin-bottom: 16px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.filtros-form {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
/* Inputs y selects unificados */
.filtros-form select,
.filtros-form input[type="text"],
.filtros-form input[type="number"],
.filtros-form input[type="search"] {
  height: 36px;
  padding: 0 12px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  font-size: 13px;
  font-family: inherit;
  color: #1e293b;
  background: #ffffff;
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
  min-width: 0;
}
.filtros-form select {
  padding-right: 32px;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%2364748b' d='M5 6L0 0h10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 8px;
  cursor: pointer;
}
.filtros-form select:hover,
.filtros-form input:hover { border-color: #cbd5e1; }
.filtros-form select:focus,
.filtros-form input:focus {
  border-color: #6366f1;
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.12);
}
.filtros-form input[type="number"] { width: 100px; text-align: right; }
.filtros-form input[type="text"][name="q"] { flex: 1; min-width: 220px; }
.filtros-form .input-cpv { width: 110px; }
/* Separador "–" entre min y max */
.filtros-form .filtro-sep { color: #cbd5e1; font-weight: 300; padding: 0 2px; }

/* Botón Aplicar — proporcional, NO full-width */
.filtros-form > .btn-primary,
.filtros-form button[type="submit"] {
  height: 36px;
  padding: 0 18px;
  background: #4f46e5;
  color: white;
  border: none;
  border-radius: 8px;
  font-weight: 500;
  font-size: 13px;
  cursor: pointer;
  transition: background 0.15s, transform 0.05s;
  flex: 0 0 auto;
}
.filtros-form > .btn-primary:hover,
.filtros-form button[type="submit"]:hover { background: #4338ca; }
.filtros-form > .btn-primary:active { transform: translateY(1px); }

/* Enlace "limpiar" */
.filtros-form .link-clear,
.filtros-form a.link-muted {
  font-size: 12px;
  color: #64748b;
  text-decoration: none;
  padding: 0 6px;
}
.filtros-form a.link-muted:hover { color: #1e293b; text-decoration: underline; }

/* Filas secundarias (row2): fondo gris claro, padding suave */
.filtros-row2 {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-top: 10px;
  padding: 8px 12px;
  background: #f8fafc;
  border-radius: 8px;
  font-size: 12.5px;
}
.filtros-row2 .filtro-inline {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #475569;
  white-space: nowrap;
}
.filtros-row2 .filtro-inline span { font-size: 12.5px; color: #475569; }
.filtros-row2 .filtro-inline select { height: 30px; font-size: 12px; }
.filtros-row2 input[type="checkbox"] {
  width: 14px; height: 14px;
  accent-color: #4f46e5;
  cursor: pointer;
}
.filtros-row2 .filtro-inline > span { cursor: pointer; }

/* Bandas temáticas */
.filtros-row-section {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-top: 10px;
  padding: 10px 14px;
  border-radius: 10px;
  font-size: 12.5px;
}
.filtros-row-section .section-label {
  font-weight: 600;
  font-size: 11.5px;
  letter-spacing: 0.3px;
  margin-right: 4px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.filtros-row-section--ben { background: #ecfeff; border: 1px solid #cffafe; }
.filtros-row-section--ben .section-label { color: #0e7490; }
.filtros-row-section--ia { background: #f5f3ff; border: 1px solid #ede9fe; }
.filtros-row-section--ia .section-label { color: #6d28d9; }

/* Chips (beneficiarios) */
.chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 500;
  text-decoration: none;
  border: 1px solid transparent;
  transition: all 0.15s;
  white-space: nowrap;
  line-height: 1;
}
.chip--off { background: white; color: #0e7490; border-color: #a5f3fc; }
.chip--off:hover { background: #f0fdfa; border-color: #67e8f9; }
.chip--on { background: #0e7490; color: white; border-color: #0e7490; }
.chip--on:hover { background: #155e75; }
.chip-clear {
  font-size: 11.5px;
  color: #64748b;
  text-decoration: none;
  margin-left: 4px;
}
.chip-clear:hover { color: #1e293b; text-decoration: underline; }

/* IA filtros - select pequeño */
.filtros-row-section--ia select {
  height: 30px;
  font-size: 12px;
  border: 1px solid #ddd6fe;
  background-color: white;
  padding: 0 28px 0 10px;
}
.filtros-row-section--ia select:focus { border-color: #8b5cf6; box-shadow: 0 0 0 2px rgba(139,92,246,0.15); }

/* Contador resultados + acción masivo */
.results-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid #f1f5f9;
}
.results-count {
  font-size: 13px;
  color: #475569;
}
.results-count strong { color: #0f172a; font-weight: 600; }

/* Botón análisis masivo (banda morada) */
.masivo-band {
  margin-top: 12px;
  padding: 12px 14px;
  background: linear-gradient(135deg, #faf5ff 0%, #f5f3ff 100%);
  border: 1px solid #ede9fe;
  border-radius: 10px;
}
.masivo-band-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.masivo-band-label { font-weight: 600; font-size: 12.5px; color: #6d28d9; margin-right: 4px; }
.masivo-btn {
  display: inline-flex;
  align-items: center;
  background: #7c3aed;
  color: white;
  padding: 6px 12px;
  border-radius: 6px;
  text-decoration: none;
  font-weight: 500;
  font-size: 12px;
  transition: background 0.15s;
}
.masivo-btn:hover { background: #6d28d9; }
.masivo-btn-disabled {
  display: inline-flex; align-items: center;
  background: #fef3c7; color: #92400e;
  padding: 6px 12px; border-radius: 6px;
  font-size: 11.5px; font-weight: 400;
}
.masivo-btn-zero { color: #94a3b8; font-size: 11.5px; padding: 4px 10px; }
.masivo-hint { margin-top: 6px; font-size: 11px; color: #64748b; }

/* === FIN filtros redesign === */


/* Banda colectivos (rosa-magenta para diferenciarla de beneficiarios) */
.filtros-row-section--col { background: #fdf2f8; border: 1px solid #fbcfe8; }
.filtros-row-section--col .section-label { color: #be185d; }
.chip--col-off { color: #be185d; border-color: #fbcfe8; }
.chip--col-off:hover { background: #fce7f3; border-color: #f9a8d4; }
.chip--col-on { background: #be185d; border-color: #be185d; }
.chip--col-on:hover { background: #9d174d; }
