:root{--green:#00843D;--green-light:#00A84F;--gold:#C8A84B;--gold-light:#F0C96A;--cream:#FAF6EE;--dark:#0D1A0F;--dark2:#162118;--mid:#2E4A30;--text:#1A2E1C;--muted:#5A7A5C;--white:#FFFFFF;--border:rgba(0,132,61,0.15);}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;touch-action:manipulation;}

button,a{-webkit-tap-highlight-color:rgba(0,0,0,0) !important;touch-action:manipulation;user-select:none;-webkit-user-select:none;cursor:pointer;}
[onclick]{touch-action:manipulation;}
/* PWA INSTALL BANNER */
.pwa-banner{position:fixed;top:calc(env(safe-area-inset-top) + 4.5rem);left:1rem;right:1rem;border-radius:16px;z-index:9990;background:var(--dark);padding:1rem 1.5rem;display:flex;align-items:center;gap:1rem;transform:translateY(-200%);transition:transform .4s cubic-bezier(0.4,0,0.2,1);box-shadow:0 8px 30px rgba(0,0,0,0.3);}
.pwa-banner.show{transform:translateY(0);}
.pwa-banner-icon{font-size:2rem;flex-shrink:0;}
.pwa-banner-text{flex:1;}
.pwa-banner-title{font-family:'Fraunces',serif;font-weight:700;color:#fff;font-size:0.95rem;}
.pwa-banner-sub{font-size:0.78rem;color:rgba(255,255,255,0.5);margin-top:0.1rem;}
.pwa-banner-install{background:var(--green);color:#fff;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:0.82rem;font-weight:500;padding:0.55rem 1.2rem;border-radius:100px;white-space:nowrap;transition:background .2s;}
.pwa-banner-install:hover{background:var(--green-light);}
.pwa-banner-close{background:rgba(255,255,255,0.15);border:none;color:#fff;cursor:pointer;font-size:1.1rem;padding:0;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}

/* SKELETON LOADING */
.skeleton{background:linear-gradient(90deg,rgba(255,255,255,0.05) 25%,rgba(255,255,255,0.1) 50%,rgba(255,255,255,0.05) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:8px;}
@keyframes shimmer{0%{background-position:200% 0;}100%{background-position:-200% 0;}}
.skeleton-card{background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.08);border-radius:20px;overflow:hidden;}
.skeleton-img{height:220px;width:100%;}
.skeleton-body{padding:1.5rem;}
.skeleton-line{height:12px;margin-bottom:10px;border-radius:6px;}
.skeleton-line.short{width:60%;}
.skeleton-line.medium{width:80%;}
.skeleton-line.full{width:100%;}
.skeleton-progress{height:4px;width:100%;margin:12px 0;border-radius:10px;}

/* DONATION NUDGE */
.nudge-banner{position:fixed;bottom:80px;left:50%;transform:translateX(-50%) translateY(20px);z-index:700;opacity:0;pointer-events:none;transition:all .4s;white-space:nowrap;}
.nudge-banner.show{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:all;}
.nudge-inner{background:var(--green);color:#fff;padding:0.7rem 1.4rem;border-radius:100px;font-size:0.85rem;font-weight:500;box-shadow:0 8px 30px rgba(0,132,61,0.4);display:flex;align-items:center;gap:0.6rem;cursor:pointer;}
.nudge-inner:hover{background:var(--green-light);}


/* REPORT CAMPAIGN */
.report-btn{background:none;border:1px solid rgba(220,38,38,0.2);color:rgba(220,38,38,0.6);cursor:pointer;font-family:'DM Sans',sans-serif;font-size:0.78rem;padding:0.4rem 0.9rem;border-radius:8px;transition:all .2s;margin-top:1rem;display:inline-flex;align-items:center;gap:0.4rem;}
.report-btn:hover{background:rgba(220,38,38,0.08);border-color:rgba(220,38,38,0.4);color:#e53e3e;}

/* CONTACT PAGE */
.contact-page{position:fixed;inset:0;z-index:500;background:var(--cream);overflow-y:auto;visibility:hidden;transform:translateX(100%);transition:transform .4s cubic-bezier(0.4,0,0.2,1),visibility 0s linear .4s;}
.contact-page.open{visibility:visible;transform:translateX(0);transition:transform .4s cubic-bezier(0.4,0,0.2,1),visibility 0s;}
.contact-body{max-width:640px;margin:0 auto;padding:5rem 1.5rem 6rem;}
.contact-hero{text-align:center;margin-bottom:3rem;}
.contact-hero h1{font-family:'Fraunces',serif;font-size:2.5rem;font-weight:900;color:var(--dark);margin-bottom:0.8rem;}
.contact-hero p{color:var(--muted);font-size:1rem;line-height:1.7;max-width:420px;margin:0 auto;}
.contact-cards{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:2.5rem;}
@media(max-width:500px){.contact-cards{grid-template-columns:1fr;}}
.contact-card{background:var(--white);border:1px solid var(--border);border-radius:16px;padding:1.5rem;text-align:center;transition:transform .2s,box-shadow .2s;}
.contact-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(0,0,0,0.08);}
.contact-card-icon{font-size:2rem;margin-bottom:0.8rem;}
.contact-card-title{font-family:'Fraunces',serif;font-size:1rem;font-weight:700;color:var(--dark);margin-bottom:0.4rem;}
.contact-card-text{font-size:0.82rem;color:var(--muted);line-height:1.6;margin-bottom:0.8rem;}
.contact-card-link{color:var(--green);font-size:0.85rem;font-weight:500;text-decoration:none;word-break:break-all;}
.contact-form-card{background:var(--white);border:1px solid var(--border);border-radius:20px;padding:2rem;}
.contact-form-card h2{font-family:'Fraunces',serif;font-size:1.4rem;font-weight:900;color:var(--dark);margin-bottom:1.5rem;}
.contact-submit{width:100%;background:var(--green);color:#fff;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:1rem;font-weight:500;padding:1rem;border-radius:12px;transition:background .2s;}
.contact-submit:hover{background:var(--green-light);}
.contact-submit:disabled{background:var(--muted);cursor:not-allowed;}

/* REPORT MODAL */
.report-modal-body{padding:0;}
.report-reason-list{display:flex;flex-direction:column;gap:0.6rem;margin-bottom:1.5rem;}
.report-reason{display:flex;align-items:center;gap:0.8rem;padding:0.9rem 1rem;border:1.5px solid #E2EBE2;border-radius:12px;cursor:pointer;transition:all .2s;}
.report-reason:hover,.report-reason.selected{border-color:#e53e3e;background:rgba(229,62,62,0.04);}
.report-reason-dot{width:18px;height:18px;border-radius:50%;border:2px solid #E2EBE2;flex-shrink:0;transition:all .2s;}
.report-reason.selected .report-reason-dot{background:#e53e3e;border-color:#e53e3e;}
.report-reason-text{font-size:0.9rem;color:var(--text);}
.report-submit{width:100%;background:#e53e3e;color:#fff;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:1rem;font-weight:500;padding:1rem;border-radius:12px;transition:background .2s;}
.report-submit:hover{background:#c53030;}
.report-submit:disabled{background:var(--muted);cursor:not-allowed;}

/* PULL TO REFRESH */
.ptr-indicator{position:fixed;top:0;left:0;right:0;z-index:500;display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--green);color:#fff;font-size:0.85rem;font-weight:500;gap:0.5rem;transform:translateY(-100%);transition:transform .3s;}
.ptr-indicator.pulling{transform:translateY(0);}
.ptr-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,0.3);border-top-color:#fff;border-radius:50%;animation:spin 0.8s linear infinite;}

/* OFFLINE BANNER */
.offline-banner{position:fixed;top:0;left:0;right:0;z-index:900;background:#e53e3e;color:#fff;text-align:center;padding:0.6rem;font-size:0.82rem;font-weight:500;transform:translateY(-100%);transition:transform .3s;}
.offline-banner.show{transform:translateY(0);}

/* CAMPAIGN URL COPY */
.campaign-url-row{display:flex;align-items:center;gap:0.5rem;margin-top:0.8rem;background:rgba(0,132,61,0.06);border:1px solid var(--border);border-radius:10px;padding:0.6rem 0.8rem;}
.campaign-url-text{font-size:0.78rem;color:var(--muted);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.campaign-url-copy{background:var(--green);color:#fff;border:none;cursor:pointer;font-size:0.78rem;padding:0.5rem 0.9rem;border-radius:8px;white-space:nowrap;transition:background .2s;min-height:36px;touch-action:manipulation;}
.campaign-url-copy:hover{background:var(--green-light);}

/* RELATED CAMPAIGNS */
.related-section{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--border);}
.related-section h3{font-family:'Fraunces',serif;font-size:1.2rem;font-weight:700;color:var(--dark);margin-bottom:1.2rem;}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;}
@media(max-width:700px){.related-grid{grid-template-columns:1fr;}}
.related-card{background:var(--white);border:1px solid var(--border);border-radius:14px;overflow:hidden;cursor:pointer;transition:transform .2s,box-shadow .2s;}
.related-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(0,0,0,0.08);}
.related-img{height:100px;display:flex;align-items:center;justify-content:center;font-size:2rem;position:relative;overflow:hidden;}
.related-img img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
.related-body{padding:0.8rem;}
.related-title{font-family:'Fraunces',serif;font-size:0.88rem;font-weight:700;color:var(--dark);margin-bottom:0.4rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.related-progress{height:3px;background:#E8F5EE;border-radius:10px;overflow:hidden;margin-bottom:0.4rem;}
.related-progress-fill{height:100%;background:linear-gradient(90deg,var(--green),var(--gold));border-radius:10px;}
.related-pct{font-size:0.75rem;color:var(--muted);}

/* CAMPAIGN UPDATES */
.updates-section{margin-top:2.5rem;}
.updates-section h3{font-family:'Fraunces',serif;font-size:1.2rem;font-weight:700;color:var(--dark);margin-bottom:1rem;}
.update-item{display:flex;gap:0.8rem;padding:1rem;background:var(--white);border-radius:12px;border:1px solid var(--border);margin-bottom:0.8rem;}
.update-dot{width:10px;height:10px;border-radius:50%;background:var(--green);flex-shrink:0;margin-top:5px;}
.update-content{}
.update-date{font-size:0.75rem;color:var(--muted);margin-bottom:0.3rem;}
.update-text{font-size:0.88rem;color:var(--text);line-height:1.6;}

/* BOTTOM NAV (mobile) */
.bottom-nav{display:none;position:fixed;top:auto;bottom:0;left:0;right:0;z-index:850;background:rgba(255,255,255,0.97);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid rgba(0,0,0,0.07);box-shadow:0 -4px 24px rgba(0,0,0,0.07);padding:6px 6px max(18px,env(safe-area-inset-bottom));}
@media(max-width:900px){.bottom-nav{display:flex;align-items:center;}}
.bn-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:4px 2px;border:none;background:none;cursor:pointer;color:#9aab9a;font-family:'DM Sans',sans-serif;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:manipulation;min-height:52px;min-width:44px;user-select:none;-webkit-user-select:none;position:relative;transition:color .2s;}
.bn-item.active{color:var(--green);}
.bn-item.active::after{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:var(--green);}
.bn-icon{width:21px;height:21px;display:block;transition:transform .15s;}
.bn-item:active .bn-icon{transform:scale(0.88);}
.bn-label{font-size:0.58rem;font-weight:600;letter-spacing:0.03em;font-family:'DM Sans',sans-serif;}
/* start FAB */
.bn-start{flex:1.2;}
.bn-start-fab{width:48px;height:48px;border-radius:50%;background:linear-gradient(145deg,#00C85A,#00843D);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 18px rgba(0,132,61,0.4),0 0 0 4px rgba(0,132,61,0.1);transition:transform .15s,box-shadow .15s;}
.bn-start-fab svg{width:20px;height:20px;stroke:#fff;stroke-width:2.5;stroke-linecap:round;}
.bn-start:active .bn-start-fab{transform:scale(0.92);box-shadow:0 2px 8px rgba(0,132,61,0.3),0 0 0 4px rgba(0,132,61,0.08);}
.bn-start .bn-label{color:var(--green);font-weight:700;font-size:0.6rem;}
.bn-start::after{display:none !important;}


html{scroll-behavior:smooth;}
body{font-family:'DM Sans',sans-serif;background:var(--cream);color:var(--text);overflow-x:hidden;}
/* noise overlay removed — was blocking iOS touch events */

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:200;display:flex;align-items:center;justify-content:space-between;padding:0.75rem 1.5rem;background:rgba(250,246,238,0.97);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);}
.logo{font-family:'Fraunces',serif;font-size:1.7rem;font-weight:900;color:var(--green);letter-spacing:-0.04em;cursor:pointer;}
.logo span{color:var(--gold);}
.nav-links{display:flex;gap:2.5rem;list-style:none;font-size:0.9rem;font-weight:500;}

.nav-links a{text-decoration:none;color:var(--muted);transition:color .2s;}
.nav-links a:hover{color:var(--green);}
.nav-right{display:flex;gap:0.8rem;align-items:center;}
.nav-search{background:rgba(0,132,61,0.07);border:1.5px solid var(--border);border-radius:100px;padding:0.5rem 1rem;font-family:'DM Sans',sans-serif;font-size:0.85rem;color:var(--text);outline:none;width:180px;transition:all .2s;}
.nav-search:focus{border-color:var(--green);width:220px;}
.nav-cta{background:var(--green);color:#fff;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;font-weight:500;font-size:0.9rem;padding:0.65rem 1.6rem;border-radius:100px;transition:background .2s,transform .15s;}
.nav-cta:hover{background:var(--green-light);transform:translateY(-1px);}

/* HERO */
.hero{min-height:100vh;min-height:100svh;background-color:#0D1A0F;background-image:linear-gradient(160deg,#08120A 0%,#0D1A0F 40%,#0A1A0C 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:5rem 1.5rem 4rem;text-align:center;position:relative;overflow:hidden;}
.hero::before{content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,0.04) 1px,transparent 1px);background-size:28px 28px;pointer-events:none;z-index:0;}
.hero::after{content:'';position:absolute;top:20%;left:50%;transform:translateX(-50%);width:800px;height:800px;border-radius:50%;background:radial-gradient(circle,rgba(200,168,75,0.12) 0%,transparent 70%);pointer-events:none;}
.hero-label{display:inline-flex;align-items:center;gap:0.5rem;background:rgba(0,132,61,0.15);border:1px solid rgba(0,200,90,0.3);border-radius:100px;padding:0.4rem 1rem;font-size:0.78rem;font-weight:600;color:#4ade80;letter-spacing:0.08em;text-transform:uppercase;margin-bottom:1.8rem;animation:fadeUp 0.7s ease both;}
.hero h1{font-family:'Fraunces',serif;font-size:clamp(3rem,6vw,5.8rem);font-weight:900;line-height:1.0;letter-spacing:-0.035em;color:#fff;animation:fadeUp 0.8s 0.1s ease both;max-width:800px;}
.hero h1 em{font-style:italic;background:linear-gradient(135deg,#00C85A,#F0C96A);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.hero-sub{margin-top:1.6rem;font-size:1.1rem;color:rgba(255,255,255,0.65);line-height:1.7;max-width:520px;animation:fadeUp 0.8s 0.2s ease both;}
@media(prefers-reduced-motion:reduce){.hero-label,.hero h1,.hero-sub,.hero-actions,.hero-stats{animation:none!important;opacity:1!important;}}
.hero-actions{margin-top:2.5rem;display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;animation:fadeUp 0.8s 0.3s ease both;}
.hero-stats{margin-top:3.5rem;display:flex;gap:4rem;animation:fadeUp 0.8s 0.4s ease both;}
.stat-num{font-family:'Fraunces',serif;font-size:2rem;font-weight:700;color:var(--dark);}
.stat-label{font-size:0.82rem;color:var(--muted);margin-top:0.2rem;}

/* BUTTONS */
.btn-primary{background:linear-gradient(135deg,#00B348,#007A35);color:#fff;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:1rem;font-weight:500;padding:0.9rem 2.2rem;border-radius:100px;transition:all .2s;text-decoration:none;display:inline-block;}
.btn-primary:hover{background:linear-gradient(135deg,#00C855,#00943F);transform:translateY(-2px);box-shadow:0 12px 35px rgba(0,132,61,0.45);}
.btn-outline{background:transparent;color:var(--green);border:1.5px solid var(--green);cursor:pointer;font-family:'DM Sans',sans-serif;font-size:1rem;font-weight:500;padding:0.9rem 2.2rem;border-radius:100px;transition:all .2s;text-decoration:none;display:inline-block;}
.btn-outline:hover{background:rgba(0,132,61,0.08);transform:translateY(-2px);}
.btn-gold{background:var(--gold);color:var(--dark);border:none;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:1rem;font-weight:600;padding:1rem 2.5rem;border-radius:100px;transition:all .2s;text-decoration:none;display:inline-block;}
.btn-gold:hover{background:var(--gold-light);transform:translateY(-2px);box-shadow:0 12px 30px rgba(200,168,75,0.4);}
.btn-sm{padding:0.55rem 1.2rem;font-size:0.85rem;border-radius:100px;}

/* DIVIDER */
.adinkra-divider{text-align:center;padding:1rem 0;color:var(--gold);font-size:1.4rem;letter-spacing:0.5rem;opacity:0.6;}

/* SECTIONS */
.section{padding:4.5rem 3.5rem;}
.section-label{font-size:0.78rem;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;color:var(--gold);margin-bottom:1rem;}
.section-title{font-family:'Fraunces',serif;font-size:clamp(2rem,4vw,3.2rem);font-weight:900;line-height:1.1;letter-spacing:-0.03em;color:var(--dark);max-width:560px;}

/* HOW IT WORKS */
.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:4rem;}
.how-card{background:var(--white);border-radius:20px;padding:2.5rem 2rem;border:1px solid var(--border);transition:transform .25s,box-shadow .25s;}
.how-card:hover{transform:translateY(-6px);box-shadow:0 24px 50px rgba(0,0,0,0.09);}
.how-num{font-family:'Fraunces',serif;font-size:3.5rem;font-weight:900;color:rgba(0,132,61,0.1);line-height:1;margin-bottom:0.5rem;}
.how-icon{font-size:2rem;margin-bottom:1rem;display:block;}
.how-card h3{font-family:'Fraunces',serif;font-size:1.25rem;font-weight:700;color:var(--dark);margin-bottom:0.8rem;}
.how-card p{font-size:0.92rem;color:var(--muted);line-height:1.7;}

/* FILTER BAR */
.filter-bar{display:flex;gap:0.6rem;flex-wrap:wrap;margin-top:2rem;}
.filter-btn{padding:0.5rem 1.2rem;border-radius:100px;border:1.5px solid rgba(255,255,255,0.15);background:transparent;color:rgba(255,255,255,0.5);cursor:pointer;font-family:'DM Sans',sans-serif;font-size:0.85rem;transition:all .2s;}
.filter-btn:hover,.filter-btn.active{background:rgba(0,168,79,0.2);border-color:var(--green-light);color:var(--green-light);}

/* CAMPAIGNS SECTION */
.campaigns-section{background:var(--dark2);padding:4rem 3rem;}
.campaigns-section .section-label{color:var(--gold-light);}
.campaigns-section .section-title{color:var(--white);}
.campaigns-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem;margin-top:2rem;}

/* CAMPAIGN CARD */
.campaign-card{background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.1);border-radius:20px;overflow:hidden;transition:transform .25s,border-color .25s,box-shadow .25s;cursor:pointer;}
.campaign-card:hover{transform:translateY(-10px);box-shadow:0 40px 80px rgba(0,0,0,0.3),0 0 0 1.5px rgba(200,168,75,0.4);border-color:rgba(200,168,75,0.4);}
.cc-img{height:220px;display:flex;align-items:center;justify-content:center;font-size:3.5rem;position:relative;overflow:hidden;}
.cc-img img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
.cc-img-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,0.5) 0%,transparent 60%);}
.cc-img.edu{background:linear-gradient(135deg,#004D26,#00843D);}
.cc-img.health{background:linear-gradient(135deg,#6B2D00,#C8A84B);}
.cc-img.biz{background:linear-gradient(135deg,#1A0D3D,#2E4A30);}
.cc-img.water{background:linear-gradient(135deg,#003D6B,#00843D);}
.cc-img.farm{background:linear-gradient(135deg,#3D2700,#C8A84B);}
.cc-img.tech{background:linear-gradient(135deg,#0D1A0F,#006B30);}
.cc-img.emergency{background:linear-gradient(135deg,#6B0000,#C84B4B);}
.cc-img.other{background:linear-gradient(135deg,#2E1A00,#00843D);}
.cc-badge{position:absolute;top:1rem;right:1rem;background:rgba(0,0,0,0.55);backdrop-filter:blur(8px);color:var(--gold-light);font-size:0.7rem;font-weight:500;padding:0.3rem 0.75rem;border-radius:100px;text-transform:uppercase;letter-spacing:0.08em;z-index:2;}
.cc-days{position:absolute;top:1rem;left:1rem;background:rgba(0,0,0,0.55);backdrop-filter:blur(8px);color:rgba(255,255,255,0.8);font-size:0.7rem;font-weight:500;padding:0.3rem 0.75rem;border-radius:100px;z-index:2;}
.cc-body{padding:1.5rem;}
.cc-location{font-size:0.75rem;color:rgba(255,255,255,0.4);margin-bottom:0.5rem;}
.cc-title{font-family:'Fraunces',serif;font-size:1.05rem;font-weight:700;color:var(--white);margin-bottom:0.6rem;line-height:1.3;}
.cc-story-preview{font-size:0.8rem;color:rgba(255,255,255,0.45);line-height:1.5;margin-bottom:1rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.cc-progress-bar{height:4px;background:rgba(255,255,255,0.1);border-radius:10px;overflow:hidden;margin-bottom:0.9rem;}
.cc-progress-fill{height:100%;background:linear-gradient(90deg,var(--green-light),var(--gold));border-radius:10px;transition:width 1s ease;}
.cc-stats{display:flex;justify-content:space-between;align-items:flex-end;}
.cc-raised{font-size:0.82rem;color:rgba(255,255,255,0.5);}
.cc-raised strong{display:block;font-family:'Fraunces',serif;font-size:1.15rem;font-weight:700;color:var(--gold-light);}
.cc-pct{font-family:'Fraunces',serif;font-size:1.1rem;font-weight:700;color:var(--green-light);}
.cc-donors{font-size:0.75rem;color:rgba(255,255,255,0.35);margin-top:0.5rem;}

/* EMPTY / LOADING */
.empty-state{grid-column:1/-1;text-align:center;padding:4rem 2rem;}
.empty-state .empty-icon{font-size:4rem;margin-bottom:1.2rem;}
.empty-state h3{font-family:'Fraunces',serif;font-size:1.8rem;font-weight:900;color:var(--white);margin-bottom:0.8rem;}
.empty-state p{color:rgba(255,255,255,0.5);font-size:1rem;line-height:1.65;max-width:400px;margin:0 auto 2rem;}
.loading-state{grid-column:1/-1;display:flex;justify-content:center;align-items:center;padding:4rem;}
.spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,0.1);border-top-color:var(--green-light);border-radius:50%;animation:spin 0.8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}

/* CAMPAIGN DETAIL PAGE */
.detail-page{position:fixed;inset:0;z-index:300;background:var(--cream);overflow-y:auto;-webkit-overflow-scrolling:touch;visibility:hidden;transform:translateX(100%);transition:transform .4s cubic-bezier(0.4,0,0.2,1),visibility 0s linear .4s;}
.detail-page.open{visibility:visible;transform:translateX(0);transition:transform .4s cubic-bezier(0.4,0,0.2,1),visibility 0s;}
.detail-nav{position:sticky;top:0;background:rgba(250,246,238,0.97);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--border);padding:1rem 2rem;padding-top:max(1rem,calc(env(safe-area-inset-top) + 0.5rem));display:flex;align-items:center;gap:1rem;z-index:10;}
.detail-back{background:none;border:none;cursor:pointer;font-size:1.2rem;color:var(--muted);transition:color .2s;display:flex;align-items:center;gap:0.4rem;font-family:'DM Sans',sans-serif;font-size:0.9rem;}
.detail-back:hover{color:var(--green);}
.detail-hero-img{width:100%;height:420px;object-fit:cover;background:linear-gradient(135deg,var(--green),var(--gold));display:flex;align-items:center;justify-content:center;font-size:6rem;overflow:hidden;position:relative;}
.detail-hero-img img{width:100%;height:100%;object-fit:cover;}
.detail-body{max-width:900px;margin:0 auto;padding:3rem 2rem;display:grid;grid-template-columns:1fr 340px;gap:3rem;align-items:start;}
.detail-main{}
.detail-category-badge{display:inline-block;background:rgba(0,132,61,0.1);color:var(--green);border-radius:100px;padding:0.35rem 1rem;font-size:0.78rem;font-weight:500;text-transform:uppercase;letter-spacing:0.08em;margin-bottom:1rem;}
.detail-title{font-family:'Fraunces',serif;font-size:2.2rem;font-weight:900;line-height:1.15;letter-spacing:-0.03em;color:var(--dark);margin-bottom:0.8rem;}
.detail-meta{display:flex;gap:1.5rem;color:var(--muted);font-size:0.85rem;margin-bottom:2rem;flex-wrap:wrap;}
.detail-story{font-size:1rem;line-height:1.8;color:var(--text);}
.detail-donor-wall{margin-top:2.5rem;}
.detail-donor-wall h3{font-family:'Fraunces',serif;font-size:1.2rem;font-weight:700;color:var(--dark);margin-bottom:1rem;}
.donor-list{display:flex;flex-direction:column;gap:0.8rem;}
.donor-item{display:flex;align-items:center;gap:0.9rem;padding:0.8rem;background:var(--white);border-radius:12px;border:1px solid var(--border);}
.donor-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--green),var(--gold));display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;}
.donor-name{font-weight:500;font-size:0.88rem;color:var(--dark);}
.donor-amount{font-family:'Fraunces',serif;font-weight:700;font-size:0.9rem;color:var(--green);}
.donor-time{font-size:0.75rem;color:var(--muted);}
.donor-message{font-size:0.8rem;color:var(--muted);font-style:italic;margin-top:0.2rem;}
.donor-top-badge{display:inline-block;background:linear-gradient(135deg,rgba(200,168,75,0.25),rgba(251,146,60,0.15));color:#C8A84B;border-radius:6px;padding:1px 7px;font-size:0.68rem;font-weight:700;margin-left:0.4rem;}

/* FEATURED BADGE */
.cc-featured-badge{position:absolute;top:0.5rem;left:0.5rem;background:linear-gradient(135deg,#C8A84B,#F0C96A);color:#0D1A0F;font-size:0.68rem;font-weight:800;padding:0.25rem 0.65rem;border-radius:100px;z-index:3;letter-spacing:0.04em;box-shadow:0 2px 8px rgba(200,168,75,0.4);}

/* DONOR TIP */
.tip-row{display:flex;align-items:flex-start;gap:0.65rem;background:rgba(0,132,61,0.05);border:1.5px solid rgba(0,132,61,0.15);border-radius:12px;padding:0.8rem 1rem;margin-bottom:1rem;cursor:pointer;transition:border-color .2s;}
.tip-row:hover{border-color:rgba(0,132,61,0.35);}
.tip-check{width:18px;height:18px;accent-color:var(--green);cursor:pointer;flex-shrink:0;margin-top:2px;}
.tip-label{font-size:0.88rem;color:var(--dark);line-height:1.45;user-select:none;}
.tip-opts{display:flex;gap:0.4rem;margin-top:0.5rem;}
.tip-opt{flex:1;padding:0.4rem 0;border:1.5px solid var(--border);border-radius:8px;background:var(--cream);cursor:pointer;font-family:inherit;font-size:0.82rem;font-weight:500;color:var(--mid);transition:all .2s;}
.tip-opt:hover{border-color:var(--green);color:var(--green);}
.tip-opt-sel{border-color:var(--green);background:rgba(0,132,61,0.08);color:var(--green);font-weight:700;}
.dash-referral-box{background:var(--cream);border:1px solid var(--border);border-radius:12px;padding:1rem 1.2rem;margin-bottom:1rem;}
.dash-analytics-row{display:grid;grid-template-columns:repeat(3,1fr);gap:0.6rem;margin-bottom:1rem;}
.dash-analytics-stat{background:var(--cream);border:1px solid var(--border);border-radius:10px;padding:0.65rem 0.5rem;text-align:center;}
.dash-analytics-num{font-family:'Fraunces',serif;font-size:1.1rem;font-weight:900;color:var(--dark);}
.dash-analytics-lbl{font-size:0.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:0.05em;margin-top:2px;}
.dash-boost-btn{background:linear-gradient(135deg,#C8A84B,#F0C96A);color:#0D1A0F;border:none;border-radius:10px;padding:0.5rem 0.9rem;cursor:pointer;font-size:0.82rem;font-weight:700;font-family:inherit;display:flex;align-items:center;gap:0.4rem;}
.cc-org-badge{display:inline-block;background:rgba(0,132,61,0.08);border:1px solid rgba(0,132,61,0.2);color:#00843D;border-radius:6px;font-size:0.7rem;font-weight:600;padding:2px 8px;margin-bottom:4px;text-decoration:none;cursor:pointer;}
.cc-org-badge:hover{background:rgba(0,132,61,0.15);}

/* WITHDRAWAL STATUS */
.wr-status-paid{background:rgba(0,132,61,0.2);color:#4ade80;border-radius:6px;padding:2px 10px;font-size:0.78rem;font-weight:600;}
.wr-status-pending{background:rgba(200,168,75,0.2);color:#F0C96A;border-radius:6px;padding:2px 10px;font-size:0.78rem;font-weight:600;}

/* WHATSAPP CARD BUTTON */
.wa-card-btn{display:block;width:100%;background:rgba(37,211,102,0.1);color:#25D366;border:1.5px solid rgba(37,211,102,0.3);border-radius:100px;padding:0.55rem 1rem;font-size:0.82rem;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all .2s;text-align:center;margin-top:0.6rem;}
.wa-card-btn:hover{background:rgba(37,211,102,0.2);}

/* DETAIL SIDEBAR */
.detail-sidebar{position:sticky;top:80px;}
.donate-card{background:var(--white);border-radius:20px;padding:2rem;border:1px solid var(--border);box-shadow:0 20px 50px rgba(0,0,0,0.08);}
.donate-card-raised{font-family:'Fraunces',serif;font-size:2rem;font-weight:900;color:var(--dark);}
.donate-card-goal{font-size:0.85rem;color:var(--muted);margin-bottom:1rem;}
.donate-progress{height:8px;background:#E8F5EE;border-radius:10px;overflow:hidden;margin-bottom:1rem;}
.donate-progress-fill{height:100%;background:linear-gradient(90deg,var(--green),var(--gold));border-radius:10px;}
.donate-card-stats{display:flex;gap:1.5rem;margin-bottom:1.5rem;}
.dcs-item{font-size:0.82rem;color:var(--muted);}
.dcs-item strong{display:block;font-family:'Fraunces',serif;font-size:1.1rem;font-weight:700;color:var(--dark);}
.donate-card-deadline{background:rgba(200,168,75,0.1);border:1px solid rgba(200,168,75,0.3);border-radius:10px;padding:0.8rem 1rem;font-size:0.82rem;color:var(--mid);margin-bottom:1.5rem;display:flex;align-items:center;gap:0.5rem;}
.donate-card .btn-primary{width:100%;text-align:center;margin-bottom:0.8rem;}
.detail-share{margin-top:1.5rem;}
.detail-share p{font-size:0.82rem;color:var(--muted);margin-bottom:0.6rem;}
.share-row{display:flex;gap:0.5rem;}
.share-btn{flex:1;padding:0.6rem;border-radius:8px;border:none;cursor:pointer;font-size:0.8rem;font-family:'DM Sans',sans-serif;font-weight:500;transition:all .2s;text-align:center;}
.share-whatsapp{background:#25D366;color:#fff;}
.share-twitter{background:#1DA1F2;color:#fff;}
.share-copy{background:#E2EBE2;color:var(--text);}

/* TRUST */
.features-section{padding:5rem 3.5rem;background:#F5F5F0;}
.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:3rem;}
.feat-card{background:var(--white);border:1px solid var(--border);border-radius:20px;padding:2rem 1.8rem;transition:box-shadow .2s,transform .2s;position:relative;overflow:hidden;}
.feat-card:hover{box-shadow:0 12px 40px rgba(0,132,61,0.1);transform:translateY(-3px);}
.feat-card.featured{background:var(--dark);border-color:var(--dark);grid-column:span 1;}
.feat-card.wide{grid-column:span 2;}
.feat-icon-wrap{width:52px;height:52px;border-radius:14px;background:rgba(0,132,61,0.08);display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin-bottom:1.2rem;}
.feat-card.featured .feat-icon-wrap{background:rgba(255,255,255,0.1);}
.feat-card-title{font-family:'Fraunces',serif;font-size:1.08rem;font-weight:700;color:var(--dark);margin-bottom:0.5rem;}
.feat-card.featured .feat-card-title{color:#fff;}
.feat-card-desc{font-size:0.87rem;color:var(--muted);line-height:1.65;}
.feat-card.featured .feat-card-desc{color:rgba(255,255,255,0.6);}
.feat-card-badge{display:inline-block;background:rgba(0,132,61,0.1);color:var(--green);border-radius:100px;padding:3px 12px;font-size:0.72rem;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;margin-top:1rem;}
.feat-card.featured .feat-card-badge{background:rgba(240,201,106,0.2);color:var(--gold-light);}
@media(max-width:768px){.features-grid{grid-template-columns:1fr;}.feat-card.wide{grid-column:span 1;}}
.trust-section{padding:4.5rem 3.5rem;display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:center;}
.trust-features{display:flex;flex-direction:column;gap:2rem;margin-top:3rem;}
.trust-feature{display:flex;gap:1.2rem;align-items:flex-start;}
.tf-icon{width:48px;height:48px;border-radius:12px;background:rgba(0,132,61,0.1);display:flex;align-items:center;justify-content:center;font-size:1.4rem;flex-shrink:0;}
.tf-title{font-family:'Fraunces',serif;font-size:1.05rem;font-weight:700;color:var(--dark);margin-bottom:0.3rem;}
.tf-text{font-size:0.88rem;color:var(--muted);line-height:1.65;}
.trust-visual{position:relative;}
.testimonial-card{background:var(--white);border-radius:24px;padding:2.5rem;box-shadow:0 30px 80px rgba(0,0,0,0.1);border:1px solid var(--border);position:relative;}
.testimonial-card::before{content:'"';font-family:'Fraunces',serif;font-size:8rem;font-weight:900;color:rgba(0,132,61,0.08);position:absolute;top:-1rem;left:1.5rem;line-height:1;}
.tc-text{font-size:1.05rem;line-height:1.75;color:var(--text);font-style:italic;position:relative;}
.tc-author{margin-top:1.5rem;display:flex;align-items:center;gap:1rem;}
.tc-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--green),var(--gold));display:flex;align-items:center;justify-content:center;font-size:1.3rem;}
.tc-name{font-weight:600;color:var(--dark);font-size:0.92rem;}
.tc-role{font-size:0.78rem;color:var(--muted);}
.mini-stat-badge{position:absolute;bottom:-1.5rem;right:-1.5rem;background:var(--green);color:#fff;border-radius:16px;padding:1rem 1.5rem;box-shadow:0 12px 30px rgba(0,132,61,0.35);}
.msb-num{font-family:'Fraunces',serif;font-size:1.8rem;font-weight:900;}
.msb-label{font-size:0.72rem;opacity:0.85;margin-top:0.1rem;}

/* START SECTION */
.start-section{background:var(--green);padding:5rem 4rem;text-align:center;position:relative;overflow:hidden;}
.start-section::before{content:'';position:absolute;top:-50%;left:-20%;width:600px;height:600px;border-radius:50%;background:rgba(255,255,255,0.06);pointer-events:none;}
.start-section::after{content:'';position:absolute;bottom:-30%;right:-10%;width:400px;height:400px;border-radius:50%;background:rgba(200,168,75,0.15);pointer-events:none;}
.start-section h2{font-family:'Fraunces',serif;font-size:clamp(2rem,4vw,3.5rem);font-weight:900;color:#fff;line-height:1.1;letter-spacing:-0.03em;margin-bottom:1.2rem;position:relative;}
.start-section h2 em{color:var(--gold-light);}
.start-section p{color:rgba(255,255,255,0.7);font-size:1.05rem;max-width:500px;margin:0 auto 2.5rem;position:relative;}

/* MODALS */
.modal-overlay{position:fixed;inset:0;z-index:400;background:rgba(13,26,15,0.75);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s;padding:2rem;}
.modal-overlay.active{opacity:1;pointer-events:all;}
.modal{background:var(--white);border-radius:24px;width:100%;max-width:540px;padding:2rem;padding-bottom:max(2rem,env(safe-area-inset-bottom));transform:translateY(30px);transition:transform .3s;max-height:90dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.modal-box{background:var(--white);border-radius:24px;width:100%;max-width:540px;padding:2rem;padding-bottom:max(2rem,env(safe-area-inset-bottom));position:relative;max-height:90dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.modal-box > .modal-close:first-child{position:absolute;top:1rem;right:1rem;}
.modal-overlay.active .modal{transform:translateY(0);}
.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem;}
.modal-title{font-family:'Fraunces',serif;font-size:1.6rem;font-weight:900;color:var(--dark);}
.modal-close{width:36px;height:36px;border-radius:50%;background:#F0F0F0;border:none;cursor:pointer;font-size:1.2rem;display:flex;align-items:center;justify-content:center;transition:background .2s;}
.modal-close:hover{background:#E0E0E0;}
.form-group{margin-bottom:1.4rem;}
.form-label{font-size:0.85rem;font-weight:500;color:var(--text);margin-bottom:0.5rem;display:block;}
.form-input,.form-select,.form-textarea{width:100%;background:#F7F9F7;border:1.5px solid #E2EBE2;border-radius:12px;padding:0.85rem 1rem;font-family:'DM Sans',sans-serif;font-size:0.95rem;color:var(--text);transition:border-color .2s;outline:none;}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--green);}
.form-textarea{resize:vertical;min-height:100px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.form-hint{font-size:0.75rem;color:var(--muted);margin-top:0.4rem;}
.modal-submit{width:100%;background:var(--green);color:#fff;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:1rem;font-weight:500;padding:1rem;border-radius:12px;margin-top:0.5rem;transition:background .2s;display:flex;align-items:center;justify-content:center;gap:0.5rem;}
.modal-submit:hover{background:var(--green-light);}
.modal-submit:disabled{background:var(--muted);cursor:not-allowed;}
.amount-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0.75rem;margin-bottom:1rem;}
.amount-btn{padding:0.75rem;border-radius:10px;border:1.5px solid #E2EBE2;background:#F7F9F7;cursor:pointer;font-family:'Fraunces',serif;font-size:1rem;font-weight:700;color:var(--mid);transition:all .2s;}
.amount-btn:hover,.amount-btn.selected{border-color:var(--green);background:rgba(0,132,61,0.07);color:var(--green);}

/* PHOTO UPLOAD */
.photo-upload-area{border:2px dashed #E2EBE2;border-radius:12px;padding:2rem;text-align:center;cursor:pointer;transition:all .2s;position:relative;}
.photo-upload-area:hover,.photo-upload-area.dragover{border-color:var(--green);background:rgba(0,132,61,0.04);}
.photo-upload-area input{position:absolute;inset:0;opacity:0;cursor:pointer;}
.photo-upload-preview{width:100%;height:160px;object-fit:cover;border-radius:8px;margin-top:1rem;display:none;}
.photo-upload-icon{font-size:2rem;margin-bottom:0.5rem;}
.photo-upload-text{font-size:0.88rem;color:var(--muted);}
.id-upload-box{border:2px dashed var(--border);border-radius:12px;padding:1.5rem;text-align:center;cursor:pointer;transition:all .2s;position:relative;background:rgba(0,132,61,0.02);}
.id-upload-box:hover{border-color:var(--green);background:rgba(0,132,61,0.05);}
.id-upload-box input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;}
.id-upload-box.done{border-color:var(--green);background:rgba(0,132,61,0.08);}
.id-upload-icon{font-size:2rem;margin-bottom:0.4rem;}
.id-upload-label{font-size:0.82rem;font-weight:600;color:var(--dark);margin-bottom:0.2rem;}
.id-upload-hint{font-size:0.72rem;color:var(--muted);}
.id-preview-img{width:100%;max-height:140px;object-fit:cover;border-radius:8px;margin-top:0.7rem;display:none;}
.id-verify-banner{background:linear-gradient(135deg,rgba(0,132,61,0.1),rgba(200,168,75,0.1));border:1.5px solid rgba(0,132,61,0.25);border-radius:14px;padding:1rem 1.2rem;margin-bottom:1.2rem;display:flex;align-items:flex-start;gap:0.8rem;}
.id-verify-banner-icon{font-size:1.8rem;flex-shrink:0;}
.id-verify-banner-text h4{font-size:0.88rem;font-weight:700;color:var(--dark);margin:0 0 0.25rem;}
.id-verify-banner-text p{font-size:0.75rem;color:var(--muted);margin:0;line-height:1.5;}

/* TERMS / PRIVACY */
.legal-page{position:fixed;inset:0;z-index:500;background:var(--cream);overflow-y:auto;visibility:hidden;transform:translateX(100%);transition:transform .4s cubic-bezier(0.4,0,0.2,1),visibility 0s linear .4s;}
.legal-page.open{visibility:visible;transform:translateX(0);transition:transform .4s cubic-bezier(0.4,0,0.2,1),visibility 0s;}
.legal-content{max-width:760px;margin:0 auto;padding:5rem 1.5rem 6rem;}
.legal-content h1{font-family:'Fraunces',serif;font-size:2.5rem;font-weight:900;color:var(--dark);margin-bottom:0.5rem;}
.legal-content .updated{font-size:0.85rem;color:var(--muted);margin-bottom:2.5rem;}
.legal-content h2{font-family:'Fraunces',serif;font-size:1.2rem;font-weight:700;color:var(--dark);margin:2rem 0 0.8rem;}
.legal-content p,.legal-content li{font-size:0.95rem;color:var(--text);line-height:1.8;margin-bottom:0.8rem;}
.legal-content ul{padding-left:1.5rem;}
.legal-nav{position:fixed;top:0;left:0;right:0;background:rgba(250,246,238,0.97);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--border);padding:1rem 2rem;padding-top:max(1rem,calc(env(safe-area-inset-top) + 0.5rem));display:flex;align-items:center;gap:1rem;z-index:10;}

/* ADMIN PANEL */
.admin-overlay{position:fixed;inset:0;z-index:600;background:var(--dark);display:flex;flex-direction:column;opacity:0;pointer-events:none;transition:opacity .3s;}
.admin-overlay.active{opacity:1;pointer-events:all;}
.admin-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;padding-top:max(3.5rem,calc(env(safe-area-inset-top) + 1rem));border-bottom:1px solid rgba(255,255,255,0.1);flex-shrink:0;}
.admin-title{font-family:'Fraunces',serif;font-size:1.5rem;font-weight:900;color:var(--white);}
.admin-close{background:rgba(255,255,255,0.1);border:none;color:#fff;cursor:pointer;padding:0.35rem 0.9rem;border-radius:8px;font-family:'DM Sans',sans-serif;font-size:0.8rem;font-weight:500;transition:background .2s;}
.admin-close:hover{background:rgba(255,255,255,0.2);}
.admin-body{padding:2rem 3rem;flex:1;overflow-y:scroll;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;min-height:0;}
.admin-tabs{display:flex;gap:1rem;margin-bottom:2rem;}
.admin-tab{padding:0.6rem 1.4rem;border-radius:100px;border:1.5px solid rgba(255,255,255,0.15);background:transparent;color:rgba(255,255,255,0.5);cursor:pointer;font-family:'DM Sans',sans-serif;font-size:0.9rem;transition:all .2s;}
.admin-tab.active{background:var(--green);border-color:var(--green);color:#fff;}
.admin-tab-content{display:none;}
.admin-tab-content.active{display:block;}
.admin-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;margin-bottom:2.5rem;}
.admin-stat{background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.1);border-radius:16px;padding:1.5rem;}
.admin-stat-num{font-family:'Fraunces',serif;font-size:2rem;font-weight:900;color:var(--gold-light);}
.admin-stat-label{font-size:0.8rem;color:rgba(255,255,255,0.4);margin-top:0.3rem;}
.admin-table{width:100%;border-collapse:collapse;}
.admin-table th{text-align:left;padding:0.8rem 1rem;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.08em;color:rgba(255,255,255,0.35);border-bottom:1px solid rgba(255,255,255,0.08);}
.admin-table td{padding:1rem;font-size:0.88rem;color:rgba(255,255,255,0.7);border-bottom:1px solid rgba(255,255,255,0.06);vertical-align:middle;}
.admin-table tr:hover td{background:rgba(255,255,255,0.03);}
.status-badge{padding:0.3rem 0.8rem;border-radius:100px;font-size:0.75rem;font-weight:500;}
.status-pending{background:rgba(200,168,75,0.2);color:var(--gold-light);}
.status-approved{background:rgba(0,168,79,0.2);color:#4ade80;}
.status-rejected{background:rgba(220,38,38,0.2);color:#f87171;}
.admin-action-btn{padding:0.35rem 0.9rem;border-radius:8px;border:none;cursor:pointer;font-size:0.8rem;font-family:'DM Sans',sans-serif;font-weight:500;transition:all .2s;margin-right:0.4rem;}
.btn-approve{background:rgba(0,168,79,0.2);color:#4ade80;}
.btn-approve:hover{background:rgba(0,168,79,0.35);}
.btn-reject{background:rgba(220,38,38,0.15);color:#f87171;}
.btn-reject:hover{background:rgba(220,38,38,0.3);}
.admin-empty{text-align:center;padding:3rem;color:rgba(255,255,255,0.3);font-size:0.95rem;}
.admin-pw-modal{position:fixed;inset:0;z-index:700;background:rgba(0,0,0,0.8);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s;}
.admin-pw-modal.active{opacity:1;pointer-events:all;}
.admin-pw-box{background:var(--dark2);border-radius:20px;padding:2.5rem;border:1px solid rgba(255,255,255,0.1);width:calc(100% - 2rem);max-width:380px;text-align:center;margin:0 1rem;}
.admin-pw-box h3{font-family:'Fraunces',serif;font-size:1.4rem;font-weight:900;color:#fff;margin-bottom:0.5rem;}
.admin-pw-box p{color:rgba(255,255,255,0.4);font-size:0.88rem;margin-bottom:1.5rem;}
.admin-pw-input{width:100%;background:rgba(255,255,255,0.07);border:1.5px solid rgba(255,255,255,0.15);border-radius:12px;padding:0.85rem 1rem;font-family:'DM Sans',sans-serif;font-size:1rem;color:#fff;outline:none;text-align:center;letter-spacing:0.1em;margin-bottom:1rem;}
.admin-pw-input:focus{border-color:var(--green);}
.admin-pw-btn{width:100%;background:var(--green);color:#fff;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:1rem;font-weight:500;padding:0.9rem;border-radius:12px;transition:background .2s;}
.admin-pw-btn:hover{background:var(--green-light);}
.admin-pw-error{color:#f87171;font-size:0.82rem;margin-top:0.5rem;display:none;}

/* FOOTER */
footer{background:var(--dark);padding:4rem 4rem 2rem;color:rgba(255,255,255,0.5);padding-bottom:calc(2rem + env(safe-area-inset-bottom));}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;margin-bottom:3rem;}
.footer-brand .logo{color:var(--cream);margin-bottom:0.8rem;display:block;}
.footer-brand p{font-size:0.86rem;line-height:1.65;max-width:260px;}
.footer-col h4{font-family:'Fraunces',serif;font-size:0.95rem;font-weight:700;color:rgba(255,255,255,0.85);margin-bottom:1.2rem;}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:0.7rem;}
.footer-col a{text-decoration:none;color:rgba(255,255,255,0.45);font-size:0.85rem;transition:color .2s;cursor:pointer;}
.footer-col a:hover{color:var(--gold-light);}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.08);padding-top:2rem;display:flex;justify-content:space-between;align-items:center;font-size:0.8rem;}
.paystack-badge{background:rgba(255,255,255,0.06);border-radius:8px;padding:0.4rem 0.9rem;font-size:0.78rem;color:rgba(255,255,255,0.5);display:flex;align-items:center;gap:0.4rem;}
.footer-tap-zone{cursor:default;user-select:none;}

/* TOAST */
.toast{position:fixed;bottom:2rem;left:50%;transform:translateX(-50%) translateY(100px);background:var(--dark);color:#fff;padding:0.9rem 1.8rem;border-radius:100px;font-size:0.9rem;z-index:9000;transition:transform .3s;box-shadow:0 8px 30px rgba(0,0,0,0.3);white-space:nowrap;}
.toast.show{transform:translateX(-50%) translateY(0);}

/* ANIMATIONS */
@keyframes fadeUp{from{opacity:0;transform:translateY(24px);}to{opacity:1;transform:translateY(0);}}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
.fade-up{opacity:0;transform:translateY(30px);transition:opacity .7s ease,transform .7s ease;}
.fade-up.visible{opacity:1;transform:none;}

/* RESPONSIVE */
@media(max-width:900px){
  .nav-links,.nav-search{display:none;}
  .hero{padding:5rem 1.5rem 4rem;}
  .hero-stats{gap:1.5rem;flex-wrap:wrap;justify-content:center;}
  .section{padding:4rem 1.5rem;}
  .how-grid{grid-template-columns:1fr;}
  .campaigns-section{padding:4rem 1.5rem;}
  .campaigns-grid{grid-template-columns:1fr;}
  .trust-section{grid-template-columns:1fr;padding:4rem 1.5rem;gap:3rem;}
  .footer-grid{grid-template-columns:1fr;}
  footer{padding:3rem 1.5rem 2rem;}
  .start-section{padding:4rem 1.5rem;}
  .admin-body{padding:1.5rem;overflow-y:scroll;-webkit-overflow-scrolling:touch;}
  .admin-stats-grid{grid-template-columns:repeat(2,1fr);}
  .admin-header{padding:max(3rem,calc(env(safe-area-inset-top) + 0.8rem)) 1.5rem 0.8rem;}
  .detail-body{grid-template-columns:1fr;}
  .detail-sidebar{position:relative;top:0;}
}




/* ═══ FINAL MOBILE OVERRIDES — DO NOT ADD AFTER THIS ═══ */
@media(max-width:900px){
  /* In browser: no extra top padding, browser bar handles it */
  nav{
    padding: 0.75rem 1rem !important;
    min-height: auto !important;
  }
  /* Hide top-nav CTA on mobile — bottom nav FAB handles it */
  .nav-cta{ display: none !important; }
  /* Keep sign-in/avatar compact */
  .nav-auth-btn{ padding: 0.35rem 0.85rem !important; font-size: 0.8rem !important; }
  /* Hero label pill — smaller on mobile */
  .hero-label{ font-size: 0.7rem !important; padding: 0.35rem 0.85rem !important; margin-bottom: 1.2rem !important; }
  .toast{ bottom: 2rem !important; }
  .nudge-banner{ bottom: 5rem !important; }
  .pwa-banner{
    top: max(70px, calc(env(safe-area-inset-top) + 60px)) !important;
  }
  /* Hero label pill — smaller on mobile */
  .hero-label{ font-size: 0.7rem !important; padding: 0.35rem 0.85rem !important; margin-bottom: 1.2rem !important; }
}

/* In PWA (installed app): add safe area padding since there's no browser bar */
@media(display-mode: standalone){
  nav{
    padding-top: max(44px, env(safe-area-inset-top)) !important;
    min-height: calc(env(safe-area-inset-top) + 54px) !important;
  }
  .hero{
    padding-top: calc(env(safe-area-inset-top) + 5.5rem) !important;
  }
  /* Never show install banner inside the installed app */
  .pwa-banner{ display: none !important; }
}

/* POST GENERATOR */
.post-gen-wrap{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;}
@media(max-width:700px){.post-gen-wrap{grid-template-columns:1fr;}}
.post-filter-bar{display:flex;gap:0.6rem;flex-wrap:wrap;margin-bottom:1.5rem;}
.post-filter-btn{padding:0.45rem 1rem;border-radius:100px;border:1.5px solid rgba(255,255,255,0.15);background:transparent;color:rgba(255,255,255,0.5);cursor:pointer;font-family:'DM Sans',sans-serif;font-size:0.8rem;transition:all .2s;}
.post-filter-btn.active{background:var(--green);border-color:var(--green);color:#fff;}
.post-card-pg{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:16px;padding:1.2rem;transition:border-color .2s;}
.post-card-pg:hover{border-color:rgba(255,255,255,0.18);}
.post-platform-tag{display:inline-flex;align-items:center;gap:0.4rem;padding:0.25rem 0.7rem;border-radius:100px;font-size:0.68rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;margin-bottom:0.8rem;}
.tag-twitter{background:rgba(29,161,242,0.15);color:#1DA1F2;}
.tag-instagram{background:rgba(225,48,108,0.15);color:#E1306C;}
.tag-whatsapp{background:rgba(37,211,102,0.15);color:#25D366;}
.btn-wa{background:rgba(37,211,102,0.2);color:#25D366;}
.btn-wa:hover{background:rgba(37,211,102,0.35);}
.tag-both{background:rgba(200,168,75,0.15);color:var(--gold-light);}
.campaign-gen-section{background:rgba(0,132,61,0.08);border:1.5px solid rgba(0,132,61,0.25);border-radius:16px;padding:1.2rem;margin-bottom:1.5rem;}
.campaign-gen-section h3{font-size:0.85rem;font-weight:700;color:var(--green);margin:0 0 1rem;text-transform:uppercase;letter-spacing:0.06em;}
.campaign-gen-select{width:100%;background:rgba(255,255,255,0.06);border:1.5px solid rgba(255,255,255,0.15);border-radius:10px;padding:0.65rem 1rem;font-family:'DM Sans',sans-serif;font-size:0.85rem;color:#fff;outline:none;margin-bottom:0.8rem;}
.campaign-gen-select:focus{border-color:var(--green);}
.campaign-gen-select option{background:#1a2e1c;color:#fff;}
.posts-divider{border:none;border-top:1px solid rgba(255,255,255,0.08);margin:1.5rem 0;}
.post-day{font-size:0.68rem;color:rgba(255,255,255,0.3);margin-bottom:0.5rem;font-weight:500;text-transform:uppercase;letter-spacing:0.08em;}
.post-text-pg{font-size:0.85rem;line-height:1.75;color:rgba(255,255,255,0.75);white-space:pre-wrap;margin-bottom:1rem;min-height:80px;}
.post-char{font-size:0.7rem;color:rgba(255,255,255,0.25);margin-bottom:0.8rem;}
.post-char.over{color:#f87171;}
.post-actions-pg{display:flex;gap:0.5rem;flex-wrap:wrap;}
.post-copy-btn{padding:0.4rem 0.9rem;border-radius:8px;border:none;cursor:pointer;font-size:0.75rem;font-weight:600;font-family:'DM Sans',sans-serif;transition:all .2s;display:flex;align-items:center;gap:0.3rem;}
.btn-copy-text{background:rgba(255,255,255,0.1);color:rgba(255,255,255,0.7);}
.btn-copy-text:hover{background:rgba(255,255,255,0.18);}
.btn-tw{background:rgba(29,161,242,0.2);color:#1DA1F2;}
.btn-tw:hover{background:rgba(29,161,242,0.35);}
.btn-ig{background:rgba(225,48,108,0.2);color:#E1306C;}
.btn-ig:hover{background:rgba(225,48,108,0.35);}
.post-search{width:100%;background:rgba(255,255,255,0.06);border:1.5px solid rgba(255,255,255,0.12);border-radius:10px;padding:0.7rem 1rem;font-family:'DM Sans',sans-serif;font-size:0.85rem;color:#fff;outline:none;margin-bottom:1.2rem;}
.post-search:focus{border-color:var(--green);}
.post-search::placeholder{color:rgba(255,255,255,0.25);}
.pg-empty{text-align:center;padding:3rem;color:rgba(255,255,255,0.25);font-size:0.9rem;}

/* TRUST BADGES */
.trust-badges{display:flex;flex-direction:column;gap:0.4rem;margin-top:0.8rem;padding-top:0.8rem;border-top:1px solid var(--border);}
.trust-badge-item{display:flex;align-items:center;gap:0.5rem;font-size:0.73rem;color:var(--muted);}
.cc-days-urgent{background:rgba(220,38,38,0.75)!important;color:#fff!important;}
.cc-almost{position:absolute;bottom:0.6rem;left:0.6rem;background:rgba(200,168,75,0.92);color:#0D1A0F;font-size:0.65rem;font-weight:700;padding:0.25rem 0.65rem;border-radius:100px;z-index:2;}
.cc-amount-left{font-size:0.72rem;color:rgba(255,255,255,0.4);margin-top:0.25rem;}

/* WHATSAPP SHARE ON CARD */
.cc-share-row{display:flex;gap:0.5rem;margin-top:0.8rem;padding-top:0.8rem;border-top:1px solid rgba(255,255,255,0.08);}
.cc-share-btn{flex:1;padding:0.5rem;border-radius:8px;border:none;cursor:pointer;font-size:0.72rem;font-family:'DM Sans',sans-serif;font-weight:600;transition:all .2s;text-align:center;touch-action:manipulation;}
.cc-share-wa{background:#25D366;color:#fff;}
.cc-share-tw{background:rgba(29,161,242,0.2);color:#1DA1F2;}
.cc-share-copy{background:rgba(255,255,255,0.1);color:rgba(255,255,255,0.7);}

/* DONOR BADGES */
.donor-badge{display:inline-block;padding:0.2rem 0.6rem;border-radius:100px;font-size:0.65rem;font-weight:700;margin-left:0.4rem;vertical-align:middle;}
.badge-supporter{background:rgba(0,132,61,0.2);color:#4ade80;}
.badge-champion{background:rgba(200,168,75,0.25);color:#F0C96A;}
.badge-hero{background:rgba(251,146,60,0.25);color:#fb923c;}
.badge-legend{background:rgba(168,85,247,0.25);color:#c084fc;}
.badge-titan{background:linear-gradient(135deg,rgba(200,168,75,0.4),rgba(251,146,60,0.4));color:#F0C96A;border:1px solid rgba(200,168,75,0.5);}

/* DONOR BADGE on donor wall */
.donor-badge-pill{display:inline-flex;align-items:center;gap:0.3rem;padding:0.2rem 0.6rem;border-radius:100px;font-size:0.65rem;font-weight:700;margin-left:0.4rem;}

/* PROGRESS UPDATES */
.updates-section{margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--border);}
.updates-section h3{font-family:'Fraunces',serif;font-size:1.1rem;font-weight:700;color:var(--dark);margin-bottom:1rem;}
.update-item{display:flex;gap:0.8rem;padding:0.9rem;background:var(--white);border-radius:12px;border:1px solid var(--border);margin-bottom:0.7rem;}
.update-dot{width:10px;height:10px;border-radius:50%;background:var(--green);flex-shrink:0;margin-top:4px;}
.update-date{font-size:0.72rem;color:var(--muted);margin-bottom:0.2rem;}
.update-text{font-size:0.88rem;color:var(--text);line-height:1.6;}

/* RELATED CAMPAIGNS inline in detail */
.related-section{margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--border);}
.related-section h3{font-family:'Fraunces',serif;font-size:1.1rem;font-weight:700;color:var(--dark);margin-bottom:1rem;}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0.8rem;}
@media(max-width:700px){.related-grid{grid-template-columns:1fr;}}
.related-card{background:var(--white);border:1px solid var(--border);border-radius:12px;overflow:hidden;cursor:pointer;transition:transform .2s,box-shadow .2s;}
.related-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,0.08);}
.related-img{height:80px;display:flex;align-items:center;justify-content:center;font-size:1.8rem;position:relative;overflow:hidden;}
.related-img img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
.related-body{padding:0.7rem;}
.related-title{font-family:'Fraunces',serif;font-size:0.82rem;font-weight:700;color:var(--dark);margin-bottom:0.3rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.related-progress{height:3px;background:#E8F5EE;border-radius:10px;overflow:hidden;margin-bottom:0.3rem;}
.related-progress-fill{height:100%;background:linear-gradient(90deg,var(--green),var(--gold));border-radius:10px;}
.related-pct{font-size:0.7rem;color:var(--muted);}

/* AMOUNT BADGE TIERS */
.amount-tier-label{font-size:0.68rem;font-weight:700;padding:0.15rem 0.5rem;border-radius:100px;margin-top:0.3rem;display:inline-block;}
.tier-supporter{background:rgba(0,132,61,0.1);color:var(--green);}
.tier-champion{background:rgba(200,168,75,0.15);color:#C8A84B;}
.tier-hero{background:rgba(251,146,60,0.15);color:#ea8c2a;}
.tier-legend{background:rgba(168,85,247,0.15);color:#9333ea;}
.tier-titan{background:linear-gradient(135deg,rgba(200,168,75,0.2),rgba(251,146,60,0.2));color:#C8A84B;border:1px solid rgba(200,168,75,0.4);}
.amount-btn-wrap{display:flex;flex-direction:column;align-items:center;}
/* EXTEND CAMPAIGN */
.extend-btn{background:none;border:1px solid rgba(200,168,75,0.4);color:var(--gold);cursor:pointer;font-family:'DM Sans',sans-serif;font-size:0.82rem;padding:0.5rem 1rem;border-radius:8px;transition:all .2s;margin-top:0.8rem;width:100%;display:flex;align-items:center;justify-content:center;gap:0.4rem;}
.extend-btn:hover{background:rgba(200,168,75,0.1);border-color:var(--gold);}
.extend-days-row{display:flex;gap:0.6rem;flex-wrap:wrap;}
.extend-day-btn{flex:1;min-width:60px;padding:0.6rem;border-radius:10px;border:1.5px solid var(--border);background:transparent;color:var(--text);cursor:pointer;font-family:'DM Sans',sans-serif;font-size:0.88rem;font-weight:500;transition:all .2s;text-align:center;}
.extend-day-btn.selected{border-color:var(--green);background:rgba(0,132,61,0.08);color:var(--green);font-weight:600;}
.extend-submit{width:100%;background:var(--green);color:#fff;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:1rem;font-weight:500;padding:1rem;border-radius:12px;transition:background .2s;margin-top:0.5rem;}
.extend-submit:hover{background:var(--green-light);}
.extend-submit:disabled{background:var(--muted);cursor:not-allowed;}

/* ── VERIFICATION BADGES ── */
.verify-badge{display:inline-flex;align-items:center;gap:0.35rem;padding:0.28rem 0.7rem;border-radius:100px;font-size:0.68rem;font-weight:700;letter-spacing:0.03em;margin-bottom:0.5rem;}
.verify-identity{background:rgba(0,168,79,0.15);color:#4ade80;border:1px solid rgba(0,168,79,0.25);}
.verify-medical{background:rgba(239,68,68,0.12);color:#f87171;border:1px solid rgba(239,68,68,0.2);}
.verify-education{background:rgba(59,130,246,0.12);color:#60a5fa;border:1px solid rgba(59,130,246,0.2);}
.verify-unverified{background:rgba(245,158,11,0.12);color:#fbbf24;border:1px solid rgba(245,158,11,0.2);}
.verify-none{}

/* ── SOFT WARNING BANNER ── */
.unverified-warning{background:rgba(245,158,11,0.1);border:1px solid rgba(245,158,11,0.25);border-radius:10px;padding:0.7rem 1rem;font-size:0.8rem;color:#fbbf24;display:flex;align-items:center;gap:0.6rem;margin-bottom:1.2rem;line-height:1.5;}

/* ── TRANSPARENCY LAYER ── */
.transparency-box{background:var(--white);border:1px solid var(--border);border-radius:14px;padding:1.2rem;margin-top:1.5rem;}
.transparency-box h4{font-family:'Fraunces',serif;font-size:0.95rem;font-weight:700;color:var(--dark);margin-bottom:0.8rem;}
.transparency-row{display:flex;justify-content:space-between;align-items:center;padding:0.5rem 0;border-bottom:1px solid var(--border);font-size:0.82rem;}
.transparency-row:last-child{border-bottom:none;}
.transparency-label{color:var(--muted);}
.transparency-val{font-weight:600;color:var(--dark);}
.updates-list{display:flex;flex-direction:column;gap:0.6rem;margin-top:0.8rem;}
.update-entry{background:rgba(0,132,61,0.04);border-left:3px solid var(--green);border-radius:0 8px 8px 0;padding:0.6rem 0.8rem;}
.update-entry-date{font-size:0.7rem;color:var(--muted);margin-bottom:0.2rem;}
.update-entry-text{font-size:0.82rem;color:var(--text);line-height:1.5;}

/* ── STRUCTURED BUILDER ── */
.builder-step{display:none;}
.builder-step.active{display:block;}
.builder-progress{display:flex;gap:0.4rem;margin-bottom:1.5rem;}
.builder-dot{height:4px;flex:1;border-radius:2px;background:rgba(0,132,61,0.15);transition:background .3s;}
.builder-dot.done{background:var(--green);}
.builder-tip{background:rgba(0,132,61,0.06);border:1px solid rgba(0,132,61,0.12);border-radius:10px;padding:0.7rem 0.9rem;font-size:0.78rem;color:var(--muted);margin-top:0.6rem;display:flex;gap:0.5rem;align-items:flex-start;line-height:1.5;}
.builder-tip-icon{flex-shrink:0;font-size:0.9rem;}
.template-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.8rem;margin-bottom:1rem;}
.template-btn{background:var(--white);border:1.5px solid var(--border);border-radius:12px;padding:1rem;cursor:pointer;text-align:left;transition:all .2s;font-family:'DM Sans',sans-serif;}
.template-btn:hover{border-color:var(--green);background:rgba(0,132,61,0.04);}
.template-btn-icon{font-size:1.5rem;margin-bottom:0.4rem;display:block;}
.template-btn-name{font-weight:600;font-size:0.88rem;color:var(--dark);}
.template-btn-desc{font-size:0.72rem;color:var(--muted);margin-top:0.2rem;}
.builder-nav{display:flex;gap:0.8rem;margin-top:1.2rem;position:sticky;bottom:0;background:var(--white);padding:1rem 2rem max(1rem,env(safe-area-inset-bottom));margin-left:-2rem;margin-right:-2rem;box-shadow:0 -6px 24px rgba(0,0,0,0.07);z-index:1;}
.builder-back{flex:1;background:transparent;border:1.5px solid var(--border);color:var(--muted);border-radius:12px;padding:0.75rem;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:0.9rem;}
.builder-next{flex:2;background:var(--green);color:#fff;border:none;border-radius:12px;padding:0.75rem;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:0.9rem;font-weight:600;}
.photo-tip-bar{background:rgba(200,168,75,0.1);border:1px solid rgba(200,168,75,0.25);border-radius:8px;padding:0.6rem 0.8rem;font-size:0.75rem;color:#C8A84B;margin-top:0.5rem;display:flex;align-items:center;gap:0.4rem;}
.char-count{font-size:0.72rem;color:var(--muted);text-align:right;margin-top:0.3rem;}

/* ── PLAYBOOK MODAL ── */
.playbook-list{display:flex;flex-direction:column;gap:0.8rem;margin-bottom:1.5rem;}
.playbook-item{display:flex;gap:0.9rem;align-items:flex-start;background:rgba(0,132,61,0.04);border:1px solid rgba(0,132,61,0.1);border-radius:12px;padding:0.9rem;}
.playbook-num{width:28px;height:28px;border-radius:50%;background:var(--green);color:#fff;font-size:0.78rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.playbook-text strong{display:block;font-size:0.88rem;color:var(--dark);margin-bottom:0.2rem;}
.playbook-text span{font-size:0.78rem;color:var(--muted);line-height:1.5;}

/* ── DONOR SHARE PROMPT ── */
.donor-share-box{background:rgba(0,132,61,0.06);border:1px solid rgba(0,132,61,0.15);border-radius:14px;padding:1.2rem;margin-bottom:1.5rem;text-align:center;}
.donor-share-box p{font-size:0.88rem;color:var(--text);margin-bottom:0.8rem;line-height:1.5;}
.donor-share-row{display:flex;gap:0.5rem;justify-content:center;}

/* ── ADMIN VERIFY DROPDOWN ── */
.verify-select{padding:0.3rem 0.6rem;border-radius:8px;border:1px solid rgba(255,255,255,0.15);background:rgba(255,255,255,0.07);color:#fff;font-family:'DM Sans',sans-serif;font-size:0.75rem;cursor:pointer;}

/* ════════════════════════════════════════════
   UI UPGRADE — More polish, stronger hierarchy
════════════════════════════════════════════ */

/* NAV — cleaner, more defined */
nav {
  border-bottom: 1px solid rgba(0,132,61,0.12) !important;
  box-shadow: 0 2px 20px rgba(0,0,0,0.06);
}
.logo {
  font-size: 1.6rem !important;
  background: linear-gradient(135deg, #00843D, #00A84F);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.logo span {
  background: linear-gradient(135deg, #C8A84B, #F0C96A);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.nav-cta {
  background: linear-gradient(135deg, #00843D, #00A84F) !important;
  box-shadow: 0 4px 14px rgba(0,132,61,0.35) !important;
  font-weight: 600 !important;
}

/* HERO — more emotional, less generic */
.hero h1 {
  font-size: clamp(3.2rem, 7vw, 6rem) !important;
  letter-spacing: -0.04em !important;
}
.hero-sub {
  font-size: 1.05rem !important;
  color: #4A6A4C !important;
  max-width: 480px !important;
}
.hero-actions {
  gap: 0.8rem !important;
}
.btn-primary {
  background: linear-gradient(135deg, #00B348, #007A35) !important;
  box-shadow: 0 6px 20px rgba(0,132,61,0.35) !important;
  font-weight: 600 !important;
  letter-spacing: 0.01em !important;
  padding: 1rem 2.4rem !important;
}
.btn-primary:hover {
  background: linear-gradient(135deg, #00C855, #00943F) !important;
  box-shadow: 0 12px 35px rgba(0,132,61,0.45) !important;
  transform: translateY(-2px) !important;
}
.btn-outline {
  border-width: 2px !important;
  font-weight: 600 !important;
  padding: 1rem 2.4rem !important;
}
.stat-num {
  font-size: 2.2rem !important;
  background: linear-gradient(135deg, #0D1A0F, #2E4A30);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* HOW IT WORKS — more visual weight */
.how-card {
  border: 1px solid rgba(0,132,61,0.1) !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.04) !important;
  transition: transform .25s, box-shadow .25s, border-color .25s !important;
}
.how-card:hover {
  border-color: rgba(0,132,61,0.25) !important;
  box-shadow: 0 12px 40px rgba(0,0,0,0.08) !important;
  transform: translateY(-6px) !important;
}
.how-num {
  background: linear-gradient(135deg, rgba(0,132,61,0.12), rgba(0,132,61,0.06));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-size: 4rem !important;
}
.how-icon {
  font-size: 2.2rem !important;
}
.how-card h3 {
  font-size: 1.2rem !important;
}

/* CAMPAIGN CARDS — sharper, more premium */
.campaign-card {
  border-radius: 20px !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.15) !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  transition: transform .25s, box-shadow .25s, border-color .25s !important;
}
.campaign-card:hover {
  transform: translateY(-10px) !important;
  box-shadow: 0 40px 80px rgba(0,0,0,0.3), 0 0 0 1.5px rgba(200,168,75,0.4) !important;
  border-color: rgba(200,168,75,0.4) !important;
}
.cc-img {
  height: 220px !important;
}
.cc-title {
  font-size: 1.08rem !important;
  line-height: 1.35 !important;
  margin-bottom: 0.7rem !important;
}
.cc-raised strong {
  font-size: 1.2rem !important;
}
.cc-progress-bar {
  height: 6px !important;
  border-radius: 10px !important;
  margin-bottom: 1rem !important;
}
.cc-progress-fill {
  background: linear-gradient(90deg, #00843D, #00C85A, #C8A84B) !important;
}
.cc-badge {
  background: rgba(0,0,0,0.6) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  font-size: 0.68rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em !important;
}
.cc-body {
  padding: 1.4rem !important;
}
.cc-share-btn {
  border-radius: 8px !important;
  font-weight: 600 !important;
  font-size: 0.75rem !important;
}

/* TRUST SECTION */
.trust-section {
  background: linear-gradient(135deg, #F8F4EC 0%, #FAF6EE 100%) !important;
}
.trust-feature {
  padding: 1.2rem !important;
  border-radius: 16px !important;
  border: 1px solid rgba(0,132,61,0.08) !important;
  background: rgba(255,255,255,0.7) !important;
  backdrop-filter: blur(10px) !important;
  transition: border-color .2s, box-shadow .2s !important;
}
.trust-feature:hover {
  border-color: rgba(0,132,61,0.2) !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.06) !important;
}
.tf-icon {
  font-size: 1.8rem !important;
  width: 52px !important;
  height: 52px !important;
  background: linear-gradient(135deg, rgba(0,132,61,0.1), rgba(0,132,61,0.05)) !important;
  border-radius: 14px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
  border: 1px solid rgba(0,132,61,0.12) !important;
}
.tf-title {
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  margin-bottom: 0.3rem !important;
  color: #0D1A0F !important;
}
.tf-text {
  font-size: 0.82rem !important;
  line-height: 1.65 !important;
}

/* START SECTION */
.start-section {
  background: linear-gradient(135deg, #00843D 0%, #005228 60%, #003D1A 100%) !important;
}

/* MODALS — more refined */
.modal {
  border-radius: 24px !important;
  box-shadow: 0 24px 80px rgba(0,0,0,0.25) !important;
}
.modal-header {
  border-bottom: 1px solid rgba(0,132,61,0.1) !important;
  padding-bottom: 1.2rem !important;
  margin-bottom: 1.2rem !important;
}
.modal-title {
  font-size: 1.25rem !important;
  font-weight: 800 !important;
}
.modal-submit {
  background: linear-gradient(135deg, #00843D, #00A84F) !important;
  box-shadow: 0 6px 20px rgba(0,132,61,0.35) !important;
  font-weight: 700 !important;
  letter-spacing: 0.01em !important;
  border-radius: 14px !important;
  padding: 1.1rem !important;
  font-size: 1rem !important;
}
.form-input, .form-select, .form-textarea {
  border-radius: 12px !important;
  border: 1.5px solid rgba(0,132,61,0.15) !important;
  font-size: 0.92rem !important;
  transition: border-color .2s, box-shadow .2s !important;
}
.form-input:focus, .form-select:focus, .form-textarea:focus {
  border-color: #00843D !important;
  box-shadow: 0 0 0 3px rgba(0,132,61,0.1) !important;
  outline: none !important;
}
.form-label {
  font-weight: 600 !important;
  font-size: 0.82rem !important;
  color: #1A2E1C !important;
  margin-bottom: 0.4rem !important;
}

/* DETAIL PAGE */
.detail-nav {
  box-shadow: 0 2px 12px rgba(0,0,0,0.05) !important;
}
.detail-title {
  font-size: 2rem !important;
  line-height: 1.2 !important;
}
.donate-card {
  border-radius: 24px !important;
  box-shadow: 0 12px 40px rgba(0,0,0,0.1) !important;
  border: 1px solid rgba(0,132,61,0.1) !important;
}
.donate-card-raised {
  font-size: 2.2rem !important;
  background: linear-gradient(135deg, #00843D, #005228);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.donate-progress {
  height: 10px !important;
  border-radius: 10px !important;
}
.donate-progress-fill {
  background: linear-gradient(90deg, #00843D, #00C85A, #C8A84B) !important;
}
.btn-gold {
  background: linear-gradient(135deg, #C8A84B, #F0C96A) !important;
  box-shadow: 0 6px 20px rgba(200,168,75,0.4) !important;
  color: #0D1A0F !important;
  font-weight: 700 !important;
}

/* FOOTER */
footer {
  background: linear-gradient(180deg, #0D1A0F 0%, #08120A 100%) !important;
}

/* AMOUNT BUTTONS */
.amount-btn {
  border-radius: 10px !important;
  border: 1.5px solid rgba(0,132,61,0.2) !important;
  font-weight: 600 !important;
  transition: all .18s !important;
}
.amount-btn:hover, .amount-btn.selected {
  background: linear-gradient(135deg, #00843D, #00A84F) !important;
  color: #fff !important;
  border-color: transparent !important;
  box-shadow: 0 4px 14px rgba(0,132,61,0.35) !important;
  transform: translateY(-1px) !important;
}

/* FILTER BAR */
.filter-btn {
  border-radius: 100px !important;
  font-weight: 500 !important;
  transition: all .18s !important;
}
.filter-btn.active, .filter-btn:hover {
  background: rgba(0,168,79,0.18) !important;
  border-color: rgba(0,168,79,0.4) !important;
  color: #4ade80 !important;
}

/* TOAST */
.toast {
  border-radius: 14px !important;
  font-weight: 500 !important;
  padding: 1rem 2rem !important;
  box-shadow: 0 8px 30px rgba(0,0,0,0.35) !important;
}

/* SECTION TITLES */
.section-title {
  letter-spacing: -0.03em !important;
  line-height: 1.1 !important;
}
.section-label {
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
}

/* CAMPAIGNS SECTION */
.campaigns-section {
  background: linear-gradient(180deg, #0D1A0F 0%, #111E13 100%) !important;
}

/* ADINKRA DIVIDER */
.adinkra-divider {
  font-size: 1.2rem !important;
  opacity: 0.4 !important;
  color: #00843D !important;
}

/* SHARE BUTTONS */
.share-btn {
  border-radius: 10px !important;
  font-weight: 600 !important;
  padding: 0.65rem 1rem !important;
}
.share-whatsapp {
  background: linear-gradient(135deg, #25D366, #128C7E) !important;
  box-shadow: 0 4px 12px rgba(37,211,102,0.3) !important;
}
.share-twitter {
  background: linear-gradient(135deg, #1DA1F2, #0d8cd8) !important;
  box-shadow: 0 4px 12px rgba(29,161,242,0.3) !important;
}

/* ════ WOW HERO ════ */

/* Animated glow orbs */
.hero-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0;
  animation: orbFloat 6s ease-in-out infinite;
  pointer-events: none;
}
.hero-orb-1 {
  width: 500px; height: 500px;
  background: radial-gradient(circle, rgba(0,132,61,0.5) 0%, transparent 65%);
  top: -150px; left: -100px;
  animation-delay: 0s; animation-duration: 7s;
}
.hero-orb-2 {
  width: 400px; height: 400px;
  background: radial-gradient(circle, rgba(200,168,75,0.35) 0%, transparent 65%);
  top: -100px; right: -80px;
  animation-delay: 1.5s; animation-duration: 8s;
}
.hero-orb-3 {
  width: 350px; height: 350px;
  background: radial-gradient(circle, rgba(0,200,90,0.25) 0%, transparent 65%);
  bottom: -80px; left: 50%;
  transform: translateX(-50%);
  animation-delay: 3s; animation-duration: 9s;
}
@keyframes orbFloat {
  0%   { opacity: 0; transform: translateY(0px) scale(1); }
  20%  { opacity: 1; }
  50%  { opacity: 0.85; transform: translateY(-30px) scale(1.08); }
  80%  { opacity: 1; }
  100% { opacity: 0; transform: translateY(0px) scale(1); }
}

/* Floating particles */
.hero-particle {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  animation: particleDrift linear infinite;
  opacity: 0;
}
@keyframes particleDrift {
  0%   { transform: translateY(100vh) rotate(0deg); opacity: 0; }
  10%  { opacity: 1; }
  90%  { opacity: 0.6; }
  100% { transform: translateY(-100px) rotate(360deg); opacity: 0; }
}

/* Hero content on top of everything */
.hero > *:not(.hero-orb):not(.hero-particle) {
  position: relative;
  z-index: 2;
}

/* Hero label — pill badge */
.hero-label {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
  background: rgba(0,132,61,0.15) !important;
  border: 1px solid rgba(0,200,90,0.3) !important;
  border-radius: 100px !important;
  padding: 0.5rem 1.2rem !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  color: #4ade80 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  margin-bottom: 2rem !important;
  animation: fadeUp 0.6s ease both !important;
  backdrop-filter: blur(10px) !important;
}

/* Hero headline */
.hero h1 {
  font-family: 'Fraunces', serif !important;
  font-size: clamp(3.4rem, 8vw, 6.5rem) !important;
  font-weight: 900 !important;
  line-height: 0.95 !important;
  letter-spacing: -0.04em !important;
  color: #fff !important;
  animation: fadeUp 0.7s 0.1s ease both !important;
  max-width: 800px !important;
}
.hero h1 em {
  font-style: italic !important;
  background: linear-gradient(135deg, #00C85A, #F0C96A) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
}

/* Hero sub */
.hero-sub {
  margin-top: 1.5rem !important;
  font-size: 1rem !important;
  color: rgba(255,255,255,0.55) !important;
  line-height: 1.75 !important;
  max-width: 460px !important;
  animation: fadeUp 0.7s 0.2s ease both !important;
}

/* Hero actions */
.hero-actions {
  margin-top: 1.8rem !important;
  display: flex !important;
  gap: 0.8rem !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  animation: fadeUp 0.7s 0.3s ease both !important;
}
.hero-actions .btn-primary {
  background: linear-gradient(135deg, #00843D, #00C85A) !important;
  box-shadow: 0 8px 30px rgba(0,200,90,0.4) !important;
  color: #fff !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  padding: 1rem 2.2rem !important;
  border-radius: 100px !important;
  transition: transform .2s, box-shadow .2s !important;
}
.hero-actions .btn-primary:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 12px 40px rgba(0,200,90,0.55) !important;
}
.hero-actions .btn-outline {
  color: rgba(255,255,255,0.75) !important;
  border: 1.5px solid rgba(255,255,255,0.2) !important;
  background: rgba(255,255,255,0.05) !important;
  backdrop-filter: blur(10px) !important;
  padding: 1rem 2.2rem !important;
  border-radius: 100px !important;
  transition: all .2s !important;
}
.hero-actions .btn-outline:hover {
  background: rgba(255,255,255,0.12) !important;
  border-color: rgba(255,255,255,0.4) !important;
  transform: translateY(-2px) !important;
}

/* Stats strip — hidden */
.hero-stats {
  display: none !important;
}
.hero-stats > div {
  flex: 1 !important;
  padding: 1.2rem 2rem !important;
  border-right: 1px solid rgba(255,255,255,0.08) !important;
  position: relative !important;
}
.hero-stats > div:last-child {
  border-right: none !important;
}
.stat-num {
  font-family: 'Fraunces', serif !important;
  font-size: 1.8rem !important;
  font-weight: 900 !important;
  color: #fff !important;
  background: none !important;
  -webkit-text-fill-color: #fff !important;
  line-height: 1 !important;
  margin-bottom: 0.3rem !important;
}
.stat-label {
  font-size: 0.72rem !important;
  color: rgba(255,255,255,0.4) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  font-weight: 500 !important;
}

/* Scroll indicator */
.hero-scroll {
  position: absolute !important;
  bottom: 2rem !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 0.4rem !important;
  color: rgba(255,255,255,0.25) !important;
  font-size: 0.7rem !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  animation: fadeUp 1s 0.8s ease both !important;
}
.hero-scroll-line {
  width: 1px !important;
  height: 40px !important;
  background: linear-gradient(to bottom, rgba(255,255,255,0.3), transparent) !important;
  animation: scrollPulse 2s ease-in-out infinite !important;
}
@keyframes scrollPulse {
  0%, 100% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.2); }
}

/* How it works — dark bg, fits next to hero */
.adinkra-divider { display: none !important; }
.section { background: #fff !important; }

/* Counter animation */
@keyframes countUp {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
.stat-num.counted {
  animation: countUp 0.5s ease both;
}

/* Mobile hero adjustments */
@media(max-width:600px) {
  .hero-stats > div { padding: 1rem 1.2rem !important; }
  .stat-num { font-size: 1.4rem !important; }
  .hero-stats { margin-top: 2rem !important; }
  .hero { padding: 4rem 1.2rem 2.5rem !important; }
  .hero h1 { font-size: 2.4rem !important; line-height: 1.08 !important; }
  .hero-sub { font-size: 0.92rem !important; margin-top: 1rem !important; }
  .hero-actions { margin-top: 1.8rem !important; }
  .hero-actions .btn-primary, .hero-actions .btn-outline { padding: 0.75rem 1.5rem !important; font-size: 0.88rem !important; }
}

/* Mobile search bar */
.mobile-search-wrap{display:none;padding:0 1.5rem 1rem;}
@media(max-width:900px){.mobile-search-wrap{display:block;}}
.mobile-search{width:100%;background:rgba(255,255,255,0.07);border:1.5px solid rgba(255,255,255,0.15);border-radius:100px;padding:0.7rem 1.2rem;font-family:'DM Sans',sans-serif;font-size:0.88rem;color:#fff;outline:none;}
.mobile-search:focus{border-color:var(--green-light);}
.mobile-search::placeholder{color:rgba(255,255,255,0.3);}

/* Mobile: filter bar scrolls horizontally instead of wrapping */
@media(max-width:900px){
  .filter-bar{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px;margin-left:-1.5rem;margin-right:-1.5rem;padding-left:1.5rem;padding-right:1.5rem;}
  .filter-bar::-webkit-scrollbar{display:none;}
  .filter-btn{white-space:nowrap;flex-shrink:0;}
  /* Sort select stays on the same line as title — hide emoji label, show icon */
  .sort-select{font-size:0.78rem;padding:0.4rem 1.8rem 0.4rem 0.75rem;background-position:right 0.55rem center;}
  .campaigns-header-row{flex-wrap:nowrap;align-items:flex-start;gap:0.75rem;}
  .campaigns-header-row .section-title{font-size:1.4rem !important;min-width:0;}
}

/* WhatsApp float button */
.wa-float{position:fixed;bottom:calc(152px + env(safe-area-inset-bottom));right:1.2rem;z-index:800;background:#25D366;color:#fff;border-radius:50%;width:50px;height:50px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;box-shadow:0 6px 20px rgba(37,211,102,0.45);text-decoration:none;transition:transform .2s,box-shadow .2s;}
.wa-float:hover{transform:scale(1.1);box-shadow:0 8px 28px rgba(37,211,102,0.55);}
@media(min-width:901px){.wa-float{bottom:6rem;}}

/* AI CHAT WIDGET */
.chat-fab{position:fixed;bottom:calc(90px + env(safe-area-inset-bottom));right:1.2rem;z-index:810;width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#00843D,#00C85A);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 24px rgba(0,132,61,0.45);transition:transform .2s,box-shadow .2s;-webkit-tap-highlight-color:transparent;}
.chat-fab:hover{transform:scale(1.08);box-shadow:0 8px 30px rgba(0,132,61,0.55);}
.chat-fab svg{width:24px;height:24px;stroke:#fff;stroke-width:2;fill:none;}
@media(min-width:901px){.chat-fab{bottom:2rem;}}
.chat-window{position:fixed;bottom:calc(158px + env(safe-area-inset-bottom));right:1.2rem;z-index:820;width:320px;max-height:460px;background:#fff;border-radius:20px;box-shadow:0 12px 50px rgba(0,0,0,0.18);display:flex;flex-direction:column;transform:scale(0.92) translateY(12px);opacity:0;pointer-events:none;transition:transform .25s cubic-bezier(0.4,0,0.2,1),opacity .25s;transform-origin:bottom right;}
.chat-window.open{transform:scale(1) translateY(0);opacity:1;pointer-events:all;}
@media(min-width:901px){.chat-window{bottom:5.5rem;}}
@media(max-width:380px){.chat-window{right:0.5rem;width:calc(100vw - 1rem);}}
.chat-header{background:linear-gradient(135deg,#00843D,#00A84F);border-radius:20px 20px 0 0;padding:1rem 1.2rem;display:flex;align-items:center;gap:0.75rem;}
.chat-header-avatar{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,0.2);display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0;}
.chat-header-info{flex:1;}
.chat-header-name{font-family:'Fraunces',serif;font-weight:700;color:#fff;font-size:0.95rem;}
.chat-header-status{font-size:0.72rem;color:rgba(255,255,255,0.75);display:flex;align-items:center;gap:0.35rem;}
.chat-status-dot{width:6px;height:6px;border-radius:50%;background:#4ade80;}
.chat-close{background:rgba(255,255,255,0.15);border:none;color:#fff;cursor:pointer;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;}
.chat-messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:0.6rem;scroll-behavior:smooth;}
.chat-msg{max-width:82%;font-size:0.85rem;line-height:1.55;padding:0.6rem 0.85rem;border-radius:14px;word-break:break-word;}
.chat-msg.user{background:var(--green);color:#fff;align-self:flex-end;border-bottom-right-radius:4px;}
.chat-msg.bot{background:#F0F4F0;color:var(--text);align-self:flex-start;border-bottom-left-radius:4px;}
.chat-msg.typing{color:var(--muted);font-style:italic;}
.chat-input-row{padding:0.75rem;border-top:1px solid var(--border);display:flex;gap:0.5rem;align-items:flex-end;}
.chat-input{flex:1;border:1.5px solid var(--border);border-radius:12px;padding:0.55rem 0.8rem;font-family:'DM Sans',sans-serif;font-size:0.88rem;color:var(--text);outline:none;resize:none;max-height:80px;line-height:1.4;transition:border .2s;}
.chat-input:focus{border-color:var(--green);}
.chat-send{width:36px;height:36px;border-radius:50%;background:var(--green);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s;}
.chat-send:hover{background:var(--green-light);}
.chat-send svg{width:16px;height:16px;stroke:#fff;stroke-width:2.5;fill:none;}
.chat-quick-replies{display:flex;flex-wrap:wrap;gap:0.4rem;padding:0.25rem 0 0.25rem;align-self:flex-start;max-width:100%;}
.chat-quick-chip{border:1.5px solid var(--green);background:#fff;color:var(--green);border-radius:100px;padding:0.35rem 0.75rem;font-size:0.78rem;font-family:'DM Sans',sans-serif;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s;-webkit-tap-highlight-color:transparent;}
.chat-quick-chip:hover,.chat-quick-chip:active{background:var(--green);color:#fff;}

/* Admin search */
.admin-search{width:100%;background:rgba(255,255,255,0.06);border:1.5px solid rgba(255,255,255,0.12);border-radius:10px;padding:0.65rem 1rem;font-family:'DM Sans',sans-serif;font-size:0.85rem;color:#fff;outline:none;margin-bottom:1.2rem;}
.admin-search:focus{border-color:var(--green);}
.admin-search::placeholder{color:rgba(255,255,255,0.25);}

/* Reject confirm */
.reject-confirm-overlay{position:fixed;inset:0;z-index:9500;background:rgba(0,0,0,0.7);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s;}
.reject-confirm-overlay.active{opacity:1;pointer-events:all;}
.reject-confirm-box{background:#1a2a1c;border:1px solid rgba(255,255,255,0.1);border-radius:20px;padding:2rem;max-width:340px;width:calc(100% - 2rem);text-align:center;}
.reject-confirm-box h4{font-family:'Fraunces',serif;color:#fff;font-size:1.1rem;margin:0 0 0.6rem;}
.reject-confirm-box p{color:rgba(255,255,255,0.5);font-size:0.85rem;line-height:1.6;margin:0 0 1.5rem;}
.reject-confirm-btns{display:flex;gap:0.8rem;}
.reject-cancel{flex:1;background:rgba(255,255,255,0.08);color:#fff;border:none;border-radius:10px;padding:0.75rem;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:0.9rem;}
.reject-go{flex:1;background:rgba(220,38,38,0.8);color:#fff;border:none;border-radius:10px;padding:0.75rem;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:0.9rem;font-weight:600;}

/* ── NAV AUTH BUTTONS ── */
.nav-auth-btn{background:none;border:1.5px solid var(--border);border-radius:100px;padding:0.4rem 1rem;font-family:'DM Sans',sans-serif;font-size:0.85rem;color:var(--text);cursor:pointer;transition:all .2s;}
.nav-auth-btn:hover{border-color:var(--green);color:var(--green);}
.nav-avatar{width:34px;height:34px;border-radius:50%;background:var(--green);color:#fff;border:none;font-size:0.9rem;font-weight:700;cursor:pointer;}

/* ── AUTH MODAL ── */
.auth-tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:1.5rem;}
.auth-tab{flex:1;background:none;border:none;padding:0.75rem;font-family:'DM Sans',sans-serif;font-size:0.9rem;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;transition:all .2s;}
.auth-tab.active{color:var(--green);border-bottom-color:var(--green);font-weight:600;}
.auth-form{display:flex;flex-direction:column;gap:0.85rem;}
.auth-form input{width:100%;padding:0.75rem 1rem;border:1.5px solid var(--border);border-radius:12px;font-family:'DM Sans',sans-serif;font-size:0.9rem;background:var(--white);color:var(--text);outline:none;transition:border .2s;}
.auth-form input:focus{border-color:var(--green);}
.auth-error{color:#e53e3e;font-size:0.82rem;min-height:1.1rem;}
.auth-submit{width:100%;background:var(--green);color:#fff;border:none;border-radius:12px;padding:0.85rem;font-family:'DM Sans',sans-serif;font-size:0.95rem;font-weight:600;cursor:pointer;margin-top:0.25rem;transition:background .2s;}
.auth-submit:hover{background:var(--green-light);}

/* ── DASHBOARD PAGE ── */
.dashboard-page{position:fixed;top:0;left:0;right:0;bottom:0;z-index:300;background:var(--cream);overflow-y:auto;-webkit-overflow-scrolling:touch;visibility:hidden;transform:translateX(100%);transition:transform .4s cubic-bezier(0.4,0,0.2,1),visibility 0s linear .4s;}
.dashboard-page.open{visibility:visible;transform:translateX(0);transition:transform .4s cubic-bezier(0.4,0,0.2,1),visibility 0s;}
.dashboard-nav{position:sticky;top:0;background:rgba(250,246,238,0.97);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--border);padding:1rem 1.5rem;padding-top:max(1rem,calc(env(safe-area-inset-top) + 0.5rem));display:flex;align-items:center;gap:1rem;z-index:10;}
.dashboard-body{max-width:800px;margin:0 auto;padding:2rem 1.5rem 6rem;}
.dashboard-section{margin-bottom:2rem;}
.dashboard-section h2{font-family:'Fraunces',serif;font-size:1.3rem;font-weight:900;color:var(--dark);margin-bottom:1.2rem;}
.dashboard-account-card{background:var(--white);border:1px solid var(--border);border-radius:16px;padding:1.2rem 1.5rem;display:flex;align-items:center;gap:1.2rem;margin-bottom:1.5rem;flex-wrap:wrap;}
.dashboard-logout-btn{margin-left:auto;background:rgba(220,38,38,0.08);color:#e53e3e;border:1px solid rgba(220,38,38,0.2);border-radius:8px;padding:0.45rem 1rem;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:0.82rem;font-weight:500;}
.dashboard-empty{text-align:center;padding:3rem 1rem;color:var(--muted);font-size:0.9rem;}
.dash-stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:0.8rem;margin-bottom:1.8rem;}
.dash-stat{background:var(--white);border:1px solid var(--border);border-radius:16px;padding:1.1rem 0.8rem;text-align:center;}
.dash-stat-num{font-family:'Fraunces',serif;font-size:1.4rem;font-weight:900;color:var(--green);margin-bottom:0.2rem;line-height:1.1;}
.dash-stat-label{font-size:0.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:0.08em;}
.dashboard-campaign-card{background:var(--white);border:1px solid var(--border);border-radius:16px;padding:1.4rem;margin-bottom:1rem;}
.dash-camp-top{display:flex;align-items:flex-start;justify-content:space-between;gap:0.5rem;margin-bottom:0.3rem;}
.dash-camp-title{font-family:'Fraunces',serif;font-size:1rem;font-weight:700;color:var(--dark);line-height:1.3;}
.dash-status-badge{font-size:0.7rem;font-weight:600;padding:0.25rem 0.7rem;border-radius:100px;flex-shrink:0;white-space:nowrap;}
.dash-status-approved{background:rgba(0,132,61,0.12);color:#00843D;}
.dash-status-pending{background:rgba(200,168,75,0.15);color:#8a6d00;}
.dash-status-rejected{background:rgba(220,38,38,0.1);color:#e53e3e;}
.dash-big-pct{font-family:'Fraunces',serif;font-size:2.8rem;font-weight:900;color:var(--green);line-height:1;}
.dash-prog-bar{height:8px;background:#E8F5EE;border-radius:10px;overflow:hidden;margin:0.8rem 0;}
.dash-prog-fill{height:100%;background:linear-gradient(90deg,var(--green),var(--gold));border-radius:10px;transition:width .8s ease;}
.dash-metrics{display:flex;gap:1.5rem;font-size:0.82rem;color:var(--muted);flex-wrap:wrap;margin-bottom:1rem;}
.dash-metric strong{color:var(--dark);}
.dash-earnings-box{background:linear-gradient(135deg,rgba(0,132,61,0.08),rgba(200,168,75,0.08));border:1px solid rgba(0,132,61,0.2);border-radius:12px;padding:1rem 1.2rem;margin-bottom:1rem;display:flex;align-items:center;justify-content:space-between;gap:0.5rem;flex-wrap:wrap;}
.dash-earnings-label{font-size:0.78rem;color:var(--muted);}
.dash-earnings-num{font-family:'Fraunces',serif;font-size:1.5rem;font-weight:900;color:var(--green);}
.dash-earnings-note{font-size:0.7rem;color:var(--muted);margin-top:0.2rem;}
.dash-actions{display:flex;gap:0.6rem;flex-wrap:wrap;margin-bottom:1rem;}
.dash-action-btn{background:var(--cream);border:1px solid var(--border);color:var(--dark);border-radius:10px;padding:0.5rem 0.9rem;cursor:pointer;font-size:0.8rem;font-weight:600;font-family:inherit;display:flex;align-items:center;gap:0.4rem;transition:all .2s;}
.dash-action-btn:hover{border-color:var(--green);color:var(--green);}
.dash-share-btn{background:linear-gradient(135deg,#25D366,#128C7E);color:#fff;border:none;border-radius:10px;padding:0.5rem 0.9rem;cursor:pointer;font-size:0.8rem;font-weight:600;font-family:inherit;display:flex;align-items:center;gap:0.4rem;}
.dash-update-form{display:flex;flex-direction:column;gap:0.6rem;margin-top:0.8rem;padding-top:0.8rem;border-top:1px solid var(--border);}
.dash-update-form textarea{width:100%;padding:0.7rem;border:1.5px solid var(--border);border-radius:10px;font-family:'DM Sans',sans-serif;font-size:0.87rem;resize:vertical;min-height:80px;outline:none;}
.dash-update-form textarea:focus{border-color:var(--green);}
.dash-update-toggle{background:none;border:none;color:var(--green);font-size:0.82rem;font-weight:600;cursor:pointer;font-family:inherit;padding:0;text-decoration:underline;}
@media(max-width:500px){.dash-stats-row{grid-template-columns:repeat(3,1fr);}.dash-stat-num{font-size:1.1rem;}.dash-big-pct{font-size:2.2rem;}}
.withdrawal-form{display:flex;flex-direction:column;gap:0.7rem;margin-top:1rem;}
.withdrawal-form input,.withdrawal-form textarea{width:100%;padding:0.7rem;border:1.5px solid var(--border);border-radius:10px;font-family:'DM Sans',sans-serif;font-size:0.87rem;outline:none;}
.withdrawal-form input:focus,.withdrawal-form textarea:focus{border-color:var(--green);}

/* ── CAMPAIGN COMMENTS ── */
.comments-section{margin-top:2rem;border-top:1px solid var(--border);padding-top:1.5rem;}
.comments-section h4{font-family:'Fraunces',serif;font-size:1.1rem;font-weight:700;color:var(--dark);margin-bottom:1rem;}
.comment-form{display:flex;flex-direction:column;gap:0.6rem;margin-bottom:1.5rem;}
.comment-form input,.comment-form textarea{width:100%;padding:0.65rem 0.9rem;border:1.5px solid var(--border);border-radius:10px;font-family:'DM Sans',sans-serif;font-size:0.87rem;outline:none;background:var(--white);}
.comment-form input:focus,.comment-form textarea:focus{border-color:var(--green);}
.comment-form textarea{min-height:70px;resize:vertical;}
.comment-submit{align-self:flex-end;background:var(--green);color:#fff;border:none;border-radius:10px;padding:0.55rem 1.2rem;font-family:'DM Sans',sans-serif;font-size:0.85rem;font-weight:600;cursor:pointer;}
.comment-item{padding:0.75rem 0;border-bottom:1px solid rgba(0,0,0,0.05);}
.comment-name-row{display:flex;align-items:center;gap:0.5rem;margin-bottom:0.3rem;}
.comment-author{font-size:0.82rem;font-weight:600;color:var(--dark);}
.comment-badge{font-size:0.7rem;background:rgba(0,132,61,0.1);color:var(--green);border-radius:4px;padding:1px 6px;}
.comment-date{font-size:0.75rem;color:var(--muted);margin-left:auto;}
.comment-text{font-size:0.87rem;color:var(--text);line-height:1.5;}

/* ── BOTTOM NAV (HTML) — styles defined above, no overrides needed ── */

/* ── ACTIVITY TICKER ── */
.activity-ticker{background:#0A1A0C;border-top:1px solid rgba(255,255,255,0.06);border-bottom:1px solid rgba(255,255,255,0.06);padding:0.6rem 0;overflow:hidden;display:flex;align-items:center;gap:1rem;position:relative;}
.ticker-live-badge{flex-shrink:0;display:flex;align-items:center;gap:0.4rem;padding:0 1rem;font-size:0.72rem;font-weight:700;color:#f87171;letter-spacing:0.05em;text-transform:uppercase;background:#0A1A0C;z-index:1;white-space:nowrap;}
.ticker-live-dot{width:8px;height:8px;border-radius:50%;background:#f87171;animation:tickerPulse 1.2s ease-in-out infinite;}
@keyframes tickerPulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:0.5;transform:scale(0.8);}}
.ticker-track{display:flex;gap:3rem;animation:tickerScroll 40s linear infinite;white-space:nowrap;}
.ticker-track:hover{animation-play-state:paused;}
@keyframes tickerScroll{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}
.ticker-item{font-size:0.82rem;color:rgba(255,255,255,0.6);white-space:nowrap;}
.ticker-item strong{color:#4ade80;}

/* ── VIDEO EMBED ── */
.video-embed{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:12px;margin-bottom:1.5rem;background:#000;}
.video-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none;border-radius:12px;}

/* ── CAMPAIGN RESTART BUTTON ── */
.restart-btn{background:none;border:1.5px solid rgba(0,132,61,0.4);color:var(--green);cursor:pointer;font-family:'DM Sans',sans-serif;font-size:0.82rem;padding:0.55rem 1rem;border-radius:8px;transition:all .2s;margin-top:0.8rem;width:100%;display:flex;align-items:center;justify-content:center;gap:0.4rem;}
.restart-btn:hover{background:rgba(0,132,61,0.1);border-color:var(--green);}

/* ── GIFT DONATION TOGGLE ── */
.gift-toggle-row{display:flex;align-items:flex-start;gap:0.65rem;background:rgba(200,168,75,0.07);border:1.5px solid rgba(200,168,75,0.2);border-radius:12px;padding:0.8rem 1rem;margin-bottom:1rem;cursor:pointer;transition:border-color .2s;}
.gift-toggle-row:hover{border-color:rgba(200,168,75,0.4);}
.gift-check{width:18px;height:18px;accent-color:var(--gold);cursor:pointer;flex-shrink:0;margin-top:2px;}
.gift-label{font-size:0.88rem;color:var(--dark);line-height:1.45;user-select:none;}
.gift-fields{display:none;margin-bottom:1rem;}
.gift-fields.show{display:block;}

/* ── URGENCY PULSE ── */
@keyframes urgentPulse{0%,100%{box-shadow:0 0 0 0 rgba(220,38,38,0.25),0 4px 20px rgba(0,0,0,0.15);}50%{box-shadow:0 0 0 6px rgba(220,38,38,0),0 4px 20px rgba(220,38,38,0.2);}}
.card-urgent{animation:urgentPulse 2s ease-in-out infinite!important;border-color:rgba(220,38,38,0.3)!important;}
.card-urgent .cc-title{color:#fca5a5!important;}

/* ── CARD REVEAL ANIMATION ── */
@keyframes cardReveal{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}
.campaign-card{animation:cardReveal 0.45s ease both;}
@keyframes recBlink{0%,100%{opacity:1;}50%{opacity:0;}}

/* ── HERO SOCIAL PROOF STRIP ── */
.hero-social-proof{display:flex;align-items:center;gap:0.8rem;justify-content:center;margin-top:2rem;margin-bottom:0;animation:fadeUp 0.8s 0.35s ease both;}
.hero-avatars{display:flex;}
.hero-avatar-dot{width:32px;height:32px;border-radius:50%;border:2px solid rgba(255,255,255,0.25);margin-left:-8px;display:flex;align-items:center;justify-content:center;font-size:0.85rem;background:#00843D;}
.hero-avatar-dot:first-child{margin-left:0;}
.hero-avatar-dot:nth-child(2){background:#ffffff;}
.hero-avatar-dot:nth-child(3){background:#C8A84B;}
.hero-avatar-dot:nth-child(4){background:#ffffff;}
.hero-avatar-dot:nth-child(5){background:#00843D;}
.hero-social-text{font-size:0.82rem;color:rgba(255,255,255,0.55);line-height:1.4;}
.hero-social-text strong{color:rgba(255,255,255,0.85);}

/* ── NAV SCROLL SHADOW ── */
nav.scrolled{box-shadow:0 4px 24px rgba(0,0,0,0.12)!important;}

/* ── DETAIL HERO GRADIENT OVERLAY ── */
.detail-hero-img{position:relative;}
.detail-hero-img::after{content:'';position:absolute;bottom:0;left:0;right:0;height:120px;background:linear-gradient(to top,rgba(250,246,238,0.6) 0%,transparent 100%);pointer-events:none;}

/* ── PREMIUM CAMPAIGN CARD HOVER ── */
.campaign-card:hover .cc-img img{transform:scale(1.05);}
.cc-img img{transition:transform 0.4s ease!important;}

/* ── TRUST FEATURES 2x3 GRID ── */
.trust-features{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:2rem;}
@media(max-width:900px){.trust-features{grid-template-columns:1fr;}}

/* ── DONOR HONOR TAG ── */
.donor-honor{font-size:0.75rem;color:var(--gold);font-style:italic;margin-top:0.15rem;}

/* ══════════════════════════════════════════
   SELECTIVE GLASSMORPHISM
   Applied to: nav, modals, donate card,
   detail nav, bottom nav, hero badge
   ══════════════════════════════════════════ */

/* NAV — liquid glass bar */
nav {
  background: rgba(250,246,238,0.60) !important;
  backdrop-filter: blur(32px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(32px) saturate(180%) !important;
  border-bottom: 1px solid rgba(255,255,255,0.55) !important;
  box-shadow: 0 1px 0 rgba(0,132,61,0.06), 0 4px 24px rgba(0,0,0,0.06) !important;
}
nav.scrolled {
  background: rgba(250,246,238,0.78) !important;
  box-shadow: 0 1px 0 rgba(0,132,61,0.08), 0 8px 32px rgba(0,0,0,0.1) !important;
}

/* BOTTOM NAV — floating glass tray */
.bottom-nav {
  background: rgba(255,255,255,0.72) !important;
  backdrop-filter: blur(28px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(28px) saturate(160%) !important;
  border-top: 1px solid rgba(255,255,255,0.7) !important;
  box-shadow: 0 -4px 24px rgba(0,0,0,0.06), inset 0 1px 0 rgba(255,255,255,0.9) !important;
}

/* MODAL OVERLAY — richer lens blur */
.modal-overlay {
  backdrop-filter: blur(20px) saturate(140%) !important;
  -webkit-backdrop-filter: blur(20px) saturate(140%) !important;
  background: rgba(8,18,10,0.65) !important;
}

/* MODAL PANELS — frosted glass */
.modal,
.modal-box {
  background: rgba(250,246,238,0.82) !important;
  backdrop-filter: blur(32px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(32px) saturate(180%) !important;
  border: 1px solid rgba(255,255,255,0.75) !important;
  border-radius: 24px !important;
  box-shadow:
    0 32px 80px rgba(0,0,0,0.22),
    0 8px 24px rgba(0,0,0,0.12),
    inset 0 1px 0 rgba(255,255,255,0.95) !important;
}

/* MODAL CLOSE BUTTON — glass pill */
.modal-close {
  background: rgba(255,255,255,0.5) !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
  border: 1px solid rgba(255,255,255,0.8) !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08) !important;
  transition: background .2s, transform .15s !important;
}
.modal-close:hover {
  background: rgba(255,255,255,0.75) !important;
  transform: scale(1.1) !important;
}

/* DONATE CARD (campaign detail) — glass float */
.donate-card {
  background: rgba(255,255,255,0.78) !important;
  backdrop-filter: blur(24px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(24px) saturate(160%) !important;
  border: 1px solid rgba(255,255,255,0.7) !important;
  box-shadow:
    0 20px 60px rgba(0,0,0,0.12),
    inset 0 1px 0 rgba(255,255,255,0.95) !important;
}

/* DETAIL NAV (sticky) */
.detail-nav,
.legal-nav {
  background: rgba(250,246,238,0.72) !important;
  backdrop-filter: blur(28px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(28px) saturate(160%) !important;
  border-bottom: 1px solid rgba(255,255,255,0.6) !important;
  box-shadow: 0 2px 16px rgba(0,0,0,0.06) !important;
}

/* HERO LABEL — glowing glass pill */
.hero-label {
  background: rgba(0,132,61,0.12) !important;
  backdrop-filter: blur(16px) saturate(200%) !important;
  -webkit-backdrop-filter: blur(16px) saturate(200%) !important;
  border: 1px solid rgba(0,200,90,0.35) !important;
  box-shadow: 0 0 20px rgba(0,200,90,0.15), inset 0 1px 0 rgba(255,255,255,0.1) !important;
}

/* CAMPAIGN CARD HOVER — glass shimmer ring */
.campaign-card:hover {
  box-shadow:
    0 40px 80px rgba(0,0,0,0.35),
    0 0 0 1.5px rgba(200,168,75,0.5),
    0 0 40px rgba(200,168,75,0.12) !important;
}

/* HERO OUTLINE BUTTON — glass */
.hero-actions .btn-outline {
  background: rgba(255,255,255,0.07) !important;
  backdrop-filter: blur(16px) saturate(150%) !important;
  -webkit-backdrop-filter: blur(16px) saturate(150%) !important;
  border: 1px solid rgba(255,255,255,0.22) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.12) !important;
}
.hero-actions .btn-outline:hover {
  background: rgba(255,255,255,0.14) !important;
  border-color: rgba(255,255,255,0.38) !important;
}

/* TOAST — glass pill */
.toast {
  background: rgba(13,26,15,0.88) !important;
  backdrop-filter: blur(20px) saturate(150%) !important;
  -webkit-backdrop-filter: blur(20px) saturate(150%) !important;
  border: 1px solid rgba(255,255,255,0.12) !important;
  box-shadow: 0 8px 32px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.08) !important;
}

/* FORM INPUTS — glass inset when focused */
.form-input:focus,
.form-select:focus,
.form-textarea:focus {
  background: rgba(255,255,255,0.9) !important;
  box-shadow: 0 0 0 3px rgba(0,132,61,0.12), inset 0 1px 3px rgba(0,0,0,0.04) !important;
}

/* HERO AVATAR STRIP — subtle glass card */
.hero-social-proof {
  background: rgba(255,255,255,0.06) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  border: 1px solid rgba(255,255,255,0.1) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.1) !important;
}

/* ── Campaign view refresh ─────────────────────────────────────── */

/* Campaigns header: title + sort on same row */
.campaigns-header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
  flex-wrap: wrap;
}

/* Sort dropdown */
.sort-select {
  background: rgba(255,255,255,0.07);
  color: rgba(255,255,255,0.85);
  border: 1.5px solid rgba(255,255,255,0.14);
  border-radius: 100px;
  padding: 0.45rem 1rem 0.45rem 0.9rem;
  font-size: 0.82rem;
  font-family: inherit;
  font-weight: 500;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='rgba(255,255,255,.5)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.8rem center;
  padding-right: 2rem;
  transition: border-color .2s;
  flex-shrink: 0;
}
.sort-select:focus { outline: none; border-color: var(--green); }
.sort-select option { background: #162118; color: #fff; }

/* 2-column grid at 600–900 px (tablet) */
@media(max-width: 900px) and (min-width: 600px) {
  .campaigns-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

/* ── New campaign card ── */
.campaign-card {
  display: flex;
  flex-direction: column;
  border-radius: 20px !important;
  overflow: hidden;
  cursor: pointer;
  transition: transform .25s, box-shadow .25s;
  background: rgba(255,255,255,0.05) !important;
}
.campaign-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 40px rgba(0,0,0,.35), 0 0 0 1.5px rgba(200,168,75,.35) !important;
}
.campaign-card:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
}

/* Image wrapper — fixed aspect ratio */
.cc-img-wrap {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  flex-shrink: 0;
}
.cc-img-wrap .cc-img {
  position: absolute;
  inset: 0;
  border-radius: 0 !important;
  height: 100%;
  width: 100%;
}
.cc-img-wrap .cc-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
}
.campaign-card:hover .cc-img-wrap .cc-img img { transform: scale(1.04); }
.cc-emoji-fallback {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3.5rem;
  z-index: 1;
}

/* Badge overlays on image */
.cc-overlay-tl {
  position: absolute;
  top: 10px; left: 10px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 5px;
  z-index: 3;
  pointer-events: none;
}
.cc-overlay-tr {
  position: absolute;
  top: 10px; right: 10px;
  z-index: 3;
  pointer-events: none;
}
.cc-days {
  background: rgba(15,25,16,.75);
  backdrop-filter: blur(6px);
  color: rgba(255,255,255,.9);
  border-radius: 100px;
  padding: 3px 9px;
  font-size: 0.7rem;
  font-weight: 700;
  border: 1px solid rgba(255,255,255,.12);
}
.cc-days.cc-days-urgent { background: rgba(239,68,68,.82); color: #fff; }
.cc-badge {
  background: rgba(15,25,16,.72);
  backdrop-filter: blur(6px);
  color: rgba(255,255,255,.9);
  border-radius: 100px;
  padding: 3px 9px;
  font-size: 0.7rem;
  font-weight: 700;
  border: 1px solid rgba(255,255,255,.12);
}
.cc-featured-badge {
  background: linear-gradient(135deg,#C8A84B,#F0C96A);
  color: #0D1A0F;
  border-radius: 100px;
  padding: 3px 9px;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: .03em;
}

/* Milestone strip at bottom of image */
.cc-milestone {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 18px 10px 7px;
  background: linear-gradient(to top, rgba(0,0,0,.72) 0%, transparent 100%);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  z-index: 2;
  pointer-events: none;
}
.cc-milestone-done { background: linear-gradient(to top, rgba(200,168,75,.8) 0%, transparent 100%); color: #0D1A0F; }

/* Card body */
.cc-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 14px 16px 16px;
}

/* Verification pill */
.cc-vp {
  display: inline-block;
  font-size: 0.68rem;
  font-weight: 700;
  margin-bottom: 6px;
  letter-spacing: .02em;
}
.cc-vp-ok  { color: #00A84F; }
.cc-vp-warn { color: #f59e0b; }

/* Title */
.cc-title {
  font-family: 'Fraunces', Georgia, serif !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: rgba(255,255,255,.92) !important;
  line-height: 1.35 !important;
  margin-bottom: 4px !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Creator/location */
.cc-meta {
  font-size: 0.72rem;
  color: rgba(255,255,255,.45);
  margin-bottom: 12px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Progress bar */
.cc-progress-bar {
  height: 5px;
  background: rgba(255,255,255,.1);
  border-radius: 100px;
  overflow: hidden;
  margin-bottom: 8px;
}
.cc-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--green), #00C85A);
  border-radius: 100px;
  transition: width .6s ease;
}

/* Raised / goal stats */
.cc-stats-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}
.cc-raised-amt {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
}
.cc-goal-of {
  font-size: 0.72rem;
  color: rgba(255,255,255,.5);
  margin-left: 3px;
}
.cc-pct {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--green-light);
}

/* Footer row: donor count + CTA */
.cc-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  gap: 8px;
}
.cc-donor-count {
  font-size: 0.72rem;
  color: rgba(255,255,255,.45);
}
.cc-donate-btn {
  background: var(--green);
  color: #fff;
  border: none;
  border-radius: 100px;
  padding: 6px 16px;
  font-size: 0.75rem;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  transition: background .2s;
  white-space: nowrap;
  flex-shrink: 0;
}
.cc-donate-btn:hover { background: var(--green-light); }

/* ── Donor avatars with initials ── */
.donor-avatar {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 700;
  font-size: 1rem;
  flex-shrink: 0;
}

/* Empty donor wall */
.donor-empty {
  text-align: center;
  padding: 1.5rem 0;
}
.donor-empty p {
  color: var(--muted);
  font-size: 0.88rem;
  margin-bottom: 0.8rem;
}
.donor-empty-share {
  background: #25D366;
  color: #fff;
  border: none;
  border-radius: 100px;
  padding: 0.55rem 1.2rem;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
}

/* ── Detail page improvements ── */
.detail-hero-img { height: 480px !important; }
.detail-hero-img::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(13,26,15,.6) 0%, transparent 60%);
  pointer-events: none;
}

@media(max-width: 700px) {
  .detail-hero-img { height: 250px !important; }
  .detail-body { grid-template-columns: 1fr !important; gap: 1.5rem !important; }
  .detail-sidebar { position: static !important; top: auto !important; }
}

/* ── Hero impact stats (live counters) ── */
.hero-impact-stats {
  display: flex;
  align-items: center;
  gap: 0;
  background: rgba(255,255,255,0.06);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 100px;
  padding: 0.55rem 1.4rem;
  margin-bottom: 2rem;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.1);
}
.hero-stat-chip {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0 1.1rem;
}
.hero-stat-num {
  font-size: 1.1rem;
  font-weight: 800;
  color: #fff;
  font-family: 'Fraunces', serif;
  line-height: 1.1;
}
.hero-stat-lbl {
  font-size: 0.65rem;
  color: rgba(255,255,255,0.5);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-top: 1px;
}
.hero-stat-div {
  width: 1px;
  height: 28px;
  background: rgba(255,255,255,0.15);
  flex-shrink: 0;
}
@media(max-width: 500px) {
  .hero-impact-stats { border-radius: 16px; flex-wrap: wrap; justify-content: center; gap: 0.5rem; padding: 0.7rem 1rem; }
  .hero-stat-div { display: none; }
}

/* ── Fee breakdown in donate modal ── */
.fee-breakdown {
  margin-top: 0.6rem;
  padding: 0.6rem 0.9rem;
  background: rgba(0,132,61,0.06);
  border: 1px solid rgba(0,132,61,0.15);
  border-radius: 10px;
  font-size: 0.78rem;
}
.fee-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.18rem 0;
  color: var(--dark);
}
.fee-row strong { color: var(--green); font-size: 0.85rem; }
.fee-row-muted { color: var(--muted); font-size: 0.74rem; }

/* ── Avg donation hint ── */
.avg-hint {
  margin-top: 0.45rem;
  font-size: 0.75rem;
  color: var(--green);
  text-align: center;
  font-weight: 600;
}

/* ── Bookmark heart button on campaign cards ── */
.bookmark-btn {
  background: none;
  border: none;
  font-size: 1rem;
  cursor: pointer;
  padding: 0.2rem 0.35rem;
  border-radius: 8px;
  transition: transform 0.15s, background 0.15s;
  line-height: 1;
  flex-shrink: 0;
}
.bookmark-btn:hover { background: rgba(0,0,0,0.06); transform: scale(1.2); }
.bookmark-btn.bookmarked { animation: heartPop 0.3s ease; }
@keyframes heartPop {
  0% { transform: scale(1); }
  50% { transform: scale(1.4); }
  100% { transform: scale(1); }
}

/* Saved filter button variant */
.filter-saved { border-color: rgba(239,68,68,0.3) !important; }
.filter-saved.active { background: rgba(239,68,68,0.15) !important; border-color: rgba(239,68,68,0.5) !important; color: #f87171 !important; }

/* ── Success stories section ── */
.success-section {
  padding: 5rem 5vw;
  background: var(--white);
}
.success-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.5rem;
  margin-top: 2rem;
}
.success-card {
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 20px;
  overflow: hidden;
  cursor: pointer;
  transition: transform 0.22s, box-shadow 0.22s;
}
.success-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(0,0,0,0.1); }
.success-img {
  height: 160px;
  overflow: hidden;
  background: linear-gradient(135deg, #00843D22, #C8A84B22);
  display: flex;
  align-items: center;
  justify-content: center;
}
.success-img img { width: 100%; height: 100%; object-fit: cover; }
.success-body { padding: 1rem 1.1rem 1.1rem; }
.success-badge {
  display: inline-block;
  background: rgba(0,132,61,0.12);
  color: var(--green);
  font-size: 0.72rem;
  font-weight: 700;
  border-radius: 100px;
  padding: 0.2rem 0.7rem;
  margin-bottom: 0.5rem;
}
.success-title {
  font-family: 'Fraunces', serif;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--dark);
  line-height: 1.35;
  margin-bottom: 0.3rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.success-meta { font-size: 0.75rem; color: var(--muted); margin-bottom: 0.35rem; }
.success-raised { font-size: 0.82rem; font-weight: 700; color: var(--green); }

/* ── Draft resume banner in campaign builder ── */
.draft-banner {
  background: rgba(200,168,75,0.1);
  border: 1px solid rgba(200,168,75,0.3);
  border-radius: 12px;
  padding: 0.75rem 1rem;
  margin-bottom: 1rem;
  font-size: 0.85rem;
  color: var(--dark);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  flex-wrap: wrap;
}
.draft-banner-btns { display: flex; gap: 0.5rem; flex-shrink: 0; }
.draft-resume-btn {
  background: var(--gold);
  color: var(--dark);
  border: none;
  border-radius: 8px;
  padding: 0.35rem 0.85rem;
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
}
.draft-discard-btn {
  background: none;
  color: var(--muted);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 0.35rem 0.85rem;
  font-size: 0.8rem;
  cursor: pointer;
  font-family: inherit;
}

/* ── Subscription management in dashboard ── */
.sub-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 0.9rem 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.sub-card-info { flex: 1; min-width: 0; }
.sub-card-title { font-size: 0.88rem; font-weight: 600; color: var(--dark); margin-bottom: 0.2rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sub-card-meta { font-size: 0.75rem; color: var(--muted); }
.sub-cancel-btn {
  background: rgba(239,68,68,0.08);
  color: #e53e3e;
  border: 1px solid rgba(239,68,68,0.2);
  border-radius: 8px;
  padding: 0.35rem 0.8rem;
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  white-space: nowrap;
  flex-shrink: 0;
  transition: background 0.15s;
}
.sub-cancel-btn:hover { background: rgba(239,68,68,0.15); }
