
/* ===== RESET ===== */
#dc-app.dc-wrapper,
#dc-app.dc-wrapper * { 
  margin: 0; 
  padding: 0; 
  box-sizing: border-box; 
}

#dc-app.dc-wrapper {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 32px;
  font-family: var(--font-body, -apple-system, BlinkMacSystemFont, sans-serif);
  color: var(--text-primary);
  padding: 0;
  background: transparent;
}

/* ===== Dashboard ===== */
#dc-app.dc-wrapper .dashboard-wrapper {
  background: linear-gradient(145deg, var(--bg-elevated), var(--bg-surface));
  border-radius: 24px;
  padding: 14px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6);
  border: 1px solid var(--surface-inset-highlight, rgba(255,255,255,0.05));
}
#dc-app.dc-wrapper .dashboard-inner { display: flex; flex-direction: column; gap: 24px; }
#dc-app.dc-wrapper .dashboard-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--surface-inset-highlight, rgba(255,255,255,0.05));
}
#dc-app.dc-wrapper .header-left { display: flex; align-items: center; gap: 14px; }
#dc-app.dc-wrapper .header-left .logo-icon { font-size: 28px; }
#dc-app.dc-wrapper .header-left h1 {
  font-size: 20px; font-weight: 700;
  background: linear-gradient(135deg, var(--primary-color), var(--hero-title-start, #b30cf8));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  letter-spacing: 0.5px;
}
#dc-app.dc-wrapper .header-left .subtitle { font-size: 11px; color: var(--text-muted); font-weight: 400; margin-left: 4px; }
#dc-app.dc-wrapper .header-right { display: flex; align-items: center; gap: 20px; }
#dc-app.dc-wrapper .header-right .week-badge {
  background: color-mix(in srgb, var(--primary-color) 12%, transparent);
  padding: 6px 18px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
  color: var(--primary-color);
  letter-spacing: 0.5px;
  border: 1px solid color-mix(in srgb, var(--primary-color) 15%, transparent);
}
#dc-app.dc-wrapper .header-right .live-dot {
  display: inline-block;
  width: 8px; height: 8px;
  background: #4caf50;
  border-radius: 50%;
  animation: dc-pulse-dot 1.5s ease-in-out infinite;
  margin-right: 6px;
}
@keyframes dc-pulse-dot {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(0.8); }
}

/* ===== Card ===== */
#dc-app.dc-wrapper .card-dark {
  background: linear-gradient(145deg, var(--bg-surface), var(--bg-elevated));
  border-radius: 15px;
  padding: 10px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
  border: 1px solid var(--surface-inset-highlight, rgba(255,255,255,0.05));
  transition: border 0.3s ease;
}
#dc-app.dc-wrapper .card-dark:hover { border-color: var(--surface-interactive-hover, rgba(255,255,255,0.15)); }
#dc-app.dc-wrapper .section-title {
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 1px;
  color: var(--text-primary);
  margin-bottom: 15px;
}
#dc-app.dc-wrapper .section-title .title-icon { margin-right: 8px; }

/* ===== KPI ===== */
#dc-app.dc-wrapper .kpi-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
#dc-app.dc-wrapper .kpi-card { text-align: center; padding: 20px 16px; }
#dc-app.dc-wrapper .kpi-card .kpi-icon { font-size: 20px; display: block; margin-bottom: 6px; }
#dc-app.dc-wrapper .kpi-card .kpi-label {
  font-size: 12px; font-weight: 600; color: var(--text-secondary);
  letter-spacing: 0.5px; text-transform: uppercase;
}
#dc-app.dc-wrapper .kpi-card h2 {
  font-size: 32px; font-weight: 600; margin: 5px 0;
  background: linear-gradient(135deg, var(--text-primary), var(--text-secondary));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
#dc-app.dc-wrapper .kpi-card .kpi-change { font-size: 11px; color: var(--text-secondary); }
#dc-app.dc-wrapper .trend-up { color: #4caf50; }
#dc-app.dc-wrapper .trend-down { color: #f44336; }

