/* Charts drawn by ui-charts.js (docs/agent-platform/result-layout.md §4.1); colour tokens come from app.css, --m-* from ui.css, the one chart hue from here */
:root{--chart:#5B8DEF;--chart-tint:color-mix(in srgb,var(--chart) 12%,transparent)}
.lychart{position:relative;display:flex;flex-direction:column;gap:8px;margin:0;min-width:0;font-family:var(--font,"Inter",ui-sans-serif,system-ui,sans-serif)}
.lychart svg{display:block;width:100%;height:auto;overflow:visible;outline:none}
.lychart svg:focus-visible{outline:2px solid var(--fg,#F2F2F2);outline-offset:4px;border-radius:6px}
.lychart text{font-family:inherit;font-size:calc(12px * var(--lyk,1));fill:var(--mute,#8C8C8C);font-variant-numeric:tabular-nums}
.lychart .lylab,.lychart .lyval{paint-order:stroke;stroke:var(--card,#0C0C0C);stroke-width:3px;stroke-linejoin:round}
.lychart .lylab{fill:var(--fg2,#D6D6D6)}
.lychart .lyval{fill:var(--fg,#F2F2F2);font-weight:500}
.lychart .lyhead{fill:var(--mute,#8C8C8C);font-size:calc(12px * var(--lyk,1));font-weight:500}
.lychart .lyrank{fill:var(--mute,#8C8C8C);font-weight:400}
.lychart .lygrid{stroke:var(--line,#262626);stroke-width:1;stroke-dasharray:3 4}
.lychart .lybase{stroke:var(--line,#262626);stroke-width:1}
.lychart .lyhit{fill:#000;fill-opacity:0}
.lychart .lyhitline{stroke:#000;stroke-opacity:0;stroke-width:16}
.lychart .lybar,.lychart .lybarh,.lychart .lydot{fill:var(--chart)}
.lychart .lyseg{fill:#BDBDBD}
.lychart .lyhue{fill:var(--chart);stroke:var(--chart)}
.lychart .lys0{fill:#F2F2F2;stroke:#F2F2F2}
.lychart .lys1{fill:#BDBDBD;stroke:#BDBDBD}
.lychart .lys2{fill:#8C8C8C;stroke:#8C8C8C}
.lychart .lys3{fill:#5E5E5E;stroke:#5E5E5E}
.lychart .lys4{fill:#404040;stroke:#404040}
.lychart.lyhilit .lybar,.lychart.lyhilit .lybarh{fill:#8C8C8C}
.lychart .lybar{transform-box:fill-box;transform-origin:bottom}
.lychart .lybar.lyneg{transform-origin:top}
.lychart .lybarh,.lychart .lystack{transform-box:fill-box;transform-origin:left}
.lychart .lybarh.lyneg{transform-origin:right}
.lychart .lyline{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.lychart .lyarea{stroke:none;fill-opacity:.1}
.lychart .lyarea.lyhue{fill:var(--chart-tint);fill-opacity:1}
.lychart .lydot{stroke:var(--card,#0C0C0C);stroke-width:2;transform-box:fill-box;transform-origin:center}
.lychart .lyslope{stroke:#BDBDBD;stroke-width:2;stroke-linecap:round}
.lychart .lyrange{fill:var(--chart);fill-opacity:.7}
.lychart-range .lydot{fill:var(--chart)}
.lychart-slope .lydot{fill:#BDBDBD}
.lychart-slope.lyhilit .lyslope{stroke:#8C8C8C}
.lychart-slope.lyhilit .lydot{fill:#8C8C8C}
.lychart .lylead{stroke:var(--line,#262626);stroke-width:1}
.lychart .lyrest{fill:var(--line,#262626)}
.lychart .lystack.over{opacity:.55}
.lychart .lylimit{stroke:var(--fg2,#D6D6D6);stroke-opacity:.6;stroke-width:1;stroke-dasharray:4 4}
.lychart .lylimit-t{fill:var(--mute,#8C8C8C);font-size:calc(11px * var(--lyk,1))}
.lychart.lyhilit .lymark.hi .lybar,.lychart.lyhilit .lymark.hi .lybarh,.lychart .lymark.hi .lydot{fill:var(--chart)}
.lychart .lymark.hi .lyslope{stroke:var(--chart)}
.lychart g[data-row]{transition:opacity var(--m-fade,200ms) var(--m-ease,cubic-bezier(.2,.8,.2,1))}
.lychart.lyfocus g[data-row]:not(.on){opacity:.45}
.lychart g[data-row].lyoff{opacity:.2}
.lylegend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0;font-size:12px;color:var(--mute,#8C8C8C)}
.lylegend span{display:inline-flex;align-items:center;gap:6px}
.lykey{display:inline-block;width:10px;height:10px;border-radius:2px;background:#BDBDBD}
.lylegend .lyhue{background:var(--chart)}
.lylegend .lys0{background:#F2F2F2}
.lylegend .lys1{background:#BDBDBD}
.lylegend .lys2{background:#8C8C8C}
.lylegend .lys3{background:#5E5E5E}
.lylegend .lys4{background:#404040}
.lyfit{margin:0;font-size:13px;color:var(--mute,#8C8C8C);font-variant-numeric:tabular-nums}
.lyfit b{font-weight:500;color:var(--fg2,#D6D6D6)}
.lytip{position:absolute;top:0;left:0;z-index:2;pointer-events:none;padding:8px 10px;border:1px solid var(--line,#262626);border-radius:8px;background:var(--hair,#1A1A1A);color:var(--fg,#F2F2F2);font-size:12px;line-height:1.4;white-space:nowrap;opacity:0;transition:opacity var(--m-fade,200ms) var(--m-ease,cubic-bezier(.2,.8,.2,1))}
.lytip.on{opacity:1}
.lytip b{display:block;margin-bottom:2px;font-weight:500}
.lytip span{display:flex;justify-content:space-between;gap:14px;color:var(--mute,#8C8C8C)}
.lytip em{font-style:normal;color:var(--fg,#F2F2F2);font-variant-numeric:tabular-nums}
.lysr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.lychart-spark{display:inline-flex;vertical-align:middle}
.lychart-spark svg{width:120px;height:32px}
.lychart-spark .lyline{stroke-width:1.5}
.lychart-spark .lydot{stroke:none}
.lychart.lyabove>svg,.lychart:not(.lyabove)>.lybl{display:none}
.lybl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.lybl-r{display:flex;flex-direction:column;gap:6px;min-width:0;transition:opacity var(--m-fade,200ms) var(--m-ease,cubic-bezier(.2,.8,.2,1))}
.lybl-l{font-size:13px;line-height:1.35;color:var(--fg2,#D6D6D6);overflow-wrap:anywhere}
.lybl-b{display:grid;grid-template-columns:minmax(0,1fr) calc(var(--lybl-v,4ch) + 2px);align-items:center;gap:10px;font-size:12px}
.lybl-b+.lybl-b{margin-top:-2px}
.lybl-t{position:relative;height:10px;border-radius:3px;background:var(--hair,#1A1A1A)}
.lybl-f{position:absolute;top:0;bottom:0;border-radius:3px;background:var(--chart);transform-origin:left}
.lybl-f.lyneg{transform-origin:right}
.lybl-f.lys2{background:#8C8C8C}.lybl-f.lys3{background:#5E5E5E}.lybl-f.lys4{background:#404040}
.lychart.lyhilit .lybl-f{background:#8C8C8C}
.lychart.lyhilit .lybl-r.hi .lybl-f{background:var(--chart)}
.lybl-v{font-weight:500;color:var(--fg,#F2F2F2);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.lybl-r.lyoff{opacity:.2}
.lychart:not(.lyabove)>.lybl-w,.lychart.lyabove>.lydrag-layer{display:none}
.lychart.lydraggable.lyabove{padding-top:0}
/* The same swap on a phone screen alone, for stack, range and slope (data-narrow): it holds even before, or without, the measuring script. */
:root[data-screen="phone"] .lychart[data-narrow="480"]>svg,:root[data-screen="phone"] .lychart[data-narrow="480"]>.lydrag-layer{display:none}
:root[data-screen="phone"] .lychart[data-narrow="480"]>.lybl,:root[data-screen="phone"] .lychart[data-narrow="480"]>.lybl-w{display:flex}
:root[data-screen="phone"] .lychart.lydraggable[data-narrow="480"]{padding-top:0}
.lybl-w{display:flex;flex-direction:column;gap:18px;min-width:0}
.lybl-top .lybl-r{gap:8px}
.lybl-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-width:0}
.lybl-h .lybl-l{flex:1 1 auto;min-width:0}
.lybl-h .lybl-v{flex:none;font-size:13px;max-width:62%;white-space:normal;overflow-wrap:anywhere}
.lybl-was{color:var(--mute,#8C8C8C);font-weight:400}
.lybl-h .lyrank{margin-left:4px;color:var(--mute,#8C8C8C);font-weight:400}
.lybl-f.lys0{background:#F2F2F2}.lybl-f.lys1{background:#BDBDBD}.lybl-f.lyrest{background:var(--line,#262626)}
.lybl-stack .lybl-f{border-right:2px solid var(--card,#0C0C0C);box-sizing:border-box;border-radius:0}
.lybl-stack .lybl-f[data-part="0"]{border-radius:3px 0 0 3px}
.lybl-stack .lybl-r.over .lybl-f{opacity:.55}
.lybl-stack .lybl-r.over .lybl-v{color:var(--bad,#E5484D)}
.lybl-stack .lybl-r .lybl-v,.lybl-stack .lybl-f{transition:color var(--m-tap,120ms) var(--m-ease,cubic-bezier(.2,.8,.2,1)),opacity var(--m-tap,120ms) var(--m-ease,cubic-bezier(.2,.8,.2,1))}
.lybl-lim{position:absolute;top:-4px;bottom:-4px;width:2px;margin-left:-1px;border-radius:1px;background:var(--fg2,#D6D6D6);transition:left var(--m-tap,120ms) var(--m-ease,cubic-bezier(.2,.8,.2,1))}
.lybl-t.lybl-bare{height:12px;background:none}
.lybl-bare::before{content:"";position:absolute;left:0;right:0;top:50%;height:2px;margin-top:-1px;border-radius:1px;background:var(--hair,#1A1A1A)}
.lybl-bare .lybl-f{top:2px;bottom:2px;border-radius:999px}
.lybl-bare .lybl-f.lyrange{opacity:.7}
.lybl-db{position:absolute;top:50%;height:2px;margin-top:-1px;background:#8C8C8C}
.lybl-dot{position:absolute;top:50%;width:10px;height:10px;margin:-5px 0 0 -5px;box-sizing:border-box;border-radius:50%;background:var(--chart)}
.lybl-dot.lybl-from{border:2px solid #8C8C8C;background:var(--card,#0C0C0C)}
.lychart.lyhilit .lybl-r:not(.hi) .lybl-dot:not(.lybl-from){background:#8C8C8C}
.lybl-key{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0;font-size:12px;color:var(--mute,#8C8C8C)}
.lybl-key span{display:inline-flex;align-items:center;gap:6px}
.lybl-key .lybl-dot{position:static;margin:0}
.lybl-ax{position:relative;height:16px;margin-top:-8px;font-size:11px;color:var(--dim,#6B6B6B);font-variant-numeric:tabular-nums}
.lybl-ax span{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap}
.lybl-ax span:first-child{transform:none}
.lybl-ax span:last-child{transform:translateX(-100%)}
.lyslide{display:flex;flex-direction:column;gap:4px;padding:14px 16px 10px;border-radius:14px;background:var(--well,#141414)}
.lyslide-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.lyslide-lab{font-size:13px;font-weight:500;color:var(--fg2,#D6D6D6)}
.lyslide-v{font-size:20px;font-weight:600;letter-spacing:-.01em;color:var(--fg,#F2F2F2);white-space:nowrap;font-variant-numeric:tabular-nums}
.lyslide-v .lydigit{white-space:pre}
.lyslide-t{position:relative;height:44px;margin:0 12px;cursor:pointer;touch-action:pan-y;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;outline:none}
.lyslide-rail{position:absolute;top:20px;left:0;right:0;height:4px;border-radius:999px;background:var(--line,#262626);overflow:hidden}
.lyslide-fill{position:absolute;top:0;bottom:0;left:0;background:var(--chart)}
.lyslide-dot{position:absolute;top:28px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--line,#262626);transition:background-color var(--m-tap,120ms) var(--m-ease,cubic-bezier(.2,.8,.2,1))}
.lyslide-dot.in{background:var(--fg2,#D6D6D6)}
.lyslide-k{position:absolute;top:10px;width:24px;height:24px;margin-left:-12px;display:grid;place-items:center;pointer-events:none}
.lyslide-k i{display:block;box-sizing:border-box;width:24px;height:24px;border:3px solid var(--well,#141414);border-radius:50%;background:var(--accent,#F8B300);transition:transform var(--m-tap,120ms) var(--m-ease,cubic-bezier(.2,.8,.2,1))}
.lychart.lydragging .lyslide-k i{transform:scale(1.15)}
.lyslide-t:focus-visible .lyslide-k i{outline:2px solid var(--fg,#F2F2F2);outline-offset:2px}
.lyslide-ends{display:flex;justify-content:space-between;margin:0;font-size:11px;color:var(--dim,#6B6B6B);font-variant-numeric:tabular-nums}
.lychart .lyseg,.lychart .lyover{transform-box:fill-box;transform-origin:left}
.lychart .lystack{transition:opacity var(--m-tap,120ms) var(--m-ease,cubic-bezier(.2,.8,.2,1))}
.lychart .lyover{fill:none;stroke:var(--bad,#E5484D);stroke-width:1;vector-effect:non-scaling-stroke;opacity:0;transition:opacity var(--m-tap,120ms) var(--m-ease,cubic-bezier(.2,.8,.2,1))}
.lychart g.over .lyover{opacity:1}
.lychart .lylimit-g,.lydrag-carry{transition-property:none}
.lychart.lydraggable{padding-top:34px}
.lydrag-layer{position:absolute;top:34px;left:0;width:100%;pointer-events:none;-webkit-user-select:none;user-select:none}
.lydrag-carry{position:absolute;inset:0}
.lydrag-hit{position:absolute;top:0;right:-8px;width:16px;pointer-events:auto;cursor:ew-resize;touch-action:pan-y}
.lydrag{position:absolute;bottom:100%;right:-12px;display:flex;align-items:flex-end;justify-content:center;width:24px;height:34px;pointer-events:auto;cursor:ew-resize;touch-action:pan-y;outline:none}
.lydrag-label{position:absolute;bottom:100%;left:100%;display:flex;align-items:center;height:28px;margin-left:12px;font-size:12px;line-height:1;color:var(--mute,#8C8C8C);white-space:pre;font-variant-numeric:tabular-nums}
.lydrag-label .lylimit-v{color:var(--fg2,#D6D6D6);font-weight:500}
.lydrag-carry.lyflip .lydrag-label{left:auto;right:0;margin:0 12px 0 0}
.lydrag-label .lydigit{white-space:pre}
.lydrag-knob{display:block;box-sizing:content-box;width:8px;height:24px;border:2px solid var(--card,#0C0C0C);border-radius:999px;background:var(--accent,#F8B300);transition:transform var(--m-tap,120ms) var(--m-ease,cubic-bezier(.2,.8,.2,1))}
.lydrag:focus-visible .lydrag-knob{outline:2px solid var(--fg,#F2F2F2);outline-offset:2px}
.lychart.lydragging{cursor:ew-resize;-webkit-user-select:none;user-select:none}
.lychart.lydragging .lydrag-knob{transform:scale(1.15)}
.lyfoot{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;min-height:28px}
.lyreset{flex:none;height:var(--ctl-sm,26px);padding:0 11px;border:1px solid var(--stroke2,#2C2C2C);border-radius:999px;background:transparent;color:var(--fg2,#D6D6D6);font:inherit;font-size:12px;font-weight:500;cursor:pointer;transition:color var(--m-tap,120ms) var(--m-ease,cubic-bezier(.2,.8,.2,1)),border-color var(--m-tap,120ms) var(--m-ease,cubic-bezier(.2,.8,.2,1))}
.lyreset:hover{color:var(--fg,#F2F2F2);border-color:var(--hover,#4A4A4A)}
.lyreset:focus-visible{outline:2px solid var(--fg,#F2F2F2);outline-offset:2px}
.lyfit .lydigit{white-space:pre}
.lychart.lypickable g[data-row],.lychart.lypickable .lybl-r{cursor:pointer;transition-duration:var(--m-tap,120ms)}
.lychart.lypicked g[data-row]:not(.lypick),.lychart.lypicked .lybl-r:not(.lypick){opacity:.45}
.lychart .lypick .lylab{fill:var(--fg,#F2F2F2)}
@media (prefers-reduced-motion:reduce){.lychart g[data-row],.lytip,.lybl-r{transition-duration:var(--m-tap,120ms)}}
