/* =========================================================
   TABLA RESPONSIVE GENÉRICA
   ========================================================= */

.tabla-responsive {
  width: 100%;
  border-collapse: collapse;
  margin: 1em 0;
}

.tabla-responsive th,
.tabla-responsive td {
  border: 1px solid #ddd;
  padding: 8px 10px;
  vertical-align: top;
}

.tabla-responsive th {
  background: #f2f2f2;
  font-weight: bold;
  text-align: left;
}

.tabla-responsive td a {
  word-break: break-word;
}

/* =========================================================
   MODO MÓVIL
   ========================================================= */

@media screen and (max-width: 700px) {

  .tabla-responsive,
  .tabla-responsive thead,
  .tabla-responsive tbody,
  .tabla-responsive tr,
  .tabla-responsive th,
  .tabla-responsive td {
    display: block;
    width: 100%;
    box-sizing: border-box;
  }

  .tabla-responsive thead {
    display: none;
  }

  .tabla-responsive tr {
    margin-bottom: 1em;
    border: 1px solid #ccc;
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
  }

  .tabla-responsive td {
    border: none;
    border-bottom: 1px solid #eee;
    padding: 10px;
  }

  .tabla-responsive td:last-child {
    border-bottom: none;
  }

  /* =====================================================
     MODO: ETIQUETA ARRIBA
     ===================================================== */

  .tabla-responsive.movil-abajo td::before {
    content: attr(data-label);
    display: block;
    font-weight: bold;
    color: #555;
    margin-bottom: 4px;
  }

  /* =====================================================
     MODO: ETIQUETA IZQUIERDA
     ===================================================== */

  .tabla-responsive.movil-derecha td {
    display: flex;
    gap: 10px;
    align-items: flex-start;
  }

  .tabla-responsive.movil-derecha td::before {
    content: attr(data-label);
    flex: 0 0 120px;
    font-weight: bold;
    color: #555;
  }

}

/* =========================================================
   MODO CARD
   ========================================================= */

@media screen and (max-width: 700px) {

  .tabla-responsive.movil-card tr {
    border: none;
    border-radius: 12px;
    background: #ffffff;
    margin-bottom: 20px;
    padding: 10px;
    
    box-shadow:
      0 2px 8px rgba(0,0,0,0.08);

    overflow: hidden;
  }

  .tabla-responsive.movil-card td {
    display: block;
    padding: 10px 12px;
    border-bottom: 1px solid #f0f0f0;
  }

  .tabla-responsive.movil-card td:last-child {
    border-bottom: none;
  }

  .tabla-responsive.movil-card td::before {
    content: attr(data-label);
    display: block;

    font-size: 0.85em;
    font-weight: bold;

    color: #666;

    margin-bottom: 4px;

    text-transform: uppercase;
    letter-spacing: 0.03em;
  }

}
