/* Organization Brain Graph — force-directed entity map on the Phantom Brain page.
   Palette validated (dataviz six-checks): chroma/contrast PASS on #ffffff,
   worst adjacent CVD pair 9.5 ΔE (floor band — legal because every node is
   direct-labeled and a legend + details panel restate identity in text). */
.og-shell{--og-line:rgba(65, 255, 161,.2);--og-panel:rgba(255, 255, 255,.82);--og-amber:#c77e00;display:grid;gap:14px;color: var(--ink)}
.og-shell *{box-sizing:border-box}
.og-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}
.og-head p{margin:0}
.og-kicker{margin:0 0 4px;color:#41ffa1;font:600 var(--fs-xs) var(--font-mono);letter-spacing:.14em;text-transform:uppercase}
.og-sub{max-width:640px;color:#789086;font-size:13px;line-height:1.45}
.og-refresh{min-height:32px;border:1px solid rgba(65, 255, 161,.35);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-4);background: var(--glass);color:#285141;font:600 var(--fs-sm) var(--font-sans);cursor:pointer}
.og-refresh:hover{border-color:#41ffa1;transform:translateY(-1px)}
.og-refresh:disabled{cursor:not-allowed;opacity:.45;transform:none}
.og-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,300px);gap:14px;align-items:stretch}
.og-canvas-wrap{position:relative;overflow:hidden;border:1px solid var(--og-line);border-radius:var(--r-md);background:radial-gradient(circle at 50% 38%,rgba(24, 242, 143,.06),transparent 55%),#ffffff}
.og-canvas-wrap canvas{display:block;width:100%;height:clamp(320px,55vh,560px);touch-action:none}
.og-legend{display:flex;flex-wrap:wrap;gap:6px 12px;padding:9px 12px;border-top:1px solid rgba(65, 255, 161,.12)}
.og-legend span{display:inline-flex;align-items:center;gap:6px;color:var(--dim);font:600 var(--fs-xs) var(--font-mono);letter-spacing:.14em;text-transform:uppercase}
.og-legend i{width:9px;height:9px;border-radius:50%}
.og-details{display:grid;grid-auto-rows:min-content;gap:10px;padding:var(--sp-4);border:1px solid var(--og-line);border-radius:var(--r-md);background:var(--og-panel)}
.og-details h4{margin:0;font-size:17px;line-height:1.3;overflow-wrap:anywhere}
.og-details .og-empty-hint{margin:0;color:#857ea5;font-size:13px;line-height:1.5}
.og-type-pill{justify-self:start;display:inline-flex;align-items:center;gap:6px;border:1px solid;border-radius:999px;padding:4px 9px;font:500 10px "Spline Sans Mono",monospace;letter-spacing:.1em;text-transform:uppercase}
.og-type-pill i{width:8px;height:8px;border-radius:50%}
.og-detail-row{display:grid;gap:3px;padding-top:9px;border-top:1px solid rgba(65, 90, 78,.18)}
.og-detail-row span{color:var(--dim);font:600 var(--fs-xs) var(--font-mono);letter-spacing:.14em;text-transform:uppercase}
.og-detail-row b{color: var(--ink);font-weight:600;font-size:13px;line-height:1.45;overflow-wrap:anywhere}
.og-detail-row.is-gap b{color:#ffe3a1}
.og-gaps{border:1px solid var(--og-line);border-radius:var(--r-md);background:var(--og-panel);padding:var(--sp-4)}
.og-gaps>p{margin:0 0 12px}
.og-gap-list{display:grid;gap:8px}
.og-gap-row{display:grid;grid-template-columns:minmax(120px,220px) 1fr;gap:12px;padding:var(--sp-2) var(--sp-3);border:1px dashed rgba(199, 126, 0,.35);border-radius:var(--r-sm);background: var(--glass)}
.og-gap-row b{color:#ffe3a1;font-size:13px;overflow-wrap:anywhere}
.og-gap-row span{color:#c9c2a6;font-size:13px;line-height:1.45}
.og-gaps-clear{margin:0;padding:var(--sp-3);border:1px solid rgba(65, 255, 161,.22);border-radius:var(--r-sm);color: var(--ink);font-size:13px;background: var(--glass)}
.og-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}
.og-search{flex:1 1 200px;min-width:0;min-height:32px;border:1px solid rgba(65, 255, 161,.3);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);background: var(--glass);color: var(--ink);font:inherit;font-size:13px}
.og-search::placeholder{color:#6f877d}
.og-chips{display:flex;flex-wrap:wrap;gap:6px}
.og-chip{display:inline-flex;align-items:center;gap:6px;min-height:28px;border:1px solid rgba(65, 255, 161,.25);border-radius:999px;padding:4px 10px;background: var(--glass);color:#789086;font:500 10px "Spline Sans Mono",monospace;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.og-chip i{width:8px;height:8px;border-radius:50%}
.og-chip:hover{border-color:#41ffa1;color:#285141}
.og-chip[aria-pressed="true"]{border-color:#41ffa1;background: var(--glass);color: var(--ink)}
.og-opps{border:1px solid var(--og-line);border-radius:var(--r-md);background:var(--og-panel);padding:var(--sp-4)}
.og-opps>p{margin:0 0 12px}
.og-opp-list{display:grid;gap:8px}
.og-opp-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;align-items:center;padding:var(--sp-2) var(--sp-3);border:1px solid rgba(65, 255, 161,.18);border-radius:var(--r-sm);background: var(--glass)}
.og-opp-main{display:flex;align-items:center;gap:10px;min-width:0;border:0;padding:0;background:none;color:inherit;text-align:left;font:inherit;cursor:pointer}
.og-opp-impact{flex:none;border:1px solid;border-radius:999px;padding:3px 8px;font:500 10px "Spline Sans Mono",monospace;letter-spacing:.1em;text-transform:uppercase}
.og-opp-impact.is-high{color:#c77e00;border-color:rgba(199, 126, 0,.5);background:rgba(199, 126, 0,.08)}
.og-opp-impact.is-medium{color:#41ffa1;border-color:rgba(65, 255, 161,.5);background:rgba(65, 255, 161,.08)}
.og-opp-impact.is-low{color:#a994c4;border-color:rgba(169, 148, 196,.5);background:rgba(169, 148, 196,.08)}
.og-opp-title{color: var(--ink);font-weight:600;font-size:13px;line-height:1.4;overflow-wrap:anywhere}
.og-opp-caret{color:#6f877d;font-size:11px}
.og-opp-main[aria-expanded="true"] .og-opp-caret{transform:rotate(180deg)}
.og-opp-why{grid-column:1/-1;display:grid;gap:6px;padding-top:8px;border-top:1px solid rgba(65, 90, 78,.18)}
.og-opp-why[hidden]{display:none}
.og-opp-why p{margin:0;color: var(--dim-2);font-size:13px;line-height:1.5}
.og-opp-why p.og-opp-src{color:var(--dim);font:600 var(--fs-xs) var(--font-mono);letter-spacing:.14em;text-transform:uppercase}
.og-opp-action{justify-self:end;min-height:32px;border:1px solid rgba(65, 255, 161,.35);border-radius:var(--r-sm);padding:6px var(--sp-3);background: var(--glass);color:#285141;font:600 var(--fs-sm) var(--font-sans);white-space:nowrap;cursor:pointer}
.og-opp-action:hover{border-color:#41ffa1}
.og-opp-loading{margin:0;color:#8d87aa;font-size:13px}
.og-opp-error{display:grid;justify-items:start;gap:10px;padding:var(--sp-3);border:1px solid rgba(255,84,95,.4);border-radius:var(--r-sm);background: var(--glass);color:#ffb4ba;font-size:13px}
.og-opp-error p{margin:0;line-height:1.5}
.og-status{display:grid;justify-items:center;gap:10px;text-align:center;padding:var(--sp-5);border:1px solid var(--og-line);border-radius:var(--r-md);background:var(--og-panel);color:var(--dim)}
.og-status.is-error{border-color:rgba(255,84,95,.4);color:#ffb4ba;background: var(--glass)}
.og-status h4{margin:0;color: var(--ink);font-size:16px}
.og-status p{max-width:520px;margin:0;font-size:13px;line-height:1.5}
.og-status .og-refresh{margin-top:2px}
.og-loading-dots{display:flex;gap:8px}
.og-loading-dots i{width:10px;height:10px;border-radius:50%;background:#41ffa1;animation:ogPulse 1s infinite alternate}
.og-loading-dots i:nth-child(2){animation-delay:.2s}
.og-loading-dots i:nth-child(3){animation-delay:.4s}
@keyframes ogPulse{to{opacity:.2;transform:translateY(6px)}}
@media(max-width:900px){.og-body{grid-template-columns:1fr}.og-details{grid-row:2}}
@media(max-width:480px){.og-head{flex-direction:column;align-items:stretch}.og-refresh{width:100%}.og-gap-row{grid-template-columns:1fr}.og-canvas-wrap canvas{height:clamp(300px,48vh,420px)}.og-opp-row{grid-template-columns:1fr}.og-opp-action{justify-self:stretch;white-space:normal}}
@media(prefers-reduced-motion:reduce){.og-shell *{animation:none!important;transition:none!important}}
