.fg-hidden {
  display: none !important;
}

.fg-theme-default {
  --font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif;
  font-family: var(--font-family);

  --base-color-1: #bdc3c7;
  --base-color-2: rgba(0, 0, 0, 0.54);
  --base-color-3: #888888;
  --base-color-4: #e8e8e8;
  --base-color-5: #e0e5e9;
  --base-color-6: #f5f7f7;
  --base-color-7: #b7b7b7;
  --base-color-8: #dde1e3;
  --base-color-9: #d3dbe1;
  --base-color-10: #fcfdfe;
  --base-color-11: #ecf0f1;
  --base-color-template: 174 183 194;
  --base-color-12: rgba(var(--base-color-template) / 0.12);
  --base-color-13: rgba(var(--base-color-template) / 0.25);
  --base-color-14: rgba(var(--base-color-template) / 0.35);
  --base-color-15: #b5b9c4;
  --base-color-16: #f1f6ff;
  --base-color-17: #8e8e8e;
  --base-color-18: #181d1f;

  --grid-border-color: var(--base-color-1);
  --grid-border-width: 1px;

  --grid-header-bottom-color: var(--base-color-1);
  --grid-header-bottom-width: 1px;
  --grid-header-bg: var(--base-color-6);
  --grid-header-cell-color: var(--base-color-2);
  --grid-header-cell-font-weight: 600;
  --grid-header-cell-font-size: 12px;
  --grid-header-cell-resize-bg: var(--base-color-8);
  --grid-header-cell-after-height: 50%;
  --grid-header-cell-after-top: calc(50% - 50%*0.5);
  --grid-header-cell-column-group-child-border-top-color: var(--base-color-1);

  --grid-body-bg: white;
  --grid-cell-line-height: 27px;
  --grid-row-bg: white;
  --grid-row-border-bottom-width: 1px;
  --grid-row-border-bottom-color: var(--base-color-9);
  --grid-row-odd-bg: var(--base-color-10);
  --grid-row-hover-bg: var(--base-color-11);
  --grid-row-selected-color: var(--base-color-5);
  --grid-row-group-expander-color: var(--base-color-12);
  --grid-row-group-hover-expander-color: var(--base-color-13);
  --grid-row-group-expander-hover-color: var(--base-color-14);
  --grid-row-group-bar-logo-color: var(--base-color-3);
  --grid-group-level: 0;
  --grid-row-group-level-size: 17px;
  --grid-row-height: 28px;

  --grid-cell-color: var(--base-color-3);
  --grid-cell-font-size: 12px;
  --grid-cell-active-bg: var(--base-color-5);
  --grid-cell-active-box-shadow-color: var(--base-color-15);
  --grid-cell-selected-bg: var(--base-color-16);
  --grid-cell-order-bg: var(--base-color-6);
  --grid-cell-order-border-right-color: var(--base-color-1);

  --column-menu-border-color: var(--base-color-7);
  --column-menu-bg: white;
  --column-menu-item-color: var(--base-color-2);
  --column-menu-item-hover-bg: var(--base-color-4);
  --column-menu-item-group-color: var(--base-color-7);
  --column-menu-item-group-bg: var(--base-color-4);

  --field-input-disabled-bg: color-mix(in srgb, white, var(--base-color-18) 6%);
  --field-list-bg: white;
  --field-list-border-color: var(--base-color-7);
  --field-list-item-hover-bg: var(--base-color-4);

  --field-combo-button-bg: var(--base-color-6);
  --field-combo-button-border-color: var(--base-color-7);
  --field-combo-button-hover-bg: var(--base-color-6);
  --field-combo-item-color: var(--base-color-2);
  --field-combo-list-item-active-bg: var(--base-color-5);
  --field-combo-list-item-selected-bg: rgba(0, 0, 0, 0.5);

  --filter-field-font-size: 12px;
  --filter-field-cell-color: var(--base-color-3);
  --filter-field-sign-border-color: var(--base-color-7);
  --filter-field-input-border-color: var(--base-color-7);
  --filter-field-bg: white;
  --filter-field-sign-hover-bg: var(--base-color-4);
  --filter-field-list-item-color: var(--base-color-2);

  --checkbox-color: var(--base-color-17);

  --svg-text-color: var(--base-color-3);
  --svg-filter-sign-color: var(--base-color-3);
  --svg-menu-color: var(--base-color-3);
  --svg-sort-color: var(--base-color-3);
  --svg-header-filter-color: var(--base-color-2);
  --svg-expander-color: var(--base-color-3);
  --svg-combo-button-color: var(--base-color-2);
  --svg-remove-hover-bg: rgba(0, 0, 0, 0.05);

  --button-border-color: var(--base-color-7);
  --button-bg: var(--base-color-6);
  --button-bg-sign-hover-bg: var(--base-color-4);
  --button-color: var(--base-color-2);
}

