:root {
  --brand-primary: #005944;
  --brand-primary-hover: #159578;
  --brand-primary-active: #003f31;
  --brand-loader: url('/loader.svg?v=elephant-20261103');
}

body {
  padding: 0;
  margin: 0;
}

#app-site {
  display: flex;
  width: 100%;
  height: 100vh;
}

body .loader {
  display: flex;
  position: relative;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  width: 140px;
  height: auto;
  min-height: 140px;
}

#root > .loader,
body .loader.loading {
  width: 180px;
  min-height: 100vh;
}

body .loader > img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

body .gx-loader-view .loader {
  width: 180px;
  height: auto;
  min-height: 180px;
}

body .ant-spin-dot {
  display: inline-block;
  width: 72px !important;
  height: 72px !important;
  background: var(--brand-loader) center / contain no-repeat !important;
  transform: none !important;
  animation: none !important;
}

body .ant-spin-dot-item {
  display: none !important;
  animation: none !important;
}

body .ant-spin-sm .ant-spin-dot {
  width: 40px !important;
  height: 40px !important;
}

body .ant-spin-lg .ant-spin-dot {
  width: 96px !important;
  height: 96px !important;
}

body .ant-spin-nested-loading > div > .ant-spin .ant-spin-dot {
  margin: -36px 0 0 -36px;
}

body .ant-spin-nested-loading > div > .ant-spin-sm .ant-spin-dot {
  margin: -20px 0 0 -20px;
}

body .ant-spin-nested-loading > div > .ant-spin-lg .ant-spin-dot {
  margin: -48px 0 0 -48px;
}

body .anticon-loading,
body .anticon-spin,
body .icon-spin {
  display: inline-block;
  width: 1.5em;
  height: 1.5em;
  min-width: 18px;
  min-height: 18px;
  background: var(--brand-loader) center / contain no-repeat !important;
  vertical-align: middle;
  transform: none !important;
  animation: none !important;
}

body .anticon-loading > svg,
body .anticon-spin > svg,
body .anticon-loading::before,
body .anticon-spin::before,
body .icon-spin::before {
  display: none !important;
}

body .ant-skeleton-active,
body .ant-card-loading .ant-card-body {
  position: relative;
}

body .ant-skeleton-active > *,
body .ant-card-loading-content {
  visibility: hidden;
  animation: none !important;
}

body .ant-skeleton-active::after,
body .ant-card-loading .ant-card-body::after {
  content: '';
  position: absolute;
  inset: 0;
  display: block;
  min-height: 40px;
  background: var(--brand-loader) center / 64px 64px no-repeat;
}

body .gx-site-logo img,
body .gx-w-logo img,
body .gx-logo img {
  width: auto !important;
  max-width: 100%;
  max-height: 64px;
  object-fit: contain;
}

body .gx-app-logo-content > img {
  align-self: center;
  left: auto !important;
  max-width: 100%;
  object-fit: contain;
}
