/**
 * Convert a font size to a dynamic font size.
 * Fonts that participate in Dynamic Type should use
 * dynamic font sizes.
 * @param size - The initial font size including the unit (i.e. px or pt)
 * @param unit (optional) - The unit to convert to. Use this if you want to
 * convert to a unit other than $baselineUnit.
 */
/**
 * Convert a font size to a dynamic font size but impose
 * a maximum font size.
 * @param size - The initial font size including the unit (i.e. px or pt)
 * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
 * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
 * convert to a unit other than $baselineUnit.
 */
/**
 * Convert a font size to a dynamic font size but impose
 * a minimum font size.
 * @param size - The initial font size including the unit (i.e. px or pt)
 * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
 * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
 * convert to a unit other than $baselineUnit.
 */
/**
 * Convert a font size to a dynamic font size but impose
 * maximum and minimum font sizes.
 * @param size - The initial font size including the unit (i.e. px or pt)
 * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
 * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
 * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
 * convert to a unit other than $baselineUnit.
 */
/**
 * A heuristic that applies CSS to tablet
 * viewports.
 *
 * Usage:
 * @include tablet-viewport() {
 *   :host {
 *     background-color: green;
 *   }
 * }
 */
/**
   * A heuristic that applies CSS to mobile
   * viewports (i.e. phones, not tablets).
   *
   * Usage:
   * @include mobile-viewport() {
   *   :host {
   *     background-color: blue;
   *   }
   * }
   */
:host {
  --container-gap: 8px;
  --container-padding-top: 8px;
  --container-padding-bottom: 8px;
  --container-padding-start: 8px;
  --container-padding-end: 8px;
  --container-font-size: var(--cpsl-font-size-body-s);
  --container-border-width: 1px;
  --container-border-radius: var(--cpsl-border-radius-alert);
  --container-background-color: var(--cpsl-color-background-0);
  --container-color: var(--cpsl-color-text-primary);
  --container-icon-color: var(--container-color);
  --container-align-items: center;
  --container-justify-content: center;
  --title-container-gap: 8px;
  --title-container-align-items: flex-start;
  --title-container-justify-content: center;
  display: inline-block;
  font-family: var(--cpsl-font-family, inherit);
  position: relative;
}

:host(.error) {
  --container-color: var(--cpsl-color-black);
  --container-icon-color: var(--cpsl-color-utility-red);
  --container-border-color: var(--cpsl-color-alert-border-error, var(--cpsl-color-utility-red));
}
:host(.error):host(.filled) {
  --container-background-color: var(--cpsl-color-alert-surface-error, var(--cpsl-color-utility-red-light));
}

:host(.warning) {
  --container-color: var(--cpsl-color-black);
  --container-icon-color: var(--cpsl-color-utility-yellow);
  --container-border-color: var(--cpsl-color-utility-yellow);
}
:host(.warning):host(.filled) {
  --container-background-color: var(--cpsl-color-utility-yellow-light);
}

:host(.success) {
  --container-color: var(--cpsl-color-black);
  --container-icon-color: var(--cpsl-color-utility-green);
  --container-border-color: var(--cpsl-color-utility-green);
}
:host(.success):host(.filled) {
  --container-background-color: var(--cpsl-color-utility-green-light);
}

:host cpsl-icon {
  --icon-color: var(--container-icon-color);
  --height: 24px;
  --width: 24px;
}

.alert-container {
  border-radius: var(--container-border-radius);
  -webkit-padding-start: var(--container-padding-start);
  padding-inline-start: var(--container-padding-start);
  -webkit-padding-end: var(--container-padding-end);
  padding-inline-end: var(--container-padding-end);
  padding-top: var(--container-padding-top);
  padding-bottom: var(--container-padding-bottom);
  font-size: var(--container-font-size);
  display: flex;
  flex-direction: column;
  align-items: var(--container-align-items);
  justify-content: var(--container-justify-content);
  gap: var(--container-gap);
  border-style: solid;
  border-width: var(--container-border-width);
  border-color: var(--container-border-color);
  background-color: var(--container-background-color);
  color: var(--container-color);
}

.title-container {
  display: flex;
  align-items: var(--title-container-align-items);
  justify-content: var(--title-container-justify-content);
  gap: var(--title-container-gap);
}