.opportunity-card, .trip-card {
  background: white;
  border-radius: var(--radius-md);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  padding: 1.5rem;
  box-shadow: var(--shadow-card);
}

.card-header { display: flex; justify-content: space-between; align-items: flex-start; }
.route { display: flex; flex-direction: column; }
.city, .destination { color: var(--azul-gazapo); font-weight: 800; font-size: 1.25rem; }
.label-hacia { font-size: 1rem; color: var(--texto-secundario); margin: 4px 0; font-weight: 600; }

.status-pill { padding: 4px 12px; border-radius: 20px; font-size: var(--font-size-body); font-weight: 700; }
.status-disponible { background: var(--success-bg); color: var(--success); }
.status-en-curso { background: var(--warning-bg); color: var(--warning); }
.status-completado { background: var(--info-bg); color: var(--info); }

.card-body { flex-grow: 1; border-top: 1px solid var(--bordes); margin-top: 1rem; }
.cargo-type { font-size: 1rem; color: var(--texto-primario); margin: 1rem 0; font-weight: 700; }
.cargo-details { display: flex; justify-content: space-between; padding-bottom: 1rem; border-bottom: 1px solid var(--bordes); margin-bottom: 1rem; }
.price { font-size: var(--font-size-body); color: var(--texto-secundario); }
.price strong { color: var(--success); font-size: 1.125rem; }
.weight { font-weight: 700; color: var(--texto-primario); }
.applicants-info { font-size: var(--font-size-body); color: var(--texto-secundario); font-weight: 600; margin-bottom: 1rem; }

.btn-action {
  width: 100%;
  background: var(--coral);
  color: white;
  border: none;
  padding: 0.5rem 1rem;
  border-radius: var(--radius-md);
  margin-top: 1rem;
  font-size: 1rem;
  font-weight: 800;
  font-family: var(--font-family);
  cursor: pointer;
}

.btn-action:disabled,
.btn-action[disabled] {
  background: var(--texto-secundario);
  cursor: not-allowed;
}

.btn-postular {
  width: 100%;
  background: var(--coral);
  color: white;
  border: none;
  padding: 0.5rem 1rem;
  border-radius: var(--radius-md);
  margin-top: 1rem;
  font-size: 1rem;
  font-weight: 800;
  font-family: var(--font-family);
  cursor: pointer;
}

.btn-postular:disabled,
.btn-postular[disabled] {
  background: var(--texto-secundario);
  cursor: not-allowed;
}

.publisher-name { color: #fff; }

.requirement-box { padding: 1rem; border-radius: var(--radius-md); font-size: 0.85rem; margin-top: auto; }
.requirement-box.success { background: var(--success-bg); border: 1px solid var(--success); color: var(--success); display: flex; align-items: center; gap: 10px; font-weight: 700; }
.requirement-box.error { background: var(--error-bg); border: 1px solid var(--error); color: var(--error); display: flex; align-items: center; gap: 10px; font-weight: 600; }
.requirement-box.warning { background: #fef3c7; border: 1px solid #f59e0b; color: #92400e; display: flex; align-items: center; gap: 10px; font-weight: 600; }
.error-header { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.requirement-box ul { padding-left: 20px; margin: 5px 0 0 0; }
.requirement-box li { margin-bottom: 4px; font-weight: 500; }

.card-footer {
  background: var(--azul-oscuro);
  color: var(--texto-claro);
  padding: 0.5rem 1.5rem;
  font-size: var(--font-size-label);
  border-bottom-left-radius: var(--radius-md);
  border-bottom-right-radius: var(--radius-md);
  margin: 1rem -1.5rem -1.5rem;
  width: calc(100% + 3rem);
  align-self: stretch;
}
