:host {
  --color-milk: #fff;
  --color-elephant-900: #12344d;
  --color-elephant-800: #264966;
  --color-elephant-700: #345c7c;
  --color-elephant-600: #447093;
  --color-smoke-700: #475867;
  --color-smoke-300: #92a2b1;
  --color-smoke-100: #cfd7df;
  --color-smoke-50: #ebeff3;
  --color-smoke-25: #f3f5f7;
  --color-jungle-800: #00795b;
  --color-jungle-500: #00a886;
  --color-jungle-100: #b4e5da;
  --color-jungle-50: #e0f5f1;
  --color-azure-800: #2c5cc5;
  --color-azure-100: #bbdcfe;
  --color-azure-50: #e5f2fd;
  --color-persimmon-900: #c82124;
  --color-persimmon-800: #d72d30;
  --color-persimmon-100: #ffd0d6;
  --color-persimmon-50: #ffecf0;
  --color-casablanca-700: #e86f25;
  --color-casablanca-300: #f8ab59;
  --color-casablanca-100: #fedcb3;
  --color-casablanca-50: #fef1e1;
  --border-color: var(--color-smoke-100);
  --border-success-color: var(--color-jungle-100);
  --border-info-color: var(--color-azure-100);
  --border-danger-color: var(--color-persimmon-100);
  --border-warning-color: var(--color-casablanca-100);
  --bg-dark: var(--color-elephant-900);
  --bg-success: var(--color-jungle-50);
  --bg-info: var(--color-azure-50);
  --bg-danger: var(--color-persimmon-50);
  --bg-warning: var(--color-casablanca-50);
  --radius: 4px;
  --radius-small: 2px;
}

:host {
  --font-stack: -apple-system, blinkmacsystemfont, "Segoe UI", roboto, oxygen, ubuntu, cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  --font-weight-400: 400;
  --font-weight-300: 300;
  --font-weight-500: 500;
  --font-weight-600: 600;
  --font-weight-700: 700;
  --font-size-10: 10px;
  --font-size-12: 12px;
  --font-size-14: 14px;
  --font-size-16: 16px;
  --font-size-18: 18px;
  --font-size-20: 20px;
  --font-size-24: 24px;
  --text-default: var(--color-elephant-900);
  --text-secondary: var(--color-smoke-700);
  --text-disabled: var(--color-smoke-300);
  --text-success: var(--color-jungle-800);
  --text-info: var(--color-azure-800);
  --text-danger: var(--color-persimmon-800);
  --text-warning: var(--color-casablanca-700);
  --text-link: var(--color-azure-800);
  --icon-primary: var(--color-smoke-700);
  --icon-primary-hover: var(--color-smoke-100);
}

:host {
  font-family: var(--font-stack);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  box-sizing: border-box;
}

/**
  @prop --dropdown-min-height: Dropdown minimum height in pixels
  @prop --dropdown-min-width: Dropdown minimum width in pixels
  @prop --dropdown-max-height: Dropdown maximum height in pixels
  @prop --dropdown-max-width: Dropdown maximum width in pixels
  @prop --dropdown-font-size: Dropdown item font size in pixels
*/
:host {
  --btn-primary-color: var(--color-milk);
  --btn-primary-bg: var(--color-elephant-800);
  --btn-primary-bg-dark: var(--color-elephant-900);
  --btn-primary-border: var(--color-elephant-900);
  --btn-primary-border-active: var(--color-elephant-800);
  --btn-secondary-color: var(--text-default);
  --btn-secondary-bg: var(--color-milk);
  --btn-secondary-bg-dark: var(--color-smoke-25);
  --btn-secondary-border: var(--border-color);
  --btn-secondary-border-active: var(--color-smoke-50);
  --btn-danger-color: var(--color-milk);
  --btn-danger-bg: var(--color-persimmon-800);
  --btn-danger-bg-dark: var(--color-persimmon-900);
  --btn-danger-border: var(--color-persimmon-900);
  --btn-link-color: var(--color-azure-800);
  --btn-link-bg: var(--color-smoke-50);
  --bg-color-hover: var(--color-smoke-50);
  --active-box-shadow: inset 0 0 4px 0 rgba(0, 0, 0, 0.25);
  --dropdown-min-height: 100px;
  --dropdown-min-width: 200px;
  --dropdown-max-height: 200px;
  --dropdown-max-width: 480px;
  --dropdown-font-size: var(--font-size-14);
}

@-webkit-keyframes dropdown-fade {
  0% {
    opacity: 0;
    transform: translateY(-10%);
  }
  50% {
    opacity: 0.7;
    transform: translateY(-5%);
  }
  100% {
    opacity: 1;
    transform: translateY(0%);
  }
}

