/* A quiet map stage; type colours belong to the nodes in both UI themes. */
body.sf-system.jarvis-softform .graph-main {
  --map-ink:#29333d;
  --map-muted:#515d68;
  --map-ui-ink:var(--sf-ink,#29333d);
  --map-ui-muted:var(--sf-muted,#65716c);
  --map-focus:#6d578e;
  --map-node-focus:#655078;
  --map-node-mint:#386757;
  --map-cable:#738698;
  --map-mint:#528978;
  --map-violet:#8f79ad;
  --map-proposal:#9a773e;
  --map-dot:#71819326;
  --map-channel-fill:var(--j-node-channel-fill);
  --map-person-fill:var(--j-node-person-fill);
  --map-company-fill:var(--j-node-company-fill);
  --map-project-fill:var(--j-node-project-fill);
  --map-glass:linear-gradient(135deg,#ffffffa6 0%,#ffffff85 52%,#ffffff73 100%);
  --map-control-glass:linear-gradient(145deg,#fffffff0,#ffffffad);
  --map-control-selected:#ffffffd9;
  --map-control-rim:#ffffffa6;
  --map-cable-light:#ffffff66;
  --map-rim:linear-gradient(135deg,#fffffff2 0%,#ffffff73 24%,#ffffff0d 47%,#ffffff19 61%,#ffffffa6 86%,#ffffff33 100%);
  --map-shadow:0 7px 22px -14px #34304b47,inset 0 1px 0 #ffffffa6,inset 0 -1px 0 #ffffff24;
  min-height:inherit;
  color:var(--map-ui-ink);
  background-color:transparent;
  background-image:radial-gradient(var(--map-dot) .7px,transparent .7px);
  background-size:18px 18px;
}
[data-theme=dark] body.sf-system.jarvis-softform .graph-main {
  --map-focus:#c0a7ee;
  --map-cable:#95a7b8;
  --map-mint:#8dbba5;
  --map-violet:#b3a1ce;
  --map-proposal:#d5b77d;
  --map-dot:#c7d3df1c;
  --map-control-glass:linear-gradient(145deg,#38403beb,#2d3532db);
  --map-control-selected:#ffffff16;
  --map-control-rim:#ffffff19;
  --map-cable-light:#00000033;
}
body.sf-system.jarvis-softform .graph-main .graph-viewport.spatial-mode {
  background:none;
}

/* No backdrop filters on nodes: projected 3D and large maps retain their geometry. */
body.sf-system.jarvis-softform .graph-main .graph-canvas>.node {
  --sf-fg:var(--map-ink);
  --sf-text-muted:var(--map-muted);
  --sf-lens-fill:var(--map-glass);
  --sf-lens-shadow:#37405210;
  --sf-well-fill:linear-gradient(145deg,#ffffff9c,#ffffff4d);
  --sf-well-shadow:#3d465617;
  --sf-well-light:#ffffffc4;
  --sf-edge-gradient:var(--map-rim);
  --sf-focus:var(--map-node-focus);
  --sf-accent-strong:var(--map-node-focus);
  --text:var(--map-ink);
  --muted:var(--map-muted);
  --muted2:var(--map-muted);
  --accent:var(--map-node-focus);
  --accent-text:var(--map-node-focus);
  --mint-text:var(--map-node-mint);
  --panel:var(--map-glass);
  --panel-solid:#f6f6f5;
  color:var(--map-ink);
  background:var(--map-glass);
  box-shadow:var(--map-shadow);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
body.sf-system.jarvis-softform .graph-main .graph-canvas>.node.channel { --map-glass:var(--map-channel-fill); }
body.sf-system.jarvis-softform .graph-main .graph-canvas>.node.person { --map-glass:var(--map-person-fill); }
body.sf-system.jarvis-softform .graph-main .graph-canvas>.node.company { --map-glass:var(--map-company-fill); }
body.sf-system.jarvis-softform .graph-main .graph-canvas>.node.project { --map-glass:var(--map-project-fill); }
body.sf-system.jarvis-softform .graph-main .graph-canvas>.node.sf-lens::before {
  opacity:.8;
}
body.sf-system.jarvis-softform .graph-main .graph-canvas>.node .node-contents {
  color:var(--map-ink);
  background:transparent;
  text-shadow:none;
}
body.sf-system.jarvis-softform .graph-main .graph-canvas>.node :is(small,.node-type) {
  color:var(--map-muted);
}
/* One title/detail rhythm for people, companies and projects, inside their fixed boxes. */
body.sf-system.jarvis-softform .graph-main .graph-canvas>.node:is(.person,.company,.project) strong {
  display:block;
  max-width:100%;
  margin:0;
  overflow:hidden;
  color:var(--map-ink);
  font-size:14px;
  font-weight:400;
  line-height:1.35;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.sf-system.jarvis-softform .graph-main .graph-canvas>.node:is(.person,.company,.project) small {
  display:block;
  max-width:100%;
  margin:4px 0 0;
  overflow:hidden;
  color:var(--map-muted);
  font-size:11px;
  font-weight:400;
  line-height:1.4;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.sf-system.jarvis-softform .graph-main .graph-canvas>.node.company :is(.node-title,.node-title>span:last-child) {
  min-width:0;
}
body.sf-system.jarvis-softform .graph-main .graph-canvas>.node.company .node-title>span:last-child {
  flex:1;
}
body.sf-system.jarvis-softform .graph-main .graph-canvas>.node.project .node-contents {
  gap:0;
}
body.sf-system.jarvis-softform .graph-main .graph-canvas>.node.channel .node-contents>svg {
  color:#546374;
}
body.sf-system.jarvis-softform .graph-main .graph-canvas>.node .company-avatar {
  color:var(--map-node-mint);
  background:linear-gradient(145deg,#ffffffa6,#ffffff52);
  box-shadow:inset 0 1px 0 #ffffffb3,0 2px 5px #4a4d6410;
}
body.sf-system.jarvis-softform .graph-main .graph-canvas>.node .person-avatar:not(img) {
  color:#4d525e;
  background:linear-gradient(140deg,#ffffffb8,#d6d7db9c);
  border-color:#ffffff9c;
}

/* Hover, focus and suggestions retain the node's type colour. */
body.sf-system.jarvis-softform .graph-main .graph-canvas>.node:hover {
  background:var(--map-glass);
  box-shadow:0 9px 25px -14px #34304b52,inset 0 1px 0 #ffffffc9,inset 0 -1px 0 #ffffff33;
}
body.sf-system.jarvis-softform .graph-main .graph-canvas.has-focus>.node.is-related:not(.is-focus) {
  background:var(--map-glass);
  box-shadow:var(--map-shadow),0 0 0 1px #ffffff66;
}
body.sf-system.jarvis-softform .graph-main .graph-canvas.has-focus>.node.is-focus,
body.sf-system.jarvis-softform .graph-main .graph-canvas>.node.link-source {
  outline:1px solid var(--map-node-focus);
  outline-offset:3px;
  background:var(--map-glass);
  box-shadow:var(--map-shadow),0 0 0 4px #ffffff26;
}
body.sf-system.jarvis-softform .graph-main .graph-canvas>.node.link-target {
  box-shadow:var(--map-shadow),0 0 0 2px var(--map-node-mint),0 0 0 5px #ffffff40;
}
body.sf-system.jarvis-softform .graph-main .graph-canvas>.node .node-contents:focus-visible {
  outline:2px solid var(--map-node-focus);
  outline-offset:4px;
}
body.sf-system.jarvis-softform .graph-main .graph-canvas>.node .node-port {
  color:var(--map-node-focus);
  background:#ffffffe6;
  box-shadow:0 1px 5px #35334f29,inset 0 1px 0 #ffffff;
}
body.sf-system.jarvis-softform .graph-main .graph-canvas>.node .node-port:focus-visible {
  outline:2px solid var(--map-node-focus);
  outline-offset:3px;
}
body.sf-system.jarvis-softform .graph-main .graph-canvas>.node.pending {
  border-color:#98713b!important;
  background:var(--map-glass);
}
body.sf-system.jarvis-softform .graph-main .proposal-badge {
  color:#745021;
  border-color:#99734a73;
  background:#fff3dce6;
  box-shadow:0 2px 7px #64492b12,inset 0 1px 0 #ffffffb3;
}

/* Neutral controls follow the UI theme; coloured nodes stay light in either theme. */
body.sf-system.jarvis-softform .graph-main :is(.graph-controls,.scene-mode-toggle,.graph-arrange,.graph-undo,.cluster-link-panel) {
  --sf-fg:var(--map-ui-ink);
  --sf-text-muted:var(--map-ui-muted);
  --sf-focus:var(--map-focus);
  --sf-well-fill:var(--map-control-glass);
  --sf-selected-fill:var(--map-control-selected);
  --sf-button-fill:var(--map-control-glass);
  --text:var(--map-ui-ink);
  --muted:var(--map-ui-muted);
  --muted2:var(--map-ui-muted);
  --accent:var(--map-focus);
  --accent-text:var(--map-focus);
  color:var(--map-ui-ink);
  border-color:var(--map-control-rim);
  background:var(--map-control-glass);
  box-shadow:0 3px 12px #34304b0d,inset 0 1px 0 var(--map-control-rim);
}
body.sf-system.jarvis-softform .graph-main :is(.graph-controls,.scene-mode-toggle) button,
body.sf-system.jarvis-softform .graph-main :is(.graph-topline,.zoom-label,.graph-legend) {
  color:var(--map-ui-muted);
}
body.sf-system.jarvis-softform .graph-main .scene-mode-toggle button.active {
  color:var(--map-ui-ink);
  background:var(--map-control-selected);
  box-shadow:0 1px 4px #34304b12,inset 0 1px 0 var(--map-control-rim);
}
body.sf-system.jarvis-softform .graph-main .graph-title>span {
  background:var(--map-focus);
}
body.sf-system.jarvis-softform .graph-main .proposal-legend {
  color:var(--map-proposal);
}
body.sf-system.jarvis-softform .graph-main .proposal-legend .legend-line {
  border-color:var(--map-proposal);
}
body.sf-system.jarvis-softform .graph-main .legend-dot { background:var(--map-mint); }
body.sf-system.jarvis-softform .graph-main .legend-dot.person { background:#a28ac6; }
body.sf-system.jarvis-softform .graph-main .legend-dot.project { background:#d79bab; }
body.sf-system.jarvis-softform .graph-main .legend-dot.channel { background:#89b1cd; }
body.sf-system.jarvis-softform .graph-main .graph-legend {
  max-width:calc(100% - 40px);
  flex-wrap:wrap;
  row-gap:7px;
}
@media (max-width:700px) {
  body.sf-system.jarvis-softform .graph-main .graph-legend {
    max-width:calc(100% - 26px);
    column-gap:10px;
    row-gap:5px;
  }
}

/* The same milky material is used for the large-company overview. */
body.sf-system.jarvis-softform .graph-main .company-overview .company-overview-card.sf-surface {
  --map-glass:var(--map-company-fill);
  --sf-fg:var(--map-ink);
  --sf-text-muted:var(--map-muted);
  color:var(--map-ink);
  background:var(--map-glass);
  box-shadow:var(--map-shadow);
}
body.sf-system.jarvis-softform .graph-main .company-overview-card :is(small,.overview-counts,.overview-avatars>span) {
  color:var(--map-muted);
}

/* Semantic cables adapt to the neutral stage without changing node colours. */
body.sf-system.jarvis-softform .graph-main .graph-svg path:not(.edge-hit):not(.proposal-hit) {
  stroke:var(--map-cable);
}
body.sf-system.jarvis-softform .graph-main .graph-svg path.mint:not(.edge-hit):not(.proposal-hit) {
  stroke:var(--map-mint);
}
body.sf-system.jarvis-softform .graph-main .graph-svg path.violet:not(.edge-hit):not(.proposal-hit) {
  stroke:var(--map-violet);
}
body.sf-system.jarvis-softform .graph-main .graph-svg path.proposal-line {
  stroke:var(--map-proposal)!important;
}
body.sf-system.jarvis-softform .graph-main .graph-canvas.has-focus .graph-svg path.is-related:not(.edge-hit):not(.proposal-hit):not(.proposal-line) {
  stroke:var(--map-focus);
  filter:drop-shadow(0 1px 1px var(--map-cable-light));
}
body.sf-system.jarvis-softform .graph-main .graph-svg :is(.editable-edge:hover,.edge-selected) path:not(.edge-hit):not(.proposal-hit) {
  stroke:var(--map-focus)!important;
  stroke-width:1.5px!important;
  filter:drop-shadow(0 1px 1px var(--map-cable-light))!important;
}
body.sf-system.jarvis-softform .graph-main .graph-svg :is(g[tabindex],.editable-edge,.proposal-edge),
body.sf-system.jarvis-softform .graph-main .graph-svg :is(g[tabindex],.editable-edge,.proposal-edge):is(:focus,:focus-visible) {
  outline:none!important;
  box-shadow:none!important;
  border:0!important;
  background:none!important;
}
body.sf-system.jarvis-softform .graph-main .graph-svg :is(g[tabindex],.editable-edge,.proposal-edge):focus-visible path:not(.edge-hit):not(.proposal-hit) {
  stroke:var(--map-focus)!important;
  stroke-width:1.35px!important;
  opacity:1!important;
  filter:drop-shadow(0 1px 1px var(--map-cable-light))!important;
}
body.sf-system.jarvis-softform .graph-main .graph-svg text {
  fill:var(--map-ui-muted);
}
body.sf-system.jarvis-softform .graph-main .connection-preview path {
  stroke:var(--map-focus);
  filter:drop-shadow(0 1px 1px var(--map-cable-light));
}
