:host {
  display: block;
  outline: none;

  & * {
    // init margin
    margin-bottom: 0;
    margin-top: 0;
  }

  .compact {
    padding-top: 8px;
    padding-bottom: 8px;
    
    #filterAdvancedUI,
    #filterValueUI {
      margin-top: 5px;
    }
    #filterValueUI > * + * {
      margin-top: 4px;
    }
    .input-group {
      ef-combo-box + ef-datetime-picker,
      ef-combo-box + ef-combo-box {
        margin-top: 10px;
      }
      ef-datetime-picker + div.radio-group,
      ef-combo-box + div.radio-group {
        margin-top: 6px;
      }
  
      div.radio-group + ef-combo-box {
        margin-top: 8px;
      }
    }
    .cancel-ok {
      margin-top: 4px;
    }

    .group-label, #separator {
      display: none;
    }
  }

  ef-panel {
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
    padding-top: 17px;
    padding-bottom: 31px;
    display: block;
  }

  label {
    line-height: 18px;
    font-size: 12px;
  }

  hr {
    border-top: 1px solid;
    margin-top: 9px;
    margin-bottom: 6px;
    width:100%;
  }

  ef-radio-button {
    height: 18px;
  }

  ef-input,
  ef-datetime-picker,
  ef-search-field,
  #filterCoralSplitBtn {
    width: 100%;
    ef-button {
      flex: 1;
    }
  }

  ef-combo-box {
    width: calc(100% - 1px); // Avoid unexpected scrollbar when zoom-in or zoom-out
  }

  ef-radio-group {
    text-align: center;
  }

  #root_panel{
    display: flex;
    flex-direction: column;
  }

  #filterUI {
    display: flex;
    flex-direction: column;
    overflow-y: hidden;
    flex: 1;
  }

  #dataSelector {
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }

  #filterAdvancedUI,
  #filterValueUI {
    margin-top: 18px;
    padding-top: 1px; // Avoid missing first combo-box border
    padding-bottom: 1px; // Avoid unexpected scrollbar when zoom-in or zoom-out
    display: flex;
    flex-direction: column;
    flex: 1;
    overflow: auto;
  }

  #filterValueUI > * + * {
    margin-top: 19px;
  }

  #filterDialogContent {
    width: 243px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    flex:  1;
  }

  #dataFilter {
    flex: 0 0 auto;
  }

  .group-block>*+* {
    margin-top: 4px;
  }

  .group-block label {
    display: block;
  }

  .group-filter{
    overflow: hidden;
    display: flex;
    flex-direction: column;
    flex: 1;
  }

  .input-group {
    ef-combo-box + ef-datetime-picker,
    ef-combo-box + ef-combo-box {
      margin-top: 19px;
    }

    ef-radio-button + ef-radio-button {
      margin-left: 6px;
    }

    ef-datetime-picker + div.radio-group,
    ef-combo-box + div.radio-group {
      margin-top: 13px;
    }

    div.radio-group + ef-combo-box {
      margin-top: 16px;
    }
  }

  .cancel-ok {
    text-align: right;
    margin-top: 30px;

    #cancel_btn {
      margin-left: 12px;
    }

    #clear_btn {
      float: left;
    }
  }

  .hide {
    display: none !important;
  }

  #filterSortCoralSplitBtn,
  #filterCoralSplitBtn {
    display: flex;
    ef-button:not(:first-child) {
      margin-left: -@button-border-width;
    }
  }
}

