.composer {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-soft);
  padding: var(--space-4) 1.15rem;
  margin-bottom: var(--space-5);
  overflow: hidden;
  cursor: text;
}

.composer.is-expanded {
  cursor: default;
  box-shadow: var(--shadow-lift);
}

.composer__hint {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-height: 2.75rem;
  color: var(--text-muted);
}

.composer.is-expanded .composer__hint {
  display: none;
}

.composer__avatar {
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--surface-2);
  flex-shrink: 0;
}

.composer__body {
  display: grid;
  grid-template-rows: 0fr;
  opacity: 0;
  pointer-events: none;
}

.composer.is-expanded .composer__body {
  grid-template-rows: 1fr;
  opacity: 1;
  pointer-events: auto;
}

.composer__body-inner {
  overflow: hidden;
  min-height: 0;
}

.composer__body-inner label {
  display: block;
  margin-bottom: var(--space-3);
  color: var(--text-muted);
  font-size: 0.85rem;
}

.composer__body-inner input,
.composer__body-inner textarea {
  width: 100%;
  margin-top: 0.35rem;
}

.composer__body-inner textarea {
  min-height: 150px;
  font-family: var(--font-mono);
  font-size: 0.92rem;
  line-height: 1.55;
  resize: vertical;
}

.composer__toolbar {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--space-3);
  align-items: center;
  margin-top: var(--space-2);
}

.composer__toolbar-left,
.composer__toolbar-right {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  align-items: center;
}

.composer__file-btn {
  position: relative;
  overflow: hidden;
}

.composer__file-btn input[type="file"] {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}
