:root{--h4bf-forest:#123d2b;--h4bf-green:#1d5b40;--h4bf-lime:#cbe7a7;--h4bf-ink:#17241c;--h4bf-muted:#68766d;--h4bf-line:#e1e9e2;--h4bf-bg:#f4f7f4;--h4bf-white:#fff;--h4bf-shadow:0 10px 28px #173c2a0c}.h4bf-cemis-dashboard,.h4bf-admin{color:var(--h4bf-ink);font-family:system-ui,-apple-system,"Segoe UI",sans-serif}.h4bf-hero{background:var(--h4bf-forest);color:#fff;border-radius:18px;padding:28px;margin:0 0 18px}.h4bf-hero span{font-size:11px;letter-spacing:.12em;font-weight:800;color:var(--h4bf-lime)}.h4bf-hero h2{color:#fff;font-size:clamp(26px,4vw,38px);line-height:1.1;letter-spacing:-.04em;margin:8px 0}.h4bf-hero p{color:#d6e4d9;margin:0}.h4bf-filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:15px;background:#fff;border:1px solid var(--h4bf-line);border-radius:15px;margin:0 0 16px;box-shadow:var(--h4bf-shadow)}.h4bf-filters label,.h4bf-form-inline label{display:flex;flex-direction:column;gap:5px;flex:1;min-width:155px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--h4bf-muted)}.h4bf-filters select,.h4bf-form-inline select{padding:10px;border:1px solid #d8e2da;border-radius:9px;background:#fff;color:var(--h4bf-ink);font:inherit;text-transform:none;letter-spacing:normal}.h4bf-filter-status{font-size:11px;color:var(--h4bf-green);padding:10px 0}.h4bf-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:16px}.h4bf-kpi{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:6px;min-width:0;background:#fff;border:1px solid var(--h4bf-line);border-radius:15px;padding:15px;box-shadow:var(--h4bf-shadow);cursor:pointer;color:var(--h4bf-ink);transition:transform .18s,border-color .18s}.h4bf-kpi:hover{transform:translateY(-2px);border-color:#a9c9ae}.h4bf-icon{display:grid;place-items:center;background:#e9f3e9;color:var(--h4bf-green);width:34px;height:34px;border-radius:10px;font-size:18px}.h4bf-kpi b{font-size:clamp(20px,2vw,27px);letter-spacing:-.04em;line-height:1.1;margin-top:8px}.h4bf-kpi span:not(.h4bf-icon){font-size:12px;font-weight:750}.h4bf-kpi small{font-size:10px;color:var(--h4bf-muted)}.h4bf-two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-bottom:15px}.h4bf-panel{background:#fff;border:1px solid var(--h4bf-line);border-radius:16px;padding:19px;box-shadow:var(--h4bf-shadow);min-width:0;margin-bottom:15px}.h4bf-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:15px}.h4bf-panel h3{font-size:16px;margin:0;color:var(--h4bf-ink)}.h4bf-panel-head p{font-size:12px;color:var(--h4bf-muted);margin:4px 0 0}.h4bf-chip{background:#edf5ee;color:var(--h4bf-green);border-radius:99px;padding:5px 8px;font-size:10px;font-weight:800;white-space:nowrap}.h4bf-map{background:linear-gradient(135deg,#eef5ee,#f9fbf7);border:1px solid var(--h4bf-line);border-radius:12px;padding:14px;min-height:250px;display:flex;flex-direction:column;gap:12px}.h4bf-map-copy{background:#ffffffd9;padding:12px;border-radius:10px;font-size:12px}.h4bf-map-copy p{margin:5px 0 0;color:var(--h4bf-muted)}.h4bf-location-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.h4bf-location-list div{background:#fff;border:1px solid var(--h4bf-line);border-radius:9px;padding:9px 10px;display:flex;justify-content:space-between;gap:8px;font-size:12px}.h4bf-chart{display:flex;flex-direction:column;gap:11px}.h4bf-bar-row{display:grid;grid-template-columns:48px minmax(40px,1fr) 62px;align-items:center;gap:9px;font-size:11px}.h4bf-track{height:9px;background:#edf2ee;border-radius:99px;overflow:hidden}.h4bf-track i{display:block;height:100%;background:var(--h4bf-green);border-radius:99px}.h4bf-bar-row b{text-align:right;font-size:10px}.h4bf-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.h4bf-stat-grid div,.h4bf-equity div{border:1px solid var(--h4bf-line);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:5px}.h4bf-stat-grid span,.h4bf-equity span{font-size:11px;color:var(--h4bf-muted)}.h4bf-stat-grid b,.h4bf-equity b{font-size:22px;color:var(--h4bf-forest)}.h4bf-equity{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.h4bf-story{background:#f2f8f3;border-left:4px solid var(--h4bf-green);padding:15px;border-radius:0 12px 12px 0;font-size:13px;line-height:1.65}.h4bf-finance-row{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--h4bf-line);padding:12px 0}.h4bf-finance-row b{margin-left:auto}.h4bf-finance-row small{color:var(--h4bf-muted)}.h4bf-form-inline{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.h4bf-form-inline>b{padding:10px;background:#f2f8f3;border-radius:9px;color:var(--h4bf-green)}.h4bf-locked{background:#f5f7f5;border:1px solid var(--h4bf-line);padding:12px;border-radius:10px;color:var(--h4bf-muted)}.h4bf-btn{display:inline-block;padding:10px 14px;border-radius:9px;background:var(--h4bf-forest);color:#fff;text-decoration:none}.h4bf-admin-banner{background:#fff4d8;border:1px solid #edd59a;padding:15px 18px;border-radius:12px;color:#71561d;margin:16px 0}.h4bf-admin-banner p{margin:.5em 0 0}.h4bf-admin-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}.h4bf-admin-kpis>div{background:#fff;border:1px solid #dcdcde;border-radius:12px;padding:16px}.h4bf-admin-kpis span{display:block;color:#646970;font-size:12px}.h4bf-admin-kpis b{display:block;font-size:27px;margin-top:6px;color:#123d2b}.h4bf-code-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.h4bf-code-grid>div{background:#fff;border:1px solid #dcdcde;border-radius:10px;padding:14px}.h4bf-code-grid code{font-size:13px;font-weight:700}.h4bf-code-grid p{color:#646970;margin-bottom:0}.h4bf-admin-form{background:#fff;border:1px solid #dcdcde;border-radius:12px;padding:20px;margin-top:18px}.h4bf-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.h4bf-form-grid label,.h4bf-admin-form>label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:12px}.h4bf-form-grid input,.h4bf-form-grid select,.h4bf-form-grid textarea,.h4bf-admin-form>label input,.h4bf-admin-form>label select{width:100%;max-width:none;min-height:38px;padding:8px;border:1px solid #c3c4c7;border-radius:6px}.h4bf-form-grid .wide{grid-column:1/-1}.h4bf-table-wrap{overflow:auto;margin-top:14px}.h4bf-admin .description{max-width:900px}.h4bf-admin-banner strong{font-weight:800}.h4bf-cemis-dashboard button:focus-visible,.h4bf-cemis-dashboard select:focus-visible{outline:2px solid var(--h4bf-green);outline-offset:2px}@media(max-width:1100px){.h4bf-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.h4bf-equity{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:780px){.h4bf-two-col{grid-template-columns:1fr}.h4bf-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.h4bf-code-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.h4bf-admin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.h4bf-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.h4bf-kpi{padding:11px}.h4bf-form-grid{grid-template-columns:1fr}.h4bf-code-grid{grid-template-columns:1fr}.h4bf-hero{padding:20px}.h4bf-panel{padding:14px}.h4bf-location-list{grid-template-columns:1fr}}

.h4bf-quality-good{display:inline-block;background:#e4f4e5;color:#176536;border-radius:99px;padding:4px 9px;font-weight:800;font-size:11px}.h4bf-quality-warn{display:inline-block;background:#fff0d1;color:#875c08;border-radius:99px;padding:4px 9px;font-weight:800;font-size:11px}.h4bf-quality-list{background:#fff;border:1px solid #dcdcde;border-radius:12px;padding:18px 34px;line-height:1.9}.h4bf-quality-list li{padding-left:4px}

/* v3.1 reporting and admin public-preview additions */
.h4bf-report-filters{display:flex;gap:12px;align-items:end;flex-wrap:wrap;background:#fff;border:1px solid #dfe8e0;border-radius:14px;padding:16px;margin:16px 0 20px}.h4bf-report-filters label{display:flex;flex-direction:column;gap:5px;font-weight:600;min-width:170px}.h4bf-report-filters select{min-height:36px;min-width:170px}.h4bf-report-paper{background:#fff;border:1px solid #dfe8e0;border-radius:14px;padding:26px;margin:18px 0;max-width:1200px;color:#17241c}.h4bf-report-brand{display:flex;gap:14px;align-items:center;border-bottom:2px solid #1d5b40;padding-bottom:16px;margin-bottom:16px}.h4bf-report-brand>span{display:grid;place-items:center;background:#123d2b;color:#cbe7a7;font-weight:900;border-radius:12px;padding:14px}.h4bf-report-brand h2{margin:0 0 4px}.h4bf-report-brand p{margin:0;color:#68766d}.h4bf-report-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.h4bf-report-metrics>div{background:#f2f7f2;border:1px solid #e0e9e1;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:5px}.h4bf-report-metrics small{color:#68766d}.h4bf-report-metrics b{font-size:25px;color:#123d2b}.h4bf-report-paper h3{margin-top:22px}.h4bf-report-actions{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0 24px}.h4bf-public-preview-frame{background:#f4f7f4;border:1px solid #dfe8e0;border-radius:12px;padding:16px}.h4bf-public-preview-frame .h4bf-cemis-dashboard{max-width:100%;margin:0}.h4bf-admin .h4bf-report-paper .description{color:#68766d}.h4bf-report-paper .h4bf-table-wrap{overflow-x:auto}@media print{body.wp-admin #adminmenumain,body.wp-admin #wpadminbar,#wpfooter,.h4bf-report-filters,.h4bf-report-actions,.h4bf-admin>h1,.h4bf-admin>.description,.h4bf-admin-banner,.wrap>.button{display:none!important}body.wp-admin #wpcontent{margin-left:0!important}.h4bf-report-paper{border:0;box-shadow:none;max-width:none;padding:0}.h4bf-report-metrics{break-inside:avoid}.h4bf-report-paper table{font-size:10pt}}

.h4bf-hero{display:flex;align-items:center;gap:22px}.h4bf-logo{width:94px;height:94px;object-fit:contain;background:#fff;border-radius:50%;padding:5px;flex:0 0 auto}.h4bf-hero>div{min-width:0}@media(max-width:480px){.h4bf-hero{align-items:flex-start;gap:12px}.h4bf-logo{width:62px;height:62px}}

/* v4.1.0 real interactive map and project bulk editor */
.h4bf-real-map{width:100%;height:360px;min-height:300px;border:1px solid #d8e5dc;z-index:1}
.h4bf-map-caption{font-size:12px;color:#66756c;margin-top:8px}
.h4bf-map-panel .leaflet-container{font-family:inherit}
#h4bf-cemis-bulk-projects .h4bf-admin-banner label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600}
#h4bf-cemis-bulk-projects input[type=text],#h4bf-cemis-bulk-projects select{min-width:145px;max-width:210px}

/* v4.3.0 visual analytics: responsive, accessible chart-first sections */
.h4bf-visual-panel{overflow:hidden}
.h4bf-svg-chart-wrap{width:100%;overflow-x:auto;padding:8px 0 0}
.h4bf-line-chart{display:block;width:100%;min-width:520px;height:auto;overflow:visible}
.h4bf-gridline{stroke:#e7eee8;stroke-width:1}
.h4bf-axis-label{fill:#68766d;font:11px system-ui,-apple-system,"Segoe UI",sans-serif}
.h4bf-trend-line{fill:none;stroke:#1d7550;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}
.h4bf-trend-point{fill:#fff;stroke:#1d7550;stroke-width:3;cursor:pointer}
.h4bf-trend-point:hover{r:7;fill:#cbe7a7}
.h4bf-chart-legend{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:4px 4px 0;font-size:11px;color:#68766d}
.h4bf-chart-legend span{display:flex;align-items:center;gap:7px}
.h4bf-chart-legend i{display:inline-block;width:20px;height:4px;border-radius:99px;background:#1d7550}
.h4bf-horizontal-chart,.h4bf-equity-chart{display:flex;flex-direction:column;gap:17px;padding:6px 0}
.h4bf-hbar-row{display:grid;grid-template-columns:minmax(135px,205px) minmax(70px,1fr) 70px;align-items:center;gap:12px}
.h4bf-hbar-label{font-size:12px;font-weight:650;color:#30463a}
.h4bf-hbar-track,.h4bf-equity-track{height:13px;background:#edf3ee;border-radius:99px;overflow:hidden;box-shadow:inset 0 1px 2px #123d2b0c}
.h4bf-hbar-fill,.h4bf-equity-fill{display:block;height:100%;min-width:0;border-radius:99px;background:linear-gradient(90deg,#1d5b40,#6caa72);transition:width .45s ease}
.h4bf-fill-male,.h4bf-fill-adult,.h4bf-fill-urban{background:linear-gradient(90deg,#5b8b75,#a8c9a9)}
.h4bf-fill-youth{background:linear-gradient(90deg,#3d8060,#b2d786)}
.h4bf-fill-pwd{background:linear-gradient(90deg,#376d82,#8ec6c4)}
.h4bf-fill-rural{background:linear-gradient(90deg,#4d8051,#c1d99b)}
.h4bf-hbar-value{font-size:12px;font-weight:750;text-align:right;color:#123d2b;font-variant-numeric:tabular-nums}
.h4bf-chart-note,.h4bf-equity-footnote{margin:10px 0 0;color:#68766d;font-size:11px;line-height:1.55}
.h4bf-equity-row{padding:0 0 2px}
.h4bf-equity-row-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;font-size:12px}
.h4bf-equity-row-head span{font-weight:650;color:#30463a}
.h4bf-equity-row-head strong{color:#123d2b;font-size:13px;font-variant-numeric:tabular-nums}
.h4bf-equity-track{height:15px}
.h4bf-equity-scale{display:flex;justify-content:space-between;font-size:10px;color:#849087;margin-top:5px}
.h4bf-chart-empty{padding:14px 16px;background:#f4f8f4;border:1px dashed #cbd9cd;border-radius:10px;color:#5b6d60;font-size:12px;line-height:1.6}
@media(max-width:640px){.h4bf-hbar-row{grid-template-columns:minmax(105px,135px) minmax(45px,1fr) 54px;gap:8px}.h4bf-hbar-label,.h4bf-hbar-value{font-size:10px}.h4bf-panel{padding:14px}.h4bf-chart-legend{align-items:flex-start;flex-direction:column}}

/* v4.5.0 percentage-first charts */
.h4bf-percent-chart{min-height:260px}
.h4bf-disagg-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.h4bf-disagg-group{border:1px solid #dce8df;border-radius:16px;padding:18px;background:linear-gradient(180deg,#fff,#fbfdfb);min-width:0}
.h4bf-disagg-group h4{margin:0 0 20px;color:#173e2e;font-size:15px;font-weight:700}
.h4bf-percent-row{grid-template-columns:minmax(130px,190px) minmax(80px,1fr) minmax(100px,130px);gap:14px;align-items:center;margin:18px 0}
.h4bf-percent-row .h4bf-hbar-value{display:flex;flex-direction:column;align-items:flex-end;line-height:1.25;white-space:nowrap}
.h4bf-percent-row .h4bf-hbar-value strong{font-size:18px;color:#164b36;font-weight:800}
.h4bf-percent-row .h4bf-hbar-value small{font-size:11px;color:#6b7c73;margin-top:4px}
.h4bf-percent-row .h4bf-hbar-track,.h4bf-equity-percent-chart .h4bf-equity-track{height:14px;border-radius:999px;background:#eaf1ec;overflow:hidden}
.h4bf-percent-row .h4bf-hbar-fill,.h4bf-equity-percent-chart .h4bf-equity-fill{border-radius:999px;transition:width .55s cubic-bezier(.2,.7,.2,1)}
.h4bf-equity-percent-chart{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.h4bf-equity-percent-chart .h4bf-equity-row{padding:18px;border:1px solid #e0e9e2;border-radius:16px;background:#fff;min-width:0}
.h4bf-equity-percent-chart .h4bf-equity-row-head strong{font-size:24px;color:#164b36;letter-spacing:-.03em}
.h4bf-equity-percent-chart .h4bf-equity-scale{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:#718078;margin-top:9px}
.h4bf-chart-legend{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}
.h4bf-trend-point{cursor:pointer;transition:r .2s ease}.h4bf-trend-point:hover{r:7}
@media(max-width:800px){.h4bf-disagg-groups,.h4bf-equity-percent-chart{grid-template-columns:1fr}.h4bf-percent-row{grid-template-columns:1fr;gap:8px}.h4bf-percent-row .h4bf-hbar-value{align-items:flex-start;flex-direction:row;gap:8px}.h4bf-percent-row .h4bf-hbar-value strong{font-size:16px}}

/* v4.6.0 filter refresh feedback */
.h4bf-cemis-dashboard.h4bf-is-updating{opacity:.78;transition:opacity .18s ease}.h4bf-filter-status{transition:color .18s ease}.h4bf-chart-empty{padding:1rem;border-radius:12px;background:#f0f6f2;color:#245640}.h4bf-percent-chart .h4bf-trend-point{cursor:help}

.h4bf-apply-filters{align-self:end;min-height:42px;padding:11px 18px;border:0;border-radius:9px;background:var(--h4bf-forest);color:#fff;font-weight:800;cursor:pointer;white-space:nowrap}.h4bf-apply-filters:hover{background:var(--h4bf-green)}.h4bf-apply-filters:disabled{opacity:.6;cursor:wait}.h4bf-cemis-dashboard.h4bf-is-updating .h4bf-apply-filters{pointer-events:none}
