*{box-sizing:border-box;margin:0;padding:0} body{background:#f5f7fb;color:#222;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;line-height:1.45} a{text-decoration:none;color:#0059b3}.main-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:linear-gradient(90deg,#003366,#0059b3);color:#fff;gap:12px;flex-wrap:wrap}.header-left{display:flex;align-items:center;gap:12px}.logo-circle{height:56px;width:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;color:#003366;font-weight:800}.header-text h1,.header-left h1{font-size:18px;font-weight:700}.header-left h2{font-size:13px;font-weight:400}.header-right{display:flex;align-items:center;gap:10px}.main-content{max-width:1120px;margin:32px auto;padding:0 16px}.donation-card{background:#fff;border-radius:18px;padding:24px;box-shadow:0 6px 18px rgba(0,0,0,.08);margin-bottom:22px}.donation-card.small{max-width:520px;margin-left:auto;margin-right:auto}.donation-card.wide{max-width:1280px}.lead{font-size:16px;margin:10px 0 18px;color:#444}.grid{display:grid;gap:14px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:800px){.grid.two,.grid.three,.grid.four{grid-template-columns:1fr}.main-header{align-items:flex-start}.header-right{width:100%;justify-content:flex-start}}label{display:block;margin:12px 0;font-weight:600;color:#003366}input,select,textarea{width:100%;padding:10px 12px;border:1px solid #ccd6e6;border-radius:10px;font-size:15px;margin-top:5px;background:#fff}.btn{border:none;border-radius:999px;padding:9px 15px;cursor:pointer;font-size:14px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-height:40px;background:#e8edf7;color:#003366;font-weight:600}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:#0059b3;color:#fff}.btn.danger{background:#a00000;color:#fff}.btn-outline{background:transparent;border:1px solid #fff;color:#fff}.btn-admin{background:#ffcc00;color:#003366;font-weight:700}.actions{margin:18px 0}.amount-row{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0}.amount-btn{border:1px solid #0059b3;background:#e7f3ff;color:#003366;border-radius:999px;padding:10px 18px;font-weight:700;cursor:pointer}.alert{padding:12px 14px;border-radius:12px;margin:14px 0}.alert.info{background:#e7f3ff;color:#003366}.alert.warning{background:#fff4db;color:#7a4d00}.alert.success{background:#e6f6ea;color:#166534}.alert.error{background:#fde8e8;color:#8a0000}.paypal-area{border-top:1px solid #e1e7f0;margin-top:24px;padding-top:16px}.admin-nav{display:flex;gap:8px;flex-wrap:wrap;background:#e7f3ff;padding:10px 16px}.admin-nav a{padding:8px 12px;border-radius:999px;background:#fff;color:#003366;font-weight:700}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}.stat-grid div{background:#e7f3ff;border-radius:14px;padding:16px;text-align:center}.stat-grid strong{display:block;font-size:24px;color:#003366}.stat-grid span{font-size:13px}.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:end;margin-bottom:16px}.filters input,.filters select{width:auto;min-width:160px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;background:#fff}th,td{border:1px solid #e1e7f0;padding:8px;text-align:left;font-size:13px}th{background:#003366;color:#fff}.badge{padding:4px 8px;border-radius:999px;background:#e8edf7;font-weight:700}.badge.completed{background:#e6f6ea;color:#166534}.badge.declined,.badge.failed,.badge.cancelled{background:#fde8e8;color:#8a0000}.badge.pending,.badge.created{background:#fff4db;color:#7a4d00}.hint{font-size:12px;color:#555;margin:8px 0}h1{color:#003366;margin-bottom:8px}h2,h3{color:#003366;margin:18px 0 8px}@media print{.main-header,.admin-nav,.btn{display:none}.main-content{margin:0;max-width:100%}.donation-card{box-shadow:none}}
.payment-methods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px}.payment-box,.payment-settings-box{border:1px solid #e1e7f0;border-radius:16px;padding:16px;background:#fbfdff}.square-card-container{border:1px solid #ccd6e6;border-radius:12px;padding:12px;margin:10px 0;background:#fff;min-height:90px}@media(max-width:900px){.payment-methods{grid-template-columns:1fr}}

/* =========================================================
   Responsive/mobile compatibility update v2.5
   Applies to Chrome, Edge, Android Chrome and iOS Safari.
   Presentation only: no payment logic or database changes.
   ========================================================= */
html {
  width: 100%;
  max-width: 100%;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}
.main-header h1,
.main-header h2,
.main-header .header-text h1,
.main-header .header-left h1,
.main-header .header-left h2 {
  color: #fff;
}
.header-left,
.header-right {
  min-width: 0;
}
.header-left > div:last-child {
  min-width: 0;
}
.header-left h1,
.header-left h2 {
  overflow-wrap: anywhere;
}
input,
select,
textarea,
button,
.btn,
.amount-btn {
  font-size: 16px;
}
input,
select,
textarea {
  max-width: 100%;
}
button,
.btn,
.amount-btn {
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
.donation-card {
  max-width: 100%;
  overflow: hidden;
}
.payment-box,
.payment-settings-box,
.square-card-container,
#paypal-button-container {
  max-width: 100%;
}
#paypal-button-container {
  width: 100%;
  min-height: 45px;
}
.square-card-container iframe,
#paypal-button-container iframe {
  max-width: 100% !important;
}
.table-wrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.table-wrap table {
  min-width: 760px;
}
.receipt-shell {
  font-family: Arial, sans-serif;
  max-width: 760px;
  width: 100%;
  margin: 0 auto;
  color: #222;
}
.receipt-header {
  background: #003366;
  color: #fff;
  padding: 18px;
  border-radius: 10px 10px 0 0;
}
.receipt-header h1,
.receipt-header p {
  color: #fff;
}
.receipt-header h1 {
  margin: 0;
  font-size: 22px;
  line-height: 1.25;
}
.receipt-header p {
  margin: 6px 0 0;
}
.receipt-body {
  border: 1px solid #d6dce8;
  border-top: 0;
  padding: 18px;
  border-radius: 0 0 10px 10px;
  background: #fff;
  max-width: 100%;
  overflow: hidden;
}
.receipt-title {
  margin: 0 0 10px;
  overflow-wrap: anywhere;
}
.receipt-table-wrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.receipt-table {
  width: 100%;
  border-collapse: collapse;
  border-color: #d6dce8;
  font-size: 14px;
  table-layout: fixed;
}
.receipt-table td {
  border: 1px solid #d6dce8;
  padding: 8px;
  vertical-align: top;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.receipt-table td:first-child {
  font-weight: bold;
  width: 34%;
  background: #f5f7fb;
}
.receipt-text {
  font-size: 14px;
  margin-top: 14px;
  overflow-wrap: anywhere;
}
.receipt-note {
  font-size: 12px;
  color: #555;
  overflow-wrap: anywhere;
}
.receipt-actions {
  margin-top: 14px;
}
.receipt-print-button {
  background: #003366;
  color: #fff;
  border: 0;
  padding: 10px 18px;
  border-radius: 999px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
}
@media (max-width: 800px) {
  .main-content {
    margin: 20px auto;
    padding: 0 12px;
    max-width: 100%;
  }
  .donation-card {
    padding: 18px;
    border-radius: 16px;
  }
  .main-header {
    padding: 12px max(12px, env(safe-area-inset-right)) 12px max(12px, env(safe-area-inset-left));
    align-items: stretch;
  }
  .header-left {
    width: 100%;
    align-items: center;
  }
  .header-left h1 {
    font-size: 17px;
    line-height: 1.25;
  }
  .header-left h2 {
    font-size: 13px;
    line-height: 1.3;
  }
  .header-right {
    width: 100%;
    justify-content: flex-start;
    flex-wrap: wrap;
  }
  .header-right .btn {
    flex: 1 1 auto;
  }
  .logo-circle {
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
  }
  .amount-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .amount-btn,
  .payment-box .btn,
  .paypal-area .btn {
    width: 100%;
  }
  .admin-nav {
    overflow-x: auto;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
  }
  .admin-nav a {
    flex: 0 0 auto;
    white-space: nowrap;
  }
  .filters {
    display: grid;
    grid-template-columns: 1fr;
  }
  .filters input,
  .filters select,
  .filters button,
  .filters a {
    width: 100%;
    min-width: 0;
  }
  .stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .main-content {
    margin: 16px auto;
    padding: 0 10px;
  }
  .donation-card {
    padding: 14px;
    border-radius: 14px;
  }
  .lead {
    font-size: 15px;
  }
  .payment-methods {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .payment-box {
    padding: 14px;
  }
  .receipt-shell {
    max-width: 100%;
  }
  .receipt-header {
    padding: 16px;
  }
  .receipt-header h1 {
    font-size: 20px;
  }
  .receipt-body {
    padding: 14px;
    overflow: visible;
  }
  .receipt-table-wrap {
    overflow-x: visible;
  }
  .receipt-table,
  .receipt-table tbody,
  .receipt-table tr,
  .receipt-table td {
    display: block;
    width: 100% !important;
  }
  .receipt-table tr {
    border: 1px solid #d6dce8;
    border-bottom: 0;
  }
  .receipt-table tr:last-child {
    border-bottom: 1px solid #d6dce8;
  }
  .receipt-table td {
    border: 0;
  }
  .receipt-table td:first-child {
    border-bottom: 1px solid #e1e7f0;
  }
  .receipt-print-button,
  .receipt-actions .btn,
  .main-content > .btn,
  .donation-card > p .btn {
    width: 100%;
  }
}
@media (max-width: 420px) {
  .amount-row {
    grid-template-columns: 1fr;
  }
  .stat-grid {
    grid-template-columns: 1fr;
  }
}
@media print {
  body { background: #fff; overflow: visible; }
  .receipt-shell { max-width: 100%; }
  .receipt-body { border: 0; padding: 0; }
  .receipt-table, .receipt-table tbody, .receipt-table tr, .receipt-table td { display: table-cell; }
  .receipt-print-button, .receipt-actions { display: none !important; }
}


/* Cosmetic logo update v2.6 */
.logo-mark{display:block;width:68px;height:68px;object-fit:contain;flex:0 0 68px;background:transparent}
.receipt-header-top{display:flex;align-items:center;gap:14px}
.receipt-header-text{min-width:0}
.receipt-logo{display:block;width:72px;height:72px;object-fit:contain;flex:0 0 72px;background:transparent}
@media (max-width: 800px) {
  .logo-mark{width:58px;height:58px;flex-basis:58px}
  .receipt-header-top{align-items:flex-start}
  .receipt-logo{width:64px;height:64px;flex-basis:64px}
}
@media print {
  .logo-mark,.receipt-logo{print-color-adjust:exact;-webkit-print-color-adjust:exact}
}

/* Campaign banner and donor terms update v2.7 */
.campaign-banner{margin:18px 0;border-radius:16px;overflow:hidden;border:1px solid #d6dce8;background:#f8fafc}
.campaign-banner img{display:block;width:100%;height:auto;max-height:450px;object-fit:contain;background:#fff}
.campaign-preview{margin:14px 0;border:1px solid #d6dce8;border-radius:14px;padding:12px;background:#fbfdff}
.campaign-preview img{display:block;width:100%;max-width:900px;height:auto;border-radius:10px;border:1px solid #e1e7f0;background:#fff}
.terms-box{border:1px solid #d6dce8;border-radius:16px;background:#fbfdff;padding:16px;margin:18px 0}
.terms-preview{white-space:pre-wrap;max-height:360px;overflow:auto;border:1px solid #ccd6e6;border-radius:12px;background:#fff;padding:14px;margin:12px 0;color:#222;font-size:14px;line-height:1.5;-webkit-overflow-scrolling:touch}
.checkbox-line{display:flex;gap:10px;align-items:flex-start;color:#003366;font-weight:700}
.checkbox-line input[type="checkbox"]{width:auto;min-width:18px;margin-top:4px}
.soft-separator{border:0;border-top:1px solid #e1e7f0;margin:22px 0}
code{background:#eef4ff;border:1px solid #d6e4ff;border-radius:6px;padding:1px 5px;color:#003366;display:inline-block;margin:2px 0}
@media(max-width:640px){.campaign-banner{border-radius:12px}.terms-box{padding:14px}.terms-preview{font-size:13px;max-height:300px}.checkbox-line{font-size:15px}}


/* Receipt print/PDF layout correction v2.9
   This block is intentionally placed at the very end of the stylesheet
   to override mobile receipt rules and avoid broken table cells when
   Chrome/Edge/Safari print or save the receipt as PDF. */
@media print {
  @page {
    margin: 12mm;
  }
  html,
  body {
    width: 100% !important;
    max-width: none !important;
    background: #fff !important;
    overflow: visible !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  body {
    font-size: 12px !important;
    line-height: 1.35 !important;
  }
  .main-header,
  .admin-nav,
  .header-right,
  .btn,
  .receipt-print-button,
  .receipt-actions {
    display: none !important;
  }
  .main-content {
    display: block !important;
    max-width: 760px !important;
    width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    overflow: visible !important;
  }
  .donation-card {
    display: block !important;
    width: 100% !important;
    max-width: 760px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    background: #fff !important;
    overflow: visible !important;
  }
  .alert.success {
    display: block !important;
    width: 100% !important;
    margin: 0 0 12px !important;
    padding: 9px 11px !important;
    border-radius: 8px !important;
    font-size: 12px !important;
  }
  .receipt-shell {
    display: block !important;
    width: 100% !important;
    max-width: 760px !important;
    margin: 0 auto !important;
    color: #222 !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }
  .receipt-header {
    display: block !important;
    width: 100% !important;
    background: #003366 !important;
    color: #fff !important;
    padding: 14px !important;
    border-radius: 10px 10px 0 0 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .receipt-header-top {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
  }
  .receipt-logo {
    display: block !important;
    width: 54px !important;
    height: 54px !important;
    flex: 0 0 54px !important;
    object-fit: contain !important;
  }
  .receipt-header-text {
    display: block !important;
    min-width: 0 !important;
  }
  .receipt-header h1,
  .receipt-header p {
    color: #fff !important;
  }
  .receipt-header h1 {
    margin: 0 !important;
    font-size: 18px !important;
    line-height: 1.25 !important;
  }
  .receipt-header p {
    margin: 4px 0 0 !important;
    font-size: 11px !important;
  }
  .receipt-body {
    display: block !important;
    width: 100% !important;
    border: 1px solid #d6dce8 !important;
    border-top: 0 !important;
    padding: 14px !important;
    border-radius: 0 0 10px 10px !important;
    background: #fff !important;
    overflow: visible !important;
  }
  .receipt-title {
    display: block !important;
    margin: 0 0 9px !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }
  .receipt-table-wrap {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
  }
  .receipt-table {
    display: table !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    border-collapse: collapse !important;
    table-layout: fixed !important;
    background: #fff !important;
    font-size: 11px !important;
    line-height: 1.3 !important;
  }
  .receipt-table tbody {
    display: table-row-group !important;
  }
  .receipt-table tr {
    display: table-row !important;
    width: auto !important;
    border: 0 !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }
  .receipt-table td {
    display: table-cell !important;
    width: auto !important;
    max-width: none !important;
    border: 1px solid #d6dce8 !important;
    padding: 6px 7px !important;
    vertical-align: top !important;
    text-align: left !important;
    font-size: 11px !important;
    line-height: 1.3 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
    background: #fff !important;
  }
  .receipt-table td:first-child {
    display: table-cell !important;
    width: 32% !important;
    max-width: 32% !important;
    border: 1px solid #d6dce8 !important;
    border-bottom: 1px solid #d6dce8 !important;
    background: #f5f7fb !important;
    font-weight: bold !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .receipt-text {
    display: block !important;
    margin-top: 12px !important;
    font-size: 11px !important;
    line-height: 1.35 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }
  .receipt-note {
    display: block !important;
    margin-top: 6px !important;
    font-size: 9px !important;
    line-height: 1.35 !important;
    color: #555 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }
}
