/* Public styles with CSS variables */
.ipr-don-widget,
.ipr-card,
.ipr-don-select {
  box-sizing:border-box;
  border: var(--ipr-border-width,1px) solid var(--ipr-border-color,#e5e7eb);
  border-radius: var(--ipr-radius,12px);
  box-shadow: var(--ipr-shadow, none);
  padding: var(--ipr-padding,12px);
  color: var(--ipr-text,#111827);
  font-family: var(--ipr-font, inherit);
  font-size: var(--ipr-font-size,16px);
}

/* Campaign picker (buttons with photo) */
.ipr-campaign-picker{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap:12px;
  margin-bottom:8px;
}
.ipr-campaign-btn{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:8px; padding:10px; cursor:pointer; width:100%;
  background:#fff; border:1px solid var(--ipr-border-color,#e5e7eb);
  border-radius:12px; transition:transform .05s ease, box-shadow .15s ease, border-color .15s ease;
}
.ipr-campaign-btn:hover{ transform:translateY(-1px); box-shadow:0 6px 14px rgba(0,0,0,.06); }
.ipr-campaign-btn.active{ border-color: var(--ipr-primary,#6c2bd9); box-shadow:0 0 0 2px rgba(108,43,217,.15) inset; }
.ipr-campaign-thumb{
  width:72px; height:72px; border-radius:999px; background-size:cover; background-position:center; border:2px solid #fff; box-shadow:0 2px 8px rgba(0,0,0,.08);
}
.ipr-campaign-label{ font-weight:600; text-align:center; line-height:1.15; }

/* Amount matrix */
.ipr-don-amounts{
  display:flex;
  flex-wrap:wrap;
  gap: var(--ipr-amt-gap, 8px);
  justify-content: var(--ipr-amt-align, center);
  margin-top:6px;
}
.ipr-don-amt{
  border:1px solid var(--ipr-primary,#6c2bd9);
  background:#fff;
  padding:8px 10px;
  border-radius:8px;
  cursor:pointer;
}
.ipr-don-amt.active{ background:var(--ipr-primary,#6c2bd9); color:#fff }
/* Custom input */
.ipr-don-custom{
  display:flex; align-items:center;
  justify-content: var(--ipr-amt-align, center);
  gap:8px;
  margin:10px 0 6px;
}
.ipr-don-custom input{
  max-width: var(--ipr-input_width, 160px);
  height:36px;
  padding:0 10px;
  border-radius:8px;
  border:1px solid rgba(0,0,0,.18);
  background:#fff;
}
/* Button */
.ipr-don-button{
  display:block;
  margin:8px auto 0;
  width: var(--ipr-btn-width, auto);
  height: var(--ipr-btn-height, 42px);
  line-height: calc(var(--ipr-btn-height, 42px) - 2px);
  padding: 0 14px;
  font-size: var(--ipr-btn-fontsize, 14px);
  background: var(--ipr-primary,#6c2bd9);
  color:#fff;
  border:none;
  border-radius: var(--ipr-radius,12px);
  cursor:pointer;
  font-weight:600;
}
.ipr-don-button[disabled]{ opacity:.6; cursor:not-allowed; }
.ipr-don-button:hover { filter:brightness(1.05) }
/* Card bits */
.ipr-card-media { height:220px; background-size:cover; background-position:center; border-radius:calc(var(--ipr-radius,12px) - 2px); }
.ipr-card-body { padding: 6px 0 0 0 }
.ipr-card-title { margin:0 0 6px; font-weight:700 }
.ipr-card-text { margin:0 0 12px }
.ipr-progress { height:10px; background:#f1f5f9; border-radius:999px; overflow:hidden; margin:8px 0 }
.ipr-progress-bar { height:100%; background:linear-gradient(90deg, var(--ipr-primary,#6c2bd9), var(--ipr-secondary,#0ea5e9)); width:0 }
.ipr-progress-meta { display:flex; justify-content:space-between; font-size:.9em; color:#334155 }


/* === Highlight selected amount (configurable) === */
.ipr-don-amt {
  transition: background-color .15s ease, box-shadow .15s ease, border-color .15s ease, transform .02s ease;
}
.ipr-don-amt:focus { outline: none; box-shadow: 0 0 0 2px rgba(0,0,0,.08) inset; }
.ipr-don-amt.active{
  background: var(--ipr-amt-active-bg, rgba(108,43,217,.08));
  border-color: var(--ipr-amt-active-border, var(--ipr-primary,#6c2bd9));
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--ipr-amt-active-border, var(--ipr-primary,#6c2bd9)) 22%, transparent) inset;
  transform: translateY(-1px);
}


/* === Highlight selected campaign (configurable) === */
.ipr-campaign-btn {
  transition: background-color .15s ease, box-shadow .15s ease, border-color .15s ease, transform .02s ease;
}
.ipr-campaign-btn.active{
  background: var(--ipr-campaign-active-bg, rgba(108,43,217,.08));
  border-color: var(--ipr-campaign-active-border, var(--ipr-primary,#6c2bd9));
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--ipr-campaign-active-border, var(--ipr-primary,#6c2bd9)) 18%, transparent) inset, 0 6px 14px rgba(0,0,0,.06);
  transform: translateY(-1px);
}


/* === Breathing animation (configurable toggle) === */
@keyframes ipr-breathe {
  0%   { transform: translateY(-1px) scale(1); }
  50%  { transform: translateY(-1px) scale(1.015); }
  100% { transform: translateY(-1px) scale(1); }
}
/* Apply to active cells when breathing is enabled */
.ipr-breathing .ipr-don-amt.active { animation: ipr-breathe var(--ipr-breathe-duration, 1.5s) ease-in-out infinite; }
.ipr-breathing .ipr-campaign-btn.active { animation: ipr-breathe var(--ipr-breathe-duration, 1.5s) ease-in-out infinite; }
/* Custom amount valid state */
.ipr-don-custom-input.is-valid{
  background: var(--ipr-amt-active-bg, rgba(108,43,217,.08));
  border-color: var(--ipr-amt-active-border, var(--ipr-primary,#6c2bd9));
}
.ipr-breathing .ipr-don-custom-input.is-valid{ animation: ipr-breathe var(--ipr-breathe-duration, 1.5s) ease-in-out infinite; }
/* Donate button breathing only when enabled and not disabled */
.ipr-breathing .ipr-don-button:not([disabled]){
  animation: ipr-breathe var(--ipr-breathe-duration, 1.5s) ease-in-out infinite;
}
