/*
 * © 2024 AxonOps Limited. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
* Most styles related specifically to the MDB modal
*/
div.modal {
  div.form-outline.margin-bottom {
    margin-bottom: 45px;

    &.sm {
      margin-bottom: 25px;
    }
  }

  .btn {
    ion-icon {
      font-size: 120%;
      vertical-align: middle;
      margin-right: 5px;
    }
  }
}

div.modal {
  &#addEditConnectionDialog,
  &#appAbout,
  &#appSettings,
  &#connectionCredentials,
  &#importWorkspaces {
    &#addEditConnectionDialog {
      div.modal-content {
        height: calc(202px + 470px);
      }
    }

    div.modal-dialog {
      transition: transform 0.3s ease-out, max-width 0.2s ease-in-out;

      &.expanded {
        div.modal-content {
          height: calc(202px + 570px) !important;

          div.modal-body:not(.select-type) {
            height: 570px;
          }
        }
      }
    }

    div.modal-body {
      display: flex;
      height: 430px;
      flex: {
        direction: row;
        wrap: nowrap;
      }
      align-items: flex-start;
      justify-content: flex-start;
      padding: var(--mdb-modal-padding) !important;
      transition: height 0.2s ease-in-out;

      &.disable-transition {
        transition: none !important;
      }

      div.side-left {
        background: #202023;
        border-radius: 10px;
        width: 200px;
        box-shadow: 0 0 0 5px #262626;
        margin-right: 20px;

        div.sections {
          padding: 10px;

          div.seperator {
            position: relative;
            margin: 5px 0;
            opacity: 0.8;

            &:before {
              content: '';
              @include position(absolute, 0, 0, auto);
              width: 100%;
              height: 2px;
              background: #dfe7f6;
              border-radius: 100px;
            }

            span.badge {
              position: relative;
              font-size: 65%;
              margin-left: 4px;
            }
          }

          div.section {
            border-radius: 5px;

            ion-icon[name="external-link"] {
              margin-left: 5px;
              position: relative;
              bottom: 1px;
            }

            div.btn {
              width: 100%;
              text: {
                align: left;
                transform: capitalize;
              }
              padding-left: 5px;
              color: inherit;
              transition: opacity 0.2s ease-in-out;
              opacity: 0.5;

              &:hover {
                opacity: 0.8;
              }

              &.active {
                opacity: 1;
              }
            }
          }
        }
      }

      div.side-right {
        width: calc(100% - 220px);
        overflow-y: scroll;
        @include scrollbar(#515151, #262626);

        div.modal-section {
          height: 400px;
          padding: 5px 10px 0 0;

          &[section="variables"] {
            div.sub-header {
              display: flex;
              height: 29px;
              flex: {
                direction: row;
                wrap: nowrap;
              }
              align-items: center;
              justify-content: space-between;
              opacity: 0.9;

              a {
                display: flex;
                color: inherit;
                text-transform: capitalize;
                flex: {
                  direction: row;
                  wrap: nowrap;
                }
                align-items: center;

                ion-icon[name="plus"] {
                  font-size: 171%;
                }

                &[action="delete"],
                &[action="refresh"] {
                  transition: opacity 0.25s ease-in-out;
                  opacity: 0;
                  pointer-events: none;

                  &.show {
                    opacity: 1;
                    pointer-events: all;
                  }
                }
              }
            }

            div.variables-list {
              position: relative;
              height: calc(100% - 60px);
              margin-top: 25px;
              overflow-y: scroll;
              @include scrollbar(#2c2c2c, #262626);

              div.variable {
                input[type="text"] {
                  margin-bottom: 0 !important;
                }
              }

              div.content {
                padding: 5px 0;

                div.variable {
                  div.right-margin {
                    margin-right: 4px;
                    width: calc(100% - 4px);
                  }

                  div.left-margin {
                    margin-left: 4px;
                    width: calc(100% - 4px);
                  }

                  [class*="col-"].flex {
                    display: flex;
                    flex: {
                      direction: column;
                      wrap: nowrap;
                    }
                    justify-content: center;

                    div.actions {
                      display: flex;
                      width: calc(100% - 9px);
                      flex: {
                        direction: row;
                        wrap: nowrap;
                      }
                      align-items: center;
                      justify-content: space-between;
                      margin-left: 9px;

                      a[action] {
                        width: 100%;
                        padding: 0 2px;
                        color: inherit;
                        text: {
                          transform: capitalize;
                          align: -webkit-center;
                        }
                        opacity: 0.25;
                        transition: opacity 0.2s ease-in-out;

                        &:hover {
                          opacity: 0.5;
                        }

                        &.active {
                          opacity: 0.75;
                        }

                        &[action="multiple"] {
                          opacity: 0.8;
                          cursor: default;

                          input {
                            position: relative;
                            bottom: 1px;
                            left: 3px;
                            transform: scale(0.82);
                            cursor: pointer;
                          }
                        }

                        ion-icon[name="trash"] {
                          position: relative;
                          left: 2px;
                          font-size: 139%;
                        }
                      }
                    }
                  }

                  &:not(:last-child),
                  &:not(:last-of-type) {
                    margin-bottom: 25px;
                  }

                  div.workspaces {
                    display: flex;
                    height: fit-content;
                    line-height: 17px;
                    flex: {
                      direction: row;
                      wrap: wrap;
                    }
                    align-items: flex-start;
                    justify-content: flex-start;
                    margin-top: 7px;
                    text-align: start;

                    div.btn.workspace {
                      display: inline-block;
                      height: inherit;
                      line-height: 1;
                      text: {
                        transform: inherit;
                        align: center;
                      }
                      padding: 0.35em 0.65em;
                      font: {
                        size: 0.75em;
                        weight: 500;
                      }
                      color: inherit;
                      white-space: nowrap;
                      vertical-align: baseline;
                      border-radius: 0.27rem;
                      overflow: hidden;
                      box-shadow: 0 0;
                      background: #2f2f33;
                      opacity: 0.4;
                      transition: opacity 0.2s ease-in-out;
                      margin: 2px;
                      cursor: pointer;

                      &:first-child,
                      &:first-of-type {
                        margin: 0 1px 0 0;
                      }

                      &:last-child,
                      &:last-of-type {
                        margin-right: 0;
                      }

                      &:hover {
                        opacity: 0.65;
                      }

                      &[data-selected="true"] {
                        opacity: 0.9;
                      }

                      span.color {
                        position: relative;
                        top: 1px;
                        display: inline-block;
                        width: 10px;
                        height: 10px;
                        border-radius: 50%;
                        margin-right: 1px;
                        background: #373739;
                      }
                    }
                  }
                }
              }

              div.empty {
                @include position();
                transition: opacity 0.2s ease-in-out;
                opacity: 0;
                transition-duration: 0s;
                pointer-events: none;

                div.sub-content {
                  @include position();
                  height: 80%;

                  img.gif {
                    opacity: 0.15;
                  }

                  div.message {
                    @include position();
                    width: fit-content;
                    height: fit-content;
                    transform: translateY(80px);
                    font-weight: 200;
                    opacity: 0.5;
                  }
                }
              }

              &.empty {
                div.empty {
                  transition-duration: 0.2s;
                  opacity: 1;
                  pointer-events: all;
                }
              }
            }
          }
        }
      }

      div.test-connection {
        @include position();
        background: rgba(38, 38, 38, 0.6);
        pointer-events: none;
        transition: opacity 0.15s ease-in-out;
        opacity: 0;
        z-index: 2;

        div.sub-content {
          @include position();
          height: 100%;
          opacity: 0.7;

          .ldr {
            position: absolute;
            inset: 0;
            margin: auto;
          }
        }
      }

      div.editor-container {
        @include position(absolute, 0, auto);
        width: 100%;
        height: 100%;
        background: inherit;
        pointer-events: none;
        opacity: 0;
        z-index: 2;

        .editor {
          @include position();
        }
      }
    }

    &#appAbout {
      div.modal-body {
        height: 500px;
      }
    }

    &.show-editor {
      div.modal-body {
        overflow: hidden;

        .editor-container {
          pointer-events: all;
          opacity: 1;
        }
      }
    }

    &.test-connection {
      div.modal-content {
        div.modal-body {
          div.test-connection {
            opacity: 0.9;
            pointer-events: all;
          }
        }
      }
    }

    div.form-helper {
      font-size: 75% !important;
    }

    button.expand-editor {
      margin-left: 10px;
      width: 25px;
      height: 25px;
      border-radius: 50%;
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.2s ease-in-out;

      ion-icon {
        color: #e3e3e3;
        opacity: 0.7;
        transition: opacity 0.2s ease-in-out;
      }

      &:hover {
        ion-icon {
          opacity: 0.9;
        }
      }

      &.show {
        opacity: 1;
        pointer-events: all;
      }
    }
  }

  &#appAbout {
    div.side-left {
      width: 250px !important;

      div.sections {
        max-height: 100%;
        overflow-y: auto;

        &::-webkit-scrollbar {
          width: 4px;
          height: 4px;
        }
      }
    }

    div.side-right {
      width: calc(100% - 270px) !important;
    }
  }

  &#loadSnapshot {
    div.snapshots {
      max-height: 400px;
      overflow-y: scroll;
      padding-right: 10px;
      @include scrollbar(#515151, #262626);

      div.snapshot {
        background: #1d1d1e;
        display: flex;
        flex: {
          direction: row;
          wrap: nowrap;
        }
        align-items: center;
        justify-content: space-between;
        padding: 10px;
        border-radius: 8px;

        div._left {
          div.name {
            margin-bottom: 2px;
            white-space: nowrap;
            width: 280px;
            overflow: hidden;
            text-overflow: ellipsis;
          }

          div.badges {
            font-size: 85%;
            opacity: 0.85;
          }
        }

        div._right {
          display: flex;
          flex: {
            direction: row;
            wrap: nowrap;
          }
          align: {
            items: center;
            content: center;
          }
          justify-content: space-between;

          a {
            opacity: 0.8;

            &[action="multiple"] {
              cursor: default;

              input {
                position: relative;
                top: 1px;
                transform: scale(0.85);
              }
            }

            ion-icon {
              position: relative;
              left: 3px;
              font-size: 135%;
              color: #e3e3e3;

              &[name="trash"] {
                opacity: 0.8;
              }
            }
          }
        }

        &:not(:last-of-type) {
          margin-bottom: 10px;
        }
      }
    }

    div.actions-multiple {
      margin-bottom: 15px;
      transition: height 0.25s cubic-bezier(0.4, 0, 0.2, 1);
      overflow: hidden;
      height: 0;

      a {
        color: inherit;
        max-width: 50%;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        text-transform: inherit;

        &[action="select"] {
          float: left;
        }

        &[action="delete"] {
          float: right;
        }
      }

      &.show {
        height: 29px;
      }
    }
  }

  &#addEditWorkspaceDialog {
    div.preview-color {
      position: relative;
      background: #4e4e4e;
      width: 20px;
      height: 20px;
      border-radius: 4px;
      transition: background 0.1s linear;
    }
  }

  &#addEditConnectionDialog div.modal-header span.badge.badge-secondary {
    position: relative;
    top: 1px;
    margin-left: 8px;
    opacity: 0.8;
    display: none;

    &[data-edit-workspace-id] {
      div.modal-header span.badge.badge-secondary {
        display: block;
      }
    }
  }

  &#connectionCredentials {
    div.modal-body {
      display: flex;
      flex: {
        direction: column;
        wrap: nowrap;
      }
      align-items: stretch;
      justify-content: flex-start;
      height: 350px;

      div.side-left {
        width: 100%;
        margin: 0 0 20px;

        div.sections {
          display: flex;
          flex: {
            direction: row;
            wrap: nowrap;
          }
          justify-content: space-around;
          align-items: center;

          div.section {
            width: 100%;

            div.btn {
              text-align: center;
            }
          }
        }
      }

      div.side-right {
        width: 100%;

        div.modal-section {
          height: 230px;
          display: none;

          &[section="authentication"] {
            display: block;
          }
        }
      }
    }

    &.one-only {
      div.modal-body {
        height: 270px;

        div.side-left {
          display: none;
        }
      }

      &.auth {
        div.modal-body div.side-right div.modal-section {
          &:not([section="authentication"]) {
            display: none !important;
          }

          &[section="authentication"] {
            display: block !important;
          }
        }
      }

      &.ssh {
        div.modal-body div.side-right div.modal-section {
          &:not([section="ssh-tunnel"]) {
            display: none !important;
          }

          &[section="ssh-tunnel"] {
            display: block !important;
          }
        }
      }
    }

    div.modal-section[section="ssh-tunnel"] {
      div.form-outline.margin-bottom {
        margin-bottom: 25px !important;
      }
    }
  }

  &#addEditConnectionDialog {
    div.modal-body {
      height: 470px;

      &.select-type {
        height: fit-content;
        flex-direction: row;
        flex-wrap: wrap;
        align-content: flex-start;
        justify-content: flex-start;
        align-items: flex-start;
        display: flex;
        padding-bottom: 7px !important;

        div.connection-type {
          background: #2f2f2f;
          color: inherit;
          padding: 10px 15px;
          text-transform: none;
          display: flex;
          flex-direction: row;
          flex-wrap: nowrap;
          align-content: center;
          justify-content: flex-start;
          align-items: center;
          box-shadow: 0 0 15px 1px rgba(0, 0, 0, 0.15%);
          border-radius: 7px;

          div.icon {
            background: #3d3d3d;
            width: 30px;
            height: 30px;
            position: relative;
            margin-right: 5px;
            border-radius: 50%;
            transform: scale(0.9);
            transform-origin: left;
            margin-left: -4px;
            transition: all 0.15s ease-in-out;

            ion-icon {
              position: absolute;
              inset: 0;
              margin: auto;
              font-size: 140%;
              transform: rotate(90deg) translateY(-1px);
              transition: all 0.2s ease-in-out;
            }
          }

          &:not(:last-of-type) {
            margin-right: 15px;
          }

          &:hover {
            div.icon {
              background: #444343;
              transform: scale(0.9) translateX(2px);
            }
          }

          &.active {
            div.icon {
              ion-icon {
                transform: rotate(180deg) translateY(-1px);
              }
            }
          }
        }
      }

      &[data-connection-type="astra-db"] {
        display: none;
        height: fit-content;
      }
    }

    &[data-selected-modal-body="astra-db"] {
      div.modal-footer {
        div.float-left {
          display: none;
        }
      }
    }

    div.side-right {
      overflow-y: hidden !important;

      div.modal-section {
        height: 440px !important;
      }
    }
  }
}

