.ph-caret-start:before, :root[dir=rtl] .ph-caret-end:before { content: "\f31b"; }
.ph-caret-end:before, :root[dir=rtl] .ph-caret-start:before { content: "\f31c"; }

.ltr { direction: ltr; }
.rtl { direction: rtl; }

.font-fa-ir { font-family: IRANSansX !important; }
.font-en-us { font-family: sans-serif !important; }

.cursor-pointer { cursor: pointer; }
.cursor-inherit { cursor: inherit; }
.cursor-default { cursor: default; }
.cursor-wait { cursor: wait; }

a {
  cursor: pointer;
  text-decoration: none;
}

a.disabled {
  color: var(--gray-500) !important;
  pointer-events: none !important;
}

.fsr-1 {
  font-size: 1rem !important;
}

.fsr-2 {
  font-size: 2rem !important;
}

.fsr-3 {
  font-size: 3rem !important;
}

.fsr-4 {
  font-size: 4rem !important;
}

.fsr-5 {
  font-size: 5rem !important;
}

.h10m {
  height: 10rem !important;
}

.mw-100 {
  max-width: 100%;
}

.width-1 {
  width: 1px;
}

.text-wrap {
  white-space: normal !important;
  word-wrap: break-word !important;
}

.text-prewrap {
  white-space: pre-wrap !important;
  word-wrap: break-word !important;
}

.grayscale {
  filter: grayscale(100%);
}

.text-justify {
  text-align: justify;
}

.text-align-start {
  text-align: start;
}

.text-align-end {
  text-align: end;
}

.flip-y {
  transform: scaleY(-1);
}

.flip-x {
  transform: scaleX(-1);
}

.flex-none {
  flex: none !important;
}

.hide-empty:empty {
  display: none !important;
}

.hide-empty-div:not(:has(div)) {
  display: none;
}

.hide-no-li:not(:has(li)) {
  display: none !important;
}

.hide-empty-nav-item:not(:has(.nav-item)) {
  display: none;
}

.hide-next-empty-nav-item:not(:has(+ .nav-item .nav-item)) {
  display: none;
}

.bg-gray-100 { background-color: var(--gray-100); }
.bg-gray-200 { background-color: var(--gray-200); }
.bg-gray-300 { background-color: var(--gray-300); }
.bg-gray-400 { background-color: var(--gray-400); }
.bg-gray-500 { background-color: var(--gray-500); }
.bg-gray-600 { background-color: var(--gray-600); }
.bg-gray-700 { background-color: var(--gray-700); }
.bg-gray-800 { background-color: var(--gray-800); }
.bg-gray-900 { background-color: var(--gray-900); }
.text-gray-100 { color: var(--gray-100); }
.text-gray-200 { color: var(--gray-200); }
.text-gray-300 { color: var(--gray-300); }
.text-gray-400 { color: var(--gray-400); }
.text-gray-500 { color: var(--gray-500); }
.text-gray-600 { color: var(--gray-600); }
.text-gray-700 { color: var(--gray-700); }
.text-gray-800 { color: var(--gray-800); }
.text-gray-900 { color: var(--gray-900); }
.border-opacity-30 { --border-opacity: 0.3; }
.border-opacity-35 { --border-opacity: 0.35; }
.border-opacity-40 { --border-opacity: 0.4; }
.border-opacity-45 { --border-opacity: 0.45; }
.bg-opacity-80 { --bg-opacity: 0.8; }
.bg-opacity-85 { --bg-opacity: 0.85; }
.bg-opacity-90 { --bg-opacity: 0.9; }
.bg-opacity-95 { --bg-opacity: 0.95; }

.top-shadow { --box-shadow: 0px -1px 3px 1px rgba(0, 0, 0, 0.125); }
.top-shadow-sm { --box-shadow-sm: 0 -1px 2px 1px rgba(0, 0, 0, 0.1); }
.top-shadow-lg { --box-shadow-lg: 0 -6px 12px 1px rgba(0, 0, 0, 0.15); }

.border-x-0 {
  border-left: none !important;
  border-right: none !important;
}

.border-y-0 {
  border-top: none !important;
  border-bottom: none !important;
}

.card-footer:empty {
  display: none !important;
}

.grid-bordered {
  border: var(--border-width) solid var(--border-color);
}
.grid-bordered div.row:not(:last-child) {
  border-bottom: var(--border-width) solid var(--border-color);
}
.grid-bordered div.row > div:not(:first-child) {
  border-inline-start: var(--border-width) solid var(--border-color);
}

.nav-link.no-link:hover, .nav-link.no-link:focus, .nav-link.no-link:active {
  background-color: transparent !important;
}

.code-toolbar:has(code[class*="language-"], .no-toolbar) .toolbar {
  display: none !important;
}
.code-toolbar:has(code[class*="language-"], .no-padding) > pre {
  padding: 0 !important;
}

:root[dir=rtl] .fancytree-node.fancytree-ico-cf:not(.fancytree-expanded) .fancytree-expander:after {
  content: "\f31b";
}

.select2-selection--single .select2-selection__placeholder {
  color: var(--body-color);
}
.form-select.is-valid ~ .select2 .select2-selection,
.was-validated .form-select:valid ~ .select2 .select2-selection {
  --form-validation-border-color: #059669;
  --form-validation-focus-box-shadow: 0 0 0 0.125rem rgba(5, 150, 105, 0.25);
  border-color: var(--form-validation-border-color);
}
.form-select.is-invalid ~ .select2 .select2-selection,
.was-validated .form-select:invalid ~ .select2 .select2-selection {
  --form-validation-border-color: #ef4444;
  --form-validation-focus-box-shadow: 0 0 0 0.125rem rgba(239, 68, 68, 0.25);
  border-color: var(--form-validation-border-color);
}
.select2-container .select2-results__options .select2-results__option[aria-disabled=true]:not(.loading-results) {
  padding: 0 !important;
  border: 0 !important;
  border-bottom: 1px solid var(--border-color) !important;
  background: transparent;
  pointer-events: none;
  min-height: 1px !important;
}
.select2-container .select2-results__options .select2-results__option[aria-disabled=true]:not(.loading-results):last-child {
  display: none;
}
.select2.rounded-start-0 ~ .select2-container .select2-selection {
  border-start-start-radius: 0 !important;
  border-end-start-radius: 0 !important;
}
.select2.rounded-end-0 ~ .select2-container .select2-selection {
  border-start-end-radius: 0 !important;
  border-end-end-radius: 0 !important;
}

:root[dir=rtl] .noty_effects_open {
  transform: translate(50%);
  -webkit-transform: translate(50%);
}
:root[dir=rtl] .noty_effects_close {
  animation: noty_anim_out_rtl 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  -webkit-animation: noty_anim_out_rtl 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}
@keyframes noty_anim_out_rtl {
  100% {
    -webkit-transform: translate(50%);
    transform: translate(50%);
    opacity: 0;
  }
}
@-webkit-keyframes noty_anim_out_rtl {
  100% {
    -webkit-transform: translate(50%);
    transform: translate(50%);
    opacity: 0;
  }
}

/* TODO: @deprecated should be remove */
select.option-bg option { background-color: var(--white); }
[data-color-theme=dark] select.option-bg option { background-color: #2c2d33; }
