.page-title{margin:22px 0 6px;font-family:var(--font-display);font-size:1.55rem;font-weight:700;color:var(--color-tertiary)}.page-lead{color:var(--color-muted);font-size:.9rem;max-width:82ch;line-height:1.55;margin-bottom:12px}.page-lead b{color:var(--color-on-surface)}.graph-layout{display:grid;grid-template-columns:1fr;gap:14px}@media(min-width:960px){.graph-layout{grid-template-columns:minmax(0,1fr) 316px;align-items:stretch}}.graph-main{min-width:0}.graph-control-strip{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);padding:12px;margin:14px 0}.filter-row{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 12px}.filter-btn{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-muted);padding:6px 12px;border-radius:var(--radius-full);font:inherit;font-size:.72rem;font-weight:600;cursor:pointer;transition:background .12s,border-color .12s,color .12s,box-shadow .12s}.filter-btn:hover{border-color:var(--color-primary);color:var(--color-on-surface)}.filter-btn.active{color:#fff;border-color:transparent;box-shadow:0 1px 4px #0000001f}.graph-kpis{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px;font-size:.72rem;color:var(--color-muted)}.graph-kpis span{background:var(--color-surface);border:1px solid var(--color-border);padding:5px 11px;border-radius:var(--radius-full);font-weight:600}.density-banner{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:0;padding:0;background:transparent;border:none;border-radius:0;font-size:.74rem;color:var(--color-muted)}.density-banner b{color:var(--color-on-surface)}.density-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.density-label{font-size:.68rem;color:var(--color-muted);font-weight:700;text-transform:uppercase;letter-spacing:.06em}.density-btn{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-muted);padding:5px 11px;border-radius:var(--radius-full);font:inherit;font-size:.7rem;font-weight:600;cursor:pointer}.density-btn:hover{border-color:var(--color-primary);color:var(--color-on-surface)}.density-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.graph-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:0;padding-top:10px;border-top:1px solid var(--color-border)}.graph-toolbar label{font-size:.74rem;color:var(--color-muted);display:flex;align-items:center;gap:6px;cursor:pointer}.graph-toolbar input{accent-color:var(--color-primary)}.graph-toolbar button{background:var(--color-surface);border:1px solid var(--color-border);padding:6px 12px;border-radius:var(--radius-full);font:inherit;font-size:.74rem;cursor:pointer;color:var(--color-on-surface)}.graph-overview-link{margin-left:auto;font-size:.76rem;color:var(--color-secondary);font-weight:600;text-decoration:none}.graph-overview-link:hover{text-decoration:underline}.graph-wrap{position:relative;background:radial-gradient(ellipse 120% 80% at 50% 0%,#17233a,#0b1120 46%,#050914);border:1px solid #243149;border-radius:var(--radius-lg);box-shadow:0 14px 36px #00000042,inset 0 1px #ffffff0d;overflow:hidden;min-height:clamp(380px,68vh,720px)}.graph-canvas-label{position:absolute;top:12px;left:12px;z-index:3;padding:6px 10px;border:1px solid rgba(148,163,184,.24);border-radius:var(--radius-full);background:#0f172abd;color:#cbd5e1;font-size:.68rem;font-weight:650;backdrop-filter:blur(8px);pointer-events:none}.graph-wrap:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 30% 20%,rgba(96,165,250,.08),transparent 45%),radial-gradient(circle at 70% 80%,rgba(74,222,128,.06),transparent 40%)}#graphCanvas{display:block;width:100%;height:clamp(380px,68vh,720px);cursor:grab;touch-action:none;position:relative;z-index:1}#graphCanvas:active{cursor:grabbing}.graph-loading{position:absolute;inset:0;z-index:2;display:grid;place-items:center;color:#cbd5e1;font-size:.86rem;font-weight:600;letter-spacing:.01em;text-align:center;background:radial-gradient(circle at center,#0f172a9e,#060a14db);pointer-events:none}.graph-loading span{display:block}.graph-loading small{display:block;margin-top:6px;color:#94a3b8;font-size:.72rem;font-weight:500}.graph-wrap.is-ready .graph-loading{display:none}.graph-tooltip{position:absolute;pointer-events:none;z-index:8;max-width:300px;background:var(--color-tertiary);color:var(--color-neutral,#fff);padding:11px 13px;border-radius:var(--radius-md);font-size:.78rem;line-height:1.45;opacity:0;transition:opacity .12s;box-shadow:0 8px 24px #00225338}.graph-tooltip.visible{opacity:1}.graph-tooltip .t{font-weight:600;margin-bottom:5px;font-size:.84rem}.graph-tooltip .m{opacity:.9;font-size:.74rem}.graph-tooltip .tags{margin-top:6px;display:flex;flex-wrap:wrap;gap:4px}.graph-tooltip .tag{font-size:.64rem;padding:2px 7px;border-radius:var(--radius-full);background:#ffffff24}.graph-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:none;display:flex;flex-direction:column;max-height:min(74vh,720px);min-height:320px;overflow:hidden}@media(max-width:959px){.graph-panel{max-height:420px}}.graph-panel-h{padding:14px 16px 12px;border-bottom:1px solid var(--color-border);background:var(--color-bg-subtle)}.graph-panel-h h2{margin:0 0 8px;font-size:.95rem;font-weight:700;color:var(--color-tertiary)}.graph-panel-search{position:relative}.graph-panel-search input{width:100%;box-sizing:border-box;padding:8px 10px 8px 32px;border:1px solid var(--color-border);border-radius:var(--radius-md);font:inherit;font-size:.8rem;background:var(--color-bg-subtle)}.graph-panel-search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:14px;height:14px;stroke:var(--color-muted)}.graph-panel-list{flex:1;overflow-y:auto;padding:8px;margin:0;list-style:none}.graph-panel-list li{margin-bottom:6px}.funder-row{width:100%;text-align:left;border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-md);padding:10px 11px;cursor:pointer;font:inherit;transition:border-color .12s,background .12s,box-shadow .12s,transform .12s}.funder-row:hover{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 6%,var(--color-surface));transform:translate(2px)}.funder-row.focused{border-color:var(--color-primary);box-shadow:0 0 0 2px #3b68f633;background:color-mix(in srgb,var(--color-primary) 8%,var(--color-surface))}.funder-row.dim{opacity:.35}.funder-row .fr-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.funder-row .fr-name{font-size:.78rem;font-weight:600;color:var(--color-on-surface);line-height:1.3}.funder-row .fr-amt{font-size:.76rem;font-weight:700;color:var(--color-primary);white-space:nowrap}.funder-row .fr-meta{margin-top:4px;display:flex;flex-wrap:wrap;gap:4px}.funder-row .fr-tag{font-size:.62rem;padding:2px 6px;border-radius:var(--radius-full);background:var(--color-bg-subtle);color:var(--color-muted);font-weight:600}.funder-row .fr-tag.pipeline{color:var(--color-warning);background:#f59e0b1a}.signal-row{display:block;text-decoration:none;color:inherit;border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-md);padding:9px 10px;transition:border-color .12s,background .12s,box-shadow .12s}.signal-row:hover{border-color:#f472b6;background:color-mix(in srgb,#F472B6 6%,var(--color-surface))}.signal-row .sr-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.signal-row .sr-title{font-size:.78rem;font-weight:600;color:var(--color-on-surface);line-height:1.35}.signal-row .sr-amt{font-size:.74rem;font-weight:700;color:#db2777;white-space:nowrap}.panel-head-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.panel-head-row h2{margin:0}.panel-back{border:none;background:none;padding:0;font:inherit;font-size:.72rem;font-weight:600;color:var(--color-primary);cursor:pointer;white-space:nowrap}.panel-back:hover{text-decoration:underline}.panel-subtitle{margin:0 0 8px;font-size:.74rem;color:var(--color-muted);line-height:1.35}.panel-empty{padding:18px 12px;font-size:.78rem;color:var(--color-muted);list-style:none;text-align:center;border:1px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-subtle)}.graph-panel-foot{padding:8px 14px;border-top:1px solid var(--color-border);font-size:.68rem;color:var(--color-muted)}.graph-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;font-size:.72rem;color:var(--color-muted)}.graph-legend-dark{padding:9px 12px;background:#0f172a;border:1px solid #25334a;border-radius:var(--radius-md);color:#94a3b8}.graph-legend span{display:flex;align-items:center;gap:6px}.graph-legend i{width:10px;height:10px;border-radius:50%;display:inline-block}.legend-note{opacity:.82;margin-left:auto}.method-note{margin-top:14px;padding:12px 16px;background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-muted);font-size:.78rem;line-height:1.55}@media(max-width:640px){.graph-overview-link{width:100%;margin-left:0}.graph-wrap{min-height:360px}#graphCanvas{height:360px}}