input[type="file"],
div.form-outline[role="file-selector"] {
  font-size: 100% !important;

  &::file-selector-button {
    display: none;
  }

  &:before {
    content: attr(file-info);
    border-right: 1px #4e4e4e solid;
    margin-right: 10px;
    padding-right: 10px;
    color: #e3e3e3;
  }

  &:after {
    content: '';
    display: none;
  }

  &.initial {
    color: transparent !important;

    &:before {
      position: relative;
      top: 6px;
      height: 19px;
      line-height: 19px;
      float: left;
    }

    &:after {
      content: attr(data-initial);
      color: #fff;
      float: left;
      display: block;
    }
  }
}

div.form-outline[role="file-selector"] {
  display: flex;
  height: 44.61px;

  &:before {
    content: attr(file-info);
    border-right: 1px #4e4e4e solid;
    color: #e3e3e3;
    height: 50%;
    margin: 0 10px;
    padding-right: 8px;
    line-height: 20px;
    white-space: nowrap;
  }

  &:after {
    content: attr(file-name);
    display: block;
    color: #e3e3e3;
    height: 50%;
    margin: 0 10px 0 0;
    padding-right: 8px;
    line-height: 20px;
    overflow: hidden;
    white-space: normal;
    text-overflow: ellipsis;
  }

  input {
    @include position();
    background: inherit !important;
    color: transparent !important;
    cursor: pointer;
  }
}

div.form-outline {
  div.clear-field,
  div.reveal-password {
    @include position(absolute, 0, 0, 6px, auto);
    display: flex;
    flex: {
      direction: column;
      wrap: nowrap;
    }
    align: {
      items: center;
      content: center;
    }
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    overflow: hidden;

    div.btn {
      position: relative;
      width: 100%;
      height: 100%;
      opacity: 0.8;

      ion-icon {
        @include position();
        color: #e3e3e3;
        font-size: 150%;
      }
    }
  }

  div.clear-field {
    transition: opacity 0.2s ease-in-out;
    opacity: 1;
    pointer-events: all;

    &.hide {
      opacity: 0;
      pointer-events: none;
    }
  }

  div.form-helper {
    bottom: -24px;
  }

  &.file {
    padding-top: 2px;
  }
}

div.form-check {
  label {
    position: relative;
    bottom: 1px;
  }
}

div.backdrop {
  position: absolute;
  inset: 0;
  margin: auto;
  width: 100%;
  height: 100%;
  z-index: 3;
  background-color: #000;
  opacity: 0;
  transition: all 0.2s ease-in-out;

  &.show {
    opacity: 0.5;
  }
}

.modal-backdrop {
  inset: 0;
  margin: auto;
  width: auto;
  height: auto;
}

