@import 'constants';
@mixin truncate-text($max-width) {
  max-width: $max-width;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@mixin svg-icon($path, $size) {
  background-image: url($path);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  height: $size;
  width: $size;
}
@mixin slide-transition($time) {
  -moz-transition: all $time ease-in-out;
  -o-transition: all $time ease-in-out;
  -webkit-transition: all $time ease-in-out;
  transition: all $time ease-in-out;
}
// prevent horrible clear field crosses in IE

input {
  &::-ms-clear {
    display: none;
  }
}

.error-dialog {
  border-radius: 0;
  border-top: 5px solid $error-color;
  font-family: 'HelvRegularIBM';
  width: 600px;

  error-dialog {
    padding: 30px;
  }

  .error-close-button {
    background: none;
    border: 0;

    &:focus {
      outline: none;
    }
  }

  .error-header {
    margin-bottom: 20px;

    .error-icon {
      @include svg-icon($warn-icon, 30px);
    }

    .error-message {
      font-family: 'HelvLightIBM';
      font-size: 30px;
      line-height: 32px;
      margin-left: 6px;
      vertical-align: top;
    }

    button {
      padding: 0;
      position: absolute;
      right: 30px;
      top: 30px;
    }
  }

  .error-code {
    font-size: 12px;
    margin: 10px 0;
  }

  .error-description {
    margin: 10px 0 20px;
    white-space: pre-wrap;
  }

  .error-link {
    a {
      border-bottom: 2px solid $button-accent-color;
      color: #000;
      font-weight: bold;
      margin: 10px 0;
      text-decoration: none;
    }
  }

  .error-buttons {
    button {
      border: 2px solid $button-accent-color;
      border-radius: 0;
      color: $button-accent-color;
      float: right;
      font-weight: bold;
      text-transform: none;

      &:focus,
      &:hover {
        background-color: $button-accent-color;
        color: #fff;
      }
    }
  }
}

apim-assembler {
  md-input-container {
    label {
      color: rgba(0, 0, 0, .54);
    }
  }
  md-input-container2 {
    label {
      color: rgba(0, 0, 0, .54);
    }
  }
  // see https://github.com/angular/material/issues/8908
  .md-panel-outer-wrapper {
    height: 0;
    position: relative;
    text-align: center;
    z-index: 78 !important;
  }

  .rotate180 {
    transform: rotate(180deg);
  }

  apim-assembly-policy {
    .policy {
      box-shadow: none;
      font-weight: normal;
      padding: 4px 4px 4px 14px;

      &.application {
        .iconShell {
          border-radius: 50%;
          padding: 6px;
        }
      }

      &:focus {
        outline: none;
      }
    }
  }

  apim-assembly-policy .policy:hover,
  apim-assembly-template .template:hover {
    background-color: #fff;
    box-shadow: 0 1px 2px #ccc;
  }

  apim-catch > .catchShell {
    background-color: #f9fbfb;
  }

  .assemblyInfo .header,
  apim-assembly-policy .policy .iconShell,
  apim-node .iconShell,
  apim-sidenav .header .iconShell {
    background-color: #4b68fa;
  }

  .outerShell > .innerShell {
    background-color: $node-background-color;
    cursor: pointer;
  }

  .assemblerCanvas .policyNode .clauseContainer {
    border-bottom-color: $wire-color;
  }

  * {
    box-sizing: border-box;
  }

  .assemblyFlow .searchContainer {
    background: white;
    border-bottom: 1px solid $panel-border-color;
    display: flex;
    height: $search-bar-height;
    width: 100%;

    .sliderSection {
      max-width: 420px;
      min-width: 200px;
      width: 25%;

      md-slider {
        &[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-thumb,
        &[md-discrete]:not([disabled]).md-active .md-thumb {
          transform: scale(.7);
        }
      }

      .assemblySlider {
        width: calc(100% - 78px);

        .md-track.md-track-fill {
          background-color: $panel-border-color;
        }

        .md-thumb {
          cursor: pointer;
          top: 7px;

          &::after {
            background-color: #fff;
            border: 0;
            border-radius: 40px;
            box-shadow: 0 2px 5px 0 #777677;
            height: 36px;
            width: 36px;
          }
        }
      }
    }

    .searchBoxContainer {
      min-width: 110px;
      opacity: 0.5;

      &.focused,
      &:focus,
      &:hover {
        opacity: 1;
      }

      .searchBox {
        background: none;
        border: 0;
        flex: 1;
        height: $search-bar-height;
        line-height: $search-bar-height;
        padding: 0 0 0 46px;
        width: 100%;

        &:focus {
          outline: none;
        }
      }
    }

    .searchResults.searchSection {
      line-height: $search-bar-height;

      .searchButtonContainer {
        display: inline-block;
        margin-left: 10px;
      }

      .ui-match {
        padding: 2px;
      }
    }

    button.searchIcon {
      background-image: url($search-icon);
      background-position: center;
      background-repeat: no-repeat;
      background-size: contain;
      cursor: default;
      margin: 6px 0 6px 24px;
      padding: 0;
      position: absolute;
      width: 14px;
    }

    .clearIcon {
      font-size: 18px;
      margin: 6px 0 6px 20px;
      padding: 0;
      position: absolute;
    }
  }

  .displayInline {
    display: inline-block;
  }

  .alignTop {
    vertical-align: top;
  }

  .alignMiddle {
    vertical-align: middle;
  }

  .floatLeft {
    float: left;
  }

  .floatRight {
    float: right;
  }

  .simpleList {
    list-style: none;
    margin: 0;
    padding-left: 0;
  }

  .stretch {
    bottom: 0;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
  }

  .has-feedback label ~ .form-control-feedback {
    top: 17px;
  }

  .json-schema-form {
    button {
      background-color: #fff;
      border: 0;
      border-radius: 0;
      color: #4278bf;
      font-weight: bold;
      padding: 0 5px;
      text-decoration: underline;

      &:not(:disabled):focus,
      &:not(:disabled):hover {
        background-color: inherit;
        color: #4278bf;
      }

      &.json-editor-btn-edit + div {
        border: inherit !important;
        box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .2), 0 1px 1px 0 rgba(0, 0, 0, .14), 0 2px 1px -1px rgba(0, 0, 0, .12) !important;
      }
    }

    .row {
      margin-left: inherit;
      margin-right: inherit;
    }

    .well {
      background-color: inherit;
      border: 0;
      box-shadow: none;
    }

    .well-sm {
      border-radius: 0;
    }

    div[data-schematype='array'] > .well > div > .well,
    div[data-schematype='array'] > .well > div > div[data-schematype='object'] {
      border-left: 4px solid #4278bf;
      margin: 8px 0;
    }

    div[data-schematype='array'] > .well > div > div[data-schematype='object'] > h3 {
      padding-left: 10px;
    }

    .col-md-12,
    .well-sm {
      padding-left: 0;
      padding-right: 0;
    }

    .well-sm .well-sm {
      padding-left: 20px;
    }
  }

  .material-icons {
    &.smallIcon {
      font-size: 15px;
    }

    &.smallishIcon {
      font-size: 18px;
    }
  }

  md-switch {
    margin: 0;

    &.md-checked {
      .md-bar {
        background-color: #4b68fa;
      }

      &.md-checked .md-thumb {
        background-color: white;
      }
    }
  }

  md-slider {
    .md-sign {
      display: none;
    }

    .md-track {
      background-color: $panel-border-color;
    }

    .md-track-ticks {
      display: none;
    }
  }

  .assemblerCanvas .policyNode button.minimizeButton {
    background-color: #f7fbfd;
    margin: 0 8px 0 0;
  }

  .assemblerCanvas .policyNode.subflowNode:hover button.minimizeButton {
    background-color: #fff;
  }

  .assemblerCanvas .policyNode.minimized button.minimizeButton {
    margin: 12px 0 0;
  }

  .assemblerCanvas .policyNode button {
    background: transparent;
    border: 0;
    color: inherit;
    height: 30px;
    line-height: 30px;
    margin: 5px;
    min-width: 30px;
    padding: 0 2px;
    width: 30px;
  }

  .assemblerCanvas .policyNode .errorShell {
    background-clip: content-box;
    background-color: $error-color;
    border: 2px solid #fff;
    border-radius: 100%;
    cursor: default;
    height: 24px;
    margin: -18px -18px -18px -38px;
    position: absolute;
    text-align: center;
    width: 24px;
    z-index: 2;
  }

  .assemblerCanvas .policyNode .errorIcon {
    background-image: url($error-icon);
    background-position: center;
    background-repeat: no-repeat;
    background-size: 3px 13px;
    height: 100%;
    pointer-events: none;
    width: 100%;
  }

  .assemblerCanvas .policyNode .operationCountShell {
    background-color: $wire-color;
    border: 3px solid #fff;
    border-radius: 50%;
    color: #fff;
    font-weight: bold;
    height: 26px;
    line-height: 20px;
    margin: -9px 0 0 -37px;
    position: absolute;
    text-align: center;
    width: 26px;
  }

  apim-assembly-test .assemblyTestPanel {
    border-right: 1px solid $panel-border-color;
    bottom: 0;
    position: absolute;
    top: 0;
    width: 360px;

    .testHeader {
      border-bottom: 1px solid $panel-border-color;
      display: flex;

      .mainTitle {
        flex: 1;
      }
    }

    .testBody {
      height: calc(100vh - 190px);
      overflow-y: auto;
      padding-bottom: 40px;
    }

    h3 {
      line-height: 39px;
      padding: 0 10px;
    }

    ul {
      list-style: initial;
    }

    .testItem:first-child .testItemHeader {
      border-top: 0;
    }

    .testItemHeader {
      background-color: #f2f2f2;
      border-bottom: 1px solid $panel-border-color;
      border-top: 1px solid $panel-border-color;
      color: #444849;
      font-size: 1.2em;
      margin-bottom: 3px;
      padding: 10px;

      &.selected {
        border-bottom: 4px solid #4b68fa;
        margin-bottom: 0;
      }
    }

    .testItemDescription {
      padding: 10px;
    }

    .testItemRow {
      display: flex;
      padding: 10px;

      md-input-container {
        flex: 1;
      }
      md-input-container2 {
        flex: 1;
      }
    }

    .testSetup {
      line-height: 28px;
      padding: 10px;

      .itemLabel {
        font-size: 1.2em;
      }
    }

    apim-test-parameter {
      width: 100%;
    }

    .alertNote {
      background-color: #fefbea;
      border-top: 1px solid $panel-border-color;
      padding: 10px;
      word-break: break-word;

      &.alertNoteTop {
        border-bottom: 1px solid $panel-border-color;
        border-top: 0;
      }

      &.alertNoteTopBottom {
        border-bottom: 1px solid $panel-border-color;
      }

      .spinner:after {
        background: #fefbea;
      }
    }
  }

  .expressionTextArea {
    font-size: 12px;
    line-height: 12px;
  }

  .assemblySection,
  .policyList {
    user-select: none;
  }

  .policyList {
    @include slide-transition(.5s);
    background-color: #fff;
    border-right: 1px solid $panel-border-color;
    bottom: 0;
    overflow: hidden;
    position: absolute;
    top: 0;
    width: $policy-list-width;

    .searchContainer {
      height: $search-bar-height;
      padding-top:150px;
    }

    .policySet {
      border-bottom: 1px solid $panel-border-color;
    }

    .category {
      background-color: #fff;
      border-bottom: 1px solid $panel-border-color;
      font-size: 16px;
      line-height: 20px;
      padding: 5px;
    }

    .category.closed {
      border-bottom: 0;
    }

    .policyFilterIcon {
      display: inline-block;
      vertical-align: top;
    }

    .filterBoxContainer {
      background-color: #fff;
      border-bottom: 1px solid $panel-border-color;
      height: $search-bar-height;
      width: 100%;

      &.makeSpaceForGateways {
        width: calc(100% - 30px);
      }
    }

    .filterBoxFocus {
      opacity: 0.5;

      &.focused,
      &:focus,
      &:hover {
        opacity: 1;
      }
    }

    .searchIcon {
      background-image: url($search-icon);
      background-position: center;
      background-repeat: no-repeat;
      background-size: contain;
      cursor: default;
      margin: 6px 0 6px 24px;
      padding: 0;
      position: absolute;
      width: 14px;
    }

    .clearIcon {
      font-size: 18px;
      margin: 6px 0 6px 20px;
      padding: 0;
      position: absolute;
    }

    .filterBox {
      background: none;
      border: 0;
      display: inline-block;
      height: $search-bar-height;
      line-height: $search-bar-height;
      padding: 0 0 0 46px;
      width: 100%;

      &:focus {
        outline: none;
      }
    }

    .policyInner {
      height: calc(100% - #{$search-bar-height});
      overflow-y: auto;
      padding-top:50px;
      padding-left:10px;

      &.gatewaysShown {
        height: calc(100vh - 138px);
      }
    }

    &.ng-hide {
      left: -$policy-list-width;
    }
  }

  .policyGateways {
    background-color: #fff;
    border-bottom: 1px solid $panel-border-color;
    margin: 0;
    padding: 10px;
  }

  .policyFilterIcon {
    background: #fff;
    border-bottom: 1px solid $panel-border-color;
    border-left: 1px solid $panel-border-color;
    height: 40px;
    width: 30px;
  }

  .policyCategoryGroup {
    overflow: hidden;
  }

  .policyCategoryHeader {
    background-color: #fff;
    border-bottom: 1px solid $panel-border-color;
    cursor: pointer;
    padding: 10px 20px 10px 24px;

    &:focus {
      outline: none;
    }

    .minimizeButton {
      float: right;
      padding: 0;
      position: relative;
      top: -2px;

      span {
        @include slide-transition(.2s);
      }
    }
  }

  .policyCategoryHeader:hover .minimizeButton {
    color: #000;
  }

  .policyCategoryContents {
    @include slide-transition(.2s);
    border-bottom: 1px solid $panel-border-color;

    &.ng-hide {
      max-height: 0 !important;
    }
  }

  .policyHeader {
    display: flex;

    &.expanded {
      border-bottom: 1px solid $panel-border-color;
    }
  }

  .stretch.assemblySection {
    @include slide-transition(.5s);
    background-color: #fff;
    display: flex;
    left: $policy-list-width;
    position: absolute;

    &.maximized {
      left: 0;
    }

    &.hideHeader {
      top: 0;
      transition: none;
    }

    .transition200 {
      @include slide-transition(.5s);
    }

    .searchResults {
      line-height: 26px;
    }

    .searchSectionBorder {
      border-right: 1px solid $panel-border-color;
    }

    .searchSection {
      padding: 0 10px;
    }

    .searchSectionSlim {
      padding: 0 3px;
    }
  }

  .snipMode {
    .assemblerCanvas .policyNode {
      padding: 16px 0 16px 16px;

      &.subflowNode {
        padding: 16px;
      }

      > .outerShell {
        border: 4px dotted #bebebe;
        width: $snipped-node-width;
      }
    }

    .nodeActionsContainer {
      opacity: 0;
    }
  }

  .testMode .assemblySection {
    left: 360px;
  }

  .actionSeparator {
    border-bottom: 1px solid #e3e3e3;
    margin-bottom: 10px;
    padding-bottom: 10px;
  }

  .assemblyFlow {
    background-color: $canvas-background-color;
    height: 100%;
    overflow: hidden;
    position: relative;
    width: 100%;
    padding-top:150px;

    &.infoPanelBottom {
      .assemblyInfoSection {
        border-left: 0;
        bottom: 0;
        box-shadow: 2px -2px 5px 0 #d4d4d4;
        max-height: 50%;
        max-width: 100%;
        min-height: 50%;
        min-width: 100%;
        top: 50%;
        padding-top:0px;

        .header {
          .iconShell {
            box-shadow: none;
            position: relative;
            transform: translateX(0);
          }
        }

        .logic .header .iconShell {
          transform: translateX(0) scale(.7) rotate(135deg);
        }

        &.md-sidenav-right.md-closed {
          transform: translate3d(-100%, 100%, 0);
        }

        &.maximized {
          box-shadow: none;
          max-height: calc(100% - #{$search-bar-height});
          min-height: calc(100% - #{$search-bar-height});
          top: $search-bar-height;
        }
      }

      .policyPartial {
        height: calc(100% - 60px);
      }
    }

    .spinner:after {
      background: #f7fbfd;
    }

    &.pinned {
      width: 50%;
    }
  }

  .md-select-value .md-select-icon {
    width: 12px;
  }

  .assemblyInfoSection {
    @include slide-transition(.2s);
    border-left: 1px solid $panel-border-color;
    box-shadow: -2px 2px 5px 0 #d4d4d4;
    max-width: 33%;
    min-width: 385px;
    overflow: visible;
    top: $search-bar-height;
    width: 33%;
    padding-top:100px;

    &.doubleWidth {
      max-width: 66%;
      min-width: 66%;
    }

    &.maximized {
      border-left: 0;
      max-width: 100%;
      min-width: 100%;

      .header .iconShell {
        box-shadow: none;
        position: relative;
        transform: translateX(0);
      }

      .logic .header .iconShell {
        transform: translateX(0) scale(.7) rotate(135deg);
      }
    }

    .assemblyInfo {
      background: #fff;
      height: 100%;

      .assemblyInfoErrorMessage {
        color: $error-color;
        display: inline-block;
        font-size: 12px;
        margin-top: 2px;
      }

      .md-input-invalid {
        .assemblyInfoWarning {
          background-image: url($warn-icon);
          background-position: 99% 6px;
          background-repeat: no-repeat;
          background-size: 22px 22px;
          color: $error-color;
        }

        .ng-empty {
          .md-select-value {
            border-bottom-color: $error-color;
            color: $error-color;

            :first-child {
              background-image: url($warn-icon);
              background-position: right;
              background-repeat: no-repeat;
              background-size: 22px 22px;
              line-height: 22px;
            }
          }
        }
      }

      .infoView {
        height: 100%;
      }

      md-chips,
      md-input-container,
      md-input-container2 {
        margin-left: 0;
        margin-right: 0;
        width: 100%;
      }

      md-input-container {
        label {
          font-size: 16px;
          font-weight: normal;
          transform: translate3d(0, 6px, 0) scale(.75);
        }

        input,
        md-select-value span div,
        textarea {
          font-weight: bold;
        }
      }
      md-input-container2 {
        
        input,
        md-select-value span div,
        textarea {
          font-weight: bold;
        }
      }
      
      .closeInfo {
        margin: 6px 12px 6px 6px;
        padding: 0;
      }

      .maximizeInfo,
      .jumpToCode,
      .togglePanelPosition {
        margin: 6px;
        padding: 0;
      }
    }

    .assemblyDescription {
      font-size: 12px;
      margin-left: 3px;
    }
  }

  .assemblerCanvas {
    background-color: $canvas-background-color;
    cursor: initial;
    height: calc(100% - #{$search-bar-height});
    outline: none;
    overflow: auto;
    position: relative;
    white-space: nowrap;
    padding-left:20px;

    .inputNode,
    .outputNode {
      background-color: #f7fbfd;
      border: 3px solid $wire-color;
      border-radius: 50%;
      display: inline-block;
      height: 32px;
      margin-top: 28px;
      position: relative;
      vertical-align: top;
      width: 32px;
      z-index: 1;
    }

    .outputNode {
      background-color: $wire-color;
      margin-right: 20px;

      &:focus {
        outline: none;
      }
    }

    .catchContainer {
      border-bottom-color: $wire-color;
    }

    &.hideCatches .outerCatch {
      display: none;
    }

    .policyNode {
      display: inline-block;
      top: 3px;
      position: relative;
      vertical-align: top;

      &.snipped {
        padding: 16px 0 16px 16px;

        > .outerShell {
          border: 4px dotted #4b68fa;
          width: $snipped-node-width;
        }
      }

      .policyName {
        margin-left: 35px;
      }

      .iconShell {
        font-size: 30px;
        height: 64px;
        left: -32px;
        line-height: 30px;
        padding: 10px;
        position: absolute;
        top: -12px;
        width: 64px;
      }

      &.applicationNode {
        .iconShell {
          border-radius: 50%;
        }

        .nodeBody {
          background-color: $node-accent-color;
          color: rgb(150, 150, 150);
          line-height: 20px;
          overflow-wrap: break-word;
          padding: 8px 12px 8px 35px;

          .applicationNodeDetails {
            white-space: normal;
            word-wrap: break-word;
            max-height: 20px;
            overflow: hidden;
          }

          .applicationNodeDetailsLine2 {
            max-height: 20px;
            overflow: hidden;
            text-overflow: ellipsis;
          }

          .applicationNodeDetailsOverflow {
            @include truncate-text(100%);
          }
        }
      }
    }

    .policyNode.referenceNode > .outerShell > .innerShell {
      > .policyName {
        margin-left: 55px;
      }

      > .iconShell {
        left: -5px;
      }
    }

    .policyNode.policyGatewayMiss .innerShell {
      opacity: 0.2;
    }

    .clauseLabel {
      color: #a0a0a0;
      font-size: 16px;
      height: 18px;
      line-height: normal;
      margin-bottom: 5px;
      margin-left: 25px;
      max-width: 335px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .clauseLabel.expanded {
      white-space: normal;
    }

    .ghostPolicy {
      background-color: #fff;
      border: 2px dashed $wire-color;
      height: 32px;
      left: 50%;
      opacity: 0;
      position: absolute;
      top: 50%;
      transition: opacity 0.5s linear;
      transform: translate(-50%, -50%);
      width: 32px;
      z-index: 1;
    }

    .dropzoneGroup.on-drag-enter .ghostPolicy,
    .dropzoneGroup.on-drag-hover .ghostPolicy {
      opacity: 1;
    }

    .clauseContainer {
      min-height: 42px;
    }

    .conditionShell > .clauseContainer {
      min-height: 52px;
    }

    .conditionShell,
    .outerShell {
      min-height: 32px;
    }

    .catchShell,
    .clauseShell,
    .executeShell {
      min-height: 42px;
    }

    .outerShell {
      background-color: $canvas-background-color;
      margin-left: 5px;
      position: relative;
      width: $node-width;
      z-index: 1;
    }

    .innerShell {
      box-shadow: 0 2px 4px 0 rgba(0, 0, 0, .4);
      outline: none;
      position: relative;
      transition: opacity 0.5s linear;
      vertical-align: top;
      width: 100%;
      z-index: 1;
    }

    .clauseShell,
    .conditionShell,
    .executeShell {
      border-top: 0;
      position: relative;
    }

    .catchShell {
      background-color: #f6f6f6;
      min-height: 52px;
      padding-bottom: 32px;
      position: relative;
    }

    .catchContainer,
    .clauseContainer,
    .executeContainer {
      position: relative;
    }

    .catchShell .catchContainer:nth-last-child(2),
    .clauseShell .clauseContainer:nth-last-child(2),
    .conditionShell .conditionContainer:nth-last-child(1),
    .executeShell .executeContainer:nth-last-child(2) {
      border-bottom: 0;
    }

    .clauseRow {
      min-height: 147px;
      padding: 20px 20px 20px 7px;
    }

    .clauseRowBrowseMapping {
      background-color: inherit;
      position: absolute;
      right: 5px;
      top: 60px;
      width: 16px;
      height: 16px;
      min-width: 16px;
      min-height: 16px;
    }

    .clauseRowTerminator {
      background-color: $wire-color;
      border-radius: 50%;
      height: 8px;
      position: absolute;
      right: 0;
      top: 86px;
      transform: translateY(-3px) translateX(3px);
      width: 8px;
      z-index: 1;
    }

    .executeContainer {
      padding: 10px 0;
    }

    .catchContainer:first-child:before,
    .clauseContainer:first-child:before,
    .executeContainer:first-child:before {
      top: 25px;
    }

    .clauseDropzoneGroup {
      background-color: #fff;
      border: 2px dashed $wire-color;
      bottom: 0;
      height: 40px;
      left: -13px;
      opacity: 0;
      position: absolute;
      transition: opacity 0.5s linear;
      width: 66px;
    }

    .clauseDropzoneGroup.on-drag-enter,
    .clauseDropzoneGroup.on-drag-hover {
      opacity: 1;
    }

    .clauseDropzoneGroup.on-drag-hover {
      background-color: #fff5db;
      border: 2px dashed #ffc30c;
    }

    .clauseContainer > .clauseRow.otherwiseClause > .clauseRowInner > .dropzoneGroup {
      margin-left: 20px;
    }

    .clauseRow > .dropzoneGroup:last-child {
      width: 10px;
    }

    .catchContainer > .clauseRow > .inlineContainer:last-child > .dropzoneGroup.on-drag-enter:before,
    .catchContainer > .clauseRow > .inlineContainer:last-child > .dropzoneGroup.on-drag-hover:before,
    .clauseContainer > .clauseRow > .inlineContainer:last-child > .dropzoneGroup.on-drag-enter:before,
    .clauseContainer > .clauseRow > .inlineContainer:last-child > .dropzoneGroup.on-drag-hover:before,
    .clauseRow > .dropzoneGroup.on-drag-enter:last-child,
    .clauseRow > .dropzoneGroup.on-drag-hover:last-child,
    .executeContainer > .clauseRow > .inlineContainer:last-child > .dropzoneGroup.on-drag-enter:before,
    .executeContainer > .clauseRow > .inlineContainer:last-child > .dropzoneGroup.on-drag-hover:before {
      opacity: 1;
    }

    .inlineContainer {
      display: inline-block;
      vertical-align: top;
    }

    .nodeGroup {
      display: inline-block;
      height: 100%;
      vertical-align: top;
    }

    .clauseContainer .catchIcon + .dropzoneGroup,
    .clauseContainer .clauseIcon + .dropzoneGroup {
      left: 3px;
    }

    .dropzoneGroup:after {
      bottom: 0;
      content: '';
      opacity: 0;
      position: absolute;
      top: 0;
      transition: opacity 0.5s linear;
      width: 35px;
    }

    .dropzoneGroup.on-drag-hover .ghostPolicy {
      background-color: #fff5db;
      border: 2px dashed #ffc30c;
    }

    .policyNode .inlineContainer:last-child > .dropzoneGroup {
      margin-right: -20px;
    }

    .policyNode.subflowNode:after {
      display: none;
    }

    .policyNode.subflowNode .clauseRow:before {
      border-left: 2px solid $wire-color;
      bottom: 0;
      content: '';
      left: 19px;
      position: absolute;
      top: -20px;
    }

    .policyNode.subflowNode .clauseShell > div:last-of-type > .clauseRow:before,
    .policyNode.subflowNode .conditionShell > div:last-of-type > .clauseRow:before {
      height: 108px;
    }

    .policyNode.subflowNode .clauseRow:after {
      border-left: 2px solid $wire-color;
      bottom: 0;
      content: '';
      position: absolute;
      right: 0;
      top: 0;
    }

    .policyNode.subflowNode .clauseShell > div:first-of-type > .clauseRow:after,
    .policyNode.subflowNode .conditionShell > div:first-of-type > .clauseRow:after {
      top: -20px;
    }

    .policyNode.subflowNode .clauseShell > div:last-of-type > .clauseRow:after,
    .policyNode.subflowNode .conditionShell > div:last-of-type > .clauseRow:after {
      height: 87px;
    }

    .policyNode.subflowNode .clauseShell > div:only-of-type > .clauseRow:after,
    .policyNode.subflowNode .conditionShell > div:only-of-type > .clauseRow:after {
      height: 108px;
    }

    .policyNode.subflowNode.minimized .clauseRow:after {
      display: none;
    }

    .policyNode.subflowNode .policyNode.subflowNode .clauseShell > div:first-of-type > .clauseRow:after,
    .policyNode.subflowNode .policyNode.subflowNode .conditionShell > div:first-of-type > .clauseRow:after {
      top: -20px;
    }

    .catchContainer .policyNode:last-child:after,
    .clauseContainer .policyNode:last-child:after,
    .executeContainer .policyNode:last-child:after {
      right: initial;
    }
  }

  .infoPanelRight.infoPanelOpen .assemblerCanvas {
    max-width: calc(100% - 385px);
    width: 67%;
  }

  .infoPanelRight.infoPanelOpen.infoPanelDoubleWidth .assemblerCanvas {
    width: 34%;
  }

  .infoPanelBottom.infoPanelOpen .assemblerCanvas {
    height: calc(50% - #{$search-bar-height});
  }

  .apim .underMainBanner .policyInner {
    height: calc(100vh - 150px);
  }

  .apim .underMainBanner .policyInner.gatewaysShown {
    height: calc(100vh - 248px);
  }

  .apim .makeSpaceForMessage .underMainBanner .policyInner {
    height: calc(100vh - 188px);
  }

  .apim .makeSpaceForMessage .underMainBanner .policyInner.gatewaysShown {
    height: calc(100vh - 286px);
  }

  .policy {
    .policyInfoButton {
      color: #c3c3c3 !important;
      display: none;
      font-size: 16px;
      line-height: 32px;
      margin-left: -5px;
      margin-right: 10px;
    }

    &:hover .policyInfoButton {
      display: inline-block;
    }
  }

  .policyList .policyInner.gatewaysShown {
    height: calc(100% - 138px);
  }

  .policy .policyInfoButton,
  .template .policyInfoButton {
    color: #c3c3c3 !important;
    display: none;
    font-size: 16px;
    line-height: 32px;
    margin-left: -5px;
    margin-right: 10px;
  }

  .policy:hover .policyInfoButton,
  .template:hover .policyInfoButton {
    display: inline-block;
  }

  .ace_property_editor {
    height: 100%;
  }

  .ace_property_editor_container {
    bottom: 0;
    left: 0;
    position: absolute;
    right: 0;
    top: 37px;
  }

  .property_form {
    display: inline-block;
    height: 100%;
    overflow: auto;
    padding: 10px;
    vertical-align: top;
    width: 100%;
  }

  .assemblyCatchSwitch {
    line-height: 31px;
    margin-top: 5px;
  }

  .assemblySlider {
    height: 30px;
    margin: -3px 5px 0 15px;
    vertical-align: top;
    width: 100px;
  }

  .assemblyCatchScaler,
  .assemblyScaler {
    padding: 40px 30px 0;
    transform-origin: top left;
    transition: all 0.4s ease-in-out;
  }

  .assemblySection md-backdrop {
    display: none;
  }

  .assemblyInfo {
    .catchCase,
    .switchCase {
      border-bottom: 1px solid $panel-border-color;
      display: flex;
      padding: 10px;
      position: relative;
    }
	
	.switchCase2 {
      display: flex;
      padding: 2px;
      position: relative;
    }
    
    .header {
      background-color: #fff;
      box-shadow: 0 2px 3px 0 #d4d4d4;
      box-sizing: border-box;
      font-weight: normal;
      height: 60px;
      line-height: 60px;
      padding: 9px 0 9px 24px;
      position: relative;
      z-index: 1;

      .iconShell {
        background-color: transparent;
        box-shadow: -2px 0 5px 0 #d4d4d4;
        left: 0;
        padding: 0;
        position: absolute;
        transform: translateX(-50%);

        .iconInnerShell {
          height: 100%;
          width: 100%;
        }
      }

      .policyName {
        @include truncate-text(calc(100% - 210px));
        color: #000;
        display: inline-block;
        padding-left: 5px;
      }
    }

    .logic {
      .iconShell {
        background-color: $canvas-background-color;
        border: 2px solid $logic-node-color;
        border-radius: 0;
        box-shadow: 2px 2px 5px 0 #d4d4d4;
        color: $logic-node-color;
        line-height: 24px;
        transform: translateX(-50%) scale(.7) rotate(135deg);

        div {
          transform: rotate(-135deg);
        }
      }
    }

    .application {
      .iconShell {
        border-radius: 50%;
      }
    }

    .catchCase .catchContent,
    .switchCase .switchCase2 .conditionContent {
      flex: 1;
    }
  }

  .assembly-canvas__request .innerShell,
  .assembly-canvas__response .innerShell,
  .catchContainer:after,
  .catchContainer:before,
  .catchIcon,
  .catchLabel,
  .catchShell:after,
  .catchShell:before,
  .clauseContainer:after,
  .clauseContainer:before,
  .clauseIcon,
  .clauseRow:after,
  .clauseRow:before,
  .clauseRowInner:after,
  .clauseRowTerminator,
  .clauseShell:after,
  .clauseShell:before,
  .conditionShell:after,
  .conditionShell:before,
  .dropzoneGroup:before,
  .executeContainer:after,
  .executeContainer:before,
  .executeShell:after,
  .executeShell:before,
  .inputNode,
  .outputNode,
  .policyNode:before,
  apim-node .innerShell {
    transition: opacity 0.5s linear;
  }

  .assemblerCanvas.filtering {
    .assembly-canvas__request .innerShell.searchMiss,
    .assembly-canvas__response .innerShell.searchMiss,
    .catchContainer:after,
    .catchContainer:before,
    .catchIcon.searchMiss,
    .catchLabel,
    .catchShell:after,
    .catchShell:before,
    .clauseContainer:after,
    .clauseContainer:before,
    .clauseIcon.searchMiss,
    .clauseLabel,
    .clauseRow:after,
    .clauseRow:before,
    .clauseRowInner:after,
    .clauseRowTerminator,
    .clauseShell:after,
    .clauseShell:before,
    .conditionShell:after,
    .conditionShell:before,
    .dropzoneGroup:before,
    .executeContainer:after,
    .executeContainer:before,
    .executeShell:after,
    .executeShell:before,
    .inputNode,
    .outputNode,
    .policyNode:before,
    apim-node .innerShell.searchMiss {
      opacity: 0.1;
    }

    .clauseShell,
    .conditionShell,
    .executeShell {
      border-color: rgba(190, 190, 190, .1);
    }
  }

  .innerShell.on-dragging,
  .policy.on-dragging {
    opacity: 0.2;
  }

  apim-assembly-policy .policy,
  apim-assembly-template .template {
    cursor: pointer;
    margin: 10px;
  }

  .assemblyInfo .policyPartial {
    height: calc(100% - 60px);
    overflow-y: auto;
    white-space: initial;
  }

  apim-assembly-policy .policy.logic .iconShell {
    transform: scale(.7) rotate(135deg);
  }

  .outerCatch {
    box-shadow: 0 0 5px 0 rgb(200, 200, 200);
    margin: 20px -30px -30px;
  }

  .catchShell .catchLabel {
    display: none;
  }

  .outerCatch .catchShell .catchLabel {
    color: #a0a0a0;
    cursor: pointer;
    display: block;
    font-size: 1.4em;
    padding: 10px;
  }
  // fade the entire node out
  .innerShell.on-dragging ~ .catchShellContainer,
  .innerShell.on-dragging ~ .clauseShellContainer,
  .innerShell.on-dragging ~ .executeShellContainer,
  .subflowNode.on-dragging .catchShellContainer,
  .subflowNode.on-dragging .clauseShellContainer,
  .subflowNode.on-dragging .executeShellContainer {
    opacity: 0.2;
    // prevent dropping a policy within itself
    .clauseDropzoneGroup,
    .dropzoneGroup {
      display: none;
    }
  }

  .assemblerCanvas .policyName,
  apim-assembly-policy .policyName,
  apim-assembly-template .policyName {
    display: inline-block;
    vertical-align: top;
  }

  .assemblerCanvas .policyName {
    @include truncate-text(calc(100% - 42px));
    flex: 1;
    font-size: 14px;
  }

  apim-assembly-policy .policyName,
  apim-assembly-template .policyName {
    flex: 1;
    font-size: 16px;
    line-height: 32px;
    margin: 0 10px;
  }

  .assemblerCanvas .policyName,
  .assemblyInfo .policyName {
    font-size: 16px;
    font-weight: bold;
    line-height: 40px;
    margin-left: 10px;
    margin-right: 10px;

    &:focus {
      outline: none;
    }
  }

  .assemblyInfo .policyName {
    max-width: 180px;
  }

  .assemblerCanvas .logicNode > .outerShell > .innerShell > .policyName {
    background-color: $canvas-background-color;
    margin: 0;
    padding: 0 20px;
    width: 100%;
  }

  .assemblerCanvas .logicNode.minimized > .outerShell > .innerShell > .policyName {
    width: initial;
  }

  .assemblerCanvas .referenceNode .logicNode > .outerShell > .innerShell > .policyName {
    width: calc(100% - 62px);
  }

  .assemblerCanvas .subflowNode.isSelected .subflowNode > .outerShell > .innerShell > .policyName,
  .assemblerCanvas .subflowNode.isSelected > .outerShell > .innerShell > .policyName,
  .assemblerCanvas .subflowNode:focus .subflowNode > .outerShell > .innerShell > .policyName,
  .assemblerCanvas .subflowNode:focus > .outerShell > .innerShell > .policyName,
  .assemblerCanvas .subflowNode:hover > .outerShell > .innerShell > .policyName {
    background: #fff;
  }

  .assemblerCanvas .policyVersion,
  apim-assembly-policy .policyVersion,
  apim-assembly-template .policyVersion {
    font-size: 12px;
    margin-right: 10px;
    margin-top: 10px;
  }

  .assemblerCanvas .dropzoneGroup,
  .innerShell.on-dragging ~ .catchShellContainer .dropzoneGroupSpacer,
  .innerShell.on-dragging ~ .clauseShellContainer .dropzoneGroupSpacer,
  .innerShell.on-dragging ~ .executeShellContainer .dropzoneGroupSpacer {
    display: inline-block;
    height: 60px;
    position: relative;
    top: 14px;
    vertical-align: top;
    width: 60px;
  }

  .assemblerCanvas .dropzoneGroupSpacer {
    display: none;
  }

  .assemblerCanvas .dropzoneGroup:before,
  .innerShell.on-dragging ~ .catchShellContainer .dropzoneGroupSpacer:before,
  .innerShell.on-dragging ~ .clauseShellContainer .dropzoneGroupSpacer:before,
  .innerShell.on-dragging ~ .executeShellContainer .dropzoneGroupSpacer:before {
    border-bottom: 2px solid $wire-color;
    content: '';
    left: 0;
    position: absolute;
    right: 0;
    top: 29px;
    transition: opacity 0.5s linear;
  }

  .assemblerCanvas .clauseContainer .dropzoneGroup:before {
    left: 12px;
  }

  apim-node > .nodeWrapper > .policyNode {
    > .outerShell > .innerShell > .nodeActionsContainer {
      opacity: 0;
    }

    &:hover > .outerShell > .innerShell > .nodeActionsContainer {
      opacity: 1;
    }

    .outerShell > .innerShell > .nodeActionsContainer {
      display: flex;
      height: 50px;
      justify-content: flex-end;
      opacity: 0;
      position: absolute;
      right: 0;
      top: -38px;
    }

    &.subflowNode {
      > .outerShell > .innerShell > .nodeActionsContainer {
        top: -60px;
      }

      &.hover-effect > .outerShell > .innerShell > .nodeActionsContainer {
        opacity: 1;
      }

      &:hover:not(.hover-effect) > .outerShell > .innerShell > .nodeActionsContainer {
        opacity: 0;
      }
    }

    &.referenceNode .clauseShellContainer {
      margin-right: 20px;
    }
  }

  .assemblerCanvas .closeShell,
  .assemblerCanvas .iconShell,
  .assemblyInfo .iconShell,
  apim-assembly-policy .iconShell,
  apim-assembly-template .iconShell {
    display: inline-block;
    vertical-align: top;

    &:focus {
      outline: none;
    }
  }

  .assemblerCanvas .logicNode > .outerShell > .innerShell > .iconShell {
    box-shadow: none;
    font-size: 24px;
    height: 40px;
    left: 0;
    padding: 5px;
    position: relative;
    top: 1px;
    width: 40px;
  }

  .assemblerCanvas .iconShell,
  .assemblyInfo .iconShell {
    border-radius: 5px;
    color: #fff;
    height: 40px;
    line-height: 30px;
    padding: 5px;
    text-align: center;
    width: 40px;
  }

  .assemblerCanvas .logicNode > .outerShell > .innerShell > .iconShell,
  .assemblyInfo .logicNode > .outerShell > .innerShell > .iconShell {
    color: inherit;
  }

  apim-assembly-policy .policy .iconShell,
  apim-assembly-template .template .iconShell {
    border-radius: 5px;
    color: #fff;
    height: 32px;
    line-height: 24px;
    padding: 4px;
    width: 32px;
  }

  apim-assembly-policy .policy.logic .iconShell,
  apim-assembly-template .policyHeader.expanded .iconShell {
    border-radius: 0;
    color: $logic-node-color;
  }

  .assemblerCanvas .catchContainer .clauseIcon,
  .assemblerCanvas .clauseContainer .clauseIcon,
  .assemblerCanvas .clauseGhost,
  .assemblerCanvas .executeContainer .clauseIcon,
  .assemblyInfo .caseIcon {
    background-color: #f0f0f0;
    border: 2px solid $wire-color;
    display: inline-block;
    height: 20px;
    left: 3px;
    min-width: 20px;
    position: relative;
    top: 11px;
    transform: rotate(45deg);
    vertical-align: top;
    width: 20px;
    z-index: 1;
  }

  .assemblerCanvas .catchContainer .clauseIcon,
  .assemblerCanvas .clauseContainer .clauseIcon,
  .assemblerCanvas .clauseGhost,
  .assemblerCanvas .executeContainer .clauseIcon {
    top: 34px;
  }

  .assemblerCanvas .clauseGhost {
    left: 21px;
    top: 8px;
  }

  .assemblerCanvas .catchContainer .catchIcon,
  .assemblerCanvas .catchGhost,
  .assemblerCanvas .clauseContainer .catchIcon,
  .assemblerCanvas .executeContainer .catchIcon,
  .assemblyInfo .catchIcon {
    background-color: $wire-color;
    border-radius: 50%;
    color: #fff;
    display: inline-block;
    font-size: 1.6em;
    font-weight: bold;
    height: 28px;
    left: 0;
    line-height: 28px;
    min-width: 28px;
    position: relative;
    text-align: center;
    top: 30px;
    vertical-align: top;
    width: 28px;
    z-index: 1;
  }

  .assemblerCanvas .catchGhost {
    left: 17px;
    top: 4px;
  }

  .assemblerCanvas .catchContainer .catchIcon:after,
  .assemblerCanvas .catchGhost:after,
  .assemblerCanvas .clauseContainer .catchIcon:after,
  .assemblerCanvas .executeContainer .catchIcon:after,
  .assemblyInfo .catchIcon:after {
    content: '!';
  }

  .assemblyInfo .caseIcon,
  .assemblyInfo .catchIcon {
    margin: 2px 15px 0 5px;
  }

  .assemblyInfo .catchIcon {
    top: 10px;
    left: -2px;
  }

  .assemblerCanvas .clauseNode {
    border: 2px solid $wire-color;
  }

  apic-condition-expression,
  apic-condition-expression-left,
  apic-condition-expression-right {
    .expression-clause {
      display: block;
      padding: 10px 0 10px 10px;
    }

    .operator {
      margin: 10px 0 10px 10px;
    }

    .expression-group {
      border-left: 3px solid #4b68fa;
      margin-left: 10px;
    }

    .button-panel {
      margin: 10px;
    }

    .expression-editor > .button-panel {
      float: right;
      margin: 9px 20px 0 0;
    }

    .binary-expression > .button-panel,
    .operation-clause > .button-panel {
      float: right;
      margin: -5px 20px 0 0;
    }

    .expression-group > .button-panel {
      margin: 10px;
    }

    .button-panel:after {
      clear: both;
      content: '';
      display: block;
      height: 0;
      visibility: hidden;
    }

    .expression-clause .expression-right {
      display: block;
    }

    .call-expression > span:nth-last-of-type(2) .argument-separator {
      display: none;
    }
  }

  .assemblerCanvas .policyNode.subflowNode > .outerShell {
    background: none;
    margin-left: 0;
    width: 100%;
  }

  .assemblerCanvas .policyNode.logicNode > .outerShell > .innerShell {
    box-shadow: none;
    color: #a0a0a0;
  }

  .assemblerCanvas .policyNode.logicNode > .outerShell > .innerShell > .iconShell,
  .policy.logic .iconShell {
    background-color: #fff;
    border: 2px solid $wire-color;
    border-radius: 0;
    transform: rotate(135deg);
  }

  .assemblerCanvas .policyNode.logicNode > .outerShell > .innerShell > .iconShell div,
  .policy.logic .iconInnerShell {
    transform: rotate(-135deg);
  }

  .policy.logic .iconInnerShell {
    font-size: 20px;
    margin: 0;
  }

  .policy.logic .iconShell {
    border-color: $logic-node-color;
    color: $logic-node-color;
  }

  .assemblerCanvas .policyNode.logicNode > .outerShell > .innerShell > .iconShell div {
    margin-left: 2px;
  }

  .assemblerCanvas .clauseRowInner:after {
    border-bottom: 2px solid $wire-color;
    content: '';
    left: 19px;
    position: absolute;
    right: 0;
    top: 86px;
  }

  .subflowNode.referenceNode:hover {
    .clauseIcon,
    .clauseRow:after,
    .clauseRow:before,
    .clauseRowInner:after,
    .iconShell,
    .policyNode .policyName:after,
    .policyNode .policyName:before {
      border-color: $reference-node-color !important;
    }
  }

  .assemblerCanvas .subflowNode.logicNode.isSelected,
  .assemblerCanvas .subflowNode.logicNode:focus {
    > .outerShell > .innerShell .iconShell {
      border-color: $logic-node-color;
    }
  }

  :not(.logic-node__has-branch-selected).subflowNode.logicNode.hover-effect,
  :not(.logic-node__has-branch-selected).subflowNode.logicNode.isSelected,
  :not(.logic-node__has-branch-selected).subflowNode.logicNode:focus {
     > .outerShell > .clauseShellContainer > div > .clauseShell > .clauseContainer > .clauseRow > .clauseRowInner:after,
     > .outerShell > .clauseShellContainer > div > .clauseShell > .clauseContainer > .clauseRow:after,
     > .outerShell > .clauseShellContainer > div > .clauseShell > .clauseContainer > .clauseRow:before,
    > .outerShell > .clauseShellContainer > div > .clauseShell > .clauseContainer > .clauseRow > .clauseRowInner > .clauseIcon {
      border-color: $logic-node-color;
    }

    > .outerShell > .clauseShellContainer > div > .clauseShell > .clauseContainer > .clauseRow > .clauseRowInner > .clauseIcon {
      background-color: #fbdfb1;
    }

    > .outerShell > .clauseShellContainer > div > .clauseShell > .clauseContainer > .clauseRow > .clauseRowInner > .clauseRowTerminator {
      background-color: $logic-node-color;
    }

    > .outerShell > .clauseShellContainer > div > .clauseShell > .clauseContainer > .clauseRow > .clauseRowInner > .inlineContainer > .inlineContainer > apim-node > .nodeWrapper > .logicNode > .outerShell > .innerShell > .policyName {
      &:after,
      &:before {
        border-color: $logic-node-color;
      }
    }

    .logicNode > .outerShell > .innerShell > .iconShell,
    > .outerShell > .innerShell > .iconShell {
      color: $logic-node-color;
    }
  }

  .subflowNode.logicNode.isSelected {
    .clause-row--selected {
      &.clauseRowInner:after {
        border-color: $logic-node-color;
      }

      > .clauseRowTerminator {
        background-color: $logic-node-color;
      }

      > .clauseIcon {
        background-color: #fbdfb1;
        border-color: $logic-node-color;
      }

      > .inlineContainer > .inlineContainer > apim-node > .nodeWrapper > .logicNode > .outerShell > .innerShell > .policyName {
        &:after,
        &:before {
          border-color: $logic-node-color;
        }
      }
    }
  }

  .nodeWrapper {
    .policyNode {
      padding: 20px 0 20px 20px;

      .innerShell {
        &:focus,
        &:hover {
          box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .6);
        }

        &.isSelected {
          box-shadow: 0 2px 20px 0 rgba(0, 0, 0, .6);
        }
      }
    }

    .subflowNode {
      cursor: pointer;
      outline: none;
      min-width: 220px;
      padding: 20px;

      &.minimized {
        min-width: initial;
      }

      &:before {
        border-bottom: 2px solid $wire-color;
        content: '';
        left: 0;
        position: absolute;
        right: 0;
        top: 40px;
      }

      &.minimized > .outerShell > .innerShell > .iconShell,
      &.minimized > .outerShell > .innerShell > .iconShell.iconShellBackground > .logic-node__icon-container {
        background-color: $logic-node-color;
      }

      &:not(.isSelected) > .outerShell > .innerShell > .policyName {
        background-color: $canvas-background-color;
      }

      &.hover-effect:not(.isSelected),
      &:focus:not(.isSelected) {
        background-color: $if-hover-color;
        box-shadow: none;

        .assembly-canvas__insert-point:not(.on-drag-enter):not(.on-drag-hover).dropzoneGroupSelected .ghostPadder,
        .logicNode:not(.isSelected) > .outerShell > .innerShell > .policyName,
        .outerShell > .innerShell > .policyName {
          background-color: $if-hover-color;
        }

        &.hover-effect .isSelected .outerShell > .innerShell > .policyName {
          background-color: $node-background-color;
        }
      }

      &.isSelected {
        background-color: $node-background-color;
        box-shadow: 0 2px 20px 0 rgba(0, 0, 0, .6);

        > .outerShell > .innerShell > .iconShell.iconShellBackground {
          background-color: $node-background-color;
        }
      }
    }
  }

  .warning-dialog {
    background-color: $warning-background-color;
    border: 1px solid $warning-color;
    display: inline-block;
    margin: auto;
    max-width: 30%;
    min-width: 400px;
    padding: 5px 14px;
    position: relative;
    top: 20px;
  }

  .warning-content {
    height: 24px;
    line-height: 24px;
    text-align: left;

    .warning-icon {
      @include svg-icon($warn-icon-black, 24px);
      margin: 0 2px;
    }

    .warning-message {
      font-size: 14px;
      margin: 0 6px;
      vertical-align: top;
    }

    .warning-buttons {
      button {
        float: right;
        font-weight: bold;
        line-height: 24px;
        margin: 0;
        min-height: 24px;
        min-width: 0;
        text-transform: none;

        &:focus,
        &:hover {
          background: none;
          text-decoration: underline;
        }
      }
    }
  }

  .referenceNode {
    .catchShellContainer .nodeActionsContainer,
    .clauseShellContainer .nodeActionsContainer {
      opacity: 0;
    }

    .dropzoneGroup .ghostPolicy {
      display: none !important;
    }
  }
}

.popoverArrow {
  border-bottom: 10px solid #fff;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  height: 0;
  margin: 0 auto;
  position: relative;
  width: 0;
  z-index: 100;
}

.popoverError {
  background-color: #fff;
  box-shadow: 0 3px 8px 0 rgba(0, 0, 0, .4);
  font-family: 'HelvMediumIBM';
  font-size: 10pt;
  padding: 10px;
  position: relative;
  z-index: 99;
}
