.ab{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);height:660px;display:grid;overflow:hidden}@media (width<=960px){.ab{grid-template-rows:480px 560px;grid-template-columns:1fr;height:auto}}.ab-conv{border-right:1px solid var(--line);grid-template-rows:auto minmax(0,1fr) auto;min-height:0;display:grid}@media (width<=960px){.ab-conv{border-right:0;border-bottom:1px solid var(--line)}}.ab-top{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:12px 16px;display:flex}.ab-top b{font-size:14px;font-weight:600}.ab-top .small{margin-right:auto}.ab-top .op-btn+.op-btn{margin-left:4px}.ab-dot{background:var(--signal);width:9px;height:9px;box-shadow:0 0 0 4px var(--signal-soft);border-radius:50%}.ab-stream{scrollbar-width:thin;align-content:start;gap:14px;min-height:0;padding:18px 18px 8px;display:grid;overflow-y:auto}.ab-user{background:var(--panel-2);border:1px solid var(--line);max-width:88%;color:var(--text);border-radius:14px 14px 4px;justify-self:end;padding:10px 14px;font-size:14.5px;line-height:1.45}.ab-asst{color:var(--text);grid-template-columns:26px 1fr;align-items:start;gap:10px;font-size:14.5px;line-height:1.5;display:grid}.ab-asst p{text-wrap:pretty;margin:0}.ab-av{border:1px solid var(--line-2);background:var(--bg-2);border-radius:50%;place-items:center;width:26px;height:26px;display:grid}.ab-av img{width:18px;height:18px}.ab-think{color:var(--mute);padding-left:36px;font-size:13.5px}.ab-shimmer{background:linear-gradient(90deg, var(--mute) 0%, var(--text) 50%, var(--mute) 100%);color:#0000;background-size:200% 100%;-webkit-background-clip:text;background-clip:text;animation:1.4s linear infinite ab-sh}@keyframes ab-sh{to{background-position:-200% 0}}.ab-tool{border:1px solid var(--line);background:var(--bg-2);color:var(--text-2);border-radius:7px;grid-template-columns:14px 1fr;align-items:center;gap:10px;margin-left:36px;padding:7px 10px;font-size:12px;display:grid}.ab-tool+.ab-tool{border-top-left-radius:0;border-top-right-radius:0;margin-top:-8px}.ab-ti{border:1.5px solid var(--line-2);border-radius:50%;width:12px;height:12px;position:relative}.ab-tool.run .ab-ti{border-color:var(--signal);border-top-color:#0000;animation:.8s linear infinite ab-spin}.ab-tool.ok .ab-ti{border-color:var(--ok);background:var(--ok)}.ab-tool.ok .ab-ti:after{content:"";border:solid var(--signal-ink);border-width:0 1.5px 1.5px 0;width:3px;height:6px;position:absolute;top:1px;left:3px;transform:rotate(45deg)}@keyframes ab-spin{to{transform:rotate(360deg)}}.ab-card{border:1px solid var(--line-2);background:var(--panel-2);border-radius:8px;align-items:center;gap:8px;margin-top:10px;padding:10px 12px;display:flex}.ab-card.approved{border-color:color-mix(in srgb, var(--ok) 45%, transparent);color:var(--ok)}.ab-link{margin-left:36px;font-size:14px}.ab-composer{border-top:1px solid var(--line);grid-template-columns:1fr 34px;align-items:end;gap:8px;padding:12px 16px 14px;display:grid}.ab-input{border:1px solid var(--line-2);background:var(--bg-2);min-height:44px;color:var(--text);border-radius:10px;padding:11px 13px;font-size:14px;line-height:1.45}.ab-ph{color:var(--mute)}.ab-send{background:var(--text);width:34px;height:34px;color:var(--bg);border-radius:8px;margin-bottom:5px;font-weight:700}.ab-caret{background:var(--signal);vertical-align:-2px;width:2px;height:14px;margin-left:1px;animation:1s steps(2,end) infinite ab-blink;display:inline-block}@keyframes ab-blink{to{opacity:0}}.ab-canvas{background:var(--bg-2);grid-template-rows:auto minmax(0,1fr);min-height:0;display:grid}.ab-stage,.ab-tests,.ab-livebox{scrollbar-width:thin;min-height:0;overflow:auto}.ab-tabs{border-bottom:1px solid var(--line);gap:4px;padding:10px 12px;display:flex}.ab-tab{font-family:var(--font-mono);letter-spacing:.06em;color:var(--mute);border-radius:6px;align-items:center;gap:6px;padding:5px 10px;font-size:11.5px;display:inline-flex}.ab-tab.on{background:var(--panel);color:var(--text);border:1px solid var(--line-2)}.ab-live{background:var(--ok);width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in srgb, var(--ok) 25%, transparent);border-radius:50%}.ab-stage{align-content:center;padding:12px;display:grid;position:relative}.ab-empty{place-items:center;margin:0;display:grid;position:absolute;inset:0}.ab-svg{background-image:radial-gradient(var(--line) 1px, transparent 1px);background-size:18px 18px;border-radius:8px;width:100%;height:auto}.ab-edge{fill:none;stroke:var(--line-2);stroke-width:1.2px;opacity:0;transition:opacity .5s}.ab-edge.plan{stroke-dasharray:2 5}.ab-edge.in{opacity:.9}.ab-node{opacity:0;transform-box:fill-box;transition:opacity .45s}.ab-node.in{opacity:1}.ab-node rect{fill:var(--panel);stroke:var(--line-2)}.ab-node.supervisor rect{fill:var(--panel-2)}.ab-node.system rect{fill:var(--bg-2)}.ab-node.kb rect{stroke:var(--ok);stroke-width:1.6px}.ab-acc{fill:var(--signal);stroke:none}.ab-label{font-family:var(--font-body);fill:var(--text);font-size:11.5px;font-weight:600}.ab-sub{font-family:var(--font-mono);fill:var(--mute);font-size:8.5px}.ab-sub2{font-family:var(--font-mono);letter-spacing:.08em;fill:var(--ok);text-transform:uppercase;font-size:7.5px}.ab-badge{font-family:var(--font-mono);fill:var(--warn);font-size:8.5px}.ab-chip{opacity:0;transition:opacity .4s}.ab-chip.in{opacity:1}.ab-chip rect{fill:var(--signal-soft);stroke:color-mix(in srgb, var(--signal) 40%, transparent)}.ab-chip text{font-family:var(--font-mono);fill:var(--signal);font-size:7.5px}.ab-tests{align-content:start;gap:14px;padding:18px;display:grid}.ab-tests-head{justify-content:space-between;align-items:center;display:flex}.ab-suite{gap:6px;display:grid}.ab-suite-row{color:var(--text-2);grid-template-columns:1fr auto auto;gap:12px;font-size:12.5px;display:grid}.ab-bar{background:var(--line);border-radius:3px;height:6px;overflow:hidden}.ab-bar i{background:var(--signal);height:100%;transition:width .15s linear;display:block}.ab-tests .ok,.ab-cov.ok{color:var(--ok)}.ab-livebox{align-content:start;gap:8px;padding:12px;display:grid}.ab-livebox .op{box-shadow:none}.ab-livetag{justify-self:start}@media (prefers-reduced-motion:reduce){.ab-shimmer,.ab-caret,.ab-tool.run .ab-ti{animation:none}}