.fg-theme-air {
  --font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif;
  font-family: var(--font-family);

  --base-color-1: rgba(0, 0, 0, 0.54);
  --base-color-2: #d9dddf;
  --base-color-3: #888888;
  --base-color-4: #f5f7f7;
  --base-color-5: #b7b7b7;
  --base-color-6: #e8e8e8;
  --base-color-7: #d1d1d1;
  --base-color-8: #dde1e3;
  --base-color-9: #d3dbe1;
  --base-color-10: #fcfdfe;
  --base-color-11: #f8f8f8;
  --base-color-12: #e0e5e9;
  --base-color-13: #b5b9c4;
  --base-color-14: #f1f6ff;
  --base-color-15: #8e8e8e;
  --base-color-16: #181d1f;
  --base-color-17: #bdc3c7;

  --grid-border-color: var(--base-color-7);
  --grid-border-width: 1px;

  --grid-header-bottom-color: var(--base-color-8);
  --grid-header-bottom-width: 1px;
  --grid-header-bg: var(--base-color-4);
  --grid-header-cell-color: var(--base-color-1);
  --grid-header-cell-font-weight: 600;
  --grid-header-cell-font-size: 12px;
  --grid-header-cell-resize-bg: var(--base-color-2);
  --grid-header-cell-after-height: 100%;
  --grid-header-cell-after-top: 0px;
  --grid-header-cell-column-group-child-border-top-color: var(--base-color-2);

  --grid-body-bg: white;
  --grid-cell-line-height: 27px;
  --grid-row-bg: white;
  --grid-row-border-bottom-width: 1px;
  --grid-row-border-bottom-color: var(--base-color-9);
  --grid-row-odd-bg: var(--base-color-10);
  --grid-row-hover-bg: var(--base-color-11);
  --grid-group-level: 0;
  --grid-row-group-level-size: 17px;
  --grid-row-height: 28px;

  --grid-cell-color: var(--base-color-3);
  --grid-cell-font-size: 12px;
  --grid-cell-active-bg: var(--base-color-12);
  --grid-cell-active-box-shadow-color: var(--base-color-13);
  --grid-cell-selected-bg: var(--base-color-14);
  --grid-cell-order-bg: var(--base-color-4);
  --grid-cell-order-border-right-color: var(--base-color-17);

  --column-menu-border-color: var(--base-color-5);
  --column-menu-bg: white;
  --column-menu-item-color: var(--base-color-1);
  --column-menu-item-hover-bg: var(--base-color-6);
  --column-menu-item-group-color: var(--base-color-5);
  --column-menu-item-group-bg: var(--base-color-6);

  --field-input-disabled-bg: color-mix(in srgb, white, var(--base-color-16) 6%);
  --field-list-bg: white;
  --field-list-border-color: var(--base-color-5);
  --field-list-item-hover-bg: var(--base-color-6);

  --field-combo-button-bg: var(--base-color-4);
  --field-combo-button-border-color: var(--base-color-5);
  --field-combo-button-hover-bg: var(--base-color-4);
  --field-combo-list-item-color: var(--base-color-1);
  --field-combo-list-item-active-bg: var(--base-color-12);
  --field-combo-list-item-selected-bg: rgba(0, 0, 0, 0.5);

  --filter-field-font-size: 12px;
  --filter-field-cell-color: var(--base-color-3);
  --filter-field-sign-border-color: var(--base-color-5);
  --filter-field-input-border-color: var(--base-color-5);
  --filter-field-bg: white;
  --filter-field-sign-hover-bg: var(--base-color-6);
  --filter-field-list-item-color: var(--base-color-1);

  --checkbox-color: var(--base-color-15);

  --svg-text-color: var(--base-color-3);
  --svg-filter-sign-color: var(--base-color-3);
  --svg-menu-color: var(--base-color-3);
  --svg-sort-color: var(--base-color-3);
  --svg-header-filter-color: var(--base-color-1);
  --svg-expander-color: var(--base-color-3);
  --svg-combo-button-color: var(--base-color-1);
  --svg-remove-hover-bg: rgba(0, 0, 0, 0.05);

  --button-border-color: var(--base-color-5);
  --button-bg: var(--base-color-4);
  --button-bg-sign-hover-bg: var(--base-color-6);
  --button-color: var(--base-color-1);
}

