/* Vuli web UI - styles of the scan header, the Verdicts posture lines and the Slices screens
   (phase 1 of the mockup-parity plan, work items W5 to W7 and the evidence cross-links).
   What: the "x of y fixes" and "Found in this run" lines, the checklist mini list of the slices
   list, the slice page's drawn call path with its edge tags, the final completeness line and the
   evidence-filter link. Colours come only from the tokens of style.css; every state is also
   written in words (a dot or a border never carries the meaning alone). No inline style anywhere
   (strict CSP): the call path is drawn with plain list items and borders. */
.posture-fixes{margin:8px 0 0;font-size:14px}
.posture-fixes .muted{display:block;font-size:12.5px;margin-top:2px}
.posture-found{margin:6px 0 0;color:var(--muted)}
.posture-found b{color:var(--heading);font-variant-numeric:tabular-nums}
.evid-filter{color:var(--accent);text-decoration:none}
.evid-filter:hover .ev-count{text-decoration:underline}
.evid-filter:not(:has(.ev-count)){text-decoration:underline}
/* checklist mini list (Slices tab) */
.ck-mini{list-style:none;margin:0 0 6px;padding:0;font-size:12.5px;display:flex;flex-direction:column;gap:2px}
.ck-mini li{display:flex;align-items:center;gap:6px;color:var(--text)}
.ck-dot{width:9px;height:9px;border-radius:50%;flex:none;background:var(--pending);border:1px solid var(--pending)}
.ck-pass .ck-dot{background:var(--safe);border-color:var(--safe)}
.ck-fail .ck-dot{background:var(--risky);border-color:var(--risky)}
.ck-unknown .ck-dot{background:transparent;border:1px dashed var(--muted)}
/* slice page head and final completeness line */
.slice-head h2{margin:0}
.back{margin:0 0 4px}
.back a{display:inline-flex;align-items:center;gap:6px}
.back svg{width:14px;height:14px}
.final{margin:10px 0;padding:8px 12px;border-radius:10px;border:1px solid var(--border);border-left-width:4px;background:var(--surface-2);color:var(--text)}
.final-ok{border-left-color:var(--safe)}
.final-block{border-left-color:var(--risky);background:var(--risky-bg)}
.final-na{border-left-color:var(--muted);border-left-style:dashed}
/* drawn call path */
.call-path{list-style:none;margin:8px 0 12px;padding:0}
.call-path li{margin:0}
.cp-node{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);overflow-wrap:anywhere}
.cp-node code{font-family:var(--mono);font-size:12.5px;color:var(--text)}
.cp-vuln{border-color:var(--risky);background:var(--risky-bg)}
.cp-k{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.cp-vuln .cp-k{color:var(--risky)}
.cp-edge{display:flex;align-items:center;gap:8px;padding:0 0 0 22px;min-height:26px}
.cp-line{width:2px;height:22px;background:var(--border-hi);flex:none}
.edge-tag{display:inline-block;font-family:var(--mono);font-size:11.5px;font-weight:600;padding:0 7px;border:1px solid var(--border-hi);border-radius:6px;background:var(--accent-soft);color:var(--heading)}
.na + .card{margin-top:14px}

/* Phase 2 (plan W13, W14): the formula box of the slice page and the Tests tab results table.
   Colours are tokens only; a result chip always prints its word and an icon, so colour is never
   the only signal. */
.formula{margin:10px 0;padding:8px 12px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2)}
.formula ol{margin:6px 0 0;padding-left:20px}
.formula li{margin:2px 0}
.formula code{font-family:var(--mono);font-variant-numeric:tabular-nums}
.filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:8px 12px}
.fchips{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.fchip{font:inherit;font-size:13px;font-weight:650;border:1px solid var(--border);background:var(--surface);color:var(--text);padding:4px 10px;border-radius:99px;cursor:pointer}
.fchip[aria-pressed="true"]{background:var(--accent-soft);color:var(--heading);font-weight:800;border-color:var(--accent)}
.fchip .cnt{margin-left:6px;font-size:11.5px;font-weight:700;padding:0 6px;border-radius:99px;background:rgba(var(--hi),.12);color:var(--muted)}
.plant-wrap{display:inline-flex;align-items:center;gap:8px}
.tres{display:inline-flex;align-items:center;gap:5px;font-weight:700;font-size:13px;padding:2px 9px 2px 6px;border-radius:99px;border:1px solid currentColor;white-space:nowrap}
.tres svg{width:14px;height:14px;flex:none}
.tres-ok{color:var(--safe);background:var(--safe-bg)}
.tres-warn{color:var(--human);background:var(--human-bg);border-color:var(--human-bd)}
.tres-bad{color:var(--risky);background:var(--risky-bg)}
.tres-na{color:var(--muted);background:var(--surface-2);border-style:dashed}
.tres-detail{margin-top:3px;max-width:34ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:760px){.tres-detail{white-space:normal;max-width:none}}
