/*
 * Glint transcript styles — portal port (glint-proxy#275).
 *
 * COPIED FROM: Glint-Software/glint-src @ 7d08821, src/styles.css
 * (the .agent-message / .agent-tool / .markdown-body transcript rules), scoped
 * under `.glint-transcript` and re-pointed at portal theme variables. The
 * desktop's transcript CSS references app-wide vars (--text-primary,
 * --bg-secondary, --warning, …); those are defined here on the container so the
 * copied rules apply unchanged. Pairs with portal/transcript.js.
 *
 * Re-sync against the SOURCE_COMMIT in transcript.js when the desktop changes.
 * Copy-first MVP: may drift from the desktop (decided 2026-07-09).
 *
 * VERIFIED no drift through glint-src main @ 3db2c270 (2026-07-10): every
 * agent-transcript CSS change since 7d08821 was to a desktop-only selector
 * NOT copied here (plan-mode bubble #3402, .agent-prompt-details-* command
 * banners #3397/#3398, .agent-think-badge removal, .agent-task-banner
 * re-theme #3361, .agent-autocomplete-modelid #3398, Relay settings presence
 * UI #3379). No copied selector (.agent-message*/.agent-tool*/.markdown-body/
 * approvals/notices) changed. Drift-check automation tracked in glint-proxy#281.
 */