.fg-theme-dark {
  --font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif;
  font-family: var(--font-family);

  --base-color-1: #ffffff26;
  --base-color-2: #ffffff99;
  --base-color-3: #1f2836;
  --base-color-4: #1f354c;
  --base-color-5: #2196f3;
  --base-color-6: #626972;
  --base-color-7: #2e3744;
  --base-color-8: #203145;
  --base-color-9: #888888;
  --base-color-10: #203e5c;
  --base-color-11: #2F3744;

  --grid-border-color: var(--base-color-1);
  --grid-border-width: 1px;

  --grid-header-bottom-color: var(--base-color-1);
  --grid-header-bottom-width: 1px;
  --grid-header-bg: var(--base-color-7);
  --grid-header-cell-color: var(--base-color-2);
  --grid-header-cell-font-weight: 600;
  --grid-header-cell-font-size: 12px;
  --grid-header-cell-resize-bg: var(--base-color-1);
  --grid-header-cell-after-height: 50%;
  --grid-header-cell-after-top: calc(50% - 50%*0.5);
  --grid-header-cell-column-group-child-border-top-color: var(--base-color-1);

  --grid-body-bg: var(--base-color-3);
  --grid-cell-line-height: 27px;
  --grid-row-bg: var(--base-color-3);
  --grid-row-border-bottom-width: 1px;
  --grid-row-border-bottom-color: var(--base-color-1);
  --grid-row-odd-bg: var(--base-color-3);
  --grid-row-hover-bg: var(--base-color-8);
  --grid-row-selected-color: var(--base-color-4);

  --grid-row-group-expander-color: rgba(174, 183, 194, 0.12);
  --grid-row-group-hover-expander-color: rgba(174, 183, 194, 0.25);
  --grid-row-group-expander-hover-color: rgba(174, 183, 194, 0.35);
  --grid-row-group-bar-logo-color: var(--base-color-9);
  --grid-group-level: 0;
  --grid-row-group-level-size: 17px;
  --grid-row-height: 28px;

  --grid-cell-color: var(--base-color-2);
  --grid-cell-font-size: 12px;
  --grid-cell-active-bg: var(--base-color-10);
  --grid-cell-active-box-shadow-color: var(--base-color-5);
  --grid-cell-selected-bg: color-mix(in srgb, transparent, var(--base-color-5) 20%);
  --grid-cell-order-bg: var(--base-color-11);
  --grid-cell-order-border-right-color: rgba(255, 255, 255, 0.15);

  --column-menu-border-color: color-mix(in srgb, transparent, white 20%);
  --column-menu-bg: color-mix(in srgb, var(--base-color-3), white 3%);
  --column-menu-item-color: var(--base-color-2);
  --column-menu-item-hover-bg: color-mix(in srgb, transparent, var(--base-color-5) 8%);
  --column-menu-item-group-color: color-mix(in srgb, transparent, white 20%);
  --column-menu-item-group-bg: color-mix(in srgb, transparent, white 10%);

  --field-input-disabled-bg: var(--base-color-6);
  --field-list-bg: color-mix(in srgb, var(--base-color-3), white 3%);
  --field-list-border-color: color-mix(in srgb, transparent, white 20%);
  --field-list-item-hover-bg: color-mix(in srgb, transparent, var(--base-color-5) 8%);

  --field-combo-button-bg: var(--base-color-7);
  --field-combo-button-border-color: var(--base-color-1);
  --field-combo-button-hover-bg: var(--base-color-1);
  --field-combo-list-item-color: var(--base-color-2);
  --field-combo-list-item-active-bg: var(--base-color-4);
  --field-combo-list-item-selected-bg: var(--base-color-4);

  --filter-field-font-size: 12px;
  --filter-field-cell-color: var(--base-color-9);
  --filter-field-sign-border-color: var(--base-color-1);
  --filter-field-input-border-color: var(--base-color-1);
  --filter-field-bg: var(--base-color-3);
  --filter-field-sign-hover-bg: color-mix(in srgb, transparent, white 10%);
  --filter-field-list-item-color: var(--base-color-2);

  --checkbox-color: var(--base-color-6);
  --svg-text-color: rgba(255, 255, 255, 0.6);
  --svg-filter-sign-color: var(--base-color-2);
  --svg-menu-color: rgba(255, 255, 255, 0.6);
  --svg-sort-color: rgba(255, 255, 255, 0.6);
  --svg-header-filter-color: white;
  --svg-expander-color: var(--base-color-2);
  --svg-combo-button-color: var(--base-color-2);
  --svg-remove-hover-bg: rgba(174, 183, 194, 0.12);

  --button-border-color: var(--base-color-1);
  --button-bg: var(--base-color-7);
  --button-bg-sign-hover-bg: color-mix(in srgb, transparent, white 10%);
  --button-color: var(--base-color-2);

  .fg-filter-field-input {
    border-left: 1px solid transparent;
    color: white;
    &:focus {
      border: 1px solid var(--base-color-5);
    }
  }

  .fg-editors-container {
    .fg-field {
      background-color: var(--base-color-7);
      input {
        background-color: var(--base-color-3);
        color: white;
        border: 1px solid var(--base-color-5);
        border-radius: 2px;
        &:focus {
          border: 2px solid var(--base-color-5);
          background-color: var(--base-color-11);
        }
      }
    }
  }

  .fg-header-cell-menu {
    svg {
      &:hover {
        background-color: color(srgb 1 1 1 / 0.1);
        box-shadow: color(srgb 1 1 1 / 0.1) 0px 0px 0px 2px;
      }
    }
  }

  input[type="checkbox"] {
    appearance: none;
    width: 14px;
    min-width: 14px;
    height: 14px;
    border: 1px solid #ccc;
    border-radius: 3px;
    background-color: var(--base-color-6);
    cursor: pointer;
    position: relative;
  }

  input[type="checkbox"]:checked, input[type="checkbox"]:indeterminate {
    appearance: auto;
  }

  color-scheme: dark;
}

