.donation-trigger {
  width: 100%;
}

.donation-modal .modal-content {
  border: 0;
  border-radius: 24px;
  overflow: hidden;
  background: var(--surface, #ffffff);
  box-shadow: 0 30px 80px rgba(21, 33, 52, 0.22);
}

.donation-modal .modal-dialog {
  margin: 1rem;
}

.donation-modal {
  z-index: 20010 !important;
}

.modal-backdrop.show {
  z-index: 20000 !important;
}

.donation-modal .modal-header {
  padding: 1.5rem 1.5rem 0.75rem;
  border-bottom: 0;
  align-items: flex-start;
  gap: 1rem;
}

.donation-modal .modal-body {
  padding: 0 1.5rem 1.5rem;
}

.donation-modal__header-copy {
  display: grid;
  gap: 0.2rem;
}

.donation-modal__kicker {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6a1bb1;
}

.donation-modal__header-text {
  margin: 0;
  color: var(--text-muted, #52606d);
  line-height: 1.45;
}

.donation-modal__intro {
  margin-bottom: 1rem;
  color: var(--text-muted, #52606d);
}

.donation-modal__grid {
  display: grid;
  gap: 1rem;
}

.donation-modal__field label,
.donation-modal__amount-label {
  display: block;
  margin-bottom: 0.45rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--text-strong, #17212b);
}

.donation-modal__field input,
.donation-modal__custom-head input {
  width: 100%;
  min-height: 52px;
  padding: 0.85rem 1rem;
  border: 1px solid var(--border-soft, #d9e1e8);
  border-radius: 16px;
  background: var(--surface, #fff);
  color: var(--text-strong, #17212b);
  box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.04);
  outline: 0;
  appearance: textfield;
  -moz-appearance: textfield;
}

.donation-modal__field input::placeholder,
.donation-modal__custom-head input::placeholder {
  color: var(--text-muted, #6b7280);
}

.donation-modal__field input:focus,
.donation-modal__custom-head input:focus {
  border-color: #0d6efd;
  box-shadow: 0 0 0 4px rgba(13, 110, 253, 0.14);
}

.donation-modal__presets {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
}

.donation-modal__preset {
  display: grid;
  gap: 0.15rem;
  padding: 0.95rem 0.85rem;
  border: 1px solid var(--border-soft, #d9e1e8);
  border-radius: 18px;
  background: linear-gradient(180deg, var(--surface, #ffffff) 0%, #f6f8fb 100%);
  text-align: left;
  transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
  justify-items: center;
  min-height: 72px;
}

.donation-modal__preset.is-active {
  border-color: #0d6efd;
  box-shadow: 0 16px 34px rgba(13, 110, 253, 0.16);
  transform: translateY(-2px);
}

.donation-modal__preset-value {
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--text-strong, #17212b);
}

.donation-modal__custom {
  display: grid;
  gap: 0.75rem;
}

.donation-modal__custom-head {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.donation-modal__currency {
  font-weight: 800;
  color: var(--text-strong, #17212b);
  min-width: 36px;
  text-align: center;
}

.donation-modal__range {
  width: 100%;
}

.donation-modal__footer {
  display: grid;
  gap: 0.85rem;
  margin-top: 0.5rem;
}

.donation-modal__feedback {
  min-height: 1.5rem;
  margin: 0;
  color: var(--text-body, #3c4856);
}

.donation-modal__feedback.is-error {
  color: #b42318;
}

.donation-supporters {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(23, 33, 43, 0.08);
}

.donation-supporters__title {
  margin-bottom: 0.75rem;
  font-size: 1.2rem;
}

.donation-supporters__names {
  margin: 0;
  color: var(--text-muted, #52606d);
  line-height: 1.8;
}

body.dark-mode .donation-modal .modal-content {
  background: var(--surface, #12161d);
  border: 1px solid var(--border-strong, rgba(255, 255, 255, 0.12));
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.42);
}

body.dark-mode .donation-modal .btn-close {
  filter: invert(1) grayscale(1);
  opacity: 0.75;
}

body.dark-mode .donation-modal__kicker {
  color: #c792ff;
}

body.dark-mode .donation-modal__field input,
body.dark-mode .donation-modal__custom-head input {
  background: rgba(255, 255, 255, 0.04);
  border-color: var(--border-strong, rgba(255, 255, 255, 0.14));
  color: var(--text-strong, #f5f7fa);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.22);
}

body.dark-mode .donation-modal__field input::placeholder,
body.dark-mode .donation-modal__custom-head input::placeholder {
  color: var(--text-muted, rgba(255, 255, 255, 0.55));
}

body.dark-mode .donation-modal__preset {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.03) 100%);
  border-color: var(--border-strong, rgba(255, 255, 255, 0.14));
}

body.dark-mode .donation-modal__preset.is-active {
  border-color: #6ea8fe;
  box-shadow: 0 16px 34px rgba(13, 110, 253, 0.22);
}

@media (max-width: 767px) {
  .donation-modal .modal-dialog {
    margin: 0.5rem;
  }

  .donation-modal .modal-content {
    border-radius: 18px;
  }

  .donation-modal .modal-header {
    padding: 1rem 1rem 0.5rem;
  }

  .donation-modal .modal-body {
    padding: 0 1rem 1rem;
  }

  .donation-modal__intro {
    margin-bottom: 0.85rem;
    font-size: 0.98rem;
    line-height: 1.5;
  }

  .donation-modal__kicker {
    font-size: 0.84rem;
    letter-spacing: 0.06em;
  }

  .donation-modal__header-text {
    font-size: 0.92rem;
  }

  .donation-modal__grid {
    gap: 0.85rem;
  }

  .donation-modal__field label,
  .donation-modal__amount-label {
    margin-bottom: 0.35rem;
    font-size: 0.9rem;
  }

  .donation-modal__field input {
    min-height: 48px;
    padding: 0.75rem 0.9rem;
    border-radius: 14px;
  }

  .donation-modal__presets {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.5rem;
  }

  .donation-modal__preset {
    min-height: 60px;
    padding: 0.75rem 0.45rem;
    border-radius: 14px;
  }

  .donation-modal__preset-value {
    font-size: 1.05rem;
  }

  .donation-modal__custom {
    gap: 0.5rem;
  }

  .donation-modal__custom-head {
    gap: 0.5rem;
  }

  .donation-modal__currency {
    min-width: 28px;
    font-size: 1rem;
  }

  .donation-modal__footer {
    gap: 0.65rem;
    margin-top: 0.25rem;
  }
}
