.jnpf-basic-portal {
  .components-menu {
    :deep(.components-item) {
      padding: 0 25px 0 20px;
      line-height: 35px;
    }
  }

  .portal-card-box {
    display: flex;
    flex-direction: column;
    height: 100%;

    .ant-card-head {
      height: 55px;
      padding: unset;
      margin-bottom: unset;

      .ant-card-head-wrapper {
        height: 100%;

        .ant-card-head-title {
          height: 100%;
          padding: unset;
        }
      }
    }

    .portal-common-title {
      display: flex;
      align-items: center;
      justify-content: space-between;
      width: 100%;
      height: 100%;
      padding: 0 15px;
      overflow: hidden;
      font-size: 16px;

      .title {
        display: flex;
        flex: 1;
        align-items: center;
        overflow: hidden;

        i {
          font-size: 18px;
        }

        span {
          padding-left: 5px;
          overflow: hidden;
          text-overflow: ellipsis;
          white-space: nowrap;
        }
      }

      .button {
        max-width: 100px;
        padding: unset;
        padding-left: 10px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
      }
    }

    .ant-card-body {
      flex: 1;
      width: 100%;
      padding: unset;
      overflow: hidden;
    }

    .portal-card-timeline {
      padding: 15px 20px;
      overflow: auto !important;
    }

    .portal-card-rankList {
      :hover {
        cursor: pointer;
      }

      .rank-box {
        line-height: 35px;

        .rank-box-span {
          display: inline-block;
          width: 24px;
          height: 24px;
          line-height: 24px;
          color: var(--component-background);
          text-align: center;
          background-color: rgb(24 144 255 / 39%);
          border-radius: 50%;
          opacity: 0.3;
        }

        img {
          width: 35px;
          height: 35px;
          margin: 0 auto;
        }
      }

      .cup-medal-box {
        display: flex;
        flex-direction: column;
        height: 100%;

        .cup-top-box {
          display: flex;
          align-items: flex-end;
          justify-content: center;
          padding: 10px 0 15px;
          overflow: hidden;

          .cup-box {
            display: flex;
            flex-direction: column;
            align-items: center;

            img {
              z-index: 20;
              width: 46px;
              margin-bottom: -6px;
            }

            .top-bg {
              width: 230px;
              height: 0;
              border-right: 10px solid transparent;
              border-bottom: 9px solid rgb(239 233 225 / 39%);
              border-left: 20px solid transparent;
            }

            .cup-box-content {
              display: flex;
              flex-direction: column;
              align-items: center;
              justify-content: center;
              width: 230px;
              height: 81px;
              color: #6f89ac;
              background: rgb(245 241 234 / 59%);

              p {
                width: 100%;
                padding: 0 10px;
                margin-bottom: 4px;
                overflow: hidden;
                text-overflow: ellipsis;
                text-align: center;
                white-space: nowrap;
              }
            }
          }

          .cup1-box {
            img {
              width: 63px;
            }

            .top-bg {
              width: 260px;
              border-right: 20px solid transparent;
              border-bottom: 9px solid rgb(250 247 242 / 59%);
            }

            .cup-box-content {
              width: 260px;
              height: 103px;
              color: #ce7c1f;
              background: rgb(250 247 242 / 59%);
            }
          }

          .cup3-box {
            .top-bg {
              border-right: 20px solid transparent;
              border-bottom: 9px solid rgb(245 241 234 / 59%);
              border-left: 10px solid transparent;
            }

            .cup-box-content {
              height: 65px;
              color: #8d4112;
              background: rgb(245 241 234 / 59%);
            }
          }
        }
      }

      .medal-box {
        display: flex;
        flex-direction: column;
        align-items: center;

        .medal-top-box {
          display: flex;
          align-items: flex-end;
          justify-content: space-between;
          min-width: 70%;
          margin: 60px 0 15px;

          .medal-box {
            position: relative;
            flex-shrink: 0;
            width: 160px;
            height: 91px;
            border: 1px solid rgb(111 137 172 / 59%);
            border-radius: 4px;

            .medal-box-content {
              display: flex;
              flex-direction: column;
              align-items: center;
              justify-content: center;
              width: 100%;
              height: 100%;
              color: #6f89ac;

              p {
                width: 100%;
                padding: 0 10px;
                margin-bottom: 4px;
                overflow: hidden;
                text-overflow: ellipsis;
                text-align: center;
                white-space: nowrap;
              }
            }

            img {
              width: 60px;
              margin-top: -30px;
            }
          }

          .medal1-box {
            width: 200px;
            height: 100px;
            margin: 0 10px;
            border: 1px solid rgb(206 124 31 / 59%);

            .medal-box-content {
              color: #ce7c1f;
            }

            img {
              width: 100px;
              margin-top: -65px;
            }
          }

          .medal3-box {
            border: 1px solid rgb(141 65 18 / 59%);

            .medal-box-content {
              color: #8d4112;
            }
          }
        }
      }
    }

    .portal-card-iframe {
      height: 100%;

      iframe {
        width: 100%;
        height: 100%;
      }
    }

    .portal-card-todoList,
    .portal-card-email {
      padding: 16px 20px;

      &.no-auth-todoList {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 100%;
        color: var(--text-color-secondary);
      }

      .item {
        display: block;
        margin-bottom: 12px;
        font-size: 0;
        line-height: 20px;
        cursor: pointer;

        &::after {
          clear: both;
          overflow: hidden;
          content: '';
        }

        .com-hover:hover {
          color: var(--primary-color) !important;
        }

        .name {
          display: inline-block;
          width: calc(100% - 90px);
          overflow: hidden;
          text-overflow: ellipsis;
          font-size: 14px;
          vertical-align: top;
          color: var(--text-color-base);
          word-break: break-all;
          white-space: nowrap;
        }

        .time {
          display: inline-block;
          width: 90px;
          font-size: 14px;
          color: var(--text-color-secondary);
          text-align: right;
        }
      }
    }

    .portal-card-body {
      height: 100%;
      overflow: hidden;

      .portal-common-noData {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        height: 100%;
        margin: auto;

        .noData-img {
          width: 100px;
          height: 100px;
          margin: 0 auto;
        }

        .noData-txt {
          font-size: 14px;
          line-height: 20px;
          color: #909399;
        }
      }
    }
  }

  .portal-box-tab,
  .portal-card-box {
    .portal-box-item {
      position: relative;
      width: 100%;
      height: 100%;

      .active-item {
        border: 1px solid #409eff;
        border-radius: var(--radius);
      }
    }
  }
  .portal-box-tab {
    border-radius: var(--radius);
    border: 1px solid #e4e4e7;
  }
}