/* ===== MAIN GRID ===== */
#dc-app.dc-wrapper .main-grid {
  display: grid;
  grid-template-columns: 280px 1fr 280px;
  gap: 20px;
}
#dc-app.dc-wrapper .main-grid .col { 
  display: flex; 
  flex-direction: column; 
  gap: 20px; 
  min-width: 0; 
}
#dc-app.dc-wrapper .main-grid .col:first-child { width: 280px; min-width: 280px; max-width: 280px; }
#dc-app.dc-wrapper .main-grid .col:nth-child(2) { width: auto; min-width: 300px; max-width: none; flex: 1; }
#dc-app.dc-wrapper .main-grid .col:last-child { width: 280px; min-width: 280px; max-width: 280px; }

#dc-app.dc-wrapper .fixed-height-card { 
  height: 280px; 
  display: flex; 
  flex-direction: column;
  min-height: 280px;
  max-height: 280px;
}
#dc-app.dc-wrapper .fixed-height-card .card-content {
  flex: 1; 
  display: flex; 
  flex-direction: column; 
  justify-content: center; 
  min-height: 0;
  overflow: hidden;
}
#dc-app.dc-wrapper .chart-box { 
  height: 280px; 
  display: flex; 
  flex-direction: column;
  min-height: 280px;
  max-height: 280px;
}
#dc-app.dc-wrapper .chart-box .chart-wrap { 
  flex: 1; 
  min-height: 0; 
  position: relative; 
  overflow: hidden;
}
#dc-app.dc-wrapper .chart-box .chart-wrap canvas { 
  width: 100%; 
  height: 100%; 
}

/* ===== Pyramid ===== */
#dc-app.dc-wrapper .pyramid-wrapper { display: flex; justify-content: center; align-items: center; height: 100%; padding: 4px 0; }
#dc-app.dc-wrapper .pyramid {
  width: 160px; height: 140px;
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  display: flex; flex-direction: column;
}
#dc-app.dc-wrapper .layer { width: 100%; display: flex; justify-content: center; align-items: center; font-size: 10px; font-weight: 600; letter-spacing: 0.3px; }
#dc-app.dc-wrapper .layer1 { height: 35%; background: linear-gradient(90deg, var(--primary-color), #8a2387); align-items: flex-end; padding-bottom: 6px; color: var(--text-primary); }
#dc-app.dc-wrapper .layer2 { height: 35%; background: linear-gradient(90deg, #f27121, #e94057); color: var(--text-primary); }
#dc-app.dc-wrapper .layer3 { height: 30%; background: linear-gradient(90deg, #8a2387, #4a00e0); color: var(--text-primary); }