.fg-theme-dark.fg-field-combo-container {
  .fg-filter-field-input {
    border-left: 1px solid var(--filter-field-input-border-color);
    &:focus {
      border: 1px solid var(--base-color-5);
    }
  }
}

.fg-grid {
  cursor: default;
  height: 100%;
  width: 100%;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  border: var(--grid-border-width) solid var(--grid-border-color);
  font-family: var(--font-family);
}

.fg-grid * {
  box-sizing: border-box;
  outline: none;
}

.fg-row-grouping {
  .fg-cell-selection:not(.fg-row-group-value-cell):not(.fg-row-group-cell) {
    .fg-input-checkbox {
      display: none;
    }
  }
  .fg-header-cell:not(.fg-header-row-group-cell) {
    .fg-header-cell-selection {
      .fg-input-checkbox {
        display: none;
      }
    }
  }
}

.fg-editors-container {
  position: absolute;
  left: 0;
  right: 0;
  z-index: 101000 !important;
}

.fg-field {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: stretch;
}

.fg-field-disabled {
  .fg-field-input, .fg-filter-field-input {
    background: var(--field-input-disabled-bg);
  }
}

.fg-field-input {
  width: 100%;
  padding: 4px;
  box-sizing: border-box;
  margin: 0;
  outline: 0;
  border: 1px solid #b7b7b7;
  border-radius: 0;
  font-size: var(--filter-field-font-size);
  color: var(--filter-field-cell-color);
}

.fg-field-combo {
  display: flex;
  align-items: center;
  background: var(--field-combo-button-bg);
  .fg-field-input {
    height: 100%;
  }
}

.fg-field-combo-button {
  width: 25px;
  max-width: 25px;
  min-width: 25px;
  height: 100%;
  border: 1px solid var(--field-combo-button-border-color);
  border-left-width: 0;
  display: inline-flex;
  flex-flow: row;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background-color .1s;
  &:hover {
    background: var(--field-combo-button-hover-bg);
  }
  svg {
    color: var(--svg-combo-button-color);
  }
}

.fg-field-combo-list {
  font-family: var(--font-family);
  position: absolute;
  box-sizing: border-box;
  border: 1px solid var(--field-list-border-color);
  background: var(--field-list-bg);
  width: 150px;
  max-height: 200px;
  overflow-y: auto;
}

.fg-field-combo-list-item {
  font-family: var(--font-family);
  padding: 5px;
  cursor: pointer;
  display: flex;
  color: var(--filter-field-list-item-color);
  font-weight: bold;
  &:hover {
    background: var(--field-list-item-hover-bg);
  }
}

.fg-field-combo-list-item-active {
  background-color: var(--field-combo-list-item-active-bg);
}

.fg-field-combo-list {
  .fg-field-combo-list-item-selected {
    background: var(--field-combo-list-item-selected-bg);
    color: white;
  }
}

.fg-field-combo-list-item-text {
  font-size: 12px;
  font-weight: 600;
  line-height: 18px;
  padding-left: 5px;
}

.fg-string-field {}

.fg-string-field-input {}

.fg-filter-bar {
  border-bottom: var(--grid-header-bottom-width) solid var(--grid-header-bottom-color);
  background-color: var(--grid-header-bg);
  position: relative;
  min-width: 0;
  overflow: hidden;
}

.fg-filter-bar-inner {}

.fg-filter-bar-inner-container {}

.fg-filter-bar-cell {
  display: inline-flex;
  align-items: center;
  position: absolute;
  height: 100%;
  overflow: hidden;
  padding: 2px;
  color: var(--grid-header-cell-color);
  font-size: var(--grid-header-cell-font-size);
  font-weight: var(--grid-header-cell-font-weight);
}