div.modal-section {
  div.notice {
    background: #353535;
    padding: 7px;
    border-radius: 7px;
    width: 100%;
    text-align: justify;
    font-family: 'Terminal', monospace;
    font-size: 85%;

    div.notice-header {
      position: relative;
      cursor: pointer;

      div.clickable {
        position: absolute;
        inset: 0;
        margin: auto;
      }

      span.badge {
        &.btn {
          border-radius: 0.27rem;
          box-shadow: none;
          text-transform: none;
          padding: var(--mdb-badge-padding-y) var(--mdb-badge-padding-x);
          font-size: var(--mdb-badge-font-size);
          font-weight: var(--mdb-badge-font-weight);
          white-space: nowrap;
          vertical-align: baseline;
          overflow: hidden;
          position: relative;
          top: 5px;
          height: 16.25px;
          cursor: pointer;
          z-index: 1;
        }
      }

      ion-icon[for-pre] {
        position: absolute;
        inset: 0;
        margin: auto;
        left: auto;
        font-size: 150%;
        opacity: 0.8;
        transition: all 0.2s ease-in-out;
      }

      &:hover {
        ion-icon[for-pre] {
          opacity: 1;
        }
      }

      &.shown-pre {
        ion-icon[for-pre] {
          transform: rotate(180deg);
        }
      }
    }

    pre {
      display: none;
      margin-top: 5px !important;
      font-size: 85% !important;
    }

    &:not(:first-of-type) {
      margin-top: 10px;
    }

    span.link {
      span.content {
        text-decoration: underline;
      }
      opacity: 0.6;
      cursor: pointer;
      transition: opacity 0.2s ease-in-out;

      &:hover {
        opacity: 1;
      }
    }
  }
}

div.modal-section {
  div.drag-drop-workspaces {
    width: 100%;
    height: 100%;
    position: relative;
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    border: 2px rgba(236, 236, 236, 0.65) dashed;
    border-radius: 10px;
    @extend .no-select;
    cursor: pointer;
    transition: all 0.3s ease-in-out;

    div.lottie-container {
      height: 250px;

      img.gif {
        filter: grayscale(1) invert(1);
        opacity: 0.7;
        transition: opacity 0.2s ease-in-out;
        transition-delay: 0.15s;
        height: 250px;
      }
    }

    &.drag {
      border: 5px rgba(236, 236, 236, 0.85) dashed;

      div.lottie-container {
        img.gif {
          filter: grayscale(1) invert(1);
          opacity: 0.9;
        }
      }
    }

    &:hover {
      border: 3px rgba(236, 236, 236, 0.85) dashed;

      div.lottie-container {
        img.gif {
          filter: grayscale(1) invert(1);
          opacity: 0.9;
        }
      }
    }
  }
}

div.modal#appUpdate {
  div.modal-header {
    div.icon {
      display: inline-block;
      width: 30px;
      height: 30px;
      vertical-align: middle;
      position: relative;

      ion-icon {
        position: absolute;
        inset: 0;
        margin: auto;
        font-size: 130%;
        transform: translateY(-4px);
      }
    }
  }

  div.modal-body {
    padding: var(--mdb-modal-padding) !important;
    font-size: 90%;

    div.card {
      box-shadow: none;
      margin-top: 10px;
      background: #373737;

      &:not(:first-of-type) {
        margin-top: 30px;
      }

      &.fit-content {
        width: fit-content;
      }

      div.card-body {
        padding: 6px;

        div.content-title {
          width: fit-content;
          background: #424242;
          margin-bottom: -7px;
          position: relative;
          bottom: 17px;
          padding: 0 7px;
          border-radius: 5px;
          font-weight: 500;
          left: 5px;
        }

        p {
          margin-bottom: 0;
        }

        div.changelog-content {
          overflow: hidden;
          overflow-y: scroll;
          max-height: 250px;

          * {
            font-size: 95%;
          }

          a {
            width: 95%;
            display: inline-block;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            transition: all 0.15s ease-in-out;

            &:hover {
              text-decoration: underline;
            }
          }
        }

        div.asset {
          display: flex;
          flex-direction: row;
          flex-wrap: nowrap;
          align-items: center;
          align-content: center;
          background: #282828;
          height: 30px;
          border-radius: 5px;
          padding: 0 7px;
          justify-content: space-between;
          position: relative;
          overflow: hidden;
          transition: 0.2s ease-in-out;
          font-size: 95%;

          div.name {
            width: calc(100% - 110px);
          }

          div.size {
            width: 90px;
          }

          div.icon {
            width: 20px;
          }

          span.button {
            position: absolute;
            inset: 0;
            margin: auto;
          }

          ion-icon {
            font-size: 130%;
            vertical-align: middle;
            position: relative;
            bottom: 1px;
            filter: invert(0.4);
            transition: 0.2s ease-in-out;
            transition-delay: 0.1s;
          }

          &:hover {
            background: rgba(40,40,40,.65);

            ion-icon {
              filter: invert(0.15);
            }
          }

          &:not(:first-of-type) {
            margin-top: 7px;
          }
        }
      }

      &[content="version"] {
        ion-icon[name="arrow-up"] {
          transform: rotate(90deg);
          vertical-align: middle;
          font-size: 130%;
        }
      }

      &[content="assets"] {
        div.content-title {
          ion-icon {
            vertical-align: middle;
            font-size: 120%;
            transform: translateY(-1px);

            &[name*="windows"] {
              transform: translateY(-1px);
            }

            &[name*="darwin"] {
              transform: translateY(-2px);
            }
          }
        }
      }

      span.badge:last-of-type {
        position: relative;
        overflow: hidden;
        vertical-align: middle;
        padding-right: 22px;

        span.btn {
          position: absolute;
          inset: 0;
          margin: auto;
        }

        ion-icon {
          font-size: 130%;
          position: absolute;
          right: 6px;
          bottom: 2px;
          margin: auto;
        }
      }
    }
  }
}

div.modal#rightClickActionsMetadata {
  div.modal-dialog {
    max-width: 600px !important;
  }

  &.insertion-action,
  &.selection-action {
    div.modal-dialog {
      max-width: 900px !important;
    }
  }

  div.action-editor {
    position: absolute;
    inset: 0;
    margin: auto;
    z-index: 2;
    opacity: 0;
    pointer-events: none;

    div.editor {
      position: absolute;
      inset: 0;
      margin: auto;
    }
  }

  &.show-editor {
    div.modal-body {
      overflow: hidden;

      div.action-editor {
        pointer-events: all;
        opacity: 1;
      }
    }
  }

  div[for-strategy="SimpleStrategy"] {
    display: none;
  }

  div[for-strategy="NetworkTopologyStrategy"] {
    div.data-centers {
      margin-top: 10px;
      margin-bottom: 20px;

      div.data-center {
        background: #353535;
        padding: 8px 9px;
        border-radius: 7px;
        margin-bottom: 10px;
        font-size: 90%;
        display: flex;
        flex-direction: row;
        align-content: center;
        flex-wrap: nowrap;
        align-items: center;

        div.col-md-7 {
          white-space: nowrap;
          text-overflow: ellipsis;
          overflow: hidden;
        }

        div.col-md-5 {
          display: flex;
          flex-direction: row;
          flex-wrap: nowrap;
          align-content: center;
          align-items: center;
          justify-content: flex-start;

          div.range {
            width: 100%;
          }
        }
      }
    }
  }

  div.counter-table-clustering-keys-fields,
  div.counter-table-columns-fields,
  div.counter-table-options-fields,
  div.counter-table-partition-keys-fields,
  div.data-fields,
  div.data-udt-fields,
  div.standard-table-UDT-columns-fields,
  div.standard-table-clustering-keys-fields,
  div.standard-table-columns-fields,
  div.standard-table-options-fields,
  div.standard-table-partition-keys-fields {
    div.counter-table-clustering-key-field,
    div.counter-table-column-field,
    div.counter-table-option-field,
    div.counter-table-partition-key-field,
    div.data-field,
    div.data-udt-field,
    div.standard-table-UDT-column-field,
    div.standard-table-clustering-key-field,
    div.standard-table-column-field,
    div.standard-table-option-field,
    div.standard-table-partition-key-field {
      margin: 15px 0;
      height: 36px;
      display: flex;
      flex-direction: row;
      flex-wrap: nowrap;
      align-content: center;
      align-items: center;

      &.deleted {
        background: repeating-linear-gradient(45deg, rgba(244, 67, 54, 0.1), rgba(244, 67, 54, 0.1) 10px, transparent 10px, transparent 20px);
      }

      div.form-outline.data-name {
        margin-right: 4px;
        width: calc(100% - 4px);
      }

      div.form-outline.data-type {
        margin-left: 4px;
        width: calc(100% - 4px);
      }

      a[action="delete-standard-table-partition-key"],
      a[action="delete-standard-table-clustering-key"],
      a[action="delete-standard-table-column"],
      a[action="delete-standard-table-udt-column"],
      a[action="delete-standard-table-option"] {
        color: inherit;
        position: relative;
        top: 1px;
        width: 35px;
        height: 30px;
        left: 8px;

        ion-icon {
          position: absolute;
          inset: 0;
          margin: auto;
        }
      }

      a[action="delete-udt"],
      a[action="delete-counter-table-option"],
      a[action="undo-change"],
      a[action="delete-counter-table-partition-key"],
      a[action="delete-counter-table-clustering-key"],
      a[action="delete-counter-table-column"] {
        color: inherit;
        position: relative;
        top: 1px;
        width: 35px;
        height: 30px;
        left: 8px;

        ion-icon {
          position: absolute;
          inset: 0;
          margin: auto;
        }
      }

      &:not(:first-of-type) {
        margin-top: 20px;
      }
    }
  }

  a.addCounterTableClusteringKeyBtn,
  a.addCounterTableColumnBtn,
  a.addCounterTableOptionBtn,
  a.addCounterTablePartitionKeyBtn,
  a.addFieldBtn,
  a.addStandardTableClusteringKeyBtn,
  a.addStandardTableColumnsBtn,
  a.addStandardTableOptionBtn,
  a.addStandardTablePartitionKeyBtn,
  a.addStandardTableUDTColumnsBtn,
  a.hideCounterTableOptionsContainer,
  a.hideStandardTableOptionsContainer,
  a.showCounterTableOptionsContainer,
  a.showStandardTableOptionsContainer {
    display: flex;
    color: inherit;
    text-transform: capitalize;
    flex: {
      direction: row;
      wrap: nowrap;
    }
    align-items: center;

    ion-icon[name="plus"] {
      font-size: 171%;
    }
  }

  div.fields-badge-action {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-content: center;
    align-items: center;
    justify-content: space-between;
  }

  div.empty-counter-table-clustering-keys,
  div.empty-counter-table-columns,
  div.empty-counter-table-options,
  div.empty-counter-table-partition-keys,
  div.empty-fields,
  div.empty-standard-table-UDT-columns,
  div.empty-standard-table-clustering-keys,
  div.empty-standard-table-columns,
  div.empty-standard-table-options,
  div.empty-standard-table-partition-keys {
    background: #3b3b3b;
    border-radius: 7px;
    font-size: 85%;
    opacity: 0.7;
    width: fit-content;
    margin-left: 5px;
    padding: 1px 8px;
    margin-bottom: 29px;
    margin-top: 10px;
    @extend .no-select;

    &:not(.empty-fields) {
      margin-bottom: 34px;
    }

    span.no-udt,
    span.one-udt {
      display: none;
    }
  }

  div.input-group {
    div.input-group-text {
      &.counter-table-name-keyspace,
      &.standard-table-name-keyspace,
      &.table-name-keyspace,
      &.udt-name-keyspace {
        border-color: #4e4e4e;
        position: relative;
        height: 45px;

        &:after {
          content: '.';
        }

        div.keyspace-name {
          max-width: 200px;
          overflow: hidden;
          white-space: nowrap;
          text-overflow: ellipsis;
        }
      }
    }

    .invalid-feedback {
      margin-top: 0.1rem;
    }
  }

  a#counterTableCommentOptionUndoChanges,
  a#standardTableCommentOptionUndoChanges {
    color: inherit;
    position: relative;
    top: 1px;
    width: 30px;
    height: 30px;
    left: 8px;
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-content: center;
    align-items: center;
    justify-content: center;

    ion-icon {
      position: absolute;
      inset: 0;
      margin: auto;
      transform: translateX(-1px);
    }
  }
}

