@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Manrope:wght@600;700;800&display=swap');
:root{--ink:#15251f;--muted:#738078;--green:#176b4b;--green2:#e8f3ed;--lime:#c7e7a2;--line:#e6ece8;--paper:#f8faf8;--white:#fff;--shadow:0 18px 55px rgba(22,54,39,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif}a{color:inherit;text-decoration:none}.topbar{height:78px;position:sticky;top:0;z-index:20;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(calc((100vw - 1160px)/2),5.5%)}.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.04em;font-size:14px}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--green);color:#fff;font-family:Manrope;font-size:19px}.brand-light{font-weight:500;color:#7b8981}.topbar nav{display:flex;gap:34px;font-size:13px;font-weight:600;color:#617068}.topbar nav a:hover,footer a:hover{color:var(--green)}.nav-cta,.outline-btn{font-size:13px;font-weight:700;padding:12px 17px;border:1px solid #dce6df;border-radius:9px}.nav-cta span{margin-left:9px;color:var(--green)}.section{max-width:1160px;margin:auto;padding:105px 28px}.hero{min-height:580px;display:grid;grid-template-columns:1fr .9fr;align-items:center;gap:35px;padding-top:78px;padding-bottom:80px}.eyebrow{font-size:10px;letter-spacing:.16em;font-weight:800;color:var(--green);display:inline-flex;align-items:center;gap:9px}.dot,.live-dot{width:7px;height:7px;border-radius:50%;background:#79b75e;display:inline-block}.hero h1{font:800 clamp(38px,5vw,62px)/1.12 Manrope,sans-serif;letter-spacing:-.055em;margin:22px 0 20px;max-width:660px}.hero h1 span{color:var(--green)}.hero-copy>p,.section-heading p,.account-copy>p{color:var(--muted);font-size:15px;line-height:1.8;max-width:510px}.primary-btn{display:inline-flex;align-items:center;justify-content:center;gap:28px;background:var(--green);color:#fff;padding:15px 20px;border:0;border-radius:9px;font:700 13px 'DM Sans';cursor:pointer;margin-top:18px;box-shadow:0 9px 22px rgba(23,107,75,.16)}.primary-btn:hover{background:#10573c}.hero-art{height:365px;position:relative;border-radius:28px;background:linear-gradient(145deg,#eaf4ec,#dcebe1);overflow:hidden}.art-glow{position:absolute;width:310px;height:310px;border-radius:50%;background:#cce4d1;top:20px;left:50%;transform:translateX(-50%)}.art-cross{position:absolute;right:17%;top:48px;color:#fff;font-size:100px;font-weight:200;opacity:.7}.ambulance{position:absolute;width:300px;height:150px;left:50%;top:48%;transform:translate(-50%,-40%)}.amb-body{position:absolute;bottom:20px;width:290px;height:93px;background:#fff;border-radius:13px 22px 12px 12px;box-shadow:0 18px 28px #779b7e55}.amb-top{position:absolute;z-index:1;bottom:110px;left:110px;width:125px;height:60px;background:#fff;border-radius:20px 24px 0 0;transform:skewX(-8deg)}.amb-window{position:absolute;z-index:2;bottom:121px;left:135px;width:78px;height:39px;border-radius:10px 14px 0 0;background:#a8d3d6}.amb-red{position:absolute;left:0;top:38px;width:100%;height:13px;background:#d94e4e}.amb-plus{position:absolute;z-index:2;left:125px;top:18px;color:#d94e4e;font-size:55px;font-weight:800}.wheel{position:absolute;z-index:3;bottom:0;width:43px;height:43px;background:#25342d;border:8px solid #718078;border-radius:50%}.wheel-one{left:48px}.wheel-two{right:40px}.art-caption{position:absolute;bottom:25px;left:0;right:0;text-align:center;display:grid;gap:5px}.art-caption b{font:800 12px Manrope;letter-spacing:.15em;color:var(--green)}.art-caption span{font-size:11px;color:#75877b}.total-section{padding-top:40px}.section-heading{margin-bottom:32px}.section-heading.centered{text-align:center}.section-heading h2,.account-copy h2{font:800 clamp(29px,3vw,40px)/1.2 Manrope;letter-spacing:-.04em;margin:12px 0}.section-heading p{margin:0}.centered p{margin:auto}.total-card{max-width:760px;margin:35px auto 0;background:#fff;border:1px solid var(--line);border-radius:18px;padding:34px 40px;text-align:center;box-shadow:var(--shadow);position:relative;overflow:hidden}.total-card:before{content:"";position:absolute;width:220px;height:220px;border-radius:50%;background:#eff7ef;right:-90px;top:-110px}.total-icon{width:40px;height:40px;border-radius:13px;background:var(--green2);color:var(--green);display:grid;place-items:center;margin:0 auto 15px;font-size:20px}.total-label{font-size:10px;letter-spacing:.15em;font-weight:800;color:#829087}.total-number{font:800 clamp(32px,5vw,52px) Manrope;letter-spacing:-.04em;color:var(--green);margin:10px 0}.total-foot{font-size:11px;color:#87948c}.total-foot .live-dot{margin-right:7px}.contribution-section{padding-top:90px}.rw-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.rw-card,.donor-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px 28px;box-shadow:var(--shadow)}.rw-title{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:19px;margin-bottom:8px}.rw-tag{font-size:9px;letter-spacing:.15em;color:var(--green);font-weight:800}.rw-title h3{font:800 27px Manrope;margin:5px 0 0}.rw-count{font-size:11px;color:#748279;background:#f1f5f2;padding:7px 10px;border-radius:30px}.rt-row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid #f0f3f0;font-size:13px}.rt-row:last-child{border:0}.rt-row span{color:#64736a}.rt-row strong{font-size:13px}.empty{font-size:13px;color:#87948c;padding:12px 0}.donor-section{padding-top:85px}.donor-card{max-width:940px;margin:auto;padding:0;overflow:hidden}.donor-head{display:flex;justify-content:space-between;padding:18px 25px;background:#f3f7f3;color:#65766b;font-size:10px;font-weight:800;letter-spacing:.12em}.donor-grid{display:grid;grid-template-columns:1fr 1fr;padding:12px 25px 20px;column-gap:55px}.donor-item{display:flex;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid #eef2ee;min-width:0}.donor-number{font:700 11px Manrope;color:#91a098}.donor-name{font-size:13px;font-weight:600;flex:1;overflow-wrap:anywhere}.donor-amount{font-size:11px;color:var(--green);font-weight:700}.account-section{padding-top:90px;padding-bottom:105px}.account-panel{background:#163e2e;border-radius:22px;padding:55px;display:grid;grid-template-columns:1fr 1fr;gap:55px;color:#fff;position:relative;overflow:hidden}.account-panel:after{content:"+";position:absolute;right:37%;top:-80px;font-size:270px;font-weight:200;color:#ffffff09}.account-copy{position:relative;z-index:1}.account-copy .eyebrow{color:#b7dfa0}.account-copy h2{font-size:37px;margin-top:17px}.account-copy>p{color:#c1d2c8}.account-note{margin-top:30px;font-size:12px;color:#c2d8c8}.account-list{display:grid;gap:13px;position:relative;z-index:1}.bank-card{background:#fff;color:var(--ink);padding:21px 23px;border-radius:13px}.bank-label{font-size:10px;color:var(--green);font-weight:800;letter-spacing:.13em}.account-number{font:800 25px Manrope;letter-spacing:.04em;margin:8px 0 3px}.account-owner{font-size:11px;color:#78867e}.copy-btn{margin-top:15px;border:0;background:#edf5ef;color:var(--green);font:700 11px 'DM Sans';padding:10px 13px;border-radius:7px;cursor:pointer}.copy-btn span{margin-left:8px}footer{min-height:85px;background:#fff;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:20px max(calc((100vw - 1100px)/2),5.5%);font-size:11px;color:#849087}.footer-brand{color:var(--ink)}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);opacity:0;background:#173f2e;color:#fff;padding:12px 18px;border-radius:8px;font-size:12px;transition:.25s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,0)}
/* Admin */
.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#edf5ee,#f8faf8)}.auth-card{width:min(100%,430px);background:#fff;border:1px solid var(--line);border-radius:18px;padding:38px;box-shadow:var(--shadow);display:grid;gap:16px}.auth-card .brand{margin-bottom:14px}.auth-card h1{font:800 30px Manrope;margin:0}.auth-card p{font-size:13px;color:var(--muted);line-height:1.6;margin:0}.auth-card label,.manage-form label{display:grid;gap:7px;font-size:12px;font-weight:700;color:#526259}.auth-card input,.manage-form input,.table-edit input{width:100%;border:1px solid #dfe7e1;border-radius:8px;padding:12px;font:13px 'DM Sans';outline:none}.auth-card input:focus,.manage-form input:focus,.table-edit input:focus{border-color:#68a486;box-shadow:0 0 0 3px #e9f4ed}.full{width:100%;margin-top:4px}.back-link{text-align:center;color:#718078;font-size:12px;margin-top:5px}.dashboard{background:#f5f8f5}.dash-top{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(calc((100vw - 1100px)/2),5.5%)}.dash-top>div{font-size:12px;color:#758178}.dash-top>div a{margin-left:16px;color:var(--green);font-weight:700}.dash-main{max-width:1100px;margin:auto;padding:45px 25px 80px}.dash-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.dash-heading h1{font:800 34px Manrope;margin:9px 0}.dash-heading p,.muted{font-size:13px;color:var(--muted)}.dash-stat{background:#173f2e;color:#fff;border-radius:14px;padding:24px 28px;display:grid;gap:7px;margin-bottom:22px}.dash-stat span{font-size:11px;color:#c4d8cb}.dash-stat strong{font:800 30px Manrope}.dash-stat small{font-size:11px;color:#b6cabe}.manage-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:25px;margin:18px 0;box-shadow:0 8px 28px #1c44200a}.manage-card h2{font:800 18px Manrope;margin:0 0 16px}.manage-card h3{font:800 15px Manrope}.manage-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.manage-form label{flex:1;min-width:190px}.small-btn{border:0;border-radius:7px;padding:11px 14px;background:var(--green);color:#fff;font:700 11px 'DM Sans';cursor:pointer;white-space:nowrap}.admin-rw-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px}.inline-edit{display:grid;grid-template-columns:55px 1fr auto;gap:9px;align-items:center;margin:8px 0}.inline-edit span{font-size:12px;color:#5e6e64}.inline-edit input{min-width:0;border:1px solid var(--line);padding:9px;border-radius:7px;font:12px 'DM Sans'}.donor-add{margin-bottom:18px}.admin-table{display:grid;gap:8px}.table-edit{display:grid;grid-template-columns:1.5fr 1fr auto auto;gap:8px}.table-edit input{min-width:0;padding:9px;font-size:12px}.delete-btn{border:1px solid #f0d8d5;background:#fff8f7;color:#b84d42;border-radius:7px;padding:8px 10px;font-size:11px;cursor:pointer}.account-add{margin-bottom:18px}.account-add label{min-width:150px}.alert{padding:12px 14px;border-radius:8px;background:#eef5ef;color:#236442;font-size:12px}.alert.error{background:#fff0ee;color:#a13e34}.alert.success{background:#eef5ef}.dash-foot{text-align:center;color:#87948c;font-size:11px;padding:15px}
@media(max-width:800px){.topbar{padding:0 20px}.topbar nav{gap:15px}.nav-cta{display:none}.hero{grid-template-columns:1fr;padding-top:65px;gap:25px}.hero-art{height:300px}.rw-grid{grid-template-columns:1fr}.account-panel{grid-template-columns:1fr;padding:35px;gap:30px}.account-copy h2{font-size:32px}.section{padding-left:22px;padding-right:22px}.donor-grid{column-gap:25px}.dash-main{padding:30px 18px}.table-edit{grid-template-columns:1fr 1fr auto auto}}
@media(max-width:560px){.topbar{height:66px}.topbar nav{display:none}.hero{min-height:auto;padding-top:55px}.hero h1{font-size:39px}.hero-art{height:260px}.section{padding-top:70px;padding-bottom:70px}.total-section{padding-top:20px}.total-card{padding:28px 15px}.total-number{font-size:34px}.rw-card{padding:21px}.donor-grid{grid-template-columns:1fr;padding:8px 20px 18px}.account-panel{padding:28px 20px}.account-number{font-size:21px}footer{gap:12px;flex-wrap:wrap;padding:20px}.dash-heading{align-items:flex-start;gap:12px;flex-direction:column}.admin-rw-grid{grid-template-columns:1fr;gap:12px}.manage-card{padding:18px}.table-edit{grid-template-columns:1fr 1fr}.table-edit .small-btn,.table-edit .delete-btn{grid-column:auto}.auth-card{padding:28px 22px}.dash-top{padding:0 17px}}

/* Public finance transparency report */
.balance-strip{border-top:1px solid #edf1ed;margin-top:20px;padding-top:17px;display:flex;justify-content:center;gap:14px;align-items:center;font-size:12px;color:#748279}.balance-strip strong{font:800 16px Manrope;color:#173f2e}.report-section{padding-top:55px}.finance-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:28px 0}.finance-stats article{background:#fff;border:1px solid var(--line);border-radius:13px;padding:21px;display:grid;gap:8px}.finance-stats article span{font-size:11px;color:#718078}.finance-stats article strong{font:800 21px Manrope;letter-spacing:-.03em}.finance-stats article small{font-size:10px;color:#929d96;line-height:1.5}.chart-card,.ledger-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:25px;margin-top:17px;box-shadow:var(--shadow)}.chart-heading,.ledger-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.chart-heading h3,.ledger-heading h3{font:800 16px Manrope;margin:0 0 6px}.chart-heading p,.ledger-heading p{font-size:11px;color:#829087;margin:0}.chart-legend{display:flex;gap:14px;font-size:10px;color:#748078}.chart-legend span{display:flex;align-items:center;gap:6px}.chart-legend i{width:8px;height:8px;border-radius:2px}.legend-income{background:#2b8a60}.legend-expense{background:#e4a05b}.bar-chart{height:210px;display:grid;grid-template-columns:repeat(6,1fr);gap:15px;align-items:end;margin:25px 0 12px;padding:0 12px;border-bottom:1px solid #e9eeea}.chart-month{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:9px;min-width:0}.bar-pair{height:175px;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:7px}.bar-wrap{height:100%;width:min(22px,35%);display:flex;align-items:flex-end}.bar{width:100%;border-radius:5px 5px 0 0;min-height:2px}.income-bar{background:#2b8a60}.expense-bar{background:#e4a05b}.chart-month>span{font-size:10px;color:#849087;white-space:nowrap}.chart-note{font-size:10px;line-height:1.6;color:#909b94;margin:14px 0 0}.ledger-heading{margin-bottom:17px}.public-label{font-size:9px;letter-spacing:.12em;font-weight:800;color:var(--green);background:#edf5ef;padding:8px 10px;border-radius:30px;white-space:nowrap}.ledger-row{display:grid;grid-template-columns:100px 1fr minmax(130px,auto);gap:15px;align-items:center;padding:13px 4px;border-top:1px solid #eff2ef;font-size:12px}.ledger-header{font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:#8a968e;font-weight:800}.ledger-row b{display:block;font-size:12px}.ledger-row small{display:block;color:#87938b;font-size:10px;margin-top:4px}.ledger-row strong{text-align:right;font-size:12px;white-space:nowrap}.positive{color:#23774e}.negative{color:#bd6b42}.ledger-empty{padding:22px}
.transaction-add{align-items:end;margin:18px 0 22px}.transaction-add label{min-width:145px}.transaction-add label:nth-of-type(4){min-width:190px}.transaction-add select,.transaction-edit select{width:100%;border:1px solid #dfe7e1;border-radius:8px;padding:11px;background:#fff;font:12px 'DM Sans';color:var(--ink)}.transaction-table{overflow-x:auto}.transaction-edit{grid-template-columns:115px 130px 1fr 1.4fr 125px auto auto;min-width:850px}.transaction-edit input{font-size:11px}
@media(max-width:800px){.finance-stats{grid-template-columns:1fr 1fr}.finance-stats article:last-child{grid-column:1/-1}.chart-heading{flex-direction:column}.ledger-row{grid-template-columns:75px 1fr;gap:8px}.ledger-row strong{grid-column:2;text-align:left}.ledger-header span:last-child{display:none}}
@media(max-width:560px){.finance-stats{grid-template-columns:1fr}.finance-stats article:last-child{grid-column:auto}.chart-card,.ledger-card{padding:18px}.chart-legend{flex-wrap:wrap}.bar-chart{gap:5px;padding:0 2px}.bar-pair{gap:4px}.chart-month>span{font-size:8px}.balance-strip{flex-direction:column;gap:5px}.ledger-row{grid-template-columns:68px 1fr}.public-label{font-size:8px}}
