.echo-demo { border: 1px solid var(--md-default-fg-color--lightest); border-radius: .5rem; overflow: hidden; margin: 1.5rem 0; }
.echo-toolbar, .echo-compose { display: flex; gap: .5rem; padding: .75rem; background: var(--md-code-bg-color); }
.echo-toolbar input, .echo-compose input { min-width: 0; flex: 1; padding: .5rem .65rem; border: 1px solid var(--md-default-fg-color--lightest); border-radius: .25rem; background: var(--md-default-bg-color); color: var(--md-default-fg-color); }
.echo-toolbar button, .echo-compose button { padding: .45rem .75rem; border: 1px solid var(--md-primary-fg-color); border-radius: .25rem; color: var(--md-primary-fg-color); cursor: pointer; background: transparent; }
.echo-workspace { display: grid; grid-template-columns: minmax(0, 3fr) minmax(16rem, 2fr); height: min(32rem, 70vh); min-height: 24rem; max-height: 32rem; overflow: hidden; }
.echo-chat { display: flex; min-height: 0; flex-direction: column; border-right: 1px solid var(--md-default-fg-color--lightest); }
.echo-messages { flex: 1; padding: 1rem; overflow: auto; }
.echo-bubble { max-width: 80%; width: fit-content; margin: .5rem 0; padding: .55rem .75rem; border-radius: .8rem; background: var(--md-code-bg-color); }
.echo-bubble.request { margin-left: auto; color: white; background: var(--md-primary-fg-color); }
.echo-side { display: grid; grid-template-rows: minmax(0, 1fr) minmax(0, 1fr); min-width: 0; min-height: 0; overflow: hidden; }
.echo-wire-log { overflow: auto; border-bottom: 1px solid var(--md-default-fg-color--lightest); }
.echo-wire-row { display: flex; align-items: baseline; gap: .5rem; width: 100%; padding: .55rem .75rem; border: 0; border-bottom: 1px solid var(--md-default-fg-color--lightest); text-align: left; color: inherit; background: transparent; cursor: pointer; }
.echo-wire-row:hover { background: var(--md-code-bg-color); }
.echo-wire-arrow { width: 1rem; flex: none; font-size: 1.05rem; font-weight: 700; }
.echo-wire-arrow.sent { color: #1976d2; }
.echo-wire-arrow.received { color: #2e9d54; }
.echo-wire-time { flex: none; color: var(--md-default-fg-color--light); font-size: .82em; font-variant-numeric: tabular-nums; }
.echo-wire-summary { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.echo-wire-details { padding: .75rem; overflow: auto; }
.echo-wire-details dl { margin: 0; } .echo-wire-details dt { font-weight: 700; } .echo-wire-details dd { margin: 0 0 .6rem; overflow-wrap: anywhere; }
.echo-fragment { position: relative; border-bottom: 1px dotted currentColor; cursor: help; }
.echo-fragment:is(:hover, :focus)::after { position: fixed; z-index: 20; width: min(28rem, calc(100vw - 2rem)); padding: .65rem .75rem; border: 1px solid var(--md-default-fg-color--lightest); border-radius: .3rem; box-shadow: 0 .3rem 1rem #0003; background: var(--md-code-bg-color); color: var(--md-default-fg-color); content: attr(data-preview); font-family: var(--md-code-font-family); font-size: .78rem; line-height: 1.45; white-space: pre-wrap; overflow-wrap: anywhere; transform: translate(-1rem, calc(-100% - .5rem)); pointer-events: none; }
.echo-errors { padding: .35rem .75rem; color: var(--md-typeset-color); background: color-mix(in srgb, #d32f2f 12%, transparent); }
.echo-errors:empty { display: none; }
@media (max-width: 700px) { .echo-workspace { grid-template-columns: 1fr; grid-template-rows: minmax(0, 1fr) minmax(0, 1fr); height: min(42rem, 80vh); max-height: 42rem; } .echo-chat { min-height: 0; border-right: 0; border-bottom: 1px solid var(--md-default-fg-color--lightest); } .echo-side { min-height: 0; } .echo-toolbar { flex-wrap: wrap; } .echo-toolbar input { flex-basis: 100%; } }