div.modal {
  div.modal-footer {
    display: block;

    div.float-left {
      float: left;
    }

    div.float-right {
      float: right;
    }
  }
}

div.modal#extraDataActions {
  div.editor-container {
    position: relative;
    width: 100%;
    height: 40px;
    margin-top: 10px;
    background: inherit;
    border-radius: 7px;
    overflow: hidden;
    background: #1e1e1e;

    &.truncate {
      height: 55px;
    }

    .editor {
      @include position();
    }
  }
}

div.modal#executeCQLFiles {
  div.modal-body {
    padding-top: 0;
    padding-bottom: 0;
  }

  div.cql-file {
    margin: 20px 0;

    div.sort-handler {
      cursor: grab;
      width: 25px;
      height: 25px;
      border-radius: 5px;
      position: relative;
      display: inline-block;
      vertical-align: top;
      transform: translateY(5px);

      ion-icon {
        font-size: 130%;
        position: absolute;
        inset: 0;
        margin: auto;
        transform: translateX(-1px) translateY(-1px);
      }
    }

    div.file-info {
      width: calc(100% - 76px);
      display: inline-block;
      margin: 0 5px;
      vertical-align: top;

      div.path {
        background: #383838;
        padding: 4px 7px;
        border-radius: 5px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        margin-bottom: 3px;
        direction: rtl;
        text-align: left;
      }

      div.metadata {
        opacity: 0.85;
      }
    }

    a.remove-cql-file {
      height: 25px;
      width: 25px;
      position: relative;
      display: inline-block;
      vertical-align: top;
      transform: translateY(5px);

      ion-icon {
        position: absolute;
        inset: 0;
        margin: auto;
        color: #d7d7d7;
      }
    }

    &.invalid {
      div.file-info {
        div.path {
          background: #4a2d32;
        }

        div.metadata {
          span {
            background: #4a2d32;
            color: #f9f9f9;
          }
        }
      }
    }
  }

  div.terminate-on-error {
    transform: scale(0.9) translateX(-21px);
    margin-bottom: 15px;
  }
}

div.add-buttons {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-content: center;
  align-items: center;
  justify-content: space-between;
  float: right;
}

.modal {
  overflow-y: scroll !important;
}

div.show-counter-table-options-container,
div.show-standard-table-options-container {
  height: 35px;
  width: 100%;
  position: relative;
  border-radius: 7px;
  overflow: hidden;

  a {
    position: absolute;
    inset: 0;
    margin: auto;
    border-radius: 7px;
    justify-content: center;

    ion-icon {
      font-size: 155% !important;
    }
  }
}

div.counter-table-options-sub-container,
div.standard-table-options-sub-container {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-content: center;
  align-items: center;

  a {
    height: 19px;
    width: 19px;
    position: relative;
    margin-left: 7px;

    ion-icon {
      position: absolute !important;
      inset: 0 !important;
      margin: auto !important;
      font-size: 155% !important;
      transition: transform 0.4s ease-in-out;
      transform: rotate(180deg);
    }

    &.show {
      ion-icon {
        transform: rotate(0deg);
        transition-delay: 0.25s;
      }
    }
  }
}

div.input-group-text {
  &.for-deletion,
  &.for-insertion,
  &.selection {
    border-color: #4e4e4e;
    position: relative;
    height: 36px;
    opacity: 0.9;
    font-size: 95%;

    &.for-actions,
    &.for-aggregate-functions,
    &.for-current-order,
    &.for-name,
    &.for-null-value,
    &.for-operators,
    &.for-type {
      background: #393939;
    }

    &.for-aggregate-functions {
      button.column-order-type {
        width: 85px;
        opacity: 0.8;
        color: gray;
        transition: all 0.15s ease-in-out;

        &:after {
          content: '';
          position: absolute;
          top: 1px;
          right: -1px;
          margin: auto;
          width: 8px;
          height: 8px;
          border-radius: 50%;
          box-shadow: 0 0 0 2px #343434;
          opacity: 0;
          transition: 0.15s ease-in-out;
        }

        &.active-order {
          opacity: 1;
          color: #4f4f4f;

          &:after {
            opacity: 1;
          }
        }

        ion-icon {
          font-size: 150%;
          margin-right: 1px;
        }
      }
    }

    &.for-operators {
      div[data-is-main-input="true"] {
        margin-right: -13px;
        background: #262626;
      }

      div.operators {
        height: 100%;
        transform: scale(0.87);
        transform-origin: right;
        font-family: 'Terminal', monospace;

        span {
          margin: 0 1px;
          border-radius: 5px;
          overflow: hidden;

          div.form-notch {
            display: none;
          }
        }

        button,
        label {
          box-shadow: none !important;
          text-shadow: none !important;
          width: 33px;
          text-align: center;
          vertical-align: middle;
          padding: 1px;
          line-height: 23px;
        }

        button.expand-range {
          height: 30.22px;
          position: relative;
          bottom: 2px;
          left: 1px;
          transition: all 0.1s ease-in-out;
          border-radius: 5px;

          ion-icon {
            font-size: 180%;
            transform: rotate(90deg);
            position: relative;
            left: 2px;
          }

          &:hover {
            left: 3px;
          }

          &.expanded {
            ion-icon {
              transform: rotate(-90deg);
              transition: transform 0.1s ease-in-out;
            }
          }
        }
      }
    }

    &.for-type {
      span.type-value.overflow {
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
      }
    }

    &.for-actions,
    &.for-null-value {
      padding-right: 1px;

      button {
        ion-icon {
          transform: translateY(-1px);
        }
      }

      l-ring-2 {
        position: absolute;
        inset: 0;
        margin: auto;
        background: rgba(59, 59, 59, 0.7);
        width: -webkit-fill-available;
        height: -webkit-fill-available;
        z-index: 2;
        transition: opacity 0.15s ease-in-out;
        opacity: 0;
        pointer-events: none;

        &.show {
          opacity: 1;
          pointer-events: all;
        }
      }
    }

    &.for-null-value {
      padding: 0 5px;
      transition: width 0.1s ease-in-out;

      button {
        transition: width 0.1s ease-in-out, opacity 0.1s ease-in-out;

        span.circle {
          width: 0;
          height: 10px;
          display: inline-block;
          border-radius: 50%;
          transition: opacity 0.1s ease-in-out 0.05s, width 0.1s ease-in-out 0s;
          opacity: 0;
        }

        &:hover {
          opacity: 0.9;
        }

        &.applied {
          opacity: 1;

          span.circle {
            width: 10px;
            opacity: 1;
          }
        }
      }
    }

    button {
      transform: scale(0.85);
    }

    ul.dropdown-menu {
      left: 10px !important;
      top: -2px !important;
      opacity: 1 !important;
    }

    span.actions,
    span.name,
    span.operator,
    span.type {
      background: #414141;
      margin-left: -13px;
      height: 36px;
      position: relative;
      display: flex;
      flex-direction: row;
      flex-wrap: nowrap;
      align-content: center;
      align-items: center;
      padding: 0 9px;
      margin-right: 10px;

      &.actions {
        margin-right: 2px;
      }

      span {
        text-shadow: none;
        font-size: 95%;
        margin-right: 3px;
      }

      ion-icon {
        position: absolute;
        top: 0;
        bottom: 0;
        right: -10px;
        margin: auto;
        font-size: 180%;
        transform: rotate(180deg);
        color: #393939;
      }
    }
  }
}

