.ab-toast{display:flex;gap:var(--space-3);align-items:flex-start;width:100%;max-width:400px;padding:var(--space-4);background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-card);box-shadow:var(--shadow-medium);animation:ab-toast-in var(--duration-slow) var(--ease-out)}
@keyframes ab-toast-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.ab-toast__title{font-size:var(--fs-body-sm);font-weight:var(--weight-semibold)}
.ab-toast__desc{font-size:var(--fs-caption);color:var(--text-secondary);margin-top:2px}
.ab-toast__icon{flex:none;margin-top:1px}
.ab-toast--success .ab-toast__icon{color:var(--success-600)}
.ab-toast--error .ab-toast__icon{color:var(--error-600)}
.ab-toast--info .ab-toast__icon{color:var(--info-600)}
.ab-toast--agent .ab-toast__icon{color:var(--petrol-600)}

.ab-tooltip{position:relative;display:inline-flex}
.ab-tooltip__bubble{position:absolute;z-index:20;background:var(--surface-card);color:var(--text-primary);border:1px solid var(--border-default);font-size:var(--fs-caption);line-height:1.4;padding:6px 9px;border-radius:var(--radius-small);white-space:nowrap;box-shadow:var(--shadow-medium);opacity:0;pointer-events:none;transition:opacity var(--duration-fast) var(--ease-standard)}
.ab-tooltip:hover .ab-tooltip__bubble,.ab-tooltip:focus-within .ab-tooltip__bubble{opacity:1}
.ab-tooltip__bubble--top{bottom:calc(100% + 6px);left:50%;transform:translateX(-50%)}
.ab-tooltip__bubble--bottom{top:calc(100% + 6px);left:50%;transform:translateX(-50%)}
.ab-tooltip__bubble--right{left:calc(100% + 6px);top:50%;transform:translateY(-50%)}
.ab-tooltip__bubble--left{right:calc(100% + 6px);top:50%;transform:translateY(-50%)}

.ab-progress{display:flex;flex-direction:column;gap:6px}
.ab-progress__head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-4)}
.ab-progress__label{font-size:var(--fs-caption);color:var(--text-secondary)}
.ab-progress__value{font-family:var(--font-mono);font-size:var(--fs-metadata);color:var(--text-tertiary)}
.ab-progress__track{height:4px;background:var(--surface-sunken);border-radius:var(--radius-pill);overflow:hidden}
.ab-progress__track--lg{height:8px}
.ab-progress__fill{height:100%;background:var(--interactive-primary);border-radius:var(--radius-pill);transition:width var(--duration-slow) var(--ease-standard)}
.ab-progress--agent .ab-progress__fill{background:var(--interactive-agent)}
.ab-progress--steps{display:flex;gap:4px}
.ab-progress__step{flex:1;height:3px;border-radius:1px;background:var(--surface-sunken)}
.ab-progress__step--done{background:var(--interactive-primary)}

.ab-status{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-caption);color:var(--text-secondary)}
.ab-status__dot{width:7px;height:7px;border-radius:50%;flex:none;background:var(--graphite-400)}
.ab-status--available .ab-status__dot{background:var(--success-600)}
.ab-status--ready .ab-status__dot{background:var(--petrol-600)}
.ab-status--thinking .ab-status__dot{background:var(--petrol-600);animation:ab-pulse 1.2s var(--ease-in-out) infinite}
.ab-status--updating .ab-status__dot{background:var(--warning-600);animation:ab-pulse 1.2s var(--ease-in-out) infinite}
.ab-status--offline .ab-status__dot{background:var(--graphite-400)}
.ab-status--error .ab-status__dot{background:var(--error-600)}
@keyframes ab-pulse{0%,100%{opacity:1}50%{opacity:.35}}
.ab-status__mono{font-family:var(--font-mono);font-size:var(--fs-metadata);letter-spacing:var(--ls-metadata);text-transform:uppercase;color:var(--text-tertiary)}
