:root{
  --red:#B43D32;--cream:#F6F2EC;--white:#FFFFFF;--ink:#252525;
  --bg:var(--cream);--surface:var(--white);--surface-2:color-mix(in srgb,var(--cream) 70%,var(--white));
  --text:var(--ink);--muted:color-mix(in srgb,var(--ink) 62%,var(--white));--line:color-mix(in srgb,var(--ink) 13%,var(--white));
  --accent:var(--red);--accent-soft:color-mix(in srgb,var(--red) 12%,var(--white));
  --sidebar-bg:var(--ink);--sidebar-text:var(--white);--success:color-mix(in srgb,var(--ink) 78%,var(--white));
  --shadow:0 10px 30px rgba(37,37,37,.08);--radius:16px;--radius-sm:11px;
  --sidebar-w:216px;--topbar-h:72px;--gap:14px;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text)}body{overflow:hidden}
button,input,select{font:inherit;color:inherit}button{cursor:pointer}.hidden{display:none!important}
.app-shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;height:100vh;min-height:600px;background:var(--bg)}
.sidebar{background:var(--sidebar-bg);color:var(--sidebar-text);display:flex;flex-direction:column;padding:18px 12px 14px;min-width:0;overflow:hidden}
.brand{display:flex;align-items:center;gap:11px;padding:4px 8px 22px}.brand-mark{width:34px;height:44px;position:relative;flex:0 0 34px}.brand-mark span{position:absolute;background:var(--red);border-radius:70% 10% 70% 10%;width:16px;height:27px}.brand-mark span:nth-child(1){left:3px;top:0;transform:rotate(28deg)}.brand-mark span:nth-child(2){right:0;top:10px;transform:rotate(118deg);background:var(--white);opacity:.84}.brand-mark span:nth-child(3){left:6px;bottom:0;transform:rotate(-25deg);opacity:.68}.brand-copy{display:flex;flex-direction:column;min-width:0}.brand-copy strong{font-family:Georgia,serif;font-size:23px;line-height:1}.brand-copy span{font-family:Georgia,serif;font-size:15px;line-height:1.15;margin-top:3px;white-space:normal}
.nav{display:flex;flex-direction:column;gap:5px}.nav-item{display:flex;align-items:center;gap:11px;border:0;background:transparent;color:inherit;padding:11px 12px;border-radius:10px;text-align:left;min-height:43px;width:100%}.nav-item:hover{background:rgba(255,255,255,.08)}.nav-item.active{background:var(--red)}.nav-icon{width:21px;height:21px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.42);border-radius:6px;font-size:11px;font-weight:800;flex:0 0 21px}.nav-label{font-size:14px;font-weight:650;white-space:normal;line-height:1.15}
.sidebar-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.15);padding:14px 8px 2px}.source-mini{display:flex;gap:9px;align-items:flex-start}.source-mini small{display:block;opacity:.62;font-size:10px}.source-mini strong{display:block;font-size:11px;line-height:1.3;margin-top:2px;overflow-wrap:anywhere}.status-dot{width:9px;height:9px;border-radius:50%;background:var(--red);margin-top:4px;box-shadow:0 0 0 4px rgba(180,61,50,.16)}.version{font-size:10px;opacity:.44;margin-top:10px}
.workspace{display:grid;grid-template-rows:var(--topbar-h) 1fr;min-width:0;min-height:0}.topbar{height:var(--topbar-h);display:flex;align-items:center;gap:12px;padding:10px 18px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 87%,transparent);backdrop-filter:blur(14px);position:relative;z-index:20}.nav-toggle{display:none}.search-wrap{flex:1;max-width:780px;min-width:220px;background:var(--surface);border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;gap:9px;padding:0 11px;box-shadow:0 4px 16px rgba(37,37,37,.04)}.search-wrap:focus-within{border-color:color-mix(in srgb,var(--red) 55%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--red) 10%,transparent)}.search-icon{font-size:22px;color:var(--muted)}.search-wrap input{height:44px;border:0;outline:0;background:transparent;width:100%;min-width:0;font-size:14px}.search-wrap kbd{font-size:10px;color:var(--muted);border:1px solid var(--line);background:var(--bg);padding:3px 6px;border-radius:6px;white-space:nowrap}.top-actions{display:flex;align-items:center;gap:10px;margin-left:auto}.updated{font-size:11px;color:var(--muted);max-width:170px;line-height:1.25}.avatar{width:38px;height:38px;border-radius:50%;border:0;background:var(--red);color:white;font-weight:800}.button{border:1px solid transparent;border-radius:9px;padding:9px 12px;font-size:12px;font-weight:700;background:var(--red);color:white}.button.ghost{background:var(--surface);color:var(--text);border-color:var(--line)}.button.soft{background:var(--accent-soft);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 18%,transparent)}.icon-button{border:1px solid var(--line);background:var(--surface);border-radius:9px;min-width:38px;height:38px}
.content{overflow:auto;padding:18px;min-width:0;min-height:0}.page{max-width:2400px;margin:0 auto}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.title-wrap h1{font-family:Georgia,serif;font-size:clamp(26px,2vw,40px);line-height:1.05;margin:0;color:var(--text)}.title-wrap p{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.4}.page-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.hero{position:relative;border:1px solid var(--line);background:linear-gradient(110deg,var(--surface) 0%,var(--surface) 62%,var(--accent-soft) 100%);border-radius:var(--radius);padding:18px 20px;margin-bottom:14px;overflow:hidden}.hero:after{content:"";position:absolute;right:-60px;top:-90px;width:270px;height:270px;border-radius:50%;border:52px solid color-mix(in srgb,var(--red) 6%,transparent)}.hero h1{font-family:Georgia,serif;font-size:clamp(28px,2.3vw,44px);max-width:820px;margin:0;line-height:1.04}.hero p{margin:7px 0 0;color:var(--muted);font-size:13px;max-width:820px}.hero .eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--red);font-size:10px;font-weight:800;margin-bottom:6px}
.kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(140px,1fr));gap:var(--gap);margin-bottom:var(--gap)}.kpi{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-sm);padding:14px;min-height:94px;display:flex;gap:12px;align-items:center;box-shadow:0 6px 18px rgba(37,37,37,.035);transition:.16s transform,.16s border-color}.kpi.clickable:hover,.card.clickable:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--red) 36%,var(--line))}.kpi-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:var(--accent-soft);color:var(--accent);font-weight:900;font-size:16px;flex:0 0 36px}.kpi small{display:block;color:var(--muted);font-size:10px;line-height:1.15;margin-bottom:4px}.kpi strong{font-size:clamp(17px,1.35vw,25px);line-height:1;display:block;white-space:normal}.clickable{cursor:pointer}
.dashboard-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gap);align-items:stretch}.widget{grid-column:span 4;min-width:0}.widget.wide{grid-column:span 8}.widget.full{grid-column:1/-1}.widget.compact{grid-column:span 3}.card{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-sm);padding:13px;min-width:0;box-shadow:0 5px 17px rgba(37,37,37,.035)}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:12px}.card-title{font-family:Georgia,serif;font-weight:700;font-size:15px;line-height:1.18}.card-sub{font-size:10px;color:var(--muted);margin-top:3px}.card-action{border:0;background:transparent;color:var(--red);font-size:12px;font-weight:800;padding:2px 4px;white-space:normal}.card.dragging{opacity:.5}.drag-handle{color:var(--muted);font-size:13px;cursor:grab}
.bar-chart{display:flex;flex-direction:column;gap:8px}.bar-row{display:grid;grid-template-columns:minmax(86px,1.3fr) minmax(100px,3fr) auto;gap:9px;align-items:center;padding:2px 0;border-radius:6px}.bar-row:hover{background:var(--accent-soft)}.bar-label{font-size:11px;line-height:1.15;overflow-wrap:anywhere}.bar-track{height:15px;border-radius:5px;background:color-mix(in srgb,var(--cream) 72%,var(--white));overflow:hidden;position:relative}.bar-fill{height:100%;background:linear-gradient(90deg,color-mix(in srgb,var(--red) 70%,var(--white)),var(--red));border-radius:5px;min-width:2px}.bar-value{font-size:11px;font-weight:800;white-space:nowrap}.column-chart{height:220px;display:flex;gap:10px;align-items:flex-end;border-bottom:1px solid var(--line);padding:12px 6px 34px;position:relative}.col-item{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;min-width:46px;position:relative}.col-bar{width:min(48px,70%);background:linear-gradient(180deg,color-mix(in srgb,var(--red) 82%,var(--white)),var(--red));border-radius:7px 7px 2px 2px;min-height:2px;position:relative;transition:.15s transform}.col-item:hover .col-bar{transform:scaleY(1.02);transform-origin:bottom}.col-value{font-size:10px;font-weight:800;margin-bottom:5px;text-align:center}.col-label{font-size:9px;color:var(--muted);position:absolute;bottom:-26px;text-align:center;line-height:1.05;max-width:70px;overflow-wrap:anywhere}.comparison-chart{display:flex;flex-direction:column;gap:10px}.comparison-row{display:grid;grid-template-columns:70px 1fr 1fr;gap:7px;align-items:center}.comparison-row .fy{font-size:11px;font-weight:800}.mini-track{height:22px;background:var(--surface-2);border-radius:6px;overflow:hidden;position:relative}.mini-fill{height:100%;display:flex;align-items:center;padding:0 6px;color:white;font-size:9px;font-weight:800;white-space:nowrap}.mini-fill.disb{background:var(--red)}.mini-fill.commit{background:color-mix(in srgb,var(--ink) 74%,var(--white))}
.donut-wrap{display:grid;grid-template-columns:minmax(140px,190px) 1fr;gap:14px;align-items:center}.donut{aspect-ratio:1;border-radius:50%;position:relative;display:grid;place-items:center}.donut:after{content:"";position:absolute;inset:29%;border-radius:50%;background:var(--surface)}.donut-center{position:relative;z-index:1;text-align:center}.donut-center strong{font-family:Georgia,serif;font-size:18px;display:block}.donut-center small{color:var(--muted);font-size:9px}.legend{display:flex;flex-direction:column;gap:6px}.legend-row{display:grid;grid-template-columns:10px minmax(80px,1fr) auto;gap:7px;align-items:start;padding:3px 4px;border-radius:6px}.legend-row:hover{background:var(--accent-soft)}.legend-dot{width:9px;height:9px;border-radius:50%;margin-top:2px}.legend-label{font-size:10px;line-height:1.2;overflow-wrap:anywhere}.legend-value{font-size:10px;font-weight:800;white-space:nowrap}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px}.data-table{border-collapse:separate;border-spacing:0;width:100%;min-width:960px;font-size:11px}.data-table th{position:sticky;top:0;z-index:2;background:var(--surface-2);text-align:left;padding:9px;border-bottom:1px solid var(--line);font-size:10px;color:var(--muted);white-space:normal;line-height:1.15}.data-table td{padding:8px 9px;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.24;white-space:normal;overflow-wrap:anywhere}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:var(--accent-soft)}.amount{font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap!important}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:4px 7px;background:var(--accent-soft);color:var(--accent);font-size:9px;font-weight:800;white-space:normal}.empty{padding:40px;text-align:center;color:var(--muted)}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;position:relative}.filter-control{position:relative}.filter-button{min-width:130px;max-width:220px;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:8px 10px;font-size:11px;display:flex;justify-content:space-between;gap:8px;align-items:center}.filter-button strong{font-size:9px;color:var(--muted);display:block;font-weight:700}.filter-button span{display:block;margin-top:2px;line-height:1.15;overflow-wrap:anywhere}.filter-pop{position:absolute;z-index:40;top:calc(100% + 6px);left:0;width:260px;max-height:330px;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow);padding:8px}.filter-pop label{display:flex;gap:8px;align-items:flex-start;padding:7px;border-radius:7px;font-size:11px;line-height:1.2}.filter-pop label:hover{background:var(--accent-soft)}.filter-pop input{accent-color:var(--red);margin-top:1px}.filter-actions{display:flex;justify-content:space-between;gap:6px;position:sticky;bottom:0;background:var(--surface);padding-top:7px;border-top:1px solid var(--line)}
.list-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.grantee-card{display:flex;flex-direction:column;gap:9px}.grantee-card h3{font-family:Georgia,serif;font-size:16px;margin:0;line-height:1.15}.grantee-card p{font-size:10px;color:var(--muted);margin:0;line-height:1.3}.metrics-row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.metric-mini{background:var(--surface-2);border-radius:8px;padding:8px}.metric-mini small{display:block;font-size:8px;color:var(--muted)}.metric-mini strong{font-size:12px;margin-top:3px;display:block}.detail-grid{display:grid;grid-template-columns:2fr 1fr;gap:14px}.detail-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px;margin-bottom:12px}
.report-tabs{display:flex;gap:6px;margin-bottom:10px}.seg{border:1px solid var(--line);background:var(--surface);padding:8px 12px;border-radius:8px;font-size:11px;font-weight:750}.seg.active{background:var(--red);color:white;border-color:var(--red)}
.settings-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.8fr);gap:14px}.theme-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:10px}.theme-card{border:1px solid var(--line);background:var(--surface);border-radius:11px;padding:12px}.theme-card.active{border-color:var(--red);box-shadow:0 0 0 2px var(--accent-soft)}.swatches{display:flex;gap:5px;margin:9px 0}.swatch{width:26px;height:18px;border-radius:5px;border:1px solid rgba(37,37,37,.1)}
.customizer{position:fixed;right:0;top:0;height:100vh;width:min(360px,92vw);z-index:60;background:var(--surface);border-left:1px solid var(--line);box-shadow:-12px 0 35px rgba(37,37,37,.1);padding:18px;overflow:auto}.customizer-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:14px}.customizer h2{font-family:Georgia,serif;margin:0;font-size:20px}.customizer p{font-size:10px;color:var(--muted);line-height:1.4}.custom-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.custom-row label{font-size:11px;line-height:1.25}.switch{width:38px;height:21px;border-radius:999px;background:var(--line);position:relative;border:0}.switch:after{content:"";position:absolute;width:15px;height:15px;border-radius:50%;background:var(--white);top:3px;left:3px;transition:.15s}.switch.on{background:var(--red)}.switch.on:after{left:20px}.size-controls{display:flex;gap:4px;margin-top:6px}.size-chip{font-size:9px;border:1px solid var(--line);background:var(--surface-2);padding:4px 6px;border-radius:6px}.size-chip.active{background:var(--red);color:white;border-color:var(--red)}
.search-panel{position:absolute;top:var(--topbar-h);left:var(--sidebar-w);right:0;z-index:50;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:0 12px 32px rgba(37,37,37,.12);padding:14px 18px;max-height:68vh;overflow:auto}.search-summary{display:grid;grid-template-columns:repeat(3,minmax(140px,1fr));gap:10px;margin-bottom:10px}.search-summary .metric-mini{border:1px solid var(--line)}.search-results-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.search-section h3{font-family:Georgia,serif;margin:0 0 7px;font-size:15px}.search-item{display:grid;grid-template-columns:1fr auto;gap:8px;padding:8px;border-top:1px solid var(--line);font-size:10px;line-height:1.25}.search-item strong{display:block;font-size:11px}.close-search{float:right}
.toast-host{position:fixed;right:18px;bottom:18px;z-index:90;display:flex;flex-direction:column;gap:8px}.toast{background:var(--ink);color:white;border-radius:9px;padding:10px 12px;font-size:11px;box-shadow:var(--shadow);max-width:320px}
body.theme-charcoal{--bg:#252525;--surface:color-mix(in srgb,#252525 92%,#FFFFFF);--surface-2:color-mix(in srgb,#252525 82%,#FFFFFF);--text:#FFFFFF;--muted:color-mix(in srgb,#FFFFFF 66%,#252525);--line:color-mix(in srgb,#FFFFFF 15%,#252525);--accent-soft:color-mix(in srgb,#B43D32 24%,#252525);--sidebar-bg:color-mix(in srgb,#252525 88%,#B43D32)}
body.theme-deepred{--bg:color-mix(in srgb,#252525 90%,#B43D32);--surface:color-mix(in srgb,#252525 86%,#B43D32);--surface-2:color-mix(in srgb,#252525 76%,#B43D32);--text:#FFFFFF;--muted:color-mix(in srgb,#FFFFFF 68%,#252525);--line:color-mix(in srgb,#FFFFFF 14%,#252525);--accent-soft:color-mix(in srgb,#B43D32 32%,#252525);--sidebar-bg:#252525}
body.theme-warm{--bg:color-mix(in srgb,#F6F2EC 86%,#B43D32);--surface:#FFFFFF;--surface-2:#F6F2EC;--text:#252525;--muted:color-mix(in srgb,#252525 60%,#FFFFFF);--line:color-mix(in srgb,#B43D32 12%,#F6F2EC);--accent-soft:color-mix(in srgb,#B43D32 10%,#F6F2EC);--sidebar-bg:#B43D32}
body.theme-warm .nav-item.active{background:#252525}
@media (max-width:1450px){:root{--sidebar-w:195px;--gap:11px}.kpi-grid{grid-template-columns:repeat(3,1fr)}.widget{grid-column:span 6}.widget.compact{grid-column:span 4}.widget.wide{grid-column:span 12}.updated{display:none}.donut-wrap{grid-template-columns:150px 1fr}}
@media (max-width:1080px){:root{--sidebar-w:76px}.brand-copy,.nav-label,.source-mini div,.version{display:none}.brand{justify-content:center;padding-left:0;padding-right:0}.nav-item{justify-content:center;padding:10px}.sidebar-foot{display:flex;justify-content:center}.nav-toggle{display:inline-grid;place-items:center}.search-panel{left:var(--sidebar-w)}.kpi-grid{grid-template-columns:repeat(2,1fr)}.widget,.widget.compact{grid-column:span 12}.detail-grid,.settings-grid{grid-template-columns:1fr}.detail-stat-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-height:760px){:root{--topbar-h:62px}.content{padding:12px}.topbar{padding-top:7px;padding-bottom:7px}.hero{padding:13px 16px}.kpi{min-height:78px;padding:10px}.column-chart{height:190px}.nav-item{min-height:38px;padding-top:8px;padding-bottom:8px}}
@media (min-width:2200px){:root{--sidebar-w:250px;--gap:18px}.content{padding:24px 28px}.kpi-grid{grid-template-columns:repeat(6,1fr)}.widget{grid-column:span 3}.widget.wide{grid-column:span 6}.widget.full{grid-column:1/-1}.card{padding:17px}.column-chart{height:270px}.bar-label,.bar-value,.data-table{font-size:13px}.card-title{font-size:18px}.filter-button{font-size:13px}.data-table th{font-size:12px}}