a.jstree-anchor.show-range-operators {
  div[data-is-main-input="true"] {
    display: none;
  }

  div.input-group-text.for-operators {
    div.btn-group.operators {
      transform-origin: left;
      margin-left: 3.67px !important;

      button.expand-range {
        left: 4px !important;

        ion-icon {
          transition: transform 0.1s ease-in-out;
          transform: rotate(-90deg);
        }
      }
    }
  }
}

div.input-group-text.for-not-ignoring {
  border-color: transparent;
  position: relative;
  height: 36px;
  opacity: 0.9;
  font-size: 95%;
  margin-right: 5px;
  border-radius: 5px;

  div.not-ignore-checkbox {
    position: absolute;
    inset: 0;
    margin: auto;
    width: 20px;
    height: 20px;
    border-radius: 5px;
    box-shadow: inset 0 0 0 1px #696969;
    cursor: pointer;

    div.circle {
      position: absolute;
      inset: 0;
      margin: auto;
      width: 60%;
      height: 60%;
      border-radius: 3px;
      filter: brightness(1.4);
      transform: scale(0);
      transition: all 0.1s ease-in-out;
    }

    &[data-status="true"] {
      div.circle {
        transform: scale(1);
      }
    }

    &.mandatory {
      pointer-events: none;
      opacity: 0.5;
    }
  }

  div.pk-type-icon {
    position: absolute;
    inset: 0;
    margin: auto;
    background: #262626;
    pointer-events: none;
    @extend .no-select;

    img {
      position: absolute;
      inset: 0;
      margin: auto;
      height: -webkit-fill-available;
      transform: scale(0.75) translateX(-7px);
    }
  }
}

div[action="insert-row"],
div[action="delete-row-column"],
div[action="select-row"] {
  margin: -30px -16px -16px;
  padding: 5px 0;

  div.table-fields-tree {
    background: inherit;

    a.jstree-anchor {
      width: calc(100% - 40px);
      height: 45px;
      bottom: 8px;
      background: transparent !important;
      cursor: default;

      &:after {
        content: '';
        opacity: 0;
        position: absolute;
        top: 0;
        bottom: 0;
        left: 34px;
        margin: auto;
        width: 3px;
        height: calc(100% - 10px);
        background: #dc4c64;
        border-radius: 100px;
        box-shadow: 3px 0 13px 0 #dc4c64;
        pointer-events: none;
        transition: opacity 0.2s ease-in-out;
      }

      button.column-order-type {
        transition: box-shadow 0.15s ease-in-out;
      }

      &.invalid {
        &:after {
          opacity: 1;
        }

        &.invalid-order {
          button.column-order-type {
            box-shadow: inset 0 0 20px 0 #dc4c64 !important;
          }
        }
      }
    }

    ul.jstree-container-ul {
      padding-top: 5px;
    }

    div.input-group {
      top: 4px;
      padding-left: 3px;

      div.focus-area {
        background: transparent;
        position: absolute;
        inset: 0;
        margin: auto;
        cursor: text;

        &.checkbox {
          cursor: pointer;
        }

        &.disabled {
          pointer-events: none;
        }
      }
    }
  }

  div.form-check.form-switch {
    position: relative;
    width: 100%;
    padding: 0;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-content: center;
    justify-content: center;
    align-items: center;

    input {
      transform: translateY(-2px);
    }

    div.form-notch {
      height: calc(100% + 2px);
      width: 100%;
      pointer-events: none;
      border: 1px #4e4e4e solid;
      position: absolute;
      inset: 0;
      margin: auto;
    }
  }

  label.form-check-label.uppercase {
    text-transform: uppercase;
    font-family: 'Terminal', monospace;
    width: 50px;
  }

  div.row.flex {
    padding: 0 10px;
    margin-top: 5px;
    @extend .no-select;

    &.data-select-aggregate-functions,
    &.data-ttl-row {
      margin-bottom: 17px;

      div.form-check.form-check-inline {
        background: rgba(201, 201, 201, 0.1);
        border-radius: 20px;
        padding: 0 7px;
        margin: 0 1px;
        cursor: pointer;

        &:first-of-type {
          margin-left: 10px;
        }

        input {
          margin-left: 0;
          transform: translateY(1px) translateX(-4px) scale(0.85);
          margin-right: 0 !important;
        }
      }
    }

    &.data-insertion-timestamp-row {
      margin-bottom: 17px;
    }

    &.consistency-level-row {
      margin-bottom: 10px;
    }

    &.default-omitted-columns-value-row {
      margin-bottom: 10px;
      margin-top: 18px;
      display: none;
    }
  }

  input.has-clear-button {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-right: 35px;
  }

  input[type="checkbox"][role="switch"] {
    margin-left: -25px;
  }
}

ul.dropdown-menu {
  &.for-insertion-actions,
  &.for-selection-actions {
    a.dropdown-item {
      display: flex;
      flex-direction: row;
      flex-wrap: nowrap;
      align-content: center;
      align-items: center;
      font-size: 90%;
      text-shadow: none;

      ion-icon {
        font-size: 115%;
        margin-right: 5px;
        transform: translateY(-1px);
      }
    }
  }
}

div.row.for-duration {
  div.input-group-text {
    border-color: #4e4e4e;
    position: relative;
    background: #434343;
    height: 36px;
    font-size: 105%;
  }

  &:not(:last-of-type) {
    margin-bottom: 10px;
    margin-top: 5px;
  }

  &:last-of-type {
    margin-top: 15px;
    margin-bottom: 5px;
  }

  div.col-md-8 {
    text-align: right;
  }
}

a.jstree-anchor {
  &.ignored {
    .ignored-applied {
      pointer-events: none;
      opacity: 0.5;
    }
  }

  .null-applied {
    pointer-events: none;
    opacity: 0.5;
  }
}

div.table-fields-tree.children-transform {
  ul.jstree-children {
    transform: translateX(7px);
    width: calc(100% - 7px);
  }
}

ul.dropdown-menu.top-margin {
  margin-top: 25px !important;
  width: calc(100% - 10px) !important;

  &.less {
    margin-top: 12px !important;
  }
}

.badge-dark-1 {
  background-color: #595353;
}

.badge-mandatory {
  opacity: 0.85;
  transform: translateY(-2px);
}

div.extra-paths-input[for-form="toolExtraPaths"] {
  display: none;
}

div.form-outline[form="toolExtraPaths"] {
  margin-bottom: 8px;

  input {
    width: 100%;
    position: relative;
    margin-bottom: 0 !important;
  }

  input,
  label {
    z-index: 2;
  }

  div.form-notch-middle {
    position: relative !important;

    &:after,
    &:before {
      content: '';
      position: absolute;
      top: 0;
      bottom: 0;
      left: -1px;
      margin: auto;
      width: 2px;
      height: calc(100% - 0px);
      background: #262626;
    }

    &:after {
      right: -1px;
      left: auto;
    }
  }
}

.block-display {
  display: block;
}

.form-outline {
  text-shadow: none;
}

div[data-is-main-input="true"] {
  &.disabled {
    filter: grayscale(1);
    pointer-events: none;

    &.form-switch {
      input,
      label {
        opacity: 0.5;
      }
    }

    div.form-notch {
      filter: brightness(0.7);
    }
  }
}