.fg-field-combo-container {
  position: absolute;
  border: 1px solid var(--field-list-border-color);
  background: var(--field-list-bg);
  box-sizing: border-box;
  .fg-field-combo-list {
    width: 100%;
    border-width: 1px 0 0 0;
    .fg-field-combo-list-item {
      padding-left: 7px;
    }
  }
  .fg-filter-field-input {
    height: 28px;
    margin: 10px;
    width: calc(100% - 20px);
    border-left-width: 1px;
    border-radius: 2px;
  }

  .fg-bbar {
    border-top: 1px solid var(--grid-header-bottom-color);
    height: 33px;
    display: flex;
    align-items: center;
    padding-left: 5px;
    padding-right: 5px;
  }
}

.fg-filter-field {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: stretch;
  /*
  border: 1px solid #b7b7b7;
   */
}

.fg-filter-field-sign {
  transition: background-color .2s;
  width: 27px;
  max-width: 27px;
  min-width: 27px;
  border: 1px solid var(--filter-field-sign-border-color);
  display: inline-flex;
  flex-flow: row;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  user-select: none;
  &:hover {
    background: var(--filter-field-sign-hover-bg);
  }
}

.fg-filter-field-input {
  width: 100%;
  padding: 4px;
  padding-top: 6px;
  box-sizing: border-box;
  margin: 0px;
  outline: 0px;
  border: 1px solid var(--filter-field-input-border-color);
  border-width: 1px 1px 1px 0px;
  border-radius: 0px;
  font-size: var(--filter-field-font-size);
  color: var(--filter-field-cell-color);
  background-color: var(--filter-field-bg);
}

.fg-filter-field-list {
  font-family: var(--font-family);
  position: absolute;
  border: 1px solid var(--field-list-border-color);
  background: var(--field-list-bg);
  width: 150px;
  min-height: 50px;
  max-height: 200px;
  overflow-y: auto;
  box-sizing: border-box;
  svg {
    color: var(--svg-filter-sign-color);
  }
}

.fg-filter-field-list-item {
  padding: 5px;
  cursor: pointer;
  display: flex;
  align-items: center;
  color: var(--filter-field-list-item-color);
  font-weight: bold;
  line-height: 18px;

  &:hover {
    background: var(--field-list-item-hover-bg);
  }
}

.fg-filter-field-list-item-in {
  font-size: 15px;
  line-height: 16px;
}

.fg-filter-field-list-item-text {
  font-size: 12px;
  font-weight: 600;
  line-height: 18px;
  padding-left: 5px;
}

.fg-filter-field-text {
  display: none;
  font-weight: 600;
  font-size: 13px;
  line-height: 27px;
  padding-left: 5px;
  color: #616161;
}

.fg-header {
  border-bottom: var(--grid-header-bottom-width) solid var(--grid-header-bottom-color);
  background-color: var(--grid-header-bg);
  position: relative;
  min-width: 0;
  overflow: hidden;
}

.fg-header-inner {}

.fg-header-row {}

.fg-header-row-column-group {
  .fg-header-cell-label {
    /*justify-content: center;*/
  }
}

.fg-header-cell-sticky.fg-header-cell {
  overflow: visible;
  .fg-header-cell-label {
    overflow: visible;
    .fg-header-cell-text {
      position: sticky;
      left: 12px;
    }
  }
}

.fg-header-cell-column-group-child {
  border-top: 1px solid var(--grid-header-cell-column-group-child-border-top-color);
}

.fg-header-span-height {
  top: 0;
}

.fg-header-cell-column-group {
  .fg-header-cell-label {
    user-select: none;
  }
  .fg-header-cell-text {
    user-select: none;
  }
}

.fg-header-cell {
  display: inline-flex;
  align-items: center;
  position: absolute;
  height: 100%;
  overflow: hidden;
  padding-left: 10px;
  padding-right: 10px;
  color: var(--grid-header-cell-color);
  font-size: var(--grid-header-cell-font-size);
  font-weight: var(--grid-header-cell-font-weight);
}

.fg-header-cell-label {
  display: flex;
  flex: 1 1 auto;
  overflow: hidden;
  align-items: center;
  text-overflow: ellipsis;
  align-self: stretch;
}

.fg-header-cell-sortable {
  .fg-header-cell-label {
    cursor: pointer;
  }
}

.fg-header-cell-text {
  overflow: hidden;
  text-overflow: ellipsis;
}

.fg-header-cell-resize {
  position: absolute;
  z-index: 2;
  height: 100%;
  width: 8px;
  top: 0;
  cursor: ew-resize;
  display: flex;
  align-items: center;
  right: -4px;
}

.fg-header-cell-not-resizable {
  .fg-header-cell-resize {
    cursor: default;
    opacity: 0.5;
  }
}

