/* ============================================================
 *  lnk_cartrulesdisplay – Front-Office Styles
 * ============================================================ */

.lnk-cartrules-display {
  display: flex;
  flex-direction: column;
  gap: .75rem;
  margin: 1rem 0;
}

/* ── Rule card ── */
.lnk-rule-card {
  display: flex;
  align-items: flex-start;
  gap: .875rem;
  padding: .875rem 1rem;
  border-radius: .5rem;
  border-left: 4px solid transparent;
  transition: opacity .3s ease, transform .3s ease;
}

.lnk-rule-card__icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
}

.lnk-rule-card__icon .material-icons {
  font-size: 1.25rem;
}

.lnk-rule-card__body {
  flex: 1;
  min-width: 0;
}

.lnk-rule-card__title {
  display: block;
  font-size: .9rem;
  line-height: 1.3;
  margin-bottom: .15rem;
}

.lnk-rule-card__text {
  display: block;
  font-size: .825rem;
  line-height: 1.4;
  opacity: .85;
}

/* ── Applied: rule IS in the cart (green solid) ── */
.lnk-rule-card--applied {
  background-color: #d1e7dd;
  border-left-color: #198754;
  color: #0f5132;
}

.lnk-rule-card--applied .lnk-rule-card__icon {
  background-color: #198754;
  color: #fff;
}

/* ── Eligible: valid but not yet in cart (blue) ── */
.lnk-rule-card--eligible {
  background-color: #cff4fc;
  border-left-color: #0dcaf0;
  color: #055160;
}

.lnk-rule-card--eligible .lnk-rule-card__icon {
  background-color: #0dcaf0;
  color: #fff;
}

/* ── Pending carrier (light blue) ── */
.lnk-rule-card--pending {
  background-color: #e8f4f8;
  border-left-color: #6cc3d5;
  color: #055160;
}

.lnk-rule-card--pending .lnk-rule-card__icon {
  background-color: #6cc3d5;
  color: #fff;
}

/* ── Almost eligible (amber) ── */
.lnk-rule-card--almost {
  background-color: #fff3cd;
  border-left-color: #ffc107;
  color: #664d03;
}

.lnk-rule-card--almost .lnk-rule-card__icon {
  background-color: #ffc107;
  color: #fff;
}

/* ── Progress bar ── */
.lnk-rule-card__progress {
  margin-top: .5rem;
}

.lnk-rule-card__progress .progress {
  height: 6px;
  border-radius: 3px;
  background-color: rgba(0, 0, 0, .08);
  margin-bottom: .25rem;
}

.lnk-rule-card__progress .progress-bar {
  border-radius: 3px;
  transition: width .6s ease;
}

.lnk-rule-card__progress small {
  font-size: .75rem;
}

/* ── AJAX refresh fade ── */
.lnk-cartrules-display--refreshing .lnk-rule-card {
  opacity: .4;
  transform: scale(.98);
}

/* ── Responsive ── */
@media (max-width: 575.98px) {
  .lnk-rule-card {
    padding: .75rem;
    gap: .625rem;
  }

  .lnk-rule-card__icon {
    width: 2rem;
    height: 2rem;
  }

  .lnk-rule-card__icon .material-icons {
    font-size: 1.1rem;
  }

  .lnk-rule-card__title {
    font-size: .825rem;
  }

  .lnk-rule-card__text {
    font-size: .775rem;
  }
}
