/* Donate flow + My donations (mobile-first). Used by /Donate, /Alumni/Donate, /Alumni/MyDonations.
   Markup hooks only: behaviour is in /js/donate.js and /js/razorpay-checkout.js. */
.donate-flow [hidden], .my-donations [hidden] { display: none !important; }
.donate-flow { scroll-margin-top: calc(var(--nav-h, 64px) + 16px); }

/* /Donate: form card + "ways to give" side by side on wide screens */
.donate-split { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-5); align-items: start; }
@media (min-width: 1024px) { .donate-split { grid-template-columns: minmax(0, 7fr) minmax(300px, 5fr); gap: clamp(1.5rem, 3vw, 3rem); } .donate-split > aside { position: sticky; top: calc(var(--nav-h) + 20px); } }
@media (min-width: 1536px) { .donate-split { grid-template-columns: minmax(0, 760px) minmax(320px, 520px); justify-content: center; } }
.donate-card { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: clamp(1.1rem, 3vw, 2rem); box-shadow: var(--shadow-sm); min-width: 0; }
.donate-card.is-soft { background: var(--paper); box-shadow: none; }
.donate-card-title { font-size: var(--fs-title); margin: 0 0 var(--sp-4); }
.donate-fine { font-size: var(--fs-xs); color: var(--muted); margin: var(--sp-3) 0 0; line-height: 1.5; }
.donate-alt { margin: var(--sp-4) 0 0; font-size: var(--fs-sm); text-align: center; }
.donate-status { min-height: 1.4em; margin: .7rem 0 0; font-size: var(--fs-sm); color: var(--teal-700); }

.amount-chips { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin: var(--sp-2) 0 var(--sp-1); }
.amount-chips .chip {
  min-height: var(--ctl-h-sm); padding: 0 .8rem; border-radius: 100px; border: 1px solid var(--line-strong);
  background: #fff; color: var(--ink); font-weight: 600; font-size: var(--fs-sm); cursor: pointer; font-variant-numeric: tabular-nums;
  transition: border-color .15s, background .15s, color .15s;
}
.amount-chips .chip:hover, .amount-chips .chip.on { border-color: var(--teal); color: var(--teal-700); background: var(--cream); }
.amount-chips .chip:focus-visible { outline: none; box-shadow: var(--ring); }

.pay-methods { border: 0; padding: 0; margin: 0 0 var(--sp-4); display: grid; gap: var(--sp-2); min-width: 0; }
@media (min-width: 768px) { .pay-methods:has(> .pay-opt:nth-of-type(3)) { grid-template-columns: repeat(3, minmax(0, 1fr)); } .pay-methods:has(> .pay-opt:nth-of-type(2):last-of-type) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pay-methods legend { font-weight: 600; font-size: var(--fs-sm); color: var(--ink-2); margin-bottom: var(--sp-2); padding: 0; }
.pay-opt { display: flex; gap: .65rem; align-items: flex-start; padding: .75rem .85rem; border: 1px solid var(--line-strong); border-radius: 12px; background: #fff; cursor: pointer; min-height: 44px; transition: border-color .15s, box-shadow .15s; }
.pay-opt:hover { border-color: var(--teal-300); }
.pay-opt input { width: 18px; height: 18px; margin-top: .15rem; accent-color: var(--teal); flex: none; }
.pay-opt span { display: grid; gap: .15rem; font-size: var(--fs-sm); }
.pay-opt strong i { color: var(--teal-700); margin-right: 2px; }
.pay-opt small { color: var(--muted); font-size: var(--fs-xs); line-height: 1.45; }
.pay-opt:has(input:checked) { border-color: var(--teal); background: #f4fbfb; box-shadow: var(--ring); }

.check { display: flex; align-items: center; gap: .6rem; font-weight: 500; font-size: var(--fs-sm); cursor: pointer; margin: 0 0 var(--sp-3); min-height: 36px; }
.check input { width: 18px; height: 18px; accent-color: var(--teal); flex: none; }
@media (pointer: coarse) { .check { min-height: 44px; } }
.recurring-box { margin-bottom: var(--sp-2); padding: var(--sp-3) var(--sp-4) var(--sp-1); border-radius: 12px; background: var(--paper); }
.recurring-box .check { margin-bottom: var(--sp-2); }

.donate-step h3 { margin: .3rem 0 .8rem; font-size: var(--fs-lg); }
.donate-summary { display: grid; gap: .5rem; padding: .85rem 1rem; border-radius: 12px; background: var(--cream); margin-bottom: var(--sp-4); }
.donate-summary div { display: flex; justify-content: space-between; gap: 1rem; font-size: var(--fs-base); }
.donate-summary strong { text-align: right; font-variant-numeric: tabular-nums; }
.donate-done { font-size: 2.6rem; color: var(--teal); }

.upi-pay { display: grid; justify-items: center; gap: .8rem; text-align: center; margin-bottom: .8rem; }
.upi-qr { width: 232px; max-width: 80%; height: auto; border: 1px solid var(--line); border-radius: 12px; background: #fff; padding: 8px; image-rendering: pixelated; }
.upi-meta { font-size: var(--fs-base); overflow-wrap: anywhere; }
/* App buttons only on touch devices (phones), where the upi:// intent can open the app. */
.upi-apps { display: none; flex-wrap: wrap; gap: .5rem; justify-content: center; margin: .2rem 0 .6rem; }
@media (hover: none) and (pointer: coarse) { .upi-apps { display: flex; } }
.ref-form { margin-top: var(--sp-5); }

.bank-table { min-width: 0 !important; }
.bank-table td { white-space: normal; word-break: break-word; }
.ways { list-style: none; padding: 0; margin: 0 0 var(--sp-4); display: grid; gap: var(--sp-3); }
.ways li { display: flex; gap: .7rem; align-items: flex-start; font-size: var(--fs-sm); line-height: 1.55; color: var(--ink-2); }
.ways li strong { display: block; color: var(--ink); }
.ways i { flex: none; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 9px; background: #fff; border: 1px solid var(--line); color: var(--teal-700); }
.bank-list { margin: 0; display: grid; border: 1px solid var(--line); border-radius: 12px; background: #fff; overflow: hidden; }
.bank-list > div { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1px; padding: .6rem .85rem; border-bottom: 1px solid var(--line); }
.bank-list > div:last-child { border-bottom: 0; }
.bank-list dt { font-size: var(--fs-xs); font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.bank-list dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; user-select: all; }
@media (min-width: 480px) { .bank-list > div { grid-template-columns: 9.5rem minmax(0, 1fr); gap: var(--sp-3); align-items: baseline; } }

/* My donations */
.my-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .7rem; }
.my-item { display: grid; gap: .35rem; padding: .9rem 1rem; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.my-item .top { display: flex; justify-content: space-between; gap: .8rem; align-items: baseline; flex-wrap: wrap; }
.my-item .amt { font-family: var(--font-head); font-weight: 700; font-size: var(--fs-lg); font-variant-numeric: tabular-nums; }
.my-item .meta { color: var(--muted); font-size: var(--fs-sm); display: flex; flex-wrap: wrap; gap: .3rem .9rem; overflow-wrap: anywhere; }
.my-item .actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .3rem; }
@media (min-width: 900px) { .my-list.two { grid-template-columns: 1fr 1fr; } }
.my-donations .panel + .panel { margin-top: var(--sp-4); }
.m-amt { font-variant-numeric: tabular-nums; }
@media (prefers-reduced-motion: reduce) { .pay-opt, .amount-chips .chip { transition: none; } }