/* ===== Calendar ===== */
#dc-app.dc-wrapper .cal-header {
  display: grid; grid-template-columns: repeat(7, 1fr);
  text-align: center; font-size: 11px;
  background: var(--bg-elevated); padding: 8px 0; border-radius: 8px; margin-bottom: 12px;
  color: var(--text-secondary); font-weight: 600;
}
#dc-app.dc-wrapper .cal-grid {
  display: grid; grid-template-columns: repeat(7, 1fr);
  gap: 6px; text-align: center; font-size: 11px; color: var(--text-muted);
}
#dc-app.dc-wrapper .cal-grid span.other-month { color: var(--text-muted); }
#dc-app.dc-wrapper .cal-grid span.today {
  background: linear-gradient(45deg, var(--hero-title-start, #b30cf8), #4a00e0);
  color: var(--text-primary); border-radius: 3px; padding: 2px 0; font-weight: bold;
  box-shadow: 0 0 10px color-mix(in srgb, var(--hero-title-start, #b30cf8) 30%, transparent);
}
#dc-app.dc-wrapper .cal-grid span.today.has-donation { outline: 2px solid var(--primary-color); outline-offset: 1px; }
#dc-app.dc-wrapper .cal-grid span.donation-day {
  background: linear-gradient(45deg, var(--primary-color), #e91e63);
  color: var(--text-primary); border-radius: 3px; padding: 2px 0; font-weight: bold;
  box-shadow: 0 0 8px rgba(233, 30, 99, 0.4); cursor: pointer;
}
#dc-app.dc-wrapper .cal-grid span.donation-day:hover { transform: scale(1.08); }
#dc-app.dc-wrapper .cal-grid span.donation-day-orange {
  background: linear-gradient(45deg, #f27121, #ff9800);
  color: var(--text-primary); border-radius: 3px; padding: 2px 0; font-weight: bold;
  box-shadow: 0 0 8px rgba(242, 113, 33, 0.4); cursor: pointer;
}
#dc-app.dc-wrapper .cal-grid span.donation-day-orange:hover { transform: scale(1.08); }
#dc-app.dc-wrapper .cal-grid span.weekend { color: var(--text-muted); }
#dc-app.dc-wrapper .calendar-legend {
  display: flex; justify-content: center; gap: 10px;
  margin-top: 10px; font-size: 9px; color: var(--text-secondary);
}
#dc-app.dc-wrapper .calendar-legend span { display: flex; align-items: center; gap: 4px; }
#dc-app.dc-wrapper .calendar-legend .dot { display: inline-block; width: 8px; height: 8px; border-radius: 2px; }
#dc-app.dc-wrapper .dot-pink { background: linear-gradient(45deg, var(--primary-color), #e91e63); }
#dc-app.dc-wrapper .dot-orange { background: linear-gradient(45deg, #f27121, #ff9800); }
#dc-app.dc-wrapper .dot-today { background: linear-gradient(45deg, var(--hero-title-start, #b30cf8), #4a00e0); }

/* ===== Top Donors ===== */
#dc-app.dc-wrapper .radial-card {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 8px; padding: 8px 4px; align-items: center; height: 100%;
}
#dc-app.dc-wrapper a.radial-item {
  text-decoration: none; color: inherit; text-align: center;
  display: flex; flex-direction: column; align-items: center;
  transition: transform 0.3s ease, filter 0.3s ease; padding: 4px;
}
#dc-app.dc-wrapper a.radial-item:hover { transform: translateY(-6px); filter: brightness(1.15); }
#dc-app.dc-wrapper .circle {
  width: 70px; height: 70px; border-radius: 50%;
  display: flex; justify-content: center; align-items: center;
  margin: 0 auto 8px;
  background: conic-gradient(var(--c) calc(var(--p) * 1%), var(--bg-elevated) 0);
  position: relative; box-shadow: 0 0 15px rgba(0, 0, 0, 0.6); flex-shrink: 0;
}
#dc-app.dc-wrapper .circle::before {
  content: ""; position: absolute; inset: 5px;
  background-color: var(--bg-surface); border-radius: 50%; z-index: 1;
}
#dc-app.dc-wrapper .circle-avatar {
  position: relative; z-index: 2;
  width: calc(100% - 10px); height: calc(100% - 10px);
  border-radius: 50%; object-fit: cover; border: 2px solid var(--border-subtle, rgba(255,255,255,0.08));
}
#dc-app.dc-wrapper .radial-item .title { font-size: 10px; font-weight: 600; color: var(--text-primary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 70px; margin-top: 4px; }
#dc-app.dc-wrapper .radial-item .tier-badge { font-size: 8px; font-weight: 500; margin-top: 2px; padding: 2px 8px; border-radius: 10px; background: rgba(76, 175, 80, 0.15); color: #4caf50; letter-spacing: 0.3px; }
#dc-app.dc-wrapper .radial-item .subtitle { font-size: 8px; font-weight: 500; color: var(--text-secondary); margin-top: 1px; }

/* ===== Stats ===== */
#dc-app.dc-wrapper .stats-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 10px; height: 100%; align-content: center;
}
#dc-app.dc-wrapper .stat-item {
  background: var(--surface-inset-highlight, rgba(255,255,255,0.05));
  border-radius: 10px; padding: 4px 5px; text-align: center;
  border: 1px solid var(--surface-inset-highlight, rgba(255,255,255,0.05)); transition: all 0.3s ease;
}
#dc-app.dc-wrapper .stat-item:hover { background: var(--border-subtle, rgba(255,255,255,0.08)); border-color: var(--surface-interactive-hover, rgba(255,255,255,0.15)); transform: translateY(-2px); }
#dc-app.dc-wrapper .stat-item .stat-icon { font-size: 16px; display: block; margin-bottom: 3px; }
#dc-app.dc-wrapper .stat-item .stat-value {
  font-size: 20px; font-weight: 700;
  background: linear-gradient(135deg, var(--text-primary), var(--text-secondary));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; line-height: 1.2;
}
#dc-app.dc-wrapper .stat-item .stat-label { font-size: 8px; font-weight: 500; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-top: 2px; }
#dc-app.dc-wrapper .stat-item .stat-change { font-size: 8px; font-weight: 600; margin-top: 2px; display: inline-block; padding: 1px 8px; border-radius: 10px; }
#dc-app.dc-wrapper .stat-item .stat-change.up { color: #4caf50; background: rgba(76, 175, 80, 0.12); }
#dc-app.dc-wrapper .stat-item .stat-change.down { color: #f44336; background: rgba(244, 67, 54, 0.12); }
#dc-app.dc-wrapper .stat-item .stat-change.neutral { color: #ff9800; background: rgba(255, 152, 0, 0.12); }

