// Import related component scss files.
@import './AttachButton';
@import './MicrophoneButton';
@import './SendButton';
@import './StopButton';

// ============================================================================
// Chatbot Footer - Message Bar
// ============================================================================

.pf-chatbot__message-bar {
  --pf-chatbot__message-bar-child--PaddingBlockStart: var(--pf-t--global--spacer--xs);
  --pf-chatbot__message-bar-child--PaddingBlockEnd: var(--pf-t--global--spacer--xs);

  padding-inline-start: 0.5rem;
  padding-inline-end: 0.5rem;

  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  background-color: var(--pf-t--global--background--color--primary--default);
  border-radius: calc(var(--pf-t--global--border--radius--medium) * 2);
  transition: border-color var(--pf-t--global--motion--timing-function--accelerate)
    var(--pf-t--global--motion--duration--sm);
  position: relative;
  border: var(--pf-t--global--border--width--control--default) solid transparent;

  overflow: hidden;

  &::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    border: var(--pf-t--global--border--width--control--default) solid transparent;
    pointer-events: none;
    transition:
      border-color var(--pf-t--global--motion--timing-function--accelerate) var(--pf-t--global--motion--duration--sm),
      border-width var(--pf-t--global--motion--timing-function--accelerate) var(--pf-t--global--motion--duration--sm);
  }

  &.pf-m-primary {
    &::after {
      border-color: var(--pf-t--global--border--color--default);
    }
  }

  &:hover {
    &::after {
      border-color: var(--pf-t--global--border--color--default);
      border-width: var(--pf-t--global--border--width--control--hover);
    }
  }

  &:focus-within {
    &::after {
      border-color: var(--pf-t--global--color--brand--default);
      border-width: var(--pf-t--global--border--width--control--clicked);
    }
  }

  &-actions {
    display: flex;
    justify-content: end;
    padding-block-start: var(--pf-t--global--spacer--xs);
    padding-block-end: var(--pf-t--global--spacer--xs);
    gap: var(--pf-t--global--spacer--gap--action-to-action--plain);
  }

  &-input {
    flex: 1 1 auto;
    padding-block-start: var(--pf-t--global--spacer--sm);
    padding-block-end: var(--pf-t--global--spacer--sm);
  }
}

.pf-chatbot__message-textarea {
  --pf-v6-c-form-control--before--BorderStyle: none !important;
  --pf-v6-c-form-control--after--BorderStyle: none !important;
  resize: none !important;
  background-color: transparent !important;
  font-size: var(--pf-t--global--font--size--md) !important;
  line-height: 1.5rem !important;
  max-height: 12rem;
  overflow-y: auto !important;
  outline: none;
  overflow-wrap: break-word !important;
  word-wrap: break-word;
  height: 100%;
  width: 100%;
  display: block !important;

  .pf-v6-c-form-control__textarea:focus-visible {
    outline: none;
  }
  textarea {
    outline-offset: 0px !important;
    --pf-v6-c-form-control--PaddingBlockStart: 0;
    --pf-v6-c-form-control--PaddingBlockEnd: 0;
    --pf-v6-c-form-control--BorderRadius: 0;
    font-family: var(--pf-t--global--font--family--body);
  }
  textarea:focus-visible {
    outline: none;
  }
}

.pf-chatbot__message-textarea.pf-v6-c-form-control.pf-m-textarea:has(textarea) {
  --pf-v6-c-form-control--PaddingBlockStart: 0;
  --pf-v6-c-form-control--PaddingBlockEnd: 0;
  --pf-v6-c-form-control--PaddingInlineStart: 1rem;
  --pf-v6-c-form-control--PaddingInlineEnd: 1rem;
  --pf-v6-c-form-control__utilities--PaddingInlineEnd: 0;
}

.pf-chatbot__message-textarea.pf-v6-c-form-control.pf-m-textarea {
  --pf-v6-c-form-control--textarea--PaddingBlockStart--offset: 0;
  --pf-v6-c-form-control--textarea--PaddingBlockEnd--offset: 0;
  --pf-v6-c-form-control--textarea--PaddingInlineStart--offset: 0;
  --pf-v6-c-form-control--textarea--PaddingInlineEnd--offset: 0;
}

@media screen and (max-width: 359px) {
  .pf-chatbot__message-textarea {
    margin-top: var(--pf-t--global--spacer--md) !important;
    margin-bottom: var(--pf-t--global--spacer--md) !important;
  }
}

.pf-chatbot--embedded {
  @media screen and (max-width: 415px) {
    .pf-chatbot__message-textarea {
      margin-top: var(--pf-t--global--spacer--md) !important;
      margin-bottom: var(--pf-t--global--spacer--md) !important;
    }
  }
}

// ============================================================================
// Information density styles
// ============================================================================
.pf-chatbot__message-bar-input.pf-m-compact {
  padding-block-start: 0;
  padding-block-end: 0;

  .pf-chatbot__message-textarea {
    font-size: var(--pf-t--global--font--size--sm) !important;
  }
}

.pf-m-compact {
  .pf-chatbot__message-bar-actions {
    padding-block-start: var(--pf-t--global--spacer--sm);
    padding-block-end: var(--pf-t--global--spacer--sm);
  }
}

// ============================================================================
// Multiline textarea styles (2+ lines)
// ============================================================================
.pf-chatbot__message-bar.pf-m-multiline {
  border-radius: calc(var(--pf-t--global--border--radius--small) * 2);
}

// ============================================================================
// High contrast styles
// ============================================================================
:root:where(.pf-v6-theme-high-contrast) {
  .pf-chatbot__message-bar {
    &::after {
      border-color: var(--pf-t--global--border--color--default);
    }
  }
}