.fg-header-cell {
  &:after {
    content: "";
    position: absolute;
    right: 0;
    z-index: 1;
    display: block;
    width: 1px;
    height: var(--grid-header-cell-after-height);
    top: var(--grid-header-cell-after-top);
    background-color: var(--grid-header-cell-resize-bg);
  }
}

.fg-body {
  display: flex;
  flex: 1;
  position: relative;
  min-height: 0;
  overflow: hidden;
  scroll-behavior: smooth;
  user-select: none;
  background-color: var(--grid-body-bg);
}

.fg-body-inner {
  overflow: hidden;
  min-width: 0;
  flex: 1 1 auto;
  transform: translateZ(0);
}

.fg-body-inner-container {
  position: relative;
}

.fg-cell-wrapper {
  display: flex;
  align-items: center;
  gap: 5px;
  .fg-cell-value {
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
  }
}

/*
.fg-cell-selection {
  .fg-cell-wrapper {
    margin-left: calc(var(--grid-group-level) * var(--grid-row-group-level-size) + 4px);
  }
} */

.fg-grid:not(.fg-editing) {
  .fg-cell-active {
    background: var(--grid-cell-active-bg);
    box-shadow: 0 0 0 2px var(--grid-cell-active-box-shadow-color);
    z-index: 100000 !important;
  }
}

:not(.fg-editing) .fg-cell-active-row {
  z-index: 100000 !important;
}

.fg-cell-selected {
  background: var(--grid-cell-selected-bg);
}

.fg-cell-value {}

.fg-row, .fg-row-group {
  z-index: 1;
  opacity: 1;
}

.fg-row {
  position: absolute;
  width: 100%;
  height: var(--grid-row-height);
  background-color: var(--grid-row-bg);

  border-bottom: var(--grid-row-border-bottom-width) solid var(--grid-row-border-bottom-color);
  box-sizing: border-box;
}

.fg-row-group {
  position: absolute;
  width: 100%;
  height: var(--grid-row-height);
  background-color: var(--grid-row-bg);

  border-bottom: var(--grid-row-border-bottom-width) solid var(--grid-row-border-bottom-color);
  box-sizing: border-box;

  &:hover {
    .fg-row-group-cell-expander {
      background-color: var(--grid-row-group-hover-expander-color);
    }
  }

  .fg-row-group-cell-expander {
    &:hover {
      background-color: var(--grid-row-group-expander-hover-color);
    }
  }
}

.fg-row-group-value-cell {
  .fg-cell-wrapper {
    padding-left: calc(var(--grid-group-level) * var(--grid-row-group-level-size) + 4px);
  }
}

.fg-row-group-cell {
  display: flex;
  gap: 5px;
  align-items: center;
}

.fg-row-group-cell {
  width: 100%;
  color: var(--grid-cell-color);
  font-size: var(--grid-cell-font-size);
  font-family: var(--font-family);
  position: absolute;
  white-space: nowrap;
  height: 100%;
  padding-left: 10px;
  padding-right: 10px;
  line-height: var(--grid-cell-line-height);
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: bold;
  cursor: pointer;
}

.fg-row-group-cell-expander {}

.fg-row-group-cell-value {
  overflow: hidden;
  text-overflow: ellipsis;
}

.fg-row-group-cell-selection {
  display: flex;
  margin-left: 2px;
  margin-right: 1px;
  input {
    margin: 0px;
  }
}

.fg-row-animation {
  .fg-row, .fg-row-group {
    transition: transform .4s, top .4s, background-color .1s, opacity .2s;
  }
}

.fg-row-group-bar {
  display: flex;
  align-items: center;
  gap: 5px;
  border-bottom: var(--grid-header-bottom-width) solid var(--grid-header-bottom-color);
  background-color: var(--grid-header-bg);
  position: relative;
  min-width: 0;
  overflow: hidden;
  padding-left: 5px;

  .fg-row-group-bar-empty-text {
    color: var(--grid-header-cell-color);
    font-size: var(--grid-header-cell-font-size);
    font-weight: var(--grid-header-cell-font-weight);
    user-select: none;
  }
}

.fg-row-even {}

.fg-row-odd {
  background-color: var(--grid-row-odd-bg);
}

.fg-row-hover {
  background-color: var(--grid-row-hover-bg);
}

.fg-row-selected {
  background: var(--grid-row-selected-color);
}

.fg-cell {
  box-sizing: border-box;
  color: var(--grid-cell-color);
  font-size: var(--grid-cell-font-size);
  font-family: var(--font-family);
  /*display: flex;*/
  display: inline-block;
  /*
  align-items: center;
   */
  position: absolute;
  white-space: nowrap;
  height: 100%;
  padding-left: 10px;
  padding-right: 10px;
  line-height: var(--grid-cell-line-height);
  overflow: hidden;
  text-overflow: ellipsis;
}