div[action="delete-row-column"],
div[action="select-row"] {
  div.table-fields-tree {
    position: relative;

    &:before {
      content: '';
      position: absolute;
      bottom: 0;
      left: 16px;
      margin: auto;
      background: #262626;
      width: 5px;
      height: 31px;
      z-index: 1;
    }

    &:after {
      content: '';
      position: absolute;
      bottom: -2px;
      right: 0;
      left: 0;
      margin: auto;
      height: 8px;
      background: #262626;
      z-index: -1;
    }
  }
}

a.jstree-anchor {
  &.show-hidden-operators {
    div[data-is-main-input="true"],
    div.input-group-text.for-actions {
      display: none !important;
    }

    div.btn-group.operators {
      margin-left: 4px !important;
      transform-origin: left !important;
    }
  }

  &.deleted {
    div.input-group {
      background: repeating-linear-gradient(45deg, rgba(244, 67, 54, 0.2), rgba(244, 67, 54, 0.2) 10px, transparent 10px, transparent 20px);
    }
  }
}

div#tableFieldsRegularColumnsTreeDeleteAction {
  a[action="delete-column"] {
    width: 20px;
    height: 20px;
    transition: all 0.15s ease-in-out;
    color: rgba(255, 255, 255, 0.9) !important;

    ion-icon {
      position: absolute;
      inset: 0;
      margin: auto;
      font-size: 120%;
    }

    &:hover {
      opacity: 0.7;
    }
  }
}

div.form-outline.is-empty {
  label.form-label {
    color: #dc9e4c !important;
  }

  div.form-notch-leading,
  div.form-notch-middle,
  div.form-notch-trailing {
    border-color: #dc9e4c !important;
  }
}

div.modal#rightClickActionsMetadata {
  div.modal-body {
    div[action] {
      div.types-of-transactions {
        background: #202023;
        border-radius: 10px;
        box-shadow: 0 0 0 5px #262626;
        width: calc(100% - 20px);
        margin: 0 10px 10px;

        div.sections {
          display: flex;
          flex-direction: row;
          flex-wrap: nowrap;
          justify-content: space-around;
          align-items: center;
          align-content: center;

          div.section {
            border-radius: 5px;
            width: 100%;

            ion-icon[name="external-link"] {
              margin-left: 5px;
              position: relative;
              bottom: 1px;
            }

            div.btn {
              width: 100%;
              text: {
                align: center;
                transform: capitalize;
              }
              padding-left: 5px;
              color: inherit;
              transition: opacity 0.2s ease-in-out;
              opacity: 0.5;

              &:hover {
                opacity: 0.8;
              }

              &.active {
                opacity: 1;
              }

              &.invalid:after {
                content: '';
                width: 7px;
                height: 7px;
                background: #bf334b;
                border-radius: 50%;
                display: inline-block;
                position: relative;
                bottom: 5px;
                left: 2px;
              }
            }
          }
        }
      }
    }
  }
}

input[type="radio"] {
  &[name="lwtDeleteOptions"],
  &[name="selectAllowFilteringOptions"],
  &[name="lwtInsertOptions"] {
    transform: scale(0.85) translateY(-1px);
    transform-origin: left;
    margin-right: 0;
  }
}

div#tableFieldsNonPKColumnsDeleteAction,
div#tableFieldsNonPKColumnsSelectAction {
  width: calc(100% - 30px);
  margin-left: 10px;

  div.columns {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-content: flex-start;
    justify-content: flex-start;
    align-items: flex-start;
    margin-bottom: 15px;
    max-height: 260px;
    overflow-y: scroll;
    @include scrollbar(#2c2c2c, #262626);

    div.column {
      background: rgba(255, 255, 255, 0.08);
      display: flex;
      flex-direction: row;
      flex-wrap: nowrap;
      align-content: center;
      align-items: flex-start;
      justify-content: flex-start;
      margin-right: 10px;
      margin-bottom: 5px;
      padding-left: 5px;
      padding-right: 5px;
      color: inherit;
      text-transform: none;
      transition: 0.2s opacity ease-in-out;

      &.deleted {
        &:after {
          content: '';
          position: absolute;
          inset: 0;
          margin: auto;
          pointer-events: none;
          background: repeating-linear-gradient(45deg, rgba(244, 67, 54, 0.15), rgba(244, 67, 54, 0.15) 10px, transparent 10px, transparent 20px);
        }
      }

      &:after {
        content: '';
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        margin: auto;
        height: 0;
        transition: height 0.15s ease-in-out;
        border-radius: 50px;
      }

      ion-icon {
        transition: color 0.15s ease-in-out;
      }

      &.selected {
        &:after {
          height: 1px;
        }
      }

      ion-icon {
        vertical-align: middle;
        position: relative;
        top: 2px;
        opacity: 0.9;
      }

      div.name {
        font-weight: 600;
        position: relative;
        top: 1px;
      }

      div.is-static,
      div.type {
        font-size: 95%;
        margin-left: 5px;
        margin-right: 5px;
        background: rgba(255, 255, 255, 0.1);
        padding: 2px 4px;
        border-radius: 5px;
        position: relative;
        transform: scale(0.95);
      }

      div.is-static {
        margin-right: 0;
        margin-left: 0;
        box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.2);
        background: transparent;
        color: rgba(255, 255, 255, 0.8);
      }

      &:hover {
        opacity: 0.8;
      }
    }
  }
}

div#noColumnMatched {
  background: rgba(255, 255, 255, 0.08);
  padding: 5px;
  font-size: 90%;
  border-radius: 5px;
  margin-bottom: 24px;
  display: none;
}

div.allow-filtering-hint,
div.axonops-integration-status-hint,
div.consistency-level-enhanced-console-info,
div.consistency-level-warning-delete,
div.consistency-level-warning-insert,
div.delete-columns-hint,
div.general-hint,
div.in-operator-error,
div.lwt-hint,
div.lwt-hint-insert,
div.non-pk-columns-warning {
  background: rgba(123, 181, 255, 0.1);
  font-size: 85%;
  line-height: 19px;
  padding: 4px 5px;
  border-radius: 5px;
  cursor: default;
  width: calc(100% - 20px);
  margin-left: 10px;
  margin-top: 15px;
  margin-bottom: 5px;
  display: none;

  &.delete-columns-hint {
    display: block;
    margin-top: 0;
    margin-bottom: 10px;
  }

  &.delete-columns-hint {
    width: calc(100% - 30px);
  }

  &.axonops-integration-status-hint {
    margin: 0;
    width: 100%;
  }

  ion-icon {
    font-size: 150%;
    bottom: 1px;
    margin-right: -1px;
  }

  &.axonops-integration-status-hint,
  &.consistency-level-warning-delete,
  &.consistency-level-warning-insert,
  &.non-pk-columns-warning {
    background: rgba(255, 234, 123, 0.1);
  }

  &.in-operator-error {
    background: rgba(255,122,122,.1);
  }

  &.consistency-level-enhanced-console-info {
    display: block;
    padding: 0;
    margin: 2px 0 5px;
    width: fit-content;
    padding-right: 2px;

    ion-icon {
      bottom: 1px;
      left: 3px;
    }
  }
}

ion-icon.error-warning {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  transform: translateX(-6px);
  font-size: 120%;
  color: #dc4c64;
  cursor: help;
  transition: opacity 0.2s;
  opacity: 0;
  pointer-events: none;

  &.show {
    opacity: 1;
    pointer-events: all;
  }
}

table.lwtConsistencyLevelTooltipTable {
  background: #212121;
  border-radius: 10px;
  overflow: hidden;
  font-size: 14px;

  * {
    font-style: normal;
    font-weight: 400;
  }

  td,
  th {
    padding: 7px;
  }
}

a.jstree-anchor {
  div.operators-dropdown-focusarea {
    position: absolute;
    inset: 0;
    margin: auto;
    pointer-events: all;
    cursor: pointer;
  }

  &.unavailable {
    div.operators-dropdown-focusarea {
      pointer-events: none;
      cursor: default;
    }

    div.form-outline.operators-dropdown {
      ion-icon[name="arrow-down"] {
        opacity: 0.5;
      }
    }
  }
}

div#tableFieldsRegularColumnsTreeDeleteAction,
div#tableFieldsRegularColumnsTreeSelectAction {
  z-index: 4;
}

div#tableFieldsCollectionColumnsTreeDeleteAction,
div#tableFieldsCollectionColumnsTreeSelectAction {
  z-index: 3;
}

div#tableFieldsUDTColumnsTreeDeleteAction,
div#tableFieldsUDTColumnsTreeSelectAction {
  z-index: 2;
}

div#tableFieldsPrimaryKeyTreeDeleteAction,
div#tableFieldsPrimaryKeyTreeSelectAction {
  z-index: 1;
}

a[data-operator-id].disabled {
  color: gray !important;
}

ul.dropdown-menu.operators-dropdown {
  font-family: 'Terminal';
}

div.input-group {
  div.column-aggregate-functions {
    position: relative;
    background: #414141;
  }
}

