/* Puffsterz Network Topology — Aevon-style investigation module */
.xnet{color:#fff;font-family:'Inter',system-ui,sans-serif}
.xnet .eyebrow{color:#fca5a5;font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.xnet .h1{color:#fff;font-weight:900;font-size:28px;line-height:1.16;letter-spacing:0}
.xnet .lead{color:#f1f5f9;font-size:13.5px;line-height:1.6}
.xnet .pill{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:999px;font-size:9.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;line-height:1.4}
.xnet .stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:16px}
@media(min-width:700px){.xnet .stat-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1100px){.xnet .stat-grid{grid-template-columns:repeat(6,1fr)}}
.xnet .stat{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:14px;text-align:left}
.xnet .stat .lbl{color:#cbd5e1;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:800}
.xnet .stat .val{color:#fff;font-weight:900;font-size:22px;line-height:1.05;margin:5px 0 3px;font-variant-numeric:tabular-nums}
.xnet .stat .hint{color:#e2e8f0;font-size:10.5px}
.xnet .filters{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 4px}
.xnet .chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-size:10.5px;font-weight:700;cursor:pointer;transition:all .15s;user-select:none;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.1);color:#fff}
.xnet .chip:hover{border-color:rgba(34,211,238,.45);background:rgba(34,211,238,.06)}
.xnet .chip.on{background:rgba(34,211,238,.14);border-color:rgba(34,211,238,.55);box-shadow:0 0 12px rgba(34,211,238,.12)}
.xnet .chip .dot,.xnet .legend .dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.xnet .chip .ct{color:#cbd5e1;font-weight:700;font-size:10px}
.dot-puffsterz{background:#fb7185}.dot-gotm{background:#a78bfa}.dot-basc{background:#fbbf24}.dot-steamx{background:#38bdf8}.dot-promoter{background:#94a3b8}.dot-wallet{background:#10b981}.dot-counterparty{background:#22c55e}.dot-funder{background:#ef4444}.dot-wash{background:#f97316}.dot-identity{background:#06b6d4}
.xnet .stage{position:relative;background:radial-gradient(ellipse at center,rgba(15,23,42,.7) 0%,rgba(2,6,23,.96) 72%),#020617;border:1px solid rgba(239,68,68,.24);border-radius:16px;box-shadow:0 0 34px rgba(239,68,68,.06) inset,0 4px 28px rgba(0,0,0,.35);overflow:hidden;min-height:680px}
.xnet .stage svg{display:block;width:100%;height:680px;cursor:grab}
.xnet .stage svg:active{cursor:grabbing}
.xnet .grid-bg{fill:url(#xnet-grid)}
.xnet .legend{position:absolute;top:12px;left:12px;background:rgba(2,6,23,.76);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:8px 10px;font-size:10px;color:#cbd5e1;backdrop-filter:blur(8px);pointer-events:none;max-width:250px}
.xnet .legend strong{color:#fff;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;display:block;margin-bottom:5px}
.xnet .legend .row{display:flex;align-items:center;gap:6px;line-height:1.7}
.xnet .controls{position:absolute;top:12px;right:12px;display:flex;gap:6px;flex-direction:row;flex-wrap:wrap;justify-content:flex-end;max-width:285px;z-index:5}
.xnet .btn{background:rgba(2,6,23,.76);border:1px solid rgba(255,255,255,.09);color:#cbd5e1;font-size:10px;padding:6px 10px;border-radius:8px;cursor:pointer;backdrop-filter:blur(8px);font-family:'JetBrains Mono',monospace;font-weight:700}
.xnet .btn:hover{color:#fff;border-color:rgba(34,211,238,.45)}
.xnet .tip{position:absolute;pointer-events:none;background:rgba(2,6,23,.96);border:1px solid rgba(34,211,238,.45);border-radius:8px;padding:9px 10px;font-size:11px;color:#fff;max-width:280px;box-shadow:0 8px 28px rgba(0,0,0,.55);z-index:5;opacity:0;transition:opacity .12s;transform:translate(-50%,calc(-100% - 12px))}
.xnet .tip.on{opacity:1}.xnet .tip .h{font-weight:900;font-size:12.5px;color:#fff;margin-bottom:3px}.xnet .tip .b{color:#cbd5e1;font-size:10.5px;line-height:1.45}.xnet .tip .meta{color:#fbbf24;font-size:10px;margin-top:4px;font-variant-numeric:tabular-nums}
.xnet g.node circle{stroke:rgba(0,0,0,.66);stroke-width:1.5;filter:drop-shadow(0 1px 2px rgba(0,0,0,.55));transition:stroke .12s,stroke-width .12s}
.xnet g.node:hover circle{stroke:#22d3ee;stroke-width:2.6}
.xnet g.node.center circle{stroke:#ef4444;stroke-width:3.5;filter:drop-shadow(0 0 18px rgba(239,68,68,.62)) drop-shadow(0 2px 4px rgba(0,0,0,.55))}
.xnet g.node.center{animation:xnet-pulse 2.6s ease-out infinite}
@keyframes xnet-pulse{0%,100%{filter:drop-shadow(0 0 14px rgba(239,68,68,.45))}50%{filter:drop-shadow(0 0 26px rgba(239,68,68,.85))}}
.xnet g.labels text,.xnet g.node text{fill:#fff!important;font-size:11px;font-weight:800;text-anchor:middle;pointer-events:none;paint-order:stroke fill;stroke:rgba(2,6,23,.92);stroke-width:4px;stroke-linejoin:round;letter-spacing:0}
.xnet g.node.center text{font-size:13px}
.xnet line.edge{stroke:rgba(148,163,184,.18);stroke-width:1.3;transition:stroke .12s,stroke-width .12s,opacity .15s;stroke-linecap:round}
.xnet line.edge.high{stroke:rgba(239,68,68,.72);stroke-width:2.2}
.xnet line.edge.medium{stroke:rgba(251,191,36,.55);stroke-width:1.8}
.xnet line.edge.wallet{stroke:rgba(34,197,94,.65);stroke-width:1.9;stroke-dasharray:5 4}.xnet line.edge.wash{stroke:rgba(249,115,22,.74);stroke-width:2.1;stroke-dasharray:2 5}.xnet line.edge.identity{stroke:rgba(6,182,212,.74);stroke-width:2;stroke-dasharray:7 3}
.xnet line.edge.faded{opacity:.07}.xnet g.node.faded{opacity:.14}.xnet g.node.faded text{opacity:0!important}
.xnet .side{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:16px;min-height:540px}
.xnet .side .h{color:#fff;font-weight:900;font-size:15px;line-height:1.2}.xnet .side .sub{color:#cbd5e1;font-size:10.5px;margin-top:2px}.xnet .side .bio{color:#fff;font-size:12px;line-height:1.6;margin:10px 0;white-space:pre-wrap}.xnet .side .lk{display:block;padding:8px 9px;margin:6px 0;background:rgba(0,0,0,.32);border-left:2px solid rgba(239,68,68,.55);border-radius:5px;color:#fff;font-size:11px;line-height:1.5}
.xnet .side a{color:#67e8f9;text-decoration:none;font-weight:800}.xnet .side a:hover{text-decoration:underline}
.xnet .panel-card{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:13px 14px}
.xnet .proof-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-top:16px}
@media(min-width:860px){.xnet .proof-grid{grid-template-columns:1fr 1fr}}
.xnet .proof{background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:13px 14px}
.xnet .proof .grade{font-size:9.5px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#fca5a5}.xnet .proof .title{font-size:14px;font-weight:900;color:#fff;margin-top:4px}.xnet .proof .body{font-size:11.5px;color:#dbeafe;line-height:1.55;margin-top:7px}
.xnet .flow-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:10px}
.xnet .flow-table{width:100%;border-collapse:collapse;min-width:740px;font-size:11px}.xnet .flow-table th{text-align:left;color:#94a3b8;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.1);padding:8px}.xnet .flow-table td{padding:8px;border-bottom:1px solid rgba(255,255,255,.055);color:#e2e8f0}.xnet .flow-table .mono{font-family:'JetBrains Mono',monospace;color:#67e8f9}.xnet .flow-table .risk{color:#fca5a5;font-weight:900}
.xnet[data-state="loading"] .stage::before{content:'LOADING NETWORK';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:rgba(34,211,238,.75);font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.25em;padding:12px 20px;border:1px solid rgba(34,211,238,.4);border-radius:999px;background:rgba(2,6,23,.85);z-index:4;animation:xnet-load 1.4s ease-in-out infinite}
@keyframes xnet-load{0%,100%{opacity:.55}50%{opacity:1}}
.xnet[data-state="ready"] .stat,.xnet[data-state="ready"] .filters,.xnet[data-state="ready"] .stage,.xnet[data-state="ready"] .side,.xnet[data-state="ready"] .panel-card,.xnet[data-state="ready"] .proof{animation:xnet-fadein .45s ease-out both}
@keyframes xnet-fadein{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(max-width:1023px){.xnet .stage{min-height:600px}.xnet .stage svg{height:600px}.xnet .side{min-height:auto}}
@media(max-width:620px){.xnet .h1{font-size:22px}.xnet .lead{font-size:12px}.xnet .stage{min-height:500px}.xnet .stage svg{height:500px}.xnet .legend{font-size:9px;max-width:155px}.xnet .stat .val{font-size:18px}.xnet .chip{font-size:10px;padding:5px 9px}.xnet g.labels text,.xnet g.node text{font-size:9.5px}}
@media(max-width:620px){.xnet .controls{top:auto;right:12px;left:12px;bottom:12px;max-width:none}.xnet .btn{flex:1;min-width:0}.xnet .legend{max-width:230px}.xnet .stage{min-height:500px}.xnet .stage svg{height:500px}}@media(max-width:360px){.xnet .legend{display:none}.xnet .stat-grid{grid-template-columns:1fr 1fr}.xnet .stage{min-height:430px}.xnet .stage svg{height:430px}.xnet .h1{font-size:18px}.xnet .controls .btn{padding:5px 8px;font-size:10px}}

.xnet .signal-strip{display:grid;grid-template-columns:1fr;gap:10px;margin-top:16px}
@media(min-width:760px){.xnet .signal-strip{grid-template-columns:repeat(3,1fr)}}
.xnet .signal-strip>div{background:linear-gradient(135deg,rgba(239,68,68,.16),rgba(6,182,212,.07));border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:14px;min-height:92px}
.xnet .signal-strip span{display:block;color:#fff;font-size:28px;line-height:1;font-weight:900;font-variant-numeric:tabular-nums}
.xnet .signal-strip b{display:block;color:#fff;font-size:12px;margin-top:6px;text-transform:uppercase;letter-spacing:.06em}
.xnet .signal-strip small{display:block;color:#cbd5e1;font-size:11px;margin-top:5px;line-height:1.4}
.xnet .lead.compact{font-size:11.5px;color:#cbd5e1;margin-top:6px}
.xnet .flow-table .mini{font-size:10px;color:#94a3b8;line-height:1.35;margin-top:3px}
.xnet .flow-table .sigline{font-family:'JetBrains Mono',monospace;font-size:9px;color:#94a3b8;line-height:1.25;margin-top:4px;max-width:360px;white-space:normal;word-break:break-all}


/* Aevon-style evidence cards reused by Puffsterz */
.evidence-grade-proven{background:rgba(239,68,68,0.15);color:#fca5a5;border:1px solid rgba(239,68,68,0.45)}
.evidence-grade-strong{background:rgba(251,191,36,0.15);color:#fcd34d;border:1px solid rgba(251,191,36,0.45)}
.evidence-grade-circumstantial{background:rgba(167,139,250,0.15);color:#c4b5fd;border:1px solid rgba(167,139,250,0.40)}
.evidence-grade-hypothesis{background:rgba(96,165,250,0.10);color:#93c5fd;border:1px solid rgba(96,165,250,0.35)}
.grade-pill{display:inline-flex;align-items:center;gap:.3rem;padding:3px 9px;font-size:9.5px;font-weight:700;letter-spacing:.05em;border-radius:999px;text-transform:uppercase;line-height:1.4}
.net-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.net-card{background:rgba(255,255,255,0.025);border:1px solid rgba(255,255,255,0.07);border-radius:10px;padding:10px;text-align:center;transition:all .15s;min-height:108px}
.net-card:hover{border-color:rgba(34,211,238,0.3);transform:translateY(-1px)}
.net-card .h{font-size:11.5px;font-weight:700;color:#fff;margin-bottom:2px;overflow-wrap:anywhere}
.net-card .role{font-size:9.5px;color:#94a3b8}
.arrow{display:inline-block;color:#fb7185;font-weight:900;margin:0 .25rem}
.img-card{background:rgba(255,255,255,0.02);border:1px solid rgba(255,255,255,0.08);border-radius:12px;overflow:hidden}
.img-card img{width:100%;display:block;aspect-ratio:1;object-fit:cover}
.img-card .lbl{padding:9px 12px;font-size:10.5px;color:#cbd5e1;border-top:1px solid rgba(255,255,255,0.06);background:rgba(0,0,0,0.25)}

.xnet .quick-stack{display:grid;gap:10px;margin-top:14px}
.xnet .quick-card{border:1px solid rgba(148,163,184,.14);background:rgba(2,6,23,.36);border-radius:10px;padding:12px}
.xnet .quick-card strong{display:block;color:#fff;font-size:13px;margin-bottom:5px}
.xnet .quick-card span{display:block;color:#cbd5e1;font-size:12px;line-height:1.5}
.xnet .hint-strip{margin-top:14px;border-left:2px solid rgba(248,113,113,.78);background:rgba(127,29,29,.16);padding:10px 12px;color:#f1f5f9;font-size:12px;line-height:1.55}
.xnet .node circle{cursor:pointer;transition:stroke-width .15s ease,filter .15s ease}
.xnet .node:hover circle{stroke-width:3px;filter:drop-shadow(0 0 10px rgba(255,255,255,.22))}
.xnet .label{pointer-events:none;text-shadow:0 1px 2px #020617,0 0 9px #020617}


/* Puffsterz reader upgrades */
.xnet .reader-grid{display:grid;grid-template-columns:1fr;gap:10px;margin:16px 0}
@media(min-width:780px){.xnet .reader-grid{grid-template-columns:repeat(4,1fr)}}
.xnet .reader-card{background:linear-gradient(180deg,rgba(15,23,42,.86),rgba(2,6,23,.78));border:1px solid rgba(148,163,184,.16);border-radius:13px;padding:14px;min-height:154px}
.xnet .reader-card.hot{border-color:rgba(248,113,113,.38);box-shadow:inset 0 0 0 1px rgba(248,113,113,.05)}
.xnet .reader-card.cool{border-color:rgba(34,211,238,.32)}
.xnet .reader-card .k{color:#fca5a5;font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;font-weight:900}
.xnet .reader-card h4{font-size:14px;color:#fff;font-weight:900;margin:7px 0 6px;line-height:1.2}
.xnet .reader-card p{font-size:11.5px;color:#dbeafe;line-height:1.55;margin:0}
.xnet .tagbar{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
.xnet .tagbar span{font-size:9px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.055);color:#cbd5e1;border-radius:999px;padding:3px 7px}
.xnet .controls{max-width:330px}
.xnet .btn{min-width:78px;min-height:34px;text-align:center}
.xnet .legend{pointer-events:auto}
.xnet .side{max-height:680px;overflow:auto;background:linear-gradient(180deg,rgba(15,23,42,.76),rgba(2,6,23,.72))}
.xnet .side .pf.mini{display:flex;gap:10px;align-items:flex-start;margin-bottom:10px}
.xnet .meta-row{display:flex;flex-wrap:wrap;gap:6px;margin:9px 0}
.xnet .node-grade{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:9.5px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;border:1px solid rgba(148,163,184,.2);color:#cbd5e1;background:rgba(148,163,184,.08)}
.xnet .node-grade.high{color:#fecaca;background:rgba(239,68,68,.15);border-color:rgba(239,68,68,.36)}
.xnet .node-grade.medium{color:#fde68a;background:rgba(251,191,36,.12);border-color:rgba(251,191,36,.3)}
.xnet .node-grade.neutral{color:#cbd5e1;background:rgba(148,163,184,.08);border-color:rgba(148,163,184,.18)}
.xnet .address-box{border:1px solid rgba(34,211,238,.18);background:rgba(8,47,73,.16);border-radius:10px;padding:10px;margin:10px 0}
.xnet .address-box strong{display:block;color:#67e8f9;font-size:10px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}
.xnet .address-box span{display:block;font-family:'JetBrains Mono',monospace;font-size:10.5px;color:#fff;word-break:break-all}
.xnet .relationship-pills{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.xnet .relationship-pills span{border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.045);border-radius:999px;padding:4px 8px;font-size:10px;color:#e2e8f0}
.xnet .edge-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}
.xnet .edge-summary div{border:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.22);border-radius:10px;padding:10px;text-align:center}
.xnet .edge-summary b{display:block;color:#fff;font-size:18px;line-height:1}
.xnet .edge-summary span{display:block;color:#94a3b8;font-size:9.5px;text-transform:uppercase;letter-spacing:.07em;margin-top:4px}
.xnet .reasoning-title{color:#fca5a5;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;margin:12px 0 6px}
.xnet .edge-row strong{text-transform:capitalize}.xnet .edge-row span{display:block;color:#cbd5e1;margin-top:3px}
.xnet .edge-conf{display:inline-flex;margin-left:5px;border-radius:999px;background:rgba(251,191,36,.12);color:#fde68a;border:1px solid rgba(251,191,36,.24);padding:1px 5px;font-size:8.5px;font-weight:900}
.xnet .details-block{margin-top:8px}.xnet .details-block summary{cursor:pointer;color:#67e8f9;font-size:11px;font-weight:900;padding:8px 0}
.xnet .panel-card.readable{border-color:rgba(255,255,255,.12);background:linear-gradient(180deg,rgba(15,23,42,.68),rgba(2,6,23,.62));padding:16px}
.xnet .evidence-lane{display:grid;grid-template-columns:1fr;gap:10px;margin-top:12px}
@media(min-width:900px){.xnet .evidence-lane{grid-template-columns:repeat(2,1fr)}}
.xnet .evidence-card{border:1px solid rgba(255,255,255,.11);background:rgba(255,255,255,.035);border-radius:12px;padding:13px;min-height:132px}
.xnet .evidence-card.high{border-color:rgba(248,113,113,.32);background:rgba(127,29,29,.12)}
.xnet .evidence-card.warn{border-color:rgba(251,146,60,.3);background:rgba(124,45,18,.12)}
.xnet .evidence-card.info{border-color:rgba(34,211,238,.26);background:rgba(8,47,73,.12)}
.xnet .evidence-card.caveat{border-color:rgba(167,139,250,.26);background:rgba(59,7,100,.12)}
.xnet .card-top{display:flex;gap:8px;align-items:center;margin-bottom:8px}
.xnet .card-top span{font-size:9px;font-weight:900;color:#fff;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:3px 7px}
.xnet .card-top b{font-size:12.5px;color:#fff;line-height:1.25}
.xnet .evidence-card p{color:#dbeafe;font-size:11.5px;line-height:1.5;margin:0}
.xnet .mono-line{font-family:'JetBrains Mono',monospace;color:#67e8f9;font-size:10px;line-height:1.45;margin-top:9px;word-break:break-word}
.xnet .why{color:#fca5a5;font-size:10.5px;line-height:1.45;margin-top:8px}
.xnet .detail-panel summary{display:flex;gap:12px;justify-content:space-between;align-items:center;cursor:pointer;list-style:none}
.xnet .detail-panel summary::-webkit-details-marker{display:none}
.xnet .detail-panel summary b{display:block;color:#fff;font-size:13px;text-transform:uppercase;letter-spacing:.06em}
.xnet .detail-panel summary small{display:block;color:#cbd5e1;font-size:11px;line-height:1.45;margin-top:4px}
.xnet .detail-panel summary em{font-style:normal;color:#67e8f9;font-size:10px;font-weight:900;border:1px solid rgba(34,211,238,.22);border-radius:999px;padding:4px 8px;white-space:nowrap}
.xnet .sig-details summary{color:#67e8f9;font-size:9.5px;cursor:pointer;margin-top:4px}
.xnet .sig-details div{font-family:'JetBrains Mono',monospace;color:#94a3b8;font-size:9px;word-break:break-all;margin-top:4px}
