/* Neu Sec Intel graph. Scoped to .nsi-app so it coexists with any theme. */
.nsi-app { --nsi-ink:#e9eefb; --nsi-dim:#7e8aa6; --nsi-accent:#6ee7ff; --nsi-gold:#ffd47a; --nsi-panel:rgba(8,12,24,.72); --nsi-border:rgba(110,231,255,.16);
  background:#020409 !important; color:var(--nsi-ink) !important; font:14px/1.5 -apple-system,"SF Pro Text","Inter",system-ui,sans-serif !important; overflow:hidden !important; width:100%; box-sizing:border-box; min-height:520px; line-height:1.5; text-align:left; }
.nsi-app p, .nsi-app span, .nsi-app div, .nsi-app b, .nsi-app i, .nsi-app button, .nsi-app input { font-family:inherit; }
.nsi-app button, .nsi-app input { text-transform:none; letter-spacing:normal; }
.nsi-app *, .nsi-app *::before, .nsi-app *::after { box-sizing:border-box; }
body.nsi-fullscreen { overflow:hidden; }
.nsi-canvas { position:absolute !important; inset:0; width:100% !important; height:100% !important; max-width:none !important; display:block; cursor:grab; margin:0 !important; padding:0 !important; }
.nsi-canvas.dragging { cursor:grabbing; }

.nsi-top { position:absolute; top:0; left:0; right:0; padding:18px 22px; display:flex; align-items:flex-start; gap:16px; z-index:10; pointer-events:none; }
.nsi-brand { display:flex; align-items:center; gap:10px; pointer-events:auto; padding-top:8px; }
.nsi-dot { width:9px; height:9px; border-radius:50%; background:var(--nsi-accent); box-shadow:0 0 12px var(--nsi-accent),0 0 34px rgba(110,231,255,.5); animation:nsi-pulse 2.4s ease-in-out infinite; display:inline-block; }
@keyframes nsi-pulse { 0%,100%{opacity:.7} 50%{opacity:1} }
.nsi-name { font-weight:600; font-size:13px; letter-spacing:.02em; white-space:nowrap; }
.nsi-sub { color:var(--nsi-dim); font-weight:400; font-size:11.5px; margin-left:8px; }

.nsi-search { flex:1; max-width:660px; margin:0 auto; pointer-events:auto; position:relative; }
.nsi-search input { width:100%; background:var(--nsi-panel); border:1px solid var(--nsi-border); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  color:var(--nsi-ink); padding:14px 18px 14px 44px; border-radius:999px; font:inherit; font-size:14px; outline:none; margin:0; box-shadow:none; line-height:1.3; transition:border-color .2s, box-shadow .2s; }
.nsi-search input:focus { border-color:rgba(110,231,255,.65); box-shadow:0 0 0 5px rgba(110,231,255,.09), 0 0 40px rgba(110,231,255,.12), 0 10px 50px rgba(0,0,0,.55); transform:scale(1.012); }
.nsi-search input { transition:border-color .35s, box-shadow .35s, transform .5s cubic-bezier(.16,1,.3,1); }
.nsi-search input::placeholder { color:var(--nsi-dim); }
.nsi-search > svg { position:absolute; left:15px; top:15px; color:var(--nsi-dim); }
.nsi-chips { margin-top:10px; display:flex; gap:6px; flex-wrap:wrap; justify-content:center; }
.nsi-chip { background:rgba(110,231,255,.05); border:1px solid rgba(110,231,255,.15); color:var(--nsi-dim); padding:4px 11px; border-radius:999px; font-size:11.5px; cursor:pointer; transition:all .18s; }
.nsi-chip:hover { color:var(--nsi-ink); border-color:var(--nsi-accent); background:rgba(110,231,255,.12); }
.nsi-tools { pointer-events:auto; padding-top:8px; }
.nsi-tbtn { padding:8px 13px; border-radius:9px; white-space:nowrap; background:var(--nsi-panel); border:1px solid var(--nsi-border); color:var(--nsi-dim); font:inherit; font-size:12px; cursor:pointer; backdrop-filter:blur(12px); }
.nsi-tbtn:hover { color:var(--nsi-ink); }
.nsi-tbtn-gold { color:#ffd47a; border-color:rgba(255,212,122,.35); } .nsi-tbtn-gold:hover { color:#fff; background:rgba(255,212,122,.12); }

.nsi-a-label { color:var(--nsi-dim); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; margin-bottom:6px; }
.nsi-a-q { font-size:15px; font-weight:600; margin-bottom:12px; }
.nsi-a-path { display:flex; flex-wrap:wrap; gap:4px; margin-bottom:14px; padding-bottom:12px; border-bottom:1px solid rgba(255,255,255,.06); }
.nsi-node-chip { font-size:11px; padding:3px 8px; border-radius:6px; border:1px solid; animation:nsi-chip-in .6s cubic-bezier(.16,1,.3,1) both; }
@keyframes nsi-chip-in { from { opacity:0; transform:translateY(6px) scale(.9); } to { opacity:1; transform:none; } }
.nsi-a-body { font-size:13.5px; line-height:1.65; }
.nsi-a-body p { margin:0 0 10px; animation:nsi-rise .7s cubic-bezier(.16,1,.3,1) both; animation-delay:calc(var(--i, 0) * 110ms); }
@keyframes nsi-rise { from { opacity:0; transform:translateY(10px); filter:blur(4px); } to { opacity:1; transform:none; filter:none; } }
.nsi-a-body strong { color:var(--nsi-accent); font-weight:600; }
.nsi-a-body .nsi-err { color:#fca5a5; }
.nsi-a-meta { margin-top:14px; padding-top:12px; border-top:1px solid rgba(255,255,255,.06); display:flex; justify-content:space-between; font-size:11px; color:var(--nsi-dim); }
.nsi-thinking { display:flex; gap:4px; align-items:center; color:var(--nsi-dim); font-size:12.5px; }
.nsi-thinking i { width:6px; height:6px; border-radius:50%; background:var(--nsi-accent); animation:nsi-bounce 1.2s infinite ease-in-out; display:inline-block; }
.nsi-thinking i:nth-child(2){animation-delay:.15s} .nsi-thinking i:nth-child(3){animation-delay:.3s}
@keyframes nsi-bounce { 0%,80%,100%{transform:scale(.5);opacity:.4} 40%{transform:scale(1);opacity:1} }

.nsi-hover { position:absolute; background:rgba(8,12,24,.88); border:1px solid rgba(110,231,255,.18); backdrop-filter:blur(10px); padding:8px 12px; border-radius:8px; font-size:12px;
  pointer-events:none; opacity:0; transition:opacity .15s; z-index:20; max-width:260px; }
.nsi-hover.on { opacity:1; }
.nsi-hover b { font-weight:600; display:block; }
.nsi-hover span { color:var(--nsi-dim); font-size:11px; display:block; margin-top:2px; }

.nsi-legend { position:absolute; bottom:20px; left:22px; display:flex; gap:14px; font-size:11px; color:var(--nsi-dim); z-index:9; }
.nsi-li { display:flex; align-items:center; gap:6px; }
.nsi-li i { width:9px; height:9px; border-radius:50%; display:inline-block; }
.nsi-stats { position:absolute; bottom:20px; right:22px; font-size:11px; line-height:1.55; color:var(--nsi-dim); z-index:9; text-align:right; max-width:420px; }
.nsi-stats b { color:var(--nsi-ink); font-weight:500; }
.nsi-hint { position:absolute; bottom:20px; left:50%; transform:translateX(-50%); font-size:11px; color:var(--nsi-dim); z-index:9; opacity:.8; white-space:nowrap; } @media (max-width:1740px){ .nsi-hint{ display:none; } }
.nsi-loading { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; gap:10px; color:var(--nsi-dim); font-size:13px; z-index:30; background:#020409; transition:opacity .6s; }
.nsi-loading.off { opacity:0; pointer-events:none; }
.nsi-loading .nsi-dot { animation:nsi-pulse 1.2s ease-in-out infinite; }
.nsi-overlay { cursor:inherit; }
.nsi-app.nsi-live .nsi-top, .nsi-app.nsi-live .nsi-legend, .nsi-app.nsi-live .nsi-stats, .nsi-app.nsi-live .nsi-hint, .nsi-app.nsi-live .nsi-sitenav, .nsi-app.nsi-live .nsi-hud { animation:nsi-ui-in 1.4s cubic-bezier(.16,1,.3,1) both; animation-delay:1.3s; }
@keyframes nsi-ui-in { from { opacity:0; transform:translateY(-8px); } to { opacity:1; transform:none; } }
.nsi-hud { position:absolute; left:22px; top:70px; z-index:8; display:flex; flex-direction:column; gap:3px; font:500 9.5px/1.4 "JetBrains Mono","SF Mono",ui-monospace,Menlo,monospace; letter-spacing:.12em; color:rgba(138,147,170,.85); pointer-events:none; text-transform:uppercase; }
.nsi-hud span { display:block; } .nsi-hud .nsi-hud-f { color:var(--nsi-gold); }
.nsi-hud::before { content:""; display:block; width:24px; height:1px; background:var(--nsi-accent); opacity:.6; margin-bottom:4px; }
.nsi-app::before, .nsi-app::after { content:""; position:absolute; width:26px; height:26px; border:1px solid rgba(110,231,255,.25); z-index:7; pointer-events:none; opacity:0; transition:opacity 1s 1.4s; }
.nsi-app::before { left:12px; bottom:12px; border-right:0; border-top:0; } .nsi-app::after { right:12px; bottom:12px; border-left:0; border-top:0; }
.nsi-app.nsi-live::before, .nsi-app.nsi-live::after { opacity:1; }
.nsi-tbtn.on { color:var(--nsi-accent); border-color:rgba(110,231,255,.5); }
.nsi-caption { position:absolute; left:40px; bottom:56px; z-index:9; max-width:min(560px, 80vw); pointer-events:none; opacity:0; transform:translateY(14px); transition:opacity .9s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1); }
.nsi-caption.in { opacity:1; transform:none; }
.nsi-cap-k { font:500 10px/1.4 "JetBrains Mono","SF Mono",ui-monospace,monospace; letter-spacing:.2em; text-transform:uppercase; color:var(--nsi-gold); margin-bottom:10px; }
.nsi-cap-t { font-size:clamp(28px, 4vw, 52px); font-weight:700; letter-spacing:-.03em; line-height:1.02; color:#fff; margin-bottom:10px; }
.nsi-cap-s { font-size:15px; color:#c9d2e8; line-height:1.5; }
.nsi-app.nsi-cinema .nsi-top, .nsi-app.nsi-cinema .nsi-legend, .nsi-app.nsi-cinema .nsi-stats, .nsi-app.nsi-cinema .nsi-hint, .nsi-app.nsi-cinema .nsi-sitenav, .nsi-app.nsi-cinema .nsi-hover, .nsi-app.nsi-cinema .nsi-explorer, .nsi-app.nsi-cinema .nsi-panel { opacity:0 !important; pointer-events:none !important; transition:opacity .8s; }
.nsi-app.nsi-cinema .nsi-hud { left:40px; top:40px; }
.nsi-app.nsi-cinema::before, .nsi-app.nsi-cinema::after { opacity:0; }
.nsi-cinema-exit { position:absolute; right:40px; top:34px; z-index:9; }
@media (max-width:700px) { .nsi-hud, .nsi-app::before, .nsi-app::after { display:none; } .nsi-caption { left:18px; bottom:30px; } }
@media (prefers-reduced-motion: reduce) { .nsi-a-body p, .nsi-node-chip, .nsi-app.nsi-live .nsi-top { animation:none !important; } }

@media (max-width:820px) {
  .nsi-panel { top:auto; bottom:0; left:0; right:0; width:auto; max-height:60%; border-radius:16px 16px 0 0; transform:translateY(110%); }
  .nsi-panel.on { transform:none; }
  .nsi-explorer { top:auto; bottom:0; left:0; right:0; width:auto; max-height:60%; border-radius:16px 16px 0 0; transform:translateY(110%); }
  .nsi-explorer.on { transform:none; }
  .nsi-top { flex-direction:column; align-items:stretch; }
  .nsi-brand { justify-content:center; padding-top:0; }
  .nsi-tools, .nsi-legend, .nsi-stats, .nsi-hint { display:none; }
}

/* 1.1 additions */
.nsi-app.nsi-breakout { width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); max-width:none; }
.nsi-a-learn { margin-top:12px; font-size:11.5px; color:var(--nsi-dim); display:flex; flex-wrap:wrap; gap:4px; align-items:center; }
.nsi-a-learn:empty { display:none; }
.nsi-learn-label { color:var(--nsi-gold); margin-right:4px; }
.nsi-learn-chip { border:1px solid rgba(255,212,122,.35); background:rgba(255,212,122,.08); color:var(--nsi-gold); padding:2px 8px; border-radius:6px; font-size:11px; }

/* 2.0: panel, explorer, suggestions */
.nsi-brand .nsi-tbtn { margin-left:8px; padding:6px 10px; }
.nsi-tools { display:flex; gap:6px; }
.nsi-panel { position:absolute; top:104px; right:22px; width:400px; max-height:calc(100% - 170px); background:var(--nsi-panel); border:1px solid var(--nsi-border);
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border-radius:16px; padding:18px 20px 20px; box-shadow:0 24px 70px rgba(0,0,0,.6); overflow-y:auto; z-index:9;
  transform:translateX(430px); opacity:0; transition:transform .35s cubic-bezier(.2,.7,.2,1), opacity .3s; }
.nsi-panel.on { transform:none; opacity:1; }
.nsi-close { position:absolute; top:10px; right:12px; background:none; border:0; color:var(--nsi-dim); font-size:20px; cursor:pointer; line-height:1; padding:4px 6px; }
.nsi-close:hover { color:var(--nsi-ink); }
.nsi-crumb { font-size:11px; color:var(--nsi-dim); display:flex; flex-wrap:wrap; gap:4px; align-items:center; margin-bottom:10px; padding-right:24px; }
.nsi-crumb a { color:var(--nsi-dim); cursor:pointer; text-decoration:none; }
.nsi-crumb a:hover { color:var(--nsi-ink); }
.nsi-crumb .nsi-sep { opacity:.5; }
.nsi-crumb b { font-weight:600; }
.nsi-node { padding-bottom:14px; margin-bottom:14px; border-bottom:1px solid rgba(255,255,255,.06); }
.nsi-node[hidden], .nsi-answer[hidden] { display:none; }
.nsi-n-kind { color:var(--nsi-dim); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; }
.nsi-n-name { font-size:19px; font-weight:700; letter-spacing:-.01em; margin:2px 0 4px; }
.nsi-n-desc { font-size:13px; color:#c3cde3; margin-bottom:10px; }
.nsi-n-actions { display:flex; gap:6px; flex-wrap:wrap; margin:8px 0 12px; }
.nsi-btn { padding:7px 12px; border-radius:999px; background:rgba(110,231,255,.06); border:1px solid rgba(110,231,255,.22); color:var(--nsi-ink); font:inherit; font-size:12px; cursor:pointer; }
.nsi-btn:hover { background:rgba(110,231,255,.14); }
.nsi-btn.nsi-primary { background:rgba(110,231,255,.16); border-color:rgba(110,231,255,.5); color:#fff; }
.nsi-n-sub { color:var(--nsi-dim); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; margin:10px 0 6px; }
.nsi-chipset { display:flex; flex-wrap:wrap; gap:4px; }
.nsi-kchip { font-size:11.5px; padding:3px 9px; border-radius:6px; border:1px solid rgba(255,255,255,.12); color:var(--nsi-ink); cursor:pointer; text-decoration:none; background:rgba(255,255,255,.03); }
.nsi-kchip:hover { border-color:var(--nsi-accent); color:#fff; }
.nsi-kchip i { font-style:normal; color:var(--nsi-dim); margin-left:4px; font-size:10px; }
.nsi-qchip { border-color:rgba(255,212,122,.35); color:var(--nsi-gold); }
.nsi-a-body a.nsi-link { font-weight:600; text-decoration:none; border-bottom:1px dotted currentColor; cursor:pointer; }
.nsi-a-body a.nsi-link:hover { filter:brightness(1.25); }
.nsi-a-next { margin-top:6px; }
.nsi-a-path a { cursor:pointer; text-decoration:none; }
.nsi-learn-chip { text-decoration:none; cursor:pointer; }

.nsi-suggest { position:absolute; left:0; right:0; top:52px; background:rgba(8,12,24,.92); border:1px solid var(--nsi-border); border-radius:12px; padding:6px; z-index:30; backdrop-filter:blur(16px); box-shadow:0 20px 50px rgba(0,0,0,.6); }
.nsi-suggest[hidden] { display:none; }
.nsi-sug { display:flex; align-items:center; gap:8px; padding:7px 10px; border-radius:8px; font-size:13px; cursor:pointer; }
.nsi-sug:hover { background:rgba(110,231,255,.1); }
.nsi-sug i { font-style:normal; color:var(--nsi-dim); font-size:11px; margin-left:auto; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:55%; }
.nsi-sug-ask { color:var(--nsi-gold); font-size:11.5px; justify-content:center; border-top:1px solid rgba(255,255,255,.06); border-radius:0; margin-top:4px; }
.nsi-sw { display:inline-block; width:8px; height:8px; border-radius:50%; flex:none; }

.nsi-explorer { position:absolute; top:92px; left:22px; width:320px; max-height:calc(100% - 160px); background:var(--nsi-panel); border:1px solid var(--nsi-border);
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border-radius:16px; padding:14px; box-shadow:0 24px 70px rgba(0,0,0,.6); overflow-y:auto; z-index:9;
  transform:translateX(-360px); opacity:0; transition:transform .35s cubic-bezier(.2,.7,.2,1), opacity .3s; display:flex; flex-direction:column; gap:10px; }
.nsi-explorer.on { transform:none; opacity:1; }
.nsi-filter { width:100%; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1); color:var(--nsi-ink); padding:9px 12px; border-radius:9px; font:inherit; font-size:13px; outline:none; margin:0; }
.nsi-filter:focus { border-color:rgba(110,231,255,.5); }
.nsi-tree, .nsi-trail { font-size:12.5px; }
.nsi-t-hemi { color:var(--nsi-dim); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; margin:8px 0 4px; display:flex; justify-content:space-between; align-items:center; }
.nsi-t-row { display:flex; align-items:center; gap:7px; padding:4px 4px; border-radius:6px; }
.nsi-t-row:hover { background:rgba(255,255,255,.04); }
.nsi-t-row.lvl1 { font-weight:600; } .nsi-t-row.lvl2 { padding-left:14px; } .nsi-t-row.lvl3 { padding-left:26px; font-size:12px; } .nsi-t-row.lvl4 { padding-left:38px; font-size:11.5px; color:#b9c4dc; } .nsi-t-row.lvl5 { padding-left:50px; font-size:11px; } .nsi-t-row.lvl6, .nsi-t-row.lvl7 { padding-left:60px; font-size:10.5px; }
.nsi-t-tog { width:12px; color:var(--nsi-dim); cursor:pointer; display:inline-block; transition:transform .15s; text-align:center; flex:none; }
.nsi-t-tog.open { transform:rotate(90deg); }
.nsi-t-name { color:var(--nsi-ink); cursor:pointer; text-decoration:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.nsi-t-name:hover { color:#fff; }
.nsi-t-row i { font-style:normal; color:var(--nsi-dim); font-size:10.5px; margin-left:auto; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:45%; }
.nsi-t-kids[hidden] { display:none; }
.nsi-trail { border-top:1px solid rgba(255,255,255,.06); padding-top:6px; }
.nsi-trail:empty { display:none; }
.nsi-small { font-size:10px; letter-spacing:0; text-transform:none; color:var(--nsi-accent); cursor:pointer; }
.nsi-li[data-lens] { cursor:pointer; }
.nsi-li.off { opacity:.35; text-decoration:line-through; }
.nsi-hover em { display:block; font-style:normal; color:var(--nsi-accent); font-size:10.5px; margin-top:4px; }

/* 2.1: web signals and sources */
.nsi-signal { padding:6px 0; border-bottom:1px solid rgba(255,255,255,.05); font-size:12.5px; }
.nsi-signal a { color:var(--nsi-ink); text-decoration:none; font-weight:600; }
.nsi-signal a:hover { color:var(--nsi-accent); }
.nsi-signal i { font-style:normal; color:var(--nsi-dim); font-size:11px; margin-left:4px; }
.nsi-signal span { display:block; color:#b9c4dc; font-size:12px; margin-top:2px; }
.nsi-sources { display:flex; flex-direction:column; gap:3px; }
.nsi-sources a { color:var(--nsi-dim); font-size:11.5px; text-decoration:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.nsi-sources a:hover { color:var(--nsi-accent); }
.nsi-sources a::before { content:"↗ "; color:var(--nsi-accent); }

/* 3.1: site nav inside the network */
.nsi-sitenav { position:absolute; top:66px; right:22px; display:flex; gap:4px; z-index:10; }
.nsi-sitenav a { color:var(--nsi-dim); font-size:11.5px; padding:5px 9px; border-radius:999px; text-decoration:none; background:rgba(8,12,24,.5); border:1px solid transparent; }
.nsi-sitenav a:hover { color:var(--nsi-ink); border-color:var(--nsi-border); }
.nsi-sitenav a i { font-style:normal; color:var(--nsi-gold); }
@media (max-width:820px) { .nsi-sitenav { position:static; justify-content:center; flex-wrap:wrap; padding:6px; } }

.nsi-help { position:absolute; inset:0; z-index:40; display:flex; align-items:center; justify-content:center; background:rgba(2,4,9,.55); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); opacity:0; pointer-events:none; transition:opacity .35s; }
.nsi-help.on { opacity:1; pointer-events:auto; }
.nsi-help-box { width:min(420px, 90vw); padding:22px 24px; border-radius:18px; background:var(--nsi-panel); border:1px solid var(--nsi-border); transform:translateY(12px) scale(.98); transition:transform .5s cubic-bezier(.16,1,.3,1); }
.nsi-help.on .nsi-help-box { transform:none; }
.nsi-help-row { display:flex; align-items:center; gap:14px; padding:6px 0; border-bottom:1px solid rgba(110,231,255,.08); font-size:13px; color:var(--nsi-ink); }
.nsi-help-row kbd { min-width:72px; text-align:center; font:500 11px "JetBrains Mono","SF Mono",ui-monospace,monospace; padding:4px 8px; border-radius:6px; border:1px solid var(--nsi-border); color:var(--nsi-accent); background:rgba(110,231,255,.06); }

.nsi-sug.on { background:rgba(110,231,255,.12); }

.nsi-stats-live { color:var(--nsi-dim); opacity:.75; }

/* Reading room: the question box stays visible as an explorer, but does not look like an invitation to spend tokens. */
.nsi-search.nsi-readonly input { cursor:default; opacity:.85; }
.nsi-search.nsi-readonly input:focus { border-color:rgba(110,231,255,.3); box-shadow:none; transform:none; }
