/**
 * Drupal status messages, ported from the Gin admin theme.
 * Source: docroot/themes/contrib/gin/dist/css/base/gin.css
 *
 * Gin's CSS custom properties are referenced with fallbacks so this works
 * outside a Gin subtheme context. Icon paths are rewritten from Gin's
 * compiled sprite to the individual SVGs shipped in the Gin theme, resolved
 * relative to this file.
 */

.messages {
  position: relative;
  z-index: 1000;
  padding: var(--gin-spacing-m, 1rem);
  border: 2px solid transparent;
  border-radius: var(--gin-border-l, 8px);
  opacity: 1;
}

@media (prefers-reduced-motion: no-preference) {
  .messages {
    transition: opacity var(--gin-transition-fast, 0.15s ease);
  }
}

.gin--dark-mode .messages {
  box-shadow: 0 6px 16px var(--gin-border-color-layer, rgba(0, 0, 0, 0.1));
}

.messages,
.messages-list {
  margin-block-start: 0;
}

.messages-list {
  max-width: var(--breakpoint-2xl);
  padding-inline: var(--spacing-margin);
  margin-inline: auto;
}

.messages a,
.messages a:hover,
.messages a:active {
  color: inherit;
  text-decoration: underline;
}

.messages__title {
  font-weight: var(--gin-font-weight-bold, 700);
}

.messages__title,
.messages__content {
  margin-inline-start: 2.125rem;
}

.messages .messages__header {
  position: relative;
  background-image: none;
  margin-block-end: var(--gin-spacing-xs, 0.25rem);
  margin-inline-end: 1.5em;
}

.messages .messages__header:before {
  content: '';
  display: block;
  position: absolute;
  inset-block-start: 2px;
  inset-inline-start: 0;
  width: 1.5rem;
  height: 1.5rem;
}

@media (forced-colors: active) {
  .messages .messages__header:before {
    background-color: linktext !important;
  }
}

.messages .button--dismiss {
  position: absolute;
  inset-block-start: 0;
  inset-inline-end: 0;
  margin: var(--gin-spacing-s, 0.5rem);
  padding: 0;
  height: 29px;
  width: 29px;
  text-indent: -99999px;
  border-radius: var(--gin-border-m, 6px);
  border-color: transparent !important;
  box-shadow: none;
}

@media (prefers-reduced-motion: no-preference) {
  .messages .button--dismiss {
    transition: var(--gin-transition, 0.2s ease);
  }
}

.messages .button--dismiss:hover:not(:focus) {
  background-color: transparent;
  border-color: currentColor !important;
}

.messages .button--dismiss:focus .icon-close,
.messages .button--dismiss:hover:focus .icon-close {
  background-color: currentColor;
}

.messages .button--dismiss .icon-close {
  height: 100%;
  width: 100%;
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  -webkit-mask-image: url('../images/icons/messages/close.svg');
  mask-image: url('../images/icons/messages/close.svg');
  -webkit-mask-size: 16px 16px;
  mask-size: 16px 16px;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  background-color: currentColor;
}

@media (forced-colors: active) {
  .messages .button--dismiss .icon-close {
    background-color: buttonBorder;
  }
}

.messages--webform .button--dismiss {
  display: none;
}

.messages.messages--info {
  color: var(--gin-color-info-light, #004bad);
  background: var(--gin-bg-info, #d6e4fa);
  border-color: var(--gin-bg-info, #d6e4fa);
}

.messages.messages--info .messages__header {
  background: none;
}

.messages.messages--info .messages__header:before {
  background-color: var(--gin-color-info-light, #004bad);
  -webkit-mask-image: url('../images/icons/messages/info.svg');
  mask-image: url('../images/icons/messages/info.svg');
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center left;
  mask-position: center left;
}

.messages.messages--status {
  color: var(--gin-color-green-light, #0b6b3a);
  background: var(--gin-bg-green, #d3ecd9);
}

.messages.messages--status .messages__header:before {
  background-color: var(--gin-color-green-light, #0b6b3a);
  -webkit-mask-image: url('../images/icons/messages/status.svg');
  mask-image: url('../images/icons/messages/status.svg');
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center left;
  mask-position: center left;
}

.messages.messages--warning {
  color: var(--gin-color-warning-light, #8a5a00);
  background: var(--gin-bg-warning, #fcefcb);
}

.messages.messages--warning .messages__header:before {
  background-color: var(--gin-color-warning-light, #8a5a00);
  -webkit-mask-image: url('../images/icons/messages/warning.svg');
  mask-image: url('../images/icons/messages/warning.svg');
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center left;
  mask-position: center left;
}

.messages--error {
  color: var(--gin-color-danger-light, #a51b00);
  background: var(--gin-bg-danger, #fcd7d3);
}

.messages--error .messages__header:before {
  background-color: var(--gin-color-danger-light, #a51b00);
  -webkit-mask-image: url('../images/icons/messages/error.svg');
  mask-image: url('../images/icons/messages/error.svg');
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center left;
  mask-position: center left;
}
