/* Component-level annotation in the step view (annotator.js): hoverable parts, the popover, the components list,
   result cells, code line numbers, figures in the answer, and the roll-up block in Evaluations (rollup.js). */
.ca .ca-c{border-radius:3px;cursor:pointer;transition:background .12s,box-shadow .12s}
.ca .ca-table{border-bottom:1px dashed var(--accent)}
.ca .ca-join{border-bottom:1px dotted var(--fg-3)}
.ca .ca-figure{border-bottom:1px dotted var(--fg-3)}
.ca .ca-c.ca-hot,.ca .ca-c:focus-visible{background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent);outline:0}
.ca .ca-el{cursor:pointer;border-radius:var(--r8);padding:var(--sp-1) var(--sp-2);margin:0 calc(-1 * var(--sp-2))}
.ca .sv-q.ca-el{margin:0;padding:var(--sp-2) var(--sp-3)}
.ca .ca-has.sev-bad{background:var(--warn-soft);box-shadow:inset 0 -2px 0 var(--warn)}
.ca .ca-has.sev-good{background:var(--ok-soft);box-shadow:inset 0 -2px 0 var(--ok)}
.ca .ca-has.sev-note{background:var(--accent-soft);box-shadow:inset 0 -2px 0 var(--accent)}
.ca .ca-has.ca-hot{box-shadow:0 0 0 1px var(--accent)}
.ca span.ca-last::after,.ca td.ca-last::after,.ca th.ca-last::after,.ca .ca-el.ca-last::after{content:attr(data-n);display:inline-block;min-width:14px;height:14px;margin-left:3px;padding:0 3px;border-radius:var(--r-full);background:var(--warn);color:var(--bg);font:600 10px/14px var(--font);text-align:center;vertical-align:1px;font-style:normal}
.ca .sev-good.ca-last::after{background:var(--ok)}.ca .sev-note.ca-last::after{background:var(--accent);color:var(--accent-fg)}
.ca mark.sv-anchor.sev-good{background:var(--ok-soft);border-bottom-color:var(--ok)}
.ca mark.sv-anchor.ca-draft{background:var(--sel);border-bottom-style:dashed}
/* the list under a statement */
.ca-list{border-radius:var(--r8);box-shadow:0 0 0 1px var(--line);background:var(--bg);font-size:var(--fs-2);min-width:0}
.ca-list>summary{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-3);cursor:pointer;font-weight:600;color:var(--fg-2);list-style:none;min-height:26px}
.ca-list>summary::-webkit-details-marker{display:none}
.ca-list>summary::before{content:'▸';color:var(--fg-3);font-size:10px}.ca-list[open]>summary::before{content:'▾'}
.ca-list>summary .hint{font-weight:400;font-size:var(--fs-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.ca-rows{display:flex;flex-direction:column;max-height:220px;overflow:auto;border-top:1px solid var(--line);padding:var(--sp-1)}
.ca-gh{font:600 var(--fs-1) var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3);padding:var(--sp-2) var(--sp-2) var(--sp-h)}
.ca-row{display:flex;align-items:center;gap:var(--sp-2);min-height:24px;padding:var(--sp-h) var(--sp-2);border-radius:var(--r4);text-align:left;min-width:0;width:100%}
.ca-row:hover,.ca-row.ca-hot,.ca-row:focus-visible{background:var(--accent-soft);outline:0}
.ca-row .ca-rl{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-1)}
.ca-row.ca-stmt .ca-rl{font-size:var(--fs-2);color:var(--fg-2)}
.ca-row .ca-n{font-style:normal;font:600 10px/14px var(--font);min-width:14px;height:14px;padding:0 3px;border-radius:var(--r-full);text-align:center;flex:none}
.ca-row .ca-n:empty{display:none}
.ca-row.ca-has{box-shadow:none !important;background:transparent}
.ca-row.sev-bad .ca-n{background:var(--warn);color:var(--bg)}.ca-row.sev-good .ca-n{background:var(--ok);color:var(--bg)}.ca-row.sev-note .ca-n{background:var(--accent);color:var(--accent-fg)}
.ca-st{flex:none;display:inline-flex}
.ca-lint{display:flex;flex-direction:column;gap:var(--sp-1)}
.ca-find{display:flex;flex-direction:column;gap:3px;align-items:flex-start;font-size:var(--fs-2);color:var(--fg-2);padding:var(--sp-1) var(--sp-2);border-radius:var(--r8);background:var(--bg-2);overflow-wrap:anywhere}
.ca-find .pill{flex:none;margin-top:1px}
.ca-unanch{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);border-radius:var(--r8);background:var(--bg-2)}
/* result table */
.ca-tbl td,.ca-tbl th{cursor:pointer}
.ca-tbl td.ca-hot,.ca-tbl th.ca-hot,.ca-tbl td:focus-visible,.ca-tbl th:focus-visible{box-shadow:inset 0 0 0 1px var(--accent);background:var(--accent-soft);outline:0}
.ca-tbl tbody{counter-reset:anrow}
.ca-tbl .ca-rn{width:1%;padding:4px 6px;color:var(--fg-3);text-align:right;font:var(--fs-1) var(--mono);background:var(--bg-2);border-right:1px solid var(--line-soft);position:sticky;left:0}
.ca-tbl td.ca-rn::before{counter-increment:anrow;content:counter(anrow)}
.ca-tbl th.ca-rn{z-index:1;cursor:default}
.ca-tbl td.ca-rn.ca-last::after{margin-left:2px}
/* code with line numbers */
.ca-code{display:flex;align-items:flex-start;border-radius:var(--r8);background:var(--bg-2);box-shadow:0 0 0 1px var(--line);max-height:340px;overflow:auto;font:var(--fs-2)/1.55 var(--mono)}
.ca-gut{display:flex;flex-direction:column;flex:none;position:sticky;left:0;background:var(--bg-2);border-right:1px solid var(--line);padding:var(--sp-2) 0;z-index:1}
.ca-ln{font:inherit;line-height:inherit;height:calc(1.55 * var(--fs-2));color:var(--fg-3);text-align:right;padding:0 6px 0 12px;min-width:34px;position:relative;font-variant-numeric:tabular-nums}
.ca-ln:hover,.ca-ln:focus-visible{color:var(--accent-deep);background:var(--accent-soft);outline:0}
.ca-ln.sel{background:var(--accent-soft);color:var(--accent-deep);font-weight:600}
.ca-ln.ca-has{box-shadow:none !important;background:transparent}
.ca-ln.ca-has::before{content:'';position:absolute;left:3px;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--accent)}
.ca-ln.sev-bad::before{background:var(--warn)}.ca-ln.sev-good::before{background:var(--ok)}
.ca-code>pre.sv-code.ca-pre{flex:1;min-width:max-content;white-space:pre;overflow:visible;max-height:none;box-shadow:none;background:transparent;border-radius:0;overflow-wrap:normal}
/* arguments of any other tool */
.sv-args{display:flex;flex-direction:column;gap:var(--sp-1)}
.sv-arg{display:flex;flex-direction:column;gap:2px;min-width:0}
.sv-ak{font-size:var(--fs-1);color:var(--fg-3)}
.sv-av{margin:0;padding:var(--sp-1) var(--sp-2);border-radius:var(--r4);background:var(--bg-2);font:var(--fs-2)/1.5 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;max-height:160px;overflow:auto}
.ca .sv-arg.ca-el{margin:0;padding:var(--sp-1) var(--sp-2);box-shadow:0 0 0 1px var(--line)}
.ca .sv-hit.ca-el{margin:0;box-shadow:0 0 0 1px var(--line);padding:var(--sp-2) var(--sp-3)}
.ca .ca-el.ca-hot,.ca .ca-el:focus-visible{box-shadow:0 0 0 1px var(--accent);background:var(--accent-soft);outline:0}
/* the popover */
.ca-pop{position:fixed;z-index:90;width:320px;max-width:calc(100vw - 16px);max-height:calc(100vh - 16px);overflow:auto;background:var(--bg);border-radius:var(--r16);box-shadow:var(--sh-2);font-size:var(--fs-2);color:var(--fg)}
.ca-ph{display:flex;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-3);border-bottom:1px solid var(--line)}
.ca-ph b{flex:1;min-width:0;overflow-wrap:anywhere;font-size:var(--fs-2);font-weight:600;line-height:18px}
.ca-kind{flex:none;font:600 var(--fs-1)/18px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent-deep)}
.ca-x{flex:none;width:20px;height:18px;border-radius:var(--r4);color:var(--fg-3);font-size:11px}
.ca-x:hover,.ca-x:focus-visible{background:var(--bg-3);color:var(--fg)}
.ca-b{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3) var(--sp-3)}
.ca-info p{margin:0 0 3px;overflow-wrap:anywhere}.ca-info p:last-child{margin-bottom:0}
.ca-info b{font-weight:600}
.ca-path{font-size:var(--fs-1);color:var(--fg-2);line-height:1.5}
.ca-clip{max-height:54px;overflow:hidden}
.ca-m{display:flex;gap:var(--sp-3);color:var(--fg-2)}.ca-m b{color:var(--fg)}
.ca-cms{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-1) 0;border-top:1px solid var(--line-soft)}
.ca-cm{display:flex;align-items:center;gap:6px;flex-wrap:wrap;text-align:left;padding:var(--sp-1) var(--sp-2);border-radius:var(--r8);background:var(--bg-2);min-width:0}
.ca-cm:hover,.ca-cm:focus-visible{background:var(--accent-soft);outline:0}
.ca-cm b{font-weight:600}
.ca-cb{flex-basis:100%;color:var(--fg-2);overflow-wrap:anywhere}
.ca-is{display:flex;flex-wrap:wrap;gap:var(--sp-1);padding-top:var(--sp-1);border-top:1px solid var(--line-soft)}
.ca-i{height:24px;padding:0 var(--sp-2);border-radius:var(--r-full);background:var(--warn-soft);color:var(--warn);font-size:var(--fs-2);font-weight:500;white-space:nowrap}
.ca-i.good{background:var(--ok-soft);color:var(--ok)}
.ca-i:hover,.ca-i:focus-visible{box-shadow:0 0 0 1px currentColor;outline:0}
.ca-i[disabled]{opacity:.5}
.ca-acts{display:flex;align-items:center;gap:var(--sp-1);flex-wrap:wrap}
.ca-done{display:flex;align-items:center;gap:var(--sp-2)}
.ca-lk{color:var(--fg-3);text-decoration:underline;font-size:var(--fs-2)}.ca-lk:hover{color:var(--accent-deep)}
.ca-t{min-height:60px}
.ca-pop .ca-name{width:100%}
.ca-pop .btn:focus-visible,.ca-pop textarea:focus-visible,.ca-pop input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
/* roll-up in Evaluations */
.ru{display:flex;flex-direction:column;gap:var(--sp-3)}
.ru-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--sp-4)}
.ru-col{display:flex;flex-direction:column;gap:2px;min-width:0}
.ru-t{font:600 var(--fs-1) var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3);padding-bottom:var(--sp-1)}
.ru-r{display:grid;grid-template-columns:minmax(0,1fr) 72px auto;align-items:center;gap:var(--sp-2);min-height:26px;padding:0 var(--sp-2);border-radius:var(--r8);text-align:left;font-size:var(--fs-2)}
.ru-r:hover,.ru-r:focus-visible{background:var(--bg-3);outline:0}.ru-r.on{background:var(--accent-soft);color:var(--accent-deep)}
.ru-r .ru-n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ru-r .ru-bar{height:6px;border-radius:var(--r-full);background:var(--bg-3);overflow:hidden}.ru-r .ru-bar i{display:block;height:100%;background:var(--warn);border-radius:var(--r-full)}
.ru-r.good .ru-bar i{background:var(--ok)}.ru-r.neutral .ru-bar i{background:var(--fg-3)}
.ru-r b{font-weight:600;font-variant-numeric:tabular-nums;min-width:18px;text-align:right}
.ru-list{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--r12);background:var(--bg-2)}
.ru-lh{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}
.ru-it{display:flex;flex-direction:column;gap:3px;padding:var(--sp-2) var(--sp-3);border-radius:var(--r8);background:var(--bg);box-shadow:0 0 0 1px var(--line);min-width:0}
.ru-ih{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:var(--fs-2)}
.ru-it .cm-quote{max-height:56px;overflow:hidden}
.ru-ib{font-size:var(--fs-3);overflow-wrap:anywhere}
.ca-warn{color:var(--warn);background:var(--warn-soft);border-radius:var(--r4);padding:2px var(--sp-2)}
