@import "../../variables";
@import "../../variables-dark";
@import "../../../../../../vendor/joomla-custom-elements/css/joomla-alert";
@import "../../../../../../vendor/bootstrap/scss/mixins/color-mode";

// The following is a restyle for the system alerts

#system-message-container joomla-alert {
  position: relative;
  display: flex;
  inline-size: 100%;
  min-inline-size: 16rem;
  padding: 0;
  margin-block-end: 1rem;
  color: var(--alert-accent-color);
  background-color: var(--alert-bg-color);
  border: 1px solid;
  border-color: var(--alert-border);
  border-radius: $border-radius-sm;
  transition: opacity .15s linear;

  &[type="success"],
  &[type="message"] {
    --alert-accent-color: var(--state-success-text);
    --alert-bg-color: var(--state-success-bg);
    --alert-border: var(--state-success-bg-hvr);
    --alert-heading-bg: var(--state-success-bg-hvr);
    --alert-link-color: var(--state-success-link-color, var(--states-link-color));
    a:not(.btn), .btn-link {
      color: var(--state-success-text);
      text-decoration: underline;
    }
  }

  &[type="info"],
  &[type="notice"] {
    --alert-accent-color: var(--state-info-text);
    --alert-bg-color: var(--state-info-bg);
    --alert-border: var(--state-info-bg-hvr);
    --alert-heading-bg: var(--state-info-bg-hvr);
    --alert-link-color: var(--state-success-link-color, var(--states-link-color));
    a:not(.btn), .btn-link {
      color: var(--state-info-text);
      text-decoration: underline;
    }
  }

  &[type="warning"] {
    .joomla-alert--close {
      color: var(--state-warning-text);
    }

    --alert-accent-color: var(--state-warning-text);
    --alert-bg-color: var(--state-warning-bg);
    --alert-border: var(--state-warning-border);
    --alert-heading-bg: var(--state-warning-heading-bg);
    --alert-link-color: var(--state-success-link-color, var(--states-link-color));
    a:not(.btn), .btn-link {
      color: var(--state-warning-text);
      text-decoration: underline;
    }
  }

  &[type="error"],
  &[type="danger"] {
    --alert-accent-color: var(--state-danger-text);
    --alert-bg-color: var(--state-danger-bg);
    --alert-border: var(--state-danger-bg-hvr);
    --alert-heading-bg: var(--state-danger-bg-hvr);
    --alert-link-color: var(--state-success-link-color, var(--states-link-color));
    a:not(.btn), .btn-link {
      color: var(--state-danger-text);
      text-decoration: underline;
    }
  }

  .alert-heading {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: .8rem;
    line-height: normal;
    color: #fff;
    background: var(--alert-heading-bg);
    align-content: center;

    .message::before,
    .success::before {
      display: inline-block;
      inline-size: 1em;
      block-size: 1em;
      content: "";
      background-image: url('data:image/svg+xml;utf8,<svg width="1792" height="1792" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path fill="rgba(255, 255, 255, .95)" d="M1299 813l-422 422q-19 19-45 19t-45-19l-294-294q-19-19-19-45t19-45l102-102q19-19 45-19t45 19l147 147 275-275q19-19 45-19t45 19l102 102q19 19 19 45t-19 45zm141 83q0-148-73-273t-198-198-273-73-273 73-198 198-73 273 73 273 198 198 273 73 273-73 198-198 73-273zm224 0q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/></svg>');
      background-size: 100%;
    }

    .notice::before,
    .info::before {
      display: inline-block;
      inline-size: 1em;
      block-size: 1em;
      content: "";
      background-image: url('data:image/svg+xml;utf8,<svg width="1792" height="1792" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path fill="rgba(255, 255, 255, .95)" d="M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"/></svg>');
      background-size: 100%;
    }

    .warning::before {
      display: inline-block;
      inline-size: 1em;
      block-size: 1em;
      content: "";
      background-image: url('data:image/svg+xml;utf8,<svg width="1792" height="1792" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path fill="rgba(0, 0, 0, .95)" d="M1024 1375v-190q0-14-9.5-23.5t-22.5-9.5h-192q-13 0-22.5 9.5t-9.5 23.5v190q0 14 9.5 23.5t22.5 9.5h192q13 0 22.5-9.5t9.5-23.5zm-2-374l18-459q0-12-10-19-13-11-24-11h-220q-11 0-24 11-10 7-10 21l17 457q0 10 10 16.5t24 6.5h185q14 0 23.5-6.5t10.5-16.5zm-14-934l768 1408q35 63-2 126-17 29-46.5 46t-63.5 17h-1536q-34 0-63.5-17t-46.5-46q-37-63-2-126l768-1408q17-31 47-49t65-18 65 18 47 49z"/></svg>');
      background-size: 100%;
    }

    .error::before,
    .danger::before {
      display: inline-block;
      inline-size: 1em;
      block-size: 1em;
      content: "";
      background-image: url('data:image/svg+xml;utf8,<svg width="1792" height="1792" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path fill="rgba(255, 255, 255, .95)" d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17z"/></svg>');
      background-size: 100%;
    }
  }

  .alert-wrapper {
    inline-size: 100%;
  }

  .alert-link {
    font-weight: normal;
    color: var(--states-link-color);
    text-decoration: underline;
  }

  .joomla-alert--close,
  .joomla-alert-button--close {
    position: absolute;
    inset-block-start: 0;
    inset-inline-end: 0;
    padding: .75rem .8rem;
    font-size: 2rem;
    line-height: 1rem;
    color: var(--alert-accent-color);
    text-shadow: none;
    background: none;
    border: 0;
    opacity: 1;

    &:hover,
    &:focus {
      text-decoration: none;
      cursor: pointer;
      opacity: .75;
    }
  }

  div {
    font-size: 1rem;
    .alert-message {
      padding: .15rem .3rem;
      padding-inline-end: 2rem;
      margin: .5rem;
    }

    .alert-message:not(:first-of-type) {
      border-block-start: 1px solid var(--alert-accent-color);
    }
  }
}
