.looper {
  display: flex;
  flex-direction: row;
  margin: 6px;
  height: calc(100vh - 52px);
  overflow: hidden;

  .looper-tabs {
    display: flex;
    flex-direction: column;
    min-width: 120px;
    margin-right: 10px;
    margin-top: 34px;
    background-color: #0f0f0f;

    .looper-tab {
      display: flex;
      flex-direction: row;
      align-items: center;
      justify-content: center;
      font-size: 16px;
      padding: 4px 8px;
      height: 28px;
      background-color: #256a70;
      border: 1px solid #666;
      cursor: pointer;
    }

    .looper-tab[data-active='true'] {
      background-color: #b326c5;
      font-weight: bold;
    }
  }

  .looper-preset-buttons {
    display: flex;
    flex-direction: column;
    flex: 1;

    > button {
      margin-top: 4px;
    }
  }

  .looper-module-info {
    display: flex;
    flex-direction: row;
    align-items: center;
    margin-bottom: 4px;

    .delete-looper-module-button {
      height: 24px;
      width: 24px;
      margin-right: 4px;
      color: #991111;
      font-size: 24px;
      line-height: 10px;
      padding: 0;
    }

    h2 {
      display: flex;
      padding: 2px 4px;
      margin: 0;
      font-size: 20px;
      font-weight: bold;
      border: 1px solid #666;
      cursor: pointer;
      height: 24px;
    }

    input[type='text'] {
      display: flex;
      padding: 2px 4px;
      font-size: 20px;
      height: 24px;
    }
  }

  .looper-banks-wrapper {
    display: flex;
    flex-direction: column;

    .looper-banks {
      display: flex;
      flex-direction: column;
      height: 100%;
      overflow-y: auto;
      background-color: #0f0f0f;

      .looper-bank {
        display: grid;
        grid-template-columns: 0 0 400px 0.3fr 0.3fr 1fr;
        border-bottom: 1px solid black;
        min-height: 100px;
        max-height: 100px;
        overflow-y: hidden;

        .active-composition-name {
          border-right: 1px solid #555;
        }

        .loop-length {
          justify-content: space-between;

          .loop-length-value {
            padding: 2px 4px;
            font-weight: bold;
            border: 1px solid #666;
            background-color: #0f0f0f;
          }

          input[type='text'] {
            box-sizing: border-box;
            width: 100%;
            height: 26px;
            margin-top: 8px;
            padding: 4px 8px;
            background-color: #0f0f0f;
          }

          > div {
            display: flex;
            flex-direction: column;
          }
        }

        .active-composition-name,
        .loop-length {
          padding: 2px 8px;
          display: flex;
          flex-direction: column;
          cursor: pointer;
          text-align: center;
          font-size: 13.5px;
          color: #cccccc88;
          user-select: none;

          * {
            display: flex;
            justify-content: center;
            align-items: center;
          }

          b {
            margin-top: 4px;
            color: #cccccc;
            font-size: 15px;
          }
        }

        .delete-looper-bank-button {
          position: absolute;
          top: 0;
          left: 0;
          width: 17px;
          height: 17px;
          z-index: 2;
          color: #991111;
          padding: 0;
          font-size: 18px;
          line-height: 0;
          user-select: none;
        }

        .looper-bank-number {
          z-index: 2;
          position: absolute;
          left: 4px;
          bottom: 40%;
          font-size: 14px;
          color: #bbb;
        }

        .looper-viz {
          margin-top: auto;
          margin-bottom: auto;
          display: block;
        }

        .control-panel,
        .looper-viz,
        .active-composition-name {
          cursor: pointer;
        }
      }

      .looper-bank[data-active='true'] {
        background-color: rgba(62, 192, 231, 0.4);

        .control-panel {
          background-color: rgba(35, 35, 35, 0.8) !important;
        }
      }
    }
  }

  .configure-transition-algorithm-collapsed,
  .configure-transition-algorithm {
    background-color: #1b1b1b;
    border: 1px solid #555;
  }

  .configure-transition-algorithm-collapsed,
  .configure-transition-algorithm .header {
    display: flex;
    align-items: center;
    padding-left: 6px;
    max-height: 25px;
    font-size: 17px;
    color: #b6b6b6;
    box-sizing: border-box;
    user-select: none;
    cursor: pointer;
    background-color: #2c2c2c;
  }

  .configure-transition-algorithm {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: calc(min(200px, 50vh));
    max-height: 50vh;

    .header {
      height: 40px;
      border-bottom: 1px solid #555;
    }

    .configure-transition-algorithm-content-wrapper {
      display: flex;
      flex-direction: row;
      flex: 1;

      .left-pane {
        width: 300px;
        justify-content: space-between;
        border-right: 1px solid #555;

        .error-message {
          display: flex;
          flex: 1;
          height: 100%;
          color: red;
          margin-top: 2px;
          padding: 4px;
        }
      }

      > div {
        display: flex;
        flex-direction: column;
      }
    }

    .configure-transition-algorithm-content {
      padding: 4px;
      flex: 1;
    }
  }
}