/* ===== Leaderboard ===== */
#dc-app.dc-wrapper .donor-leaderboard {
  background: linear-gradient(145deg, var(--bg-elevated), var(--bg-surface));
  border-radius: 20px; padding: 20px 8px;
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.4);
  border: 1px solid var(--surface-inset-highlight, rgba(255,255,255,0.05)); overflow: visible;
}
#dc-app.dc-wrapper .leaderboard-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; }
#dc-app.dc-wrapper .leaderboard-header h3 { font-size: 14px; font-weight: 500; letter-spacing: 1px; color: var(--text-primary); text-transform: uppercase; }
#dc-app.dc-wrapper .leaderboard-header .donor-count { font-size: 11px; color: var(--text-secondary); background: var(--surface-inset-highlight, rgba(255,255,255,0.05)); padding: 4px 14px; border-radius: 14px; }
#dc-app.dc-wrapper .donor-grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 24px; width: 100%; overflow: visible; align-items: stretch;
}
#dc-app.dc-wrapper .donor-card {
  background: var(--bg-surface); border-radius: 16px; padding: 28px 16px 18px;
  display: flex; flex-direction: column; align-items: center; text-align: center;
  justify-content: space-between; position: relative; overflow: visible; margin-top: 12px;
  height: 100%; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
  border: 2px solid transparent; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); cursor: pointer;
}
#dc-app.dc-wrapper .donor-card:hover { transform: translateY(-5px); box-shadow: 0 15px 30px rgba(242, 113, 33, 0.15); border-color: rgba(242, 113, 33, 0.25); }
#dc-app.dc-wrapper .donor-card .avatar-wrap { position: relative; margin-bottom: 14px; flex-shrink: 0; }
#dc-app.dc-wrapper .donor-card .avatar { width: 70px; height: 70px; border-radius: 50%; object-fit: cover; border: 2.5px solid var(--bg-elevated); }
#dc-app.dc-wrapper .donor-card .donor-name { font-size: 0.95rem; color: var(--text-primary); font-weight: 600; margin-bottom: 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; width: 100%; }
#dc-app.dc-wrapper .donor-card .donor-join { font-size: 0.75rem; color: var(--text-secondary); margin-bottom: 16px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; width: 100%; }
#dc-app.dc-wrapper .donor-card .social-btn {
  width: 100%; display: flex; align-items: center; justify-content: center; padding: 10px;
  border-radius: 10px; font-size: 0.75rem; font-weight: 600; text-decoration: none;
  text-transform: uppercase; letter-spacing: 0.5px; transition: opacity 0.2s; border: none; cursor: pointer;
  white-space: nowrap; flex-shrink: 0;
}
#dc-app.dc-wrapper .donor-card .social-btn:hover { opacity: 0.9; }
#dc-app.dc-wrapper .donor-card .social-btn.fb { background: #1877f2; color: white; }
#dc-app.dc-wrapper .donor-card .social-btn.yt { background: #ff0000; color: white; }
#dc-app.dc-wrapper .donor-card .recent-tag {
  position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
  background: linear-gradient(45deg, var(--primary-color), #ff7300); color: white; padding: 4px 14px; border-radius: 20px;
  font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.8px;
  box-shadow: 0 4px 14px color-mix(in srgb, var(--primary-color) 40%, transparent); white-space: nowrap; z-index: 10;
}
#dc-app.dc-wrapper a.donor-link { text-decoration: none; color: inherit; display: block; overflow: visible; height: 100%; }

