    * { box-sizing: border-box; }
    [hidden] { display: none !important; }
    :root {
      --deep-hero: #061522;
      --deep-hero-2: #0B2130;
      --hero-gold-glow: rgba(216, 176, 88, 0.24);
      --deep: var(--deep-hero);
      --forest: var(--deep-hero-2);
      --gold: #C8A24A;
      --cream: #F6F1E8;
      --paper: #FFFDF9;
      --stone: #6F6A60;
      --muted: #9A9488;
      --ink: #171715;
      --line: rgba(111,106,96,0.22);
      --line-strong: rgba(6,21,34,0.16);
      --shadow: 0 24px 70px rgba(6,21,34,0.12);
      --soft-shadow: 0 12px 32px rgba(6,21,34,0.07);
      --serif: 'Cormorant Garamond', Georgia, serif;
      --sans: 'DM Sans', system-ui, sans-serif;
    }
    body { margin: 0; min-height: 100vh; font-family: var(--sans); background: linear-gradient(180deg, rgba(6,21,34,0.07), transparent 320px), linear-gradient(90deg, rgba(184,144,47,0.06), transparent 32%, rgba(11,33,48,0.05)), var(--cream); color: var(--ink); }
    button { border: 0; border-radius: 8px; padding: 0.8rem 1rem; background: var(--deep); color: var(--cream); font: inherit; font-weight: 600; cursor: pointer; position: relative; overflow: hidden; transition: transform 0.15s, box-shadow 0.15s, background 0.15s; }
    button:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 10px 22px rgba(6,21,34,0.12); }
    button.gold { background: var(--gold); color: var(--deep); }
    button.secondary { background: white; color: var(--deep); border: 1px solid var(--line); }
    button:disabled { opacity: 0.6; cursor: wait; }
    button.loading { color: transparent !important; pointer-events: none; }
    button.loading::after { content: ""; position: absolute; top: calc(50% - 8px); left: calc(50% - 8px); width: 16px; height: 16px; border: 2px solid rgba(246,241,232,0.3); border-top-color: var(--cream); border-radius: 50%; animation: spin 0.8s linear infinite; }
    button.secondary.loading::after { border: 2px solid rgba(6,21,34,0.1); border-top-color: var(--deep); }
    button.gold.loading::after { border-color: rgba(6,21,34,0.15); border-top-color: var(--deep); }
    @keyframes spin { to { transform: rotate(360deg); } }
    label { display: block; margin-bottom: 0.35rem; color: var(--muted); font-size: 11px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
    input, textarea, select { width: 100%; border: 1px solid rgba(111,106,96,0.25); border-radius: 8px; background: white; padding: 0.78rem 0.85rem; color: var(--ink); font: inherit; transition: border-color 0.15s, box-shadow 0.15s, background 0.15s; }
    input:focus, textarea:focus, select:focus { outline: none; border-color: rgba(184,144,47,0.75); box-shadow: 0 0 0 3px rgba(184,144,47,0.12); }
    textarea { resize: vertical; min-height: 120px; line-height: 1.55; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 13px; }
    .toast-container { position: fixed; bottom: 2rem; right: 2rem; display: flex; flex-direction: column; gap: 0.75rem; z-index: 9999; pointer-events: none; }
    .toast { background: white; border-left: 4px solid var(--gold); border-radius: 8px; padding: 1rem 1.25rem; box-shadow: 0 10px 30px rgba(6,21,34,0.12); transform: translateX(120%); transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease; color: var(--ink); font-size: 13px; font-weight: 500; line-height: 1.5; max-width: 350px; pointer-events: auto; }
    .toast.show { transform: translateX(0); }
    .toast.success { border-left-color: var(--forest); background: rgba(11,33,48,0.04); }
    .toast.error { border-left-color: #8a2929; background: rgba(150,40,40,0.04); color: #8a2929; }
    body.parish-login-simple {
      min-height: 100vh;
      background:
        radial-gradient(circle at 50% -10%, rgba(184,144,47,0.16), transparent 30rem),
        linear-gradient(180deg, rgba(253,251,247,0.72), transparent 24rem),
        var(--cream);
    }
    .parish-auth-page {
      min-height: 100vh;
      display: grid;
      place-items: center;
      padding: 1.25rem;
    }
    .parish-auth-shell {
      width: min(100%, 540px);
      display: grid;
      gap: 1rem;
    }
    .parish-auth-intro {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr);
      gap: 1rem;
      align-items: center;
    }
    .parish-auth-intro img {
      width: 72px;
      height: 72px;
      object-fit: contain;
      opacity: 0.82;
    }
    .parish-auth-intro .eyebrow {
      color: var(--stone);
      font-size: 13px;
      font-weight: 800;
      letter-spacing: 0.16em;
      text-transform: uppercase;
    }
    .parish-auth-intro h1 {
      margin: 0.2rem 0 0;
      color: #050505;
      font-family: var(--sans);
      font-size: clamp(2.15rem, 8vw, 3.15rem);
      font-weight: 800;
      letter-spacing: 0;
      line-height: 1.02;
    }
    .parish-auth-intro p {
      margin-top: 0.7rem;
      border: 1px solid rgba(184,144,47,0.32);
      border-radius: 12px;
      background: rgba(184,144,47,0.1);
      color: #6b5012;
      padding: 0.8rem 0.9rem;
      font-size: 14px;
      font-weight: 700;
      line-height: 1.45;
    }
    .parish-auth-card {
      display: grid;
      gap: 0.85rem;
      border: 1px solid rgba(184,144,47,0.25);
      border-radius: 16px;
      background: rgba(255,255,255,0.7);
      padding: 1rem;
      box-shadow: 0 14px 36px rgba(6,21,34,0.08);
    }
    .parish-auth-card h2 {
      margin: 0;
      color: var(--deep);
      font-family: var(--serif);
      font-size: 26px;
      font-weight: 600;
      line-height: 1;
    }
    .parish-auth-actions {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0.7rem;
      margin-top: 0.25rem;
    }
    .parish-auth-actions .btn {
      width: 100%;
      justify-content: center;
      min-height: 46px;
      text-decoration: none;
    }
    .app { display: grid; grid-template-columns: 300px minmax(0, 1fr); min-height: 100vh; }
    .sidebar { background: var(--deep); color: var(--cream); display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh; overflow: hidden; border-right: 1px solid rgba(184,144,47,0.2); }
    .sidebar-body { flex: 1; overflow-y: auto; display: flex; flex-direction: column; min-height: 0; scrollbar-width: thin; scrollbar-color: rgba(184,144,47,0.38) rgba(246,241,232,0.04); }
    .sidebar-body::-webkit-scrollbar { width: 4px; }
    .sidebar-body::-webkit-scrollbar-track { background: transparent; }
    .sidebar-body::-webkit-scrollbar-thumb { background: rgba(184,144,47,0.28); border-radius: 4px; }
    .sidebar-body::-webkit-scrollbar-thumb:hover { background: rgba(184,144,47,0.55); }
    .sidebar-header { padding: 1.5rem 1.25rem 1.25rem; border-bottom: 1px solid rgba(184,144,47,0.15); flex-shrink: 0; position: relative; overflow: hidden; }
    .sidebar-header::before { content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 220px; height: 110px; background: radial-gradient(ellipse at top, rgba(184,144,47,0.14), transparent 70%); pointer-events: none; z-index: 0; }
    .sidebar-brand { display: flex; align-items: center; gap: 10px; margin-bottom: 0.75rem; position: relative; z-index: 2; }
    .sidebar-mark { width: 40px; height: 40px; background: rgba(184,144,47,0.12); border: 1px solid rgba(184,144,47,0.3); border-radius: 8px; display: grid; place-items: center; flex: 0 0 auto; }
    .dashboard-home-mark { color: inherit; text-decoration: none; transition: border-color 0.15s ease, background 0.15s ease, transform 0.15s ease; }
    .dashboard-home-mark:hover { border-color: rgba(200,162,74,0.72); background: rgba(200,162,74,0.2); transform: translateY(-1px); }
    .sidebar-mark img { width: 36px; height: 36px; object-fit: contain; display: block; }
    .sidebar-name { font-family: var(--serif); font-size: 25px; font-weight: 500; color: var(--cream); }
    .sidebar-name em { color: var(--gold); font-style: normal; }
    .dashboard-home-cue { border: 1px solid rgba(200,162,74,0.42); border-radius: 999px; padding: 0.18rem 0.48rem; color: var(--gold); background: rgba(200,162,74,0.1); font-size: 10px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
    .sidebar-pill { display: inline-flex; border: 1px solid rgba(184,144,47,0.32); border-radius: 999px; padding: 0.22rem 0.65rem; color: var(--gold); font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; position: relative; z-index: 1; }
    .sidebar-auth, .sidebar-profile { padding: 1rem 1.25rem; border-bottom: 1px solid rgba(184,144,47,0.11); }
    .sidebar-auth { display: grid; gap: 0.7rem; }
    .sidebar-auth label { color: var(--gold); font-size: 10px; letter-spacing: 0.1em; margin-bottom: 0.35rem; }
    .sidebar input { background: rgba(246,241,232,0.06); border: 1px solid rgba(184,144,47,0.18); color: var(--cream); padding: 0.62rem 0.7rem; font-size: 12px; }
    .sidebar input::placeholder { color: rgba(166,159,145,0.55); }
    .sidebar-load { width: 100%; padding: 0.65rem 0.8rem; background: var(--gold); color: var(--deep); box-shadow: none; font-size: 13px; }
    .sidebar-profile { display: none; }
    .sidebar-profile.visible { display: block; }
    .sidebar-parish-name { font-family: var(--serif); font-size: 18px; color: var(--cream); line-height: 1.2; margin-bottom: 0.25rem; }
    .sidebar-parish-meta { font-size: 11px; color: var(--muted); line-height: 1.5; margin-bottom: 0.55rem; }
    .sidebar-status-chip { display: inline-flex; align-items: center; border-radius: 999px; padding: 0.22rem 0.6rem; background: rgba(11,33,48,0.25); color: var(--gold); font-size: 11px; font-weight: 700; text-transform: capitalize; }
    .sidebar-status-chip.paused { background: rgba(184,144,47,0.18); color: var(--gold); }
    .sidebar-status-chip.hidden { background: rgba(111,106,96,0.2); color: var(--muted); }
    .sidebar-nav { padding: 0.75rem 0; border-bottom: 1px solid rgba(184,144,47,0.1); display: flex; flex-direction: column; }
    #nav-settings { order: 99; margin-top: 0.35rem; }
    .sidebar-nav-item { display: flex; align-items: center; gap: 10px; padding: 0.65rem 1.25rem; color: rgba(246,241,232,0.62); font-size: 13px; cursor: pointer; border-left: 3px solid transparent; transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1); }
    .sidebar-nav-item:hover { background: rgba(184,144,47,0.06); color: var(--cream); padding-left: 1.45rem; }
    .sidebar-nav-item.active { background: rgba(184,144,47,0.1); color: var(--cream); border-left-color: var(--gold); }
    .sidebar-nav-item svg, .sidebar-link svg { width: 15px; height: 15px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }
    .sidebar-nav-item svg { color: var(--gold); }
    .sidebar-nav-item .nav-label { min-width: 0; }
    .nav-soon-badge { margin-left: auto; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(184,144,47,0.42); border-radius: 999px; background: rgba(184,144,47,0.14); color: var(--gold); padding: 0.16rem 0.45rem; font-size: 8px; font-weight: 800; letter-spacing: 0.08em; line-height: 1; text-transform: uppercase; white-space: nowrap; }
    .sidebar-links { padding: 1rem 1.25rem; margin-top: auto; }
    .sidebar-link { display: flex; align-items: center; gap: 8px; color: rgba(166,159,145,0.62); font-size: 12px; text-decoration: none; margin-bottom: 0.5rem; transition: color 0.15s ease; }
    .sidebar-link:hover { color: var(--cream); }
    .sidebar-link-button { width: 100%; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; font: inherit; text-align: left; }
    .sidebar-link-button:hover { transform: none; box-shadow: none; background: transparent; }
    .content { min-width: 0; min-height: 100vh; display: flex; flex-direction: column; overflow: hidden; }
    .topbar { height: 58px; padding: 0 2rem; background: var(--paper); border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; position: sticky; top: 0; z-index: 10; }
    .topbar-title { font-family: var(--serif); color: var(--deep); font-size: 20px; font-weight: 600; }
    .topbar-actions { display: flex; gap: 0.55rem; }
    .detail-wrap { flex: 1; overflow-y: auto; padding: 1.5rem 2rem 3rem; }
    .tab-panel { display: none; }
    .tab-panel.active { display: block; animation: fadeIn 0.2s ease; }
    @keyframes fadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
    .section-card { background: white; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; margin-bottom: 1rem; box-shadow: 0 12px 32px rgba(6,21,34,0.07); }
    .section-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; border-bottom: 1px solid var(--line); background: linear-gradient(180deg, #fff, var(--paper)); }
    .section-title { font-family: var(--serif); font-size: 21px; color: var(--deep); font-weight: 600; display: flex; align-items: center; gap: 0.55rem; }
    .section-title-icon { width: 28px; height: 28px; background: rgba(184,144,47,0.12); border: 1px solid rgba(184,144,47,0.25); border-radius: 8px; display: grid; place-items: center; }
    .section-title-icon svg { width: 15px; height: 15px; stroke: var(--gold); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
    .section-title-icon.community-mark svg { width: 22px; height: 22px; stroke-width: 1.45; }
    .section-body { padding: 1.25rem; }
    .section-note { color: var(--stone); font-size: 12px; line-height: 1.55; margin: 0.4rem 0 0.85rem; }
    .platform-access-card .section-body { padding-top: 1rem; }
    .platform-access-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; margin-top: 0.8rem; }
    .platform-access-item { border: 1px solid var(--line); border-radius: 10px; background: var(--paper); padding: 0.85rem; }
    .platform-access-item h3 { margin: 0.45rem 0 0; color: var(--deep); font-family: var(--serif); font-size: 1.2rem; line-height: 1.2; }
    .platform-access-item p { margin: 0.35rem 0 0; color: var(--stone); font-size: 12px; line-height: 1.5; }
    .platform-access-item.live { background: linear-gradient(150deg, #061522, #0B2130); border-color: rgba(184,144,47,0.45); }
    .platform-access-item.live h3 { color: var(--cream); }
    .platform-access-item.live p { color: rgba(246,241,232,0.76); }
    .platform-access-item.soon { border-style: dashed; }
    .platform-access-kicker { display: inline-flex; align-items: center; border-radius: 999px; padding: 3px 8px; font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; background: rgba(184,144,47,0.14); color: #7a5c17; }
    .platform-access-item.live .platform-access-kicker { background: rgba(184,144,47,0.25); color: var(--gold); }
    .section-divider { display: flex; align-items: center; gap: 10px; margin: 1.25rem 0 1rem; }
    .section-divider span { color: var(--gold); font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; white-space: nowrap; }
    .section-divider::before, .section-divider::after { content: ''; flex: 1; height: 1px; background: var(--line); }
    /* Insight / giving summary card */
    .insights-card { background: var(--deep); border: 1px solid rgba(184,144,47,0.2); border-radius: 14px; overflow: hidden; margin-bottom: 1rem; position: relative; }
    .insights-card::before { content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 500px; height: 150px; background: radial-gradient(ellipse at top, rgba(184,144,47,0.12), transparent 65%); pointer-events: none; }
    .insights-header { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.25rem; border-bottom: 1px solid rgba(184,144,47,0.15); position: relative; z-index: 1; }
    .insights-title { font-family: var(--serif); font-size: 21px; color: var(--cream); font-weight: 500; }
    .insights-body { padding: 1.25rem; position: relative; z-index: 1; }
    .insights-empty-dark { border: 1px dashed rgba(246,241,232,0.24); border-radius: 10px; padding: 1rem; color: rgba(246,241,232,0.68); font-size: 13px; line-height: 1.65; }
    .insights-layout { display: grid; grid-template-columns: minmax(220px, 0.55fr) minmax(0, 1fr); gap: 1rem; align-items: stretch; }
    .insights-hero { border: 1px solid rgba(246,241,232,0.12); border-radius: 14px; padding: 1rem; background: rgba(255,255,255,0.06); }
    .insights-label { color: rgba(246,241,232,0.68); font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
    .insights-total { margin-top: 0.35rem; font-family: var(--serif); font-size: clamp(2.2rem, 6vw, 4rem); line-height: 0.95; color: var(--cream); }
    .insights-meta { margin-top: 0.65rem; color: rgba(246,241,232,0.72); font-size: 13px; line-height: 1.55; }
    .insight-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.65rem; margin-top: 1rem; }
    .insight-stat { border: 1px solid rgba(246,241,232,0.12); border-radius: 10px; background: rgba(255,255,255,0.05); padding: 0.75rem; }
      .insight-stat strong { display: block; color: var(--cream); font-size: 20px; line-height: 1; }
      .insight-stat span { display: block; margin-top: 0.35rem; color: rgba(246,241,232,0.62); font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 700; }
      .fee-coverage-card { margin-top: 1rem; display: grid; grid-template-columns: auto 1fr; gap: 0.85rem; align-items: center; border: 1px solid rgba(201,162,91,0.28); border-radius: 14px; padding: 0.85rem; background: rgba(201,162,91,0.1); }
      .fee-coverage-ring { --pct: 0; width: 68px; height: 68px; border-radius: 50%; display: grid; place-items: center; background: conic-gradient(var(--gold) calc(var(--pct) * 1%), rgba(246,241,232,0.16) 0); position: relative; box-shadow: inset 0 0 0 1px rgba(201,162,91,0.18); }
      .fee-coverage-ring::after { content: ""; position: absolute; inset: 8px; border-radius: inherit; background: var(--deep); }
      .fee-coverage-ring span { position: relative; z-index: 1; color: var(--cream); font-family: var(--serif); font-size: 19px; line-height: 1; }
      .fee-coverage-card strong { display: block; color: var(--cream); font-size: 13px; }
      .fee-coverage-card span { display: block; margin-top: 0.25rem; color: rgba(246,241,232,0.72); font-size: 12px; line-height: 1.45; }
    .chart-card { border: 1px solid rgba(246,241,232,0.14); border-radius: 14px; padding: 1rem; background: rgba(255,255,255,0.96); color: var(--ink); }
    .chart-bars { min-height: 220px; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0.45rem; align-items: end; border-bottom: 1px solid rgba(111,106,96,0.22); padding: 0.75rem 0.25rem 0; }
    .chart-bar-wrap { min-width: 0; display: grid; grid-template-rows: 1fr auto; gap: 0.35rem; height: 100%; align-items: end; }
    @keyframes growUp { from { transform: scaleY(0); } to { transform: scaleY(1); } }
    .chart-bar { width: 100%; min-height: 4px; border-radius: 6px 6px 0 0; background: linear-gradient(180deg, var(--gold), #7B6425); transform-origin: bottom; transform: scaleY(0); animation: growUp 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
    .chart-label { color: var(--muted); font-size: 10px; text-align: center; }
    .chart-note { margin-top: 0.75rem; color: var(--stone); font-size: 12px; line-height: 1.5; }
    /* Recurring giving health */
    .recurring-health-card .section-body { display: grid; gap: 0.9rem; }
    .recurring-health-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.75rem; }
    .recurring-health-stat { border: 1px solid var(--line); border-radius: 12px; background: var(--paper); padding: 0.9rem; min-width: 0; }
    .recurring-health-stat strong { display: block; color: var(--deep); font-family: var(--serif); font-size: 30px; line-height: 1; }
    .recurring-health-stat span { display: block; margin-top: 0.35rem; color: var(--stone); font-size: 11px; font-weight: 800; letter-spacing: 0.07em; text-transform: uppercase; line-height: 1.3; }
    .recurring-health-stat.active { border-color: rgba(58,103,74,0.28); background: rgba(58,103,74,0.08); }
    .recurring-health-stat.failed { border-color: rgba(150,40,40,0.26); background: rgba(150,40,40,0.07); }
    .recurring-health-stat.failed strong { color: #8a2929; }
    .recurring-health-stat.lapsed { border-color: rgba(184,144,47,0.34); background: rgba(184,144,47,0.1); }
    .recurring-health-stat.value { border-color: rgba(6,21,34,0.18); background: rgba(6,21,34,0.04); }
    .recurring-health-note { color: var(--stone); font-size: 12px; line-height: 1.55; }
    .recurring-health-list { display: grid; gap: 0.55rem; }
    .recurring-health-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 0.75rem; align-items: center; border: 1px solid var(--line); border-radius: 12px; background: #fff; padding: 0.85rem; }
    .recurring-health-row.failed { border-color: rgba(150,40,40,0.24); }
    .recurring-health-row.lapsed { border-color: rgba(184,144,47,0.34); }
    .recurring-health-row strong { display: block; color: var(--deep); font-size: 13px; }
    .recurring-health-row span { display: block; color: var(--stone); font-size: 12px; line-height: 1.45; }
    .recurring-health-row-meta { text-align: right; }
    .recurring-health-row-meta b { display: block; color: var(--deep); font-family: var(--serif); font-size: 20px; line-height: 1; }
    .recurring-health-status { justify-self: end; border: 1px solid rgba(58,103,74,0.3); border-radius: 999px; padding: 0.25rem 0.55rem; background: rgba(58,103,74,0.1); color: #3a674a; font-size: 11px; font-weight: 800; white-space: nowrap; }
    .recurring-health-status.failed { border-color: rgba(150,40,40,0.3); background: rgba(150,40,40,0.1); color: #8a2929; }
    .recurring-health-status.lapsed { border-color: rgba(184,144,47,0.38); background: rgba(184,144,47,0.12); color: #7a5c17; }
    .recurring-health-empty { border: 1px dashed var(--line); border-radius: 12px; padding: 1rem; color: var(--stone); font-size: 13px; line-height: 1.55; }
    .recurring-health-empty.success { border-color: rgba(58,103,74,0.25); background: rgba(58,103,74,0.07); color: #3a674a; }
    .resource-card-list { display: grid; gap: 0.75rem; }
    .resource-card {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr) auto;
      gap: 0.85rem;
      align-items: center;
      border: 1px solid rgba(111,106,96,0.16);
      border-radius: 14px;
      background:
        radial-gradient(circle at 100% 0, rgba(200,162,74,0.14), transparent 9rem),
        rgba(255,255,255,0.9);
      padding: 0.95rem;
      color: inherit;
      text-decoration: none;
      transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
    }
    .resource-card:hover {
      transform: translateY(-1px);
      border-color: rgba(200,162,74,0.38);
      box-shadow: 0 10px 26px rgba(6,21,34,0.08);
    }
    .resource-card-icon {
      width: 44px;
      height: 44px;
      display: grid;
      place-items: center;
      border: 1px solid rgba(200,162,74,0.28);
      border-radius: 12px;
      background: rgba(200,162,74,0.1);
      color: var(--deep);
    }
    .resource-card-icon svg {
      width: 22px;
      height: 22px;
      fill: none;
      stroke: currentColor;
      stroke-width: 1.9;
      stroke-linecap: round;
      stroke-linejoin: round;
    }
    .resource-card strong {
      display: block;
      color: var(--deep);
      font-size: 15px;
      line-height: 1.25;
    }
    .resource-card small {
      display: block;
      margin-top: 0.22rem;
      color: var(--stone);
      font-size: 12px;
      line-height: 1.45;
    }
    .resource-card b {
      border: 1px solid rgba(200,162,74,0.28);
      border-radius: 999px;
      background: rgba(200,162,74,0.12);
      color: #6b5012;
      padding: 0.36rem 0.68rem;
      font-size: 12px;
      white-space: nowrap;
    }
    .candle-giving-card .section-title-icon {
      background: rgba(200,162,74,0.16);
    }
    .candle-giving-layout {
      display: grid;
      grid-template-columns: minmax(220px, 0.65fr) minmax(220px, 0.75fr) minmax(280px, 1fr);
      gap: 0.9rem;
      align-items: stretch;
    }
    .candle-giving-total,
    .candle-giving-names,
    .candle-giving-recent {
      border: 1px solid rgba(111,106,96,0.16);
      border-radius: 14px;
      background:
        radial-gradient(circle at 100% 0, rgba(200,162,74,0.14), transparent 9rem),
        rgba(255,255,255,0.86);
      padding: 1rem;
      min-width: 0;
    }
    .candle-giving-total {
      background:
        radial-gradient(circle at 88% 8%, rgba(200,162,74,0.22), transparent 9rem),
        linear-gradient(145deg, #061522, #0B2130);
      border-color: rgba(200,162,74,0.34);
      color: var(--cream);
    }
    .candle-giving-layout span {
      display: block;
      color: var(--muted);
      font-size: 11px;
      font-weight: 800;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }
    .candle-giving-total span {
      color: rgba(246,241,232,0.66);
    }
    .candle-giving-total strong,
    .candle-giving-names strong {
      display: block;
      margin-top: 0.35rem;
      font-family: var(--serif);
      font-size: clamp(2.1rem, 6vw, 3.3rem);
      font-weight: 500;
      line-height: 0.95;
    }
    .candle-giving-total p {
      margin: 0.8rem 0 0;
      color: rgba(246,241,232,0.72);
      font-size: 13px;
      line-height: 1.5;
    }
    .candle-name-cloud {
      display: flex;
      flex-wrap: wrap;
      gap: 0.45rem;
      margin-top: 0.8rem;
    }
    .candle-name-cloud span,
    .candle-name-cloud em {
      border: 1px solid rgba(200,162,74,0.24);
      border-radius: 999px;
      background: rgba(200,162,74,0.09);
      color: #6b5012;
      padding: 0.28rem 0.58rem;
      font-size: 12px;
      font-style: normal;
      font-weight: 700;
      letter-spacing: 0;
      text-transform: none;
    }
    .candle-gift-row {
      display: flex;
      justify-content: space-between;
      gap: 0.75rem;
      align-items: center;
      padding: 0.7rem 0;
      border-bottom: 1px solid rgba(111,106,96,0.12);
    }
    .candle-gift-row:last-child {
      border-bottom: 0;
      padding-bottom: 0;
    }
    .candle-gift-row strong {
      display: block;
      color: var(--deep);
      font-size: 13px;
    }
    .candle-gift-row span {
      margin-top: 0.22rem;
      color: var(--stone);
      font-size: 12px;
      font-weight: 500;
      letter-spacing: 0;
      text-transform: none;
    }
    .candle-gift-row b {
      color: var(--deep);
      font-family: var(--serif);
      font-size: 20px;
      font-weight: 600;
      white-space: nowrap;
    }
    .candle-empty {
      border: 1px dashed rgba(200,162,74,0.28);
      border-radius: 14px;
      background: rgba(200,162,74,0.08);
      color: #6b5012;
      padding: 1rem;
      font-size: 13px;
      line-height: 1.55;
    }
    #tab-options .option-group:has(#campaignPreset),
    #tab-options .advanced-editor .editor-label-row:has(#campaignsJson),
    #tab-options #campaignsJson {
      display: none;
    }
    /* QR feature card */
    .qr-feature-card { background: white; border: 1px solid rgba(184,144,47,0.28); border-radius: 14px; box-shadow: 0 12px 32px rgba(6,21,34,0.07); margin-bottom: 1rem; overflow: hidden; position: relative; transition: border-color 0.2s ease, box-shadow 0.2s ease; }
    .qr-feature-card::before { content: ''; position: absolute; inset: 0 0 auto; height: 4px; background: linear-gradient(90deg, var(--gold), rgba(11,33,48,0.6)); }
    .qr-feature-layout { display: grid; grid-template-columns: 118px minmax(0, 1fr) auto; gap: 1rem; align-items: center; padding: 1.1rem 1.2rem; }
    .qr-feature-code { width: 118px; height: 118px; display: grid; place-items: center; background: var(--paper); border: 1px solid var(--line); border-radius: 10px; padding: 0.5rem; }
    .qr-feature-code svg { width: 100%; height: 100%; display: block; }
    .qr-feature-kicker { color: var(--gold); font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 0.35rem; }
    .qr-feature-title { font-family: var(--serif); color: var(--deep); font-size: 24px; line-height: 1.05; font-weight: 600; margin: 0 0 0.35rem; }

    /* Text-to-Give dashboard tab */
    .text-give-header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; align-items: center; margin-bottom: 1.25rem; padding: 1.4rem 1.6rem; border: 1px solid rgba(184,144,47,0.2); border-radius: 16px; background: linear-gradient(135deg, rgba(255,255,255,0.92), rgba(253,251,247,0.78)); box-shadow: var(--soft-shadow); }
    .text-give-eyebrow { color: var(--gold); font-size: 11px; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; }
    .text-give-header h1 { margin: 0.2rem 0 0; color: var(--deep); font-family: var(--serif); font-size: clamp(2.1rem, 5vw, 3.4rem); font-weight: 500; line-height: 1; }
    .text-give-header p { max-width: 720px; margin: 0.55rem 0 0; color: var(--stone); font-size: 14px; line-height: 1.6; }
    .text-give-header-mark { width: 72px; height: 72px; display: grid; place-items: center; border-radius: 999px; background: var(--deep); color: var(--gold); box-shadow: 0 16px 34px rgba(6,21,34,0.16); }
    .text-give-header-mark svg { width: 34px; height: 34px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
    .text-give-launch { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1rem; align-items: start; margin-bottom: 1rem; padding: 1.35rem 1.5rem; border: 1px solid rgba(200,162,74,0.32); border-radius: 14px; background: linear-gradient(135deg, var(--deep), var(--forest)); color: var(--cream); box-shadow: 0 18px 42px rgba(6,21,34,0.16); }
    .text-give-launch-icon { width: 50px; height: 50px; display: grid; place-items: center; border-radius: 999px; background: rgba(200,162,74,0.15); color: var(--gold); }
    .text-give-launch-icon svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
    .text-give-launch span { color: var(--gold); font-size: 11px; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; }
    .text-give-launch h2 { margin: 0.25rem 0 0; color: var(--cream); font-family: var(--serif); font-size: 1.45rem; font-weight: 500; line-height: 1.15; }
    .text-give-launch p { margin: 0.45rem 0 0; color: rgba(246,241,232,0.7); font-size: 13px; line-height: 1.6; }
    .text-give-grid { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 1rem; align-items: stretch; margin-bottom: 1rem; }
    .text-give-card { border: 1px solid var(--line); border-radius: 14px; background: white; box-shadow: var(--soft-shadow); overflow: hidden; }
    .text-give-card-head { display: flex; align-items: center; gap: 0.75rem; padding: 1.1rem 1.25rem; border-bottom: 1px solid var(--line); background: linear-gradient(180deg, #fff, var(--paper)); }
    .text-give-card-head h3 { margin: 0; color: var(--deep); font-family: var(--serif); font-size: 1.3rem; font-weight: 600; line-height: 1.1; }
    .text-give-card-head p { margin: 0.15rem 0 0; color: var(--stone); font-size: 12px; line-height: 1.4; }
    .text-give-phone-card { padding-bottom: 1.25rem; }
    .text-give-phone-number { margin: 1.25rem 1.25rem 0; border: 1px solid rgba(200,162,74,0.34); border-radius: 12px; background: var(--paper); color: var(--deep); font-family: var(--serif); font-size: clamp(2rem, 4vw, 3rem); line-height: 1; text-align: center; padding: 1.1rem; }
    .text-give-sms-preview { display: grid; gap: 0.8rem; margin: 1rem 1.25rem 0; }
    .text-give-sms-row { display: grid; gap: 0.35rem; }
    .text-give-sms-row span { color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
    .text-give-sms-row strong { width: fit-content; max-width: 92%; border-radius: 16px 16px 16px 4px; background: rgba(6,21,34,0.08); color: var(--deep); padding: 0.7rem 0.85rem; font-size: 13px; line-height: 1.45; }
    .text-give-sms-row strong.outgoing { justify-self: end; border-radius: 16px 16px 4px 16px; background: var(--deep); color: var(--cream); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: 0.06em; }
    .text-give-routing-card { position: relative; }
    .text-give-locked-region { position: relative; padding: 1.25rem; }
    .text-give-lock-veil { position: absolute; inset: 0; z-index: 2; display: grid; place-items: center; border-radius: 0 0 14px 14px; background: rgba(249,245,238,0.58); backdrop-filter: blur(2px); }
    .text-give-lock-veil span { display: inline-flex; align-items: center; gap: 0.45rem; border-radius: 999px; background: var(--deep); color: var(--gold); padding: 0.55rem 1rem; font-size: 11px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; box-shadow: 0 8px 24px rgba(6,21,34,0.24); }
    .text-give-lock-veil svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
    .text-give-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.85rem; margin-bottom: 0.9rem; }
    .text-give-form-grid input:disabled, .text-give-form-grid select:disabled { background: #f4f1eb; color: var(--stone); cursor: not-allowed; }
    .text-give-table-wrap { overflow-x: auto; }
    .text-give-table { width: 100%; border-collapse: collapse; }
    .text-give-table th { padding: 0.8rem 1rem; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: 0.1em; text-align: left; text-transform: uppercase; white-space: nowrap; }
    .text-give-table td { padding: 0.95rem 1rem; border-bottom: 1px solid var(--line); color: var(--stone); font-size: 13px; vertical-align: middle; }
    .text-give-table tr:last-child td { border-bottom: 0; }
    .text-give-keyword { display: inline-flex; align-items: center; border-radius: 6px; background: var(--deep); color: var(--gold); padding: 0.34rem 0.62rem; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 12px; font-weight: 800; letter-spacing: 0.08em; }
    .text-give-fund { display: inline-flex; align-items: center; border: 1px solid rgba(200,162,74,0.36); border-radius: 6px; background: rgba(200,162,74,0.12); color: var(--deep); padding: 0.26rem 0.58rem; font-size: 12px; font-weight: 700; }
    .text-give-status { display: inline-flex; align-items: center; gap: 0.4rem; color: var(--deep); font-size: 12px; font-weight: 700; white-space: nowrap; }
    .text-give-status i { width: 7px; height: 7px; border-radius: 999px; background: #22c55e; }

    /* QR tools tab */
    .qr-tools-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, 340px); gap: 1rem; align-items: stretch; margin-bottom: 1rem; border: 1px solid rgba(200,162,74,0.3); border-radius: 16px; background: linear-gradient(135deg, var(--deep), var(--forest)); color: var(--cream); box-shadow: 0 18px 42px rgba(6,21,34,0.16); overflow: hidden; }
    .qr-tools-copy { padding: 1.55rem 1.65rem; align-self: center; }
    .qr-tools-eyebrow { color: var(--gold); font-size: 11px; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; }
    .qr-tools-copy h1 { margin: 0.25rem 0 0; color: var(--cream); font-family: var(--serif); font-size: clamp(2.1rem, 5vw, 3.35rem); font-weight: 500; line-height: 1; }
    .qr-tools-copy p { max-width: 680px; margin: 0.65rem 0 0; color: rgba(246,241,232,0.72); font-size: 14px; line-height: 1.6; }
    .qr-tools-actions { display: flex; flex-wrap: wrap; gap: 0.65rem; margin-top: 1.1rem; }
    .qr-tools-preview-card { display: grid; align-content: center; justify-items: center; gap: 0.75rem; padding: 1.25rem; background: radial-gradient(circle at 50% 20%, rgba(200,162,74,0.18), transparent 64%), rgba(255,255,255,0.055); border-left: 1px solid rgba(246,241,232,0.12); }
    .qr-tools-code-frame { width: min(100%, 220px); aspect-ratio: 1; display: grid; place-items: center; border: 1px solid rgba(200,162,74,0.28); border-radius: 18px; background: #fff; padding: 0.8rem; box-shadow: 0 18px 36px rgba(6,21,34,0.24); }
    .qr-tools-code-frame .qr-code { width: 100%; height: 100%; border: 0; background: transparent; padding: 0; }
    .qr-tools-code-frame svg { width: 100%; height: 100%; display: block; }
    .qr-tools-preview-note { max-width: 230px; color: rgba(246,241,232,0.64); font-size: 11px; line-height: 1.45; text-align: center; }
    .qr-tools-link-card { display: grid; grid-template-columns: minmax(180px, 0.45fr) minmax(0, 1fr); gap: 1rem; align-items: center; margin-bottom: 1rem; border: 1px solid var(--line); border-radius: 14px; background: white; padding: 1rem 1.15rem; box-shadow: var(--soft-shadow); }
    .qr-tools-link-card span { display: block; color: var(--gold); font-size: 10px; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
    .qr-tools-link-card strong { display: block; margin-top: 0.25rem; color: var(--deep); font-family: var(--serif); font-size: 1.25rem; font-weight: 600; line-height: 1.15; }
    .qr-tools-link-card input { background: var(--paper); font-size: 13px; }
    .qr-tools-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.85rem; margin-bottom: 1rem; }
    .qr-tools-use-card { border: 1px solid var(--line); border-radius: 14px; background: white; padding: 1rem; box-shadow: var(--soft-shadow); }
    .qr-tools-use-card h3 { margin: 0.75rem 0 0; color: var(--deep); font-family: var(--serif); font-size: 1.25rem; line-height: 1.1; }
    .qr-tools-use-card p { margin: 0.45rem 0 0; color: var(--stone); font-size: 12px; line-height: 1.55; }

    /* Shared feature-tab polish for Campaigns and Funds */
    .feature-tab-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, 340px); gap: 1rem; align-items: stretch; margin-bottom: 1rem; border: 1px solid rgba(200,162,74,0.28); border-radius: 16px; background: linear-gradient(135deg, rgba(255,255,255,0.94), rgba(253,251,247,0.78)); box-shadow: var(--soft-shadow); overflow: hidden; }
    .feature-tab-hero > div:first-child { padding: 1.45rem 1.55rem; }
    .feature-tab-eyebrow { color: var(--gold); font-size: 11px; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; }
    .feature-tab-hero h1 { margin: 0.25rem 0 0; color: var(--deep); font-family: var(--serif); font-size: clamp(2.05rem, 5vw, 3.25rem); font-weight: 500; line-height: 1; }
    .feature-tab-hero p { max-width: 680px; margin: 0.6rem 0 0; color: var(--stone); font-size: 14px; line-height: 1.6; }
    .feature-tab-summary { display: grid; align-content: center; padding: 1.25rem; background: linear-gradient(145deg, var(--deep), var(--forest)); color: var(--cream); }
    .feature-tab-summary span { color: var(--gold); font-size: 10px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
    .feature-tab-summary strong { display: block; margin-top: 0.35rem; color: var(--cream); font-family: var(--serif); font-size: 1.45rem; font-weight: 500; line-height: 1.1; }
    .feature-tab-summary p { margin-top: 0.55rem; color: rgba(246,241,232,0.72); font-size: 12px; line-height: 1.55; }
    .feature-guide-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.85rem; margin-bottom: 1rem; }
    .feature-guide-card { border: 1px solid var(--line); border-radius: 14px; background: white; padding: 1rem; box-shadow: var(--soft-shadow); }
    .feature-guide-card h3 { margin: 0.75rem 0 0; color: var(--deep); font-family: var(--serif); font-size: 1.25rem; line-height: 1.1; }
    .feature-guide-card p { margin: 0.45rem 0 0; color: var(--stone); font-size: 12px; line-height: 1.55; }
    .qr-feature-copy { color: var(--stone); font-size: 13px; line-height: 1.55; margin: 0; }
    .qr-feature-actions { min-width: 260px; }
    /* Setup wizard */
    .setup-wizard-card { background: var(--deep); border: 1px solid rgba(184,144,47,0.25); border-radius: 14px; color: var(--cream); margin-bottom: 1rem; overflow: hidden; position: relative; }
    .setup-wizard-card::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at top right, rgba(184,144,47,0.16), transparent 55%); pointer-events: none; }
    .setup-wizard-body { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 1rem; padding: 1.1rem 1.25rem; position: relative; z-index: 1; }
    .setup-title { font-family: var(--serif); font-size: 1.35rem; color: var(--cream); margin-bottom: 0.35rem; }
    .setup-copy { color: rgba(246,241,232,0.7); font-size: 13px; line-height: 1.6; max-width: 680px; }
    .setup-steps { display: grid; gap: 8px; margin-top: 1rem; }
    .setup-step { border: 1px solid rgba(246,241,232,0.14); background: rgba(246,241,232,0.05); border-radius: 10px; padding: 0.75rem; display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 0.65rem; align-items: start; }
    .setup-step.done { border-color: rgba(216,176,88,0.32); background: rgba(11,33,48,0.2); }
    .setup-step strong { display: block; font-size: 13px; color: var(--cream); margin-bottom: 0.2rem; }
    .setup-step span { color: rgba(246,241,232,0.62); font-size: 12px; line-height: 1.5; }
    .setup-check { width: 24px; height: 24px; border-radius: 999px; border: 1px solid rgba(246,241,232,0.2); display: grid; place-items: center; color: rgba(246,241,232,0.35); background: rgba(246,241,232,0.05); }
    .setup-check svg { width: 14px; height: 14px; stroke: currentColor; fill: none; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; opacity: 0; }
    .setup-step.done .setup-check { color: var(--gold); border-color: rgba(216,176,88,0.45); background: rgba(216,176,88,0.12); }
    .setup-step.done .setup-check svg { opacity: 1; }
    .setup-action-panel { border: 1px solid rgba(184,144,47,0.22); border-radius: 10px; background: rgba(246,241,232,0.06); padding: 0.95rem; align-self: stretch; display: flex; flex-direction: column; }
    .setup-action-panel label { color: var(--gold); font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 700; display: block; margin-bottom: 0.35rem; }
    .setup-action-panel select { width: 100%; border: 1px solid rgba(184,144,47,0.3); border-radius: 10px; background: rgba(246,241,232,0.08); color: var(--cream); padding: 9px 10px; font-family: var(--sans); margin-bottom: 8px; }
    .setup-action-panel select option { color: var(--ink); }
    .setup-action-copy { margin: 0.85rem 0 0; }
    .setup-link-box { display: none; margin-top: 0.75rem; border: 1px solid rgba(184,144,47,0.25); border-radius: 10px; background: rgba(246,241,232,0.08); padding: 0.75rem; }
    .setup-link-box.visible { display: block; }
    .setup-link-box a { color: var(--cream); font-weight: 700; }
    /* Forms & toggles */
    .form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
    .full { grid-column: 1 / -1; }
    .toggle-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(175px, 1fr)); gap: 0.7rem; margin-top: 0.75rem; }
    .check-card { display: flex; align-items: center; gap: 0.55rem; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); padding: 0.8rem; color: var(--deep); font-weight: 600; min-height: 48px; overflow-wrap: anywhere; transition: all 0.2s ease; }
    .check-card:has(input:checked) { border-color: rgba(11,33,48,0.35); background: rgba(11,33,48,0.07); }
    .check-card input { width: auto; }
    .actions { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 1rem; }
    .form-group { display: flex; flex-direction: column; gap: 5px; }
    .form-group.full { grid-column: 1 / -1; }
    .form-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--stone); font-weight: 600; }
    /* Buttons */
    .btn { display: inline-flex; align-items: center; gap: 6px; border: none; border-radius: 10px; padding: 9px 16px; font-family: var(--sans); font-size: 13px; font-weight: 600; cursor: pointer; position: relative; overflow: hidden; transition: transform 0.15s, box-shadow 0.15s, opacity 0.15s, background 0.15s; white-space: nowrap; }
    .btn:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(6,21,34,0.12); }
    .btn:disabled { opacity: 0.55; cursor: wait; transform: none; box-shadow: none; }
    .btn-primary { background: var(--deep); color: var(--cream); }
    .btn-gold { background: var(--gold); color: var(--deep); }
    .btn-ghost { background: white; color: var(--deep); border: 1px solid var(--line); }
    .btn-ghost-dark { background: rgba(246,241,232,0.08); color: rgba(246,241,232,0.8); border: 1px solid rgba(184,144,47,0.2); }
    .btn-sm { padding: 6px 11px; font-size: 11px; }
    .btn.loading { color: transparent !important; pointer-events: none; }
    .btn.loading::after { content: ""; position: absolute; top: calc(50% - 8px); left: calc(50% - 8px); width: 16px; height: 16px; border: 2px solid rgba(246,241,232,0.3); border-top-color: var(--cream); border-radius: 50%; animation: spin 0.8s linear infinite; }
    .btn-ghost.loading::after { border: 2px solid rgba(6,21,34,0.1); border-top-color: var(--deep); }
    .btn-gold.loading::after { border-color: rgba(6,21,34,0.15); border-top-color: var(--deep); }
    .btn-row, .actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
    .btn-danger-sm, .icon-button { background: rgba(150,40,40,0.06); color: #8a2929; border: 1px solid rgba(150,40,40,0.18); border-radius: 7px; width: 28px; height: 28px; display: inline-grid; place-items: center; padding: 0; font-size: 13px; cursor: pointer; box-shadow: none; }
    /* Link boxes */
    .link-box, .stripe-link-box { display: none; margin-top: 10px; border: 1px solid rgba(184,144,47,0.28); border-radius: 10px; background: rgba(184,144,47,0.12); padding: 1rem; }
    .link-box.visible, .stripe-link-box.visible { display: block; }
    .link-box a, .stripe-link-box a { display: inline-flex; align-items: center; gap: 6px; background: var(--deep); color: var(--cream); padding: 8px 14px; border-radius: 8px; font-size: 13px; font-weight: 600; text-decoration: none; }
    .link-box p, .stripe-link-box p { margin: 8px 0 0; font-size: 12px; color: var(--stone); line-height: 1.55; }
    /* QR tab */
    .qr-layout { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 1.25rem; align-items: start; }
    .qr-code { width: 160px; height: 160px; display: grid; place-items: center; background: white; border: 1px solid var(--line); border-radius: 10px; padding: 0.65rem; }
    .qr-code svg { width: 100%; height: 100%; display: block; }
    .qr-copy-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; margin-top: 10px; }
    .qr-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
    /* Options editor */
    .giving-options-intro, .option-intro { background: rgba(11,33,48,0.06); border: 1px solid rgba(11,33,48,0.15); border-radius: 10px; padding: 0.85rem 1rem; font-size: 13px; color: var(--stone); line-height: 1.65; margin-bottom: 1rem; }
    .option-group { border: 1px solid var(--line); border-radius: 14px; overflow: hidden; margin-bottom: 1rem; }
    .option-group-head { display: flex; justify-content: space-between; align-items: center; padding: 0.85rem 1rem; background: linear-gradient(180deg, white, var(--paper)); border-bottom: 1px solid var(--line); }
    .option-group-title { font-size: 14px; font-weight: 600; color: var(--deep); margin: 0; }
    .option-group-count, .option-count { font-size: 11px; color: var(--muted); }
    .option-list { padding: 0.75rem; display: flex; flex-direction: column; gap: 6px; }
    .option-item { border: 1px solid rgba(111,106,96,0.18); border-radius: 10px; background: white; padding: 0.75rem; transition: all 0.2s ease; }
    .option-item:hover { border-color: rgba(184,144,47,0.3); transform: translateX(3px); box-shadow: 0 4px 12px rgba(6,21,34,0.04); }
    .option-name { color: var(--deep); font-weight: 700; line-height: 1.25; }
    .option-desc { margin-top: 0.25rem; color: var(--stone); font-size: 12px; line-height: 1.5; }
    .option-item-head { display: flex; justify-content: space-between; gap: 0.65rem; align-items: start; }
    .option-empty { font-size: 12px; color: var(--stone); line-height: 1.5; padding: 0.2rem; }
    .option-builder { border-top: 1px solid var(--line); padding: 1rem; background: var(--paper); }
    .option-builder-title { font-size: 12px; font-weight: 700; color: var(--deep); text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 0.75rem; }
    .builder-grid { display: flex; flex-direction: column; gap: 8px; }
    .builder-grid textarea { font-family: var(--sans); min-height: 72px; }
    .advanced-editor, .advanced-toggle { border-top: 1px solid var(--line); margin-top: 1rem; padding-top: 1rem; }
    .advanced-editor summary, .advanced-toggle summary { cursor: pointer; font-size: 13px; font-weight: 600; color: var(--deep); margin-bottom: 0.75rem; }
    .editor-label-row { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
    .editor-hint { color: var(--muted); font-size: 12px; }
    /* Feast campaigns */
    .feast-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .feast-card { border: 1px solid rgba(111,106,96,0.18); border-radius: 10px; background: white; padding: 0.75rem; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.75rem; align-items: center; }
    .feast-card.enabled { border-color: rgba(184,144,47,0.45); background: rgba(184,144,47,0.06); }
    .feast-name { color: var(--deep); font-size: 13px; font-weight: 700; margin-bottom: 0.18rem; }
    .feast-meta { color: var(--stone); font-size: 11px; line-height: 1.45; }
    .mini-toggle { position: relative; width: 42px; height: 24px; flex: 0 0 auto; }
    .mini-toggle input { opacity: 0; position: absolute; inset: 0; cursor: pointer; }
    .mini-toggle span { position: absolute; inset: 0; border-radius: 999px; background: rgba(111,106,96,0.22); border: 1px solid rgba(111,106,96,0.18); transition: background 0.18s ease, border-color 0.18s ease; }
    .mini-toggle span::before { content: ''; position: absolute; width: 18px; height: 18px; left: 2px; top: 2px; border-radius: 50%; background: white; box-shadow: 0 2px 6px rgba(6,21,34,0.18); transition: transform 0.18s ease; }
    .mini-toggle input:checked + span { background: rgba(184,144,47,0.78); border-color: rgba(184,144,47,0.85); }
    .mini-toggle input:checked + span::before { transform: translateX(18px); }
    /* Commemoration */
    .commemoration-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .commemoration-column { border: 1px solid var(--line); border-radius: 10px; background: var(--paper); padding: 0.85rem; }
    .commemoration-column h4 { font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--gold); margin-bottom: 0.5rem; }
    .commemoration-column ul { margin: 0; padding-left: 1.1rem; color: var(--ink); font-size: 13px; line-height: 1.7; }
    .commemoration-meta { margin-top: 0.75rem; color: var(--stone); font-size: 12px; line-height: 1.55; }
    /* Empty state */
    .empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 300px; color: var(--stone); text-align: center; gap: 12px; }
    .empty-state-icon { width: 56px; height: 56px; background: rgba(184,144,47,0.12); border: 1px solid rgba(184,144,47,0.25); border-radius: 999px; display: grid; place-items: center; }
    .empty-state-icon svg { width: 24px; height: 24px; stroke: var(--gold); fill: none; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
    .empty-state h3 { font-family: var(--serif); font-size: 24px; color: var(--deep); font-weight: 500; margin: 0; }
    .empty-state p { font-size: 13px; max-width: 310px; line-height: 1.65; margin: 0; }

    /* ── GIVING HISTORY TAB ──────────────────────────────── */
    .history-table-wrap { overflow-x: auto; }
    .history-table { width: 100%; border-collapse: collapse; min-width: 600px; }
    .history-table th { padding: 0.65rem 0.75rem; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-align: left; text-transform: uppercase; background: linear-gradient(180deg, white, var(--paper)); }
    .history-table td { padding: 0.75rem; border-bottom: 1px solid rgba(111,106,96,0.12); font-size: 13px; vertical-align: middle; }
    .history-table tbody tr:last-child td { border-bottom: none; }
      .history-table tbody tr:hover { background: rgba(184,144,47,0.04); }
      .history-amount { font-family: var(--serif); font-size: 16px; color: var(--deep); font-weight: 600; }
      .history-subamount { display: block; margin-top: 0.15rem; color: var(--muted); font-size: 11px; }
      .history-fee { display: inline-flex; align-items: center; border-radius: 999px; padding: 0.2rem 0.55rem; border: 1px solid rgba(111,106,96,0.16); font-size: 11px; font-weight: 700; }
      .history-fee.covered { border-color: rgba(58,103,74,0.28); background: rgba(58,103,74,0.12); color: #3a674a; }
      .history-fee.absorbed { border-color: rgba(150,40,40,0.22); background: rgba(150,40,40,0.08); color: #8a2929; }
      .history-fund { display: inline-flex; border-radius: 999px; padding: 0.2rem 0.55rem; background: rgba(11,33,48,0.08); color: var(--forest); font-size: 11px; font-weight: 600; }
    .history-type { display: inline-flex; border-radius: 999px; padding: 0.2rem 0.55rem; background: rgba(184,144,47,0.1); color: #7a5c17; font-size: 11px; font-weight: 600; }
    .history-empty { padding: 2.5rem; text-align: center; color: var(--stone); font-size: 13px; line-height: 1.65; }
    .history-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.75rem; margin-bottom: 1rem; }
    .history-stat { background: white; border: 1px solid var(--line); border-radius: 12px; padding: 0.85rem 1rem; position: relative; overflow: hidden; box-shadow: 0 2px 8px rgba(6,21,34,0.05); }
    .history-stat::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--gold), rgba(11,33,48,0.5)); }
    .history-stat-val { font-family: var(--serif); font-size: 24px; color: var(--deep); line-height: 1; }
    .history-stat-label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.07em; color: var(--muted); font-weight: 600; margin-top: 4px; }
    .history-filters { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(120px,0.5fr) minmax(120px,0.5fr) auto; gap: 0.65rem; align-items: end; margin-bottom: 1rem; }
    .history-filters input, .history-filters select { background: var(--paper); border: 1px solid rgba(111,106,96,0.22); border-radius: 8px; padding: 0.6rem 0.75rem; font-size: 13px; }

    .overview-status-card {
      margin: 1rem 0;
      border: 1px solid rgba(184,144,47,0.22);
      border-radius: 16px;
      background: radial-gradient(circle at 88% 12%, rgba(216,176,88,0.12), transparent 8rem), linear-gradient(180deg, white, var(--paper));
      box-shadow: var(--shadow-sm);
      padding: 1rem;
    }
    .overview-status-label,
    .options-summary-head small {
      color: var(--gold);
      font-size: 10px;
      font-weight: 800;
      letter-spacing: 0.1em;
      text-transform: uppercase;
    }
    .overview-status-card strong {
      display: block;
      margin-top: 0.28rem;
      color: var(--deep);
      font-family: var(--serif);
      font-size: 28px;
      line-height: 1;
    }
    .overview-status-card p {
      margin: 0.55rem 0 0;
      max-width: 52rem;
      color: var(--stone);
      font-size: 13px;
      line-height: 1.6;
    }
    .overview-status-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 0.65rem;
      margin-top: 0.9rem;
    }
    .overview-status-grid div {
      border: 1px solid rgba(111,106,96,0.14);
      border-radius: 12px;
      background: rgba(253,251,247,0.78);
      padding: 0.75rem;
    }
    .overview-status-grid span {
      display: block;
      color: var(--muted);
      font-size: 10px;
      font-weight: 800;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }
    .overview-status-grid b {
      display: block;
      margin-top: 0.25rem;
      color: var(--deep);
      font-size: 18px;
      overflow-wrap: anywhere;
    }
    .options-summary-card {
      margin-bottom: 1rem;
      border: 1px solid rgba(184,144,47,0.24);
      border-radius: 16px;
      overflow: hidden;
      background: white;
      box-shadow: var(--shadow-sm);
    }
    .options-summary-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.75rem;
      padding: 0.85rem 1rem;
      border-bottom: 1px solid var(--line);
      background: linear-gradient(90deg, rgba(216,176,88,0.16), rgba(11,33,48,0.06));
    }
    .options-summary-head span {
      color: var(--deep);
      font-family: var(--serif);
      font-size: 20px;
      line-height: 1;
    }
    .options-progress-row {
      display: grid;
      grid-template-columns: 92px minmax(130px, 1fr) 120px 120px minmax(120px, 0.8fr);
      gap: 0.75rem;
      align-items: center;
      padding: 0.8rem 1rem;
      border-bottom: 1px solid rgba(111,106,96,0.12);
      font-size: 13px;
    }
    .options-progress-row:last-child { border-bottom: 0; }
    .options-progress-row > span:first-child {
      color: var(--gold);
      font-size: 10px;
      font-weight: 800;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }
    .options-progress-row strong { color: var(--deep); }
    .options-progress-row span { color: var(--stone); }
    .option-progress {
      height: 8px;
      border-radius: 999px;
      background: rgba(111,106,96,0.13);
      overflow: hidden;
    }
    .option-progress span {
      display: block;
      height: 100%;
      border-radius: inherit;
      background: linear-gradient(90deg, var(--gold), var(--deep));
    }
    .options-progress-row small,
    .progress-muted {
      display: block;
      margin-top: 0.25rem;
      color: var(--muted);
      font-size: 11px;
    }
    .giver-list { display: grid; gap: 0.75rem; }
    .giver-card {
      display: flex;
      justify-content: space-between;
      gap: 1rem;
      align-items: center;
      border: 1px solid rgba(111,106,96,0.14);
      border-radius: 14px;
      background: white;
      padding: 0.9rem 1rem;
    }
    .giver-card strong,
    .giver-card b {
      display: block;
      color: var(--deep);
      font-size: 15px;
    }
    .giver-card span,
    .giver-card small {
      display: block;
      margin-top: 0.25rem;
      color: var(--stone);
      font-size: 12px;
      line-height: 1.4;
    }

    /* ── BULLETIN INSERT ─────────────────────────────────── */
    .bulletin-preview {
      border: 1px solid var(--line); border-radius: 12px; background: white;
      padding: 1.5rem; margin-bottom: 1rem; text-align: center;
      box-shadow: 0 2px 8px rgba(6,21,34,0.05);
    }
    .bulletin-preview-inner {
      max-width: 420px; margin: 0 auto;
      border: 2px solid var(--gold); border-radius: 8px; padding: 1.5rem 1.25rem;
      font-family: var(--serif);
    }
    .bulletin-parish-name { font-size: 1.4rem; color: var(--deep); font-weight: 600; margin-bottom: 0.25rem; }
    .bulletin-tagline { color: var(--stone); font-size: 13px; margin-bottom: 1rem; font-family: var(--sans); }
    .bulletin-qr-wrap { display: flex; justify-content: center; margin: 0.75rem 0; }
    .bulletin-qr-wrap .qr-code { width: 130px; height: 130px; }
    .bulletin-url { font-family: var(--sans); font-size: 11px; color: var(--stone); word-break: break-all; margin-top: 0.5rem; }
    .bulletin-footer { margin-top: 0.75rem; font-family: var(--sans); font-size: 11px; color: var(--muted); }

    @media (max-width: 860px) {
      .app { grid-template-columns: 1fr; }
      .sidebar { position: static; height: auto; }
      .form-grid, .toggle-row, .insights-layout, .insight-stats, .setup-wizard-body, .commemoration-list, .feast-grid, .history-summary, .history-filters, .platform-access-grid { grid-template-columns: 1fr; }
      .qr-layout, .qr-copy-row, .qr-feature-layout { grid-template-columns: 1fr; }
      .qr-feature-actions { min-width: 0; }
    }

    /* AGAPAY dashboard refresh - aligned with the donor dashboard. */
    body {
      background:
        linear-gradient(180deg, rgba(6,21,34,0.055), transparent 280px),
        var(--cream);
    }
    .sidebar {
      border-right-color: rgba(184,144,47,0.22);
      box-shadow: inset -1px 0 0 rgba(246,241,232,0.035);
    }
    .sidebar-header::before {
      width: 270px;
      height: 135px;
      background: radial-gradient(ellipse at top, rgba(200,162,74,0.14), transparent 68%);
    }
    .topbar {
      min-height: 60px;
      background: rgba(253,251,247,0.94);
      backdrop-filter: blur(12px);
      box-shadow: 0 1px 0 rgba(111,106,96,0.08);
    }
    .sidebar-mark,
    .section-title-icon {
      border-radius: 9px;
      background: rgba(184,144,47,0.12);
      border-color: rgba(184,144,47,0.28);
    }
    .section-card,
    .qr-feature-card,
    .option-group,
    .history-stat,
    .bulletin-preview,
    .feast-card {
      position: relative;
      background:
        linear-gradient(135deg, rgba(184,144,47,0.10), rgba(11,33,48,0.045) 46%, rgba(255,255,255,0.96) 100%),
        #fff;
      border-color: rgba(111,106,96,0.16);
      box-shadow: 0 7px 22px rgba(6,21,34,0.06);
    }
    .section-card::before,
    .qr-feature-card::before,
    .option-group::before,
    .history-stat::before,
    .bulletin-preview::before,
    .feast-card::before {
      content: '';
      position: absolute;
      inset: 0 0 auto;
      height: 4px;
      background: linear-gradient(90deg, var(--gold), rgba(184,144,47,0.78), rgba(11,33,48,0.78), var(--forest));
      pointer-events: none;
    }
    .section-header,
    .option-group-head,
    .history-table th {
      background:
        linear-gradient(90deg, rgba(184,144,47,0.12), rgba(11,33,48,0.08)),
        linear-gradient(180deg, #fff, var(--paper));
    }
    .section-card > *,
    .qr-feature-card > *,
    .option-group > *,
    .history-stat > *,
    .bulletin-preview > *,
    .feast-card > * {
      position: relative;
      z-index: 1;
    }
    .option-item,
    .commemoration-column,
    .chart-card,
    .qr-code {
      border-color: rgba(111,106,96,0.16);
      background: rgba(255,255,255,0.96);
      box-shadow: 0 2px 10px rgba(6,21,34,0.035);
    }
    .insights-card,
    .setup-wizard-card {
      background: var(--deep);
      border-color: rgba(184,144,47,0.24);
      box-shadow: 0 10px 30px rgba(6,21,34,0.11);
    }
    .insights-card::before,
    .setup-wizard-card::before {
      content: '';
      position: absolute;
      top: 0;
      left: 50%;
      transform: translateX(-50%);
      width: 720px;
      height: 300px;
      background: radial-gradient(ellipse at top, rgba(200,162,74,0.13) 0%, transparent 65%);
      pointer-events: none;
    }
    .insights-card::after,
    .setup-wizard-card::after {
      content: '';
      position: absolute;
      right: -150px;
      bottom: -190px;
      width: 440px;
      height: 440px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(200,162,74,0.06) 0%, rgba(11,33,48,0.08) 38%, transparent 70%);
      filter: blur(34px);
      pointer-events: none;
    }
    .insights-header,
    .insights-body,
    .setup-wizard-body {
      position: relative;
      z-index: 1;
    }

    @media (max-width: 860px) {
      body { overflow-x: hidden; }
      .content { overflow: visible; min-height: auto; }
      .sidebar {
        position: static;
        height: auto;
        overflow: visible;
      }
      .sidebar-body {
        overflow: visible;
        display: block;
      }
      .sidebar-header,
      .sidebar-auth,
      .sidebar-profile,
      .sidebar-links {
        padding-left: 1rem;
        padding-right: 1rem;
      }
      .sidebar-nav {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
        padding: 0.75rem 1rem;
      }
      .sidebar-nav-item {
        min-height: 44px;
        border: 1px solid rgba(184,144,47,0.12);
        border-radius: 10px;
        background: rgba(246,241,232,0.035);
        padding: 0.65rem 0.7rem;
      }
      .sidebar-nav-item:hover,
      .sidebar-nav-item.active {
        border-left-color: rgba(184,144,47,0.12);
        border-color: rgba(184,144,47,0.32);
        padding-left: 0.7rem;
      }
      .topbar {
        height: auto;
        min-height: 58px;
        padding: 0.85rem 1rem;
        align-items: flex-start;
        flex-direction: column;
        gap: 0.65rem;
      }
      .topbar-actions,
      .section-header,
      .insights-header {
        width: 100%;
        align-items: stretch;
        flex-direction: column;
      }
      .detail-wrap { padding: 0.85rem 0.85rem 1.5rem; overflow: visible; }
      .section-card,
      .insights-card,
      .setup-wizard-card,
      .qr-feature-card {
        border-radius: 12px;
      }
      .section-body,
      .insights-body,
      .setup-wizard-body {
        padding: 0.95rem;
      }
      .setup-wizard-body {
        display: grid;
        grid-template-columns: 1fr;
      }
      .setup-action-panel { width: 100%; }
      .qr-feature-layout {
        gap: 0.85rem;
        padding: 0.95rem;
      }
      .qr-feature-code,
      .qr-code {
        width: min(160px, 100%);
        height: auto;
        aspect-ratio: 1;
        justify-self: start;
      }
      .qr-feature-actions,
      .topbar .btn,
      .section-header .btn,
      .insights-header .btn {
        width: 100%;
      }
      .btn,
      .sidebar-load,
      .check-card {
        min-height: 44px;
      }
      .btn-row,
      .actions,
      .qr-actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: 8px;
      }
      .btn-row .btn,
      .actions .btn,
      .qr-actions .btn {
        width: 100%;
        justify-content: center;
      }
      .history-table-wrap {
        margin: 0 -0.95rem;
        padding: 0 0.95rem 0.25rem;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
      }
      .history-table { min-width: 560px; }
      .recurring-health-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
      .recurring-health-row {
        grid-template-columns: 1fr;
        align-items: start;
      }
      .recurring-health-row-meta {
        text-align: left;
      }
      .recurring-health-status {
        justify-self: start;
      }
      .chart-bars {
        min-height: 150px;
        gap: 0.25rem;
      }
      .chart-label { font-size: 9px; }
    }

    @media (max-width: 520px) {
      .parish-auth-page {
        align-items: start;
        padding: 1.2rem 1rem;
      }
      .parish-auth-intro {
        grid-template-columns: 64px minmax(0, 1fr);
        gap: 0.75rem;
      }
      .parish-auth-intro img {
        width: 60px;
        height: 60px;
      }
      .parish-auth-actions {
        grid-template-columns: 1fr;
      }
      .sidebar-nav,
      .form-grid,
      .toggle-row,
      .insight-stats,
      .feast-card {
        grid-template-columns: 1fr;
      }
      .sidebar-brand { align-items: flex-start; }
      .sidebar-name { font-size: 23px; }
      .section-title { font-size: 19px; }
      .insights-total { font-size: clamp(2rem, 15vw, 3rem); }
      .history-summary { grid-template-columns: 1fr; }
      .recurring-health-grid { grid-template-columns: 1fr; }
      .qr-copy-row { grid-template-columns: 1fr; }
      .toast-container {
        left: 0.85rem;
        right: 0.85rem;
        bottom: 0.85rem;
      }
      .toast { max-width: none; width: 100%; }
    }

    .mobile-tabbar {
      display: none;
    }

    .mobile-page-actions {
      display: none;
    }

    .dashboard-welcome-banner {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr);
      gap: 0.75rem;
      align-items: center;
      padding: 0.85rem;
      border: 1px solid rgba(184,144,47,0.22);
      border-radius: 14px;
      background:
        radial-gradient(circle at 92% 20%, rgba(184,144,47,0.14), transparent 6rem),
        rgba(246,241,232,0.055);
    }

    .welcome-brand-mark {
      width: 50px;
      height: 50px;
      display: grid;
      place-items: center;
      opacity: 0.9;
    }

    .welcome-brand-mark img {
      width: 46px;
      height: 46px;
      object-fit: contain;
    }

    .welcome-kicker {
      color: var(--gold);
      font-size: 10px;
      font-weight: 800;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      line-height: 1.25;
    }

    .welcome-copy h2 {
      margin: 0.16rem 0 0;
      color: var(--cream);
      font-family: var(--sans);
      font-size: 20px;
      font-weight: 800;
      letter-spacing: 0;
      line-height: 1.08;
    }

    .welcome-copy p {
      margin: 0.45rem 0 0;
      border: 1px solid rgba(184,144,47,0.24);
      border-radius: 10px;
      background: rgba(184,144,47,0.1);
      color: rgba(246,241,232,0.78);
      padding: 0.55rem 0.65rem;
      font-size: 12px;
      font-weight: 700;
      line-height: 1.35;
    }

    .welcome-avatar {
      display: none;
    }

    .auth-fields {
      display: grid;
      gap: 0.65rem;
    }

    .mobile-tab-link {
      appearance: none;
      border: 0;
      background: transparent;
      box-shadow: none;
    }

    .mobile-tab-link[data-nav-tab="settings"] {
      order: 99;
    }

    .mobile-tab-link svg {
      width: 24px;
      height: 24px;
      stroke: currentColor;
      fill: none;
      stroke-width: 1.9;
      stroke-linecap: round;
      stroke-linejoin: round;
      color: var(--gold);
    }

    .mobile-soon-badge {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      margin-top: -0.08rem;
      border: 1px solid rgba(184,144,47,0.42);
      border-radius: 999px;
      background: rgba(184,144,47,0.12);
      color: var(--gold);
      padding: 0.08rem 0.34rem;
      font-size: 7px;
      font-style: normal;
      font-weight: 800;
      letter-spacing: 0.08em;
      line-height: 1;
      text-transform: uppercase;
    }

    @media (max-width: 760px) {
      body {
        background:
          radial-gradient(circle at 50% -10%, rgba(184,144,47,0.12), transparent 28rem),
          var(--cream);
      }

      .app {
        display: block;
        min-height: 100vh;
      }

      .sidebar {
        position: relative;
        height: auto;
        border-right: 0;
        border-bottom: 0;
        border-radius: 0;
        overflow: visible;
        background: transparent;
        color: var(--ink);
        box-shadow: none;
      }

      .sidebar-header {
        display: none;
      }

      .sidebar-body {
        overflow: visible;
        display: block;
      }

      .sidebar-auth,
      .sidebar-profile {
        width: min(100%, 520px);
        margin: 0 auto;
      }

      .sidebar-auth {
        display: grid;
        gap: 0.85rem;
        padding: 1.25rem 1.35rem 0.9rem;
      }

      .dashboard-welcome-banner {
        grid-template-columns: auto minmax(0, 1fr) auto;
        align-items: center;
        gap: 0.85rem;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
      }

      .welcome-brand-mark {
        width: 58px;
        height: 58px;
        opacity: 0.82;
      }

      .welcome-brand-mark img {
        width: 52px;
        height: 52px;
      }

      .welcome-kicker {
        color: var(--stone);
        font-size: 11px;
        letter-spacing: 0.14em;
      }

      .welcome-copy h2 {
        margin-top: 0.18rem;
        color: #050505;
        font-size: clamp(2rem, 10vw, 2.45rem);
        line-height: 1.02;
      }

      .welcome-copy p {
        margin-top: 0.75rem;
        border-color: rgba(184,144,47,0.32);
        background: rgba(184,144,47,0.1);
        color: #6b5012;
        padding: 0.75rem 0.85rem;
        font-size: 14px;
        line-height: 1.45;
      }

      .welcome-avatar {
        width: 54px;
        height: 54px;
        display: grid;
        place-items: center;
        border-radius: 999px;
        background: var(--deep);
        color: white;
        font-size: 18px;
        font-weight: 800;
      }

      .auth-fields {
        display: grid;
        gap: 0.65rem;
        border: 1px solid rgba(184,144,47,0.24);
        border-radius: 14px;
        background: rgba(255,255,255,0.64);
        padding: 0.85rem;
      }

      .sidebar-auth label {
        color: var(--stone);
      }

      .sidebar input {
        background: white;
        border-color: rgba(111,106,96,0.24);
        color: var(--ink);
      }

      .sidebar input::placeholder {
        color: rgba(111,106,96,0.55);
      }

      .sidebar-auth input,
      .sidebar-load {
        min-height: 46px;
        font-size: 14px;
      }

      .sidebar-nav,
      .sidebar-links {
        display: none !important;
      }

      .content {
        display: block;
        min-height: auto;
        overflow: visible;
      }

      .topbar {
        position: static;
        min-height: 0;
        padding: 1rem 1rem 0.55rem;
        background: transparent;
        border-bottom: 0;
        box-shadow: none;
      }

      .topbar-title {
        font-size: 26px;
        line-height: 1.05;
      }

      .topbar-actions {
        display: none;
      }

      .sidebar-profile .sidebar-status-chip {
        display: none;
      }

      .detail-wrap {
        width: 100%;
        max-width: 520px;
        margin: 0 auto;
        padding: 0.75rem 0.9rem 1rem;
      }

      .tab-panel.active {
        display: grid;
        gap: 0.9rem;
      }

      .section-header,
      .insights-header {
        align-items: stretch;
      }

      .section-body,
      .insights-body,
      .setup-wizard-body {
        padding: 1rem;
      }

      .history-summary,
      .history-filters,
      .form-grid,
      .toggle-row,
      .feast-grid,
      .commemoration-list,
      .insight-stats {
        grid-template-columns: 1fr;
      }

      .candle-giving-layout,
      .text-give-header,
      .text-give-launch,
      .text-give-grid,
      .text-give-form-grid,
      .qr-tools-hero,
      .qr-tools-link-card,
      .qr-tools-grid,
      .feature-tab-hero,
      .feature-guide-grid {
        grid-template-columns: 1fr;
      }

      .text-give-header {
        padding: 1.1rem;
      }

      .text-give-header-mark {
        display: none;
      }

      .text-give-launch {
        padding: 1rem;
      }

      .text-give-card-head {
        align-items: flex-start;
      }

      .text-give-phone-number {
        font-size: 2rem;
      }

      .text-give-table th,
      .text-give-table td {
        padding: 0.75rem;
      }

      .qr-tools-copy,
      .qr-tools-preview-card {
        padding: 1rem;
      }

      .qr-tools-preview-card {
        border-left: 0;
        border-top: 1px solid rgba(246,241,232,0.12);
      }

      .qr-tools-code-frame {
        width: min(100%, 210px);
      }

      .qr-tools-actions,
      .qr-copy-row {
        display: grid;
        grid-template-columns: 1fr;
      }

      .feature-tab-hero > div:first-child,
      .feature-tab-summary {
        padding: 1rem;
      }

      .option-group-head,
      .option-item-head,
      .editor-label-row {
        align-items: flex-start;
        flex-direction: column;
      }

      .mobile-tabbar {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 9000;
        display: flex;
        gap: 0.25rem;
        width: 100%;
        min-height: 78px;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x proximity;
        -webkit-overflow-scrolling: touch;
        padding: 0.35rem 0.55rem calc(0.35rem + env(safe-area-inset-bottom));
        border: 0;
        border-top: 1px solid rgba(111,106,96,0.16);
        border-radius: 20px 20px 0 0;
        background: rgba(246,241,232,0.95);
        backdrop-filter: blur(10px);
        box-shadow: 0 -10px 30px rgba(6,21,34,0.12);
        scrollbar-width: none;
      }

      .mobile-tabbar::-webkit-scrollbar {
        display: none;
      }

      .mobile-tab-link {
        flex: 0 0 78px;
        display: grid;
        place-items: center;
        align-content: center;
        gap: 0.18rem;
        min-height: 64px;
        padding: 0.35rem 0.2rem;
        border-radius: 14px;
        color: rgba(6,21,34,0.58);
        font-size: 10px;
        font-weight: 700;
        letter-spacing: 0.01em;
        text-decoration: none;
        scroll-snap-align: center;
      }

      .mobile-tab-link:hover {
        transform: none;
        box-shadow: none;
      }

      .mobile-tab-link.active {
        background: rgba(255,255,255,0.72);
        color: var(--deep);
        box-shadow: 0 7px 18px rgba(6,21,34,0.08);
      }

      .mobile-tab-link.active svg {
        color: var(--gold);
      }

      .qr-feature-card,
      .insights-card,
      .setup-wizard-card,
      .section-card {
        border-radius: 18px;
        margin-bottom: 0.9rem;
      }

      .qr-feature-card,
      .insights-card,
      .setup-wizard-card {
        box-shadow: 0 16px 44px rgba(6,21,34,0.14);
      }

      .section-card {
        box-shadow: 0 10px 30px rgba(6,21,34,0.07);
      }

      .qr-feature-layout {
        grid-template-columns: 1fr;
      }

      .history-table-wrap {
        margin: 0;
        padding: 0;
        overflow-x: visible;
      }

      .history-table,
      .history-table tbody,
      .history-table tr,
      .history-table td {
        display: block;
        width: 100%;
      }

      .history-table thead {
        display: none;
      }

      .history-table tr {
        border: 1px solid var(--line);
        border-radius: 14px;
        background: white;
        margin: 0.7rem 0;
        padding: 0.75rem;
      }

      .history-table td {
        border: 0;
        padding: 0.28rem 0;
      }

      .mobile-page-actions {
        width: 100%;
        max-width: 520px;
        margin: 0 auto;
        padding: 0.35rem 0.9rem calc(7rem + env(safe-area-inset-bottom));
        display: grid;
        gap: 0.75rem;
      }

      .mobile-page-actions .btn {
        min-height: 58px;
        width: 100%;
        justify-content: flex-start;
        border-radius: 14px;
        background: white;
        border-color: rgba(111,106,96,0.2);
        color: var(--deep);
        box-shadow: 0 10px 26px rgba(6,21,34,0.06);
        font-size: 15px;
      }

      .overview-status-grid,
      .options-progress-row {
        grid-template-columns: 1fr;
      }

      .options-progress-row {
        gap: 0.35rem;
      }

      .giver-card {
        align-items: flex-start;
        flex-direction: column;
      }
    }

    .stewardship-native-hero {
      margin-bottom: 1rem;
    }

    .stewardship-native-grid {
      display: grid;
      grid-template-columns: minmax(0, 0.95fr) minmax(280px, 0.7fr);
      gap: 1rem;
      margin-bottom: 1rem;
    }

    .stewardship-soon-hero-card {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr);
      gap: 1rem;
      align-items: start;
      margin-bottom: 1rem;
      padding: 1.35rem 1.45rem;
      border: 1px solid rgba(201,162,91,0.34);
      border-radius: 16px;
      background:
        radial-gradient(circle at 92% 0%, rgba(201,162,91,0.18), transparent 13rem),
        linear-gradient(135deg, var(--deep), var(--forest));
      color: var(--cream);
      box-shadow: 0 18px 42px rgba(6,21,34,0.16);
      overflow: hidden;
    }

    .stewardship-soon-mark {
      width: 54px;
      height: 54px;
      display: grid;
      place-items: center;
      border: 1px solid rgba(201,162,91,0.36);
      border-radius: 999px;
      background: rgba(201,162,91,0.12);
      color: var(--gold);
    }

    .stewardship-soon-mark svg {
      width: 28px;
      height: 28px;
      fill: none;
      stroke: currentColor;
      stroke-width: 1.8;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    .stewardship-soon-hero-card span,
    .stewardship-soon-preview-head span {
      color: var(--gold);
      font-size: 11px;
      font-weight: 800;
      letter-spacing: 0.14em;
      text-transform: uppercase;
    }

    .stewardship-soon-hero-card strong {
      display: block;
      margin-top: 0.28rem;
      color: var(--cream);
      font-family: var(--serif);
      font-size: clamp(1.65rem, 3vw, 2.35rem);
      font-weight: 500;
      line-height: 1.05;
    }

    .stewardship-soon-hero-card p {
      max-width: 620px;
      margin: 0.65rem 0 0;
      color: rgba(246,241,232,0.72);
      font-size: 13px;
      line-height: 1.65;
    }

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

    .stewardship-soon-feature {
      display: grid;
      gap: 0.35rem;
      min-height: 148px;
      padding: 1rem;
      border: 1px solid rgba(201,162,91,0.28);
      border-radius: 14px;
      background: linear-gradient(180deg, #fff, rgba(244,240,230,0.72));
      box-shadow: 0 12px 30px rgba(6,21,34,0.06);
    }

    .stewardship-soon-feature i {
      width: fit-content;
      border-radius: 999px;
      background: var(--deep);
      color: var(--gold);
      padding: 0.24rem 0.55rem;
      font-size: 10px;
      font-style: normal;
      font-weight: 800;
      letter-spacing: 0.08em;
    }

    .stewardship-soon-feature strong,
    .stewardship-soon-preview-list b {
      color: var(--deep);
      font-family: var(--serif);
      font-size: 1.22rem;
      font-weight: 600;
      line-height: 1.05;
    }

    .stewardship-soon-feature span,
    .stewardship-soon-preview-list span,
    .stewardship-soon-note span {
      color: var(--stone);
      font-size: 12px;
      line-height: 1.55;
    }

    .stewardship-soon-preview {
      display: grid;
      gap: 1rem;
      min-height: 100%;
      padding: 1.15rem;
      border: 1px solid rgba(201,162,91,0.32);
      border-radius: 16px;
      background:
        radial-gradient(circle at 100% 0%, rgba(201,162,91,0.16), transparent 10rem),
        linear-gradient(180deg, #fff, rgba(244,240,230,0.66));
      box-shadow: var(--soft-shadow);
    }

    .stewardship-soon-preview-head {
      display: grid;
      gap: 0.22rem;
      padding-bottom: 0.8rem;
      border-bottom: 1px solid rgba(201,162,91,0.22);
    }

    .stewardship-soon-preview-head strong {
      color: var(--deep);
      font-family: var(--serif);
      font-size: 1.55rem;
      font-weight: 500;
      line-height: 1.05;
    }

    .stewardship-soon-preview-list {
      display: grid;
      gap: 0.75rem;
    }

    .stewardship-soon-preview-list > div {
      display: grid;
      gap: 0.2rem;
      padding: 0.85rem;
      border: 1px solid rgba(201,162,91,0.2);
      border-radius: 12px;
      background: rgba(255,255,255,0.62);
    }

    .stewardship-soon-note {
      display: grid;
      gap: 0.25rem;
      padding: 1rem;
      border-radius: 14px;
      background: var(--deep);
      color: var(--cream);
    }

    .stewardship-soon-note strong {
      color: var(--gold);
      font-size: 11px;
      font-weight: 800;
      letter-spacing: 0.12em;
      text-transform: uppercase;
    }

    .stewardship-soon-note span {
      color: rgba(246,241,232,0.72);
    }

    .stewardship-status-banner {
      display: grid;
      gap: 0.35rem;
      padding: 1rem;
      border: 1px solid rgba(201, 162, 91, 0.24);
      border-radius: 8px;
      background: rgba(255,255,255,0.62);
      margin-bottom: 1rem;
    }

    .stewardship-status-banner.active {
      background: rgba(214, 175, 91, 0.12);
      border-color: rgba(201, 162, 91, 0.42);
    }

    .stewardship-status-banner strong,
    .stewardship-empty strong {
      color: var(--deep);
      font-family: var(--serif);
      font-size: 1.55rem;
      font-weight: 500;
      line-height: 1;
    }

    .stewardship-status-banner span,
    .stewardship-empty span,
    .stewardship-tool-list span {
      color: var(--stone);
      line-height: 1.5;
    }

    .stewardship-plan-options {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 0.75rem;
    }

    .stewardship-plan-option {
      display: grid;
      gap: 0.2rem;
      min-height: 104px;
      padding: 1rem;
      text-align: left;
      border: 1px solid rgba(201, 162, 91, 0.32);
      border-radius: 8px;
      background: linear-gradient(180deg, rgba(255,255,255,0.8), rgba(244,240,230,0.78));
      color: var(--deep);
      cursor: pointer;
    }

    .stewardship-plan-option strong {
      font-size: 1rem;
    }

    .stewardship-plan-option span {
      color: var(--gold);
      font-family: var(--serif);
      font-size: 1.8rem;
      line-height: 1;
    }

    .stewardship-tool-list {
      display: grid;
      gap: 1rem;
    }

    .stewardship-tool-list > div {
      display: grid;
      gap: 0.25rem;
      padding-bottom: 0.9rem;
      border-bottom: 1px solid rgba(201, 162, 91, 0.18);
    }

    .stewardship-tool-list > div:last-child {
      border-bottom: 0;
      padding-bottom: 0;
    }

    .stewardship-empty {
      display: grid;
      place-items: center;
      gap: 0.55rem;
      padding: 2rem;
      text-align: center;
      border: 1px dashed rgba(201, 162, 91, 0.34);
      border-radius: 8px;
      background: rgba(255,255,255,0.52);
    }

    .stewardship-table-wrap {
      overflow-x: auto;
    }

    .stewardship-table {
      width: 100%;
      border-collapse: collapse;
      min-width: 720px;
    }

    .stewardship-table th,
    .stewardship-table td {
      padding: 0.9rem;
      border-bottom: 1px solid rgba(201, 162, 91, 0.18);
      text-align: left;
      vertical-align: top;
    }

    .stewardship-table th {
      color: var(--stone);
      font-size: 0.72rem;
      letter-spacing: 0.12em;
      text-transform: uppercase;
    }

    .stewardship-table td span {
      display: block;
      color: var(--stone);
      font-size: 0.9rem;
      margin-top: 0.2rem;
    }

    .status-pill {
      display: inline-flex !important;
      width: fit-content;
      padding: 0.24rem 0.55rem;
      border-radius: 999px;
      background: rgba(201, 162, 91, 0.16);
      color: var(--deep) !important;
      font-size: 0.74rem !important;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: 0.08em;
    }

    .table-actions {
      display: flex;
      gap: 0.45rem;
      justify-content: flex-end;
    }

    .stewardship-editor-card[hidden] {
      display: none;
    }

    .stewardship-native-form {
      display: grid;
      gap: 1.2rem;
    }

    .stewardship-native-form label,
    .stewardship-form-grid label {
      display: grid;
      gap: 0.35rem;
      color: var(--stone);
      font-size: 0.78rem;
      font-weight: 800;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }

    .stewardship-native-form input,
    .stewardship-native-form textarea,
    .stewardship-native-form select {
      width: 100%;
      min-height: 42px;
      padding: 0.7rem 0.8rem;
      border: 1px solid rgba(201, 162, 91, 0.24);
      border-radius: 8px;
      background: rgba(255,255,255,0.72);
      color: var(--deep);
      font: inherit;
      letter-spacing: 0;
      text-transform: none;
      box-sizing: border-box;
    }

    .stewardship-form-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 0.9rem;
    }

    .stewardship-editor-section {
      display: grid;
      gap: 0.8rem;
      padding: 1rem;
      border: 1px solid rgba(201, 162, 91, 0.18);
      border-radius: 8px;
      background: rgba(244,240,230,0.36);
    }

    .stewardship-editor-section > div:first-child {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 1rem;
    }

    .stewardship-editor-section h3 {
      margin: 0;
      font-family: var(--serif);
      font-size: 1.45rem;
      font-weight: 500;
    }

    .stewardship-repeat-row {
      display: grid;
      grid-template-columns: minmax(160px, 1fr) minmax(90px, 0.35fr) auto;
      gap: 0.6rem;
      align-items: start;
      margin-bottom: 0.65rem;
    }

    #stewardshipReportRows .stewardship-repeat-row,
    #stewardshipResolutionRows .stewardship-repeat-row {
      grid-template-columns: minmax(120px, 0.28fr) minmax(160px, 0.4fr) minmax(220px, 1fr) auto;
    }

    #stewardshipFundRows .stewardship-repeat-row {
      grid-template-columns: minmax(160px, 1fr) repeat(4, minmax(90px, 0.45fr)) auto;
    }

    #stewardshipNomineeRows .stewardship-repeat-row {
      grid-template-columns: minmax(160px, 1fr) minmax(140px, 0.7fr) auto;
    }

    .error-text {
      color: #9f1d1d;
    }

    @media (max-width: 960px) {
      .stewardship-native-grid,
      .stewardship-form-grid,
      .stewardship-soon-feature-grid,
      .stewardship-plan-options {
        grid-template-columns: 1fr;
      }

      .stewardship-soon-hero-card {
        grid-template-columns: 1fr;
      }

      .stewardship-repeat-row,
      #stewardshipReportRows .stewardship-repeat-row,
      #stewardshipResolutionRows .stewardship-repeat-row,
      #stewardshipFundRows .stewardship-repeat-row,
      #stewardshipNomineeRows .stewardship-repeat-row {
        grid-template-columns: 1fr;
      }
    }

    @media (max-width: 430px) {
      .mobile-tab-link {
        font-size: 9px;
      }
    }