.portal-design-box {
  position: relative;
  display: flex;
  width: 100%;
  height: 100%;

  .center-box {
    flex: 1;
    height: 100%;
    margin-right: 10px;
    overflow: hidden;
    background-color: var(--component-background);
    border-radius: 8px;

    .components-part {
      margin-right: 20px;

      .components-title {
        display: flex;
        align-items: center;
        cursor: pointer;

        i {
          margin-left: 4px;
          font-size: 12px;
          line-height: 12px;
        }
      }
    }

    .empty-info {
      position: absolute;
      top: calc(50% - 200px);
      left: calc(50% - 200px);

      .empty-img {
        width: 400px;
        height: 400px;
      }
    }

    .layout-area {
      position: relative;
      height: calc(100% - 42px);
      background: var(--component-background);
      border: none;

      #ipad {
        display: flex;
        align-items: center;
        justify-content: center;
        height: calc(100% - 42px);
        min-height: 781px;

        .portal-card-body,
        .ant-tabs-content-holder,
        .ant-tabs-content {
          display: flex;
          align-items: center;
          justify-content: center;
          min-height: 100px !important;
          color: var(--text-color-secondary);
        }

        .empty-info {
          top: calc(50% - 150px);
          left: calc(50% - 150px);

          .empty-img {
            width: 300px;
            height: 300px;
          }
        }

        .outer-ipad {
          width: 389px;
          height: 711px;
          padding: 65px 40px;
          background: url('@/assets/images/iphoneBg.png');

          .ipadHead {
            text-align: center;
            background: #f7f8f9;

            .ipadHead-img {
              height: 20px;
              margin: 0 auto;
            }
          }

          .ipad-body {
            height: 100%;

            .ipad-name {
              margin-top: 5px;
              margin-bottom: 5px;
              text-align: center;
            }

            .center-scrollbar {
              height: 100%;
              overflow: hidden;
            }
          }
        }
      }

      .drawing-board,
      .vue-grid-item,
      .item-box {
        position: relative;
        height: 100%;
        border: 1px dashed var(--border-color-base1);
        border-radius: var(--radius);

        &.active-item {
          border: 1px solid var(--primary-color);
          border-radius: var(--radius);

          & > .drawing-item-action {
            display: flex !important;
          }
        }

        .mask {
          position: absolute;
          top: 0;
          left: 0;
          z-index: 9;
          width: 100%;
          height: 100%;
          overflow: hidden;
          border-radius: var(--radius);
        }

        .vue-resizable-handle {
          z-index: 200;
        }

        .drawing-item-action {
          position: absolute;
          top: -10px;
          right: 20px;
          z-index: 20;
          display: none;
          height: 24px;
          overflow: hidden;
          font-size: 12px;
          line-height: 22px;
          cursor: pointer;
          background: var(--component-background);
          border: 1px solid var(--primary-color);
          border-radius: 24px;

          .drawing-item-action-item {
            position: relative;
            display: block;
            align-items: center;
            justify-content: flex-start;
            width: 30px;
            height: 22px;
            height: 100%;
            color: var(--text-color-label);
            text-align: center;

            &.drawing-item-delete {
              color: var(--text-color-label);

              &:hover {
                color: var(--error-color);
                background: #ffe5e5;
              }
            }

            &:hover {
              color: var(--primary-color);
              background: var(--primary-1);
            }

            &:first-child {
              &::after {
                display: none;
              }
            }

            &::after {
              position: absolute;
              top: 3px;
              left: 0;
              display: block;
              width: 1px;
              height: 16px;
              content: '';
              background-color: var(--border-color-base1);
            }
          }
        }

        &:hover {
          .drawing-item-action {
            display: flex;
          }
        }
      }
    }
  }

  .right-box {
    width: 340px;
    background-color: var(--component-background);
    border-radius: 8px;

    .field-box {
      position: relative;
      box-sizing: border-box;
      height: calc(100% - 42px);
      overflow: hidden;
    }

    .ant-collapse {
      overflow-x: hidden;

      .ant-collapse-item {
        border-bottom: 1px solid var(--border-color-base1);

        .ant-collapse-header {
          padding: 12px 0 !important;

          .ant-collapse-arrow {
            right: 8px;
          }
        }

        .ant-collapse-content-box {
          padding: 10px 0 0;
        }
      }
    }

    .right-radio {
      .ant-radio-button-wrapper {
        padding: 0 11px;
      }
    }

    .right-radio-more {
      .ant-radio-button-wrapper {
        padding: 0 8px;
      }
    }

    .options-list {
      padding-bottom: 18px;

      .select-item {
        box-sizing: border-box;
        display: flex;
        border: 1px dashed var(--component-background);

        & .ant-input + .ant-input {
          margin-left: 4px;
        }

        .ant-select {
          width: 100%;
        }

        & + .select-item {
          margin-top: 4px;
        }

        &.sortable-chosen {
          border: 1px dashed var(--primary-color);
        }

        .select-line-icon {
          padding: 0 4px;
          font-size: 22px;
          line-height: 31px;
          color: #606266;

          .icon-ym-darg {
            display: inline-block;
            font-size: 20px;
            line-height: 31px;
          }

          .icon-ym-btn-clearn {
            font-size: 18px;
          }
        }

        .close-btn {
          display: flex;
          align-items: center;
          height: 32px;
          color: var(--error-color);
          cursor: pointer;
        }

        .option-drag {
          cursor: move;
        }
      }

      .add-btn {
        padding-left: 12px;
      }
    }
  }
}