button.aggregate-functions-btn {
  &:after {
    content: '';
    position: absolute;
    top: 1px;
    right: -1px;
    margin: auto;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    box-shadow: 0 0 0 2px #343434;
    opacity: 0;
    transition: 0.15s ease-in-out;
  }

  &.active-function {
    &:after {
      opacity: 1;
    }
  }
}

.for-axonops-url {
  border-color: #4e4e4e;
  height: calc(1.6em + 1rem + 2px + 1px) !important;
}

span.link.general {
  span.content {
    text-decoration: underline;
  }
  opacity: 1;
  cursor: pointer;
  transition: opacity 0.2s ease-in-out;

  &:hover {
    opacity: 0.9;
  }

  ion-icon {
    vertical-align: middle;
    font-size: 100%;
    margin: 0 -5px 0 -2px;
  }
}

div.general-hint.axonops-integration {
  display: block;
  margin-top: 0;
  margin-bottom: 20px;
  margin-left: 0;
  width: 100%;
}

div.modal-section[section="axonops-integration"] {
  div.axonops-self-host {
    display: none;
  }
}

div.modal#generateInsertStatements {
  div.modal-body {
    min-height: 500px;

    div.statements-editor {
      position: absolute;
      inset: 0;
      margin: auto;

      div.editor {
        @include position();
      }
    }
  }
}

div.modal#cqlSnippets {
  div.modal-dialog {
    max-width: 80%;
  }

  div.modal-body {
    padding: 0;
  }

  span.badge.current-scope {
    position: relative;
    top: 2px;
    margin-left: 10px;
    text-transform: none;
    font-weight: 400;
    color: #000;
    opacity: 0.85;
    height: 26px;
    line-height: 20px;

    span {
      img {
        height: 18px;
        vertical-align: middle;
        filter: invert(1);
        position: relative;
        top: -1px;
      }
    }

    ion-icon {
      transform: rotate(90deg) translateX(2px);
      padding: 0 3px;
    }
  }

  div.snippets-container {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: stretch;
    justify-content: flex-start;
    height: 595px;
    align-content: flex-start;
  }

  div.side {
    position: relative;

    &.objects-treeview {
      width: 21%;

      div.loading,
      div.snippets-objects-treeview {
        background: #17181a;
        position: relative;
        height: calc(100% - 20px);
        max-height: calc(100% - 20px);
        overflow-y: scroll;
        margin: 10px;
        border-radius: 7px;
        padding: 5px;
      }

      div.snippets-objects-treeview {
        transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
      }

      div.loading {
        position: absolute;
        top: 0;
        bottom: auto;
        right: 0;
        left: 0;
        margin: 10px;
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.15s ease-in-out;
        z-index: 1;

        div.sub-content {
          position: absolute;
          top: 0;
          bottom: 0;
          right: 0;
          left: 0;
          margin: auto;
          opacity: 0.7;
          height: 40%;
        }
      }

      div.treeview-actions {
        @include position(absolute, 4px, auto, 24px, auto);
        width: 60px;
        height: 30px;
        display: flex;
        flex: {
          direction: row;
          wrap: nowrap;
        }
        align-items: center;
        justify-content: space-evenly;
        background: #2c2c2c;
        border-radius: 8px;
        opacity: 1;
        transition: opacity 0.2s ease-in-out;
        transition-delay: 0.25s;

        div.action {
          position: relative;
          bottom: 2px;

          div.btn {
            transition: opacity 0.2s ease-in-out;
            opacity: 0.6;

            ion-icon {
              font-size: 130%;
              color: #e3e3e3;
            }

            &:hover {
              opacity: 0.8;
            }

            &.disabled {
              pointer-events: none;

              ion-icon {
                color: #6c6c6c;
              }
            }
          }
        }
      }

      &.loading {
        div.treeview-actions {
          opacity: 0;
          transition-delay: 0s;
          pointer-events: none;
        }

        div.loading {
          opacity: 1;
          pointer-events: all;
        }
      }

      &.searching-in-tree {
        div.snippets-objects-treeview {
          padding-top: 80px;
          margin-top: -90px;
        }
      }
    }

    &.snippets-list {
      width: 28%;

      div.cql-snippets {
        background: #17181a;
        position: relative;
        height: calc(100% - 20px);
        margin: 10px;
        border-radius: 7px;
        padding: 0;
        margin-left: 2px;

        div.snippets-list-header {
          height: 85px;
          padding: 5px 10px 0;

          div.sides-actions {
            display: flex;
            flex-direction: row;
            flex-wrap: nowrap;
            align-content: center;
            align-items: center;
            justify-content: space-between;

            div.actions {
              &.left-side {
                transform: scale(0.93) translateX(-7px);

                a[action] {
                  color: inherit;
                  background: #313131;

                  ion-icon {
                    font-size: 135%;
                    transform: translateY(-2px) translateX(1px);
                  }
                }
              }

              &.right-side {
                display: flex;
                flex-direction: row;
                flex-wrap: nowrap;
                align-content: center;
                align-items: stretch;
                // width: 50px;
                width: 25px;
                height: 25px;

                div.action {
                  width: 100%;
                  position: relative;
                  height: 100%;

                  &[action="sort"] {
                    left: -10px;
                  }

                  button {
                    position: absolute;
                    inset: 0;
                    margin: auto;
                    color: inherit;
                    transition: opacity 0.15s ease-in-out;

                    &.hide {
                      opacity: 0;
                      pointer-events: none;
                    }

                    ion-icon {
                      position: absolute;
                      inset: 0;
                      margin: auto;
                      font-size: 135%;
                    }
                  }
                }
              }
            }
          }

          div.search-snippet {
            margin-top: 12px;
          }
        }

        div.snippets {
          height: calc(100% - 90px);
          overflow-y: scroll;
          margin-top: 5px;
          position: relative;

          div.snippet {
            &:not(:last-of-type) {
              margin-bottom: 10px;
            }
            display: flex;
            flex-direction: row;
            flex-wrap: nowrap;
            align-content: center;
            align-items: stretch;
            justify-content: flex-start;
            height: 85px;
            font-size: 90%;

            div.checkbox {
              width: 25px;
              margin-left: 7px;
              display: flex;
              flex-direction: column;
              flex-wrap: nowrap;
              align-content: center;
              align-items: center;
              justify-content: center;
            }

            div.content {
              background: #262626;
              width: calc(100% - 69px);
              border-radius: 7px;
              padding: 2px 7px;
              transition: box-shadow 0.1s ease-in-out;
              cursor: pointer;
              position: relative;

              &:after {
                content: '';
                position: absolute;
                inset: 0;
                margin: auto;
                pointer-events: all;
              }

              &:hover {
                box-shadow: inset 0 0 0 1px #6f6f6f;
              }

              div.snippet-name {
                font-weight: 500;
                white-space: nowrap;
                width: 100%;
                overflow: hidden;
                text-overflow: ellipsis;
              }

              div.snippet-description {
                font-weight: 300;
                font-size: 95%;
                width: 100%;
                white-space: nowrap;
                overflow: hidden;
                text-overflow: ellipsis;
              }

              div.snippet-tags {
                width: 106%;
                white-space: nowrap;
                overflow: hidden;
                text-overflow: ellipsis;
                height: 21px;
                transform: scale(0.9) translateX(-18px);
                margin-top: 4px;

                div.tag {
                  background: #47484b;
                  height: 21px;
                  width: fit-content;
                  border-radius: 5px;
                  line-height: 21px;
                  position: relative;
                  display: inline-block;
                  overflow: hidden;
                  padding: 0 3px;
                  @extend .no-select;

                  ion-icon[name="tag"] {
                    vertical-align: middle;
                    position: relative;
                    bottom: 1px;
                    margin-right: 3px;
                  }

                  &:not(:last-of-type) {
                    margin-right: 5px;
                  }
                }
              }
            }

            div.actions {
              width: 30px;
              display: flex;
              flex-direction: column;
              flex-wrap: nowrap;
              align-content: center;
              align-items: center;
              justify-content: center;
              margin-right: 7px;

              div.action {
                width: 26px;
                height: 26px;
                text-align: center;
                border-radius: 50%;
                position: relative;
                overflow: hidden;

                button {
                  position: absolute;
                  inset: 0;
                  margin: auto;
                  text-align: center;
                  color: inherit;
                  opacity: 0.8;

                  ion-icon {
                    position: absolute;
                    inset: 0;
                    margin: auto;
                    font-size: 145%;
                  }
                }
              }
            }

            &.active {
              div.content {
                box-shadow: inset 0 0 0 2px #6f6f6f;
              }
            }
          }

          div.empty-snippets {
            position: absolute;
            inset: 0;
            margin: auto;
            background: #17181a;
            border-radius: 7px;
            opacity: 0;
            pointer-events: none;

            div.sub-content {
              position: absolute;
              inset: 0;
              margin: auto;
              height: fit-content;
              width: fit-content;
              text-align: center;
              opacity: 0;
              transition: opacity 0.15s ease-in-out;
              transition-delay: 0.15s;

              ion-icon {
                font-size: 450%;
              }

              div.message {
                margin-top: 15px;
                font-size: 90%;
                opacity: 0;
                pointer-events: none;

                &.show {
                  opacity: 1;
                  transition: opacity 0.1s ease-in-out;
                }
              }

              div.loading {
                position: absolute;
                right: 0;
                left: 0;
                margin: auto;
                transform: translateY(-13px);
                opacity: 0;
                pointer-events: none;

                &.show {
                  opacity: 1;
                  transition: opacity 0.1s ease-in-out;
                }
              }
            }

            &.show {
              opacity: 1;
              pointer-events: all;
              transition: opacity 0.1s ease-in-out;

              div.sub-content {
                opacity: 0.6;
              }
            }
          }
        }

        div.empty {
          position: absolute;
          inset: 0;
          margin: auto;
          background: #17181a;
          border-radius: 7px;
          transition: opacity 0.13s ease-in-out;
          opacity: 0;
          pointer-events: none;

          div.sub-content {
            position: absolute;
            inset: 0;
            margin: auto;
            height: fit-content;
            width: fit-content;
            text-align: center;
            opacity: 0;
            transition: opacity 0.15s ease-in-out;
            transition-delay: 0.15s;

            ion-icon {
              font-size: 450%;
            }

            div.message {
              margin-top: 15px;
              font-size: 90%;
            }
          }

          &.show {
            opacity: 1;
            pointer-events: all;

            div.sub-content {
              opacity: 0.6;
            }
          }
        }
      }
    }

    &.snippet-editor {
      width: 51%;

      div.cql-snippet-editor {
        position: relative;
        height: calc(100% - 20px);
        margin: 10px;
        border-radius: 7px;
        padding: 5px;
        margin-left: 2px;

        div.snippet-metadata {
          background: #17181a;
          margin-bottom: 5px;
          padding: 5px;
          border-radius: 7px;
          height: 125px;

          div.row {
            &:not(.snippet-tags) {
              margin-bottom: 10px;
            }

            &.snippet-tags {
              font-size: 85%;
              margin-top: -1px;
              height: 25px;
              line-height: 25px;

              div.col-12 {
                display: flex;
                flex-direction: row;
                flex-wrap: nowrap;
                align-content: center;
                align-items: flex-start;
                justify-content: flex-start;

                div.added-tags {
                  max-width: calc(100% - 100px);
                  display: inline-block;
                  white-space: nowrap;
                  overflow-x: scroll;
                  padding-bottom: 3px;

                  &::-webkit-scrollbar {
                    height: 4px !important;
                  }

                  div.tag {
                    background: #373738;
                    height: 21px;
                    width: fit-content;
                    border-radius: 5px;
                    line-height: 21px;
                    position: relative;
                    display: inline-block;
                    overflow: hidden;
                    padding: 0 3px;

                    &:not(:first-of-type) {
                      margin-left: 5px;
                    }

                    div.btn {
                      color: inherit;
                      width: 100%;
                      height: 100%;
                      display: flex;
                      flex-flow: row;
                      align-items: center;
                      align-content: center;
                      text-transform: none;

                      ion-icon {
                        &[name="close"] {
                          position: absolute;
                          top: 0;
                          bottom: 0;
                          left: 0;
                          margin: auto;
                          font-size: 170%;
                          transform: translate(-3px, 1px);
                          opacity: 0;
                        }

                        &[name="tag"] {
                          margin-right: 3px;
                          transition: opacity 0.2s ease-in-out;
                        }
                      }

                      &:hover {
                        ion-icon {
                          &[name="close"] {
                            opacity: 1;
                            transition: opacity 0.2s ease-in-out;
                          }

                          &[name="tag"] {
                            opacity: 0;
                            transition-duration: 0s;
                          }
                        }
                      }
                    }
                  }
                }

                div.add-tag {
                  width: 90px;
                  height: 25px;
                  display: flex;
                  transform: translateY(-2px);

                  div.input-group-text {
                    background: #373738;
                    height: 100%;
                    width: 30px;
                    position: relative;
                    border-color: #4e4e4e;

                    div.btn {
                      position: absolute;
                      inset: 0;
                      margin: auto;
                      color: inherit;

                      ion-icon {
                        position: absolute;
                        inset: 0;
                        margin: auto;
                        font-size: 150%;
                      }
                    }
                  }

                  input {
                    height: 100%;
                  }

                  label {
                    padding-top: 3px;
                  }
                }
              }
            }
          }

          div.form-outline {
            line-height: 20px;
          }
        }

        div.snippet-editor-container {
          height: calc(100% - 168px);
          background: #17181a;
          border-radius: 7px;
          overflow: hidden;
        }

        div.editor-footer {
          height: 35px;
          display: flex;
          flex-direction: row;
          flex-wrap: nowrap;
          align-items: center;
          justify-content: space-between;
          margin-top: 7px;
          padding: 7px;
          background: #1e1e1e;
          border-radius: 7px;

          div.clear-inputs {
            transform-origin: left;
            transform: scale(0.85);

            button {
              ion-icon {
                font-size: 138%;
                margin-right: 1px;
                transform: translateY(-1px);
              }
            }
          }

          div.destructive-keywords-warning {
            background: rgba(220, 76, 100, 0.35);
            border-radius: 5px;
            padding: 0 5px;
            font-size: 85%;
            display: none;

            ion-icon {
              color: #dc4c64;
              font-size: 133%;
              vertical-align: middle;
              position: relative;
              top: -1px;
              opacity: 0.8;
            }
          }
        }
      }
    }
  }
}

