/*
 * TSP Form System
 * Figma-aligned RTL fields and form layout
 * Load after tokens.css, Bootstrap and Select2 styles.
 */

:root {
  --tt-form-columns: 4;
  --tt-form-gap-x: 16px;
  --tt-form-gap-y: 18px;
  --tt-field-height: 40px;
  --tt-field-bg: #f7f7f7;
  --tt-field-bg-hover: #f3f3f3;
  --tt-field-border: #e5e5e5;
  --tt-field-border-hover: #d7d7d7;
  --tt-field-border-focus: #343434;
  --tt-field-text: #343434;
  --tt-field-placeholder: #b4b4b4;
  --tt-field-label: #505050;
  --tt-field-disabled: #d7d7d7;
  --tt-field-danger: var(--tt-danger, #e24b52);
  --tt-field-success: var(--tt-success, #168a55);
  --tt-form-radius: var(--tt-radius-sm, 5px);
}

/* ---------- Form shell and responsive grid ---------- */

.tt-form,
form.tt-form,
.form-body {
  direction: rtl;
  color: var(--tt-text, #343434);
  font-family: var(--tt-font-family, "TTIranSans", Tahoma, Arial, sans-serif);
  font-size: 12px;
  text-align: right;
}

.tt-form-grid,
.form-body > .row {
  display: grid;
  grid-template-columns: repeat(var(--tt-form-columns), minmax(0, 1fr));
  gap: var(--tt-form-gap-y) var(--tt-form-gap-x);
  margin: 0;
}

.tt-form-grid + .tt-form-grid,
.form-body > .row + .row {
  margin-top: var(--tt-form-gap-y);
}

.tt-form-field,
.form-body > .row > [class*="col-"] {
  min-width: 0;
  max-width: none;
  padding: 0;
}

.tt-form-field--full,
.tt-col-full,
.form-body > .row > .col-md-12 {
  grid-column: 1 / -1;
}

.tt-form-field--half,
.tt-col-half,
.form-body > .row > .col-md-6 {
  grid-column: span 2;
}

.tt-form-section {
  padding: 20px 10px;
  border-top: 1px solid var(--tt-border, #e5e5e5);
}

.tt-form-section:first-child {
  padding-top: 0;
  border-top: 0;
}

.tt-form-section__title,
.form-body .card-title {
  margin: 0 0 18px;
  color: var(--tt-text, #343434);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.8;
}

.form-body .card-title + hr {
  display: none;
}

/* ---------- Field wrapper and label ---------- */

.tt-form .form-group > .d-flex,
.form-body .form-group > .d-flex {
  justify-content: flex-start !important;
  align-items: center !important;
  gap: 5px;
  min-height: 20px;
  margin-bottom: 5px !important;
}

.tt-form .form-group > .d-flex > label,
.form-body .form-group > .d-flex > label {
  margin: 0;
  color: var(--tt-field-label);
  font-size: 11px;
  font-weight: 500;
  line-height: 20px;
}

.tt-field-guide,
.tt-form button.tt-field-guide,
.form-body button.tt-field-guide {
  display: inline-flex !important;
  flex: 0 0 17px !important;
  align-items: center;
  justify-content: center;
  width: 17px !important;
  min-width: 17px !important;
  max-width: 17px !important;
  height: 17px !important;
  min-height: 17px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid var(--tt-border, #d7d7d7) !important;
  border-radius: 50% !important;
  color: var(--tt-text-muted, #858585) !important;
  background: #fff !important;
  box-shadow: none !important;
  font-family: Arial, sans-serif !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  line-height: 15px !important;
  cursor: help;
  position: absolute;
  left: 5px;
  top: 34px;
}

.tt-field-guide:hover,
.tt-field-guide:focus,
.tt-field-guide[aria-describedby] {
  border-color: var(--tt-field-border-focus) !important;
  color: #fff !important;
  background: var(--tt-field-border-focus) !important;
  outline: 0;
}

.tt-field-guide-popover {
  width: 280px;
  max-width: calc(100vw - 24px);
  border: 1px solid var(--tt-border, #e5e5e5);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .12);
  font-family: var(--tt-font-family, "TTIranSans", Tahoma, Arial, sans-serif);
  text-align: right;
}

.tt-field-guide-popover .popover-header {
  padding: 10px 12px 6px;
  border: 0;
  background: transparent;
  font-size: 11px;
  font-weight: 700;
}

.tt-field-guide-popover .popover-body {
  padding: 0 12px 10px;
  color: var(--tt-text-muted, #606060);
  font-size: 10px;
  line-height: 1.8;
}

.tt-field,
.tt-form .form-group,
.form-body .form-group {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  margin: 0;
}

.tt-field__label,
.tt-form .form-group > label,
.form-body .form-group > label {
  position: static;
  display: flex;
  order: -1;
  align-items: center;
  min-height: 20px;
  margin: 0 0 5px;
  color: var(--tt-field-label);
  font-size: 11px;
  font-weight: 500;
  line-height: 20px;
  pointer-events: auto;
  transform: none;
}

.tt-field__required,
.tt-field .required,
.form-group .required {
  margin-inline-start: 3px;
  color: var(--tt-field-danger) !important;
  font-size: 13px;
  line-height: 1;
}

.tt-field__hint {
  display: block;
  margin-top: 5px;
  color: var(--tt-text-muted, #858585);
  font-size: 10px;
  line-height: 1.6;
}

.tt-field__message,
.invalid-feedback,
.form-control-feedback {
  display: none;
  margin-top: 4px;
  color: var(--tt-field-danger);
  font-size: 10px;
  line-height: 1.6;
}

/* ---------- Text controls ---------- */

.tt-control,
.tt-form .form-control,
.form-body .form-control,
.tt-form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.tt-form select,
.tt-form textarea {
  width: 100%;
  min-width: 0;
  height: var(--tt-field-height);
  margin: 0;
  padding: 0 25px;
  border: 1px solid transparent;
  border-radius: var(--tt-form-radius);
  outline: 0;
  color: var(--tt-field-text);
  background: var(--tt-field-bg);
  box-shadow: none;
  font: inherit;
  font-size: 11px;
  line-height: normal;
  text-align: right;
  transition:
    border-color var(--tt-transition, 180ms ease),
    background-color var(--tt-transition, 180ms ease),
    box-shadow var(--tt-transition, 180ms ease);
}

.tt-control::placeholder,
.tt-form .form-control::placeholder,
.form-body .form-control::placeholder {
  color: var(--tt-field-placeholder);
  opacity: 1;
}

.tt-control:hover:not(:disabled):not([readonly]),
.tt-form .form-control:hover:not(:disabled):not([readonly]),
.form-body .form-control:hover:not(:disabled):not([readonly]) {
  border-color: var(--tt-field-border-hover);
  background: var(--tt-field-bg-hover);
}

.tt-control:focus,
.tt-field:focus-within .tt-control,
.tt-form .form-control:focus,
.form-body .form-control:focus {
  border-color: var(--tt-field-border-focus);
  background: #fff;
  box-shadow: 0 0 0 1px var(--tt-field-border-focus);
}

.tt-control[readonly],
.tt-form .form-control[readonly],
.form-body .form-control[readonly] {
  color: var(--tt-text-muted, #858585);
  background: #fafafa;
  cursor: default;
}

.tt-control:disabled,
.tt-form .form-control:disabled,
.form-body .form-control:disabled,
.tt-field.is-disabled .tt-control {
  border-color: transparent;
  color: var(--tt-text-soft, #b4b4b4);
  background: var(--tt-field-disabled);
  cursor: not-allowed;
  opacity: 1;
}

.tt-control[type="number"],
.tt-control[dir="ltr"],
.tt-control.is-ltr,
.tt-form [data-inputmask],
.form-body [data-inputmask] {
  direction: ltr;
  text-align: right;
}

textarea.tt-control,
.tt-form textarea.form-control,
.form-body textarea.form-control {
  min-height: 72px;
  height: auto;
  padding-block: 10px;
  line-height: 1.8;
  resize: vertical;
}

/* Remove the underline from the former floating-label implementation. */
.tt-form .form-group > .bar,
.form-body .form-group > .bar {
  display: none;
}

/* ---------- Field states ---------- */

.tt-field.is-error .tt-control,
.tt-field.has-error .tt-control,
.tt-form .form-group.has-danger .form-control,
.form-body .form-group.has-danger .form-control,
.tt-control.is-invalid,
.form-control.is-invalid {
  border-color: var(--tt-field-danger);
  background-image: none;
  box-shadow: none;
}

.tt-field.is-error .tt-field__message,
.tt-field.has-error .tt-field__message,
.tt-form .form-group.has-danger .form-control-feedback,
.form-body .form-group.has-danger .form-control-feedback,
.is-invalid ~ .invalid-feedback {
  display: block;
}

.tt-field.is-success .tt-control,
.tt-control.is-valid,
.form-control.is-valid {
  border-color: var(--tt-field-success);
  background-image: none;
}

/* ---------- Select and Select2 ---------- */

.tt-select,
.tt-form select.form-control,
.form-body select.form-control {
  appearance: none;
  padding-inline: 12px 36px;
  background-image:
    linear-gradient(45deg, transparent 50%, #606060 50%),
    linear-gradient(135deg, #606060 50%, transparent 50%);
  background-position:
    right 15px center,
    right 19px center;
  background-repeat: no-repeat;
  background-size: 5px 5px;
  cursor: pointer;
}

[dir="rtl"] .tt-select,
[dir="rtl"] .tt-form select.form-control,
[dir="rtl"] .form-body select.form-control {
  background-position:
    left 19px center,
    left 15px center;
}

.tt-form .select2-container,
.form-body .select2-container {
  display: block;
  width: 100% !important;
}

.tt-form .select2-container .select2-selection--single,
.form-body .select2-container .select2-selection--single,
.tt-form .select2-container .select2-selection--multiple,
.form-body .select2-container .select2-selection--multiple {
  min-height: var(--tt-field-height);
  border: 1px solid transparent;
  border-radius: var(--tt-form-radius);
  background: var(--tt-field-bg);
  box-shadow: none;
  transition:
    border-color var(--tt-transition, 180ms ease),
    background-color var(--tt-transition, 180ms ease);
}

.tt-form .select2-container .select2-selection--single .select2-selection__rendered,
.form-body .select2-container .select2-selection--single .select2-selection__rendered {
  height: calc(var(--tt-field-height) - 2px);
  padding: 0 12px 0 36px;
  color: var(--tt-field-text);
  font-size: 11px;
  line-height: calc(var(--tt-field-height) - 2px);
  text-align: right;
}

.tt-form .select2-container .select2-selection--single .select2-selection__arrow,
.form-body .select2-container .select2-selection--single .select2-selection__arrow {
  right: auto;
  left: 10px;
  width: 24px;
  height: calc(var(--tt-field-height) - 2px);
}

.tt-form .select2-container--focus .select2-selection,
.tt-form .select2-container--open .select2-selection,
.form-body .select2-container--focus .select2-selection,
.form-body .select2-container--open .select2-selection {
  border-color: var(--tt-field-border-focus);
  background: #fff;
  box-shadow: 0 0 0 1px var(--tt-field-border-focus);
}

.select2-dropdown {
  direction: rtl;
  overflow: hidden;
  border: 1px solid var(--tt-border-strong, #d7d7d7);
  border-radius: var(--tt-radius-md, 7px);
  background: #fff;
  box-shadow: var(--tt-shadow-md, 0 10px 30px rgba(0, 0, 0, .07));
  font-family: var(--tt-font-family, "TTIranSans", Tahoma, Arial, sans-serif);
  font-size: 11px;
  text-align: right;
}

.select2-search--dropdown {
  padding: 8px;
}

.select2-search--dropdown .select2-search__field {
  height: 36px;
  padding: 0 11px;
  border: 1px solid var(--tt-border, #e5e5e5) !important;
  border-radius: var(--tt-form-radius);
  outline: none;
}

.select2-results__option {
  min-height: 34px;
  padding: 8px 12px;
}

.select2-results__option--highlighted[aria-selected] {
  color: var(--tt-text, #343434) !important;
  background: var(--tt-primary-soft, #f3f3f3) !important;
}

/* ---------- Controls with icons or action buttons ---------- */

.tt-control-wrap,
.tt-input-group {
  position: relative;
  display: flex;
  align-items: stretch;
  width: 100%;
}

.tt-control-wrap .tt-control {
  padding-inline-end: 38px;
}

.tt-control-icon,
.tt-control-action {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 10px;
  display: inline-flex;
  width: 24px;
  height: 24px;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  color: var(--tt-text-muted, #858585);
  background: transparent;
  transform: translateY(-50%);
}

.tt-control-action {
  cursor: pointer;
}

.tt-control-action:hover {
  color: var(--tt-primary, #111);
}

.tt-control-prefix,
.tt-control-suffix {
  display: inline-flex;
  min-width: 40px;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  color: var(--tt-text-muted, #858585);
  background: var(--tt-field-bg);
}

.tt-control-prefix {
  border-radius: 0 var(--tt-form-radius) var(--tt-form-radius) 0;
}

.tt-control-suffix {
  border-radius: var(--tt-form-radius) 0 0 var(--tt-form-radius);
}

.tt-input-group .tt-control {
  border-radius: 0;
}

/* ---------- Checkbox, radio and switch ---------- */

.tt-check,
.tt-radio {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 24px;
  color: var(--tt-field-text);
  cursor: pointer;
  user-select: none;
}

.tt-check input,
.tt-radio input,
.tt-switch input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
}

.tt-check__box,
.tt-radio__mark {
  position: relative;
  display: inline-flex;
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  align-items: center;
  justify-content: center;
  border: 1px solid #b4b4b4;
  background: #fff;
  transition: var(--tt-transition, 180ms ease);
}

.tt-check__box {
  border-radius: 5px;
}

.tt-radio__mark {
  border-radius: 50%;
}

.tt-check input:checked + .tt-check__box {
  border-color: var(--tt-primary, #111);
  background: var(--tt-primary, #111);
}

.tt-check input:checked + .tt-check__box::after {
  width: 8px;
  height: 4px;
  border-bottom: 1.5px solid #fff;
  border-left: 1.5px solid #fff;
  content: "";
  transform: translateY(-1px) rotate(-45deg);
}

.tt-radio input:checked + .tt-radio__mark {
  border-color: var(--tt-primary, #111);
}

.tt-radio input:checked + .tt-radio__mark::after {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--tt-primary, #111);
  content: "";
}

.tt-switch {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
}

.tt-switch__track {
  position: relative;
  display: inline-block;
  width: 34px;
  height: 18px;
  border-radius: 10px;
  background: #d7d7d7;
  transition: background var(--tt-transition, 180ms ease);
}

.tt-switch__track::after {
  position: absolute;
  top: 3px;
  right: 3px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .22);
  content: "";
  transition: transform var(--tt-transition, 180ms ease);
}

.tt-switch input:checked + .tt-switch__track {
  background: var(--tt-primary, #111);
}

.tt-switch input:checked + .tt-switch__track::after {
  transform: translateX(-16px);
}

.tt-check input:focus-visible + .tt-check__box,
.tt-radio input:focus-visible + .tt-radio__mark,
.tt-switch input:focus-visible + .tt-switch__track {
  outline: 2px solid rgba(47, 111, 237, .28);
  outline-offset: 2px;
}

.tt-check input:disabled ~ *,
.tt-radio input:disabled ~ *,
.tt-switch input:disabled ~ * {
  cursor: not-allowed;
  opacity: .5;
}

/* ---------- Form buttons (Figma states) ---------- */

.tt-button,
.form-actions .btn {
  display: inline-flex;
  min-width: 88px;
  height: 38px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0 16px;
  border: 1px solid transparent;
  border-radius: var(--tt-form-radius);
  outline: 0;
  color: var(--tt-text, #343434);
  background: var(--tt-primary-soft, #f3f3f3);
  box-shadow: none;
  font-family: inherit;
  font-size: 11px;
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  transition:
    color var(--tt-transition, 180ms ease),
    border-color var(--tt-transition, 180ms ease),
    background-color var(--tt-transition, 180ms ease);
}

.tt-button:hover,
.form-actions .btn:hover {
  border-color: var(--tt-border-strong, #d7d7d7);
  color: var(--tt-primary, #111);
  background: #eee;
}

.tt-button--primary,
.form-actions .btn-success,
.form-actions .btn-info {
  border-color: var(--tt-primary, #111);
  color: #fff;
  background: var(--tt-primary, #111);
}

.tt-button--primary:hover,
.form-actions .btn-success:hover,
.form-actions .btn-info:hover {
  border-color: #2b2b2b;
  color: #fff;
  background: #2b2b2b;
}

.tt-button--outline,
.form-actions .btn-inverse {
  border-color: #858585;
  color: var(--tt-text, #343434);
  background: #fff;
}

.tt-button--icon {
  min-width: 38px;
  width: 38px;
  padding: 0;
}

.tt-button:disabled,
.tt-button.is-disabled,
.form-actions .btn:disabled {
  border-color: transparent;
  color: var(--tt-text-soft, #b4b4b4);
  background: var(--tt-field-disabled);
  cursor: not-allowed;
  pointer-events: none;
}

.form-actions {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  margin-top: 26px;
  padding-top: 18px;
  border-top: 1px solid var(--tt-border, #e5e5e5);
}

/* ---------- Compact horizontal and modal forms ---------- */

.tt-form--compact {
  --tt-form-gap-x: 12px;
  --tt-form-gap-y: 14px;
  --tt-field-height: 36px;
}

.tt-form--two-columns {
  --tt-form-columns: 2;
}

.tt-form--single-column {
  --tt-form-columns: 1;
}

.tt-form--horizontal .tt-field {
  display: grid;
  grid-template-columns: minmax(100px, 28%) minmax(0, 1fr);
  align-items: start;
  column-gap: 12px;
}

.tt-form--horizontal .tt-field__label {
  margin: 0;
  padding-top: 10px;
}

.tt-form--horizontal .tt-field__message,
.tt-form--horizontal .tt-field__hint {
  grid-column: 2;
}

/* ---------- Accessibility and responsive behavior ---------- */

@media (max-width: 1200px) {
  .tt-form-grid,
  .form-body > .row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tt-form-field--half,
  .tt-col-half,
  .form-body > .row > .col-md-6 {
    grid-column: span 1;
  }
}

@media (max-width: 700px) {
  .tt-form-grid,
  .form-body > .row {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }

  .tt-form-field--full,
  .tt-form-field--half,
  .tt-col-full,
  .tt-col-half,
  .form-body > .row > [class*="col-"] {
    grid-column: 1;
  }

  .tt-form--horizontal .tt-field {
    display: block;
  }

  .tt-form--horizontal .tt-field__label {
    padding-top: 0;
  }

  .form-actions {
    position: sticky;
    z-index: 5;
    bottom: 0;
    margin-inline: -12px;
    padding: 12px;
    border-top: 1px solid var(--tt-border, #e5e5e5);
    background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(8px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .tt-form *,
  .form-body * {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}

/* ---------- Advanced data filter modal ---------- */

.tt-filter-modal {
  direction: rtl;
  color: var(--tt-text, #343434);
  font-family: "TTIranSans", Tahoma, Arial, sans-serif;
}

.tt-filter-modal .modal-dialog {
  width: min(94vw, 850px);
  max-width: 850px;
  margin: 8vh auto 24px;
}

.tt-filter-modal .modal-content {
  overflow: hidden;
  border: 0;
  border-radius: 18px;
  box-shadow: 0 24px 70px rgba(28, 37, 54, .18);
}

.tt-filter-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 70px;
  padding: 16px 22px;
  border-bottom: 1px solid var(--tt-border, #e5e5e5);
}

.tt-filter-modal__title {
  display: flex;
  align-items: center;
  gap: 11px;
}

.tt-filter-modal__title h2 {
  margin: 0;
  color: var(--tt-text, #343434);
  font-size: 16px;
  font-weight: 700;
}

.tt-filter-modal__title-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 8px;
  color: #2870df;
  background: #eef5ff;
}

.tt-filter-modal__title-icon svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linejoin: round;
}

.tt-filter-modal__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 9px;
  color: #8a94a5;
  background: transparent;
  font-size: 27px;
  font-weight: 300;
  line-height: 1;
  opacity: 1;
}

.tt-filter-modal__close:hover {
  color: #344054;
  background: #f4f6f8;
}

.tt-filter-modal__body {
  min-height: 190px;
  padding: 28px 30px 24px;
}

.tt-filter-modal .filter-field-select {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

.tt-filter-modal .filter-items-container {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.tt-filter-modal .filter-item-row {
  display: grid;
  grid-template-columns: 32px minmax(145px, 1.05fr) minmax(125px, .85fr) minmax(190px, 1.35fr);
  align-items: end;
  gap: 14px;
}

.tt-filter-modal .filter-item-row:has(.filter-input-second:not([style*="display:none"]):not([style*="display: none"])) {
  grid-template-columns: 32px minmax(125px, .9fr) minmax(110px, .75fr) minmax(140px, 1fr) minmax(140px, 1fr);
}

.tt-filter-control {
  min-width: 0;
}

.tt-filter-control label {
  display: block;
  margin: 0 2px 7px;
  color: #667085;
  font-size: 11px;
  font-weight: 500;
}

.tt-filter-modal .form-control,
.tt-filter-modal .select2-container .select2-selection--multiple {
  width: 100%;
  min-height: 39px;
  border: 1px solid #dfe4ea;
  border-radius: 8px;
  color: #344054;
  background: #fff;
  box-shadow: none;
  font-size: 12px;
}

.tt-filter-modal .form-control {
  height: 39px;
  padding: 7px 11px;
}

.tt-filter-modal .form-control:focus,
.tt-filter-modal .select2-container--focus .select2-selection--multiple {
  border-color: #77a6ec;
  box-shadow: 0 0 0 3px rgba(47, 111, 237, .09);
}

.tt-filter-modal .filter-remove-row-btn {
  width: 30px;
  height: 30px;
  margin-bottom: 4px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  color: #e14d5a;
  background: #fff0f1;
  font-size: 20px;
  line-height: 28px;
}

.tt-filter-modal .filter-remove-row-btn:hover {
  color: #bd2635;
  background: #ffe2e5;
}

.tt-filter-modal__empty {
  padding: 18px 0 8px;
  color: #98a2b3;
  text-align: center;
  font-size: 12px;
}

.tt-filter-modal .filter-add-btn {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: 18px;
  padding: 6px 2px;
  border: 0;
  color: #2870df;
  background: transparent;
  font-size: 12px;
  font-weight: 600;
}

.tt-filter-modal .filter-add-btn span {
  font-size: 19px;
  font-weight: 400;
}

.tt-filter-modal .filter-add-btn:disabled {
  color: #aeb7c4;
  cursor: not-allowed;
}

.tt-filter-modal__footer {
  display: flex;
  justify-content: flex-start;
  gap: 10px;
  padding: 14px 30px 18px;
  border-top: 1px solid var(--tt-border, #e5e5e5);
}

.tt-filter-modal__footer button {
  min-width: 105px;
  height: 38px;
  padding: 0 18px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
}

.tt-filter-modal .filter-apply-btn {
  border: 1px solid #2f6fed;
  color: #fff;
  background: #2f6fed;
}

.tt-filter-modal .filter-apply-btn:hover {
  border-color: #245dcc;
  background: #245dcc;
}

.tt-filter-modal .filter-apply-btn:disabled {
  border-color: #d5dbe4;
  color: #98a2b3;
  background: #e9edf2;
  cursor: not-allowed;
}

.tt-filter-modal .filter-clear-btn {
  border: 1px solid #d7dde5;
  color: #596579;
  background: #fff;
}

.tt-filter-modal .filter-clear-btn:hover {
  border-color: #bfc7d2;
  background: #f7f8fa;
}

@media (max-width: 700px) {
  .tt-filter-modal .modal-dialog {
    width: calc(100vw - 20px);
    margin: 10px auto;
  }

  .tt-filter-modal__body {
    padding: 22px 18px;
  }

  .tt-filter-modal .filter-item-row,
  .tt-filter-modal .filter-item-row:has(.filter-input-second:not([style*="display:none"]):not([style*="display: none"])) {
    grid-template-columns: 32px minmax(0, 1fr);
    align-items: start;
    padding-bottom: 16px;
    border-bottom: 1px solid #edf0f4;
  }

  .tt-filter-modal .filter-remove-row-btn {
    grid-column: 1;
    grid-row: 1;
    margin-top: 21px;
  }

  .tt-filter-modal .tt-filter-control {
    grid-column: 2;
  }

  .tt-filter-modal__footer {
    padding-inline: 18px;
  }
}
