/* ============================================================ VERDICT — V1's verdict page: floating tab pill, judge circuit + constellation, chat stream */
.vtabs{position:sticky;top:14px;z-index:20;width:max-content;margin:14px auto 0;display:inline-grid;grid-auto-flow:column;gap:2px;padding:4px;border-radius:999px;background:rgba(20,20,25,.702);backdrop-filter:blur(12px);border:1px solid var(--line-2);box-shadow:0 20px 40px -20px rgba(20,20,30,.29)}
.vtabs button{padding:6px 16px;border-radius:999px;font-size:12px;font-weight:600;color:var(--ink-3);transition:.2s;display:inline-flex;align-items:center;gap:8px}
.vtabs button:hover{color:var(--ink);background:rgba(20,20,25,.045)}
.vtabs button[aria-pressed="true"]{background:var(--ink);color:#fff}
.vpane{display:none}
.vpane[data-on="true"]{display:block;animation:fadeIn .5s var(--ease)}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

/* the top block — judge circuit on the left, the constellation on the right */
.vtop{display:flex;align-items:center;justify-content:center;gap:56px;padding:34px 0 30px}
.circuit{position:relative;min-width:236px;display:grid;gap:8px}
.circuit::before{content:"";position:absolute;left:23px;top:22px;bottom:22px;width:1px;background:linear-gradient(to bottom, rgba(20,20,25,.18), rgba(20,20,25,.045), transparent)}
.node{position:relative;display:flex;align-items:center;gap:14px;padding:8px 12px 8px 56px;border-radius:10px;text-align:left;width:100%;transition:.25s;opacity:.5}
.node:hover{background:rgba(20,20,25,.036);opacity:.85}
.node[aria-pressed="true"]{opacity:1}
.node::before{content:"";position:absolute;left:23px;top:50%;width:8px;height:8px;border-radius:50%;transform:translate(-50%,-50%);background:var(--room);border:1.5px solid rgba(20,20,25,.27);transition:.25s;z-index:1}
.node[aria-pressed="true"]::before{background:var(--ink);border-color:var(--ink);box-shadow:0 0 0 3px rgba(20,20,25,.12);transform:translate(-50%,-50%) scale(1.25)}
.node[aria-pressed="true"]::after{content:"";position:absolute;left:24px;top:50%;width:26px;height:1px;background:linear-gradient(to right, rgba(20,20,25,.45), transparent)}
.node.master{margin-bottom:12px}
.node .tile{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;border:1px solid var(--line-2);background:rgba(20,20,25,.045);color:var(--ink-2);font-size:16px;transition:.25s;flex:0 0 auto}
.node[aria-pressed="true"] .tile{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:0 14px 26px -14px rgba(20,20,25,.55)}
.node .tile.mono-avatar{border-radius:8px;width:34px;height:34px;font-size:14px;background:rgba(20,20,25,.045)}
.node[aria-pressed="true"] .tile.mono-avatar{background:rgba(20,20,25,.108);color:var(--ink);border-color:rgba(20,20,25,.36);box-shadow:none}
.node .nm{display:block;font-size:11.5px;font-weight:500;letter-spacing:.01em;color:var(--ink)}
.node .sub{display:block;font-family:var(--data);font-size:10px;color:var(--ink-4);margin-top:3px}
.node .jn{display:block;font-size:13px;font-weight:700;color:var(--ink)}
.node .js{display:block;font-family:var(--data);font-size:11px;color:var(--ink-3);margin-top:3px}
.node .js small{font-size:9px;color:var(--ink-4);letter-spacing:.06em;margin-left:4px}
.node .ring{position:absolute;right:-4px;bottom:-4px;width:16px;height:16px;border-radius:50%;background:var(--ink);border:1px solid var(--line-2);display:grid;place-items:center}
.node .ring svg{width:10px;height:10px;transform:rotate(-90deg)}
.node .ring circle{fill:none;stroke-width:5}
.node .tilewrap{position:relative;flex:0 0 auto}

.surfwrap{position:relative}
.surface svg{width:520px;max-width:100%;height:auto;display:block;overflow:visible}
.surface .ring{fill:none;stroke:rgba(20,20,25,.054);stroke-width:1;stroke-dasharray:2 3}
.surface .ring.outer{stroke-dasharray:none;stroke:rgba(20,20,25,.036)}
.surface .spoke{stroke:rgba(20,20,25,.054);stroke-width:1}
.surface .rlbl{font-family:var(--data);font-size:9px;fill:rgba(20,20,25,.27)}
.surface .blob{fill:url(#blobFill);stroke:rgba(20,20,25,.54);stroke-width:2.5;stroke-linejoin:round;transition:d .8s var(--ease)}
.surface .blob-glow{fill:none;stroke:rgba(20,20,25,.072);stroke-width:12;stroke-linejoin:round}
.surface .pt{transition:opacity .3s}
.surface .pt.dim{opacity:.1}
.surface .mean{filter:drop-shadow(0 0 8px currentColor)}
.surface .lpill{fill:var(--c);fill-opacity:.14;rx:10}
.surface .alabel{font-family:var(--ui);font-size:11px;font-weight:500;letter-spacing:.01em;fill:var(--c)}
.surface .ascore{font-family:var(--data);font-size:18px;font-weight:700;fill:var(--ink)}
.surface .aspread{font-family:var(--data);font-size:8.5px;fill:rgba(20,20,25,.315)}
.surface .center{font-family:var(--ui);font-weight:800;font-size:36px;fill:var(--ink);letter-spacing:-.04em}
.surface .center-sub{font-family:var(--data);font-size:9px;fill:rgba(20,20,25,.27);letter-spacing:.12em}
.stip{position:absolute;z-index:5;pointer-events:none;max-width:240px;padding:10px 12px;border-radius:10px;background:rgba(20,20,25,.846);border:1px solid var(--line-2);box-shadow:0 20px 40px -16px rgba(20,20,30,.29);opacity:0;transition:opacity .15s;transform:translate(-50%,-112%);backdrop-filter:blur(8px)}
.stip.show{opacity:1}
.stip .h{display:flex;justify-content:space-between;gap:10px;font-family:var(--data);font-size:10px;color:var(--ink-3);margin-bottom:4px}
.stip .h b{color:var(--c);font-weight:600}
.stip p{font-size:12px;line-height:1.45;color:var(--ink)}

.tx-foot{padding:26px 0 0;border-top:1px solid var(--line);color:var(--ink-4);font-size:11px;line-height:1.6;margin-top:60px}