/* ===== Donation Form ===== */
#dc-app.dc-wrapper .donate-section {
  background: linear-gradient(145deg, var(--bg-elevated), var(--bg-surface)); border-radius: 20px; padding: 20px 14px;
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.4); border: 1px solid var(--surface-inset-highlight, rgba(255,255,255,0.05)); width: 100%;
}
#dc-app.dc-wrapper .donate-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; flex-wrap: wrap; gap: 12px; }
#dc-app.dc-wrapper .donate-header-left h3 {
  font-size: 17px; font-weight: 700; color: var(--text-primary);
  background: linear-gradient(135deg, var(--primary-color), var(--hero-title-start, #b30cf8));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
}
#dc-app.dc-wrapper .donate-header-left .donate-sub { font-size: 11px; color: var(--text-muted); }
#dc-app.dc-wrapper .payment-method-icons { display: flex; gap: 8px; flex-wrap: wrap; }
#dc-app.dc-wrapper .payment-method-icons .icon {
  background: var(--surface-inset-highlight, rgba(255,255,255,0.05)); padding: 5px 20px; border-radius: 8px;
  font-size: 10px; color: var(--text-muted); border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
  font-weight: 500; cursor: pointer; transition: all 0.2s ease; user-select: none;
}
#dc-app.dc-wrapper .payment-method-icons .icon.active { border-color: var(--primary-color); color: var(--primary-color); background: color-mix(in srgb, var(--primary-color) 8%, transparent); }
#dc-app.dc-wrapper .donate-form { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: start; }
#dc-app.dc-wrapper .donate-form .form-group { display: flex; flex-direction: column; gap: 5px; }
#dc-app.dc-wrapper .donate-form .form-group label { font-size: 10px; font-weight: 600; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.3px; }
#dc-app.dc-wrapper .donate-form .form-group input,
#dc-app.dc-wrapper .donate-form .form-group select {
  background: var(--bg-deep); border: 1px solid var(--border-subtle, rgba(255,255,255,0.08)); border-radius: 10px;
  padding: 10px 14px; color: var(--text-primary); font-size: 13px; transition: all 0.3s ease;
  outline: none; width: 100%; height: 42px;
}
#dc-app.dc-wrapper .donate-form .form-group input::placeholder { color: var(--text-muted); }
#dc-app.dc-wrapper .donate-form .form-group input:focus,
#dc-app.dc-wrapper .donate-form .form-group select:focus { border-color: var(--primary-color); box-shadow: 0 0 20px color-mix(in srgb, var(--primary-color) 6%, transparent); }
#dc-app.dc-wrapper .donate-form .form-group select option { background: var(--bg-surface); color: var(--text-primary); }
#dc-app.dc-wrapper .payment-select-wrapper {
  display: flex; align-items: center; width: 100%; border-radius: 10px; overflow: hidden;
  border: 1px solid var(--border-subtle, rgba(255,255,255,0.08)); background: var(--bg-deep); transition: all 0.3s ease;
}
#dc-app.dc-wrapper .payment-select-wrapper:focus-within { border-color: var(--primary-color); box-shadow: 0 0 20px color-mix(in srgb, var(--primary-color) 6%, transparent); }
#dc-app.dc-wrapper .payment-select-wrapper select {
  flex: 1; padding: 10px 14px; border: none; background: transparent;
  color: var(--text-primary); font-size: 13px; outline: none; height: 42px;
  appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237a6b8a' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center; cursor: pointer; min-width: 120px;
}
#dc-app.dc-wrapper .payment-select-wrapper select:focus { border: none; outline: none; box-shadow: none; }
#dc-app.dc-wrapper .payment-select-wrapper .copy-btn {
  background: color-mix(in srgb, var(--primary-color) 12%, transparent); border: none; border-left: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
  color: var(--primary-color); padding: 0 16px; height: 42px; font-size: 11px; font-weight: 600; cursor: pointer;
  transition: all 0.3s ease; white-space: nowrap; display: flex; align-items: center; gap: 5px; flex-shrink: 0;
}
#dc-app.dc-wrapper .payment-select-wrapper .copy-btn:hover { background: color-mix(in srgb, var(--primary-color) 20%, transparent); }
#dc-app.dc-wrapper .payment-select-wrapper .copy-btn.copied { background: rgba(76, 175, 80, 0.15); color: #4caf50; }
#dc-app.dc-wrapper .payment-select-wrapper .copy-btn:focus { outline: none; }
#dc-app.dc-wrapper .amount-group select {
  padding-right: 14px; appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237a6b8a' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center; cursor: pointer; transition: all 0.3s ease;
}
#dc-app.dc-wrapper .amount-group .custom-input {
  display: none; background: var(--bg-deep); border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
  border-radius: 10px; padding: 10px 14px; color: var(--text-primary); font-size: 13px;
  transition: all 0.3s ease; outline: none; width: 100%; height: 42px;
}
#dc-app.dc-wrapper .amount-group .custom-input:focus { border-color: var(--primary-color); box-shadow: 0 0 20px color-mix(in srgb, var(--primary-color) 6%, transparent); }
#dc-app.dc-wrapper .amount-group .custom-input.show { display: block; }
#dc-app.dc-wrapper .donate-form .helper-text { font-size: 9px; color: var(--text-muted); }
#dc-app.dc-wrapper .donate-form .error-text { font-size: 9px; color: #f44336; display: none; }
#dc-app.dc-wrapper .donate-form .error-text.show { display: block; }
#dc-app.dc-wrapper .btn-donate {
  background: linear-gradient(135deg, var(--primary-color), var(--hero-title-start, #b30cf8)); color: white; border: none; border-radius: 10px;
  padding: 10px 20px; font-size: 13px; font-weight: 600; cursor: pointer; transition: all 0.3s ease;
  text-transform: uppercase; letter-spacing: 0.3px; width: 100%; height: 42px;
}
#dc-app.dc-wrapper .btn-donate:hover { transform: translateY(-2px); box-shadow: 0 10px 30px color-mix(in srgb, var(--primary-color) 25%, transparent); }
#dc-app.dc-wrapper .btn-donate:active { transform: scale(0.96); }
#dc-app.dc-wrapper .btn-donate:disabled { opacity: 0.6; cursor: not-allowed; transform: none; }
#dc-app.dc-wrapper .full-width { grid-column: span 2; }

/* ===== Modal - SCREEN CENTER FIX ===== */
#dc-app.dc-wrapper .modal-overlay {
  position: fixed; 
  inset: 0; 
  background: color-mix(in srgb, var(--bg-deep) 75%, transparent); 
  backdrop-filter: blur(4px);
  display: flex; 
  align-items: center; 
  justify-content: center; 
  z-index: 99999;
  opacity: 0; 
  pointer-events: none; 
  transition: opacity 0.25s ease; 
  padding: 20px;
  margin: 0;
}
#dc-app.dc-wrapper .modal-overlay.show { 
  opacity: 1; 
  pointer-events: auto; 
}
#dc-app.dc-wrapper .modal-box {
  background: linear-gradient(145deg, var(--bg-surface), var(--bg-elevated)); 
  border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
  border-radius: 18px; 
  padding: 28px 26px 22px; 
  width: 100%; 
  max-width: 380px;
  box-shadow: 0 25px 60px rgba(0, 0, 0, 0.6); 
  transform: translateY(18px) scale(0.96);
  transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1); 
  text-align: center; 
  position: relative;
  margin: auto;
}
#dc-app.dc-wrapper .modal-overlay.show .modal-box { 
  transform: translateY(0) scale(1); 
}
#dc-app.dc-wrapper .modal-icon { 
  width: 56px; 
  height: 56px; 
  margin: 0 auto 14px; 
  border-radius: 50%; 
  display: flex; 
  align-items: center; 
  justify-content: center; 
  font-size: 26px; 
}
#dc-app.dc-wrapper .modal-icon.success { background: rgba(76, 175, 80, 0.15); }
#dc-app.dc-wrapper .modal-icon.error { background: rgba(244, 67, 54, 0.15); }
#dc-app.dc-wrapper .modal-icon.warning { background: rgba(255, 152, 0, 0.15); }
#dc-app.dc-wrapper .modal-title { 
  font-size: 16px; 
  font-weight: 700; 
  color: var(--text-primary); 
  margin-bottom: 8px; 
}
#dc-app.dc-wrapper .modal-message { 
  font-size: 12.5px; 
  color: var(--text-secondary); 
  line-height: 1.7; 
  margin-bottom: 22px; 
  white-space: pre-line; 
}
#dc-app.dc-wrapper .modal-message .modal-row {
  display: flex; 
  justify-content: space-between; 
  padding: 6px 12px;
  background: var(--surface-inset-highlight, rgba(255,255,255,0.05)); 
  border-radius: 8px; 
  margin-bottom: 6px; 
  font-size: 12px;
}
#dc-app.dc-wrapper .modal-message .modal-row .label { color: var(--text-muted); }
#dc-app.dc-wrapper .modal-message .modal-row .value { color: var(--text-primary); font-weight: 600; }
#dc-app.dc-wrapper .modal-close-btn {
  background: linear-gradient(135deg, var(--primary-color), var(--hero-title-start, #b30cf8)); 
  color: var(--text-primary); 
  border: none; 
  border-radius: 10px;
  padding: 11px 20px; 
  font-size: 12.5px; 
  font-weight: 600; 
  text-transform: uppercase; 
  letter-spacing: 0.3px;
  cursor: pointer; 
  width: 100%; 
  transition: all 0.25s ease;
}
#dc-app.dc-wrapper .modal-close-btn:hover { 
  transform: translateY(-2px); 
  box-shadow: 0 10px 24px color-mix(in srgb, var(--primary-color) 30%, transparent); 
}
#dc-app.dc-wrapper .modal-close-btn:active { transform: scale(0.97); }
#dc-app.dc-wrapper .modal-close-btn.subtle { 
  background: var(--surface-inset-highlight, rgba(255,255,255,0.05)); 
  color: var(--text-secondary); 
  box-shadow: none; 
}
#dc-app.dc-wrapper .modal-x {
  position: absolute; 
  top: 14px; 
  right: 14px; 
  width: 26px; 
  height: 26px; 
  border-radius: 50%;
  background: var(--surface-inset-highlight, rgba(255,255,255,0.05)); 
  border: none; 
  color: var(--text-secondary); 
  font-size: 14px; 
  cursor: pointer;
  display: flex; 
  align-items: center; 
  justify-content: center; 
  transition: all 0.2s ease;
}
#dc-app.dc-wrapper .modal-x:hover { 
  background: var(--surface-interactive-hover, rgba(255,255,255,0.15)); 
  color: var(--text-primary); 
}