div#searchConnections {
  div.modal-dialog {
    top: 50px;
  }

  div.modal-body {
    padding: 10px;
  }

  div.search-input {
    .loading-spinner {
      position: absolute;
      top: 0;
      bottom: 0;
      right: 0;
      margin: auto;
      transform: translateX(-9px);
      opacity: 0;
    }

    ion-icon {
      transition: opacity 0.15s ease-in-out;
      opacity: 1;
    }

    &.loading {
      .loading-spinner {
        transition: opacity 0.15s ease-in-out;
        opacity: 1;
      }

      ion-icon {
        transition-delay: 0s;
        opacity: 0;
      }
    }
  }

  div.search-result {
    margin-top: 35px;
    max-height: 500px;
    overflow-y: scroll;

    div.result-connection {
      background: #201f23;
      border-radius: 7px;
      width: calc(100% - 10px);
      padding: 7px 10px;
      position: relative;

      div.header {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
        align-content: center;

        div.name {
          font-weight: 500;
          font-size: 95%;
        }

        div.workspace {
          height: 25px;
          border-radius: 5px;
          margin-left: 6px;
          vertical-align: middle;
          display: flex;
          flex-direction: row;
          flex-wrap: nowrap;
          align-content: center;
          align-items: center;
          padding: 0 5px;
          transform-origin: left;
          transform: scale(0.75) translateY(1px);
          background: #b33e3e;
        }
      }

      div.connection-info {
        margin-top: 5px;
        width: fit-content;
        opacity: 0.9;
        font-size: 75%;
        font-weight: 300;
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: flex-start;
        align-items: flex-start;
        margin-bottom: 5px;

        div.info {
          background: #2c2c2c;
          border-radius: 5px;
          overflow: hidden;
          margin: 0 7px 0 0;
          width: fit-content;
          padding-right: 10px;
          display: flex;
          flex: {
            direction: row;
            wrap: nowrap;
          }
          justify-content: flex-start;
          align-items: center;
          height: 25px;
          white-space: nowrap;

          div.title {
            position: relative;
            top: 2px;
            text-transform: capitalize;
            margin-right: 5px;
            background: rgba(255, 255, 255, 0.1);
            padding: 0 7px 0 5px;
            @extend .no-select;

            ion-icon {
              font-size: 165%;
              @include position(absolute, 2px, 0, -9px, auto);
              color: #2c2c2c;
              transform: scaleX(-1);
            }
          }

          &[info="host"] {
            div.text {
              max-width: 235px;
              overflow: hidden;
              text-overflow: ellipsis;
            }
          }
        }
      }

      button {
        position: absolute;
        inset: 0;
        margin: auto;
        color: inherit;

        ion-icon {
          position: absolute;
          right: 0;
          top: 0;
          bottom: 0;
          margin: auto;
          transform: rotate(-90deg) translateY(-5px);
          opacity: 0;
          font-size: 250%;
          transition: all 0.15s ease-in-out;
        }

        &:hover {
          ion-icon {
            transform: rotate(-90deg) translateY(0px);
            opacity: 0.85;
          }
        }
      }

      &:not(:first-of-type) {
        margin-top: 15px;
      }
    }
  }
}

div#rightClickActionsMetadata {
  div.modal-body {
    max-height: 595px;
    overflow-y: scroll;
  }
}
