// Quick Icons

.quick-icons {
  background-color: $quickicon-bg;

  .nav {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    grid-gap: 1rem;
  }

  a {
    text-decoration: none;
  }

  ul {
    padding: 0;
  }

  .quickicon {
    --text-color: var(--template-quickicon-color);
    --bg-color: var(--template-quickicon-bg);
    --icon-color: var(--template-quickicon-color);
    --icon-color-hvr: #{$quickicon-color-hvr};
    --bg-color-hvr: var(--template-quickicon-bg-hvr);
    --text-color-hvr: #{$quickicon-link-hvr};
    --text-amount-color: var(--template-quickicon-color);

    display: flex;
    flex-grow: 1;

    a {
      display: flex;
      flex-direction: column;
      flex-grow: 1;
      justify-content: flex-end;
      padding: 0 1rem;
      color: var(--text-color);
      background-color: var(--bg-color);
      transition: all .25s ease;

      &:focus-visible {
        border: 1px solid var(--link-color);
        outline: 0;
      }

      .quickicon-icon {
        margin-block-start: .5rem;
        margin-inline-start: .2rem;
        color: var(--icon-color);

        > * {
          font-size: $quickicon-icon-size;
        }
      }

      .quickicon-name {
        padding: .125rem 0 .6rem;
        font-size: $display2-size;
        font-weight: bold;
      }

      .quickicon-amount {
        padding: .25rem .5rem;
        font-weight: $bold-weight;
        line-height: 1rem;
        color: var(--text-amount-color);
        background: $quickicon-amount-bg;
        border-radius: $border-radius;
        transition: all .25s ease;
        margin-inline-start: .5rem;
      }

      .j-links-link {
        display: block;
        padding: 0 .2rem;
        line-height: 1.1;
      }

      &:hover,
      &:focus,
      &:active {
        color: var(--text-color-hvr);
        text-decoration: none;
        background: var(--bg-color-hvr);
        --text-amount-color: var(--bg-color-hvr);

        .quickicon-amount {
          color: $quickicon-amount-bg;
          background: var(--icon-color);
        }
        .quickicon-icon {
          color: var(--icon-color-hvr);
        }
      }

      &.info {
        --text-color: var(--state-info-text);
        --text-color-hvr: var(--state-info-text-hvr);
        --bg-color: var(--state-info-bg);
        --icon-color: var(--state-info-icon);
        --icon-color-hvr: var(--state-info-icon-hvr);
        --bg-color-hvr: var(--state-info-bg-hvr);
      }

      &.warning {
        --text-color: var(--state-warning-text);
        --text-color-hvr: var(--state-warning-text-hvr);
        --bg-color: var(--state-warning-bg);
        --icon-color: var(--state-warning-icon);
        --icon-color-hvr: var(--state-warning-icon-hvr);
        --bg-color-hvr: var(--state-warning-bg-hvr);
      }

      &.danger {
        --text-color: var(--state-danger-text);
        --text-color-hvr: var(--state-danger-text-hvr);
        --bg-color: var(--state-danger-bg);
        --icon-color: var(--state-danger-icon);
        --icon-color-hvr: var(--state-danger-icon-hvr);
        --bg-color-hvr: var(--state-danger-bg-hvr);
      }

      &.success {
        --text-color: var(--state-success-text);
        --text-color-hvr: var(--state-success-text-hvr);
        --bg-color: var(--state-success-bg);
        --icon-color: var(--state-success-icon);
        --icon-color-hvr: var(--state-success-icon-hvr);
        --bg-color-hvr: var(--state-success-bg-hvr);
      }
    }
  }

  .quickicon-info {
    display: flex;
    align-items: flex-end;
  }

  .quickicon-linkadd {
    inline-size: 2.5rem;
    font-size: 1.2rem;
    background: $quickicon-linkadd-bg;
    transition: all .25s ease;

    a {
      align-items: flex-end;
      justify-content: center;
      inline-size: 100%;

      > * {
        margin-block-end: 10px;
        color: $quickicon-linkadd-color;
      }

      &:focus-visible {
        border: 1px solid var(--link-color);
        outline: 0;
      }

      &:hover,
      &:focus,
      &:active {
        background: var(--quickicon-linkadd-bg-hvr);

        * {
          color: $white;
        }
      }
    }
  }

  .quickicon-single,
  .quickicon-group {
    display: flex;
    min-block-size: 6rem;
    overflow: hidden;
    border: $quickicon-border;
    border-radius: $quickicon-border-radius;
  }
}

#content .menu-quicktask {
  position: absolute;
  inset-inline-end: 1.25rem;
}