/* ===== Floating Button ===== */
#dc-app.dc-wrapper .donate-fab {
  position: fixed; left: 20px; top: 80% !important; transform: translateY(-50%); z-index: 900;
  width: 84px; height: 84px; border-radius: 50%; border: none;
  background: linear-gradient(135deg, var(--primary-color), var(--hero-title-start, #b30cf8)); display: flex; flex-direction: column;
  align-items: center; justify-content: center; color: var(--text-primary); cursor: pointer;
  box-shadow: 0 10px 30px color-mix(in srgb, var(--primary-color) 45%, transparent); text-align: center;
  animation: dc-fab-float 3s ease-in-out infinite; transition: transform 0.25s ease, box-shadow 0.25s ease;
}
#dc-app.dc-wrapper .donate-fab:hover { transform: translateY(-50%) scale(1.08); box-shadow: 0 14px 36px color-mix(in srgb, var(--primary-color) 60%, transparent); }
#dc-app.dc-wrapper .donate-fab:active { transform: translateY(-50%) scale(0.95); }
#dc-app.dc-wrapper .donate-fab .fab-icon { font-size: 22px; line-height: 1; }
#dc-app.dc-wrapper .donate-fab .fab-text { font-size: 9px; font-weight: 700; line-height: 1.15; margin-top: 3px; letter-spacing: 0.3px; white-space: nowrap; }
#dc-app.dc-wrapper .donate-fab::before,
#dc-app.dc-wrapper .donate-fab::after {
  content: ''; position: absolute; inset: 0; border-radius: 50%;
  border: 2px solid color-mix(in srgb, var(--primary-color) 55%, transparent);
  animation: dc-fab-ping 2.4s cubic-bezier(0, 0, 0.2, 1) infinite; pointer-events: none;
}
#dc-app.dc-wrapper .donate-fab::after { animation-delay: 1.2s; border-color: color-mix(in srgb, var(--hero-title-start, #b30cf8) 50%, transparent); }
@keyframes dc-fab-ping {
  0% { transform: scale(1); opacity: 0.7; }
  100% { transform: scale(1.9); opacity: 0; }
}
@keyframes dc-fab-float {
  0%, 100% { transform: translateY(-50%) translateY(0); }
  50% { transform: translateY(-50%) translateY(-8px); }
}
#dc-app.dc-wrapper .donate-section.donate-highlight { animation: dc-donate-pulse 1.2s ease; }
@keyframes dc-donate-pulse {
  0% { box-shadow: 0 15px 35px rgba(0, 0, 0, 0.4), 0 0 0 0 color-mix(in srgb, var(--primary-color) 60%, transparent); }
  60% { box-shadow: 0 15px 35px rgba(0, 0, 0, 0.4), 0 0 0 14px color-mix(in srgb, var(--primary-color) 0%, transparent); }
  100% { box-shadow: 0 15px 35px rgba(0, 0, 0, 0.4), 0 0 0 0 color-mix(in srgb, var(--primary-color) 0%, transparent); }
}

