.ab-msg{display:flex;gap:var(--space-3);max-width:var(--container-chat)}
.ab-msg__avatar{width:28px;height:28px;flex:none;border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-secondary)}
.ab-msg--agent .ab-msg__avatar{background:var(--surface-agent-subtle);border-color:var(--petrol-200);color:var(--petrol-600)}
.ab-msg__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-2)}
.ab-msg__meta{display:flex;align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--fs-metadata);letter-spacing:var(--ls-metadata);text-transform:uppercase;color:var(--text-tertiary)}
.ab-msg__text{font-size:var(--fs-body-sm);line-height:1.62;color:var(--text-primary)}
.ab-msg--user .ab-msg__text{background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-card);padding:var(--space-3) var(--space-4)}
.ab-msg__actions{display:flex;gap:2px;margin-left:-6px}

.ab-sources{display:flex;flex-direction:column;gap:1px;border:1px solid var(--border-subtle);border-radius:var(--radius-card);overflow:hidden;background:var(--surface-card)}
.ab-sources__head{font-family:var(--font-mono);font-size:var(--fs-metadata);letter-spacing:var(--ls-metadata);text-transform:uppercase;color:var(--text-tertiary);padding:8px var(--space-4);background:var(--surface-sunken);border-bottom:1px solid var(--border-subtle)}
.ab-sources__item{display:flex;align-items:baseline;gap:var(--space-3);padding:9px var(--space-4);font-size:var(--fs-caption);color:var(--text-secondary);text-decoration:none;border-bottom:1px solid var(--border-subtle)}
.ab-sources__item:last-child{border-bottom:0}
.ab-sources__item:hover{background:var(--surface-hover);color:var(--text-primary)}
.ab-sources__num{font-family:var(--font-mono);font-size:11px;color:var(--text-tertiary);flex:none}
.ab-sources__loc{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--text-tertiary);white-space:nowrap}

.ab-composer{border:1px solid var(--border-default);border-radius:var(--radius-card);background:var(--surface-card);transition:var(--transition-control)}
.ab-composer:focus-within{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--blue-100)}
.ab-composer__area{width:100%;border:0;background:none;resize:none;padding:var(--space-4);font-family:var(--font-sans);font-size:var(--fs-body-sm);line-height:1.55;color:var(--text-primary);outline:none;min-height:56px}
.ab-composer__area::placeholder{color:var(--text-disabled)}
.ab-composer__bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:8px var(--space-3) 8px var(--space-4);border-top:1px solid var(--border-subtle)}
.ab-composer__ctx{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--fs-metadata);letter-spacing:var(--ls-metadata);text-transform:uppercase;color:var(--text-tertiary)}
.ab-composer__suggest{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3)}

.ab-suggest{display:inline-flex;align-items:center;gap:7px;padding:7px var(--space-3);background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-small);font-family:var(--font-sans);font-size:var(--fs-caption);color:var(--text-secondary);text-align:left;cursor:pointer;transition:var(--transition-control)}
.ab-suggest:hover{border-color:var(--petrol-300);color:var(--text-primary);background:var(--surface-agent-subtle)}
.ab-suggest .ab-icon{color:var(--petrol-600);flex:none}
