:root{--ink:#17324d;--muted:#65788a;--paper:#f3f8fb;--card:#ffffff;--line:#dbe6ec;--teal:#147d8f;--teal2:#34a7a1;--mint:#dff3f1;--red:#ef7c69;--redsoft:#ffebe6;--gold:#f0b95b;--blue:#4f83cc;--sky:#e6f1fb;--shadow:0 14px 44px rgba(31,74,104,.09)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 "DM Sans",sans-serif}.noise{position:fixed;inset:0;pointer-events:none;opacity:.16;z-index:-1;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E")}.topbar{height:76px;padding:0 max(28px,calc((100vw - 1280px)/2));display:flex;align-items:center;justify-content:space-between;background:rgba(243,240,232,.9);backdrop-filter:blur(16px);border-bottom:1px solid rgba(21,40,35,.1);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--ink);color:#fff;font:800 20px Manrope}.brand strong,.brand small{display:block}.brand strong{font:800 15px Manrope}.brand small{color:var(--muted);font-size:10px;letter-spacing:.02em}.topbar nav{display:flex;gap:28px}.topbar nav a{color:#52625d;text-decoration:none;font-weight:600;font-size:13px}.topbar nav a:hover{color:var(--teal)}.header-actions{display:flex;align-items:center;gap:18px}.freshness{font-size:12px;color:var(--muted);white-space:nowrap}.freshness i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--teal2);margin-right:7px;box-shadow:0 0 0 4px rgba(24,167,149,.12)}button,.export,select,input{font:inherit}.sync-button,.export{border:0;border-radius:10px;padding:10px 14px;background:var(--ink);color:white;font-weight:700;font-size:12px;cursor:pointer;text-decoration:none}.sync-button span{font-size:16px;margin-right:5px}.sync-button:disabled{opacity:.55;cursor:wait}main{max-width:1280px;margin:auto;padding:0 28px}.hero{min-height:420px;display:flex;align-items:flex-end;justify-content:space-between;padding:92px 0 52px;position:relative}.hero:after{content:"";position:absolute;right:5%;top:36px;width:290px;height:290px;border-radius:50%;border:1px solid rgba(13,121,111,.12);box-shadow:0 0 0 38px rgba(13,121,111,.035),0 0 0 76px rgba(13,121,111,.025);z-index:-1}.eyebrow,.kicker{color:var(--teal);text-transform:uppercase;letter-spacing:.16em;font-weight:800;font-size:10px}.hero h1{font:800 clamp(50px,6.2vw,86px)/.95 Manrope;margin:18px 0 24px;letter-spacing:-.055em}.hero h1 em{font-style:normal;color:var(--teal)}.hero p{max-width:600px;color:#596a65;font-size:17px}.hero-control{background:var(--card);padding:18px;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);width:240px;margin-bottom:16px;position:relative}.hero-control label,.hero-control span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.09em;font-weight:700}.hero-control select{width:100%;border:0;background:transparent;font:800 34px Manrope;color:var(--ink);padding:2px 0 8px;outline:0}.metrics{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.metric{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:0 8px 24px rgba(29,52,45,.04);min-height:184px}.metric-head{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.metric-icon{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:var(--mint);color:var(--teal);font-size:17px}.expense-card .metric-icon{background:var(--redsoft);color:var(--red)}.metric>strong{font:800 clamp(25px,2.4vw,38px) Manrope;display:block;margin:17px 0}.progress{height:6px;background:#e6e8e2;border-radius:9px;overflow:hidden;margin-bottom:10px}.progress i{display:block;height:100%;width:0;background:var(--teal2);border-radius:9px;transition:.6s}.expense-card .progress i{background:var(--red)}.metric small{color:var(--muted)}.metric small b{color:var(--ink)}.balance-card{background:var(--ink);color:#fff}.balance-card .metric-head{color:#b8c4c0}.balance-card .metric-icon{background:rgba(255,255,255,.1);color:white}.balance-card p{color:#aebdb8;font-size:12px;margin:-7px 0 14px}.metric-pill{font-size:10px;text-transform:uppercase;letter-spacing:.07em;background:rgba(89,198,174,.15);color:#77dac5;padding:6px 9px;border-radius:20px;font-weight:800}.insight{display:flex;align-items:center;gap:16px;padding:18px 22px;margin:16px 0 38px;border:1px solid #beddd3;background:#e8f4ee;border-radius:14px}.insight-mark{width:26px;height:26px;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;background:var(--teal);color:white;font:bold 13px serif}.insight p{display:inline;margin:0 0 0 7px;color:#46655d}.grid.two{display:grid;grid-template-columns:1.55fr 1fr;gap:18px;margin-bottom:18px}.programs-grid{grid-template-columns:1fr 1fr!important}.panel{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:0 8px 30px rgba(29,52,45,.035)}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:20px}.panel h2,.section-title h2,.method h2{font:800 21px/1.2 Manrope;margin:5px 0}.legend{display:flex;gap:14px;font-size:10px;color:var(--muted);padding-top:6px}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}.teal{background:var(--teal2)}.red{background:var(--red)}.chart{height:270px;display:flex;gap:8px;align-items:stretch;position:relative;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent,transparent calc(25% - 1px),#e8e9e4 25%);padding:12px 4px 0}.month{flex:1;display:flex;gap:3px;align-items:flex-end;position:relative}.month i{width:50%;min-height:1px;border-radius:5px 5px 0 0;transition:.6s;height:var(--h);position:relative}.month i:first-child{background:var(--teal2)}.month i:nth-child(2){background:var(--red)}.month label{position:absolute;bottom:-25px;left:50%;transform:translateX(-50%);font-size:9px;color:var(--muted);text-transform:uppercase}.month i:hover:after{content:attr(data-value);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:var(--ink);color:white;border-radius:6px;padding:4px 6px;font:9px DM Sans;white-space:nowrap;z-index:2}.chart-note{color:var(--muted);font-size:10px;margin:31px 0 0}.donut-wrap{display:flex;align-items:center;gap:26px;min-height:282px}.donut{width:176px;height:176px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--teal) 0 30%,var(--gold) 30% 55%,var(--red) 55% 70%,#8fa9a0 70% 100%);position:relative}.donut:after{content:"";position:absolute;width:108px;height:108px;background:var(--card);border-radius:50%}.donut>span{z-index:1;text-align:center}.donut b,.donut small{display:block}.donut b{font:800 18px Manrope}.donut small{color:var(--muted);font-size:9px;text-transform:uppercase}.category-list{flex:1}.category-row{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;margin:10px 0;font-size:11px}.category-row i{width:8px;height:8px;border-radius:50%;background:var(--c)}.category-row span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-row b{font-size:10px}.tag{font-size:9px;text-transform:uppercase;letter-spacing:.1em;background:#ecece6;color:var(--muted);padding:5px 8px;border-radius:20px}.bar-list{display:grid;gap:11px}.bar-row{display:grid;grid-template-columns:minmax(120px,1fr) 2.1fr 78px;gap:12px;align-items:center;font-size:11px}.bar-row>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar-row div{height:8px;background:#e8e9e4;border-radius:10px;overflow:hidden}.bar-row i{display:block;height:100%;width:var(--w);background:var(--teal);border-radius:10px}.bar-row b{text-align:right;font-size:10px}.supplier-list{padding:0;margin:0;list-style:none}.supplier-list li{display:grid;grid-template-columns:25px 1fr auto;align-items:center;gap:10px;border-bottom:1px solid #ebece7;padding:9px 0}.supplier-list li:last-child{border:0}.supplier-list .rank{width:22px;height:22px;border-radius:7px;background:#e8eee9;display:grid;place-items:center;font-size:9px;font-weight:800}.supplier-list span:nth-child(2){font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.supplier-list b{font-size:10px}.transactions{padding:62px 0}.section-title{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:24px}.section-title h2{font-size:34px}.section-title p{color:var(--muted);margin:5px 0}.export{background:transparent;color:var(--teal);border:1px solid #adc9c0}.table-card{background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden}.table-tools{display:flex;justify-content:space-between;gap:18px;padding:18px;border-bottom:1px solid var(--line)}.tabs{background:#ebece6;border-radius:10px;padding:3px}.tabs button{border:0;background:transparent;padding:8px 15px;border-radius:8px;font-size:11px;font-weight:700;color:var(--muted);cursor:pointer}.tabs button.active{background:var(--card);color:var(--ink);box-shadow:0 2px 7px rgba(0,0,0,.07)}.filters{display:flex;gap:10px}.search{display:flex;align-items:center;gap:8px;background:#f2f1ec;border:1px solid #e1e2dc;border-radius:9px;padding:0 11px}.search input{border:0;outline:0;background:transparent;width:240px;font-size:12px}.filters select{border:1px solid #dcded7;background:#fffdf8;border-radius:9px;padding:0 11px;color:var(--muted);font-size:11px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:850px}th{text-align:left;padding:12px 18px;background:#f3f2ed;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.1em}td{padding:14px 18px;border-bottom:1px solid #ecece7;font-size:11px;vertical-align:top}td .party{display:block;font-weight:700;margin-bottom:3px}td .desc{display:block;color:var(--muted);max-width:520px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.amount{text-align:right;font-weight:800}.category-badge{display:inline-block;border-radius:20px;background:#e8f1ed;color:#37685d;padding:4px 8px;font-size:9px;font-weight:700}.pagination{padding:14px 18px;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:10px}.pagination div{display:flex;align-items:center;gap:10px}.pagination button{width:30px;height:30px;border:1px solid var(--line);border-radius:8px;background:white;cursor:pointer}.pagination button:disabled{opacity:.35}.empty-row{text-align:center!important;color:var(--muted);padding:40px!important}.method{border-top:1px solid var(--line);padding:60px 0 30px}.method-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:28px 0}.method-grid article{border-left:2px solid #b7d5cc;padding:4px 20px}.method-grid article>span{font:800 10px Manrope;color:var(--teal)}.method-grid h3{font:800 14px Manrope;margin:12px 0 6px}.method-grid p{color:var(--muted);font-size:11px}.source-row{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:18px 0;color:var(--muted);font-size:10px}.source-row a{color:var(--teal);font-weight:700}footer{max-width:1280px;margin:40px auto 0;padding:24px 28px 38px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:10px}.compact .brand-mark{width:32px;height:32px;font-size:16px}.loading{position:fixed;inset:0;background:rgba(243,240,232,.95);z-index:50;display:none;place-items:center;align-content:center;text-align:center}.loading.show{display:grid}.loading strong{font:800 22px Manrope;margin:14px 0 4px}.loading span{color:var(--muted)}.loader{width:38px;height:38px;border:4px solid #cfd8d3;border-top-color:var(--teal);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;right:22px;bottom:22px;background:var(--ink);color:white;border-radius:11px;padding:13px 17px;font-size:12px;box-shadow:var(--shadow);transform:translateY(100px);opacity:0;transition:.3s;z-index:60}.toast.show{transform:none;opacity:1}
@media(max-width:980px){.topbar nav,.freshness{display:none}.hero{min-height:360px}.metrics{grid-template-columns:1fr 1fr}.balance-card{grid-column:1/-1}.grid.two,.programs-grid{grid-template-columns:1fr!important}.donut-wrap{justify-content:center}.method-grid{grid-template-columns:1fr}.method-grid article{border-left:0;border-top:2px solid #b7d5cc;padding:18px 0}.source-row{flex-wrap:wrap}}
@media(max-width:650px){.topbar{padding:0 16px;height:68px}.brand small{display:none}.sync-button{padding:9px}.sync-button{font-size:0}.sync-button span{font-size:18px;margin:0}main{padding:0 16px}.hero{display:block;padding:65px 0 36px}.hero h1{font-size:49px}.hero-control{width:100%;margin-top:30px}.metrics{grid-template-columns:1fr}.balance-card{grid-column:auto}.insight{align-items:flex-start}.insight p{display:block;margin:4px 0 0}.panel{padding:18px}.panel-head{display:block}.legend{margin-top:8px}.donut-wrap{display:block}.donut{margin:15px auto 28px}.bar-row{grid-template-columns:1fr 1.4fr 65px}.table-tools,.section-title{display:block}.filters{display:block;margin-top:12px}.search{height:42px}.search input{width:100%}.filters select{height:42px;width:100%;margin-top:8px}.export{display:inline-block;margin-top:14px}.source-row,footer{display:block}.source-row span{display:block;margin:8px 0}footer p{margin-top:14px}.programs-grid{display:block!important}.programs-grid .panel{margin-bottom:18px}}

/* Friendly civic palette and interactive data views */
.topbar{background:rgba(247,251,253,.93);border-bottom-color:rgba(23,50,77,.1)}
.brand-mark{border-radius:12px;background:linear-gradient(145deg,var(--blue),var(--teal));box-shadow:0 6px 15px rgba(79,131,204,.25)}
.hero:after{border-color:rgba(79,131,204,.15);box-shadow:0 0 0 38px rgba(52,167,161,.05),0 0 0 76px rgba(79,131,204,.035)}
.hero p{color:var(--muted)}.metric{box-shadow:0 8px 24px rgba(31,74,104,.05)}
.balance-card{background:linear-gradient(140deg,#28587c,#177e8d)}
.insight{border-color:#bfdbe8;background:#eaf6fa}.insight p{color:#476e80}
.chart-controls{display:flex;align-items:flex-end;gap:12px;flex-direction:column}.chart-controls select{max-width:220px;border:1px solid var(--line);background:#f8fbfd;color:var(--ink);border-radius:9px;padding:7px 10px;font-size:10px;font-weight:700}.chart-controls .legend{padding-top:0}
.rankings-grid{display:grid;grid-template-columns:1.08fr 1fr 1fr;gap:18px;margin-bottom:18px;align-items:start}.rankings-grid .panel{height:100%}
.bar-row.clickable{grid-template-columns:minmax(110px,1fr) 1.65fr 70px 16px;color:var(--ink);text-decoration:none;padding:5px 7px;border-radius:8px;margin:0 -7px;transition:.18s}.bar-row.clickable:hover{background:var(--sky);transform:translateX(2px)}.bar-row.clickable em{font-style:normal;color:var(--blue);font-size:13px}.bar-row.clickable i{background:linear-gradient(90deg,var(--teal2),var(--blue))}
.supplier-list li{padding:8px 0}.supplier-list .rank{background:var(--sky);color:var(--blue)}.income-list .rank{background:#fff2d8;color:#9b681c}
.sort-button,.supplier-sort{border:0;background:transparent;color:inherit;padding:0;text-transform:inherit;letter-spacing:inherit;font-weight:inherit;font-size:inherit;cursor:pointer;white-space:nowrap}.sort-button:hover,.supplier-sort:hover,.sort-button.active,.supplier-sort.active{color:var(--blue)}.sort-button i,.supplier-sort i{font-style:normal;margin-left:3px;color:var(--blue)}
.suppliers-section{padding:0 0 62px}.supplier-tools{align-items:center}.method-note{color:var(--muted);font-size:10px}.company-links{display:flex;gap:7px;white-space:nowrap}.company-links a{color:var(--blue);font-size:10px;font-weight:700;text-decoration:none;padding:4px 7px;border-radius:7px;background:var(--sky)}.company-links a:hover{background:#d6e9f8}.company-links span{color:#9aa8b4;font-size:10px}.table-card{box-shadow:0 12px 35px rgba(31,74,104,.05)}
.back-link{color:var(--blue);font-weight:700;text-decoration:none;font-size:12px}.program-page{max-width:1180px}.program-hero{padding:82px 0 34px}.program-hero h1{font:800 clamp(38px,5vw,68px)/1 Manrope;letter-spacing:-.045em;margin:16px 0}.program-hero>p{color:var(--muted)}.program-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:34px}.program-summary article{background:var(--card);border:1px solid var(--line);border-radius:15px;padding:20px}.program-summary small,.program-summary strong{display:block}.program-summary small{color:var(--muted);text-transform:uppercase;letter-spacing:.09em;font-size:9px;font-weight:700}.program-summary strong{font:800 25px Manrope;margin-top:8px}.program-summary article:last-child{background:linear-gradient(140deg,#28587c,#177e8d);color:white}.program-summary article:last-child small{color:#cde1e8}.compact-section{padding-top:16px}
@media(max-width:1100px){.rankings-grid{grid-template-columns:1fr 1fr}.rankings-grid .panel:first-child{grid-column:1/-1}}
@media(max-width:700px){.rankings-grid{display:block}.rankings-grid .panel{margin-bottom:18px}.chart-controls{align-items:flex-start;margin-top:10px}.program-summary{grid-template-columns:1fr}.supplier-tools .search{margin-bottom:10px}.bar-row.clickable{grid-template-columns:1fr 1.2fr 65px 12px}}

/* Minimal privacy consent */
.signature{color:var(--teal);font-weight:700}
.privacy-banner[hidden],.privacy-settings[hidden]{display:none}.privacy-banner{position:fixed;right:22px;bottom:22px;z-index:100;width:min(440px,calc(100vw - 32px));padding:19px;background:rgba(255,255,255,.98);border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 55px rgba(23,50,77,.2);backdrop-filter:blur(14px)}.privacy-copy strong{display:block;font:800 16px Manrope;margin-bottom:6px}.privacy-copy>p,.privacy-copy details p{margin:0;color:var(--muted);font-size:11px;line-height:1.55}.privacy-copy details{margin-top:7px}.privacy-copy summary{width:max-content;color:var(--teal);font-size:10px;font-weight:700;cursor:pointer}.privacy-copy details p{margin-top:6px}.privacy-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}.privacy-button,.privacy-settings{border:0;border-radius:9px;font:700 11px "DM Sans",sans-serif;cursor:pointer}.privacy-button{padding:10px 13px}.privacy-button.primary{background:var(--ink);color:white}.privacy-button.secondary{background:var(--sky);color:var(--ink)}.privacy-button:focus-visible,.privacy-settings:focus-visible{outline:3px solid rgba(79,131,204,.35);outline-offset:2px}.privacy-settings{position:fixed;left:14px;bottom:14px;z-index:40;padding:7px 10px;background:rgba(255,255,255,.92);border:1px solid var(--line);color:var(--muted);box-shadow:0 5px 18px rgba(23,50,77,.1)}.privacy-settings:hover{color:var(--blue)}
@media(max-width:520px){.privacy-banner{right:16px;bottom:16px;padding:17px}.privacy-actions{display:grid;grid-template-columns:1fr}.privacy-button{width:100%}.privacy-button.primary{grid-row:1}}
