.strength-coaching {
  --coaching-composer-height: 120px;
  min-height: 65dvh;
  padding-bottom: calc(var(--coaching-composer-height) + var(--bottom-nav-offset, 0px) + 32px);
}
.strength-coaching-composer {
  position: fixed;
  z-index: 30;
  left: var(--coaching-composer-left, 16px);
  bottom: max(calc(var(--bottom-nav-offset, 0px) + 8px), var(--coaching-keyboard-offset, 0px));
  width: var(--coaching-composer-width, calc(100% - 32px));
  padding: 12px 16px max(12px, env(safe-area-inset-bottom));
  border: 1px solid var(--color-border-default);
  border-radius: 12px;
  background: var(--color-surface-default);
  box-shadow: 0 -4px 20px rgb(17 24 39 / 5%);
}
.strength-coaching-composer textarea {
  min-height: 48px;
  max-height: 144px;
  overflow-y: hidden;
  scrollbar-width: thin;
  scrollbar-color: var(--color-border-emphasis) transparent;
}
.strength-coaching-composer textarea::-webkit-scrollbar { width: 6px; }
.strength-coaching-composer textarea::-webkit-scrollbar-thumb {
  background: var(--color-border-emphasis);
  border-radius: 999px;
}
.strength-coaching-composer textarea::-webkit-scrollbar-button { display: none; }
.strength-coaching-messages { min-height: 40dvh; }
.strength-coaching-message {
  display: flex;
  gap: 10px;
  margin-bottom: 28px;
  scroll-margin-bottom: calc(var(--coaching-composer-height) + var(--bottom-nav-offset, 0px) + 32px);
}
.strength-coaching-message[data-role="user"] { justify-content: flex-end; }
.strength-coaching-message-content { min-width: 0; max-width: 86%; }
.strength-coaching-avatar {
  display: grid;
  place-items: center;
  flex: 0 0 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--color-brand-primary-50);
  color: var(--color-brand-primary);
  font-size: 12px;
  font-weight: 600;
}
.strength-coaching-bubble {
  padding: 14px 18px;
  border-radius: 16px;
  background: var(--color-surface-default);
  border: 1px solid var(--color-border-default);
  color: var(--color-text-primary);
  line-height: 1.75;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.strength-coaching-message[data-role="user"] .strength-coaching-bubble {
  background: var(--color-brand-primary);
  border-color: var(--color-brand-primary);
  color: var(--color-text-inverse);
}
.strength-coaching-formatted { white-space: normal; }
.strength-coaching-formatted > * + * { margin-top: 12px; }
.strength-coaching-formatted h3, .strength-coaching-formatted h4 { font-weight: 600; }
.strength-coaching-formatted ul { padding-left: 20px; list-style: disc; }
.strength-coaching-formatted li + li { margin-top: 6px; }
.strength-coaching-time {
  display: block;
  margin-top: 6px;
  color: var(--color-text-muted);
  font-size: 12px;
}
.strength-coaching-message[data-role="user"] .strength-coaching-time { text-align: right; }
.strength-coaching-pending { display: inline-flex; align-items: center; gap: 8px; }
.strength-coaching-spinner {
  display: inline-block;
  width: 16px;
  height: 16px;
  border: 2px solid var(--color-border-default);
  border-top-color: var(--color-brand-primary);
  border-radius: 50%;
  animation: coaching-spin 1s linear infinite;
}
@keyframes coaching-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .strength-coaching-spinner { animation: none; } }
@media (max-width: 639px) {
  .strength-coaching-composer { padding-inline: 10px; }
  .strength-coaching-message-content { max-width: calc(100% - 42px); }
}
@media print { .strength-coaching-composer { display: none; } }
