:root{
  --csf-bg:#071D46;--csf-popup:#0B2A57;--csf-accent:#2326C6;--csf-cyan:#1794DE;--csf-teal:#21D4C3;--csf-soft:#7AA7FF;
  --csf-indigo:#132A80;--csf-white:#FFFFFF;--csf-muted:#D7E3EA;--csf-w72:rgba(255,255,255,.72);--csf-w52:rgba(255,255,255,.52);
  --csf-line:rgba(255,255,255,.18);--csf-line2:rgba(255,255,255,.28);--csf-font:"Helvetica Now","Helvetica Neue",Arial,sans-serif;--csf-chart-footer-gap:28px;
}
.csf-chart-lab-admin{max-width:none;margin-right:20px}.csf-chart-lab-admin>h1,.csf-chart-lab-admin>p{font-family:var(--csf-font)}
.csf-chart-lab,.csf-chart-lab *{box-sizing:border-box}
.csf-chart-lab{width:100%;overflow:hidden;padding:46px clamp(18px,5vw,72px) 76px;background:#071D46;color:#fff;font-family:var(--csf-font)}
.csf-lab-intro,.csf-lab-chart-section{width:min(1280px,100%);margin:0 auto}.csf-lab-intro{margin-bottom:46px}
.csf-lab-kicker,.csf-lab-chart-index{font-size:10px;font-weight:700;letter-spacing:.11em;text-transform:uppercase}.csf-lab-kicker,.csf-lab-chart-index{color:var(--csf-cyan)}
.csf-lab-intro h2{margin:8px 0 0;font:700 26px/1.18 var(--csf-font);color:#fff}.csf-lab-intro p{max-width:760px;margin:11px 0 0;color:var(--csf-muted);font:400 14px/1.58 var(--csf-font)}
.csf-lab-chart-section{padding:34px 0 50px;border-top:0}
.csf-lab-heading-row{display:grid;grid-template-columns:48px 1fr;gap:14px;align-items:center;margin-bottom:20px}.csf-lab-chart-name{font:700 13px/1.25 var(--csf-font);color:#fff}
.csf-chart-shell{position:relative;width:100%;max-width:100%;min-width:0;background:transparent}.csf-chart-title{max-width:930px;margin:0 0 7px;color:#fff;font:700 22px/1.24 var(--csf-font);letter-spacing:-.01em}.csf-chart-subtitle{max-width:930px;margin:0 0 22px;color:var(--csf-muted);font:400 13px/1.5 var(--csf-font)}
.csf-chart-stage{width:100%;max-width:100%;min-width:0;min-height:0}.csf-chart-stage svg{display:block;width:100%;max-width:100%;height:auto;overflow:visible}.csf-chart-stage .csf-table-wrap{width:100%;overflow-x:auto;padding-bottom:2px}
.csf-chart-table{width:100%;min-width:760px;border-collapse:collapse;border-spacing:0;color:#fff;font:400 12px/1.5 var(--csf-font)}.csf-chart-table th,.csf-chart-table td{padding:16px 14px;border:1px solid var(--csf-line);vertical-align:top;text-align:left}.csf-chart-table thead th{font-weight:700;color:#fff;background:rgba(255,255,255,.035)}.csf-chart-table tbody th{width:22%;font-weight:700;color:#fff}.csf-chart-table td{color:var(--csf-muted)}
.csf-chart-footer{width:min(1120px,100%);margin:var(--csf-chart-footer-gap) auto 0;padding:0 0 18px;border-top:0;border-bottom:0}.csf-chart-footer-bar{min-height:32px;display:flex;align-items:flex-start;justify-content:flex-start;gap:22px}.csf-chart-footer-btn{display:inline-flex;align-items:center;gap:8px;margin:0;padding:0;border:0;background:transparent;cursor:pointer;color:#fff;font:700 12px/1 var(--csf-font)}.csf-chart-footer-btn:focus-visible{outline:1px solid var(--csf-cyan);outline-offset:4px}.csf-chart-footer-mark{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;background:#fff;color:#071D46;font:700 11px/1 var(--csf-font)}
.csf-chart-panel{max-width:1120px;padding:12px 0 24px;color:var(--csf-muted);font:400 12px/1.72 var(--csf-font)}.csf-chart-panel[hidden]{display:none}.csf-chart-panel strong{display:block;margin-bottom:5px;color:#fff;font:700 12px/1.3 var(--csf-font)}.csf-chart-panel p{margin:0}.csf-chart-source{margin:0 0 11px}.csf-chart-source:last-child{margin-bottom:0}.csf-chart-brand{display:block;width:100%;margin-top:26px;color:#fff;font:700 11px/1 var(--csf-font);letter-spacing:.26em;text-align:center;white-space:nowrap}
@media(max-width:760px){.csf-chart-lab{padding:30px 16px 54px}.csf-lab-intro h2{font-size:22px}.csf-lab-intro p{font-size:13px}.csf-lab-chart-section{padding:28px 0 44px}.csf-lab-heading-row{grid-template-columns:38px 1fr;margin-bottom:16px}.csf-chart-title{font-size:18px;line-height:1.28}.csf-chart-subtitle{font-size:12px;line-height:1.52;margin-bottom:16px}.csf-chart-stage{min-height:0}.csf-chart-footer{margin-top:var(--csf-chart-footer-gap)}.csf-chart-panel{font-size:11px;line-height:1.62}.csf-chart-brand{font-size:10px;letter-spacing:.22em}}

.csf-chart-stage .csf-emphasis-label{font-weight:700}
.csf-chart-stage .csf-bubble-outline{stroke:rgba(255,255,255,.42);stroke-width:1}
@media(max-width:760px){
  .csf-chart-footer{margin-top:var(--csf-chart-footer-gap);padding-bottom:28px}
}

.csf-chart-footer::after{content:'';display:block;width:min(760px,100%);height:1px;margin:18px auto 0;background:var(--csf-line)}
.csf-chart-footer-bar{margin-bottom:2px}
.csf-chart-brand{display:block;width:100%;margin-top:18px;color:#fff;font:700 11px/1 var(--csf-font);letter-spacing:.26em;text-align:center;white-space:nowrap}
.csf-chart-panel{padding:12px 0 14px}

/* Collision-safe labels may expand an exhibit vertically on desktop. */
.csf-chart-stage,.csf-chart-stage svg{overflow:visible!important}

/* Mobile exhibits must remain inside the viewport. Labels are kept inside the SVG
   by the renderer; the stage prevents any residual SVG overflow from widening the page. */
@media(max-width:760px){
  .csf-chart-shell,.csf-chart-stage,.csf-chart-footer,.csf-chart-panel{width:100%;max-width:100%;min-width:0}
  .csf-chart-stage{overflow:hidden!important;min-height:0!important}
  .csf-chart-stage svg{display:block!important;width:100%!important;max-width:100%!important;height:auto!important;overflow:visible!important}
  .csf-chart-table{width:100%;min-width:0;table-layout:fixed;font-size:10px}
  .csf-chart-table th,.csf-chart-table td{padding:10px 8px;overflow-wrap:anywhere;word-break:normal}
}


/* Additive organizational-hierarchy family. Existing chart rules remain unchanged. */
.csf-chart-stage .csf-orgchart{--csf-org-line:var(--csf-line2);width:100%;max-width:100%;min-width:0;color:var(--csf-muted);font-family:var(--csf-font)}
.csf-orgchart-leader{position:relative;z-index:1;width:max-content;max-width:min(100%,420px);margin:0 auto;padding:10px 22px;background:var(--csf-popup);border:1px solid var(--csf-line2);color:#fff;text-align:center;font:600 13px/1.35 var(--csf-font);overflow-wrap:anywhere}
.csf-orgchart-grid{position:relative;display:grid;grid-template-columns:repeat(var(--csf-org-count,5),minmax(0,1fr));gap:10px;padding-top:39px;align-items:stretch}
.csf-orgchart-grid::before{content:'';position:absolute;top:19px;left:calc((100% - (var(--csf-org-count,5) - 1)*10px)/var(--csf-org-count,5)/2);right:calc((100% - (var(--csf-org-count,5) - 1)*10px)/var(--csf-org-count,5)/2);height:1px;background:var(--csf-org-line)}
.csf-orgchart-leader::after{content:'';position:absolute;top:100%;left:50%;height:20px;border-left:1px solid var(--csf-org-line)}
.csf-orgchart-card{position:relative;min-width:0;min-height:100%;padding:15px 12px 18px;border:1px solid var(--csf-line2);background:rgba(255,255,255,.025);overflow-wrap:anywhere;word-break:normal}
.csf-orgchart-card::before{content:'';position:absolute;bottom:100%;left:50%;height:20px;border-left:1px solid var(--csf-org-line)}
.csf-orgchart-heading{margin:0 0 16px!important;color:#fff;font:700 13px/1.25 var(--csf-font)!important;letter-spacing:0;overflow-wrap:anywhere}
.csf-orgchart-bullets{list-style:none;margin:0!important;padding:0!important;color:var(--csf-muted);font:400 12px/1.42 var(--csf-font)}
.csf-orgchart-bullets li{position:relative;margin:0 0 15px!important;padding:0 0 0 12px!important;overflow-wrap:anywhere}
.csf-orgchart-bullets li:last-child{margin-bottom:0!important}
.csf-orgchart-bullets li::before{content:'•';position:absolute;left:0;top:0;color:var(--csf-muted)}
@media(max-width:1000px){
  .csf-orgchart-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px;padding:28px 0 0 22px;border-left:1px solid var(--csf-org-line);margin:0 0 0 17px}
  .csf-orgchart-grid::before{display:none}
  .csf-orgchart-leader::after{height:28px;left:calc(50% - 0px)}
  .csf-orgchart-card::before{top:18px;bottom:auto;left:-23px;width:22px;height:1px;border-left:0;border-top:1px solid var(--csf-org-line)}
  .csf-orgchart-card:nth-child(even)::before{left:-23px}
}
@media(max-width:560px){
  .csf-orgchart-grid{grid-template-columns:minmax(0,1fr);gap:14px;margin:0 0 0 15px;padding:27px 0 0 20px}
  .csf-orgchart-card{padding:16px 15px 17px}
  .csf-orgchart-card::before,.csf-orgchart-card:nth-child(even)::before{left:-21px;width:20px}
  .csf-orgchart-heading{font-size:14px!important;margin-bottom:12px!important}
  .csf-orgchart-bullets{font-size:13px;line-height:1.48}
  .csf-orgchart-leader{font-size:13px}
}

@media(max-width:1000px){
  .csf-orgchart{position:relative}
  .csf-orgchart::before{content:'';position:absolute;top:calc(19px + 10px);left:17px;right:50%;height:1px;background:var(--csf-org-line)}
  .csf-orgchart-grid{margin-top:0}
}
@media(max-width:560px){.csf-orgchart::before{left:15px}}

/* Additive nonprofit report chart families. Existing family styles remain unchanged. */
.csf-chart-shell[data-csf-chart="indicatorrange"] .csf-chart-stage,
.csf-chart-shell[data-csf-chart="distributionbars"] .csf-chart-stage,
.csf-chart-shell[data-csf-chart="indicatorbars"] .csf-chart-stage,
.csf-chart-shell[data-csf-chart="costlayers"] .csf-chart-stage,
.csf-chart-shell[data-csf-chart="fundingcoverage"] .csf-chart-stage,
.csf-chart-shell[data-csf-chart="fullcostscope"] .csf-chart-stage{overflow:hidden!important}
@media(max-width:760px){
  .csf-chart-shell[data-csf-chart="indicatorrange"] .csf-chart-stage svg,
  .csf-chart-shell[data-csf-chart="distributionbars"] .csf-chart-stage svg,
  .csf-chart-shell[data-csf-chart="indicatorbars"] .csf-chart-stage svg,
  .csf-chart-shell[data-csf-chart="costlayers"] .csf-chart-stage svg,
  .csf-chart-shell[data-csf-chart="fundingcoverage"] .csf-chart-stage svg,
  .csf-chart-shell[data-csf-chart="fullcostscope"] .csf-chart-stage svg{width:100%!important;max-width:100%!important}
}