.fg-cell-align-center {
  text-align: center;
}

.fg-cell-align-right {
  text-align: right;
}

.fg-enabled-cell-right-border {
  .fg-cell {
    border-right: var(--grid-row-border-bottom-width) solid var(--grid-row-border-bottom-color);
  }

  .fg-row-group {
    .fg-cell {
      border-right: unset;
    }
  }
}

.fg-cell-boolean {
  display: flex;
  align-items: center;
  input[type='checkbox'] {
    accent-color: var(--checkbox-color);
    transform: scale(1.2);
    cursor: pointer;
  }
}

.fg-cell-order {
  background-color: var(--grid-cell-order-bg);
  border-right: 1px solid var(--grid-cell-order-border-right-color);
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: 600;
}

.fg-input-checkbox {
  accent-color: var(--checkbox-color);
  transform: scale(1.2);
  cursor: pointer;
}

.fg-body-vertical-scroll {
  display: flex;
  position: relative;
  height: 100%;
}

.fg-body-vertical-scroll-container {
  overflow-x: hidden;
  overflow-y: scroll;
}

.fg-body-vertical-scroll-size {}

.fg-body-horizontal-scroll {
  display: flex;
  position: relative;
}

.fg-body-horizontal-scroll-container {
  overflow-x: scroll;
  overflow-y: hidden;
}

.fg-body-horizontal-scroll-size {}

.fg-scrollbar-invisible.fg-body-vertical-scroll {
  position: absolute;
  right: 0;
  bottom: 0;
  top: 0;
}

.fg-scrollbar-invisible.fg-body-horizontal-scroll {
  position: absolute;
  right: 0;
  bottom: 0;
}

.fg-filter-indicator-container {
  display: flex;
}

.fg-header-filter-el {
  height: 16px;
}

.fg-sort-indicator-container {
  display: flex;
}

.fg-sort-order {
  font-weight: 600;
  padding-left: 4px;
}

.fg-sort-asc, .fg-sort-desc {
  height: 16px;
  svg {
    color: var(--svg-sort-color);
  }
}

.fg-header-cell-menu-el {}

.fg-header-filter-el {
  svg {
    width: 18px;
    height: 18px;
    line-height: 18px;
    color: var(--svg-header-filter-color);
    margin-left: 4px;
  }
}

.fg-touch {
  .fg-header-cell-menu {
    opacity: 1;
  }
}

.fg-header-cell-menu {
  opacity: 0;
  transition: opacity .2s;
  cursor: pointer;
  display: flex;
  height: 100%;
  align-items: center;

  svg {
    transition:
      background-color .2s,
      box-shadow .2s;
    width: 18px;
    height: 18px;
    line-height: 18px;
    /*color: rgba(0, 0, 0, 0.54);*/
    color: var(--svg-menu-color);
    /*margin-left: 4px;*/
    border-radius: 1px;

    &:hover {
      background-color: color(srgb 0.0941176 0.113725 0.121569 / 0.1);
      box-shadow: color(srgb 0.0941176 0.113725 0.121569 / 0.1) 0px 0px 0px 2px;
    }
  }
}

.fg-header-cell {
  &:hover {
    .fg-header-cell-menu {
      opacity: 1;
    }
  }
}

.fg-header-cell-align-center {
  .fg-header-cell-label {
    justify-content: center;
  }
}

.fg-header-cell-align-right {
  flex-direction: row-reverse;
  .fg-header-cell-label {
    flex-direction: row-reverse;
  }
}

.fg-header-cell-selection {
  margin-right: 7px;
}

.fg-column-resizing * {
  cursor: ew-resize !important;
}

.fg-column-resizing .fg-header-cell:hover .fg-header-cell-menu {
  opacity: 0;
}

.fg-column-dragging * {
  cursor: move !important;
}

.fg-column-dragging .fg-header-cell:hover .fg-header-cell-menu {
  opacity: 0;
}

.fg-row-group-bar-item-container {
  display: flex;
  align-items: center;
  justify-content: center;
  user-select: none;
  .fg-svg-chevron-right {
    margin-right: 2px;
  }
}

.fg-row-group-bar-item-active {
  opacity: 0.7;
}

.fg-row-group-bar-item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2px;
  color: var(--grid-header-cell-color);
  font-size: var(--grid-header-cell-font-size);
  font-weight: var(--grid-header-cell-font-weight);
  background-color: var(--grid-header-bg);
  border: var(--grid-border-width) solid var(--grid-border-color);
  border-radius: 4px;
  padding: 3px 3px 3px 1px;
}

