@reference 'tailwindcss';

:host {
  --emr-alert-bg-color: transparent;
  --emr-alert-color: inherit;
  --emr-alert-icon-color: white;
  --emr-alert-border-color: transparent;
  --emr-alert-border-radius: theme(--radius-2xl);
  --emr-alert-padding: --spacing(2.5) --spacing(3);
  --emr-alert-has-thumbnail-padding: --spacing(1.5);
  --emr-alert-gap: --spacing(3.5);
  --emr-alert-border-width: 1px;
  --emr-alert-font-size: theme(--text-sm);
  --emr-alert-thumbnail-bg: white;
  --emr-alert-thumbnail-border-radius: theme(--radius-xl);
  --emr-alert-thumbnail-size: --spacing(10);
  --emr-alert-title-font-weight: 600;
  --emr-alert-title-font-size: var(--text-xs);
  --emr-alert-actions-gap: --spacing(1);
  --emr-alert-action-height: --spacing(10);
  --emr-alert-action-padding: 0 --spacing(3.5);
  --emr-alert-action-with-icon-padding: 0 --spacing(2);
  --emr-alert-action-hover-bg: white;
  --emr-alert-action-border-radius: calc(infinity * 1px);
  --emr-alert-action-font-weight: 500;
  --emr-alert-action-hover-color: inherit;

  position: relative;
  display: flex;
  width: 100%;
  align-items: center;
  border-radius: var(--emr-alert-border-radius);
  gap: var(--emr-alert-gap);
  background: var(--emr-alert-bg-color);
  padding: var(--emr-alert-padding);
  color: var(--emr-alert-color);
  font-size: var(--emr-alert-font-size);
  border: var(--emr-alert-border-width) solid transparent;

  &:has(.thumbnail:not(:empty)) {
    padding: var(--emr-alert-has-thumbnail-padding);
  }

  &:has(.emr-alert-title) {
    align-items: stretch;
  }

  .thumbnail {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: none;
    background-color: var(--emr-alert-thumbnail-bg);
    color: var(--emr-alert-icon-color);
    width: var(--emr-alert-thumbnail-size);
    height: var(--emr-alert-thumbnail-size);
    border-radius: var(--emr-alert-thumbnail-border-radius);

    &:empty {
      display: none;
    }
  }

  .title {
    font-size: var(--emr-alert-title-font-size);
    font-weight: var(--emr-alert-title-font-weight);
    margin-bottom: --spacing(1);
    text-transform: uppercase;
    display: block;

    &:empty {
      display: none;
    }
  }

  .actions {
    margin-inline-start: auto;
    display: flex;
    align-items: center;
    gap: var(--emr-alert-actions-gap);
    line-height: 0;
    flex: none;
  }

  &[emr-alert-variant="default"],
  &[emr-alert-variant="neutral"] {
    --emr-alert-bg-color: var(--color-surface-container);
    --emr-alert-thumbnail-bg: var(--color-surface-dim);
  }

  &[emr-alert-variant="info"],
  &[emr-alert-variant="informative"] {
    --emr-alert-bg-color: var(--color-blue-container);
    --emr-alert-thumbnail-bg: var(--color-blue-container-highest);
  }

  &[emr-alert-variant="success"],
  &[emr-alert-variant="positive"] {
    --emr-alert-bg-color: var(--color-green-container);
    --emr-alert-thumbnail-bg: var(--color-green-container-highest);
  }

  &[emr-alert-variant="danger"],
  &[emr-alert-variant="negative"] {
    --emr-alert-bg-color: var(--color-red-container);
    --emr-alert-thumbnail-bg: var(--color-red-container-highest);
  }

  &[emr-alert-variant="warning"],
  &[emr-alert-variant="notice"] {
    --emr-alert-bg-color: var(--color-orange-container);
    --emr-alert-thumbnail-bg: var(--color-orange-container-highest);
  }
}