/* Theme variables the copied rules need — mapped to the portal palette. */
.glint-transcript {
  --tx-text-primary: var(--text, #1a1a2e);
  --tx-text-secondary: var(--text-muted, #6b7280);
  --tx-text-tertiary: var(--text-subtle, #9ca3af);
  --tx-border: var(--border, #e5e7eb);
  --tx-bg-secondary: var(--surface-2, #f9fafb);
  --tx-bg-hover: var(--surface-3, #f3f4f6);
  --tx-code-bg: #f6f8fa;
  --tx-warning: #d9822b;
  --tx-success: #16a34a;
  --tx-danger: #dc2626;
  --tx-user-bubble: var(--brand-gradient, linear-gradient(120deg, #2b8af5 0%, #1bc6d4 100%));
  --tx-font-xs: 12px;
  --tx-font-sm: 13px;
  --tx-font-base: 14px;
  --tx-mono: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;

  color: var(--tx-text-primary);
  font-size: var(--tx-font-base);
  line-height: 1.6;
  min-width: 0;
  max-width: 100%;
}

@media (prefers-color-scheme: dark) {
  .glint-transcript {
    --tx-code-bg: #161b22;
  }
}
:root[data-theme='dark'] .glint-transcript { --tx-code-bg: #161b22; }
:root[data-theme='light'] .glint-transcript { --tx-code-bg: #f6f8fa; }

/* ------------------------------------------------------------------ message */

.glint-transcript .agent-message {
  padding: 8px 12px;
  margin: 10px 0;
  min-width: 0;
  max-width: 100%;
}

/* User turn: accent bubble, white text (right-aligned bubble like the desktop). */
.glint-transcript .agent-message-user .agent-message-body {
  background: var(--tx-user-bubble);
  border-radius: 12px;
  padding: 10px 14px;
  color: #fff;
}
.glint-transcript .agent-message-user .agent-user-text { color: #fff; }
.glint-transcript .agent-message-user .agent-user-images { justify-content: flex-end; }

.glint-transcript .agent-message-header {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 8px;
  font-size: var(--tx-font-xs);
  color: var(--tx-text-secondary);
}
.glint-transcript .agent-msg-icon { width: 20px; height: 20px; color: #1c8ef9; }
.glint-transcript .agent-message-assistant .agent-msg-icon { margin-left: -4px; }

.glint-transcript .agent-msg-role {
  font-weight: 700;
  font-size: var(--tx-font-base);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  background: linear-gradient(135deg, #5ccfda, #24b0ef, #1c8ef9, #1f76fb);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.glint-transcript .agent-message-user .agent-msg-role {
  background: none;
  -webkit-text-fill-color: currentColor;
  color: var(--tx-text-secondary);
}

.glint-transcript .agent-user-text {
  color: var(--tx-text-primary);
  margin: 0;
  font-family: inherit;
  white-space: pre-wrap;
  word-wrap: break-word;
  line-height: 1.5;
}

.glint-transcript .agent-user-images {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 6px 0;
}
.glint-transcript .agent-user-image-thumb {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: var(--tx-font-sm);
  padding: 4px 8px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.2);
}

/* Assistant turn body: stacked sub-blocks with a gap. */
.glint-transcript .agent-message-assistant .agent-message-body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.glint-transcript .agent-assistant-text { min-width: 0; max-width: 100%; font-size: inherit; line-height: 1.6; }

/* ------------------------------------------------------------- tool blocks */

.glint-transcript .agent-tool-block {
  border: 1px solid var(--tx-border);
  border-radius: 6px;
  overflow: hidden;
  flex-shrink: 0;
  min-width: 0;
  max-width: 100%;
}
.glint-transcript .agent-tool-header {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  background: var(--tx-bg-secondary);
  cursor: pointer;
  font-size: var(--tx-font-sm);
  color: var(--tx-text-secondary);
  user-select: none;
}
.glint-transcript .agent-tool-header:hover { background: var(--tx-bg-hover); }

.glint-transcript .agent-tool-indicator {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
  background: var(--tx-text-tertiary);
}
.glint-transcript .agent-tool-indicator.running { background: var(--tx-warning); animation: agent-pulse 1.2s ease-in-out infinite; }
.glint-transcript .agent-tool-indicator.success { background: var(--tx-success); }
.glint-transcript .agent-tool-indicator.error { background: var(--tx-danger); }
.glint-transcript .agent-tool-indicator.denied { background: var(--tx-warning); }
@keyframes agent-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }

.glint-transcript .agent-tool-icon { width: 13px; height: 13px; }
.glint-transcript .agent-tool-name {
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
  min-width: 0;
}
.glint-transcript .agent-tool-raw-name {
  display: none;
  font-family: var(--tx-mono);
  font-size: var(--tx-font-sm);
  color: var(--tx-text-tertiary);
  flex-shrink: 0;
  max-width: 40%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.glint-transcript .agent-tool-block:has(.agent-tool-details:not(.collapsed)) .agent-tool-raw-name { display: inline-block; }
.glint-transcript .agent-tool-toggle { margin-left: auto; flex-shrink: 0; display: flex; align-items: center; }

.glint-transcript .agent-tool-details { border-top: 1px solid var(--tx-border); }
.glint-transcript .agent-tool-details.collapsed { display: none; }
.glint-transcript .agent-tool-body {
  padding: 8px 10px 8px 24px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-height: 600px;
  overflow-y: auto;
}
.glint-transcript .agent-tool-body:empty { display: none; }
.glint-transcript .agent-tool-body pre {
  margin: 0;
  font-size: var(--tx-font-sm);
  font-family: var(--tx-mono);
  white-space: pre-wrap;
  word-wrap: break-word;
  color: var(--tx-text-secondary);
  max-height: 300px;
  overflow-y: auto;
  line-height: 1.5;
}
.glint-transcript .agent-tool-output-ref {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: var(--tx-font-sm);
  color: var(--link, #1273d4);
  cursor: pointer;
}
.glint-transcript .agent-tool-status-footer {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-top: 1px solid var(--tx-border);
  font-size: var(--tx-font-xs);
  color: var(--tx-text-tertiary);
}

/* Approval + inline notices. */
.glint-transcript .agent-notice {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: var(--tx-font-sm);
  color: var(--tx-text-secondary);
  padding: 2px 0;
}
.glint-transcript .agent-approval-resolved.is-approved { color: var(--tx-success); }
.glint-transcript .agent-approval-resolved.is-denied { color: var(--tx-danger); }

/* Interactive approve/deny controls (glint-proxy#267). */
.glint-transcript .agent-approval-actions {
  display: flex;
  gap: 8px;
  align-items: center;
  padding: 8px 10px;
  border-top: 1px solid var(--tx-border);
}
.glint-transcript .agent-approve-btn,
.glint-transcript .agent-deny-btn {
  -webkit-appearance: none;
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  font: inherit;
  font-size: var(--tx-font-sm);
  font-weight: 600;
  padding: 6px 14px;
  border-radius: 7px;
  cursor: pointer;
  border: 1px solid var(--tx-border);
  background: var(--tx-bg-secondary);
  color: var(--tx-text-primary);
}
.glint-transcript .agent-approve-btn { min-width: 104px; background: #238636; border-color: #2ea043; color: #fff; box-shadow: inset 0 0 0 1px rgba(255,255,255,.08); }
.glint-transcript .agent-deny-btn { min-width: 72px; }
.glint-transcript .agent-deny-btn:hover { background: var(--tx-bg-hover); }
.glint-transcript .agent-approve-btn:hover { filter: brightness(1.08); }
.glint-transcript .agent-approval-actions button:focus-visible { outline: 2px solid var(--brand, #38a8ff); outline-offset: 2px; }
.glint-transcript .agent-approval-actions button:disabled { opacity: 0.55; cursor: default; }

/* ask_user multiple-choice (glint-proxy#284). */
.glint-transcript .agent-ask-user { padding: 10px 12px; }
.glint-transcript .agent-ask-question {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: var(--tx-font-base);
  font-weight: 600;
  color: var(--tx-text-primary);
  margin-bottom: 8px;
}
.glint-transcript .agent-ask-options { display: flex; flex-direction: column; gap: 6px; }
.glint-transcript .agent-ask-option {
  display: flex;
  align-items: center;
  gap: 8px;
  text-align: left;
  font: inherit;
  font-size: var(--tx-font-sm);
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid var(--tx-border);
  background: var(--tx-bg-secondary);
  color: var(--tx-text-primary);
  cursor: pointer;
}
.glint-transcript .agent-ask-option:hover:not(:disabled) { background: var(--tx-bg-hover); }
.glint-transcript .agent-ask-option.selected {
  border-color: var(--tx-success);
  background: color-mix(in srgb, var(--tx-success) 14%, transparent);
}
.glint-transcript .agent-ask-option:disabled { opacity: 0.6; cursor: default; }
.glint-transcript .agent-ask-check {
  flex: 0 0 auto;
  width: 15px;
  height: 15px;
  border-radius: 4px;
  border: 1.5px solid var(--tx-border);
}
.glint-transcript .agent-ask-option.selected .agent-ask-check {
  background: var(--tx-success);
  border-color: var(--tx-success);
}
.glint-transcript .agent-ask-actions { margin-top: 8px; }
.glint-transcript .agent-ask-submit {
  font: inherit;
  font-size: var(--tx-font-sm);
  font-weight: 600;
  padding: 6px 16px;
  border-radius: 7px;
  cursor: pointer;
  border: 1px solid var(--tx-success);
  background: var(--tx-success);
  color: #08210f;
}
.glint-transcript .agent-ask-submit:disabled { opacity: 0.5; cursor: default; }

/* grace-period tool-timeout banner (glint-proxy#285). */
.glint-transcript .agent-grace-period { padding: 10px 12px; }
.glint-transcript .agent-grace-period:not(.is-settled) {
  border-color: var(--tx-warning);
  background: color-mix(in srgb, var(--tx-warning) 8%, transparent);
}
.glint-transcript .agent-grace-head { display: flex; align-items: center; gap: 8px; }
.glint-transcript .agent-grace-title { font-size: var(--tx-font-sm); font-weight: 600; color: var(--tx-text-primary); }
.glint-transcript .agent-grace-count {
  margin-left: auto;
  font-family: var(--tx-mono);
  font-size: var(--tx-font-sm);
  font-weight: 700;
  color: var(--tx-warning);
}
.glint-transcript .agent-grace-period.is-expiring .agent-grace-count { color: var(--tx-danger); }
.glint-transcript .agent-grace-sub {
  font-size: var(--tx-font-xs);
  color: var(--tx-text-secondary);
  margin: 4px 0 8px;
}
.glint-transcript .agent-grace-actions { display: flex; gap: 8px; }
.glint-transcript .agent-grace-btn {
  font: inherit;
  font-size: var(--tx-font-sm);
  font-weight: 600;
  padding: 6px 14px;
  border-radius: 7px;
  cursor: pointer;
  border: 1px solid var(--tx-border);
  background: var(--tx-bg-secondary);
  color: var(--tx-text-primary);
}
.glint-transcript .agent-grace-btn:hover:not(:disabled) { background: var(--tx-bg-hover); }
.glint-transcript .agent-grace-kill {
  border-color: var(--tx-danger);
  background: var(--tx-danger);
  color: #fff;
}
.glint-transcript .agent-grace-kill:hover:not(:disabled) { filter: brightness(1.08); background: var(--tx-danger); }
.glint-transcript .agent-grace-btn:disabled { opacity: 0.55; cursor: default; }
.glint-transcript .agent-grace-hint { margin-top: 6px; font-size: var(--tx-font-xs); color: var(--tx-text-tertiary); }

/* circuit-breaker pause decision card (glint-proxy#320). */
.glint-transcript .agent-pause { padding: 10px 12px; }
.glint-transcript .agent-pause:not(.is-resolved) {
  border-color: var(--tx-warning);
  background: color-mix(in srgb, var(--tx-warning) 8%, transparent);
}
.glint-transcript .agent-pause-head { display: flex; align-items: center; gap: 8px; }
.glint-transcript .agent-pause-title { font-size: var(--tx-font-sm); font-weight: 600; color: var(--tx-text-primary); }
.glint-transcript .agent-pause-body { margin: 4px 0 8px; }
.glint-transcript .agent-pause-explain { font-size: var(--tx-font-xs); color: var(--tx-text-secondary); }
.glint-transcript .agent-pause-meter {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin-top: 6px;
}
.glint-transcript .agent-pause-count {
  font-family: var(--tx-mono);
  font-size: var(--tx-font-sm);
  font-weight: 700;
  color: var(--tx-warning);
}
.glint-transcript .agent-pause-unit { font-size: var(--tx-font-xs); color: var(--tx-text-tertiary); }
.glint-transcript .agent-pause-actions { display: flex; gap: 8px; align-items: center; }
.glint-transcript .agent-pause-continue {
  font: inherit;
  font-size: var(--tx-font-sm);
  font-weight: 600;
  min-height: 36px;
  min-width: 104px;
  padding: 6px 16px;
  border-radius: 7px;
  cursor: pointer;
  border: 1px solid #2ea043;
  background: #238636;
  color: #fff;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
}
.glint-transcript .agent-pause-continue:hover:not(:disabled) { filter: brightness(1.08); }
.glint-transcript .agent-pause-continue:focus-visible { outline: 2px solid var(--brand, #38a8ff); outline-offset: 2px; }
.glint-transcript .agent-pause-continue:disabled { opacity: 0.55; cursor: default; }

/* ------------------------------------- circuit-breaker pause (#321) */

/* A generalized paused card leans on the "danger/urgent" edge — every trigger
 * is at or above its armed ceiling. */
.glint-transcript .agent-breaker-pause:not(.is-resolved) {
  border-color: var(--tx-danger);
  background: color-mix(in srgb, var(--tx-danger) 8%, transparent);
}
.glint-transcript .agent-breaker-triggers {
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.glint-transcript .agent-breaker-trigger {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
}
.glint-transcript .agent-breaker-label { font-size: var(--tx-font-sm); font-weight: 600; color: var(--tx-text-primary); }
.glint-transcript .agent-breaker-count {
  font-family: var(--tx-mono);
  font-size: var(--tx-font-sm);
  font-weight: 700;
  color: var(--tx-danger);
}
/* Non-color cue that a trigger is paused (color is never the only signal). */
.glint-transcript .agent-breaker-tag {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: 1px 6px;
  border-radius: 999px;
  border: 1px solid var(--tx-danger);
  color: var(--tx-danger);
}
.glint-transcript .agent-breaker-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.glint-transcript .agent-breaker-btn {
  font: inherit;
  font-size: var(--tx-font-sm);
  font-weight: 600;
  min-height: 36px;
  padding: 6px 14px;
  border-radius: 7px;
  cursor: pointer;
  border: 1px solid var(--tx-border);
  background: var(--tx-bg-secondary, transparent);
  color: var(--tx-text-primary);
}
.glint-transcript .agent-breaker-continue_once {
  border-color: #2ea043;
  background: #238636;
  color: #fff;
}
.glint-transcript .agent-breaker-stop { border-color: var(--tx-danger); color: var(--tx-danger); }
.glint-transcript .agent-breaker-btn:hover { filter: brightness(1.06); }
.glint-transcript .agent-breaker-btn:focus-visible { outline: 2px solid var(--brand, #38a8ff); outline-offset: 2px; }

.glint-transcript .agent-breaker-resolved { padding: 8px 12px; }

/* -------------------------------- live turn-progress line beside Cancel (#321) */

/* Rendered by the app next to the Cancel control; scoped OUTSIDE .glint-transcript
 * so it can live in the composer. */
.turn-progress {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 6px;
  font-size: 12px;
  color: var(--text-subtle, #9ca3af);
  min-width: 0;
}
.turn-progress .tp-lead { font-weight: 600; }
.turn-progress .tp-sep { opacity: .5; }
.turn-progress .tp-item { white-space: nowrap; font-variant-numeric: tabular-nums; }
.turn-progress .tp-item.sev-warning { color: var(--warning, #d9822b); font-weight: 600; }
.turn-progress .tp-item.sev-urgent { color: var(--danger, #dc2626); font-weight: 700; }
.turn-progress .tp-flag { font-weight: 800; }
/* Narrow layout: keep warning/urgent breaker items before timing/API details. */
@media (max-width: 420px) {
  .turn-progress .tp-item.prio-0.sev-normal { display: none; }
}

/* --------------------------------------------------------------- markdown */

.glint-transcript .markdown-body { min-width: 0; max-width: 100%; overflow-wrap: anywhere; word-wrap: break-word; }
.glint-transcript .markdown-body > *:first-child { margin-top: 0; }
.glint-transcript .markdown-body > *:last-child { margin-bottom: 0; }
.glint-transcript .markdown-body p { margin: 0 0 10px; }
.glint-transcript .markdown-body h1,
.glint-transcript .markdown-body h2,
.glint-transcript .markdown-body h3,
.glint-transcript .markdown-body h4 { margin: 16px 0 8px; font-weight: 700; line-height: 1.3; }
.glint-transcript .markdown-body h1 { font-size: 1.5em; }
.glint-transcript .markdown-body h2 { font-size: 1.3em; }
.glint-transcript .markdown-body h3 { font-size: 1.15em; }
.glint-transcript .markdown-body ul,
.glint-transcript .markdown-body ol { margin: 0 0 10px; padding-left: 22px; }
.glint-transcript .markdown-body li { margin: 2px 0; }
/* Nested lists sit tight under their parent item (glint-proxy#283). */
.glint-transcript .markdown-body li > ul,
.glint-transcript .markdown-body li > ol { margin: 2px 0 0; }
/* GFM task-list items: drop the bullet, align the disabled checkbox. */
.glint-transcript .markdown-body li.task-list-item { list-style: none; margin-left: -18px; }
.glint-transcript .markdown-body li.task-list-item > input[type="checkbox"] {
  margin: 0 6px 0 0;
  vertical-align: middle;
  cursor: default;
}
.glint-transcript .markdown-body blockquote {
  margin: 0 0 10px;
  padding: 2px 12px;
  border-left: 3px solid var(--tx-border);
  color: var(--tx-text-secondary);
}
.glint-transcript .markdown-body hr { border: none; border-top: 1px solid var(--tx-border); margin: 14px 0; }
.glint-transcript .markdown-body a { color: var(--link, #1273d4); text-decoration: none; }
.glint-transcript .markdown-body a:hover { text-decoration: underline; }
.glint-transcript .markdown-body code {
  font-family: var(--tx-mono);
  font-size: 0.9em;
  background: var(--tx-code-bg);
  padding: 0.15em 0.4em;
  border-radius: 4px;
  overflow-wrap: anywhere;
}
.glint-transcript .markdown-body pre {
  margin: 0 0 10px;
  padding: 12px 14px;
  background: var(--tx-code-bg);
  border: 1px solid var(--tx-border);
  border-radius: 8px;
  overflow-x: auto;
  line-height: 1.5;
}
.glint-transcript .markdown-body pre code {
  background: none;
  padding: 0;
  font-size: var(--tx-font-sm);
  white-space: pre;
  overflow-wrap: normal;
}
/* GFM tables (renderer emits <table> since glint-proxy#281 follow-up). The
   portal authors its own base table layout against --tx-* vars — glint-src's
   .markdown-body table rules are only color remaps over a GitHub-markdown base
   the portal doesn't bundle. Scrolls horizontally rather than overflowing. */
.glint-transcript .markdown-body table {
  display: block;
  width: max-content;
  max-width: 100%;
  overflow-x: auto;
  border-collapse: collapse;
  margin: 0 0 10px;
  font-size: var(--tx-font-sm);
}
.glint-transcript .markdown-body th,
.glint-transcript .markdown-body td {
  border: 1px solid var(--tx-border);
  padding: 6px 11px;
  text-align: left;
}
.glint-transcript .markdown-body th {
  background: var(--tx-bg-secondary);
  font-weight: 600;
}
.glint-transcript .markdown-body tr:nth-child(2n) td {
  background: var(--tx-bg-hover);
}
.glint-transcript .markdown-body del { opacity: 0.7; }

/* Lightweight hljs token theme (generic highlighter in transcript.js emits
   these classes). Light + dark. Reduced vs the desktop's full hljs theme. */
.glint-transcript .hljs-comment { color: #6a737d; font-style: italic; }
.glint-transcript .hljs-string { color: #032f62; }
.glint-transcript .hljs-number { color: #005cc5; }
.glint-transcript .hljs-keyword { color: #d73a49; font-weight: 600; }
@media (prefers-color-scheme: dark) {
  .glint-transcript .hljs-comment { color: #8b949e; }
  .glint-transcript .hljs-string { color: #a5d6ff; }
  .glint-transcript .hljs-number { color: #79c0ff; }
  .glint-transcript .hljs-keyword { color: #ff7b72; }
}
:root[data-theme='dark'] .glint-transcript .hljs-string { color: #a5d6ff; }
:root[data-theme='dark'] .glint-transcript .hljs-number { color: #79c0ff; }
:root[data-theme='dark'] .glint-transcript .hljs-keyword { color: #ff7b72; }
:root[data-theme='dark'] .glint-transcript .hljs-comment { color: #8b949e; }

/* Icon sizing (mirrors the desktop `.icon svg`). */
.glint-transcript .icon { display: inline-flex; align-items: center; justify-content: center; }
.glint-transcript .icon svg {
  width: 1em;
  height: 1em;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}
.glint-transcript .icon.icon-filled svg { fill: currentColor; stroke: none; }
.glint-transcript .agent-msg-icon svg { width: 20px; height: 20px; }
.glint-transcript .agent-tool-icon svg { width: 13px; height: 13px; }

/* Completed-turn usage/cost footer (glint-proxy#313 / wire from glint-src#3450):
   a compact model · credits · elapsed line that expands to a token/balance
   breakdown. Styled like a tool block so it reads as an assistant sub-block. */
.glint-transcript .agent-turn-summary {
  border: 1px solid var(--tx-border);
  border-radius: 6px;
  overflow: hidden;
  flex-shrink: 0;
  min-width: 0;
  max-width: 100%;
}
.glint-transcript .ats-summary {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 6px 10px;
  background: var(--tx-bg-secondary);
  border: none;
  cursor: pointer;
  font-family: inherit;
  font-size: var(--tx-font-sm);
  color: var(--tx-text-secondary);
  text-align: left;
  user-select: none;
}
.glint-transcript .ats-summary:hover:not(:disabled) { background: var(--tx-bg-hover); }
.glint-transcript .ats-summary:disabled { cursor: default; }
.glint-transcript .ats-summary:focus-visible { outline: 2px solid var(--tx-warning); outline-offset: -2px; }
.glint-transcript .ats-ico { flex-shrink: 0; color: var(--tx-text-tertiary); }
.glint-transcript .ats-ico svg { width: 14px; height: 14px; }
.glint-transcript .ats-line {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px;
}
.glint-transcript .ats-model { font-weight: 600; color: var(--tx-text-primary); }
.glint-transcript .ats-credits { font-variant-numeric: tabular-nums; }
.glint-transcript .ats-time { color: var(--tx-text-tertiary); font-variant-numeric: tabular-nums; }
.glint-transcript .ats-sep { color: var(--tx-text-tertiary); }
.glint-transcript .ats-toggle { flex-shrink: 0; color: var(--tx-text-tertiary); transition: transform 0.15s ease; }
.glint-transcript .ats-toggle svg { width: 14px; height: 14px; }
.glint-transcript .ats-summary[aria-expanded='true'] .ats-toggle { transform: rotate(180deg); }
.glint-transcript .ats-detail {
  margin: 0;
  padding: 8px 10px;
  border-top: 1px solid var(--tx-border);
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 4px 16px;
  font-size: var(--tx-font-sm);
}
.glint-transcript .ats-detail.collapsed { display: none; }
.glint-transcript .ats-row { display: contents; }
.glint-transcript .ats-detail dt { color: var(--tx-text-tertiary); white-space: pre; }
.glint-transcript .ats-detail dd {
  margin: 0;
  text-align: right;
  color: var(--tx-text-secondary);
  font-variant-numeric: tabular-nums;
}