.fg-fake-column-cell-dragging {
  cursor: move !important;
  position: absolute;
  left: -1000px;
  top: -1000px;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  background-color: var(--grid-header-bg);
  border: var(--grid-border-width) solid var(--grid-border-color);
  border-radius: 3px;
  padding: 7px 15px;
  color: var(--grid-header-cell-color);
  font-size: var(--grid-header-cell-font-size);
  font-weight: var(--grid-header-cell-font-weight);
  box-shadow: rgba(170, 175, 183, 0.4) 0px 1px 4px 1px;
  .fg-svg-group, .fg-svg-block {
    display: none;
  }
}

.fg-fake-column-cell-dragging.fg-fake-column-cell-dragging-allow {
  .fg-svg-group {
    display: block;
  }

  .fg-svg-drag, .fg-svg-block {
    display: none;
  }
}

.fg-fake-column-cell-dragging.fg-fake-column-cell-dragging-deny {
  .fg-svg-block {
    display: block;
  }

  .fg-svg-drag, .fg-svg-group {
    display: none;
  }
}

:where(.fg-sort-asc, .fg-sort-desc) {
  svg {
    width: 13px;
    height: 16px;
    line-height: 16px;
    color: rgba(0, 0, 0, 0.54);
    margin-left: 4px;
  }
}

:where(.fg-sort-asc, .fg-sort-desc, .fg-header-filter-el, .fg-header-cell-menu) {
  path {
    fill: currentcolor;
  }
}

:where(.fg-header-filter-el, .fg-header-cell-menu) {
  path {
    fill-rule: evenodd;
  }
}

.fg-columns-menu {
  z-index: 1;
  opacity: 0;
  transition: opacity 0.2s;

  position: absolute;
  border: 1px solid #b7b7b7;
  background: white;

  border: 1px solid var(--column-menu-border-color);
  background: var(--column-menu-bg);

  width: 152px;
  min-height: 50px;
  max-height: 200px;
  overflow-y: auto;
  user-select: none;

  content-visibility: auto;
  contain-intrinsic-size: 500px;
}

.fg-columns-menu-item {
  padding: 5px;
  cursor: pointer;
  display: flex;
  align-items: center;
  color: var(--column-menu-item-color);
  font-weight: bold;
  &:hover {
    background: var(--column-menu-item-hover-bg);
  }

  input[type='checkbox'] {
    accent-color: var(--checkbox-color);
    transform: scale(1.2);
    cursor: pointer;
  }
}

.fg-columns-menu-item-text {
  font-size: 12px;
  font-weight: 600;
  line-height: 18px;
  padding-left: 5px;
}

.fg-columns-menu-item-group-text {
  font-size: 12px;
  font-weight: 600;
  line-height: 18px;
  padding: 0px 3px;
  margin-left: 5px;
  background: var(--column-menu-item-group-bg);
  border: 1px solid var(--column-menu-item-group-color);
  border-radius: 2px;
}

/* For hiding and showing columns */
.fg-animate-cells-position {
  :where(.fg-header-cell, .fg-cell, .fg-filter-bar-cell, .fg-row-group-cell) {
    transition: left .2s;
  }
}

/* Svg */
.fg-svg-item {
  width: 18px;
  height: 18px;
  min-width: 18px;
  min-height: 18px;
  border-radius: 2px;
  /*color: var(--svg-text-color);*/
  display: flex;
  align-items: center;
  justify-content: center;
  svg {
    color: var(--svg-text-color);
    width: 16px;
    height: 16px;
  }
}

.fg-row-group-cell-expander {
  background-color: var(--grid-row-group-expander-color);
  transition: background-color 0.2s linear;
  margin-left: calc(var(--grid-group-level) * var(--grid-row-group-level-size));
  svg {
    color: var(--svg-expander-color);
    transition: transform 0.2s linear;
    transform: rotate(0deg);
  }
}

.fg-row-group-cell-expanded {
  .fg-row-group-cell-expander {
    svg {
      transform: rotate(90deg);
    }
  }
}

.fg-svg-chevron-right {}

.fg-svg-group {}

.fg-svg-block {}

.fg-svg-drag {
  transition: background-color 0.2s linear;
  &:hover {
    background-color: rgba(0, 0, 0, 0.05);
  }
  cursor: grab;
}

.fg-svg-remove {
  transition: background-color 0.2s linear;
  &:hover {
    background-color: var(--svg-remove-hover-bg);
  }
  cursor: pointer;
}

/* Button */
.fg-button {
  cursor: pointer;
  border: 1px solid var(--button-border-color);
  border-radius: 3px;
  background: var(--button-bg);
  height: 22px;
  padding: 0 5px;
  line-height: 12px;
  min-width: 27px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--button-color);
  font-size: 12px;
  font-weight: 600;
  &:hover {
    background: var(--button-bg-sign-hover-bg);
  }
}
