/* One app window. The landing page supplies its existing font and color tokens. */
.agent-demo-figure { width:min(960px,calc(100vw - 32px)); margin:0 0 64px; margin-left:calc(50% - min(480px,calc(50vw - 16px))); scroll-margin-top:24px; }
.agent-demo-figure>figcaption { margin-top:16px; font-size:14px; line-height:1.6; color:#62666d; }
agent-builder-demo {
  --ab-ink:var(--ink,#37352f);
  --ab-muted:#62666d;
  --ab-line:#dedfe2;
  --ab-accent:var(--accent,#385a8a);
  display:block;
  position:relative;
  width:100%;
  height:560px;
  overflow:hidden;
  border:1px solid #d1d3d8;
  border-radius:10px;
  background:#fff;
  color:var(--ab-ink);
  font-family:var(--font,Geist,Arial,sans-serif);
  font-size:14px;
  line-height:1.5;
  isolation:isolate;
}
agent-builder-demo * { box-sizing:border-box; }
agent-builder-demo button,agent-builder-demo input { font:inherit; color:inherit; }
agent-builder-demo button { cursor:pointer; }
agent-builder-demo button:disabled { cursor:default; opacity:.55; }
agent-builder-demo button:focus-visible,agent-builder-demo input:focus-visible { outline:2px solid var(--ab-accent); outline-offset:3px; }
agent-builder-demo svg { display:block; width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
agent-builder-demo p,agent-builder-demo h3,agent-builder-demo ol,agent-builder-demo dl { margin:0; }
agent-builder-demo p { color:inherit; }
.ab-sr { position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.ab-header { height:56px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:16px; padding:0 20px; border-bottom:1px solid var(--ab-line); }
.ab-brand { display:flex; align-items:center; gap:8px; font-family:Manrope,var(--font); font-size:17px; font-weight:750; letter-spacing:-.6px; }
.ab-brand img { border-radius:5px; }
.ab-progress { display:flex; align-items:center; list-style:none; gap:12px; padding:0; color:var(--ab-muted); font-size:12px; }
.ab-progress li { position:relative; white-space:nowrap; }
.ab-progress li+li::before { content:'·'; margin-right:12px; color:var(--ab-muted); }
.ab-progress [aria-current] { color:var(--ab-accent); font-weight:600; }
.ab-replay { justify-self:end; min-height:36px; padding:6px 0 6px 8px; border:0; background:transparent; color:var(--ab-accent)!important; font-size:12px!important; white-space:nowrap; }
.ab-replay:hover { text-decoration:underline; text-underline-offset:4px; }
.ab-panes { display:grid; grid-template-columns:60% 40%; height:calc(100% - 56px); opacity:1; transition:opacity 180ms ease-out; }
agent-builder-demo[data-resetting=true] .ab-panes { opacity:0; }
.ab-builder { display:flex; flex-direction:column; min-width:0; padding:26px 28px 20px; border-right:1px solid var(--ab-line); overflow:hidden; }
.ab-draft-body { flex:1; min-height:0; overflow:auto; padding:2px 4px 10px; margin-inline:-4px; scrollbar-width:thin; }
.ab-draft-body>[data-role$="-view"]:not([hidden]) { animation:ab-fade 180ms ease-out both; }
.ab-heading { font-family:Manrope,var(--font); font-size:22px; line-height:1.3; letter-spacing:-.5px; font-weight:650; }
.ab-request-form { margin-top:20px; }
.ab-request-box,.ab-chat-composer { position:relative; display:flex; align-items:center; gap:8px; min-width:0; }
.ab-request-box { min-height:58px; padding:7px 8px 7px 14px; border:1px solid #99a2b0; border-radius:6px; }
.ab-request-box>input { flex:1; min-width:0; padding:8px 0; border:0; background:transparent; font-size:16px; line-height:1.5; }
.ab-request-box>input:focus-visible,.ab-chat-composer>input:focus-visible { outline:none; }
.ab-request-box:focus-within,.ab-chat-composer:focus-within { outline:2px solid var(--ab-accent); outline-offset:2px; }
.ab-primary { display:inline-flex; align-items:center; justify-content:center; flex:none; min-height:40px; border:1px solid var(--ab-accent); border-radius:5px; padding:8px 12px; background:var(--ab-accent); color:#fff!important; font-size:14px; line-height:1.5; font-weight:500; white-space:nowrap; transition:background 180ms ease-out; }
.ab-primary:hover { background:#2d4b74; }
.ab-primary:active { background:#243e63; }
.ab-starters { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:16px; }
.ab-starters button { min-width:0; min-height:64px; border:1px solid var(--ab-line); border-radius:5px; padding:10px 12px; background:transparent; text-align:left; font-size:13px; line-height:1.5; transition:background 180ms ease-out; }
.ab-starters button:hover { background:var(--paper,#fbfbfa); }
.ab-triggers { min-width:0; margin:20px 0 0; padding:0; border:0; }
.ab-triggers legend { margin-bottom:8px; color:var(--ab-muted); font-size:12px; }
.ab-triggers>div { display:flex; gap:4px; flex-wrap:wrap; }
.ab-triggers button { min-height:32px; padding:6px 8px; border:0; border-radius:4px; background:transparent; font-size:12px; white-space:nowrap; }
.ab-triggers [aria-checked=true] { color:var(--ab-accent); background:#edf2f8; }
.ab-prompt-summary { margin-top:12px!important; color:var(--ab-muted)!important; font-size:14px; line-height:1.55; overflow-wrap:anywhere; }
.ab-clarify-question { margin-top:36px!important; font-weight:500; font-size:16px; }
.ab-sources { display:flex; gap:8px; flex-wrap:wrap; margin-top:16px; }
.ab-sources button { display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:8px 12px; border:1px solid #aeb7c2; border-radius:5px; background:transparent; }
.ab-sources [aria-pressed=true] { color:var(--ab-accent); border-color:var(--ab-accent); background:#edf2f8; }
.ab-source-check { display:grid; place-items:center; width:16px; height:16px; border:1px solid #7e8a9c; border-radius:3px; }
.ab-source-check svg { visibility:hidden; width:12px; height:12px; }
[aria-pressed=true]>.ab-source-check svg { visibility:visible; }
.ab-plan-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.ab-text-button { flex:none; min-height:32px; padding:4px 0; border:0; background:transparent; color:var(--ab-muted)!important; font-size:12px!important; }
.ab-text-button:hover { color:var(--ab-accent)!important; }
.ab-plan-list { list-style:none; padding:0; margin-top:20px!important; }
.ab-step { display:flex; align-items:flex-start; gap:12px; padding:8px 0; animation:ab-step-enter 180ms ease-out both; }
.ab-step-icon { width:24px; height:24px; flex:none; display:grid; place-items:center; border:1px solid #9ba3af; border-radius:50%; font-size:11px; color:var(--ab-muted); }
.ab-step-icon>span,.ab-step-icon>svg { grid-area:1/1; }
.ab-step-icon>svg { width:14px; height:14px; opacity:0; }
.ab-step-icon path { stroke-dasharray:20; stroke-dashoffset:20; transition:stroke-dashoffset 200ms ease-out; }
.ab-step.is-running .ab-step-icon { color:var(--ab-accent); border-color:var(--ab-accent); animation:ab-running 1s ease-out infinite; }
.ab-step.is-done .ab-step-icon { color:var(--ab-accent); border-color:var(--ab-accent); background:#edf2f8; }
.ab-step.is-done .ab-step-icon>span { opacity:0; }
.ab-step.is-done .ab-step-icon>svg { opacity:1; }
.ab-step.is-done path { stroke-dashoffset:0; }
.ab-step-content { flex:1; min-width:0; padding-top:1px; }
.ab-step-text { display:inline; width:100%; padding:0; border:0; border-radius:2px; background:transparent; text-align:left; font-size:14px; line-height:1.55; }
.ab-step-text:hover { color:var(--ab-accent); }
.ab-step-editor { width:100%; min-height:32px; padding:3px 6px; margin:-4px -7px; border:1px solid #8c97a6; border-radius:3px; background:#fff; font-size:14px; }
.ab-approval { display:inline-block; margin-top:4px; padding:1px 5px; border:1px solid #b9b9b3; border-radius:3px; color:#585952; font-size:10px; line-height:1.6; }
.ab-insertion { position:relative; margin-top:10px; }
.ab-insert-input { width:100%; min-height:36px; padding:6px 0 6px 36px; border:0; border-radius:3px; background:transparent; color:var(--ab-muted)!important; font-size:13px!important; }
.ab-shortcut { margin-top:2px!important; color:var(--ab-muted)!important; font-size:11px; line-height:1.5; }
.ab-menu { position:absolute; z-index:4; bottom:calc(100% + 6px); left:28px; right:0; max-height:280px; overflow:auto; border:1px solid #aeb4be; border-radius:6px; background:#fff; box-shadow:0 5px 14px rgb(30 35 45 / .08); padding:6px; }
.ab-menu-categories { display:grid; grid-template-columns:1fr 1fr; gap:2px; padding-bottom:6px; margin-bottom:6px; border-bottom:1px solid var(--ab-line); }
.ab-menu button { display:block; width:100%; min-height:32px; padding:6px 8px; border:0; border-radius:3px; background:transparent; text-align:left; font-size:12px; line-height:1.4; }
.ab-menu button:hover,.ab-menu button:focus-visible { background:#f1f2f3; }
.ab-menu [aria-checked=true],.ab-menu .is-highlighted { color:var(--ab-accent); background:#edf2f8; }
.ab-menu-options button { min-height:38px; font-size:13px; }
.ab-error { flex:none; min-height:0; font-size:12px; color:#893b34!important; }
.ab-error:not(:empty) { margin-top:6px; }
.ab-builder-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; flex:none; min-height:40px; padding-top:8px; }
.ab-footer-note { color:var(--ab-muted); font-size:11px; line-height:1.5; }
.ab-test { min-width:0; min-height:0; display:flex; flex-direction:column; padding:26px 24px 20px; }
.ab-test-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.ab-test-heading>h3 { font-family:Manrope,var(--font); font-size:17px; line-height:1.4; letter-spacing:-.3px; font-weight:650; }
.ab-test-heading>span { color:var(--ab-muted); font-size:11px; white-space:nowrap; }
.ab-chat-log { min-height:0; flex:1; overflow:auto; padding-top:20px; scrollbar-width:thin; }
.ab-test-empty { max-width:25ch; margin-top:40px!important; color:var(--ab-muted)!important; font-size:14px; line-height:1.6; }
.ab-turn+.ab-turn { margin-top:24px; }
.ab-speaker { display:block; color:var(--ab-muted); font-size:11px; margin-bottom:6px; }
.ab-chat-question p { font-size:14px; line-height:1.6; overflow-wrap:anywhere; }
.ab-chat-answer { margin-top:24px; }
.ab-chat-answer>.ab-speaker { color:var(--ab-ink); font-weight:600; }
.ab-chat-answer p { font-size:14px; line-height:1.65; overflow-wrap:anywhere; min-height:22px; }
.ab-citations { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; padding-bottom:12px; }
.ab-citations span { display:inline-block; padding:3px 6px; border:1px solid #c0c4cb; border-radius:4px; color:#545a64; font-size:10px; line-height:1.5; }
.ab-test-form { flex:none; margin-top:16px; }
.ab-chat-composer { min-height:44px; padding:4px 4px 4px 10px; border:1px solid #99a2b0; border-radius:6px; }
.ab-chat-composer>input { flex:1; min-width:0; padding:6px 0; border:0; background:transparent; font-size:14px; }
.ab-chat-composer>button { display:grid; place-items:center; flex:none; width:34px; height:34px; border:0; border-radius:4px; color:var(--ab-accent); background:#edf2f8; }
.ab-chat-composer>button:hover { background:#e1e9f4; }
.ab-typing-overlay { position:absolute; inset:0 auto 0 14px; display:flex; align-items:center; width:calc(100% - 125px); overflow:hidden; white-space:pre; font-size:16px; pointer-events:none; }
.ab-chat-composer .ab-typing-overlay { left:10px; width:calc(100% - 56px); font-size:14px; }
.is-typing>input { color:transparent!important; }
.ab-typing-overlay::after,.ab-chat-answer p.is-streaming::after { content:''; display:inline-block; width:1px; height:1em; margin-left:2px; vertical-align:-1px; background:currentColor; animation:ab-caret 900ms steps(1) infinite; flex:none; }
.ab-review-body { margin-top:12px!important; color:var(--ab-muted)!important; font-size:14px; line-height:1.6; }
.ab-review { margin-top:24px!important; }
.ab-review>div { display:grid; grid-template-columns:90px minmax(0,1fr); gap:16px; padding:12px 0; border-bottom:1px solid var(--ab-line); font-size:14px; line-height:1.55; }
.ab-review dt { color:var(--ab-muted); }
.ab-review dd { margin:0; overflow-wrap:anywhere; }
.ab-published-check { width:32px; height:32px; display:grid; place-items:center; margin-bottom:16px; border:1px solid var(--ab-accent); border-radius:50%; color:var(--ab-accent); }
.ab-published-check svg { width:18px; height:18px; }
.ab-cursor { position:absolute; z-index:8; width:15px; height:15px; border:2px solid var(--ab-accent); border-radius:50%; background:#fff; opacity:.9; pointer-events:none; transition:left 180ms ease-out,top 180ms ease-out,opacity 180ms ease-out; }
.ab-cursor::after { content:''; position:absolute; inset:3px; border-radius:50%; background:var(--ab-accent); }
@keyframes ab-step-enter { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@keyframes ab-running { 0%,100% { background:#fff; } 50% { background:#e6edf6; } }
@keyframes ab-caret { 50% { opacity:0; } }
@media(max-width:767px) {
  agent-builder-demo { height:1056px; }
  .ab-header { grid-template-columns:24px 1fr auto; gap:10px; padding:0 14px; }
  .ab-brand>span { display:none; }
  .ab-progress { justify-self:center; gap:8px; }
  .ab-progress li+li::before { margin-right:8px; }
  .ab-replay { font-size:11px!important; padding-left:0; }
  .ab-panes { grid-template-columns:minmax(0,1fr); grid-template-rows:600px 400px; }
  .ab-builder { padding:24px 20px 20px; border-right:0; border-bottom:1px solid var(--ab-line); }
  .ab-test { padding:24px 20px 20px; }
  .ab-heading { font-size:21px; }
  .ab-starters { grid-template-columns:minmax(0,1fr); gap:8px; }
  .ab-starters button { min-height:44px; padding:10px 12px; }
  .ab-request-box { flex-wrap:wrap; padding:10px 12px; }
  .ab-request-box>input { flex-basis:100%; padding:2px 0; }
  .ab-request-box>.ab-primary { width:100%; margin-top:4px; min-height:40px; }
  .ab-request-box .ab-typing-overlay { top:10px; bottom:auto; height:28px; width:calc(100% - 28px); }
  .ab-triggers { margin-top:16px; }
  .ab-triggers>div { gap:2px; }
  .ab-triggers button { min-height:36px; font-size:11px; padding:8px 6px; }
  .ab-menu { left:0; }
  .ab-plan-heading { align-items:flex-start; gap:8px; }
  .ab-plan-heading .ab-text-button { font-size:11px!important; }
  .ab-test-empty { margin-top:20px!important; max-width:30ch; }
  .ab-chat-composer>input { font-size:16px; }
  .ab-chat-composer>button { width:36px; height:36px; }
}
@media(prefers-reduced-motion:reduce) {
  .ab-step { animation:none; }
  .ab-step.is-running .ab-step-icon,.ab-typing-overlay::after,.ab-chat-answer p.is-streaming::after { animation:none; }
  .ab-cursor { display:none; }
  .ab-step-icon path { transition:none; }
}
agent-builder-demo[data-reduced-motion=true] .ab-step { animation:ab-fade 180ms ease-out both!important; transform:none; }
agent-builder-demo[data-reduced-motion=true] .ab-step.is-running .ab-step-icon { animation:none; }

@keyframes ab-fade { from { opacity:0; } to { opacity:1; } }
agent-builder-demo[data-reduced-motion=true] .ab-panes { transition:opacity 180ms ease-out!important; }
agent-builder-demo[data-reduced-motion=true] [data-role$="-view"]:not([hidden]) { animation:ab-fade 180ms ease-out both!important; }