/* ===== Responsive ===== */
@media (max-width: 1200px) {
  #dc-app.dc-wrapper .main-grid { grid-template-columns: 1fr 1fr; }
  #dc-app.dc-wrapper .main-grid .col:last-child { grid-column: span 2; display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
  #dc-app.dc-wrapper .main-grid .col:first-child,
  #dc-app.dc-wrapper .main-grid .col:last-child { width: auto; min-width: 0; max-width: none; }
  #dc-app.dc-wrapper .main-grid .col:nth-child(2) { width: auto; min-width: 0; max-width: none; }
  #dc-app.dc-wrapper .donor-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 992px) { 
  #dc-app.dc-wrapper .kpi-row { grid-template-columns: repeat(2, 1fr); } 
}
@media (max-width: 768px) {
  #dc-app.dc-wrapper .main-grid { grid-template-columns: 1fr; }
  #dc-app.dc-wrapper .main-grid .col:last-child { grid-column: span 1; display: flex; flex-direction: column; }
  #dc-app.dc-wrapper .main-grid .col:first-child,
  #dc-app.dc-wrapper .main-grid .col:last-child,
  #dc-app.dc-wrapper .main-grid .col:nth-child(2) { width: 100%; min-width: 0; max-width: none; }
  #dc-app.dc-wrapper .fixed-height-card,
  #dc-app.dc-wrapper .chart-box { height: auto; min-height: 240px; max-height: none; }
  #dc-app.dc-wrapper .dashboard-header { flex-direction: column; gap: 12px; align-items: flex-start; }
  #dc-app.dc-wrapper .header-right { width: 100%; justify-content: flex-start; }
  #dc-app.dc-wrapper .donor-grid { grid-template-columns: 1fr 1fr; gap: 16px; }
  #dc-app.dc-wrapper .donate-form { grid-template-columns: 1fr; }
  #dc-app.dc-wrapper .full-width { grid-column: span 1; }
  #dc-app.dc-wrapper .payment-select-wrapper select { min-width: 100px; }
  #dc-app.dc-wrapper .payment-select-wrapper .copy-btn { padding: 0 12px; font-size: 10px; }
  #dc-app.dc-wrapper .donate-fab { left: auto; right: 16px; top: auto; bottom: 16px; transform: none; width: 58px; height: 58px; }
  #dc-app.dc-wrapper .donate-fab:hover,
  #dc-app.dc-wrapper .donate-fab:active { transform: scale(0.95); }
  @keyframes dc-fab-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-6px); }
  }
}
@media (max-width: 480px) {
  #dc-app.dc-wrapper .kpi-row { grid-template-columns: 1fr 1fr; gap: 12px; }
  #dc-app.dc-wrapper .kpi-card h2 { font-size: 24px; }
  #dc-app.dc-wrapper .donor-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  #dc-app.dc-wrapper .donor-card { padding: 22px 10px 12px; margin-top: 8px; }
  #dc-app.dc-wrapper .donor-card .avatar { width: 58px; height: 58px; }
  #dc-app.dc-wrapper .donor-card .donor-name { font-size: 0.82rem; }
  #dc-app.dc-wrapper .donor-card .donor-join { font-size: 0.66rem; }
  #dc-app.dc-wrapper .circle { width: 55px; height: 55px; }
}
@media (max-width: 360px) {
  #dc-app.dc-wrapper .donor-grid { grid-template-columns: 1fr; gap: 14px; }
  #dc-app.dc-wrapper .donor-card { padding: 24px 16px 16px; }
  #dc-app.dc-wrapper .donor-card .avatar { width: 64px; height: 64px; }
  #dc-app.dc-wrapper .donor-card .donor-name { font-size: 0.9rem; }
  #dc-app.dc-wrapper .donor-card .donor-join { font-size: 0.72rem; }
}
