.vv{color:var(--ink);font-size:14px;scroll-margin-top:12px;margin-bottom:16px;border-bottom:1px solid var(--border);padding-bottom:14px}
.vv p{line-height:1.4;margin:7px 0}.vv small,.vv-muted{font-size:12px;color:var(--muted)}
.vv [hidden]{display:none!important}.vv button,.vv .vv-pick{min-height:44px;border:1px solid var(--border);border-radius:10px;background:#fff;padding:9px 12px;color:var(--ink);font:inherit;font-weight:700;cursor:pointer}
.vv button:disabled{opacity:.5;cursor:default}.vv .vv-link{border:0;background:transparent;color:var(--muted);padding:8px;min-height:44px}
.vv-top{display:flex;align-items:center;justify-content:space-between;min-height:30px}.vv-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:8px 0}.vv-pickers>*{flex:1;justify-content:center}
.vv-pick{display:inline-flex;align-items:center;position:relative;overflow:hidden}.vv-pick input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.vv-status{color:var(--muted);font-size:12px;line-height:1.4;margin:4px 0 10px}.vv-window{overflow:auto;max-height:65vh;border-radius:10px;background:#18251d}
.vv-canvas{position:relative;line-height:0;touch-action:pan-x pan-y}.vv-canvas img{width:100%;height:auto;display:block;pointer-events:none}.vv-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.vv-box{fill:none;stroke:#43fa9a;stroke-width:2;vector-effect:non-scaling-stroke}.vv-box.excluded{stroke:#ddd;stroke-dasharray:6 4}.vv-ball{fill:#279cf022;stroke:#38b8ff;stroke-width:3;vector-effect:non-scaling-stroke}
.vv-balllabel{position:absolute;transform:translate(-50%,-100%);padding:6px 8px;background:#07547c;color:white;border-radius:6px;font-size:11px;line-height:1;white-space:nowrap;pointer-events:none}
.vv .vv-tag{position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;min-height:44px;padding:0;border:2px solid white;border-radius:50%;background:#075331e8;color:white;font-size:14px;line-height:40px;box-shadow:0 1px 5px #0007;z-index:1}
.vv .vv-tag.excluded{background:#3b4145e8;color:#eee;border-style:dashed}.vv .vv-tag:focus-visible{outline:3px solid #ffbe24;outline-offset:2px}
.vv-summary{padding:12px 0 0}.vv-totals{display:flex;gap:18px;justify-content:space-between}.vv-totals strong{font-size:25px;line-height:1.1;white-space:nowrap}.vv-totals small{display:block;font-size:12px;font-weight:500;margin-top:4px}.vv-color{font-size:12px;color:var(--muted)}
.vv-actions>button:first-child{background:#edf6ee;border-color:#c9dfcc;color:var(--pine-800,#175c39)}
.vv-error{color:#9d361d;font-size:13px}.vv-markhint{padding:10px;background:#fff0be;border-radius:8px;line-height:1.4;margin-bottom:8px}.vv-markhint button{display:block;margin-top:6px}
.vv details{margin-top:4px}.vv details summary{cursor:pointer;min-height:44px;padding:12px 0;font-size:13px;color:var(--muted)}.vv-table{max-height:220px;overflow:auto}.vv-table table{width:100%;font-size:12px;text-align:left}.vv-table th,.vv-table td{padding:5px;border-bottom:1px solid #ddd}
.vv-readback{margin:14px 0;padding:12px;border:1px solid var(--border);border-radius:10px}.vv-readback img{display:block;max-width:100%;max-height:240px;margin-top:8px;object-fit:contain}.vv-readback p{font-size:13px;line-height:1.45}
.vv .vv-target-toggle{font-weight:700;color:var(--pine-800,#175c39)}.vv-target-caption{font-weight:700;font-size:13px}.vv-target-caption span{font-weight:400;color:var(--muted)}
.vv-scatter{width:100%;display:block;touch-action:pan-y}.vv-scatter text{font:10px system-ui,sans-serif;fill:#4d574f}.vv-scatter circle{cursor:pointer}.vv-scatter circle:focus{outline:none;stroke:#154fe0;stroke-width:3}
.vv-point-info{font-size:12px;line-height:1.4;border-left:3px solid #5d9460;padding-left:8px;margin:6px 0}.vv-point-info:empty{display:none}.vv-point-info button{min-height:44px}
.vv-cross{border-collapse:collapse;width:100%;font-size:12px;margin-top:10px}.vv-cross caption{text-align:left;font-size:12px;color:var(--muted);padding-bottom:7px}.vv-cross th,.vv-cross td{text-align:left;padding:7px 5px;border-bottom:1px solid var(--border)}.vv-cross td.vv-hit{background:#d9eed4;font-weight:800}
.vv-unassessed>div{max-height:120px;overflow:auto;display:flex;gap:5px;flex-wrap:wrap}.vv-unassessed button{font-size:12px;min-width:44px}.vv-standards p{font-size:12px}

.vv-tools{display:flex;gap:0;align-items:center}.vv-top b{font-size:13px}.vv-top small{font-size:11px}
