$component: 'protocol-card';

.#{$component} {
  background: var(--color-platinum);
  color: var(--color-navy-taupe);
  border-radius: var(--border-radius);
  display: flex;
  overflow: hidden;
  flex-direction: column-reverse;
  height: 13rem;
  position: relative;

  &--clickable {
    @include clickable(2);
  }

  &--selected {
    &:before {
      content: '';
      position:absolute;
      top:0;
      bottom:0;
      left:0;
      right: 0;
      border: 0.4rem solid var(--color-mustard);
      border-radius: var(--border-radius);
    }
  }

  &--condensed {
    @include clickable(1);
    flex-direction: row;
    height: unit(7);

    .#{$component}__icon-section {
      padding: 0;
      flex: 0 0 4rem;

      .status-icon {
        margin-left: 0;
      }

      .protocol-icon {
        height: 2rem;
        width: 2rem;
      }
    }

    .#{$component}__main-section {
      padding: unit(1) unit(2);
      width: calc(100% - 4rem);

      .protocol-name {
        display: block;
        flex: none;
        font-size: 1rem;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
      }
    }
  }

  &__icon-section {
    display: flex;
    justify-content: center;
    align-items: center;
    color: #aab0fd;
    background: var(--color-slate-blue--dark);
    flex-direction: row;
    padding: unit(1) unit(4);
    flex: 0 0 auto;
    min-height: 0;

    .protocol-icon {
      height: 100%;
      flex: 0 0 unit(4);
      display: flex;

      .icon {
        flex: 0 1 auto;
        height: 100% !important;
        width: 100% !important;
      }
    }

    .protocol-meta {
      flex: 1 1 auto;
      display: flex;
      flex-direction: column;
      justify-content: center;

      h6 {
        margin: 0.3rem;
        text-transform: uppercase;
        letter-spacing: 0.15em;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        font-size: 0.64rem;
      }
    }
  }

  &__main-section {
    padding: unit(2) unit(4) unit(1);
    flex-direction: column;
    display: flex;
    justify-content: center;
    min-height: 0; // This is needed so that the flexbox can shrink to the absolute height parent
    flex: 1 1 auto;

    .protocol-name {
      flex: 0 0 auto;
      margin: 0;
      align-items: center;
      display: flex;
      hyphens: auto;
    }

    .protocol-description {
      @include scrollable(unit(1));
      padding-top: unit(1);
      flex: 1 1 auto;
      font-size: 0.8rem;

      &--condensed {
        flex: 0 auto;
        font-size: 0.64rem;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        width: 100%;
      }
    }
  }

  .status-icon {
    height: 3rem;
    width: 3rem;
    text-align: center;
    // background: var(--warning);
    padding: unit(1);
    margin-left: unit(1);
    border-radius: 50%;
    display: inline-block;

    &--outdated {
      background: var(--warning);
    }

    .icon {
      width: 100% !important;
      height: 100% !important;
    }
  }

  &--obsolete {
    .#{$component}__icon-section {
      color: #ff9dbb;
      background: var(--error);
    }

    .protocol-name, .protocol-description {
      opacity: 0.35;
    }
  }
}