@keyframes dropdown-fade {
  0% {
    opacity: 0;
    transform: translateY(-10%);
  }
  50% {
    opacity: 0.7;
    transform: translateY(-5%);
  }
  100% {
    opacity: 1;
    transform: translateY(0%);
  }
}
.dropdown-container {
  position: relative;
  display: inline-block;
}
.dropdown-container .btn-container {
  display: flex;
}
.dropdown-container .btn-container .dropdown-state {
  cursor: pointer;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
  width: 30px;
  height: 30px;
  margin-left: -10px;
}
.dropdown-container .btn-container .dropdown-state .state-icon {
  padding: 5px 10px;
}
.dropdown-container .btn-container .dropdown-state--primary {
  background-color: var(--btn-primary-bg);
  color: var(--btn-primary-color);
  border: 1px solid var(--btn-primary-border);
  background-image: linear-gradient(to bottom, var(--btn-primary-bg), var(--btn-primary-bg-dark));
}
.dropdown-container .btn-container .dropdown-state--primary:active {
  border: 1px solid var(--btn-primary-border-active);
}
.dropdown-container .btn-container .dropdown-state--primary:hover:not([disabled]) {
  background-color: var(--btn-primary-bg-dark);
  background-image: none;
}
.dropdown-container .btn-container .dropdown-state--secondary {
  background-color: var(--btn-secondary-bg-dark);
  color: var(--btn-secondary-color);
  border: 1px solid var(--btn-secondary-border);
  background-image: linear-gradient(to bottom, var(--btn-secondary-bg), var(--btn-secondary-bg-dark));
}
.dropdown-container .btn-container .dropdown-state--secondary:active {
  border: 1px solid var(--btn-secondary-border-active);
}
.dropdown-container .btn-container .dropdown-state--secondary:hover:not([disabled]) {
  background-color: var(--btn-secondary-bg-dark);
  background-image: none;
}
.dropdown-container .btn-container .dropdown-state--danger {
  color: var(--btn-danger-color);
  background-color: var(--btn-danger-bg);
  border: 1px solid var(--btn-danger-border);
  background-image: linear-gradient(to bottom, var(--btn-danger-bg), var(--btn-danger-bg-dark));
}
.dropdown-container .btn-container .dropdown-state--danger:hover:not([disabled]) {
  background-color: var(--btn-danger-bg-dark);
  background-image: none;
}
.dropdown-container .btn-container .dropdown-state.disabled {
  cursor: not-allowed;
  opacity: 0.4;
}
.dropdown-container .btn-container .dropdown-state:focus {
  border: 1px solid var(--color-azure-800);
  box-shadow: 0 0 0 1px var(--color-azure-800);
  outline: none;
}
.dropdown-container .btn-container .dropdown-state:active {
  box-shadow: var(--active-box-shadow);
}
.dropdown-container .btn-container .down-arrow {
  padding-left: 10px;
}
.dropdown-container .dropdown-menu {
  background-color: #fff;
  min-width: var(--dropdown-min-width);
  max-width: var(--dropdown-max-width);
  min-height: var(--dropdown-min-height);
  max-height: var(--dropdown-max-height);
  padding: 10px;
  border-radius: 5px;
  position: absolute;
  top: 17px;
  box-shadow: rgba(0, 0, 0, 0.176) 0 6px 12px 0;
  box-sizing: border-box;
  overflow-y: scroll;
  list-style: none;
  border: 1px solid rgba(0, 0, 0, 0.15);
  -webkit-animation: dropdown-fade 0.15s;
          animation: dropdown-fade 0.15s;
  display: none;
  z-index: 999;
}
.dropdown-container .dropdown-menu--open {
  display: block;
}
.dropdown-container .dropdown-menu--search {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
.dropdown-container .dropdown-menu .search-list {
  overflow-y: scroll;
  max-height: calc(var(--dropdown-max-height) - 105px);
}
.dropdown-container .dropdown-menu .dropdown-item {
  padding: 5px 25px 8px 10px;
  color: var(--btn-secondary-color);
  font-size: var(--dropdown-font-size);
  font-weight: var(--font-weight-500);
  cursor: pointer;
  background: transparent;
  border-radius: 5px;
}
.dropdown-container .dropdown-menu .dropdown-item:hover {
  background: var(--bg-color-hover);
}
.dropdown-container .dropdown-menu .searchable-item {
  margin-left: 5px;
  display: flex;
}
.dropdown-container .dropdown-menu .searchable-item .dropdown-item {
  cursor: default;
  padding-top: 0;
  padding-bottom: 10px;
  padding-left: 0;
}
.dropdown-container .dropdown-menu .searchable-item .dropdown-item:hover {
  background-color: transparent;
}
.dropdown-container .dropdown-menu .search-btn-grp {
  margin-top: 5px;
  display: flex;
}
.dropdown-container .dropdown-menu .search-btn-grp fw-button {
  margin-right: 5px;
  cursor: pointer;
}