
.c-group {
  @extend .card;
  @extend %cheetahBoxShadow;

  &.c-group--0:not(:first-child) {
    margin-top: $vertical-spacing;
  }

  border-width: 0;

  .el-dialog & { box-shadow: none; }

  .c-group {
    box-shadow: none;

    // Fix order create address spacing.
    // may cause visual bug with nested groups (wait a full qa before remove)
    //.c-group-head,
    //.c-group-body {
    //   margin-left: -1.25rem;
    //   margin-right: -1.25rem;
    //}
  }
}

.c-group-list {
  display: flex;
  flex-wrap: wrap;
}

.c-group-card {
  background: #f5f5f5;
  border-radius: 5px;
  padding-left: 10px;
  padding-right: 10px;
  margin-bottom: 10px;
  max-width: calc(50% - 10px);
  margin-right: 10px;
}

.c-group-head {
  @extend .card-header;

  font-size: 2rem;
  padding: 0;
  font-family: inherit;
  font-weight: 400;
  line-height: 1.2;
  color: inherit;
  background-color: transparent;
  border-bottom: 1px solid #ddd;
  white-space: nowrap;
}

.c-group-title {
  flex-grow: 1;
  white-space: wrap;
  line-height: 1.2;
}

.c-group-titleWrapper {
  padding: 20px;
  width: 100%;
  display: flex;
  justify-content: space-between;
}

.c-group-titleActions,
.c-group-titleAppend {
  display: flex;
  justify-content: space-between;
}

.c-group-subTitle {
  font-style: italic;
}

.c-group-head--center {
  justify-content: center;
}

.c-group-body {
  @extend .card-body;
}

.c-group-body--noPadding {
  padding: 0;
}

.c-group--0 {
  border-top: 3px solid $primary-color;
  border-top-left-radius: 3px;
  border-top-right-radius: 3px;

  .c-group--0 {
    border-top: 1px solid #ddd;
    border-top-left-radius: 0;
    border-top-right-radius: 0;

    .c-group-head--0 {
      border-bottom: 0;
      padding-top: 1.2rem;
      font-size: 1.8rem;
      font-weight: 100;
      padding-left: 2rem;
    }
    .c-group-body--0 {
      padding-left: 2rem;
    }
  }

  :not(.c-group-body--noPadding) .c-group--0 {
    margin-left: -$card-spacer-x; // $card-spacer-x
    margin-right: -$card-spacer-x; // $card-spacer-x
  }

  .c-group--1,
  .c-group--2,
  .c-group--3 {
    margin-top: 0 !important;
  }
}

.c-group-head--1 {
  border-bottom-style: dashed;
  font-size: 1.7rem;
  padding-bottom: 1.25rem;
}

.c-group-head--2 {
  border-bottom-width: 0;
  font-size: 1.4rem;
  padding-bottom: 0;
  font-weight: 700;
}

.c-group-group--2 {
  padding-top: 0.6rem;
}

.c-group-head--3,
.c-group-body--3 {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.c-group-head--3 {
  border-bottom-style: dashed;
  font-size: 1.3rem;
  font-weight: 500;
}

.c-group--4 {
  background: transparent;
}

.c-group-head--4,
.c-group-body--4 {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.c-group-head--4 {
  border-bottom-style: dashed;
  border-bottom-color: #eee;
  font-size: 1.2rem;
  padding-bottom: 0.3em;
  padding-top: 0;
  font-weight: 500;
}

.c-group-footer {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  border-radius: 0 0 5px 5px;
  padding: 10px;
  background-color: #fafafa;
}

/**
 * Colors
 */
.c-group-danger {
  border: 1px solid $danger-color;

  .c-group-head {
    color: $danger-color;
    border-bottom-color: $danger-color;
  }
}
.c-group-warning {
  border: 1px solid $warning-color;

  .c-group-head {
    color: $warning-color;
    border-bottom-color: $warning-color;
  }
}
.c-group-primary {
  border: 1px solid $primary-color;

  .c-group-head {
    color: $primary-color;
    border-bottom-color: $primary-color;
  }
}
.c-group-info {
  border: 1px solid $info-color;

  .c-group-head {
    color: $info-color;
    border-bottom-color: $info-color;
  }
}
.c-group-success {
  border: 1px solid $success-color;

  .c-group-head {
    color: $success-color;
    border-bottom-color: $success-color;
  }
}

/**
 * Collapse
 */
.c-group-collapseButton {
  display: flex;
  width: 100%;
  padding: 20px;
  color: inherit;
  text-align: left;
  font-size: inherit;
  font-weight: inherit;

  i { transition: transform .3s; }

  [class*=el-icon-] + span {
    flex-grow: 1;
    display: flex;
  }
}

.c-group-collapseButton:active, .c-group-collapseButton:focus, .c-group-collapseButton:hover {
  color: inherit;
}

.c-group-collapseButton--collapsed .el-icon-arrow-down:first-of-type {
  transform: rotate(-90deg);
}

/**
 * Tree
 */
.c-group--tree {
  margin-left: 20px;
  padding-left: 20px;
  border-left: solid 1px #2fb3ff;
  border-radius: 0;

  &:first-of-type .c-group-head--tree { padding-top: 2rem; }

  &:last-child { border-left-color: transparent; }
}

.c-group-head--tree {
  border: none !important;
  font-size: 1.2rem;
  padding-bottom: 0.3rem;
  position: relative;

  &::before {
    content: " ";
    width: 20px;
    display: block;
    border-bottom: 1px solid #2fb3ff;
    border-left: 1px solid #2fb3ff;
    border-bottom-left-radius: 7px;
    height: 40px;
    position: absolute;
    left: -21px;
    bottom: 17px;
  }

  .c-group-hideTree &:before { display: none; }
}

.c-group-hideTree { border-left: 0; }

/**
 * No border
 */
.c-group--noBorder { border-top: none !important; }

.c-group-head--center {
  .c-group-title { text-align: center; }
}
.c-group-head--right {
  border-width: 2px;
  .c-group-title { text-align: right; }
}

.c-group-footer--center { justify-content: center; }
.c-group-footer--right { justify-content: flex-end; }