.custom-table {
  .ant-table-header table {
    border-top: unset !important;
  }
}

.ant-modal.json-modal {
  .ant-modal-body {
    & > .scrollbar {
      padding: 20px;
    }
  }

  .ant-modal-body {
    .json-editor {
      height: 400px;
      overflow: hidden;
      border: 1px solid var(--border-color-base1);
      border-radius: 6px;
    }
  }
}

.portal-layout-nodata {
  position: absolute;
  top: calc(50% - 200px);
  left: calc(50% - 200px);
  text-align: center;

  .ant-empty-image,
  .layout-nodata-img {
    width: 400px;
    height: 400px;
  }

  .ant-empty-description,
  .layout-nodata-txt {
    margin-top: -60px;
    font-size: 20px;
    line-height: 30px;
    color: #909399;
  }
}

.custom-page {
  width: 100%;
  height: 100%;
}

.dark,
.dark[data-theme='custom'],
.dark[data-theme='default'] {
  .portal-design-box .center-box .layout-area #ipad .outer-ipad {
    background: url('@/assets/images/iphoneBg-dark.png');
  }

  .portal-design-box .right-box .field-box .ant-collapse {
    border: unset;
  }

  .cup-box-content {
    background: rgb(51 51 51 / 59%) !important;
  }

  .top-bg {
    border-bottom: 9px solid rgb(51 51 51 / 59%) !important;
  }

  .jnpf-basic-portal {
    .portal-box-tab {
      border: 1px solid #36363a;
    }
  }
}
